From 8a2b8858d2eab7e91ef04a731996cd94c900a766 Mon Sep 17 00:00:00 2001 From: David Chesnut Date: Fri, 18 Oct 2024 15:40:47 -0700 Subject: [PATCH] [update dev branch] (#876) * Bump path-to-regexp and express (#847) Bumps [path-to-regexp](https://github.com/pillarjs/path-to-regexp) and [express](https://github.com/expressjs/express). These dependencies needed to be updated together. Updates `path-to-regexp` from 1.8.0 to 1.9.0 - [Release notes](https://github.com/pillarjs/path-to-regexp/releases) - [Changelog](https://github.com/pillarjs/path-to-regexp/blob/master/History.md) - [Commits](https://github.com/pillarjs/path-to-regexp/compare/v1.8.0...v1.9.0) Updates `express` from 4.19.2 to 4.21.0 - [Release notes](https://github.com/expressjs/express/releases) - [Changelog](https://github.com/expressjs/express/blob/4.21.0/History.md) - [Commits](https://github.com/expressjs/express/compare/4.19.2...4.21.0) --- updated-dependencies: - dependency-name: path-to-regexp dependency-type: indirect - dependency-name: express dependency-type: indirect ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Bump serve-static and express in /Samples/word-citation-management (#849) Bumps [serve-static](https://github.com/expressjs/serve-static) and [express](https://github.com/expressjs/express). These dependencies needed to be updated together. Updates `serve-static` from 1.15.0 to 1.16.2 - [Release notes](https://github.com/expressjs/serve-static/releases) - [Changelog](https://github.com/expressjs/serve-static/blob/v1.16.2/HISTORY.md) - [Commits](https://github.com/expressjs/serve-static/compare/v1.15.0...v1.16.2) Updates `express` from 4.19.2 to 4.21.0 - [Release notes](https://github.com/expressjs/express/releases) - [Changelog](https://github.com/expressjs/express/blob/4.21.0/History.md) - [Commits](https://github.com/expressjs/express/compare/4.19.2...4.21.0) --- updated-dependencies: - dependency-name: serve-static dependency-type: indirect - dependency-name: express dependency-type: indirect ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Bump path-to-regexp and express (#848) Bumps [path-to-regexp](https://github.com/pillarjs/path-to-regexp) and [express](https://github.com/expressjs/express). These dependencies needed to be updated together. Updates `path-to-regexp` from 1.8.0 to 1.9.0 - [Release notes](https://github.com/pillarjs/path-to-regexp/releases) - [Changelog](https://github.com/pillarjs/path-to-regexp/blob/master/History.md) - [Commits](https://github.com/pillarjs/path-to-regexp/compare/v1.8.0...v1.9.0) Updates `express` from 4.19.2 to 4.21.0 - [Release notes](https://github.com/expressjs/express/releases) - [Changelog](https://github.com/expressjs/express/blob/4.21.0/History.md) - [Commits](https://github.com/expressjs/express/compare/4.19.2...4.21.0) --- updated-dependencies: - dependency-name: path-to-regexp dependency-type: indirect - dependency-name: express dependency-type: indirect ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Bump send and express (#851) Bumps [send](https://github.com/pillarjs/send) and [express](https://github.com/expressjs/express). These dependencies needed to be updated together. Updates `send` from 0.18.0 to 0.19.0 - [Release notes](https://github.com/pillarjs/send/releases) - [Changelog](https://github.com/pillarjs/send/blob/master/HISTORY.md) - [Commits](https://github.com/pillarjs/send/compare/0.18.0...0.19.0) Updates `express` from 4.19.2 to 4.21.0 - [Release notes](https://github.com/expressjs/express/releases) - [Changelog](https://github.com/expressjs/express/blob/4.21.0/History.md) - [Commits](https://github.com/expressjs/express/compare/4.19.2...4.21.0) --- updated-dependencies: - dependency-name: send dependency-type: indirect - dependency-name: express dependency-type: indirect ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Outlook NAA update libraries (#833) * update package and library versions * Add debug files * Remove getAuthContext parts as not needed for Outlook * Running npm audit fix on several samples (#827) * [Outlook] (event-based activation) Remove platform check from samples (#846) * Remove platform check * Remove additional instance * initial commit * draft getting files in ie11 webview * lists files on task pane. * works for ie and edge webviews * add sign out for ie11 * code refactoring supports edge and ie webviews * add signout support and refactoring * refactoring pass * add NAA fallback for popup bug * fixes so that fallback code is working. * clean up comments and code usage * add sign out button * refactoring * [Word] (keyboard shortcuts) Update sample to include support in Word (#853) * Add support in Word * Update screenshot and apply minor fixes * Fix punctuation * Apply suggestions from code review Co-authored-by: Elizabeth Samuel * Apply suggestions from review Co-authored-by: Elizabeth Samuel --------- Co-authored-by: Elizabeth Samuel * [Word] (keyboard shortcuts) Fix format of note (#858) * sign-out button and fallback fixes * fixes to sample * rename sample * rename folder * modify description * fix path to file in README (#859) * Update Samples/auth/Outlook-Add-in-SSO-NAA-IE/README.md Co-authored-by: Alex Jerabek <38896772+AlexJerabek@users.noreply.github.com> * Update Samples/auth/Outlook-Add-in-SSO-NAA-IE/README.md Co-authored-by: Alex Jerabek <38896772+AlexJerabek@users.noreply.github.com> * Update Samples/auth/Outlook-Add-in-SSO-NAA-IE/assets/sample.json Co-authored-by: Alex Jerabek <38896772+AlexJerabek@users.noreply.github.com> * Update Samples/auth/Outlook-Add-in-SSO-NAA-IE/assets/sample.json Co-authored-by: Alex Jerabek <38896772+AlexJerabek@users.noreply.github.com> * Update Samples/auth/Outlook-Add-in-SSO-NAA-IE/src/taskpane/fallback/dialog.html Co-authored-by: Alex Jerabek <38896772+AlexJerabek@users.noreply.github.com> * Update Samples/auth/Outlook-Add-in-SSO-NAA-IE/README.md Co-authored-by: Alex Jerabek <38896772+AlexJerabek@users.noreply.github.com> * review comments * Update Samples/auth/Outlook-Add-in-SSO-NAA-IE/README.md Co-authored-by: Alex Jerabek <38896772+AlexJerabek@users.noreply.github.com> * fix internet explorer casing * Update Samples/auth/Outlook-Add-in-SSO-NAA-IE/assets/sample.json Co-authored-by: Alex Jerabek <38896772+AlexJerabek@users.noreply.github.com> * fix wrong script path in NAA event sample (#864) * bump @azure/msal-browser to 3.24.0 for NAA samples (#863) * [All hosts] Update CDN URL (#865) * [Outlook] - Update Outlook NAA sample to use standard public client as fallback. (#866) * use standard public client application in fallback path * Update Samples/auth/Outlook-Add-in-SSO-NAA/src/taskpane/fallback/fallbackauthdialog.ts Co-authored-by: Alex Jerabek <38896772+AlexJerabek@users.noreply.github.com> * Update Samples/auth/Outlook-Add-in-SSO-NAA/src/taskpane/fallback/dialog.html Co-authored-by: Alex Jerabek <38896772+AlexJerabek@users.noreply.github.com> * Update Samples/auth/Outlook-Add-in-SSO-NAA/src/taskpane/taskpane.html Co-authored-by: Alex Jerabek <38896772+AlexJerabek@users.noreply.github.com> --------- Co-authored-by: Alex Jerabek <38896772+AlexJerabek@users.noreply.github.com> * Bump cookie, cookie-parser and express (#869) Bumps [cookie](https://github.com/jshttp/cookie) to 0.7.2 and updates ancestor dependencies [cookie](https://github.com/jshttp/cookie), [cookie-parser](https://github.com/expressjs/cookie-parser) and [express](https://github.com/expressjs/express). These dependencies need to be updated together. Updates `cookie` from 0.4.1 to 0.7.2 - [Release notes](https://github.com/jshttp/cookie/releases) - [Commits](https://github.com/jshttp/cookie/compare/v0.4.1...v0.7.2) Updates `cookie-parser` from 1.4.6 to 1.4.7 - [Release notes](https://github.com/expressjs/cookie-parser/releases) - [Changelog](https://github.com/expressjs/cookie-parser/blob/master/HISTORY.md) - [Commits](https://github.com/expressjs/cookie-parser/compare/1.4.6...1.4.7) Updates `express` from 4.19.2 to 4.21.1 - [Release notes](https://github.com/expressjs/express/releases) - [Changelog](https://github.com/expressjs/express/blob/4.21.1/History.md) - [Commits](https://github.com/expressjs/express/compare/4.19.2...4.21.1) --- updated-dependencies: - dependency-name: cookie dependency-type: indirect - dependency-name: cookie-parser dependency-type: direct:production - dependency-name: express dependency-type: direct:production ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Bump rollup in /Samples/Office.ASP.NETCoreReactAddins/excel-js/ClientApp (#856) Bumps [rollup](https://github.com/rollup/rollup) from 2.70.1 to 2.79.2. - [Release notes](https://github.com/rollup/rollup/releases) - [Changelog](https://github.com/rollup/rollup/blob/master/CHANGELOG.md) - [Commits](https://github.com/rollup/rollup/compare/v2.70.1...v2.79.2) --- updated-dependencies: - dependency-name: rollup dependency-type: indirect ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Bump cookie and express (#870) Bumps [cookie](https://github.com/jshttp/cookie) and [express](https://github.com/expressjs/express). These dependencies needed to be updated together. Updates `cookie` from 0.6.0 to 0.7.1 - [Release notes](https://github.com/jshttp/cookie/releases) - [Commits](https://github.com/jshttp/cookie/compare/v0.6.0...v0.7.1) Updates `express` from 4.20.0 to 4.21.1 - [Release notes](https://github.com/expressjs/express/releases) - [Changelog](https://github.com/expressjs/express/blob/4.21.1/History.md) - [Commits](https://github.com/expressjs/express/compare/4.20.0...4.21.1) --- updated-dependencies: - dependency-name: cookie dependency-type: indirect - dependency-name: express dependency-type: indirect ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * fix sample not loading in es6 runtime (#873) --------- Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Alex Jerabek <38896772+AlexJerabek@users.noreply.github.com> Co-authored-by: Sam Ramon <15154970+samantharamon@users.noreply.github.com> Co-authored-by: Elizabeth Samuel Co-authored-by: Dan Saunders --- .../Batching/src/taskpane/taskpane.html | 2 +- Excel-custom-functions/web-worker/home.html | 2 +- README.md | 2 +- .../package-lock.json | 533 +- .../src/taskpane/taskpane.html | 2 +- .../excel-js/ClientApp/package-lock.json | 479 +- .../excel-ts/ClientApp/package-lock.json | 461 +- .../AddIn/Home/Home.html | 2 +- .../Scripts/_references.js | 2 +- .../Functions/FunctionFile.html | 2 +- .../Outlook.AddInSampleWeb/MessageRead.html | 2 +- .../Scripts/_references.js | 2 +- .../Scripts/_references.js | Bin 1114 -> 1118 bytes .../Functions/FunctionFile.html | 2 +- .../CellAnalyzerOfficeAddinWeb/Home.html | 2 +- .../Functions/FunctionFile.html | 2 +- .../CellAnalyzerWebAddinWeb/Home.html | 2 +- .../Views/Shared/_Layout.cshtml | 2 +- .../Views/Shared/_Layout.cshtml | 2 +- .../Views/Shared/_Layout.cshtml | 2 +- .../login/login.html | 2 +- .../logout/logout.html | 2 +- .../logoutcomplete/logoutcomplete.html | 2 +- .../src/index.html | 2 +- .../Begin/public/dialog.html | 2 +- .../Begin/views/layout.pug | 2 +- .../Complete/package-lock.json | 239 +- .../Complete/package.json | 4 +- .../Complete/public/dialog.html | 2 +- .../Complete/views/layout.pug | 2 +- .../Office-Add-in-SSO-NAA/package-lock.json | 20 +- .../auth/Office-Add-in-SSO-NAA/package.json | 2 +- .../Views/Shared/_Layout.cshtml | 2 +- .../Outlook-Add-in-SSO-NAA-IE/.eslintrc.json | 8 + .../auth/Outlook-Add-in-SSO-NAA-IE/.gitignore | 528 + .../auth/Outlook-Add-in-SSO-NAA-IE/README.md | 143 + .../assets/icon-128.png | Bin 0 -> 4693 bytes .../assets/icon-16.png | Bin .../assets/icon-32.png | Bin .../assets/icon-64.png | Bin 0 -> 2112 bytes .../assets/icon-80.png | Bin .../assets/logo-filled.png | Bin .../assets/sample.json | 37 + .../assets/ui-add-redirect-link.png | Bin .../assets/ui-add-redirects-link.png | Bin .../assets/ui-completed-redirects.png | Bin 0 -> 50363 bytes .../assets/vs-code-debug-view.png | Bin 0 -> 18866 bytes .../babel.config.json | 13 + .../Outlook-Add-in-SSO-NAA-IE/manifest.xml | 90 + .../package-lock.json | 15249 ++++++++++++++++ .../Outlook-Add-in-SSO-NAA-IE/package.json | 68 + .../src/taskpane/authHelper.ts | 182 + .../src/taskpane/button.css | 120 + .../src/taskpane/errors.ts | 6 + .../src/taskpane/fallback/auth.html | 13 + .../src/taskpane/fallback/dialog.html | 17 + .../taskpane/fallback/fallbackauthdialog.ts | 36 + .../fallbackauthdialoginternetexplorer.ts | 36 + .../src/taskpane/fallback/signoutdialog.ts | 23 + .../fallback/signoutdialoginternetexplorer.ts | 23 + .../src/taskpane/msalAuth.ts | 89 + .../src/taskpane/msalConfig.ts | 28 + .../src/taskpane/msalConfigV2.ts | 40 + .../src/taskpane/msalConfigV3.ts | 40 + .../src/taskpane/msgraph-helper.ts | 33 + .../src/taskpane}/taskpane.css | 3 +- .../src/taskpane/taskpane.html | 74 + .../src/taskpane/taskpane.ts | 109 + .../src/taskpane/util.ts | 31 + .../Outlook-Add-in-SSO-NAA-IE/tsconfig.json | 28 + .../webpack.config.js | 123 + .../.vscode/extensions.json | 13 + .../.vscode/launch.json | 26 + .../.vscode/settings.json | 8 + .../Outlook-Add-in-SSO-NAA/.vscode/tasks.json | 156 + Samples/auth/Outlook-Add-in-SSO-NAA/README.md | 72 +- .../assets/ui-completed-redirects.png | Bin 19582 -> 0 bytes .../Outlook-Add-in-SSO-NAA/package-lock.json | 4403 ++--- .../auth/Outlook-Add-in-SSO-NAA/package.json | 50 +- .../src/taskpane/authConfig.ts | 229 +- .../src/taskpane/button.css | 114 +- .../src/taskpane/fallback/auth.html | 13 + .../src/taskpane/fallback/dialog.html | 17 + .../taskpane/fallback/fallbackauthdialog.ts | 76 + .../src/taskpane/msalcommon.ts | 40 + .../src/taskpane/msalconfig.ts | 46 + .../src/taskpane/msgraph-helper.ts | 2 +- .../src/taskpane/taskpane.html | 81 +- .../src/taskpane/taskpane.ts | 40 +- .../src/taskpane/util.ts | 13 + .../Outlook-Add-in-SSO-NAA/webpack.config.js | 11 + .../Views/Shared/_Layout.cshtml | 2 +- .../wwwroot/dialog.html | 2 +- .../Outlook-Event-SSO-NAA/package-lock.json | 20 +- .../auth/Outlook-Event-SSO-NAA/package.json | 4 +- .../microsoft-officeaddins-allowed.json | 7 +- .../Outlook-Event-SSO-NAA/webpack.config.js | 14 +- .../excel-blazor-add-in/wwwroot/index.html | 2 +- .../word-blazor-add-in/wwwroot/index.html | 2 +- .../WebApplication/package-lock.json | 59 +- .../package-lock.json | 547 +- Samples/excel-insert-file/README.md | 2 +- Samples/excel-keyboard-shortcuts/README.md | 151 - .../excel-keyboard-shortcuts-overview.jpg | Bin 240204 -> 0 bytes .../excel-keyboard-shortcuts/src/taskpane.js | 66 - .../excel-hello-world/taskpane.html | 2 +- .../outlook-hello-world/taskpane.html | 2 +- .../powerpoint-hello-world/taskpane.html | 2 +- .../word-hello-world/taskpane.html | 2 +- .../auto-open-task-pane/home.html | 2 +- .../src/taskpane.html | 2 +- .../.gitignore | 0 .../CONTRIBUTING.md | 0 .../LICENSE | 0 Samples/office-keyboard-shortcuts/README.md | 166 + .../assets/icon-16.png | Bin 0 -> 1596 bytes .../assets/icon-32.png | Bin 0 -> 2386 bytes .../assets/icon-80.png | Bin 0 -> 4836 bytes .../assets/logo-filled.png | Bin 0 -> 11915 bytes .../office-keyboard-shortcuts-overview.png | Bin 0 -> 15564 bytes .../office-keyboard-shortcuts-reset.png | Bin 0 -> 42798 bytes .../assets/sample.json | 14 +- .../manifest-localhost.xml | 60 +- .../manifest.xml | 76 +- .../src/shortcuts.json | 20 +- .../src/taskpane.css | 83 + .../src/taskpane.html | 53 +- .../office-keyboard-shortcuts/src/taskpane.js | 84 + .../src/commands/commands.js | 4 +- .../outlook-set-signature/package-lock.json | 150 +- Samples/outlook-spam-reporting/README.md | 1 + .../manifest-localhost.xml | 2 +- Samples/outlook-spam-reporting/manifest.xml | 2 +- .../src/spamreporting.js | 6 + .../src/spamreporting_classic.js | 52 - .../README.md | 13 +- .../src/commands/commands.js | 21 +- .../My Office Add-in/package-lock.json | 533 +- .../My Office Add-in/src/dialogs/popup.html | 2 +- .../Git the gist/package-lock.json | 713 +- .../My Office Add-in/package-lock.json | 772 +- .../HelloWorldWeb/Functions/FunctionFile.html | 2 +- .../HelloWorld/HelloWorldWeb/Home.html | 2 +- .../My Office Add-in/package-lock.json | 533 +- .../LoadingAndWritingOOXML.html | 2 +- .../package-lock.json | 713 +- .../Scripts/_references.js | Bin 16670 -> 16674 bytes .../Views/Shared/_Layout.cshtml | 2 +- .../Scripts/_references.js | Bin 16676 -> 16680 bytes .../Views/Shared/_Layout.cshtml | 2 +- .../Scripts/_references.js | Bin 16656 -> 16660 bytes .../Views/Shared/_Layout.cshtml | 2 +- .../Functions/FunctionFile.html | 2 +- .../Scripts/_references.js | Bin 16844 -> 16848 bytes .../Views/Shared/_Layout.cshtml | 2 +- 155 files changed, 24149 insertions(+), 5218 deletions(-) create mode 100644 Samples/auth/Outlook-Add-in-SSO-NAA-IE/.eslintrc.json create mode 100644 Samples/auth/Outlook-Add-in-SSO-NAA-IE/.gitignore create mode 100644 Samples/auth/Outlook-Add-in-SSO-NAA-IE/README.md create mode 100644 Samples/auth/Outlook-Add-in-SSO-NAA-IE/assets/icon-128.png rename Samples/{excel-keyboard-shortcuts => auth/Outlook-Add-in-SSO-NAA-IE}/assets/icon-16.png (100%) rename Samples/{excel-keyboard-shortcuts => auth/Outlook-Add-in-SSO-NAA-IE}/assets/icon-32.png (100%) create mode 100644 Samples/auth/Outlook-Add-in-SSO-NAA-IE/assets/icon-64.png rename Samples/{excel-keyboard-shortcuts => auth/Outlook-Add-in-SSO-NAA-IE}/assets/icon-80.png (100%) rename Samples/{excel-keyboard-shortcuts => auth/Outlook-Add-in-SSO-NAA-IE}/assets/logo-filled.png (100%) create mode 100644 Samples/auth/Outlook-Add-in-SSO-NAA-IE/assets/sample.json rename Samples/auth/{Outlook-Add-in-SSO-NAA => Outlook-Add-in-SSO-NAA-IE}/assets/ui-add-redirect-link.png (100%) rename Samples/auth/{Outlook-Add-in-SSO-NAA => Outlook-Add-in-SSO-NAA-IE}/assets/ui-add-redirects-link.png (100%) create mode 100644 Samples/auth/Outlook-Add-in-SSO-NAA-IE/assets/ui-completed-redirects.png create mode 100644 Samples/auth/Outlook-Add-in-SSO-NAA-IE/assets/vs-code-debug-view.png create mode 100644 Samples/auth/Outlook-Add-in-SSO-NAA-IE/babel.config.json create mode 100644 Samples/auth/Outlook-Add-in-SSO-NAA-IE/manifest.xml create mode 100644 Samples/auth/Outlook-Add-in-SSO-NAA-IE/package-lock.json create mode 100644 Samples/auth/Outlook-Add-in-SSO-NAA-IE/package.json create mode 100644 Samples/auth/Outlook-Add-in-SSO-NAA-IE/src/taskpane/authHelper.ts create mode 100644 Samples/auth/Outlook-Add-in-SSO-NAA-IE/src/taskpane/button.css create mode 100644 Samples/auth/Outlook-Add-in-SSO-NAA-IE/src/taskpane/errors.ts create mode 100644 Samples/auth/Outlook-Add-in-SSO-NAA-IE/src/taskpane/fallback/auth.html create mode 100644 Samples/auth/Outlook-Add-in-SSO-NAA-IE/src/taskpane/fallback/dialog.html create mode 100644 Samples/auth/Outlook-Add-in-SSO-NAA-IE/src/taskpane/fallback/fallbackauthdialog.ts create mode 100644 Samples/auth/Outlook-Add-in-SSO-NAA-IE/src/taskpane/fallback/fallbackauthdialoginternetexplorer.ts create mode 100644 Samples/auth/Outlook-Add-in-SSO-NAA-IE/src/taskpane/fallback/signoutdialog.ts create mode 100644 Samples/auth/Outlook-Add-in-SSO-NAA-IE/src/taskpane/fallback/signoutdialoginternetexplorer.ts create mode 100644 Samples/auth/Outlook-Add-in-SSO-NAA-IE/src/taskpane/msalAuth.ts create mode 100644 Samples/auth/Outlook-Add-in-SSO-NAA-IE/src/taskpane/msalConfig.ts create mode 100644 Samples/auth/Outlook-Add-in-SSO-NAA-IE/src/taskpane/msalConfigV2.ts create mode 100644 Samples/auth/Outlook-Add-in-SSO-NAA-IE/src/taskpane/msalConfigV3.ts create mode 100644 Samples/auth/Outlook-Add-in-SSO-NAA-IE/src/taskpane/msgraph-helper.ts rename Samples/{excel-keyboard-shortcuts/src => auth/Outlook-Add-in-SSO-NAA-IE/src/taskpane}/taskpane.css (98%) create mode 100644 Samples/auth/Outlook-Add-in-SSO-NAA-IE/src/taskpane/taskpane.html create mode 100644 Samples/auth/Outlook-Add-in-SSO-NAA-IE/src/taskpane/taskpane.ts create mode 100644 Samples/auth/Outlook-Add-in-SSO-NAA-IE/src/taskpane/util.ts create mode 100644 Samples/auth/Outlook-Add-in-SSO-NAA-IE/tsconfig.json create mode 100644 Samples/auth/Outlook-Add-in-SSO-NAA-IE/webpack.config.js create mode 100644 Samples/auth/Outlook-Add-in-SSO-NAA/.vscode/extensions.json create mode 100644 Samples/auth/Outlook-Add-in-SSO-NAA/.vscode/launch.json create mode 100644 Samples/auth/Outlook-Add-in-SSO-NAA/.vscode/settings.json create mode 100644 Samples/auth/Outlook-Add-in-SSO-NAA/.vscode/tasks.json delete mode 100644 Samples/auth/Outlook-Add-in-SSO-NAA/assets/ui-completed-redirects.png create mode 100644 Samples/auth/Outlook-Add-in-SSO-NAA/src/taskpane/fallback/auth.html create mode 100644 Samples/auth/Outlook-Add-in-SSO-NAA/src/taskpane/fallback/dialog.html create mode 100644 Samples/auth/Outlook-Add-in-SSO-NAA/src/taskpane/fallback/fallbackauthdialog.ts create mode 100644 Samples/auth/Outlook-Add-in-SSO-NAA/src/taskpane/msalcommon.ts create mode 100644 Samples/auth/Outlook-Add-in-SSO-NAA/src/taskpane/msalconfig.ts create mode 100644 Samples/auth/Outlook-Add-in-SSO-NAA/src/taskpane/util.ts delete mode 100644 Samples/excel-keyboard-shortcuts/README.md delete mode 100644 Samples/excel-keyboard-shortcuts/assets/excel-keyboard-shortcuts-overview.jpg delete mode 100644 Samples/excel-keyboard-shortcuts/src/taskpane.js rename Samples/{excel-keyboard-shortcuts => office-keyboard-shortcuts}/.gitignore (100%) rename Samples/{excel-keyboard-shortcuts => office-keyboard-shortcuts}/CONTRIBUTING.md (100%) rename Samples/{excel-keyboard-shortcuts => office-keyboard-shortcuts}/LICENSE (100%) create mode 100644 Samples/office-keyboard-shortcuts/README.md create mode 100644 Samples/office-keyboard-shortcuts/assets/icon-16.png create mode 100644 Samples/office-keyboard-shortcuts/assets/icon-32.png create mode 100644 Samples/office-keyboard-shortcuts/assets/icon-80.png create mode 100644 Samples/office-keyboard-shortcuts/assets/logo-filled.png create mode 100644 Samples/office-keyboard-shortcuts/assets/office-keyboard-shortcuts-overview.png create mode 100644 Samples/office-keyboard-shortcuts/assets/office-keyboard-shortcuts-reset.png rename Samples/{excel-keyboard-shortcuts => office-keyboard-shortcuts}/assets/sample.json (61%) rename Samples/{excel-keyboard-shortcuts => office-keyboard-shortcuts}/manifest-localhost.xml (63%) rename Samples/{excel-keyboard-shortcuts => office-keyboard-shortcuts}/manifest.xml (56%) rename Samples/{excel-keyboard-shortcuts => office-keyboard-shortcuts}/src/shortcuts.json (66%) create mode 100644 Samples/office-keyboard-shortcuts/src/taskpane.css rename Samples/{excel-keyboard-shortcuts => office-keyboard-shortcuts}/src/taskpane.html (51%) create mode 100644 Samples/office-keyboard-shortcuts/src/taskpane.js delete mode 100644 Samples/outlook-spam-reporting/src/spamreporting_classic.js diff --git a/Excel-custom-functions/Batching/src/taskpane/taskpane.html b/Excel-custom-functions/Batching/src/taskpane/taskpane.html index b8716ae61..7c06c3c4e 100644 --- a/Excel-custom-functions/Batching/src/taskpane/taskpane.html +++ b/Excel-custom-functions/Batching/src/taskpane/taskpane.html @@ -13,7 +13,7 @@ Contoso Task Pane Add-in - + diff --git a/Excel-custom-functions/web-worker/home.html b/Excel-custom-functions/web-worker/home.html index d3bdf7d05..e9d5a207d 100644 --- a/Excel-custom-functions/web-worker/home.html +++ b/Excel-custom-functions/web-worker/home.html @@ -4,7 +4,7 @@ Custom functions using WebWorker - + - + diff --git a/Samples/Office.ASP.NETCoreReactAddins/excel-js/ClientApp/package-lock.json b/Samples/Office.ASP.NETCoreReactAddins/excel-js/ClientApp/package-lock.json index 5394a021d..b4eb10a3c 100644 --- a/Samples/Office.ASP.NETCoreReactAddins/excel-js/ClientApp/package-lock.json +++ b/Samples/Office.ASP.NETCoreReactAddins/excel-js/ClientApp/package-lock.json @@ -4961,9 +4961,9 @@ "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==" }, "node_modules/body-parser": { - "version": "1.20.2", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.2.tgz", - "integrity": "sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==", + "version": "1.20.3", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.3.tgz", + "integrity": "sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g==", "dependencies": { "bytes": "3.1.2", "content-type": "~1.0.5", @@ -4973,7 +4973,7 @@ "http-errors": "2.0.0", "iconv-lite": "0.4.24", "on-finished": "2.4.1", - "qs": "6.11.0", + "qs": "6.13.0", "raw-body": "2.5.2", "type-is": "~1.6.18", "unpipe": "1.0.0" @@ -5139,12 +5139,18 @@ } }, "node_modules/call-bind": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", - "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz", + "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==", "dependencies": { - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2" + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "set-function-length": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -6142,6 +6148,22 @@ "node": ">= 10" } }, + "node_modules/define-data-property": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", + "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/define-lazy-prop": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", @@ -6474,9 +6496,9 @@ } }, "node_modules/encodeurl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz", + "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==", "engines": { "node": ">= 0.8" } @@ -6550,6 +6572,25 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/es-define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz", + "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==", + "dependencies": { + "get-intrinsic": "^1.2.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "engines": { + "node": ">= 0.4" + } + }, "node_modules/es-module-lexer": { "version": "1.5.4", "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.5.4.tgz", @@ -7319,36 +7360,36 @@ } }, "node_modules/express": { - "version": "4.19.2", - "resolved": "https://registry.npmjs.org/express/-/express-4.19.2.tgz", - "integrity": "sha512-5T6nhjsT+EOMzuck8JjBHARTHfMht0POzlA60WV2pMD3gyXw2LZnZ+ueGdNxG+0calOJcWKbpFcuzLZ91YWq9Q==", + "version": "4.21.0", + "resolved": "https://registry.npmjs.org/express/-/express-4.21.0.tgz", + "integrity": "sha512-VqcNGcj/Id5ZT1LZ/cfihi3ttTn+NJmkli2eZADigjq29qTlWi/hAQ43t/VLPq8+UX06FCEx3ByOYet6ZFblng==", "dependencies": { "accepts": "~1.3.8", "array-flatten": "1.1.1", - "body-parser": "1.20.2", + "body-parser": "1.20.3", "content-disposition": "0.5.4", "content-type": "~1.0.4", "cookie": "0.6.0", "cookie-signature": "1.0.6", "debug": "2.6.9", "depd": "2.0.0", - "encodeurl": "~1.0.2", + "encodeurl": "~2.0.0", "escape-html": "~1.0.3", "etag": "~1.8.1", - "finalhandler": "1.2.0", + "finalhandler": "1.3.1", "fresh": "0.5.2", "http-errors": "2.0.0", - "merge-descriptors": "1.0.1", + "merge-descriptors": "1.0.3", "methods": "~1.1.2", "on-finished": "2.4.1", "parseurl": "~1.3.3", - "path-to-regexp": "0.1.7", + "path-to-regexp": "0.1.10", "proxy-addr": "~2.0.7", - "qs": "6.11.0", + "qs": "6.13.0", "range-parser": "~1.2.1", "safe-buffer": "5.2.1", - "send": "0.18.0", - "serve-static": "1.15.0", + "send": "0.19.0", + "serve-static": "1.16.2", "setprototypeof": "1.2.0", "statuses": "2.0.1", "type-is": "~1.6.18", @@ -7386,9 +7427,9 @@ "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" }, "node_modules/express/node_modules/path-to-regexp": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", - "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=" + "version": "0.1.10", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.10.tgz", + "integrity": "sha512-7lf7qcQidTku0Gu3YDPc8DJ1q7OOucfa/BSsIwjuh56VU7katFvuM8hULfkwB3Fns/rsVF7PwPKVw1sl5KQS9w==" }, "node_modules/express/node_modules/safe-buffer": { "version": "5.2.1", @@ -7575,12 +7616,12 @@ } }, "node_modules/finalhandler": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", - "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.3.1.tgz", + "integrity": "sha512-6BN9trH7bp3qvnrRyzsBz+g3lZxTNZTbVO2EV1CS0WIcDbawYVdYvGflME/9QP0h0pYlCDBCTjYa9nZzMDpyxQ==", "dependencies": { "debug": "2.6.9", - "encodeurl": "~1.0.2", + "encodeurl": "~2.0.0", "escape-html": "~1.0.3", "on-finished": "2.4.1", "parseurl": "~1.3.3", @@ -7923,9 +7964,12 @@ } }, "node_modules/function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, "node_modules/functional-red-black-tree": { "version": "1.0.1", @@ -7949,13 +7993,18 @@ } }, "node_modules/get-intrinsic": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", - "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz", + "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==", "dependencies": { - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1" + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "hasown": "^2.0.0" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -8107,6 +8156,17 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/gopd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", + "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "dependencies": { + "get-intrinsic": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/graceful-fs": { "version": "4.2.11", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", @@ -8168,6 +8228,28 @@ "node": ">=4" } }, + "node_modules/has-property-descriptors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", + "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", + "dependencies": { + "es-define-property": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-proto": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz", + "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/has-symbols": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", @@ -8193,6 +8275,17 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/he": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", @@ -11169,9 +11262,12 @@ } }, "node_modules/merge-descriptors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", - "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=" + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.3.tgz", + "integrity": "sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==", + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } }, "node_modules/merge-stream": { "version": "2.0.0", @@ -11520,9 +11616,12 @@ } }, "node_modules/object-inspect": { - "version": "1.12.0", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.0.tgz", - "integrity": "sha512-Ho2z80bVIvJloH+YzRmpZVQe87+qASmBUKZDWgx9cu+KDrX2ZDH/3tMy+gXbZETVGs2M8YdxObOh7XAtim9Y0g==", + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.2.tgz", + "integrity": "sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g==", + "engines": { + "node": ">= 0.4" + }, "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -11904,9 +12003,9 @@ "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" }, "node_modules/path-to-regexp": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.8.0.tgz", - "integrity": "sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA==", + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.9.0.tgz", + "integrity": "sha512-xIp7/apCFJuUHdDLWe8O1HIkb0kQrOMb/0u6FXQjemHn/ii5LrIzU6bdECnsiTF/GjZkMEKg1xdiZwNqDYlZ6g==", "dependencies": { "isarray": "0.0.1" } @@ -13311,11 +13410,11 @@ } }, "node_modules/qs": { - "version": "6.11.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", - "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.13.0.tgz", + "integrity": "sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==", "dependencies": { - "side-channel": "^1.0.4" + "side-channel": "^1.0.6" }, "engines": { "node": ">=0.6" @@ -14289,9 +14388,9 @@ } }, "node_modules/rollup": { - "version": "2.70.1", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.70.1.tgz", - "integrity": "sha512-CRYsI5EuzLbXdxC6RnYhOuRdtz4bhejPMSWjsFLfVM/7w/85n2szZv6yExqUXsBdz5KT8eoubeyDUDjhLHEslA==", + "version": "2.79.2", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.79.2.tgz", + "integrity": "sha512-fS6iqSPZDs3dr/y7Od6y5nha8dW1YnbgtsyotCVvoFGKbERG++CVRFv1meyGDE1SNItQA8BrnCw7ScdAhRJ3XQ==", "bin": { "rollup": "dist/bin/rollup" }, @@ -14498,9 +14597,9 @@ } }, "node_modules/send": { - "version": "0.18.0", - "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", - "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", + "version": "0.19.0", + "resolved": "https://registry.npmjs.org/send/-/send-0.19.0.tgz", + "integrity": "sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw==", "dependencies": { "debug": "2.6.9", "depd": "2.0.0", @@ -14541,6 +14640,14 @@ "node": ">= 0.8" } }, + "node_modules/send/node_modules/encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", + "engines": { + "node": ">= 0.8" + } + }, "node_modules/send/node_modules/ms": { "version": "2.1.3", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", @@ -14617,19 +14724,35 @@ "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==" }, "node_modules/serve-static": { - "version": "1.15.0", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz", - "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==", + "version": "1.16.2", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.16.2.tgz", + "integrity": "sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw==", "dependencies": { - "encodeurl": "~1.0.2", + "encodeurl": "~2.0.0", "escape-html": "~1.0.3", "parseurl": "~1.3.3", - "send": "0.18.0" + "send": "0.19.0" }, "engines": { "node": ">= 0.8.0" } }, + "node_modules/set-function-length": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", + "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", + "dependencies": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/setprototypeof": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", @@ -14669,13 +14792,17 @@ } }, "node_modules/side-channel": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", - "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz", + "integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==", "dependencies": { - "call-bind": "^1.0.0", - "get-intrinsic": "^1.0.2", - "object-inspect": "^1.9.0" + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.4", + "object-inspect": "^1.13.1" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -20269,9 +20396,9 @@ "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==" }, "body-parser": { - "version": "1.20.2", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.2.tgz", - "integrity": "sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==", + "version": "1.20.3", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.3.tgz", + "integrity": "sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g==", "requires": { "bytes": "3.1.2", "content-type": "~1.0.5", @@ -20281,7 +20408,7 @@ "http-errors": "2.0.0", "iconv-lite": "0.4.24", "on-finished": "2.4.1", - "qs": "6.11.0", + "qs": "6.13.0", "raw-body": "2.5.2", "type-is": "~1.6.18", "unpipe": "1.0.0" @@ -20397,12 +20524,15 @@ "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=" }, "call-bind": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", - "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz", + "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==", "requires": { - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2" + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "set-function-length": "^1.2.1" } }, "callsites": { @@ -21109,6 +21239,16 @@ "execa": "^5.0.0" } }, + "define-data-property": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", + "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", + "requires": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "gopd": "^1.0.1" + } + }, "define-lazy-prop": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", @@ -21361,9 +21501,9 @@ "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==" }, "encodeurl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==" + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz", + "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==" }, "enhanced-resolve": { "version": "5.17.1", @@ -21422,6 +21562,19 @@ "unbox-primitive": "^1.0.1" } }, + "es-define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz", + "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==", + "requires": { + "get-intrinsic": "^1.2.4" + } + }, + "es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==" + }, "es-module-lexer": { "version": "1.5.4", "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.5.4.tgz", @@ -21973,36 +22126,36 @@ } }, "express": { - "version": "4.19.2", - "resolved": "https://registry.npmjs.org/express/-/express-4.19.2.tgz", - "integrity": "sha512-5T6nhjsT+EOMzuck8JjBHARTHfMht0POzlA60WV2pMD3gyXw2LZnZ+ueGdNxG+0calOJcWKbpFcuzLZ91YWq9Q==", + "version": "4.21.0", + "resolved": "https://registry.npmjs.org/express/-/express-4.21.0.tgz", + "integrity": "sha512-VqcNGcj/Id5ZT1LZ/cfihi3ttTn+NJmkli2eZADigjq29qTlWi/hAQ43t/VLPq8+UX06FCEx3ByOYet6ZFblng==", "requires": { "accepts": "~1.3.8", "array-flatten": "1.1.1", - "body-parser": "1.20.2", + "body-parser": "1.20.3", "content-disposition": "0.5.4", "content-type": "~1.0.4", "cookie": "0.6.0", "cookie-signature": "1.0.6", "debug": "2.6.9", "depd": "2.0.0", - "encodeurl": "~1.0.2", + "encodeurl": "~2.0.0", "escape-html": "~1.0.3", "etag": "~1.8.1", - "finalhandler": "1.2.0", + "finalhandler": "1.3.1", "fresh": "0.5.2", "http-errors": "2.0.0", - "merge-descriptors": "1.0.1", + "merge-descriptors": "1.0.3", "methods": "~1.1.2", "on-finished": "2.4.1", "parseurl": "~1.3.3", - "path-to-regexp": "0.1.7", + "path-to-regexp": "0.1.10", "proxy-addr": "~2.0.7", - "qs": "6.11.0", + "qs": "6.13.0", "range-parser": "~1.2.1", "safe-buffer": "5.2.1", - "send": "0.18.0", - "serve-static": "1.15.0", + "send": "0.19.0", + "serve-static": "1.16.2", "setprototypeof": "1.2.0", "statuses": "2.0.1", "type-is": "~1.6.18", @@ -22034,9 +22187,9 @@ "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" }, "path-to-regexp": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", - "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=" + "version": "0.1.10", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.10.tgz", + "integrity": "sha512-7lf7qcQidTku0Gu3YDPc8DJ1q7OOucfa/BSsIwjuh56VU7katFvuM8hULfkwB3Fns/rsVF7PwPKVw1sl5KQS9w==" }, "safe-buffer": { "version": "5.2.1", @@ -22180,12 +22333,12 @@ } }, "finalhandler": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", - "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.3.1.tgz", + "integrity": "sha512-6BN9trH7bp3qvnrRyzsBz+g3lZxTNZTbVO2EV1CS0WIcDbawYVdYvGflME/9QP0h0pYlCDBCTjYa9nZzMDpyxQ==", "requires": { "debug": "2.6.9", - "encodeurl": "~1.0.2", + "encodeurl": "~2.0.0", "escape-html": "~1.0.3", "on-finished": "2.4.1", "parseurl": "~1.3.3", @@ -22413,9 +22566,9 @@ "optional": true }, "function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==" }, "functional-red-black-tree": { "version": "1.0.1", @@ -22433,13 +22586,15 @@ "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==" }, "get-intrinsic": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", - "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz", + "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==", "requires": { - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1" + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "hasown": "^2.0.0" } }, "get-own-enumerable-property-symbols": { @@ -22548,6 +22703,14 @@ "slash": "^3.0.0" } }, + "gopd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", + "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "requires": { + "get-intrinsic": "^1.1.3" + } + }, "graceful-fs": { "version": "4.2.11", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", @@ -22594,6 +22757,19 @@ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" }, + "has-property-descriptors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", + "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", + "requires": { + "es-define-property": "^1.0.0" + } + }, + "has-proto": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz", + "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==" + }, "has-symbols": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", @@ -22607,6 +22783,14 @@ "has-symbols": "^1.0.2" } }, + "hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "requires": { + "function-bind": "^1.1.2" + } + }, "he": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", @@ -24768,9 +24952,9 @@ } }, "merge-descriptors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", - "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=" + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.3.tgz", + "integrity": "sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==" }, "merge-stream": { "version": "2.0.0", @@ -25020,9 +25204,9 @@ "integrity": "sha512-gScRMn0bS5fH+IuwyIFgnh9zBdo4DV+6GhygmWM9HyNJSgS0hScp1f5vjtm7oIIOiT9trXrShAkLFSc2IqKNgw==" }, "object-inspect": { - "version": "1.12.0", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.0.tgz", - "integrity": "sha512-Ho2z80bVIvJloH+YzRmpZVQe87+qASmBUKZDWgx9cu+KDrX2ZDH/3tMy+gXbZETVGs2M8YdxObOh7XAtim9Y0g==" + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.2.tgz", + "integrity": "sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g==" }, "object-is": { "version": "1.1.2", @@ -25302,9 +25486,9 @@ "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" }, "path-to-regexp": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.8.0.tgz", - "integrity": "sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA==", + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.9.0.tgz", + "integrity": "sha512-xIp7/apCFJuUHdDLWe8O1HIkb0kQrOMb/0u6FXQjemHn/ii5LrIzU6bdECnsiTF/GjZkMEKg1xdiZwNqDYlZ6g==", "requires": { "isarray": "0.0.1" } @@ -26192,11 +26376,11 @@ "integrity": "sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=" }, "qs": { - "version": "6.11.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", - "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.13.0.tgz", + "integrity": "sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==", "requires": { - "side-channel": "^1.0.4" + "side-channel": "^1.0.6" } }, "querystringify": { @@ -26903,9 +27087,9 @@ } }, "rollup": { - "version": "2.70.1", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.70.1.tgz", - "integrity": "sha512-CRYsI5EuzLbXdxC6RnYhOuRdtz4bhejPMSWjsFLfVM/7w/85n2szZv6yExqUXsBdz5KT8eoubeyDUDjhLHEslA==", + "version": "2.79.2", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.79.2.tgz", + "integrity": "sha512-fS6iqSPZDs3dr/y7Od6y5nha8dW1YnbgtsyotCVvoFGKbERG++CVRFv1meyGDE1SNItQA8BrnCw7ScdAhRJ3XQ==", "requires": { "fsevents": "~2.3.2" } @@ -27038,9 +27222,9 @@ "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==" }, "send": { - "version": "0.18.0", - "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", - "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", + "version": "0.19.0", + "resolved": "https://registry.npmjs.org/send/-/send-0.19.0.tgz", + "integrity": "sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw==", "requires": { "debug": "2.6.9", "depd": "2.0.0", @@ -27077,6 +27261,11 @@ "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==" }, + "encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==" + }, "ms": { "version": "2.1.3", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", @@ -27148,14 +27337,27 @@ } }, "serve-static": { - "version": "1.15.0", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz", - "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==", + "version": "1.16.2", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.16.2.tgz", + "integrity": "sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw==", "requires": { - "encodeurl": "~1.0.2", + "encodeurl": "~2.0.0", "escape-html": "~1.0.3", "parseurl": "~1.3.3", - "send": "0.18.0" + "send": "0.19.0" + } + }, + "set-function-length": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", + "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", + "requires": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.2" } }, "setprototypeof": { @@ -27188,13 +27390,14 @@ "integrity": "sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==" }, "side-channel": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", - "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz", + "integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==", "requires": { - "call-bind": "^1.0.0", - "get-intrinsic": "^1.0.2", - "object-inspect": "^1.9.0" + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.4", + "object-inspect": "^1.13.1" } }, "signal-exit": { diff --git a/Samples/Office.ASP.NETCoreReactAddins/excel-ts/ClientApp/package-lock.json b/Samples/Office.ASP.NETCoreReactAddins/excel-ts/ClientApp/package-lock.json index 93ac0496e..ee62d3420 100644 --- a/Samples/Office.ASP.NETCoreReactAddins/excel-ts/ClientApp/package-lock.json +++ b/Samples/Office.ASP.NETCoreReactAddins/excel-ts/ClientApp/package-lock.json @@ -4940,9 +4940,9 @@ "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==" }, "node_modules/body-parser": { - "version": "1.20.2", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.2.tgz", - "integrity": "sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==", + "version": "1.20.3", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.3.tgz", + "integrity": "sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g==", "dependencies": { "bytes": "3.1.2", "content-type": "~1.0.5", @@ -4952,7 +4952,7 @@ "http-errors": "2.0.0", "iconv-lite": "0.4.24", "on-finished": "2.4.1", - "qs": "6.11.0", + "qs": "6.13.0", "raw-body": "2.5.2", "type-is": "~1.6.18", "unpipe": "1.0.0" @@ -5116,12 +5116,18 @@ } }, "node_modules/call-bind": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", - "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz", + "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==", "dependencies": { - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2" + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "set-function-length": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -6113,6 +6119,22 @@ "node": ">= 10" } }, + "node_modules/define-data-property": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", + "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/define-lazy-prop": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", @@ -6438,9 +6460,9 @@ } }, "node_modules/encodeurl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz", + "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==", "engines": { "node": ">= 0.8" } @@ -6514,6 +6536,25 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/es-define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz", + "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==", + "dependencies": { + "get-intrinsic": "^1.2.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "engines": { + "node": ">= 0.4" + } + }, "node_modules/es-module-lexer": { "version": "0.9.3", "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-0.9.3.tgz", @@ -7315,36 +7356,36 @@ } }, "node_modules/express": { - "version": "4.19.2", - "resolved": "https://registry.npmjs.org/express/-/express-4.19.2.tgz", - "integrity": "sha512-5T6nhjsT+EOMzuck8JjBHARTHfMht0POzlA60WV2pMD3gyXw2LZnZ+ueGdNxG+0calOJcWKbpFcuzLZ91YWq9Q==", + "version": "4.21.0", + "resolved": "https://registry.npmjs.org/express/-/express-4.21.0.tgz", + "integrity": "sha512-VqcNGcj/Id5ZT1LZ/cfihi3ttTn+NJmkli2eZADigjq29qTlWi/hAQ43t/VLPq8+UX06FCEx3ByOYet6ZFblng==", "dependencies": { "accepts": "~1.3.8", "array-flatten": "1.1.1", - "body-parser": "1.20.2", + "body-parser": "1.20.3", "content-disposition": "0.5.4", "content-type": "~1.0.4", "cookie": "0.6.0", "cookie-signature": "1.0.6", "debug": "2.6.9", "depd": "2.0.0", - "encodeurl": "~1.0.2", + "encodeurl": "~2.0.0", "escape-html": "~1.0.3", "etag": "~1.8.1", - "finalhandler": "1.2.0", + "finalhandler": "1.3.1", "fresh": "0.5.2", "http-errors": "2.0.0", - "merge-descriptors": "1.0.1", + "merge-descriptors": "1.0.3", "methods": "~1.1.2", "on-finished": "2.4.1", "parseurl": "~1.3.3", - "path-to-regexp": "0.1.7", + "path-to-regexp": "0.1.10", "proxy-addr": "~2.0.7", - "qs": "6.11.0", + "qs": "6.13.0", "range-parser": "~1.2.1", "safe-buffer": "5.2.1", - "send": "0.18.0", - "serve-static": "1.15.0", + "send": "0.19.0", + "serve-static": "1.16.2", "setprototypeof": "1.2.0", "statuses": "2.0.1", "type-is": "~1.6.18", @@ -7382,9 +7423,9 @@ "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" }, "node_modules/express/node_modules/path-to-regexp": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", - "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=" + "version": "0.1.10", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.10.tgz", + "integrity": "sha512-7lf7qcQidTku0Gu3YDPc8DJ1q7OOucfa/BSsIwjuh56VU7katFvuM8hULfkwB3Fns/rsVF7PwPKVw1sl5KQS9w==" }, "node_modules/express/node_modules/safe-buffer": { "version": "5.2.1", @@ -7568,12 +7609,12 @@ } }, "node_modules/finalhandler": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", - "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.3.1.tgz", + "integrity": "sha512-6BN9trH7bp3qvnrRyzsBz+g3lZxTNZTbVO2EV1CS0WIcDbawYVdYvGflME/9QP0h0pYlCDBCTjYa9nZzMDpyxQ==", "dependencies": { "debug": "2.6.9", - "encodeurl": "~1.0.2", + "encodeurl": "~2.0.0", "escape-html": "~1.0.3", "on-finished": "2.4.1", "parseurl": "~1.3.3", @@ -7915,8 +7956,12 @@ } }, "node_modules/function-bind": { - "version": "1.1.1", - "license": "MIT" + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, "node_modules/functional-red-black-tree": { "version": "1.0.1", @@ -7939,13 +7984,18 @@ } }, "node_modules/get-intrinsic": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", - "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz", + "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==", "dependencies": { - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1" + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "hasown": "^2.0.0" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -8094,6 +8144,17 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/gopd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", + "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "dependencies": { + "get-intrinsic": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/graceful-fs": { "version": "4.2.9", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.9.tgz", @@ -8152,6 +8213,28 @@ "node": ">=4" } }, + "node_modules/has-property-descriptors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", + "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", + "dependencies": { + "es-define-property": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-proto": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz", + "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/has-symbols": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", @@ -8177,6 +8260,17 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/he": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", @@ -11133,9 +11227,12 @@ } }, "node_modules/merge-descriptors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", - "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=" + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.3.tgz", + "integrity": "sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==", + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } }, "node_modules/merge-stream": { "version": "2.0.0", @@ -11478,9 +11575,12 @@ } }, "node_modules/object-inspect": { - "version": "1.12.0", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.0.tgz", - "integrity": "sha512-Ho2z80bVIvJloH+YzRmpZVQe87+qASmBUKZDWgx9cu+KDrX2ZDH/3tMy+gXbZETVGs2M8YdxObOh7XAtim9Y0g==", + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.2.tgz", + "integrity": "sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g==", + "engines": { + "node": ">= 0.4" + }, "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -11837,8 +11937,9 @@ "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" }, "node_modules/path-to-regexp": { - "version": "1.8.0", - "license": "MIT", + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.9.0.tgz", + "integrity": "sha512-xIp7/apCFJuUHdDLWe8O1HIkb0kQrOMb/0u6FXQjemHn/ii5LrIzU6bdECnsiTF/GjZkMEKg1xdiZwNqDYlZ6g==", "dependencies": { "isarray": "0.0.1" } @@ -13238,11 +13339,11 @@ } }, "node_modules/qs": { - "version": "6.11.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", - "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.13.0.tgz", + "integrity": "sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==", "dependencies": { - "side-channel": "^1.0.4" + "side-channel": "^1.0.6" }, "engines": { "node": ">=0.6" @@ -14406,9 +14507,9 @@ } }, "node_modules/send": { - "version": "0.18.0", - "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", - "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", + "version": "0.19.0", + "resolved": "https://registry.npmjs.org/send/-/send-0.19.0.tgz", + "integrity": "sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw==", "dependencies": { "debug": "2.6.9", "depd": "2.0.0", @@ -14449,6 +14550,14 @@ "node": ">= 0.8" } }, + "node_modules/send/node_modules/encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", + "engines": { + "node": ">= 0.8" + } + }, "node_modules/send/node_modules/ms": { "version": "2.1.3", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", @@ -14525,19 +14634,35 @@ "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==" }, "node_modules/serve-static": { - "version": "1.15.0", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz", - "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==", + "version": "1.16.2", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.16.2.tgz", + "integrity": "sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw==", "dependencies": { - "encodeurl": "~1.0.2", + "encodeurl": "~2.0.0", "escape-html": "~1.0.3", "parseurl": "~1.3.3", - "send": "0.18.0" + "send": "0.19.0" }, "engines": { "node": ">= 0.8.0" } }, + "node_modules/set-function-length": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", + "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", + "dependencies": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/setprototypeof": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", @@ -14576,13 +14701,17 @@ } }, "node_modules/side-channel": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", - "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz", + "integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==", "dependencies": { - "call-bind": "^1.0.0", - "get-intrinsic": "^1.0.2", - "object-inspect": "^1.9.0" + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.4", + "object-inspect": "^1.13.1" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -20109,9 +20238,9 @@ "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==" }, "body-parser": { - "version": "1.20.2", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.2.tgz", - "integrity": "sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==", + "version": "1.20.3", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.3.tgz", + "integrity": "sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g==", "requires": { "bytes": "3.1.2", "content-type": "~1.0.5", @@ -20121,7 +20250,7 @@ "http-errors": "2.0.0", "iconv-lite": "0.4.24", "on-finished": "2.4.1", - "qs": "6.11.0", + "qs": "6.13.0", "raw-body": "2.5.2", "type-is": "~1.6.18", "unpipe": "1.0.0" @@ -20233,12 +20362,15 @@ "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=" }, "call-bind": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", - "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz", + "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==", "requires": { - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2" + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "set-function-length": "^1.2.1" } }, "callsites": { @@ -20933,6 +21065,16 @@ "execa": "^5.0.0" } }, + "define-data-property": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", + "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", + "requires": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "gopd": "^1.0.1" + } + }, "define-lazy-prop": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", @@ -21173,9 +21315,9 @@ "version": "3.0.0" }, "encodeurl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==" + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz", + "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==" }, "enhanced-resolve": { "version": "5.12.0", @@ -21234,6 +21376,19 @@ "unbox-primitive": "^1.0.1" } }, + "es-define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz", + "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==", + "requires": { + "get-intrinsic": "^1.2.4" + } + }, + "es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==" + }, "es-module-lexer": { "version": "0.9.3", "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-0.9.3.tgz", @@ -21794,36 +21949,36 @@ } }, "express": { - "version": "4.19.2", - "resolved": "https://registry.npmjs.org/express/-/express-4.19.2.tgz", - "integrity": "sha512-5T6nhjsT+EOMzuck8JjBHARTHfMht0POzlA60WV2pMD3gyXw2LZnZ+ueGdNxG+0calOJcWKbpFcuzLZ91YWq9Q==", + "version": "4.21.0", + "resolved": "https://registry.npmjs.org/express/-/express-4.21.0.tgz", + "integrity": "sha512-VqcNGcj/Id5ZT1LZ/cfihi3ttTn+NJmkli2eZADigjq29qTlWi/hAQ43t/VLPq8+UX06FCEx3ByOYet6ZFblng==", "requires": { "accepts": "~1.3.8", "array-flatten": "1.1.1", - "body-parser": "1.20.2", + "body-parser": "1.20.3", "content-disposition": "0.5.4", "content-type": "~1.0.4", "cookie": "0.6.0", "cookie-signature": "1.0.6", "debug": "2.6.9", "depd": "2.0.0", - "encodeurl": "~1.0.2", + "encodeurl": "~2.0.0", "escape-html": "~1.0.3", "etag": "~1.8.1", - "finalhandler": "1.2.0", + "finalhandler": "1.3.1", "fresh": "0.5.2", "http-errors": "2.0.0", - "merge-descriptors": "1.0.1", + "merge-descriptors": "1.0.3", "methods": "~1.1.2", "on-finished": "2.4.1", "parseurl": "~1.3.3", - "path-to-regexp": "0.1.7", + "path-to-regexp": "0.1.10", "proxy-addr": "~2.0.7", - "qs": "6.11.0", + "qs": "6.13.0", "range-parser": "~1.2.1", "safe-buffer": "5.2.1", - "send": "0.18.0", - "serve-static": "1.15.0", + "send": "0.19.0", + "serve-static": "1.16.2", "setprototypeof": "1.2.0", "statuses": "2.0.1", "type-is": "~1.6.18", @@ -21855,9 +22010,9 @@ "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" }, "path-to-regexp": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", - "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=" + "version": "0.1.10", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.10.tgz", + "integrity": "sha512-7lf7qcQidTku0Gu3YDPc8DJ1q7OOucfa/BSsIwjuh56VU7katFvuM8hULfkwB3Fns/rsVF7PwPKVw1sl5KQS9w==" }, "safe-buffer": { "version": "5.2.1", @@ -21995,12 +22150,12 @@ } }, "finalhandler": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", - "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.3.1.tgz", + "integrity": "sha512-6BN9trH7bp3qvnrRyzsBz+g3lZxTNZTbVO2EV1CS0WIcDbawYVdYvGflME/9QP0h0pYlCDBCTjYa9nZzMDpyxQ==", "requires": { "debug": "2.6.9", - "encodeurl": "~1.0.2", + "encodeurl": "~2.0.0", "escape-html": "~1.0.3", "on-finished": "2.4.1", "parseurl": "~1.3.3", @@ -22226,7 +22381,9 @@ "optional": true }, "function-bind": { - "version": "1.1.1" + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==" }, "functional-red-black-tree": { "version": "1.0.1" @@ -22242,13 +22399,15 @@ "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==" }, "get-intrinsic": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", - "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz", + "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==", "requires": { - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1" + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "hasown": "^2.0.0" } }, "get-own-enumerable-property-symbols": { @@ -22351,6 +22510,14 @@ "slash": "^3.0.0" } }, + "gopd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", + "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "requires": { + "get-intrinsic": "^1.1.3" + } + }, "graceful-fs": { "version": "4.2.9", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.9.tgz", @@ -22391,6 +22558,19 @@ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" }, + "has-property-descriptors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", + "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", + "requires": { + "es-define-property": "^1.0.0" + } + }, + "has-proto": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz", + "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==" + }, "has-symbols": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", @@ -22404,6 +22584,14 @@ "has-symbols": "^1.0.2" } }, + "hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "requires": { + "function-bind": "^1.1.2" + } + }, "he": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", @@ -24525,9 +24713,9 @@ } }, "merge-descriptors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", - "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=" + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.3.tgz", + "integrity": "sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==" }, "merge-stream": { "version": "2.0.0", @@ -24767,9 +24955,9 @@ "integrity": "sha512-gScRMn0bS5fH+IuwyIFgnh9zBdo4DV+6GhygmWM9HyNJSgS0hScp1f5vjtm7oIIOiT9trXrShAkLFSc2IqKNgw==" }, "object-inspect": { - "version": "1.12.0", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.0.tgz", - "integrity": "sha512-Ho2z80bVIvJloH+YzRmpZVQe87+qASmBUKZDWgx9cu+KDrX2ZDH/3tMy+gXbZETVGs2M8YdxObOh7XAtim9Y0g==" + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.2.tgz", + "integrity": "sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g==" }, "object-is": { "version": "1.1.2", @@ -25022,7 +25210,9 @@ "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" }, "path-to-regexp": { - "version": "1.8.0", + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.9.0.tgz", + "integrity": "sha512-xIp7/apCFJuUHdDLWe8O1HIkb0kQrOMb/0u6FXQjemHn/ii5LrIzU6bdECnsiTF/GjZkMEKg1xdiZwNqDYlZ6g==", "requires": { "isarray": "0.0.1" } @@ -25902,11 +26092,11 @@ "integrity": "sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=" }, "qs": { - "version": "6.11.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", - "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.13.0.tgz", + "integrity": "sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==", "requires": { - "side-channel": "^1.0.4" + "side-channel": "^1.0.6" } }, "querystringify": { @@ -26710,9 +26900,9 @@ "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==" }, "send": { - "version": "0.18.0", - "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", - "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", + "version": "0.19.0", + "resolved": "https://registry.npmjs.org/send/-/send-0.19.0.tgz", + "integrity": "sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw==", "requires": { "debug": "2.6.9", "depd": "2.0.0", @@ -26749,6 +26939,11 @@ "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==" }, + "encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==" + }, "ms": { "version": "2.1.3", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", @@ -26820,14 +27015,27 @@ } }, "serve-static": { - "version": "1.15.0", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz", - "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==", + "version": "1.16.2", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.16.2.tgz", + "integrity": "sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw==", "requires": { - "encodeurl": "~1.0.2", + "encodeurl": "~2.0.0", "escape-html": "~1.0.3", "parseurl": "~1.3.3", - "send": "0.18.0" + "send": "0.19.0" + } + }, + "set-function-length": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", + "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", + "requires": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.2" } }, "setprototypeof": { @@ -26858,13 +27066,14 @@ "integrity": "sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==" }, "side-channel": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", - "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz", + "integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==", "requires": { - "call-bind": "^1.0.0", - "get-intrinsic": "^1.0.2", - "object-inspect": "^1.9.0" + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.4", + "object-inspect": "^1.13.1" } }, "signal-exit": { diff --git a/Samples/Office.TypeScriptAddin/Office.TypeScriptAddinWeb/AddIn/Home/Home.html b/Samples/Office.TypeScriptAddin/Office.TypeScriptAddinWeb/AddIn/Home/Home.html index 26e17bb18..f77d1de1c 100644 --- a/Samples/Office.TypeScriptAddin/Office.TypeScriptAddinWeb/AddIn/Home/Home.html +++ b/Samples/Office.TypeScriptAddin/Office.TypeScriptAddinWeb/AddIn/Home/Home.html @@ -7,7 +7,7 @@ - + diff --git a/Samples/Office.TypeScriptAddin/Office.TypeScriptAddinWeb/Scripts/_references.js b/Samples/Office.TypeScriptAddin/Office.TypeScriptAddinWeb/Scripts/_references.js index 8a93d25a9..6ae3488e7 100644 --- a/Samples/Office.TypeScriptAddin/Office.TypeScriptAddinWeb/Scripts/_references.js +++ b/Samples/Office.TypeScriptAddin/Office.TypeScriptAddinWeb/Scripts/_references.js @@ -6,4 +6,4 @@ // /// /* Use online copy of Office.js for intellisense */ /// -/// +/// diff --git a/Samples/Outlook.ConsumeGraphAPI/Outlook.AddInSampleWeb/Functions/FunctionFile.html b/Samples/Outlook.ConsumeGraphAPI/Outlook.AddInSampleWeb/Functions/FunctionFile.html index fd9fa4ba1..e846c0303 100644 --- a/Samples/Outlook.ConsumeGraphAPI/Outlook.AddInSampleWeb/Functions/FunctionFile.html +++ b/Samples/Outlook.ConsumeGraphAPI/Outlook.AddInSampleWeb/Functions/FunctionFile.html @@ -5,7 +5,7 @@ - + diff --git a/Samples/Outlook.ConsumeGraphAPI/Outlook.AddInSampleWeb/MessageRead.html b/Samples/Outlook.ConsumeGraphAPI/Outlook.AddInSampleWeb/MessageRead.html index a7d0715b9..fe4290d57 100644 --- a/Samples/Outlook.ConsumeGraphAPI/Outlook.AddInSampleWeb/MessageRead.html +++ b/Samples/Outlook.ConsumeGraphAPI/Outlook.AddInSampleWeb/MessageRead.html @@ -7,7 +7,7 @@ - + diff --git a/Samples/Outlook.ConsumeGraphAPI/Outlook.AddInSampleWeb/Scripts/_references.js b/Samples/Outlook.ConsumeGraphAPI/Outlook.AddInSampleWeb/Scripts/_references.js index 8a93d25a9..6ae3488e7 100644 --- a/Samples/Outlook.ConsumeGraphAPI/Outlook.AddInSampleWeb/Scripts/_references.js +++ b/Samples/Outlook.ConsumeGraphAPI/Outlook.AddInSampleWeb/Scripts/_references.js @@ -6,4 +6,4 @@ // /// /* Use online copy of Office.js for intellisense */ /// -/// +/// diff --git a/Samples/Outlook.YouTubeApp/Outlook.YouTubeAppWeb/Scripts/_references.js b/Samples/Outlook.YouTubeApp/Outlook.YouTubeAppWeb/Scripts/_references.js index a3549e3e92e8d46854b32e7cfb04b5e5fa99e116..2adbe0071ff6425be592fdb0392d4357b3e4a936 100644 GIT binary patch delta 13 Ucmcb`agSqz4hy5+WK9-B03h)L$p8QV delta 15 Wcmcb|af@Sv4$I^WW}(SxOfmp1*#yu4 diff --git a/Samples/VSTO-shared-code-migration/completed/CellAnalyzerOfficeAddinWeb/Functions/FunctionFile.html b/Samples/VSTO-shared-code-migration/completed/CellAnalyzerOfficeAddinWeb/Functions/FunctionFile.html index 5ef650a50..b9951653b 100644 --- a/Samples/VSTO-shared-code-migration/completed/CellAnalyzerOfficeAddinWeb/Functions/FunctionFile.html +++ b/Samples/VSTO-shared-code-migration/completed/CellAnalyzerOfficeAddinWeb/Functions/FunctionFile.html @@ -5,7 +5,7 @@ - + diff --git a/Samples/VSTO-shared-code-migration/completed/CellAnalyzerOfficeAddinWeb/Home.html b/Samples/VSTO-shared-code-migration/completed/CellAnalyzerOfficeAddinWeb/Home.html index b5b7d5af1..a303f1ec4 100644 --- a/Samples/VSTO-shared-code-migration/completed/CellAnalyzerOfficeAddinWeb/Home.html +++ b/Samples/VSTO-shared-code-migration/completed/CellAnalyzerOfficeAddinWeb/Home.html @@ -6,7 +6,7 @@ Excel Add-In with Commands Sample - + diff --git a/Samples/VSTO-shared-code-migration/completed/CellAnalyzerWebAddinWeb/Functions/FunctionFile.html b/Samples/VSTO-shared-code-migration/completed/CellAnalyzerWebAddinWeb/Functions/FunctionFile.html index 5ef650a50..b9951653b 100644 --- a/Samples/VSTO-shared-code-migration/completed/CellAnalyzerWebAddinWeb/Functions/FunctionFile.html +++ b/Samples/VSTO-shared-code-migration/completed/CellAnalyzerWebAddinWeb/Functions/FunctionFile.html @@ -5,7 +5,7 @@ - + diff --git a/Samples/VSTO-shared-code-migration/completed/CellAnalyzerWebAddinWeb/Home.html b/Samples/VSTO-shared-code-migration/completed/CellAnalyzerWebAddinWeb/Home.html index 1cf7af8e0..64f15082b 100644 --- a/Samples/VSTO-shared-code-migration/completed/CellAnalyzerWebAddinWeb/Home.html +++ b/Samples/VSTO-shared-code-migration/completed/CellAnalyzerWebAddinWeb/Home.html @@ -12,7 +12,7 @@ - + diff --git a/Samples/auth/Office-Add-in-ASPNET-SSO/Begin/Office-Add-in-ASPNETCore-WebAPI/Views/Shared/_Layout.cshtml b/Samples/auth/Office-Add-in-ASPNET-SSO/Begin/Office-Add-in-ASPNETCore-WebAPI/Views/Shared/_Layout.cshtml index e1c090037..957c65c04 100644 --- a/Samples/auth/Office-Add-in-ASPNET-SSO/Begin/Office-Add-in-ASPNETCore-WebAPI/Views/Shared/_Layout.cshtml +++ b/Samples/auth/Office-Add-in-ASPNET-SSO/Begin/Office-Add-in-ASPNETCore-WebAPI/Views/Shared/_Layout.cshtml @@ -21,7 +21,7 @@ @* This office.js library holds the JavaScript API for Office.*@ - + diff --git a/Samples/auth/Office-Add-in-ASPNET-SSO/Complete/Office-Add-in-ASPNETCore-WebAPI/Views/Shared/_Layout.cshtml b/Samples/auth/Office-Add-in-ASPNET-SSO/Complete/Office-Add-in-ASPNETCore-WebAPI/Views/Shared/_Layout.cshtml index edf220ec8..f50feb35f 100644 --- a/Samples/auth/Office-Add-in-ASPNET-SSO/Complete/Office-Add-in-ASPNETCore-WebAPI/Views/Shared/_Layout.cshtml +++ b/Samples/auth/Office-Add-in-ASPNET-SSO/Complete/Office-Add-in-ASPNETCore-WebAPI/Views/Shared/_Layout.cshtml @@ -21,7 +21,7 @@ @* This office.js library holds the JavaScript API for Office.*@ - + diff --git a/Samples/auth/Office-Add-in-Microsoft-Graph-ASPNET/Office-Add-in-Microsoft-Graph-ASPNETWeb/Views/Shared/_Layout.cshtml b/Samples/auth/Office-Add-in-Microsoft-Graph-ASPNET/Office-Add-in-Microsoft-Graph-ASPNETWeb/Views/Shared/_Layout.cshtml index ab992104b..0af57459d 100644 --- a/Samples/auth/Office-Add-in-Microsoft-Graph-ASPNET/Office-Add-in-Microsoft-Graph-ASPNETWeb/Views/Shared/_Layout.cshtml +++ b/Samples/auth/Office-Add-in-Microsoft-Graph-ASPNET/Office-Add-in-Microsoft-Graph-ASPNETWeb/Views/Shared/_Layout.cshtml @@ -10,7 +10,7 @@ @* This office.js library holds the JavaScript API for Office.*@ - + @* The following two files hold the Office UI Fabric styles and components. *@ diff --git a/Samples/auth/Office-Add-in-Microsoft-Graph-React/login/login.html b/Samples/auth/Office-Add-in-Microsoft-Graph-React/login/login.html index 54de1f287..1c725b19a 100644 --- a/Samples/auth/Office-Add-in-Microsoft-Graph-React/login/login.html +++ b/Samples/auth/Office-Add-in-Microsoft-Graph-React/login/login.html @@ -9,7 +9,7 @@ - + diff --git a/Samples/auth/Office-Add-in-Microsoft-Graph-React/logout/logout.html b/Samples/auth/Office-Add-in-Microsoft-Graph-React/logout/logout.html index ba7fbf993..f5be281e7 100644 --- a/Samples/auth/Office-Add-in-Microsoft-Graph-React/logout/logout.html +++ b/Samples/auth/Office-Add-in-Microsoft-Graph-React/logout/logout.html @@ -9,7 +9,7 @@ - + diff --git a/Samples/auth/Office-Add-in-Microsoft-Graph-React/logoutcomplete/logoutcomplete.html b/Samples/auth/Office-Add-in-Microsoft-Graph-React/logoutcomplete/logoutcomplete.html index 4c280de74..92dcd40cd 100644 --- a/Samples/auth/Office-Add-in-Microsoft-Graph-React/logoutcomplete/logoutcomplete.html +++ b/Samples/auth/Office-Add-in-Microsoft-Graph-React/logoutcomplete/logoutcomplete.html @@ -9,7 +9,7 @@ - + + diff --git a/Samples/auth/Office-Add-in-NodeJS-SSO/Begin/public/dialog.html b/Samples/auth/Office-Add-in-NodeJS-SSO/Begin/public/dialog.html index f6dc774c0..884d93bd9 100644 --- a/Samples/auth/Office-Add-in-NodeJS-SSO/Begin/public/dialog.html +++ b/Samples/auth/Office-Add-in-NodeJS-SSO/Begin/public/dialog.html @@ -15,7 +15,7 @@ crossorigin="anonymous"> - + diff --git a/Samples/auth/Office-Add-in-NodeJS-SSO/Begin/views/layout.pug b/Samples/auth/Office-Add-in-NodeJS-SSO/Begin/views/layout.pug index 92390072a..8080e09e0 100644 --- a/Samples/auth/Office-Add-in-NodeJS-SSO/Begin/views/layout.pug +++ b/Samples/auth/Office-Add-in-NodeJS-SSO/Begin/views/layout.pug @@ -12,7 +12,7 @@ html link(rel='stylesheet', href='https://appsforoffice.microsoft.com/fabric/2.1.0/fabric.components.min.css') link(rel='stylesheet', href='/stylesheets/OfficeThemes.css') link(rel='stylesheet', href='/stylesheets/Site.css') - script(src='https://appsforoffice.microsoft.com/lib/1/hosted/office.js') + script(src='https://appsforoffice.microsoft.com/lib/1.1/hosted/office.js') script(src='https://ajax.aspnetcdn.com/ajax/jQuery/jquery-3.6.0.min.js') script(id="load-msal" src='https://alcdn.msauth.net/browser/2.15.0/js/msal-browser.js') script(src='/javascripts/document.js') diff --git a/Samples/auth/Office-Add-in-NodeJS-SSO/Complete/package-lock.json b/Samples/auth/Office-Add-in-NodeJS-SSO/Complete/package-lock.json index 251d469d4..b48c3724e 100644 --- a/Samples/auth/Office-Add-in-NodeJS-SSO/Complete/package-lock.json +++ b/Samples/auth/Office-Add-in-NodeJS-SSO/Complete/package-lock.json @@ -11,10 +11,10 @@ "@azure/msal-node": "2.6.6", "@types/jquery": "^3.5.29", "@types/office-js": "^1.0.378", - "cookie-parser": "~1.4.6", + "cookie-parser": "~1.4.7", "debug": "~4.3.4", "dotenv": "^16.4.5", - "express": "~4.19.2", + "express": "~4.21.1", "form-urlencoded": "^6.1.4", "http-errors": "~2.0.0", "jquery": "^3.7.1", @@ -305,9 +305,9 @@ } }, "node_modules/body-parser": { - "version": "1.20.2", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.2.tgz", - "integrity": "sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==", + "version": "1.20.3", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.3.tgz", + "integrity": "sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g==", "dependencies": { "bytes": "3.1.2", "content-type": "~1.0.5", @@ -317,7 +317,7 @@ "http-errors": "2.0.0", "iconv-lite": "0.4.24", "on-finished": "2.4.1", - "qs": "6.11.0", + "qs": "6.13.0", "raw-body": "2.5.2", "type-is": "~1.6.18", "unpipe": "1.0.0" @@ -505,19 +505,19 @@ } }, "node_modules/cookie": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.1.tgz", - "integrity": "sha512-ZwrFkGJxUR3EIoXtO+yVE69Eb7KlixbaeAWfBQB9vVsNn/o+Yw69gBWSSDK825hQNdN+wF8zELf3dFNl/kxkUA==", + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.2.tgz", + "integrity": "sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==", "engines": { "node": ">= 0.6" } }, "node_modules/cookie-parser": { - "version": "1.4.6", - "resolved": "https://registry.npmjs.org/cookie-parser/-/cookie-parser-1.4.6.tgz", - "integrity": "sha512-z3IzaNjdwUC2olLIB5/ITd0/setiaFMLYiZJle7xg5Fe9KWAceil7xszYfHHBtDFYLSgJduS2Ty0P1uJdPDJeA==", + "version": "1.4.7", + "resolved": "https://registry.npmjs.org/cookie-parser/-/cookie-parser-1.4.7.tgz", + "integrity": "sha512-nGUvgXnotP3BsjiLX2ypbQnWoGUPIIfHQNZkkC668ntrzGWEZVW70HDEB1qnNGMicPje6EttlIgzo51YSwNQGw==", "dependencies": { - "cookie": "0.4.1", + "cookie": "0.7.2", "cookie-signature": "1.0.6" }, "engines": { @@ -703,9 +703,9 @@ } }, "node_modules/encodeurl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz", + "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==", "engines": { "node": ">= 0.8" } @@ -756,36 +756,36 @@ } }, "node_modules/express": { - "version": "4.19.2", - "resolved": "https://registry.npmjs.org/express/-/express-4.19.2.tgz", - "integrity": "sha512-5T6nhjsT+EOMzuck8JjBHARTHfMht0POzlA60WV2pMD3gyXw2LZnZ+ueGdNxG+0calOJcWKbpFcuzLZ91YWq9Q==", + "version": "4.21.1", + "resolved": "https://registry.npmjs.org/express/-/express-4.21.1.tgz", + "integrity": "sha512-YSFlK1Ee0/GC8QaO91tHcDxJiE/X4FbpAyQWkxAvG6AXCuR65YzK8ua6D9hvi/TzUfZMpc+BwuM1IPw8fmQBiQ==", "dependencies": { "accepts": "~1.3.8", "array-flatten": "1.1.1", - "body-parser": "1.20.2", + "body-parser": "1.20.3", "content-disposition": "0.5.4", "content-type": "~1.0.4", - "cookie": "0.6.0", + "cookie": "0.7.1", "cookie-signature": "1.0.6", "debug": "2.6.9", "depd": "2.0.0", - "encodeurl": "~1.0.2", + "encodeurl": "~2.0.0", "escape-html": "~1.0.3", "etag": "~1.8.1", - "finalhandler": "1.2.0", + "finalhandler": "1.3.1", "fresh": "0.5.2", "http-errors": "2.0.0", - "merge-descriptors": "1.0.1", + "merge-descriptors": "1.0.3", "methods": "~1.1.2", "on-finished": "2.4.1", "parseurl": "~1.3.3", - "path-to-regexp": "0.1.7", + "path-to-regexp": "0.1.10", "proxy-addr": "~2.0.7", - "qs": "6.11.0", + "qs": "6.13.0", "range-parser": "~1.2.1", "safe-buffer": "5.2.1", - "send": "0.18.0", - "serve-static": "1.15.0", + "send": "0.19.0", + "serve-static": "1.16.2", "setprototypeof": "1.2.0", "statuses": "2.0.1", "type-is": "~1.6.18", @@ -797,9 +797,9 @@ } }, "node_modules/express/node_modules/cookie": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.6.0.tgz", - "integrity": "sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==", + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.1.tgz", + "integrity": "sha512-6DnInpx7SJ2AK3+CTUE/ZM0vWTUboZCegxhC2xiIydHR9jNuTAASBrfEpHhiGOZw/nX51bHt6YQl8jsGo4y/0w==", "engines": { "node": ">= 0.6" } @@ -870,12 +870,12 @@ } }, "node_modules/finalhandler": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", - "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.3.1.tgz", + "integrity": "sha512-6BN9trH7bp3qvnrRyzsBz+g3lZxTNZTbVO2EV1CS0WIcDbawYVdYvGflME/9QP0h0pYlCDBCTjYa9nZzMDpyxQ==", "dependencies": { "debug": "2.6.9", - "encodeurl": "~1.0.2", + "encodeurl": "~2.0.0", "escape-html": "~1.0.3", "on-finished": "2.4.1", "parseurl": "~1.3.3", @@ -1428,9 +1428,12 @@ } }, "node_modules/merge-descriptors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", - "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=" + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.3.tgz", + "integrity": "sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==", + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } }, "node_modules/methods": { "version": "1.1.2", @@ -1607,9 +1610,12 @@ } }, "node_modules/object-inspect": { - "version": "1.13.1", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz", - "integrity": "sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==", + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.2.tgz", + "integrity": "sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g==", + "engines": { + "node": ">= 0.4" + }, "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -1737,9 +1743,9 @@ "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" }, "node_modules/path-to-regexp": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", - "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=" + "version": "0.1.10", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.10.tgz", + "integrity": "sha512-7lf7qcQidTku0Gu3YDPc8DJ1q7OOucfa/BSsIwjuh56VU7katFvuM8hULfkwB3Fns/rsVF7PwPKVw1sl5KQS9w==" }, "node_modules/promise": { "version": "7.3.1", @@ -1879,11 +1885,11 @@ "integrity": "sha512-yYELe9Q5q9IQhuvqsZNwA5hfPkMJ8u92bQLIMcsMxf/VADjNtEYptU+inlufAFYcWdHlwNfZOEnOOQrZrcyJCQ==" }, "node_modules/qs": { - "version": "6.11.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", - "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.13.0.tgz", + "integrity": "sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==", "dependencies": { - "side-channel": "^1.0.4" + "side-channel": "^1.0.6" }, "engines": { "node": ">=0.6" @@ -1979,9 +1985,9 @@ } }, "node_modules/send": { - "version": "0.18.0", - "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", - "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", + "version": "0.19.0", + "resolved": "https://registry.npmjs.org/send/-/send-0.19.0.tgz", + "integrity": "sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw==", "dependencies": { "debug": "2.6.9", "depd": "2.0.0", @@ -2014,6 +2020,14 @@ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" }, + "node_modules/send/node_modules/encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", + "engines": { + "node": ">= 0.8" + } + }, "node_modules/send/node_modules/ms": { "version": "2.1.3", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", @@ -2031,14 +2045,14 @@ } }, "node_modules/serve-static": { - "version": "1.15.0", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz", - "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==", + "version": "1.16.2", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.16.2.tgz", + "integrity": "sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw==", "dependencies": { - "encodeurl": "~1.0.2", + "encodeurl": "~2.0.0", "escape-html": "~1.0.3", "parseurl": "~1.3.3", - "send": "0.18.0" + "send": "0.19.0" }, "engines": { "node": ">= 0.8.0" @@ -2500,9 +2514,9 @@ } }, "body-parser": { - "version": "1.20.2", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.2.tgz", - "integrity": "sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==", + "version": "1.20.3", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.3.tgz", + "integrity": "sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g==", "requires": { "bytes": "3.1.2", "content-type": "~1.0.5", @@ -2512,7 +2526,7 @@ "http-errors": "2.0.0", "iconv-lite": "0.4.24", "on-finished": "2.4.1", - "qs": "6.11.0", + "qs": "6.13.0", "raw-body": "2.5.2", "type-is": "~1.6.18", "unpipe": "1.0.0" @@ -2659,16 +2673,16 @@ } }, "cookie": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.1.tgz", - "integrity": "sha512-ZwrFkGJxUR3EIoXtO+yVE69Eb7KlixbaeAWfBQB9vVsNn/o+Yw69gBWSSDK825hQNdN+wF8zELf3dFNl/kxkUA==" + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.2.tgz", + "integrity": "sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==" }, "cookie-parser": { - "version": "1.4.6", - "resolved": "https://registry.npmjs.org/cookie-parser/-/cookie-parser-1.4.6.tgz", - "integrity": "sha512-z3IzaNjdwUC2olLIB5/ITd0/setiaFMLYiZJle7xg5Fe9KWAceil7xszYfHHBtDFYLSgJduS2Ty0P1uJdPDJeA==", + "version": "1.4.7", + "resolved": "https://registry.npmjs.org/cookie-parser/-/cookie-parser-1.4.7.tgz", + "integrity": "sha512-nGUvgXnotP3BsjiLX2ypbQnWoGUPIIfHQNZkkC668ntrzGWEZVW70HDEB1qnNGMicPje6EttlIgzo51YSwNQGw==", "requires": { - "cookie": "0.4.1", + "cookie": "0.7.2", "cookie-signature": "1.0.6" } }, @@ -2812,9 +2826,9 @@ } }, "encodeurl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==" + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz", + "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==" }, "entities": { "version": "1.0.0", @@ -2850,36 +2864,36 @@ "integrity": "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=" }, "express": { - "version": "4.19.2", - "resolved": "https://registry.npmjs.org/express/-/express-4.19.2.tgz", - "integrity": "sha512-5T6nhjsT+EOMzuck8JjBHARTHfMht0POzlA60WV2pMD3gyXw2LZnZ+ueGdNxG+0calOJcWKbpFcuzLZ91YWq9Q==", + "version": "4.21.1", + "resolved": "https://registry.npmjs.org/express/-/express-4.21.1.tgz", + "integrity": "sha512-YSFlK1Ee0/GC8QaO91tHcDxJiE/X4FbpAyQWkxAvG6AXCuR65YzK8ua6D9hvi/TzUfZMpc+BwuM1IPw8fmQBiQ==", "requires": { "accepts": "~1.3.8", "array-flatten": "1.1.1", - "body-parser": "1.20.2", + "body-parser": "1.20.3", "content-disposition": "0.5.4", "content-type": "~1.0.4", - "cookie": "0.6.0", + "cookie": "0.7.1", "cookie-signature": "1.0.6", "debug": "2.6.9", "depd": "2.0.0", - "encodeurl": "~1.0.2", + "encodeurl": "~2.0.0", "escape-html": "~1.0.3", "etag": "~1.8.1", - "finalhandler": "1.2.0", + "finalhandler": "1.3.1", "fresh": "0.5.2", "http-errors": "2.0.0", - "merge-descriptors": "1.0.1", + "merge-descriptors": "1.0.3", "methods": "~1.1.2", "on-finished": "2.4.1", "parseurl": "~1.3.3", - "path-to-regexp": "0.1.7", + "path-to-regexp": "0.1.10", "proxy-addr": "~2.0.7", - "qs": "6.11.0", + "qs": "6.13.0", "range-parser": "~1.2.1", "safe-buffer": "5.2.1", - "send": "0.18.0", - "serve-static": "1.15.0", + "send": "0.19.0", + "serve-static": "1.16.2", "setprototypeof": "1.2.0", "statuses": "2.0.1", "type-is": "~1.6.18", @@ -2888,9 +2902,9 @@ }, "dependencies": { "cookie": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.6.0.tgz", - "integrity": "sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==" + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.1.tgz", + "integrity": "sha512-6DnInpx7SJ2AK3+CTUE/ZM0vWTUboZCegxhC2xiIydHR9jNuTAASBrfEpHhiGOZw/nX51bHt6YQl8jsGo4y/0w==" }, "debug": { "version": "2.6.9", @@ -2930,12 +2944,12 @@ } }, "finalhandler": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", - "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.3.1.tgz", + "integrity": "sha512-6BN9trH7bp3qvnrRyzsBz+g3lZxTNZTbVO2EV1CS0WIcDbawYVdYvGflME/9QP0h0pYlCDBCTjYa9nZzMDpyxQ==", "requires": { "debug": "2.6.9", - "encodeurl": "~1.0.2", + "encodeurl": "~2.0.0", "escape-html": "~1.0.3", "on-finished": "2.4.1", "parseurl": "~1.3.3", @@ -3383,9 +3397,9 @@ "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==" }, "merge-descriptors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", - "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=" + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.3.tgz", + "integrity": "sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==" }, "methods": { "version": "1.1.2", @@ -3507,9 +3521,9 @@ "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" }, "object-inspect": { - "version": "1.13.1", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz", - "integrity": "sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==" + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.2.tgz", + "integrity": "sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g==" }, "office-addin-cli": { "version": "1.5.9", @@ -3603,9 +3617,9 @@ "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" }, "path-to-regexp": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", - "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=" + "version": "0.1.10", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.10.tgz", + "integrity": "sha512-7lf7qcQidTku0Gu3YDPc8DJ1q7OOucfa/BSsIwjuh56VU7katFvuM8hULfkwB3Fns/rsVF7PwPKVw1sl5KQS9w==" }, "promise": { "version": "7.3.1", @@ -3742,11 +3756,11 @@ "integrity": "sha512-yYELe9Q5q9IQhuvqsZNwA5hfPkMJ8u92bQLIMcsMxf/VADjNtEYptU+inlufAFYcWdHlwNfZOEnOOQrZrcyJCQ==" }, "qs": { - "version": "6.11.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", - "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.13.0.tgz", + "integrity": "sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==", "requires": { - "side-channel": "^1.0.4" + "side-channel": "^1.0.6" } }, "range-parser": { @@ -3818,9 +3832,9 @@ "dev": true }, "send": { - "version": "0.18.0", - "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", - "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", + "version": "0.19.0", + "resolved": "https://registry.npmjs.org/send/-/send-0.19.0.tgz", + "integrity": "sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw==", "requires": { "debug": "2.6.9", "depd": "2.0.0", @@ -3852,6 +3866,11 @@ } } }, + "encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==" + }, "ms": { "version": "2.1.3", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", @@ -3868,14 +3887,14 @@ } }, "serve-static": { - "version": "1.15.0", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz", - "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==", + "version": "1.16.2", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.16.2.tgz", + "integrity": "sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw==", "requires": { - "encodeurl": "~1.0.2", + "encodeurl": "~2.0.0", "escape-html": "~1.0.3", "parseurl": "~1.3.3", - "send": "0.18.0" + "send": "0.19.0" } }, "set-function-length": { diff --git a/Samples/auth/Office-Add-in-NodeJS-SSO/Complete/package.json b/Samples/auth/Office-Add-in-NodeJS-SSO/Complete/package.json index 6cfb097cd..f60292563 100644 --- a/Samples/auth/Office-Add-in-NodeJS-SSO/Complete/package.json +++ b/Samples/auth/Office-Add-in-NodeJS-SSO/Complete/package.json @@ -9,10 +9,10 @@ "dependencies": { "@types/jquery": "^3.5.29", "@types/office-js": "^1.0.378", - "cookie-parser": "~1.4.6", + "cookie-parser": "~1.4.7", "debug": "~4.3.4", "dotenv": "^16.4.5", - "express": "~4.19.2", + "express": "~4.21.1", "form-urlencoded": "^6.1.4", "http-errors": "~2.0.0", "jquery": "^3.7.1", diff --git a/Samples/auth/Office-Add-in-NodeJS-SSO/Complete/public/dialog.html b/Samples/auth/Office-Add-in-NodeJS-SSO/Complete/public/dialog.html index 6339c3ea5..6cb0d80bd 100644 --- a/Samples/auth/Office-Add-in-NodeJS-SSO/Complete/public/dialog.html +++ b/Samples/auth/Office-Add-in-NodeJS-SSO/Complete/public/dialog.html @@ -15,7 +15,7 @@ crossorigin="anonymous"> - + diff --git a/Samples/auth/Office-Add-in-NodeJS-SSO/Complete/views/layout.pug b/Samples/auth/Office-Add-in-NodeJS-SSO/Complete/views/layout.pug index 92390072a..8080e09e0 100644 --- a/Samples/auth/Office-Add-in-NodeJS-SSO/Complete/views/layout.pug +++ b/Samples/auth/Office-Add-in-NodeJS-SSO/Complete/views/layout.pug @@ -12,7 +12,7 @@ html link(rel='stylesheet', href='https://appsforoffice.microsoft.com/fabric/2.1.0/fabric.components.min.css') link(rel='stylesheet', href='/stylesheets/OfficeThemes.css') link(rel='stylesheet', href='/stylesheets/Site.css') - script(src='https://appsforoffice.microsoft.com/lib/1/hosted/office.js') + script(src='https://appsforoffice.microsoft.com/lib/1.1/hosted/office.js') script(src='https://ajax.aspnetcdn.com/ajax/jQuery/jquery-3.6.0.min.js') script(id="load-msal" src='https://alcdn.msauth.net/browser/2.15.0/js/msal-browser.js') script(src='/javascripts/document.js') diff --git a/Samples/auth/Office-Add-in-SSO-NAA/package-lock.json b/Samples/auth/Office-Add-in-SSO-NAA/package-lock.json index 65611dba4..919751bb6 100644 --- a/Samples/auth/Office-Add-in-SSO-NAA/package-lock.json +++ b/Samples/auth/Office-Add-in-SSO-NAA/package-lock.json @@ -9,7 +9,7 @@ "version": "0.0.1", "license": "MIT", "dependencies": { - "@azure/msal-browser": "^3.17.0", + "@azure/msal-browser": "^3.24.0", "core-js": "^3.37.1", "regenerator-runtime": "^0.14.1" }, @@ -511,20 +511,30 @@ } }, "node_modules/@azure/msal-browser": { - "version": "3.17.0", - "resolved": "https://registry.npmjs.org/@azure/msal-browser/-/msal-browser-3.17.0.tgz", - "integrity": "sha512-csccKXmW2z7EkZ0I3yAoW/offQt+JECdTIV/KrnRoZyM7wCSsQWODpwod8ZhYy7iOyamcHApR9uCh0oD1M+0/A==", + "version": "3.24.0", + "resolved": "https://registry.npmjs.org/@azure/msal-browser/-/msal-browser-3.24.0.tgz", + "integrity": "sha512-JGNV9hTYAa7lsum9IMIibn2kKczAojNihGo1hi7pG0kNrcKej530Fl6jxwM05A44/6I079CSn6WxYxbVhKUmWg==", "dependencies": { - "@azure/msal-common": "14.12.0" + "@azure/msal-common": "14.15.0" }, "engines": { "node": ">=0.8.0" } }, + "node_modules/@azure/msal-browser/node_modules/@azure/msal-common": { + "version": "14.15.0", + "resolved": "https://registry.npmjs.org/@azure/msal-common/-/msal-common-14.15.0.tgz", + "integrity": "sha512-ImAQHxmpMneJ/4S8BRFhjt1MZ3bppmpRPYYNyzeQPeFN288YKbb8TmmISQEbtfkQ1BPASvYZU5doIZOPBAqENQ==", + "engines": { + "node": ">=0.8.0" + } + }, "node_modules/@azure/msal-common": { "version": "14.12.0", "resolved": "https://registry.npmjs.org/@azure/msal-common/-/msal-common-14.12.0.tgz", "integrity": "sha512-IDDXmzfdwmDkv4SSmMEyAniJf6fDu3FJ7ncOjlxkDuT85uSnLEhZi3fGZpoR7T4XZpOMx9teM9GXBgrfJgyeBw==", + "dev": true, + "peer": true, "engines": { "node": ">=0.8.0" } diff --git a/Samples/auth/Office-Add-in-SSO-NAA/package.json b/Samples/auth/Office-Add-in-SSO-NAA/package.json index 0db7a2c1a..8fba2a6bf 100644 --- a/Samples/auth/Office-Add-in-SSO-NAA/package.json +++ b/Samples/auth/Office-Add-in-SSO-NAA/package.json @@ -28,7 +28,7 @@ "watch": "webpack --mode development --watch" }, "dependencies": { - "@azure/msal-browser": "^3.17.0", + "@azure/msal-browser": "^3.24.0", "core-js": "^3.37.1", "regenerator-runtime": "^0.14.1" }, diff --git a/Samples/auth/Outlook-Add-in-Microsoft-Graph-ASPNET/Outlook-Add-in-Microsoft-Graph-ASPNETWeb/Views/Shared/_Layout.cshtml b/Samples/auth/Outlook-Add-in-Microsoft-Graph-ASPNET/Outlook-Add-in-Microsoft-Graph-ASPNETWeb/Views/Shared/_Layout.cshtml index a3f762382..de7a990c0 100644 --- a/Samples/auth/Outlook-Add-in-Microsoft-Graph-ASPNET/Outlook-Add-in-Microsoft-Graph-ASPNETWeb/Views/Shared/_Layout.cshtml +++ b/Samples/auth/Outlook-Add-in-Microsoft-Graph-ASPNET/Outlook-Add-in-Microsoft-Graph-ASPNETWeb/Views/Shared/_Layout.cshtml @@ -10,7 +10,7 @@ @* This office.js library holds the JavaScript API for Office.*@ - + @* The following two files hold the Office UI Fabric styles and components. *@ diff --git a/Samples/auth/Outlook-Add-in-SSO-NAA-IE/.eslintrc.json b/Samples/auth/Outlook-Add-in-SSO-NAA-IE/.eslintrc.json new file mode 100644 index 000000000..e406c09e8 --- /dev/null +++ b/Samples/auth/Outlook-Add-in-SSO-NAA-IE/.eslintrc.json @@ -0,0 +1,8 @@ +{ + "plugins": [ + "office-addins" + ], + "extends": [ + "plugin:office-addins/recommended" + ] +} diff --git a/Samples/auth/Outlook-Add-in-SSO-NAA-IE/.gitignore b/Samples/auth/Outlook-Add-in-SSO-NAA-IE/.gitignore new file mode 100644 index 000000000..6c0c9d898 --- /dev/null +++ b/Samples/auth/Outlook-Add-in-SSO-NAA-IE/.gitignore @@ -0,0 +1,528 @@ +## Ignore Visual Studio temporary files, build results, and +## files generated by popular Visual Studio add-ons. +## +## Get latest from https://github.com/github/gitignore/blob/main/VisualStudio.gitignore + +# User-specific files +*.rsuser +*.suo +*.user +*.userosscache +*.sln.docstates + +# User-specific files (MonoDevelop/Xamarin Studio) +*.userprefs + +# Mono auto generated files +mono_crash.* + +# Build results +[Dd]ebug/ +[Dd]ebugPublic/ +[Rr]elease/ +[Rr]eleases/ +x64/ +x86/ +[Ww][Ii][Nn]32/ +[Aa][Rr][Mm]/ +[Aa][Rr][Mm]64/ +bld/ +[Bb]in/ +[Oo]bj/ +[Ll]og/ +[Ll]ogs/ + +# Visual Studio 2015/2017 cache/options directory +.vs/ +# Uncomment if you have tasks that create the project's static files in wwwroot +#wwwroot/ + +# Visual Studio 2017 auto generated files +Generated\ Files/ + +# MSTest test Results +[Tt]est[Rr]esult*/ +[Bb]uild[Ll]og.* + +# NUnit +*.VisualState.xml +TestResult.xml +nunit-*.xml + +# Build Results of an ATL Project +[Dd]ebugPS/ +[Rr]eleasePS/ +dlldata.c + +# Benchmark Results +BenchmarkDotNet.Artifacts/ + +# .NET Core +project.lock.json +project.fragment.lock.json +artifacts/ + +# ASP.NET Scaffolding +ScaffoldingReadMe.txt + +# StyleCop +StyleCopReport.xml + +# Files built by Visual Studio +*_i.c +*_p.c +*_h.h +*.ilk +*.meta +*.obj +*.iobj +*.pch +*.pdb +*.ipdb +*.pgc +*.pgd +*.rsp +*.sbr +*.tlb +*.tli +*.tlh +*.tmp +*.tmp_proj +*_wpftmp.csproj +*.log +*.tlog +*.vspscc +*.vssscc +.builds +*.pidb +*.svclog +*.scc + +# Chutzpah Test files +_Chutzpah* + +# Visual C++ cache files +ipch/ +*.aps +*.ncb +*.opendb +*.opensdf +*.sdf +*.cachefile +*.VC.db +*.VC.VC.opendb + +# Visual Studio profiler +*.psess +*.vsp +*.vspx +*.sap + +# Visual Studio Trace Files +*.e2e + +# TFS 2012 Local Workspace +$tf/ + +# Guidance Automation Toolkit +*.gpState + +# ReSharper is a .NET coding add-in +_ReSharper*/ +*.[Rr]e[Ss]harper +*.DotSettings.user + +# TeamCity is a build add-in +_TeamCity* + +# DotCover is a Code Coverage Tool +*.dotCover + +# AxoCover is a Code Coverage Tool +.axoCover/* +!.axoCover/settings.json + +# Coverlet is a free, cross platform Code Coverage Tool +coverage*.json +coverage*.xml +coverage*.info + +# Visual Studio code coverage results +*.coverage +*.coveragexml + +# NCrunch +_NCrunch_* +.*crunch*.local.xml +nCrunchTemp_* + +# MightyMoose +*.mm.* +AutoTest.Net/ + +# Web workbench (sass) +.sass-cache/ + +# Installshield output folder +[Ee]xpress/ + +# DocProject is a documentation generator add-in +DocProject/buildhelp/ +DocProject/Help/*.HxT +DocProject/Help/*.HxC +DocProject/Help/*.hhc +DocProject/Help/*.hhk +DocProject/Help/*.hhp +DocProject/Help/Html2 +DocProject/Help/html + +# Click-Once directory +publish/ + +# Publish Web Output +*.[Pp]ublish.xml +*.azurePubxml +# Note: Comment the next line if you want to checkin your web deploy settings, +# but database connection strings (with potential passwords) will be unencrypted +*.pubxml +*.publishproj + +# Microsoft Azure Web App publish settings. Comment the next line if you want to +# checkin your Azure Web App publish settings, but sensitive information contained +# in these scripts will be unencrypted +PublishScripts/ + +# NuGet Packages +*.nupkg +# NuGet Symbol Packages +*.snupkg +# The packages folder can be ignored because of Package Restore +**/[Pp]ackages/* +# except build/, which is used as an MSBuild target. +!**/[Pp]ackages/build/ +# Uncomment if necessary however generally it will be regenerated when needed +#!**/[Pp]ackages/repositories.config +# NuGet v3's project.json files produces more ignorable files +*.nuget.props +*.nuget.targets + +# Microsoft Azure Build Output +csx/ +*.build.csdef + +# Microsoft Azure Emulator +ecf/ +rcf/ + +# Windows Store app package directories and files +AppPackages/ +BundleArtifacts/ +Package.StoreAssociation.xml +_pkginfo.txt +*.appx +*.appxbundle +*.appxupload + +# Visual Studio cache files +# files ending in .cache can be ignored +*.[Cc]ache +# but keep track of directories ending in .cache +!?*.[Cc]ache/ + +# Others +ClientBin/ +~$* +*~ +*.dbmdl +*.dbproj.schemaview +*.jfm +*.pfx +*.publishsettings +orleans.codegen.cs + +# Including strong name files can present a security risk +# (https://github.com/github/gitignore/pull/2483#issue-259490424) +#*.snk + +# Since there are multiple workflows, uncomment next line to ignore bower_components +# (https://github.com/github/gitignore/pull/1529#issuecomment-104372622) +#bower_components/ + +# RIA/Silverlight projects +Generated_Code/ + +# Backup & report files from converting an old project file +# to a newer Visual Studio version. Backup files are not needed, +# because we have git ;-) +_UpgradeReport_Files/ +Backup*/ +UpgradeLog*.XML +UpgradeLog*.htm +ServiceFabricBackup/ +*.rptproj.bak + +# SQL Server files +*.mdf +*.ldf +*.ndf + +# Business Intelligence projects +*.rdl.data +*.bim.layout +*.bim_*.settings +*.rptproj.rsuser +*- [Bb]ackup.rdl +*- [Bb]ackup ([0-9]).rdl +*- [Bb]ackup ([0-9][0-9]).rdl + +# Microsoft Fakes +FakesAssemblies/ + +# GhostDoc plugin setting file +*.GhostDoc.xml + +# Node.js Tools for Visual Studio +.ntvs_analysis.dat +node_modules/ + +# Visual Studio 6 build log +*.plg + +# Visual Studio 6 workspace options file +*.opt + +# Visual Studio 6 auto-generated workspace file (contains which files were open etc.) +*.vbw + +# Visual Studio 6 auto-generated project file (contains which files were open etc.) +*.vbp + +# Visual Studio 6 workspace and project file (working project files containing files to include in project) +*.dsw +*.dsp + +# Visual Studio 6 technical files +*.ncb +*.aps + +# Visual Studio LightSwitch build output +**/*.HTMLClient/GeneratedArtifacts +**/*.DesktopClient/GeneratedArtifacts +**/*.DesktopClient/ModelManifest.xml +**/*.Server/GeneratedArtifacts +**/*.Server/ModelManifest.xml +_Pvt_Extensions + +# Paket dependency manager +.paket/paket.exe +paket-files/ + +# FAKE - F# Make +.fake/ + +# CodeRush personal settings +.cr/personal + +# Python Tools for Visual Studio (PTVS) +__pycache__/ +*.pyc + +# Cake - Uncomment if you are using it +# tools/** +# !tools/packages.config + +# Tabs Studio +*.tss + +# Telerik's JustMock configuration file +*.jmconfig + +# BizTalk build output +*.btp.cs +*.btm.cs +*.odx.cs +*.xsd.cs + +# OpenCover UI analysis results +OpenCover/ + +# Azure Stream Analytics local run output +ASALocalRun/ + +# MSBuild Binary and Structured Log +*.binlog + +# NVidia Nsight GPU debugger configuration file +*.nvuser + +# MFractors (Xamarin productivity tool) working folder +.mfractor/ + +# Local History for Visual Studio +.localhistory/ + +# Visual Studio History (VSHistory) files +.vshistory/ + +# BeatPulse healthcheck temp database +healthchecksdb + +# Backup folder for Package Reference Convert tool in Visual Studio 2017 +MigrationBackup/ + +# Ionide (cross platform F# VS Code tools) working folder +.ionide/ + +# Fody - auto-generated XML schema +FodyWeavers.xsd + +# VS Code files for those working on multiple tools +.vscode/* +!.vscode/settings.json +!.vscode/tasks.json +!.vscode/launch.json +!.vscode/extensions.json +*.code-workspace + +# Local History for Visual Studio Code +.history/ + +# Windows Installer files from build outputs +*.cab +*.msi +*.msix +*.msm +*.msp + +# JetBrains Rider +*.sln.iml + +######################################################################## + +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +lerna-debug.log* +.pnpm-debug.log* + +# Diagnostic reports (https://nodejs.org/api/report.html) +report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json + +# Runtime data +pids +*.pid +*.seed +*.pid.lock + +# Directory for instrumented libs generated by jscoverage/JSCover +lib-cov + +# Coverage directory used by tools like istanbul +coverage +*.lcov + +# nyc test coverage +.nyc_output + +# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files) +.grunt + +# Bower dependency directory (https://bower.io/) +bower_components + +# node-waf configuration +.lock-wscript + +# Compiled binary addons (https://nodejs.org/api/addons.html) +build/Release + +# Dependency directories +node_modules/ +jspm_packages/ + +# Snowpack dependency directory (https://snowpack.dev/) +web_modules/ + +# TypeScript cache +*.tsbuildinfo + +# Optional npm cache directory +.npm + +# Optional eslint cache +.eslintcache + +# Optional stylelint cache +.stylelintcache + +# Microbundle cache +.rpt2_cache/ +.rts2_cache_cjs/ +.rts2_cache_es/ +.rts2_cache_umd/ + +# Optional REPL history +.node_repl_history + +# Output of 'npm pack' +*.tgz + +# Yarn Integrity file +.yarn-integrity + +# dotenv environment variable files +.env +.env.development.local +.env.test.local +.env.production.local +.env.local + +# parcel-bundler cache (https://parceljs.org/) +.cache +.parcel-cache + +# Next.js build output +.next +out + +# Nuxt.js build / generate output +.nuxt +dist + +# Gatsby files +.cache/ +# Comment in the public line in if your project uses Gatsby and not Next.js +# https://nextjs.org/blog/next-9-1#public-directory-support +# public + +# vuepress build output +.vuepress/dist + +# vuepress v2.x temp and cache directory +.temp +.cache + +# Serverless directories +.serverless/ + +# FuseBox cache +.fusebox/ + +# DynamoDB Local files +.dynamodb/ + +# TernJS port file +.tern-port + +# Stores VSCode versions used for testing VSCode extensions +.vscode-test + +# yarn v2 +.yarn/cache +.yarn/unplugged +.yarn/build-state.yml +.yarn/install-state.gz +.pnp.* diff --git a/Samples/auth/Outlook-Add-in-SSO-NAA-IE/README.md b/Samples/auth/Outlook-Add-in-SSO-NAA-IE/README.md new file mode 100644 index 000000000..46a2f5ffe --- /dev/null +++ b/Samples/auth/Outlook-Add-in-SSO-NAA-IE/README.md @@ -0,0 +1,143 @@ +--- +page_type: sample +urlFragment: outlook-add-in-sso-naa-ie +products: + - office + - office-outlook +languages: + - javascript +extensions: + contentType: samples + technologies: + - Add-ins + createdDate: "09/30/2024 10:00:00 AM" +description: "This sample shows how to implement SSO in an Outlook add-in by using nested app authentication with a fallback that supports Internet Explorer." +--- + +# Outlook add-in with SSO using nested app authentication including Internet Explorer fallback (preview) + +## Summary + +This sample shows how to use MSAL.js nested app authentication (NAA) in an Outlook Add-in to access Microsoft Graph APIs for the signed-in user. The sample displays the signed-in user's name and email. It also retrieves file names from the user's Microsoft OneDrive account. This sample includes an auth fallback when NAA isn't available, which also supports [Outlook versions that still use Internet Explorer 11](https://learn.microsoft.com/office/dev/add-ins/concepts/browsers-used-by-office-web-add-ins). `@azure/msal-browser` version 2.x is used to support Internet Explorer. Version 3.x is the first version with NAA support. This sample uses both versions of the library for maximum browser support. + +> [!IMPORTANT] +> Nested app authentication is currently in preview. To try this feature, you need to join the [Microsoft 365 Insider Program](https://insider.microsoft365.com/join) and choose **Current Channel (Preview)**. Don't use NAA in production add-ins. We invite you to try out NAA in test or development environments and welcome feedback on your experience through GitHub (see https://github.com/OfficeDev/office-js/issues). + +## Features + +- Use MSAL.js NAA to get an access token to call Microsoft Graph APIs. +- Use MSAL.js NAA to get information about the user signed in to Office. + +## Applies to + +For a list of supported platforms, see [NAA supported accounts and hosts](https://learn.microsoft.com/office/dev/add-ins/develop/enable-nested-app-authentication-in-your-add-in#naa-supported-accounts-and-hosts). + +## Prerequisites + +- Office connected to a Microsoft 365 subscription (including Office on the web). +- You need to join the [Microsoft 365 Insider Program](https://insider.microsoft365.com/join) to use the NAA preview features. Choose the **Current Channel (Preview)** insider level. +- [Node.js](https://nodejs.org/) version 16 or greater. +- [npm](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm) version 8 or greater. + +## Build and run the solution + +### Create an application registration + +1. Go to the [Azure portal - App registrations](https://go.microsoft.com/fwlink/?linkid=2083908) page to register your app. +1. Sign in with the **_admin_** credentials to your Microsoft 365 tenancy. For example, **MyName@contoso.onmicrosoft.com**. +1. Select **New registration**. On the **Register an application** page, take the following actions. + + - Set **Name** to `Outlook-Add-in-SSO-NAA-IE`. + - Set **Supported account types** to **Accounts in any organizational directory (Any Microsoft Entra ID tenant - Multitenant) and personal Microsoft accounts (e.g. Skype, Xbox)**. + - In the **Redirect URI** section, ensure that **Single-page application (SPA)** is selected in the drop down and then set the URI to `brk-multihub://localhost:3000`. + - Select **Register**. + +1. On the **Outlook-Add-in-SSO-NAA** page, copy and save the value for the **Application (client) ID**. You'll use it in the next section. +1. Select the link to modify redirect URIs which should appear as **0 web, 1 spa, 0 public client**. + + ![The redirect URIs link.](./assets/ui-add-redirect-link.png) + +1. In the **Single-page application Redirect URIs** section, select **Add URI**. + + ![The Add URI link.](./assets/ui-add-redirects-link.png) + +1. Register the following redirect URIs (`brk-multihub://localhost:3000` should already be registered from previous step): + 1. `brk-multihub://localhost:3000` + 1. `https://localhost:3000/auth.html` + 1. `https://localhost:3000/dialog.html` + 1. `https://localhost:3000/dialoginternetexplorer.html` +1. Press **Save** button. + +![The completed redirects in the application registration.](./assets/ui-completed-redirects.png) + +For more information on how to register your application, see [Register an application with the Microsoft Identity Platform](https://learn.microsoft.com/graph/auth-register-app-v2). + +### Configure the sample + +1. Clone or download this repository. +1. From the command line, or a terminal window, go to the root folder of this sample at `/samples/auth/Outlook-Add-in-SSO-NAA-IE`. +1. Open the `src/taskpane/msalConfig.ts` file. +1. Replace the placeholder "Enter_the_Application_Id_Here" with the Application ID that you copied. +1. Save the file. + +## Run the sample + +1. Run the following commands. + + `npm install` + `npm run start` + + This will start the web server and sideload the add-in to Outlook. + +1. In Outlook, compose a new email message. +1. On the ribbon for the message, look for the **Show task pane** button and select it. +1. When the task pane opens, there are two buttons: **Get user data** and **Get user files**. +1. To see the signed in user's name and email, select **Get user data**. +1. To insert the first 10 filenames from the signed in user's Microsoft OneDrive, select **Get user files**. + +You will be prompted to consent to the scopes the sample needs when you select the buttons. + +## Debugging steps + +You can debug the sample by opening the project in VS Code. + +1. Select the **Run and Debug** icon in the **Activity Bar** on the side of VS Code. You can also use the keyboard shortcut **Ctrl+Shift+D**. +1. Select the launch configuration you want from the **Configuration dropdown** in the **Run and Debug** view. For example, **Outlook Desktop (Edge Chromium)**. +1. Start your debug session with **F5**, or **Run > Start Debugging**. + +![The VS Code debug view.](./assets/vs-code-debug-view.png) + +For more information on debugging with VS Code, see [Debugging](https://code.visualstudio.com/Docs/editor/debugging). For more information on debugging Office Add-ins in VS Code, see [Debug Office Add-ins on Windows using Visual Studio Code and Microsoft Edge WebView2 (Chromium-based)](https://learn.microsoft.com/office/dev/add-ins/testing/debug-desktop-using-edge-chromium) + +## Key parts of this sample + +The `src/taskpane/msalAuth.ts` file contains the MSAL code for configuring and using NAA. It contains a class named AccountManager which manages getting user account and token information. + +- The `initialize` function is called from Office.onReady to configure and intitialize MSAL to use NAA. +- The `ssoGetAccessToken` function gets an access token for the signed in user to call Microsoft Graph APIs. + +The `src/taskpane/taskpane.ts` file contains code that runs when the user chooses buttons in the task pane. They use the AccountManager class to get tokens or user information depending on which button is chosen. + +The `src/taskpane/authHelper.ts` file contains code that uses msal-browser 3.x for auth when it is supported through dynamic load, or falls back to dialog API if needed. + +The `src/taskpane/fallback/fallbackauthdialoginternetexplorer.ts` file contains dialog API fallback code that runs when internet explorer is being used, since it cannot use `@azure/msal-browser` 3.x. + +The `src/taskpane/msgraph-helper.ts` file contains code to construct and make a REST call to the Microsoft Graph API. + +## Security reporting + +If you find a security issue with our libraries or services, report the issue to [secure@microsoft.com](mailto:secure@microsoft.com) with as much detail as you can provide. Your submission may be eligible for a bounty through the [Microsoft Bounty](https://aka.ms/bugbounty) program. Don't post security issues to [GitHub Issues](https://github.com/AzureAD/microsoft-authentication-library-for-android/issues) or any other public site. We'll contact you shortly after receiving your issue report. We encourage you to get new security incident notifications by visiting [Microsoft technical security notifications](https://technet.microsoft.com/security/dd252948) to subscribe to Security Advisory Alerts. + +## Questions and feedback + +- Did you experience any problems with the sample? [Create an issue](https://github.com/OfficeDev/Office-Add-in-samples/issues/new/choose) and we'll help you out. +- We'd love to get your feedback about this sample. Go to our [Office samples survey](https://aka.ms/OfficeSamplesSurvey) to give feedback and suggest improvements. +- For general questions about developing Office Add-ins, go to [Microsoft Q&A](https://learn.microsoft.com/answers/topics/office-js-dev.html) using the office-js-dev tag. + +## Copyright + +Copyright (c) 2024 Microsoft Corporation. All rights reserved. + +This project has adopted the [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/). For more information, see the [Code of Conduct FAQ](https://opensource.microsoft.com/codeofconduct/faq/) or contact [opencode@microsoft.com](mailto:opencode@microsoft.com) with any additional questions or comments. + + diff --git a/Samples/auth/Outlook-Add-in-SSO-NAA-IE/assets/icon-128.png b/Samples/auth/Outlook-Add-in-SSO-NAA-IE/assets/icon-128.png new file mode 100644 index 0000000000000000000000000000000000000000..37dfcd77025e49f00ad33c41543f9f013cd94a83 GIT binary patch literal 4693 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¥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 literal 0 HcmV?d00001 diff --git a/Samples/auth/Outlook-Add-in-SSO-NAA-IE/assets/vs-code-debug-view.png b/Samples/auth/Outlook-Add-in-SSO-NAA-IE/assets/vs-code-debug-view.png new file mode 100644 index 0000000000000000000000000000000000000000..6a21f8c37bc40d34836f8fe68c37bc1624cac3e4 GIT binary patch literal 18866 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%0DEr_rfYqcH8Ci(E3uY=86wmT@6=F6`5U? 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 + + 33f1ce9e-8a9f-4164-8d4b-16d52404404d + 1.0.0.0 + Contoso + en-US + + + + + + + https://www.contoso.com + + + + + + + + + + +
+ + + 250 + +
+
+ ReadWriteMailbox + + + + false + + + + + + + + + + + + +
+
+

SSO with nested app authentication

+

This add-in demonstrates how to connect to Microsoft Graph from an add-in.

+ + +
+ +
+ +
+
+ +

+
+ + diff --git a/Samples/auth/Outlook-Add-in-SSO-NAA-IE/src/taskpane/taskpane.ts b/Samples/auth/Outlook-Add-in-SSO-NAA-IE/src/taskpane/taskpane.ts new file mode 100644 index 000000000..af179c4e0 --- /dev/null +++ b/Samples/auth/Outlook-Add-in-SSO-NAA-IE/src/taskpane/taskpane.ts @@ -0,0 +1,109 @@ +/* + * Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license. + * See LICENSE in the project root for license information. + */ + +import { initializeAuthMethod, getAccessToken } from "./authHelper"; +import { makeGraphRequest } from "./msgraph-helper"; +import "unfetch/polyfill"; + +/* global console, document, Office */ + +const sideloadMsg = document.getElementById("sideload-msg"); +const appBody = document.getElementById("app-body"); +const getUserDataButton = document.getElementById("getUserData"); +const getUserFilesButton = document.getElementById("getUserFiles"); +const userName = document.getElementById("userName"); +const userEmail = document.getElementById("userEmail"); +const userFiles = document.getElementById("userFiles"); + +Office.onReady(async (info) => { + if (info.host === Office.HostType.Outlook) { + if (sideloadMsg) sideloadMsg.style.display = "none"; + if (appBody) appBody.style.display = "flex"; + + await initializeAuthMethod(); + + if (getUserDataButton) { + getUserDataButton.addEventListener("click", getUserData); + } + if (getUserFilesButton) { + getUserFilesButton.addEventListener("click", getUserFiles); + } + } +}); + +/** + * Writes the file names to the task pane. + * @param fileNameList The list of file names. + */ +function writeFileNames(fileNameList: string[]) { + let fileNameBody: string = ""; + for (let i = 0; i < fileNameList.length; i++) { + fileNameBody += "

" + fileNameList[i] + "

"; + } + if (userFiles) { + userFiles.innerHTML = fileNameBody; + } +} + +/** + * click event handler for the Get user files button. + * Gets list of files from User's OneDrive and writes them to the task pane. + */ +async function getUserFiles() { + const names = await getFileNamesFromMSGraph(); + if (names) { + writeFileNames(names); + } +} + +/** + * Gets the user data such as name and email and displays it + * in the task pane. + */ +async function getUserData() { + const userDataElement = document.getElementById("userData"); + + try { + // Specify minimum scopes for the token needed. + const accessToken = await getAccessToken(["user.read"]); + + const response: { displayName: string; mail: string } = await makeGraphRequest(accessToken, "/me", ""); + + if (userDataElement) { + userDataElement.style.visibility = "visible"; + } + if (userName) { + userName.innerText = response.displayName ?? ""; + } + if (userEmail) { + userEmail.innerText = response.mail ?? ""; + } + } catch (ex) { + console.error(ex); + } +} + +/** + * Gets item names (files or folders) from the user's OneDrive. + */ +async function getFileNamesFromMSGraph(count = 10): Promise { + try { + // Specify minimum scopes for the token needed. + const accessToken = await getAccessToken(["files.read"]); + const response: { value: { name: string }[] } = await makeGraphRequest( + accessToken, + "/me/drive/root/children", + `?$select=name&$top=${count}` + ); + let names = []; + for (let i = 0; i < response.value.length; i++) { + names.push(response.value[i].name); + } + console.log("names response: " + names); + return names; + } catch (error) { + console.error("error: " + error); + } +} diff --git a/Samples/auth/Outlook-Add-in-SSO-NAA-IE/src/taskpane/util.ts b/Samples/auth/Outlook-Add-in-SSO-NAA-IE/src/taskpane/util.ts new file mode 100644 index 000000000..c678584a1 --- /dev/null +++ b/Samples/auth/Outlook-Add-in-SSO-NAA-IE/src/taskpane/util.ts @@ -0,0 +1,31 @@ +/* global window, Office */ + +export function createLocalUrl(path: string) { + return `${window.location.origin}/${path}`; +} + +export function isInternetExplorer() { + return /MSIE|Trident/.test(window.navigator.userAgent); +} + +export async function sendDialogMessage(message: string) { + await Office.onReady(); + Office.context.ui.messageParent(message); +} + +export function shouldCloseDialog() { + return window.location.search.indexOf("close=1") !== -1; +} + +export function getCurrentPageUrl(queryParams?: { [key: string]: string }) { + let querystring = ""; + for (const key in queryParams) { + if (Object.prototype.hasOwnProperty.call(queryParams, key)) { + if (!querystring) { + querystring += "?"; + } + querystring += `${key}=${queryParams[key]}&`; + } + } + return window.location.origin + window.location.pathname + querystring; +} diff --git a/Samples/auth/Outlook-Add-in-SSO-NAA-IE/tsconfig.json b/Samples/auth/Outlook-Add-in-SSO-NAA-IE/tsconfig.json new file mode 100644 index 000000000..c2fe826ad --- /dev/null +++ b/Samples/auth/Outlook-Add-in-SSO-NAA-IE/tsconfig.json @@ -0,0 +1,28 @@ +{ + "compilerOptions": { + "allowJs": true, + "baseUrl": ".", + "esModuleInterop": true, + "experimentalDecorators": true, + "forceConsistentCasingInFileNames": true, + "jsx": "react", + "noEmitOnError": true, + "outDir": "lib", + "sourceMap": true, + "strict": true, + "target": "es5", + "lib": [ + "es2015", + "dom" + ] + }, + "exclude": [ + "node_modules", + "dist", + "lib", + "lib-amd" + ], + "ts-node": { + "files": true + } +} \ No newline at end of file diff --git a/Samples/auth/Outlook-Add-in-SSO-NAA-IE/webpack.config.js b/Samples/auth/Outlook-Add-in-SSO-NAA-IE/webpack.config.js new file mode 100644 index 000000000..fd49da7d1 --- /dev/null +++ b/Samples/auth/Outlook-Add-in-SSO-NAA-IE/webpack.config.js @@ -0,0 +1,123 @@ +/* eslint-disable no-undef */ + +const devCerts = require("office-addin-dev-certs"); +const CopyWebpackPlugin = require("copy-webpack-plugin"); +const HtmlWebpackPlugin = require("html-webpack-plugin"); + +const urlDev = "https://localhost:3000/"; +const urlProd = "https://www.contoso.com/"; // CHANGE THIS TO YOUR PRODUCTION DEPLOYMENT LOCATION + +async function getHttpsOptions() { + const httpsOptions = await devCerts.getHttpsServerOptions(); + return { ca: httpsOptions.ca, key: httpsOptions.key, cert: httpsOptions.cert }; +} + +module.exports = async (env, options) => { + const dev = options.mode === "development"; + const config = { + devtool: "source-map", + entry: { + polyfill: ["core-js/stable", "regenerator-runtime/runtime"], + taskpane: ["./src/taskpane/taskpane.ts", "./src/taskpane/taskpane.html"], + dialoginternetexplorer: ["./src/taskpane/fallback/fallbackauthdialoginternetexplorer.ts"], + dialog: ["./src/taskpane/fallback/fallbackauthdialog.ts"], + signoutdialoginternetexplorer: ["./src/taskpane/fallback/signoutdialoginternetexplorer.ts"], + signoutdialog: ["./src/taskpane/fallback/signoutdialog.ts"], + }, + output: { + clean: true, + }, + resolve: { + extensions: [".ts", ".html", ".js"], + }, + module: { + rules: [ + { + test: /\.ts$/, + exclude: /node_modules/, + use: { + loader: "babel-loader", + options: { + presets: ["@babel/preset-typescript"], + }, + }, + }, + { + test: /\.html$/, + exclude: /node_modules/, + use: "html-loader", + }, + { + test: /\.(png|jpg|jpeg|gif|ico)$/, + type: "asset/resource", + generator: { + filename: "assets/[name][ext][query]", + }, + }, + ], + }, + plugins: [ + new HtmlWebpackPlugin({ + filename: "auth.html", + template: "./src/taskpane/fallback/auth.html", + chunks: [], + }), + new HtmlWebpackPlugin({ + filename: "dialog.html", + template: "./src/taskpane/fallback/dialog.html", + chunks: ["dialog"], + }), + new HtmlWebpackPlugin({ + filename: "signoutdialoginternetexplorer.html", + template: "./src/taskpane/fallback/dialog.html", + chunks: ["polyfill", "signoutdialoginternetexplorer"], + }), + new HtmlWebpackPlugin({ + filename: "signoutdialog.html", + template: "./src/taskpane/fallback/dialog.html", + chunks: ["polyfill", "signoutdialog"], + }), + new HtmlWebpackPlugin({ + filename: "dialoginternetexplorer.html", + template: "./src/taskpane/fallback/dialog.html", + chunks: ["polyfill", "dialoginternetexplorer"], + }), + new HtmlWebpackPlugin({ + filename: "taskpane.html", + template: "./src/taskpane/taskpane.html", + chunks: ["polyfill", "taskpane"], + }), + new CopyWebpackPlugin({ + patterns: [ + { + from: "assets/*", + to: "assets/[name][ext][query]", + }, + { + from: "manifest*.xml", + to: "[name]" + "[ext]", + transform(content) { + if (dev) { + return content; + } else { + return content.toString().replace(new RegExp(urlDev, "g"), urlProd); + } + }, + }, + ], + }), + ], + devServer: { + headers: { + "Access-Control-Allow-Origin": "*", + }, + server: { + type: "https", + options: env.WEBPACK_BUILD || options.https !== undefined ? options.https : await getHttpsOptions(), + }, + port: process.env.npm_package_config_dev_server_port || 3000, + }, + }; + + return config; +}; diff --git a/Samples/auth/Outlook-Add-in-SSO-NAA/.vscode/extensions.json b/Samples/auth/Outlook-Add-in-SSO-NAA/.vscode/extensions.json new file mode 100644 index 000000000..c5fccff07 --- /dev/null +++ b/Samples/auth/Outlook-Add-in-SSO-NAA/.vscode/extensions.json @@ -0,0 +1,13 @@ +{ + // See http://go.microsoft.com/fwlink/?LinkId=827846 to learn about workspace recommendations. + // Extension identifier format: ${publisher}.${name}. Example: vscode.csharp + + // List of extensions which should be recommended for users of this workspace. + "recommendations": [ + "ms-edgedevtools.vscode-edge-devtools", + "dbaeumer.vscode-eslint", + "esbenp.prettier-vscode" + ], + // List of extensions recommended by VS Code that should not be recommended for users of this workspace. + "unwantedRecommendations": [] +} diff --git a/Samples/auth/Outlook-Add-in-SSO-NAA/.vscode/launch.json b/Samples/auth/Outlook-Add-in-SSO-NAA/.vscode/launch.json new file mode 100644 index 000000000..ccab44cba --- /dev/null +++ b/Samples/auth/Outlook-Add-in-SSO-NAA/.vscode/launch.json @@ -0,0 +1,26 @@ +{ + "version": "0.2.0", + "configurations": [ + { + "name": "Outlook Desktop (Edge Chromium)", + "type": "msedge", + "request": "attach", + "port": 9229, + "timeout": 600000, + "webRoot": "${workspaceRoot}", + "preLaunchTask": "Debug: Outlook Desktop", + "postDebugTask": "Stop Debug" + }, + { + "name": "Outlook Desktop (Edge Legacy)", + "type": "office-addin", + "request": "attach", + "url": "https://localhost:3000/taskpane.html?_host_Info=Outlook$Win32$16.01$en-US$$$$0", + "port": 9222, + "timeout": 600000, + "webRoot": "${workspaceRoot}", + "preLaunchTask": "Debug: Outlook Desktop", + "postDebugTask": "Stop Debug" + } + ] +} \ No newline at end of file diff --git a/Samples/auth/Outlook-Add-in-SSO-NAA/.vscode/settings.json b/Samples/auth/Outlook-Add-in-SSO-NAA/.vscode/settings.json new file mode 100644 index 000000000..5dec57b1d --- /dev/null +++ b/Samples/auth/Outlook-Add-in-SSO-NAA/.vscode/settings.json @@ -0,0 +1,8 @@ +{ + "eslint.validate": [ + "javascript", + "javascriptreact", + "typescript" + ] + } + \ No newline at end of file diff --git a/Samples/auth/Outlook-Add-in-SSO-NAA/.vscode/tasks.json b/Samples/auth/Outlook-Add-in-SSO-NAA/.vscode/tasks.json new file mode 100644 index 000000000..642b3d7bd --- /dev/null +++ b/Samples/auth/Outlook-Add-in-SSO-NAA/.vscode/tasks.json @@ -0,0 +1,156 @@ +{ + "version": "2.0.0", + "tasks": [ + { + "label": "Build (Development)", + "type": "npm", + "script": "build:dev", + "group": { + "kind": "build", + "isDefault": true + }, + "presentation": { + "clear": true, + "panel": "shared", + "showReuseMessage": false + } + }, + { + "label": "Build (Production)", + "type": "npm", + "script": "build", + "group": "build", + "presentation": { + "clear": true, + "panel": "shared", + "showReuseMessage": false + } + }, + { + "label": "Debug: Excel Desktop", + "type": "shell", + "command": "npm", + "args": [ + "run", + "start:desktop", + "--", + "--app", + "excel" + ], + "presentation": { + "clear": true, + "panel": "dedicated" + }, + "problemMatcher": [] + }, + { + "label": "Debug: Outlook Desktop", + "type": "shell", + "command": "npm", + "args": [ + "run", + "start:desktop", + "--", + "--app", + "outlook" + ], + "presentation": { + "clear": true, + "panel": "dedicated" + }, + "problemMatcher": [] + }, + { + "label": "Debug: PowerPoint Desktop", + "type": "shell", + "command": "npm", + "args": [ + "run", + "start:desktop", + "--", + "--app", + "powerpoint" + ], + "presentation": { + "clear": true, + "panel": "dedicated" + }, + "problemMatcher": [] + }, + { + "label": "Debug: Word Desktop", + "type": "shell", + "command": "npm", + "args": [ + "run", + "start:desktop", + "--", + "--app", + "word" + ], + "presentation": { + "clear": true, + "panel": "dedicated" + }, + "problemMatcher": [] + }, + { + "label": "Dev Server", + "type": "npm", + "script": "dev-server", + "presentation": { + "clear": true, + "panel": "dedicated" + }, + "problemMatcher": [] + }, + { + "label": "Install", + "type": "npm", + "script": "install", + "presentation": { + "clear": true, + "panel": "shared", + "showReuseMessage": false + }, + "problemMatcher": [] + }, + { + "label": "Lint: Check for problems", + "type": "npm", + "script": "lint", + "problemMatcher": [ + "$eslint-stylish" + ] + }, + { + "label": "Lint: Fix all auto-fixable problems", + "type": "npm", + "script": "lint:fix", + "problemMatcher": [ + "$eslint-stylish" + ] + }, + { + "label": "Stop Debug", + "type": "npm", + "script": "stop", + "presentation": { + "clear": true, + "panel": "shared", + "showReuseMessage": false + }, + "problemMatcher": [] + }, + { + "label": "Watch", + "type": "npm", + "script": "watch", + "presentation": { + "clear": true, + "panel": "dedicated" + }, + "problemMatcher": [] + } + ] +} \ No newline at end of file diff --git a/Samples/auth/Outlook-Add-in-SSO-NAA/README.md b/Samples/auth/Outlook-Add-in-SSO-NAA/README.md index 2c83b50c8..fac5385a3 100644 --- a/Samples/auth/Outlook-Add-in-SSO-NAA/README.md +++ b/Samples/auth/Outlook-Add-in-SSO-NAA/README.md @@ -26,11 +26,14 @@ This sample shows how to use MSAL.js nested app authentication (NAA) in an Outlo ## Features - Use MSAL.js NAA to get an access token to call Microsoft Graph APIs. -- Use MSAL.js NAA to get information about the user signed in to Office. +- Fall back to using the Office dialog API for auth when NAA unavailable. ## Applies to -For a list of supported platforms, see [NAA supported accounts and hosts](https://learn.microsoft.com/office/dev/add-ins/develop/enable-nested-app-authentication-in-your-add-in#naa-supported-accounts-and-hosts). +- Outlook (Current Channel (preview) for classic Outlook only, new Outlook coming soon). +- Outlook on the web. + +For more information on supported platforms, see [NAA supported accounts and hosts](https://learn.microsoft.com/office/dev/add-ins/develop/enable-nested-app-authentication-in-your-add-in#naa-supported-accounts-and-hosts). ## Prerequisites @@ -44,26 +47,20 @@ For a list of supported platforms, see [NAA supported accounts and hosts](https: ### Create an application registration 1. Go to the [Azure portal - App registrations](https://go.microsoft.com/fwlink/?linkid=2083908) page to register your app. -1. Sign in with the ***admin*** credentials to your Microsoft 365 tenancy. For example, **MyName@contoso.onmicrosoft.com**. +1. Sign in with the **_admin_** credentials to your Microsoft 365 tenancy. For example, **MyName@contoso.onmicrosoft.com**. 1. Select **New registration**. On the **Register an application** page, set the values as follows. - - Set **Name** to `Outlook-Add-in-SSO-NAA`. - - Set **Supported account types** to **Accounts in any organizational directory (Any Microsoft Entra ID tenant - Multitenant) and personal Microsoft accounts (e.g. Skype, Xbox)**. - - In the **Redirect URI** section, ensure that **Single-page application (SPA)** is selected in the drop down and then set the URI to `brk-multihub://localhost:3000`. - - Select **Register**. + - Set **Name** to `Outlook-Add-in-SSO-NAA`. + - Set **Supported account types** to **Accounts in any organizational directory (Any Microsoft Entra ID tenant - Multitenant) and personal Microsoft accounts (e.g. Skype, Xbox)**. + - In the **Redirect URI** section, ensure that **Single-page application (SPA)** is selected in the drop down and then set the URI to `brk-multihub://localhost:3000`. This allows Office to broker the auth request. + - Select **Register**. 1. On the **Outlook-Add-in-SSO-NAA** page, copy and save the value for the **Application (client) ID**. You'll use it in the next section. -1. Select the link to modify redirect URIs which should appear as **0 web, 1 spa, 0 public client**. - - ![The redirect URIs link.](./assets/ui-add-redirect-link.png) - -1. In the **Single-page application Redirect URIs** section, select **Add URI**. - - ![The Add URI link.](./assets/ui-add-redirects-link.png) - -1. Enter the new URI value `https://localhost:3000/taskpane.html` and select **Save**. - - ![The completed redirects in the application registration.](./assets/ui-completed-redirects.png) +1. Under **Manage** select **Authentication**. +1. In the **Single-page application** pane, select **Add URI**. +1. Enter the value `https://localhost:3000/auth.html` and select **Save**. This redirect handles the fallback scenario when browser auth is used from add-in. +1. In the **Single-page application** pane, select **Add URI**. +1. Enter the value `https://localhost:3000/dialog.html` and select **Save**. This redirect handles the fallback scenario when the Office dialog API is used. For more information on how to register your application, see [Register an application with the Microsoft Identity Platform](https://learn.microsoft.com/graph/auth-register-app-v2). @@ -71,7 +68,7 @@ For more information on how to register your application, see [Register an appli 1. Clone or download this repository. 1. From the command line, or a terminal window, go to the root folder of this sample at `/samples/auth/Outlook-Add-in-SSO-NAA`. -1. Open the `src/taskpane/authConfig.ts` file. +1. Open the `src/taskpane/msalconfig.ts` file. 1. Replace the placeholder "Enter_the_Application_Id_Here" with the Application ID that you copied. 1. Save the file. @@ -79,10 +76,10 @@ For more information on how to register your application, see [Register an appli 1. Run the following commands. - `npm install` - `npm run start` + `npm install` + `npm run start` - This will start the web server and sideload the add-in to Outlook. + This will start the web server and sideload the add-in to Outlook. 1. In Outlook, compose a new email message. 1. On the ribbon for the message, look for the **Show task pane** button and select it. @@ -90,7 +87,7 @@ For more information on how to register your application, see [Register an appli 1. To see the signed in user's name and email, select **Get user data**. 1. To insert the first 10 filenames from the signed in user's Microsoft OneDrive, select **Get user files**. -You will be prompted to consent to the scopes the sample needs when you select the buttons. +You will be prompted to consent to the scopes the sample needs when you select the buttons. ## Debugging steps @@ -109,17 +106,40 @@ For more information on debugging with VS Code, see [Debugging](https://code.vis The `src/taskpane/authConfig.ts` file contains the MSAL code for configuring and using NAA. It contains a class named AccountManager which manages getting user account and token information. - The `initialize` function is called from Office.onReady to configure and intitialize MSAL to use NAA. -- The `ssoGetToken` function gets an access token for the signed in user to call Microsoft Graph APIs. -- The `ssoGetUserIdentity` function gets the account information of the signed in user. This can be used to get user details such as name and email. +- The `ssoGetAccessToken` function gets an access token for the signed in user to call Microsoft Graph APIs. +- The `getTokenWithDialogApi` function uses the Office dialog API to support a fallback option if NAA fails. -The `src/taskpane/taskpane.ts` file contains code that runs when the user chooses buttons in the task pane. They use the AccountManager class to get tokens or user information depending on which button is chosen. +The `src/taskpane/taskpane.ts` file contains code that runs when the user chooses buttons in the task pane. It uses the AccountManager class to get tokens or user information depending on which button is chosen. The `src/taskpane/msgraph-helper.ts` file contains code to construct and make a REST call to the Microsoft Graph API. +### Fallback code + +The `fallback` folder contains files to fall back to an alternate authentication method if NAA is unavailable and fails. When your code calls `acquireTokenSilent`, and NAA is unavailable, an error is thrown. The next step is the code calls `acquireTokenPopup`. MSAL then attempts to sign in the user by opening a dialog box with `window.open` and `about:blank`. Some older Outlook clients don't support the `about:blank` dialog box and cause the `aquireTokenPopup` method to fail. You can catch this error and fall back to using the Office dialog API to open the auth dialog instead. + +- the `src/taskpane/authconfig.ts` file contains the following code to detect the error and fall back to using the Office dialog API. + +```typescript + // Optional fallback if about:blank popup should not be shown + if (popupError instanceof BrowserAuthError && popupError.errorCode === "popup_window_error") { + const accessToken = await this.getTokenWithDialogApi(); + return accessToken; +``` + +- The `src/taskpane/fallback/fallbackauthdialog.ts` file contains code to initialize MSAL and acquire an access token. It sends the access token back to the task pane. + ## Security reporting If you find a security issue with our libraries or services, report the issue to [secure@microsoft.com](mailto:secure@microsoft.com) with as much detail as you can provide. Your submission may be eligible for a bounty through the [Microsoft Bounty](https://aka.ms/bugbounty) program. Don't post security issues to [GitHub Issues](https://github.com/AzureAD/microsoft-authentication-library-for-android/issues) or any other public site. We'll contact you shortly after receiving your issue report. We encourage you to get new security incident notifications by visiting [Microsoft technical security notifications](https://technet.microsoft.com/security/dd252948) to subscribe to Security Advisory Alerts. +## More resources + +- NAA public preview blog: https://aka.ms/NAApreviewblog +- [Updates on deprecating legacy Exchange Online tokens for Outlook add-ins](https://devblogs.microsoft.com/microsoft365dev/updates-on-deprecating-legacy-exchange-online-tokens-for-outlook-add-ins/?commentid=1131) +- NAA docs to get started: https://aka.ms/NAAdocs +- NAA FAQ: https://aka.ms/NAAFAQ +- NAA Word, Excel, and PowerPoint sample: https://aka.ms/NAAsampleOffice + ## Questions and feedback - Did you experience any problems with the sample? [Create an issue](https://github.com/OfficeDev/Office-Add-in-samples/issues/new/choose) and we'll help you out. diff --git a/Samples/auth/Outlook-Add-in-SSO-NAA/assets/ui-completed-redirects.png b/Samples/auth/Outlook-Add-in-SSO-NAA/assets/ui-completed-redirects.png deleted file mode 100644 index 80bdccf136171882b6d662e7c59463352cafc8be..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 19582 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 v1#{+@|3yO~=EP$O6Wt~U`hWh0rSd|g=0.10.0" + "source-map-loader": "^5.0.0", + "ts-loader": "^9.5.1", + "typescript": "^5.5.4", + "webpack": "^5.94.0", + "webpack-cli": "^5.1.4", + "webpack-dev-server": "^5.0.4" } }, "node_modules/@ampproject/remapping": { @@ -75,6 +66,30 @@ "js-yaml": "^3.13.1" } }, + "node_modules/@apidevtools/json-schema-ref-parser/node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "peer": true, + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "node_modules/@apidevtools/json-schema-ref-parser/node_modules/js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "dev": true, + "peer": true, + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, "node_modules/@apidevtools/openapi-schemas": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/@apidevtools/openapi-schemas/-/openapi-schemas-2.1.0.tgz", @@ -112,16 +127,16 @@ } }, "node_modules/@apidevtools/swagger-parser/node_modules/ajv": { - "version": "8.12.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", - "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", + "version": "8.17.1", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", + "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", "dev": true, "peer": true, "dependencies": { - "fast-deep-equal": "^3.1.1", + "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" + "require-from-string": "^2.0.2" }, "funding": { "type": "github", @@ -240,9 +255,9 @@ } }, "node_modules/@azure/core-auth": { - "version": "1.7.1", - "resolved": "https://registry.npmjs.org/@azure/core-auth/-/core-auth-1.7.1.tgz", - "integrity": "sha512-dyeQwvgthqs/SlPVQbZQetpslXceHd4i5a7M/7z/lGEAVwnSluabnQOjF2/dk/hhWgMISusv1Ytp4mQ8JNy62A==", + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/@azure/core-auth/-/core-auth-1.7.2.tgz", + "integrity": "sha512-Igm/S3fDYmnMq1uKS38Ae1/m37B3zigdlZw+kocwEhh5GjyKjPrXKO2J6rzpC1wAxrNil/jX9BJRqBshyjnF3g==", "dev": true, "peer": true, "dependencies": { @@ -255,9 +270,9 @@ } }, "node_modules/@azure/core-auth/node_modules/@azure/abort-controller": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/@azure/abort-controller/-/abort-controller-2.1.1.tgz", - "integrity": "sha512-NhzeNm5zu2fPlwGXPUjzsRCRuPx5demaZyNcyNYJDqpa/Sbxzvo/RYt9IwUaAOnDW5+r7J9UOE6f22TQnb9nhQ==", + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@azure/abort-controller/-/abort-controller-2.1.2.tgz", + "integrity": "sha512-nBrLsEWm4J2u5LpAPjxADTlq3trDgVZZXHNKabeXZtpq3d3AbN/KGO82R87rdDz5/lYB024rtEf10/q0urNgsA==", "dev": true, "peer": true, "dependencies": { @@ -268,9 +283,9 @@ } }, "node_modules/@azure/core-client": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/@azure/core-client/-/core-client-1.9.1.tgz", - "integrity": "sha512-hHYFx9lz0ZpbO5W+iotU9tmIX1jPcoIjYUEUaWGuMi1628LCQ/z05TUR4P+NRtMgyoHQuyVYyGQiD3PC47kaIA==", + "version": "1.9.2", + "resolved": "https://registry.npmjs.org/@azure/core-client/-/core-client-1.9.2.tgz", + "integrity": "sha512-kRdry/rav3fUKHl/aDLd/pDLcB+4pOFwPPTVEExuMyaI5r+JBbMWqRbCY1pn5BniDaU3lRxO9eaQ1AmSMehl/w==", "dev": true, "peer": true, "dependencies": { @@ -287,9 +302,9 @@ } }, "node_modules/@azure/core-client/node_modules/@azure/abort-controller": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/@azure/abort-controller/-/abort-controller-2.1.1.tgz", - "integrity": "sha512-NhzeNm5zu2fPlwGXPUjzsRCRuPx5demaZyNcyNYJDqpa/Sbxzvo/RYt9IwUaAOnDW5+r7J9UOE6f22TQnb9nhQ==", + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@azure/abort-controller/-/abort-controller-2.1.2.tgz", + "integrity": "sha512-nBrLsEWm4J2u5LpAPjxADTlq3trDgVZZXHNKabeXZtpq3d3AbN/KGO82R87rdDz5/lYB024rtEf10/q0urNgsA==", "dev": true, "peer": true, "dependencies": { @@ -299,50 +314,38 @@ "node": ">=18.0.0" } }, - "node_modules/@azure/core-http": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/@azure/core-http/-/core-http-3.0.4.tgz", - "integrity": "sha512-Fok9VVhMdxAFOtqiiAtg74fL0UJkt0z3D+ouUUxcRLzZNBioPRAMJFVxiWoJljYpXsRi4GDQHzQHDc9AiYaIUQ==", + "node_modules/@azure/core-http-compat": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@azure/core-http-compat/-/core-http-compat-2.1.2.tgz", + "integrity": "sha512-5MnV1yqzZwgNLLjlizsU3QqOeQChkIXw781Fwh1xdAqJR5AA32IUaq6xv1BICJvfbHoa+JYcaij2HFkhLbNTJQ==", "dev": true, "peer": true, "dependencies": { - "@azure/abort-controller": "^1.0.0", - "@azure/core-auth": "^1.3.0", - "@azure/core-tracing": "1.0.0-preview.13", - "@azure/core-util": "^1.1.1", - "@azure/logger": "^1.0.0", - "@types/node-fetch": "^2.5.0", - "@types/tunnel": "^0.0.3", - "form-data": "^4.0.0", - "node-fetch": "^2.6.7", - "process": "^0.11.10", - "tslib": "^2.2.0", - "tunnel": "^0.0.6", - "uuid": "^8.3.0", - "xml2js": "^0.5.0" + "@azure/abort-controller": "^2.0.0", + "@azure/core-client": "^1.3.0", + "@azure/core-rest-pipeline": "^1.3.0" }, "engines": { - "node": ">=14.0.0" + "node": ">=18.0.0" } }, - "node_modules/@azure/core-http/node_modules/@azure/core-tracing": { - "version": "1.0.0-preview.13", - "resolved": "https://registry.npmjs.org/@azure/core-tracing/-/core-tracing-1.0.0-preview.13.tgz", - "integrity": "sha512-KxDlhXyMlh2Jhj2ykX6vNEU0Vou4nHr025KoSEiz7cS3BNiHNaZcdECk/DmLkEB0as5T7b/TpRcehJ5yV6NeXQ==", + "node_modules/@azure/core-http-compat/node_modules/@azure/abort-controller": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@azure/abort-controller/-/abort-controller-2.1.2.tgz", + "integrity": "sha512-nBrLsEWm4J2u5LpAPjxADTlq3trDgVZZXHNKabeXZtpq3d3AbN/KGO82R87rdDz5/lYB024rtEf10/q0urNgsA==", "dev": true, "peer": true, "dependencies": { - "@opentelemetry/api": "^1.0.1", - "tslib": "^2.2.0" + "tslib": "^2.6.2" }, "engines": { - "node": ">=12.0.0" + "node": ">=18.0.0" } }, "node_modules/@azure/core-lro": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/@azure/core-lro/-/core-lro-2.7.1.tgz", - "integrity": "sha512-kXSlrNHOCTVZMxpXNRqzgh9/j4cnNXU5Hf2YjMyjddRhCXFiFRzmNaqwN+XO9rGTsCOIaaG7M67zZdyliXZG9g==", + "version": "2.7.2", + "resolved": "https://registry.npmjs.org/@azure/core-lro/-/core-lro-2.7.2.tgz", + "integrity": "sha512-0YIpccoX8m/k00O7mDDMdJpbr6mf1yWo2dfmxt5A8XVZVVMz2SSKaEbMCeJRvgQ0IaSlqhjT47p4hVIRRy90xw==", "dev": true, "peer": true, "dependencies": { @@ -356,9 +359,9 @@ } }, "node_modules/@azure/core-lro/node_modules/@azure/abort-controller": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/@azure/abort-controller/-/abort-controller-2.1.1.tgz", - "integrity": "sha512-NhzeNm5zu2fPlwGXPUjzsRCRuPx5demaZyNcyNYJDqpa/Sbxzvo/RYt9IwUaAOnDW5+r7J9UOE6f22TQnb9nhQ==", + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@azure/abort-controller/-/abort-controller-2.1.2.tgz", + "integrity": "sha512-nBrLsEWm4J2u5LpAPjxADTlq3trDgVZZXHNKabeXZtpq3d3AbN/KGO82R87rdDz5/lYB024rtEf10/q0urNgsA==", "dev": true, "peer": true, "dependencies": { @@ -369,9 +372,9 @@ } }, "node_modules/@azure/core-paging": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/@azure/core-paging/-/core-paging-1.6.1.tgz", - "integrity": "sha512-3tKIQXSU3mlN+ITz0m2pXLnKK3oQ6/EVcW8ud011Iq+M0rx6Wnm7NUEpoMeOAEedeKlPtemrQzO6YWoDR71O5w==", + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/@azure/core-paging/-/core-paging-1.6.2.tgz", + "integrity": "sha512-YKWi9YuCU04B55h25cnOYZHxXYtEvQEbKST5vqRga7hWY9ydd3FZHdeQF8pyh+acWZvppw13M/LMGx0LABUVMA==", "dev": true, "peer": true, "dependencies": { @@ -382,16 +385,16 @@ } }, "node_modules/@azure/core-rest-pipeline": { - "version": "1.15.1", - "resolved": "https://registry.npmjs.org/@azure/core-rest-pipeline/-/core-rest-pipeline-1.15.1.tgz", - "integrity": "sha512-ZxS6i3eHxh86u+1eWZJiYywoN2vxvsSoAUx60Mny8cZ4nTwvt7UzVVBJO+m2PW2KIJfNiXMt59xBa59htOWL4g==", + "version": "1.16.3", + "resolved": "https://registry.npmjs.org/@azure/core-rest-pipeline/-/core-rest-pipeline-1.16.3.tgz", + "integrity": "sha512-VxLk4AHLyqcHsfKe4MZ6IQ+D+ShuByy+RfStKfSjxJoL3WBWq17VNmrz8aT8etKzqc2nAeIyLxScjpzsS4fz8w==", "dev": true, "peer": true, "dependencies": { "@azure/abort-controller": "^2.0.0", "@azure/core-auth": "^1.4.0", "@azure/core-tracing": "^1.0.1", - "@azure/core-util": "^1.3.0", + "@azure/core-util": "^1.9.0", "@azure/logger": "^1.0.0", "http-proxy-agent": "^7.0.0", "https-proxy-agent": "^7.0.0", @@ -402,9 +405,9 @@ } }, "node_modules/@azure/core-rest-pipeline/node_modules/@azure/abort-controller": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/@azure/abort-controller/-/abort-controller-2.1.1.tgz", - "integrity": "sha512-NhzeNm5zu2fPlwGXPUjzsRCRuPx5demaZyNcyNYJDqpa/Sbxzvo/RYt9IwUaAOnDW5+r7J9UOE6f22TQnb9nhQ==", + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@azure/abort-controller/-/abort-controller-2.1.2.tgz", + "integrity": "sha512-nBrLsEWm4J2u5LpAPjxADTlq3trDgVZZXHNKabeXZtpq3d3AbN/KGO82R87rdDz5/lYB024rtEf10/q0urNgsA==", "dev": true, "peer": true, "dependencies": { @@ -415,9 +418,9 @@ } }, "node_modules/@azure/core-tracing": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@azure/core-tracing/-/core-tracing-1.1.1.tgz", - "integrity": "sha512-qPbYhN1pE5XQ2jPKIHP33x8l3oBu1UqIWnYqZZ3OYnYjzY0xqIHjn49C+ptsPD9yC7uyWI9Zm7iZUZLs2R4DhQ==", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@azure/core-tracing/-/core-tracing-1.1.2.tgz", + "integrity": "sha512-dawW9ifvWAWmUm9/h+/UQ2jrdvjCJ7VJEuCJ6XVNudzcOwm53BFZH4Q845vjfgoUAM8ZxokvVNxNxAITc502YA==", "dev": true, "peer": true, "dependencies": { @@ -428,9 +431,9 @@ } }, "node_modules/@azure/core-util": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/@azure/core-util/-/core-util-1.8.1.tgz", - "integrity": "sha512-L3voj0StUdJ+YKomvwnTv7gHzguJO+a6h30pmmZdRprJCM+RJlGMPxzuh4R7lhQu1jNmEtaHX5wvTgWLDAmbGQ==", + "version": "1.9.2", + "resolved": "https://registry.npmjs.org/@azure/core-util/-/core-util-1.9.2.tgz", + "integrity": "sha512-l1Qrqhi4x1aekkV+OlcqsJa4AnAkj5p0JV8omgwjaV9OAbP41lvrMvs+CptfetKkeEaGRGSzby7sjPZEX7+kkQ==", "dev": true, "peer": true, "dependencies": { @@ -442,12 +445,26 @@ } }, "node_modules/@azure/core-util/node_modules/@azure/abort-controller": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/@azure/abort-controller/-/abort-controller-2.1.1.tgz", - "integrity": "sha512-NhzeNm5zu2fPlwGXPUjzsRCRuPx5demaZyNcyNYJDqpa/Sbxzvo/RYt9IwUaAOnDW5+r7J9UOE6f22TQnb9nhQ==", + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@azure/abort-controller/-/abort-controller-2.1.2.tgz", + "integrity": "sha512-nBrLsEWm4J2u5LpAPjxADTlq3trDgVZZXHNKabeXZtpq3d3AbN/KGO82R87rdDz5/lYB024rtEf10/q0urNgsA==", + "dev": true, + "peer": true, + "dependencies": { + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@azure/core-xml": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/@azure/core-xml/-/core-xml-1.4.3.tgz", + "integrity": "sha512-D6G7FEmDiTctPKuWegX2WTrS1enKZwqYwdKTO6ZN6JMigcCehlT0/CYl+zWpI9vQ9frwwp7GQT3/owaEXgnOsA==", "dev": true, "peer": true, "dependencies": { + "fast-xml-parser": "^4.3.2", "tslib": "^2.6.2" }, "engines": { @@ -455,21 +472,21 @@ } }, "node_modules/@azure/identity": { - "version": "3.4.2", - "resolved": "https://registry.npmjs.org/@azure/identity/-/identity-3.4.2.tgz", - "integrity": "sha512-0q5DL4uyR0EZ4RXQKD8MadGH6zTIcloUoS/RVbCpNpej4pwte0xpqYxk8K97Py2RiuUvI7F4GXpoT4046VfufA==", + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/@azure/identity/-/identity-4.4.1.tgz", + "integrity": "sha512-DwnG4cKFEM7S3T+9u05NstXU/HN0dk45kPOinUyNKsn5VWwpXd9sbPKEg6kgJzGbm1lMuhx9o31PVbCtM5sfBA==", "dev": true, "peer": true, "dependencies": { "@azure/abort-controller": "^1.0.0", "@azure/core-auth": "^1.5.0", - "@azure/core-client": "^1.4.0", + "@azure/core-client": "^1.9.2", "@azure/core-rest-pipeline": "^1.1.0", "@azure/core-tracing": "^1.0.0", - "@azure/core-util": "^1.6.1", + "@azure/core-util": "^1.3.0", "@azure/logger": "^1.0.0", - "@azure/msal-browser": "^3.5.0", - "@azure/msal-node": "^2.5.1", + "@azure/msal-browser": "^3.14.0", + "@azure/msal-node": "^2.9.2", "events": "^3.0.0", "jws": "^4.0.0", "open": "^8.0.0", @@ -477,28 +494,13 @@ "tslib": "^2.2.0" }, "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/@azure/identity/node_modules/@azure/msal-node": { - "version": "2.6.5", - "resolved": "https://registry.npmjs.org/@azure/msal-node/-/msal-node-2.6.5.tgz", - "integrity": "sha512-cVyQqKW75RnAd2ew31STlMOHa+g9su1Fddno7h86B9nEvJjkIhiGBKkS5VVR/3WeSbLzBLGKInTunW6gEY+yDg==", - "dev": true, - "peer": true, - "dependencies": { - "@azure/msal-common": "14.8.0", - "jsonwebtoken": "^9.0.0", - "uuid": "^8.3.0" - }, - "engines": { - "node": ">=16" + "node": ">=18.0.0" } }, "node_modules/@azure/logger": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@azure/logger/-/logger-1.1.1.tgz", - "integrity": "sha512-/+4TtokaGgC+MnThdf6HyIH9Wrjp+CnCn3Nx3ggevN7FFjjNyjqg0yLlc2i9S+Z2uAzI8GYOo35Nzb1MhQ89MA==", + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/@azure/logger/-/logger-1.1.4.tgz", + "integrity": "sha512-4IXXzcCdLdlXuCG+8UKEwLA1T1NHqUfanhXYHiQTn+6sfWCZXduqbtXDGceg3Ce5QxTGo7EqmbV6Bi+aqKuClQ==", "dev": true, "peer": true, "dependencies": { @@ -509,28 +511,28 @@ } }, "node_modules/@azure/msal-browser": { - "version": "3.15.0", - "resolved": "https://registry.npmjs.org/@azure/msal-browser/-/msal-browser-3.15.0.tgz", - "integrity": "sha512-jqngIR0zGLtEHCAhgXLl+VZTFcU/9DmRSjGj5RbrLnFPL/0L9Hr68k8grvLrTIq7tjhTM5Xgh6Xc0l7JlViHQQ==", + "version": "3.24.0", + "resolved": "https://registry.npmjs.org/@azure/msal-browser/-/msal-browser-3.24.0.tgz", + "integrity": "sha512-JGNV9hTYAa7lsum9IMIibn2kKczAojNihGo1hi7pG0kNrcKej530Fl6jxwM05A44/6I079CSn6WxYxbVhKUmWg==", "dependencies": { - "@azure/msal-common": "14.10.0" + "@azure/msal-common": "14.15.0" }, "engines": { "node": ">=0.8.0" } }, "node_modules/@azure/msal-browser/node_modules/@azure/msal-common": { - "version": "14.10.0", - "resolved": "https://registry.npmjs.org/@azure/msal-common/-/msal-common-14.10.0.tgz", - "integrity": "sha512-Zk6DPDz7e1wPgLoLgAp0349Yay9RvcjPM5We/ehuenDNsz/t9QEFI7tRoHpp/e47I4p20XE3FiDlhKwAo3utDA==", + "version": "14.15.0", + "resolved": "https://registry.npmjs.org/@azure/msal-common/-/msal-common-14.15.0.tgz", + "integrity": "sha512-ImAQHxmpMneJ/4S8BRFhjt1MZ3bppmpRPYYNyzeQPeFN288YKbb8TmmISQEbtfkQ1BPASvYZU5doIZOPBAqENQ==", "engines": { "node": ">=0.8.0" } }, "node_modules/@azure/msal-common": { - "version": "14.8.0", - "resolved": "https://registry.npmjs.org/@azure/msal-common/-/msal-common-14.8.0.tgz", - "integrity": "sha512-FIghuAzpgmc5ZAW2rCTAHKdhGcCRqg/UyroidTgGgSRrG1gOsEbUTW+7lmEFTz84ttCv5RnjOAUUi/SQjUTw0w==", + "version": "14.14.1", + "resolved": "https://registry.npmjs.org/@azure/msal-common/-/msal-common-14.14.1.tgz", + "integrity": "sha512-2Q3tqNz/PZLfSr8BvcHZVpRRfSn4MjGSqjj9J+HlBsmbf1Uu4P0WeXnemjTJwwx9KrmplsrN3UkZ/LPOR720rw==", "dev": true, "peer": true, "engines": { @@ -538,72 +540,52 @@ } }, "node_modules/@azure/msal-node": { - "version": "1.18.4", - "resolved": "https://registry.npmjs.org/@azure/msal-node/-/msal-node-1.18.4.tgz", - "integrity": "sha512-Kc/dRvhZ9Q4+1FSfsTFDME/v6+R2Y1fuMty/TfwqE5p9GTPw08BPbKgeWinE8JRHRp+LemjQbUZsn4Q4l6Lszg==", - "deprecated": "A newer major version of this library is available. Please upgrade to the latest available version.", + "version": "2.13.0", + "resolved": "https://registry.npmjs.org/@azure/msal-node/-/msal-node-2.13.0.tgz", + "integrity": "sha512-DhP97ycs7qlCVzzzWGzJiwAFyFj5okno74E4FUZ61oCLfKh4IxA1kxirqzrWuYZWpBe9HVPL6GA4NvmlEOBN5Q==", "dev": true, "peer": true, "dependencies": { - "@azure/msal-common": "13.3.1", + "@azure/msal-common": "14.14.1", "jsonwebtoken": "^9.0.0", "uuid": "^8.3.0" }, "engines": { - "node": "10 || 12 || 14 || 16 || 18" - } - }, - "node_modules/@azure/msal-node/node_modules/@azure/msal-common": { - "version": "13.3.1", - "resolved": "https://registry.npmjs.org/@azure/msal-common/-/msal-common-13.3.1.tgz", - "integrity": "sha512-Lrk1ozoAtaP/cp53May3v6HtcFSVxdFrg2Pa/1xu5oIvsIwhxW6zSPibKefCOVgd5osgykMi5jjcZHv8XkzZEQ==", - "dev": true, - "peer": true, - "engines": { - "node": ">=0.8.0" + "node": ">=16" } }, "node_modules/@azure/storage-blob": { - "version": "12.17.0", - "resolved": "https://registry.npmjs.org/@azure/storage-blob/-/storage-blob-12.17.0.tgz", - "integrity": "sha512-sM4vpsCpcCApagRW5UIjQNlNylo02my2opgp0Emi8x888hZUvJ3dN69Oq20cEGXkMUWnoCrBaB0zyS3yeB87sQ==", + "version": "12.24.0", + "resolved": "https://registry.npmjs.org/@azure/storage-blob/-/storage-blob-12.24.0.tgz", + "integrity": "sha512-l8cmWM4C7RoNCBOImoFMxhTXe1Lr+8uQ/IgnhRNMpfoA9bAFWoLG4XrWm6O5rKXortreVQuD+fc1hbzWklOZbw==", "dev": true, "peer": true, "dependencies": { "@azure/abort-controller": "^1.0.0", - "@azure/core-http": "^3.0.0", + "@azure/core-auth": "^1.4.0", + "@azure/core-client": "^1.6.2", + "@azure/core-http-compat": "^2.0.0", "@azure/core-lro": "^2.2.0", "@azure/core-paging": "^1.1.1", - "@azure/core-tracing": "1.0.0-preview.13", + "@azure/core-rest-pipeline": "^1.10.1", + "@azure/core-tracing": "^1.1.2", + "@azure/core-util": "^1.6.1", + "@azure/core-xml": "^1.3.2", "@azure/logger": "^1.0.0", "events": "^3.0.0", "tslib": "^2.2.0" }, "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/@azure/storage-blob/node_modules/@azure/core-tracing": { - "version": "1.0.0-preview.13", - "resolved": "https://registry.npmjs.org/@azure/core-tracing/-/core-tracing-1.0.0-preview.13.tgz", - "integrity": "sha512-KxDlhXyMlh2Jhj2ykX6vNEU0Vou4nHr025KoSEiz7cS3BNiHNaZcdECk/DmLkEB0as5T7b/TpRcehJ5yV6NeXQ==", - "dev": true, - "peer": true, - "dependencies": { - "@opentelemetry/api": "^1.0.1", - "tslib": "^2.2.0" - }, - "engines": { - "node": ">=12.0.0" + "node": ">=18.0.0" } }, "node_modules/@babel/code-frame": { - "version": "7.24.2", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.2.tgz", - "integrity": "sha512-y5+tLQyV8pg3fsiln67BVLD1P13Eg4lh5RW9mF0zUuvLrv9uIQ4MCL+CRT+FTsBlBjcIan6PGsLcBN0m3ClUyQ==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.7.tgz", + "integrity": "sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA==", "dev": true, "dependencies": { - "@babel/highlight": "^7.24.2", + "@babel/highlight": "^7.24.7", "picocolors": "^1.0.0" }, "engines": { @@ -611,30 +593,30 @@ } }, "node_modules/@babel/compat-data": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.24.1.tgz", - "integrity": "sha512-Pc65opHDliVpRHuKfzI+gSA4zcgr65O4cl64fFJIWEEh8JoHIHh0Oez1Eo8Arz8zq/JhgKodQaxEwUPRtZylVA==", + "version": "7.25.4", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.25.4.tgz", + "integrity": "sha512-+LGRog6RAsCJrrrg/IO6LGmpphNe5DiK30dGjCoxxeGv49B10/3XYGxPsAwrDlMFcFEvdAUavDT8r9k/hSyQqQ==", "dev": true, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/core": { - "version": "7.24.3", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.24.3.tgz", - "integrity": "sha512-5FcvN1JHw2sHJChotgx8Ek0lyuh4kCKelgMTTqhYJJtloNvUfpAFMeNQUtdlIaktwrSV9LtCdqwk48wL2wBacQ==", + "version": "7.25.2", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.25.2.tgz", + "integrity": "sha512-BBt3opiCOxUr9euZ5/ro/Xv8/V7yJ5bjYMqG/C1YAo8MIKAnumZalCN+msbci3Pigy4lIQfPUpfMM27HMGaYEA==", "dev": true, "dependencies": { "@ampproject/remapping": "^2.2.0", - "@babel/code-frame": "^7.24.2", - "@babel/generator": "^7.24.1", - "@babel/helper-compilation-targets": "^7.23.6", - "@babel/helper-module-transforms": "^7.23.3", - "@babel/helpers": "^7.24.1", - "@babel/parser": "^7.24.1", - "@babel/template": "^7.24.0", - "@babel/traverse": "^7.24.1", - "@babel/types": "^7.24.0", + "@babel/code-frame": "^7.24.7", + "@babel/generator": "^7.25.0", + "@babel/helper-compilation-targets": "^7.25.2", + "@babel/helper-module-transforms": "^7.25.2", + "@babel/helpers": "^7.25.0", + "@babel/parser": "^7.25.0", + "@babel/template": "^7.25.0", + "@babel/traverse": "^7.25.2", + "@babel/types": "^7.25.2", "convert-source-map": "^2.0.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", @@ -650,12 +632,12 @@ } }, "node_modules/@babel/generator": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.24.1.tgz", - "integrity": "sha512-DfCRfZsBcrPEHUfuBMgbJ1Ut01Y/itOs+hY2nFLgqsqXd52/iSiVq5TITtUasIUgm+IIKdY2/1I7auiQOEeC9A==", + "version": "7.25.4", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.25.4.tgz", + "integrity": "sha512-NFtZmZsyzDPJnk9Zg3BbTfKKc9UlHYzD0E//p2Z3B9nCwwtJW9T0gVbCz8+fBngnn4zf1Dr3IK8PHQQHq0lDQw==", "dev": true, "dependencies": { - "@babel/types": "^7.24.0", + "@babel/types": "^7.25.4", "@jridgewell/gen-mapping": "^0.3.5", "@jridgewell/trace-mapping": "^0.3.25", "jsesc": "^2.5.1" @@ -665,26 +647,26 @@ } }, "node_modules/@babel/helper-annotate-as-pure": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.22.5.tgz", - "integrity": "sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.24.7.tgz", + "integrity": "sha512-BaDeOonYvhdKw+JoMVkAixAAJzG2jVPIwWoKBPdYuY9b452e2rPuI9QPYh3KpofZ3pW2akOmwZLOiOsHMiqRAg==", "dev": true, "dependencies": { - "@babel/types": "^7.22.5" + "@babel/types": "^7.24.7" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-compilation-targets": { - "version": "7.23.6", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.23.6.tgz", - "integrity": "sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==", + "version": "7.25.2", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.25.2.tgz", + "integrity": "sha512-U2U5LsSaZ7TAt3cfaymQ8WHh0pxvdHoEk6HVpaexxixjyEquMh0L0YNJNM6CTGKMXV1iksi0iZkGw4AcFkPaaw==", "dev": true, "dependencies": { - "@babel/compat-data": "^7.23.5", - "@babel/helper-validator-option": "^7.23.5", - "browserslist": "^4.22.2", + "@babel/compat-data": "^7.25.2", + "@babel/helper-validator-option": "^7.24.8", + "browserslist": "^4.23.1", "lru-cache": "^5.1.1", "semver": "^6.3.1" }, @@ -693,19 +675,17 @@ } }, "node_modules/@babel/helper-create-class-features-plugin": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.24.1.tgz", - "integrity": "sha512-1yJa9dX9g//V6fDebXoEfEsxkZHk3Hcbm+zLhyu6qVgYFLvmTALTeV+jNU9e5RnYtioBrGEOdoI2joMSNQ/+aA==", - "dev": true, - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.22.5", - "@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.24.1", - "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", - "@babel/helper-split-export-declaration": "^7.22.6", + "version": "7.25.4", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.25.4.tgz", + "integrity": "sha512-ro/bFs3/84MDgDmMwbcHgDa8/E6J3QKNTk4xJJnVeFtGE+tL0K26E3pNxhYz2b67fJpt7Aphw5XcploKXuCvCQ==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.24.7", + "@babel/helper-member-expression-to-functions": "^7.24.8", + "@babel/helper-optimise-call-expression": "^7.24.7", + "@babel/helper-replace-supers": "^7.25.0", + "@babel/helper-skip-transparent-expression-wrappers": "^7.24.7", + "@babel/traverse": "^7.25.4", "semver": "^6.3.1" }, "engines": { @@ -715,75 +695,42 @@ "@babel/core": "^7.0.0" } }, - "node_modules/@babel/helper-environment-visitor": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz", - "integrity": "sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-function-name": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz", - "integrity": "sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==", - "dev": true, - "dependencies": { - "@babel/template": "^7.22.15", - "@babel/types": "^7.23.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-hoist-variables": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz", - "integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==", - "dev": true, - "dependencies": { - "@babel/types": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, "node_modules/@babel/helper-member-expression-to-functions": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.23.0.tgz", - "integrity": "sha512-6gfrPwh7OuT6gZyJZvd6WbTfrqAo7vm4xCzAXOusKqq/vWdKXphTpj5klHKNmRUU6/QRGlBsyU9mAIPaWHlqJA==", + "version": "7.24.8", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.24.8.tgz", + "integrity": "sha512-LABppdt+Lp/RlBxqrh4qgf1oEH/WxdzQNDJIu5gC/W1GyvPVrOBiItmmM8wan2fm4oYqFuFfkXmlGpLQhPY8CA==", "dev": true, "dependencies": { - "@babel/types": "^7.23.0" + "@babel/traverse": "^7.24.8", + "@babel/types": "^7.24.8" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-module-imports": { - "version": "7.24.3", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.24.3.tgz", - "integrity": "sha512-viKb0F9f2s0BCS22QSF308z/+1YWKV/76mwt61NBzS5izMzDPwdq1pTrzf+Li3npBWX9KdQbkeCt1jSAM7lZqg==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.24.7.tgz", + "integrity": "sha512-8AyH3C+74cgCVVXow/myrynrAGv+nTVg5vKu2nZph9x7RcRwzmh0VFallJuFTZ9mx6u4eSdXZfcOzSqTUm0HCA==", "dev": true, "dependencies": { - "@babel/types": "^7.24.0" + "@babel/traverse": "^7.24.7", + "@babel/types": "^7.24.7" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-module-transforms": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.23.3.tgz", - "integrity": "sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==", + "version": "7.25.2", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.25.2.tgz", + "integrity": "sha512-BjyRAbix6j/wv83ftcVJmBt72QtHI56C7JXZoG2xATiLpmoC7dpd8WnkikExHDVPpi/3qCmO6WY1EaXOluiecQ==", "dev": true, "dependencies": { - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-module-imports": "^7.22.15", - "@babel/helper-simple-access": "^7.22.5", - "@babel/helper-split-export-declaration": "^7.22.6", - "@babel/helper-validator-identifier": "^7.22.20" + "@babel/helper-module-imports": "^7.24.7", + "@babel/helper-simple-access": "^7.24.7", + "@babel/helper-validator-identifier": "^7.24.7", + "@babel/traverse": "^7.25.2" }, "engines": { "node": ">=6.9.0" @@ -793,35 +740,35 @@ } }, "node_modules/@babel/helper-optimise-call-expression": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.22.5.tgz", - "integrity": "sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.24.7.tgz", + "integrity": "sha512-jKiTsW2xmWwxT1ixIdfXUZp+P5yURx2suzLZr5Hi64rURpDYdMW0pv+Uf17EYk2Rd428Lx4tLsnjGJzYKDM/6A==", "dev": true, "dependencies": { - "@babel/types": "^7.22.5" + "@babel/types": "^7.24.7" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-plugin-utils": { - "version": "7.24.0", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.0.tgz", - "integrity": "sha512-9cUznXMG0+FxRuJfvL82QlTqIzhVW9sL0KjMPHhAOOvpQGL8QtdxnBKILjBqxlHyliz0yCa1G903ZXI/FuHy2w==", + "version": "7.24.8", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.8.tgz", + "integrity": "sha512-FFWx5142D8h2Mgr/iPVGH5G7w6jDn4jUSpZTyDnQO0Yn7Ks2Kuz6Pci8H6MPCoUJegd/UZQ3tAvfLCxQSnWWwg==", "dev": true, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-replace-supers": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.24.1.tgz", - "integrity": "sha512-QCR1UqC9BzG5vZl8BMicmZ28RuUBnHhAMddD8yHFHDRH9lLTZ9uUPehX8ctVPT8l0TKblJidqcgUUKGVrePleQ==", + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.25.0.tgz", + "integrity": "sha512-q688zIvQVYtZu+i2PsdIu/uWGRpfxzr5WESsfpShfZECkO+d2o+WROWezCi/Q6kJ0tfPa5+pUGUlfx2HhrA3Bg==", "dev": true, "dependencies": { - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-member-expression-to-functions": "^7.23.0", - "@babel/helper-optimise-call-expression": "^7.22.5" + "@babel/helper-member-expression-to-functions": "^7.24.8", + "@babel/helper-optimise-call-expression": "^7.24.7", + "@babel/traverse": "^7.25.0" }, "engines": { "node": ">=6.9.0" @@ -831,89 +778,78 @@ } }, "node_modules/@babel/helper-simple-access": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz", - "integrity": "sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.24.7.tgz", + "integrity": "sha512-zBAIvbCMh5Ts+b86r/CjU+4XGYIs+R1j951gxI3KmmxBMhCg4oQMsv6ZXQ64XOm/cvzfU1FmoCyt6+owc5QMYg==", "dev": true, "dependencies": { - "@babel/types": "^7.22.5" + "@babel/traverse": "^7.24.7", + "@babel/types": "^7.24.7" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-skip-transparent-expression-wrappers": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.22.5.tgz", - "integrity": "sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q==", - "dev": true, - "dependencies": { - "@babel/types": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-split-export-declaration": { - "version": "7.22.6", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz", - "integrity": "sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.24.7.tgz", + "integrity": "sha512-IO+DLT3LQUElMbpzlatRASEyQtfhSE0+m465v++3jyyXeBTBUjtVZg28/gHeV5mrTJqvEKhKroBGAvhW+qPHiQ==", "dev": true, "dependencies": { - "@babel/types": "^7.22.5" + "@babel/traverse": "^7.24.7", + "@babel/types": "^7.24.7" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-string-parser": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.24.1.tgz", - "integrity": "sha512-2ofRCjnnA9y+wk8b9IAREroeUP02KHp431N2mhKniy2yKIDKpbrHv9eXwm8cBeWQYcJmzv5qKCu65P47eCF7CQ==", + "version": "7.24.8", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.24.8.tgz", + "integrity": "sha512-pO9KhhRcuUyGnJWwyEgnRJTSIZHiT+vMD0kPeD+so0l7mxkMT19g3pjY9GTnHySck/hDzq+dtW/4VgnMkippsQ==", "dev": true, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-validator-identifier": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz", - "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.7.tgz", + "integrity": "sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w==", "dev": true, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-validator-option": { - "version": "7.23.5", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.23.5.tgz", - "integrity": "sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==", + "version": "7.24.8", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.24.8.tgz", + "integrity": "sha512-xb8t9tD1MHLungh/AIoWYN+gVHaB9kwlu8gffXGSt3FFEIT7RjS+xWbc2vUD1UTZdIpKj/ab3rdqJ7ufngyi2Q==", "dev": true, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helpers": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.24.1.tgz", - "integrity": "sha512-BpU09QqEe6ZCHuIHFphEFgvNSrubve1FtyMton26ekZ85gRGi6LrTF7zArARp2YvyFxloeiRmtSCq5sjh1WqIg==", + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.25.0.tgz", + "integrity": "sha512-MjgLZ42aCm0oGjJj8CtSM3DB8NOOf8h2l7DCTePJs29u+v7yO/RBX9nShlKMgFnRks/Q4tBAe7Hxnov9VkGwLw==", "dev": true, "dependencies": { - "@babel/template": "^7.24.0", - "@babel/traverse": "^7.24.1", - "@babel/types": "^7.24.0" + "@babel/template": "^7.25.0", + "@babel/types": "^7.25.0" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/highlight": { - "version": "7.24.2", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.2.tgz", - "integrity": "sha512-Yac1ao4flkTxTteCDZLEvdxg2fZfz1v8M4QpaGypq/WPDqg3ijHYbDfs+LG5hvzSoqaSZ9/Z9lKSP3CjZjv+pA==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.7.tgz", + "integrity": "sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw==", "dev": true, "dependencies": { - "@babel/helper-validator-identifier": "^7.22.20", + "@babel/helper-validator-identifier": "^7.24.7", "chalk": "^2.4.2", "js-tokens": "^4.0.0", "picocolors": "^1.0.0" @@ -923,10 +859,13 @@ } }, "node_modules/@babel/parser": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.24.1.tgz", - "integrity": "sha512-Zo9c7N3xdOIQrNip7Lc9wvRPzlRtovHVE4lkz8WEDr7uYh/GMQhSiIgFxGIArRHYdJE5kxtZjAf8rT0xhdLCzg==", + "version": "7.25.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.25.4.tgz", + "integrity": "sha512-nq+eWrOgdtu3jG5Os4TQP3x3cLA8hR8TvJNjD8vnPa20WGycimcparWnLK4jJhElTK6SDyuJo1weMKO/5LpmLA==", "dev": true, + "dependencies": { + "@babel/types": "^7.25.4" + }, "bin": { "parser": "bin/babel-parser.js" }, @@ -935,12 +874,12 @@ } }, "node_modules/@babel/plugin-syntax-jsx": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.23.3.tgz", - "integrity": "sha512-EB2MELswq55OHUoRZLGg/zC7QWUKfNLpE57m/S2yr1uEneIgsTgrSzXP3NXEsMkVn76OlaVVnzN+ugObuYGwhg==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.24.7.tgz", + "integrity": "sha512-6ddciUPe/mpMnOKv/U+RSd2vvVy+Yw/JfBB0ZHYjEZt9NLHmCUylNYlsbqCCS1Bffjlb0fCwC9Vqz+sBz6PsiQ==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -950,12 +889,12 @@ } }, "node_modules/@babel/plugin-syntax-typescript": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.23.3.tgz", - "integrity": "sha512-9EiNjVJOMwCO+43TqoTrgQ8jMwcAd0sWyXi9RPfIsLTj4R2MADDDQXELhffaUx/uJv2AYcxBgPwH6j4TIA4ytQ==", + "version": "7.25.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.25.4.tgz", + "integrity": "sha512-uMOCoHVU52BsSWxPOMVv5qKRdeSlPuImUCB2dlPuBSU+W2/ROE7/Zg8F2Kepbk+8yBa68LlRKxO+xgEVWorsDg==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.24.8" }, "engines": { "node": ">=6.9.0" @@ -965,14 +904,14 @@ } }, "node_modules/@babel/plugin-transform-modules-commonjs": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.24.1.tgz", - "integrity": "sha512-szog8fFTUxBfw0b98gEWPaEqF42ZUD/T3bkynW/wtgx2p/XCP55WEsb+VosKceRSd6njipdZvNogqdtI4Q0chw==", + "version": "7.24.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.24.8.tgz", + "integrity": "sha512-WHsk9H8XxRs3JXKWFiqtQebdh9b/pTk4EgueygFzYlTKAg0Ud985mSevdNjdXdFBATSKVJGQXP1tv6aGbssLKA==", "dev": true, "dependencies": { - "@babel/helper-module-transforms": "^7.23.3", - "@babel/helper-plugin-utils": "^7.24.0", - "@babel/helper-simple-access": "^7.22.5" + "@babel/helper-module-transforms": "^7.24.8", + "@babel/helper-plugin-utils": "^7.24.8", + "@babel/helper-simple-access": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -982,15 +921,16 @@ } }, "node_modules/@babel/plugin-transform-typescript": { - "version": "7.23.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.23.6.tgz", - "integrity": "sha512-6cBG5mBvUu4VUD04OHKnYzbuHNP8huDsD3EDqqpIpsswTDoqHCjLoHb6+QgsV1WsT2nipRqCPgxD3LXnEO7XfA==", + "version": "7.25.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.25.2.tgz", + "integrity": "sha512-lBwRvjSmqiMYe/pS0+1gggjJleUJi7NzjvQ1Fkqtt69hBa/0t1YuW/MLQMAPixfwaQOHUXsd6jeU3Z+vdGv3+A==", "dev": true, "dependencies": { - "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-create-class-features-plugin": "^7.23.6", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-typescript": "^7.23.3" + "@babel/helper-annotate-as-pure": "^7.24.7", + "@babel/helper-create-class-features-plugin": "^7.25.0", + "@babel/helper-plugin-utils": "^7.24.8", + "@babel/helper-skip-transparent-expression-wrappers": "^7.24.7", + "@babel/plugin-syntax-typescript": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -1000,16 +940,16 @@ } }, "node_modules/@babel/preset-typescript": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.23.3.tgz", - "integrity": "sha512-17oIGVlqz6CchO9RFYn5U6ZpWRZIngayYCtrPRSgANSwC2V1Jb+iP74nVxzzXJte8b8BYxrL1yY96xfhTBrNNQ==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.24.7.tgz", + "integrity": "sha512-SyXRe3OdWwIwalxDg5UtJnJQO+YPcTfwiIY2B0Xlddh9o7jpWLvv8X1RthIeDOxQ+O1ML5BLPCONToObyVQVuQ==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-validator-option": "^7.22.15", - "@babel/plugin-syntax-jsx": "^7.23.3", - "@babel/plugin-transform-modules-commonjs": "^7.23.3", - "@babel/plugin-transform-typescript": "^7.23.3" + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/helper-validator-option": "^7.24.7", + "@babel/plugin-syntax-jsx": "^7.24.7", + "@babel/plugin-transform-modules-commonjs": "^7.24.7", + "@babel/plugin-transform-typescript": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -1019,9 +959,9 @@ } }, "node_modules/@babel/runtime": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.24.1.tgz", - "integrity": "sha512-+BIznRzyqBf+2wCTxcKE3wDjfGeCoVE61KSHGpkzqrLi8qxqFwBeUFyId2cxkTmm55fzDGnm0+yCxaxygrLUnQ==", + "version": "7.25.4", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.25.4.tgz", + "integrity": "sha512-DSgLeL/FNcpXuzav5wfYvHCGvynXkJbn3Zvc3823AEe9nPwW9IK4UoCSS5yGymmQzN0pCPvivtgS6/8U2kkm1w==", "dev": true, "peer": true, "dependencies": { @@ -1031,41 +971,31 @@ "node": ">=6.9.0" } }, - "node_modules/@babel/runtime/node_modules/regenerator-runtime": { - "version": "0.14.1", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", - "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==", - "dev": true, - "peer": true - }, "node_modules/@babel/template": { - "version": "7.24.0", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.24.0.tgz", - "integrity": "sha512-Bkf2q8lMB0AFpX0NFEqSbx1OkTHf0f+0j82mkw+ZpzBnkk7e9Ql0891vlfgi+kHwOk8tQjiQHpqh4LaSa0fKEA==", + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.25.0.tgz", + "integrity": "sha512-aOOgh1/5XzKvg1jvVz7AVrx2piJ2XBi227DHmbY6y+bM9H2FlN+IfecYu4Xl0cNiiVejlsCri89LUsbj8vJD9Q==", "dev": true, "dependencies": { - "@babel/code-frame": "^7.23.5", - "@babel/parser": "^7.24.0", - "@babel/types": "^7.24.0" + "@babel/code-frame": "^7.24.7", + "@babel/parser": "^7.25.0", + "@babel/types": "^7.25.0" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/traverse": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.24.1.tgz", - "integrity": "sha512-xuU6o9m68KeqZbQuDt2TcKSxUw/mrsvavlEqQ1leZ/B+C9tk6E4sRWy97WaXgvq5E+nU3cXMxv3WKOCanVMCmQ==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.24.1", - "@babel/generator": "^7.24.1", - "@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.22.6", - "@babel/parser": "^7.24.1", - "@babel/types": "^7.24.0", + "version": "7.25.4", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.25.4.tgz", + "integrity": "sha512-VJ4XsrD+nOvlXyLzmLzUs/0qjFS4sK30te5yEFlvbbUNEgKaVb2BHZUpAL+ttLPQAHNrsI3zZisbfha5Cvr8vg==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.24.7", + "@babel/generator": "^7.25.4", + "@babel/parser": "^7.25.4", + "@babel/template": "^7.25.0", + "@babel/types": "^7.25.4", "debug": "^4.3.1", "globals": "^11.1.0" }, @@ -1074,13 +1004,13 @@ } }, "node_modules/@babel/types": { - "version": "7.24.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.0.tgz", - "integrity": "sha512-+j7a5c253RfKh8iABBhywc8NSfP5LURe7Uh4qpsh6jc+aLJguvmIUBdjSdEMQv2bENrCR5MfRdjGo7vzS/ob7w==", + "version": "7.25.4", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.25.4.tgz", + "integrity": "sha512-zQ1ijeeCXVEh+aNL0RlmkPkG8HUiDcU2pzQQFjtbntgAczRASFzj4H+6+bV+dy1ntKR14I/DypeuRG1uma98iQ==", "dev": true, "dependencies": { - "@babel/helper-string-parser": "^7.23.4", - "@babel/helper-validator-identifier": "^7.22.20", + "@babel/helper-string-parser": "^7.24.8", + "@babel/helper-validator-identifier": "^7.24.7", "to-fast-properties": "^2.0.0" }, "engines": { @@ -1123,68 +1053,58 @@ } }, "node_modules/@eslint-community/regexpp": { - "version": "4.10.0", - "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.10.0.tgz", - "integrity": "sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==", + "version": "4.11.0", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.11.0.tgz", + "integrity": "sha512-G/M/tIiMrTAxEWRfLfQJMmGNX28IxBg4PBz8XqQhqUHLFI6TL2htpIB1iQCj144V5ee/JaKyT9/WZ0MGZWfA7A==", "dev": true, "engines": { "node": "^12.0.0 || ^14.0.0 || >=16.0.0" } }, "node_modules/@eslint/eslintrc": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.4.3.tgz", - "integrity": "sha512-J6KFFz5QCYUJq3pf0mjEcCJVERbzv71PUIDczuh9JkwGEzced6CO5ADLHB1rbf/+oPBtoPfMYNOpGDzCANlbXw==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.1.0.tgz", + "integrity": "sha512-4Bfj15dVJdoy3RfZmmo86RK1Fwzn6SstsvK9JS+BaVKqC6QQQQyXekNaC+g+LKNgkQ+2VhGAzm6hO40AhMR3zQ==", "dev": true, + "peer": true, "dependencies": { "ajv": "^6.12.4", - "debug": "^4.1.1", - "espree": "^7.3.0", - "globals": "^13.9.0", - "ignore": "^4.0.6", + "debug": "^4.3.2", + "espree": "^10.0.1", + "globals": "^14.0.0", + "ignore": "^5.2.0", "import-fresh": "^3.2.1", - "js-yaml": "^3.13.1", - "minimatch": "^3.0.4", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", "strip-json-comments": "^3.1.1" }, "engines": { - "node": "^10.12.0 || >=12.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" } }, "node_modules/@eslint/eslintrc/node_modules/globals": { - "version": "13.24.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", - "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", + "version": "14.0.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-14.0.0.tgz", + "integrity": "sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==", "dev": true, - "dependencies": { - "type-fest": "^0.20.2" - }, + "peer": true, "engines": { - "node": ">=8" + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@eslint/eslintrc/node_modules/ignore": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", - "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", - "dev": true, - "engines": { - "node": ">= 4" - } - }, - "node_modules/@eslint/eslintrc/node_modules/type-fest": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "node_modules/@eslint/js": { + "version": "8.57.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.0.tgz", + "integrity": "sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==", "dev": true, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" } }, "node_modules/@exodus/schemasafe": { @@ -1205,23 +1125,38 @@ } }, "node_modules/@humanwhocodes/config-array": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.5.0.tgz", - "integrity": "sha512-FagtKFz74XrTl7y6HCzQpwDfXP0yhxe9lHLD1UZxjvZIcbyRz8zTFF/yYNfSfzU414eDwZ1SrO0Qvtyf+wFMQg==", + "version": "0.11.14", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.14.tgz", + "integrity": "sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==", + "deprecated": "Use @eslint/config-array instead", "dev": true, "dependencies": { - "@humanwhocodes/object-schema": "^1.2.0", - "debug": "^4.1.1", - "minimatch": "^3.0.4" + "@humanwhocodes/object-schema": "^2.0.2", + "debug": "^4.3.1", + "minimatch": "^3.0.5" }, "engines": { "node": ">=10.10.0" } }, + "node_modules/@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "dev": true, + "engines": { + "node": ">=12.22" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, "node_modules/@humanwhocodes/object-schema": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", - "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz", + "integrity": "sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==", + "deprecated": "Use @eslint/object-schema instead", "dev": true }, "node_modules/@inquirer/checkbox": { @@ -2393,15 +2328,114 @@ } }, "node_modules/@inquirer/type": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@inquirer/type/-/type-1.2.1.tgz", - "integrity": "sha512-xwMfkPAxeo8Ji/IxfUSqzRi0/+F2GIqJmpc5/thelgMGsjNZcjDDRBO9TLXT1s/hdx/mK5QbVIvgoLIFgXhTMQ==", + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/@inquirer/type/-/type-1.5.2.tgz", + "integrity": "sha512-w9qFkumYDCNyDZmNQjf/n6qQuvQ4dMC3BJesY4oF+yr0CxR5vxujflAVeIcS6U336uzi9GM0kAfZlLrZ9UTkpA==", "dev": true, "peer": true, + "dependencies": { + "mute-stream": "^1.0.0" + }, "engines": { "node": ">=18" } }, + "node_modules/@isaacs/cliui": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", + "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", + "dev": true, + "dependencies": { + "string-width": "^5.1.2", + "string-width-cjs": "npm:string-width@^4.2.0", + "strip-ansi": "^7.0.1", + "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", + "wrap-ansi": "^8.1.0", + "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@isaacs/cliui/node_modules/ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", + "dev": true + }, + "node_modules/@isaacs/cliui/node_modules/string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "dev": true, + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@isaacs/cliui/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dev": true, + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/wrap-ansi": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", + "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, "node_modules/@jridgewell/gen-mapping": { "version": "0.3.5", "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", @@ -2445,9 +2479,9 @@ } }, "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.4.15", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", - "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", + "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==", "dev": true }, "node_modules/@jridgewell/trace-mapping": { @@ -2467,11 +2501,65 @@ "dev": true, "peer": true }, - "node_modules/@leichtgewicht/ip-codec": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@leichtgewicht/ip-codec/-/ip-codec-2.0.4.tgz", - "integrity": "sha512-Hcv+nVC0kZnQ3tD9GVu5xSMR4VVYOteQIr/hwFPVEvPdlXqgGEuRjiheChHgdM+JyqdgNcmzZOX/tnl0JOiI7A==", - "dev": true + "node_modules/@jsonjoy.com/base64": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@jsonjoy.com/base64/-/base64-1.1.2.tgz", + "integrity": "sha512-q6XAnWQDIMA3+FTiOYajoYqySkO+JSat0ytXGSuRdq9uXE7o92gzuQwQM14xaCRlBLGq3v5miDGC4vkVTn54xA==", + "dev": true, + "engines": { + "node": ">=10.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "tslib": "2" + } + }, + "node_modules/@jsonjoy.com/json-pack": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@jsonjoy.com/json-pack/-/json-pack-1.1.0.tgz", + "integrity": "sha512-zlQONA+msXPPwHWZMKFVS78ewFczIll5lXiVPwFPCZUsrOKdxc2AvxU1HoNBmMRhqDZUR9HkC3UOm+6pME6Xsg==", + "dev": true, + "dependencies": { + "@jsonjoy.com/base64": "^1.1.1", + "@jsonjoy.com/util": "^1.1.2", + "hyperdyperid": "^1.2.0", + "thingies": "^1.20.0" + }, + "engines": { + "node": ">=10.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "tslib": "2" + } + }, + "node_modules/@jsonjoy.com/util": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@jsonjoy.com/util/-/util-1.3.0.tgz", + "integrity": "sha512-Cebt4Vk7k1xHy87kHY7KSPLT77A7Ev7IfOblyLZhtYEhrdQ6fX4EoLq3xOQ3O/DRMEh2ok5nyC180E+ABS8Wmw==", + "dev": true, + "engines": { + "node": ">=10.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "tslib": "2" + } + }, + "node_modules/@leichtgewicht/ip-codec": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@leichtgewicht/ip-codec/-/ip-codec-2.0.5.tgz", + "integrity": "sha512-Vo+PSpZG2/fmgmiNzYK9qWRh8h/CHrwD0mo1h1DzL4yzHNSfWYujGTYsWGreD000gcgmZ7K4Ys6Tx9TxtsKdDw==", + "dev": true }, "node_modules/@microsoft/dev-tunnels-contracts": { "version": "1.1.9", @@ -2499,29 +2587,64 @@ "vscode-jsonrpc": "^4.0.0" } }, + "node_modules/@microsoft/m365-spec-parser": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/@microsoft/m365-spec-parser/-/m365-spec-parser-0.2.1.tgz", + "integrity": "sha512-ni0g1vTfG4FJvcyrLaMMjIOlVECWTqbgtlbksTJqJQK2injjcYLacjGu2L+I/1NTGf37EbyxP2/r7UXpH+kiJA==", + "dev": true, + "peer": true, + "dependencies": { + "@apidevtools/swagger-parser": "^10.1.0", + "@microsoft/teams-manifest": "0.1.5", + "fs-extra": "^11.2.0", + "js-yaml": "^4.1.0", + "openapi-types": "^7.2.3", + "swagger2openapi": "^7.0.8" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/@microsoft/m365-spec-parser/node_modules/fs-extra": { + "version": "11.2.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.2.0.tgz", + "integrity": "sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==", + "dev": true, + "peer": true, + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=14.14" + } + }, "node_modules/@microsoft/teams-manifest": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/@microsoft/teams-manifest/-/teams-manifest-0.1.3.tgz", - "integrity": "sha512-S73NHbTelqc1EbG2+uw/mnwFTbNK8HYuRWQEF+stj6L9fDIgVtc4fOLylMl75AAmHzRde1SoXIWY3R055qDgyg==", + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/@microsoft/teams-manifest/-/teams-manifest-0.1.5.tgz", + "integrity": "sha512-ITt7mXSZjcrriwtn0Gg0zUnJcRac3feX3AY6MVAaF4uVf58jx5/GlFrWgABaBS30HBF05hhH1dYn2IoCby/StA==", "dev": true, "dependencies": { "@types/fs-extra": "^11.0.1", + "@types/node-fetch": "^2.6.9", "ajv": "^8.5.0", "ajv-draft-04": "^1.0.0", - "axios": "^1.6.2", - "fs-extra": "^9.1.0" + "ajv-formats": "^3.0.1", + "fs-extra": "^9.1.0", + "node-fetch": "2.7.0" } }, "node_modules/@microsoft/teams-manifest/node_modules/ajv": { - "version": "8.12.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", - "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", + "version": "8.17.1", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", + "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", "dev": true, "dependencies": { - "fast-deep-equal": "^3.1.1", + "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" + "require-from-string": "^2.0.2" }, "funding": { "type": "github", @@ -2549,31 +2672,32 @@ "dev": true }, "node_modules/@microsoft/teamsapp-cli": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@microsoft/teamsapp-cli/-/teamsapp-cli-3.0.0.tgz", - "integrity": "sha512-09J268ITYHthw4ph33TDh+BNGOLnk4My7RE193aAAO++m7q29uwtL8UQa4fLxolrnqcwQXcIzCBgbFrzO0devg==", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@microsoft/teamsapp-cli/-/teamsapp-cli-3.0.2.tgz", + "integrity": "sha512-AowuJwrrUxeF9Bq/frxuy9YZjK/ECk3pi0UBXl3CQLZ4XNWfgWatiFi/UWpyHDLccFs+0Za3nNYATFvgsxEFwQ==", "dev": true, "hasInstallScript": true, "peer": true, "dependencies": { "@azure/arm-subscriptions": "^5.0.0", "@azure/core-auth": "^1.4.0", - "@azure/identity": "^3.1.3", - "@azure/msal-node": "^1.14.6", + "@azure/identity": "^4.1.0", + "@azure/msal-node": "^2.6.6", "@inquirer/core": "^5.1.1", "@inquirer/prompts": "^3.3.0", "@inquirer/type": "^1.1.5", - "@microsoft/teamsfx-api": "0.22.7", - "@microsoft/teamsfx-core": "2.0.7", + "@microsoft/teamsfx-api": "0.23.1", + "@microsoft/teamsfx-core": "2.0.9", "ansi-escapes": "^4.3.2", "applicationinsights": "^1.8.10", "async-mutex": "^0.3.1", "chalk": "^4.1.0", "cli-table3": "^0.6.3", "dotenv": "^8.2.0", - "express": "^4.18.2", + "express": "^4.19.2", "figures": "^3.2.0", "fs-extra": "^9.1.0", + "inquirer": "^7.3.3", "lodash": "^4.17.21", "node-machine-id": "^1.1.12", "open": "^8.2.1", @@ -2654,28 +2778,12 @@ "node": ">=8" } }, - "node_modules/@microsoft/teamsapp-cli/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "peer": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/@microsoft/teamsapp-cli/node_modules/semver": { - "version": "7.6.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", - "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", "dev": true, "peer": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, "bin": { "semver": "bin/semver.js" }, @@ -2696,32 +2804,26 @@ "node": ">=8" } }, - "node_modules/@microsoft/teamsapp-cli/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true, - "peer": true - }, "node_modules/@microsoft/teamsfx-api": { - "version": "0.22.7", - "resolved": "https://registry.npmjs.org/@microsoft/teamsfx-api/-/teamsfx-api-0.22.7.tgz", - "integrity": "sha512-jcg7aLO6WMEbAQnVCYvZjgTLvjf4zu7yLNrh7+3oXtqMQRZbcPHuLUDri/4rAy7iGMf4X0fj+4vervY13GYWYw==", + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@microsoft/teamsfx-api/-/teamsfx-api-0.23.1.tgz", + "integrity": "sha512-XmXX2dccOEU3lbYgOlijfwxmkXp6nO88JWx9P1al/1aMgbIeup2Y2H37Vmz2VwfIQC/i75FbbbbwqYjG2skQjQ==", "dev": true, "peer": true, "dependencies": { "@azure/core-auth": "^1.4.0", - "@microsoft/teams-manifest": "0.1.3", - "axios": "^1.6.7", + "@microsoft/teams-manifest": "0.1.5", + "axios": "^1.6.8", + "chai": "^4.3.4", "jsonschema": "^1.4.0", "neverthrow": "^3.2.0", "tslib": "^2.3.1" } }, "node_modules/@microsoft/teamsfx-core": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/@microsoft/teamsfx-core/-/teamsfx-core-2.0.7.tgz", - "integrity": "sha512-0WD5g9ZEOzty2eJudZ2dPsr+WKmEGe0heqSnGHcAF5o1SfTOcLX0IMYFWzXHf8cstTRBJzdrOjxOr/313I4ZXg==", + "version": "2.0.9", + "resolved": "https://registry.npmjs.org/@microsoft/teamsfx-core/-/teamsfx-core-2.0.9.tgz", + "integrity": "sha512-6zA/vvpHViROP6eDbnjS8PtPyyB4eZGH/cgTiOHeiRHznT9Pkd3rqFvaIHPEDhv2g76llHEk2gTFSqL7QFovAQ==", "dev": true, "peer": true, "dependencies": { @@ -2731,16 +2833,17 @@ "@azure/arm-storage": "^17.2.1", "@azure/arm-subscriptions": "^5.0.0", "@azure/core-auth": "^1.4.0", - "@azure/identity": "^3.1.3", - "@azure/msal-node": "^1.14.6", + "@azure/identity": "^4.1.0", + "@azure/msal-node": "^2.6.6", "@azure/storage-blob": "^12.7.0", "@feathersjs/hooks": "^0.6.5", "@microsoft/dev-tunnels-contracts": "1.1.9", "@microsoft/dev-tunnels-management": "1.1.9", - "@microsoft/teamsfx-api": "0.22.7", + "@microsoft/m365-spec-parser": "^0.2.1", + "@microsoft/teamsfx-api": "0.23.1", "adm-zip": "^0.5.10", "ajv": "^8.5.0", - "axios": "^1.6.7", + "axios": "^1.6.8", "axios-retry": "^3.3.1", "comment-json": "^4.2.3", "cryptr": "^6.0.2", @@ -2761,8 +2864,8 @@ "mustache": "^4.2.0", "node-fetch": "2.7.0", "node-forge": "^1.3.1", - "office-addin-manifest": "^1.12.10", - "office-addin-project": "^0.7.0", + "office-addin-manifest": "^1.13.1", + "office-addin-project": "^0.8.1", "openapi-types": "^7.2.3", "proper-lockfile": "^4.1.2", "read-package-json-fast": "^2.0.3", @@ -2771,7 +2874,6 @@ "strip-bom": "^4.0.0", "swagger2openapi": "^7.0.8", "typedi": "^0.10.0", - "unzipper": "^0.10.11", "uuid": "^8.3.2", "validator": "^13.7.0", "xml2js": "^0.5.0", @@ -2779,42 +2881,22 @@ } }, "node_modules/@microsoft/teamsfx-core/node_modules/ajv": { - "version": "8.12.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", - "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", + "version": "8.17.1", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", + "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", "dev": true, "peer": true, "dependencies": { - "fast-deep-equal": "^3.1.1", + "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" + "require-from-string": "^2.0.2" }, "funding": { "type": "github", "url": "https://github.com/sponsors/epoberezkin" } }, - "node_modules/@microsoft/teamsfx-core/node_modules/argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true, - "peer": true - }, - "node_modules/@microsoft/teamsfx-core/node_modules/js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "dev": true, - "peer": true, - "dependencies": { - "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, "node_modules/@microsoft/teamsfx-core/node_modules/json-schema-traverse": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", @@ -2822,28 +2904,12 @@ "dev": true, "peer": true }, - "node_modules/@microsoft/teamsfx-core/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "peer": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/@microsoft/teamsfx-core/node_modules/semver": { - "version": "7.6.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", - "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", "dev": true, "peer": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, "bin": { "semver": "bin/semver.js" }, @@ -2851,13 +2917,6 @@ "node": ">=10" } }, - "node_modules/@microsoft/teamsfx-core/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true, - "peer": true - }, "node_modules/@nodelib/fs.scandir": { "version": "2.1.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", @@ -2893,14 +2952,38 @@ "node": ">= 8" } }, - "node_modules/@opentelemetry/api": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/api/-/api-1.8.0.tgz", - "integrity": "sha512-I/s6F7yKUDdtMsoBWXJe8Qz40Tui5vsuKCWJEWVL+5q9sSWRzzx6v2KeNsOBEwd94j0eWkpWCH4yB6rZg9Mf0w==", + "node_modules/@pkgjs/parseargs": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", + "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", "dev": true, - "peer": true, + "optional": true, "engines": { - "node": ">=8.0.0" + "node": ">=14" + } + }, + "node_modules/@pkgr/core": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@pkgr/core/-/core-0.1.1.tgz", + "integrity": "sha512-cq8o4cWH0ibXh9VGi5P20Tu9XF/0fFXl9EUinr9QfTM7a7p0oTA4iJRCQWppXR1Pg8dSM0UCItCkPwsk9qWWYA==", + "dev": true, + "engines": { + "node": "^12.20.0 || ^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/unts" + } + }, + "node_modules/@sindresorhus/merge-streams": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/merge-streams/-/merge-streams-2.3.0.tgz", + "integrity": "sha512-LtoMMhxAlorcGhmFYI+LhPgbPZCkgP6ra1YL604EeF6U98pLlQ3iWIGMdWSC+vWmPBWBNgmDBAhnAobLROJmwg==", + "dev": true, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/@types/body-parser": { @@ -2941,26 +3024,6 @@ "@types/node": "*" } }, - "node_modules/@types/eslint": { - "version": "8.56.6", - "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.56.6.tgz", - "integrity": "sha512-ymwc+qb1XkjT/gfoQwxIeHZ6ixH23A+tCT2ADSA/DPVKzAjwYkTXBMCQ/f6fe4wEa85Lhp26VPeUxI7wMhAi7A==", - "dev": true, - "dependencies": { - "@types/estree": "*", - "@types/json-schema": "*" - } - }, - "node_modules/@types/eslint-scope": { - "version": "3.7.7", - "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.7.tgz", - "integrity": "sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==", - "dev": true, - "dependencies": { - "@types/eslint": "*", - "@types/estree": "*" - } - }, "node_modules/@types/estree": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz", @@ -2980,9 +3043,9 @@ } }, "node_modules/@types/express-serve-static-core": { - "version": "4.17.43", - "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.43.tgz", - "integrity": "sha512-oaYtiBirUOPQGSWNGPWnzyAFJ0BP3cwvN4oWZQY+zUBwpVIGsKUkpBpSztp74drYcjavs7SKFZ4DX1V2QeN8rg==", + "version": "4.19.5", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.19.5.tgz", + "integrity": "sha512-y6W03tvrACO72aijJ5uF02FRq5cgDR9lUxddQ8vyF+GvmjJQqbzDcJngEjURc+ZsG31VI3hODNZJ2URj86pzmg==", "dev": true, "dependencies": { "@types/node": "*", @@ -3014,9 +3077,9 @@ "dev": true }, "node_modules/@types/http-proxy": { - "version": "1.17.14", - "resolved": "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.14.tgz", - "integrity": "sha512-SSrD0c1OQzlFX7pGu1eXxSEjemej64aaNPRhhVYUGqXh0BtldAAx37MG8btcumvpgKyZp1F5Gn3JkktdxiFv6w==", + "version": "1.17.15", + "resolved": "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.15.tgz", + "integrity": "sha512-25g5atgiVNTIv0LBDTg1H74Hvayx0ajtJPLLcYE3whFv75J0pWNtOBzaXJQgDTmrX1bx5U9YC2w/n65BN1HwRQ==", "dev": true, "dependencies": { "@types/node": "*" @@ -3054,12 +3117,12 @@ } }, "node_modules/@types/node": { - "version": "20.11.30", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.11.30.tgz", - "integrity": "sha512-dHM6ZxwlmuZaRmUPfv1p+KrdD1Dci04FbdEm/9wEMouFqxYoFl5aMkt0VMAUtYRQDyYvD41WJLukhq/ha3YuTw==", + "version": "20.16.1", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.16.1.tgz", + "integrity": "sha512-zJDo7wEadFtSyNz5QITDfRcrhqDvQI1xQNQ0VoizPjM/dVAODqqIUWbJPkvsxmTI0MYRGRikcdjMPhOssnPejQ==", "dev": true, "dependencies": { - "undici-types": "~5.26.4" + "undici-types": "~6.19.2" } }, "node_modules/@types/node-fetch": { @@ -3067,7 +3130,6 @@ "resolved": "https://registry.npmjs.org/@types/node-fetch/-/node-fetch-2.6.11.tgz", "integrity": "sha512-24xFj9R5+rfQJLRyM56qh+wnVSYhyXC2tkoBndtY0U+vubqNsYXGjufB2nn8Q6gt0LrARwL6UBtMCSVCwl4B1g==", "dev": true, - "peer": true, "dependencies": { "@types/node": "*", "form-data": "^4.0.0" @@ -3082,10 +3144,10 @@ "@types/node": "*" } }, - "node_modules/@types/office-js": { - "version": "1.0.377", - "resolved": "https://registry.npmjs.org/@types/office-js/-/office-js-1.0.377.tgz", - "integrity": "sha512-q8hB7tmTqRkxmB8voriZe7MNyrvZhtpo+BN60ZcZNyZubp0IgDg4e23HvY1KKXCECEUDi3DCIcABS09OF6mLrg==", + "node_modules/@types/office-js-preview": { + "version": "1.0.499", + "resolved": "https://registry.npmjs.org/@types/office-js-preview/-/office-js-preview-1.0.499.tgz", + "integrity": "sha512-Axuf1bpw08WOcDriCy+iOkUZowX0j/x/upribzAbgziWu1sL+n7FtzYjVXCIJQG+GPjOdpd7AD7emZeh3FoNeA==", "dev": true }, "node_modules/@types/office-runtime": { @@ -3095,9 +3157,9 @@ "dev": true }, "node_modules/@types/qs": { - "version": "6.9.14", - "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.14.tgz", - "integrity": "sha512-5khscbd3SwWMhFqylJBLQ0zIu7c1K6Vz0uBIt915BI3zV0q1nfjRQD3RqSBcPaO6PHEF4ov/t9y89fSiyThlPA==", + "version": "6.9.15", + "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.15.tgz", + "integrity": "sha512-uXHQKES6DQKKCLh441Xv/dwxOq1TVS3JPUMlEqoEglvlhR6Mxnlew/Xq/LRVHpLyk7iK3zODe1qYHIMltO7XGg==", "dev": true }, "node_modules/@types/range-parser": { @@ -3107,15 +3169,9 @@ "dev": true }, "node_modules/@types/retry": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.0.tgz", - "integrity": "sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==", - "dev": true - }, - "node_modules/@types/semver": { - "version": "7.5.8", - "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.8.tgz", - "integrity": "sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==", + "version": "0.12.2", + "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.2.tgz", + "integrity": "sha512-XISRgDJ2Tc5q4TRqvgJtzsRkFYNJzZrhTdtMoGVBttwzzQJkPnS3WWTFc7kuDRoPtPakl+T+OfdEUjYJj7Jbow==", "dev": true }, "node_modules/@types/send": { @@ -3138,14 +3194,14 @@ } }, "node_modules/@types/serve-static": { - "version": "1.15.5", - "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.5.tgz", - "integrity": "sha512-PDRk21MnK70hja/YF8AHfC7yIsiQHn1rcXx7ijCFBX/k+XQJhQT/gw3xekXKJvx+5SXaMMS8oqQy09Mzvz2TuQ==", + "version": "1.15.7", + "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.7.tgz", + "integrity": "sha512-W8Ym+h8nhuRwaKPaDw34QUkwsGi6Rc4yYqvKFo5rm2FUEhCFbzVWrxXUxuKK8TASjWsysJY0nsmNCGhCOIsrOw==", "dev": true, "dependencies": { "@types/http-errors": "*", - "@types/mime": "*", - "@types/node": "*" + "@types/node": "*", + "@types/send": "*" } }, "node_modules/@types/sockjs": { @@ -3157,16 +3213,6 @@ "@types/node": "*" } }, - "node_modules/@types/tunnel": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/@types/tunnel/-/tunnel-0.0.3.tgz", - "integrity": "sha512-sOUTGn6h1SfQ+gbgqC364jLFBw2lnFqkgF3q0WovEHRLMrVD1sd5aufqi/aJObLekJO+Aq5z646U4Oxy6shXMA==", - "dev": true, - "peer": true, - "dependencies": { - "@types/node": "*" - } - }, "node_modules/@types/wrap-ansi": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/@types/wrap-ansi/-/wrap-ansi-3.0.0.tgz", @@ -3175,41 +3221,40 @@ "peer": true }, "node_modules/@types/ws": { - "version": "8.5.10", - "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.10.tgz", - "integrity": "sha512-vmQSUcfalpIq0R9q7uTo2lXs6eGIpt9wtnLdMv9LVpIjCA/+ufZRozlVoVelIYixx1ugCBKDhn89vnsEGOCx9A==", + "version": "8.5.12", + "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.12.tgz", + "integrity": "sha512-3tPRkv1EtkDpzlgyKyI8pGsGZAGPEaXeu0DOj5DI25Ja91bdAYddYHbADRYVrZMRbfW+1l5YwXVDKohDJNQxkQ==", "dev": true, "dependencies": { "@types/node": "*" } }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.62.0.tgz", - "integrity": "sha512-TiZzBSJja/LbhNPvk6yc0JrX9XqhQ0hdh6M2svYfsHGejaKFIAGd9MQ+ERIMzLGlN/kZoYIgdxFV0PuljTKXag==", + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-7.18.0.tgz", + "integrity": "sha512-94EQTWZ40mzBc42ATNIBimBEDltSJ9RQHCC8vc/PDbxi4k8dVwUAv4o98dk50M1zB+JGFxp43FP7f8+FP8R6Sw==", "dev": true, "dependencies": { - "@eslint-community/regexpp": "^4.4.0", - "@typescript-eslint/scope-manager": "5.62.0", - "@typescript-eslint/type-utils": "5.62.0", - "@typescript-eslint/utils": "5.62.0", - "debug": "^4.3.4", + "@eslint-community/regexpp": "^4.10.0", + "@typescript-eslint/scope-manager": "7.18.0", + "@typescript-eslint/type-utils": "7.18.0", + "@typescript-eslint/utils": "7.18.0", + "@typescript-eslint/visitor-keys": "7.18.0", "graphemer": "^1.4.0", - "ignore": "^5.2.0", - "natural-compare-lite": "^1.4.0", - "semver": "^7.3.7", - "tsutils": "^3.21.0" + "ignore": "^5.3.1", + "natural-compare": "^1.4.0", + "ts-api-utils": "^1.3.0" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^18.18.0 || >=20.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "@typescript-eslint/parser": "^5.0.0", - "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + "@typescript-eslint/parser": "^7.0.0", + "eslint": "^8.56.0" }, "peerDependenciesMeta": { "typescript": { @@ -3217,77 +3262,82 @@ } } }, - "node_modules/@typescript-eslint/eslint-plugin/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "node_modules/@typescript-eslint/parser": { + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-7.18.0.tgz", + "integrity": "sha512-4Z+L8I2OqhZV8qA132M4wNL30ypZGYOQVBfMgxDH/K5UX0PNqTu1c6za9ST5r9+tavvHiTWmBnKzpCJ/GlVFtg==", "dev": true, "dependencies": { - "yallist": "^4.0.0" + "@typescript-eslint/scope-manager": "7.18.0", + "@typescript-eslint/types": "7.18.0", + "@typescript-eslint/typescript-estree": "7.18.0", + "@typescript-eslint/visitor-keys": "7.18.0", + "debug": "^4.3.4" }, "engines": { - "node": ">=10" - } - }, - "node_modules/@typescript-eslint/eslint-plugin/node_modules/semver": { - "version": "7.6.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", - "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" + "node": "^18.18.0 || >=20.0.0" }, - "bin": { - "semver": "bin/semver.js" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" }, - "engines": { - "node": ">=10" + "peerDependencies": { + "eslint": "^8.56.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } } }, - "node_modules/@typescript-eslint/eslint-plugin/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, - "node_modules/@typescript-eslint/parser": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.62.0.tgz", - "integrity": "sha512-VlJEV0fOQ7BExOsHYAGrgbEiZoi8D+Bl2+f6V2RrXerRSylnp+ZBHmPvaIa8cz0Ajx7WO7Z5RqfgYg7ED1nRhA==", + "node_modules/@typescript-eslint/rule-tester": { + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/rule-tester/-/rule-tester-7.18.0.tgz", + "integrity": "sha512-ClrFQlwen9pJcYPIBLuarzBpONQAwjmJ0+YUjAo1TGzoZFJPyUK/A7bb4Mps0u+SMJJnFXbfMN8I9feQDf0O5A==", "dev": true, "dependencies": { - "@typescript-eslint/scope-manager": "5.62.0", - "@typescript-eslint/types": "5.62.0", - "@typescript-eslint/typescript-estree": "5.62.0", - "debug": "^4.3.4" + "@typescript-eslint/typescript-estree": "7.18.0", + "@typescript-eslint/utils": "7.18.0", + "ajv": "^6.12.6", + "json-stable-stringify-without-jsonify": "^1.0.1", + "lodash.merge": "4.6.2", + "semver": "^7.6.0" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^18.18.0 || >=20.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + "@eslint/eslintrc": ">=2", + "eslint": "^8.56.0" + } + }, + "node_modules/@typescript-eslint/rule-tester/node_modules/semver": { + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "dev": true, + "bin": { + "semver": "bin/semver.js" }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } + "engines": { + "node": ">=10" } }, "node_modules/@typescript-eslint/scope-manager": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.62.0.tgz", - "integrity": "sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w==", + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-7.18.0.tgz", + "integrity": "sha512-jjhdIE/FPF2B7Z1uzc6i3oWKbGcHb87Qw7AWj6jmEqNOfDFbJWtjt/XfwCpvNkpGWlcJaog5vTR+VV8+w9JflA==", "dev": true, "dependencies": { - "@typescript-eslint/types": "5.62.0", - "@typescript-eslint/visitor-keys": "5.62.0" + "@typescript-eslint/types": "7.18.0", + "@typescript-eslint/visitor-keys": "7.18.0" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^18.18.0 || >=20.0.0" }, "funding": { "type": "opencollective", @@ -3295,25 +3345,25 @@ } }, "node_modules/@typescript-eslint/type-utils": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.62.0.tgz", - "integrity": "sha512-xsSQreu+VnfbqQpW5vnCJdq1Z3Q0U31qiWmRhr98ONQmcp/yhiPJFPq8MXiJVLiksmOKSjIldZzkebzHuCGzew==", + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-7.18.0.tgz", + "integrity": "sha512-XL0FJXuCLaDuX2sYqZUUSOJ2sG5/i1AAze+axqmLnSkNEVMVYLF+cbwlB2w8D1tinFuSikHmFta+P+HOofrLeA==", "dev": true, "dependencies": { - "@typescript-eslint/typescript-estree": "5.62.0", - "@typescript-eslint/utils": "5.62.0", + "@typescript-eslint/typescript-estree": "7.18.0", + "@typescript-eslint/utils": "7.18.0", "debug": "^4.3.4", - "tsutils": "^3.21.0" + "ts-api-utils": "^1.3.0" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^18.18.0 || >=20.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "eslint": "*" + "eslint": "^8.56.0" }, "peerDependenciesMeta": { "typescript": { @@ -3322,12 +3372,12 @@ } }, "node_modules/@typescript-eslint/types": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.62.0.tgz", - "integrity": "sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ==", + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.18.0.tgz", + "integrity": "sha512-iZqi+Ds1y4EDYUtlOOC+aUmxnE9xS/yCigkjA7XpTKV6nCBd3Hp/PRGGmdwnfkV2ThMyYldP1wRpm/id99spTQ==", "dev": true, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^18.18.0 || >=20.0.0" }, "funding": { "type": "opencollective", @@ -3335,21 +3385,22 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.62.0.tgz", - "integrity": "sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==", + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-7.18.0.tgz", + "integrity": "sha512-aP1v/BSPnnyhMHts8cf1qQ6Q1IFwwRvAQGRvBFkWlo3/lH29OXA3Pts+c10nxRxIBrDnoMqzhgdwVe5f2D6OzA==", "dev": true, "dependencies": { - "@typescript-eslint/types": "5.62.0", - "@typescript-eslint/visitor-keys": "5.62.0", + "@typescript-eslint/types": "7.18.0", + "@typescript-eslint/visitor-keys": "7.18.0", "debug": "^4.3.4", "globby": "^11.1.0", "is-glob": "^4.0.3", - "semver": "^7.3.7", - "tsutils": "^3.21.0" + "minimatch": "^9.0.4", + "semver": "^7.6.0", + "ts-api-utils": "^1.3.0" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^18.18.0 || >=20.0.0" }, "funding": { "type": "opencollective", @@ -3361,26 +3412,55 @@ } } }, - "node_modules/@typescript-eslint/typescript-estree/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "node_modules/@typescript-eslint/typescript-estree/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/globby": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", "dev": true, "dependencies": { - "yallist": "^4.0.0" + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" }, "engines": { "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@typescript-eslint/typescript-estree/node_modules/semver": { - "version": "7.6.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", - "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", + "node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", "dev": true, "dependencies": { - "lru-cache": "^6.0.0" + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/semver": { + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "dev": true, "bin": { "semver": "bin/semver.js" }, @@ -3388,88 +3468,60 @@ "node": ">=10" } }, - "node_modules/@typescript-eslint/typescript-estree/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true + "node_modules/@typescript-eslint/typescript-estree/node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, + "engines": { + "node": ">=8" + } }, "node_modules/@typescript-eslint/utils": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.62.0.tgz", - "integrity": "sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==", + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-7.18.0.tgz", + "integrity": "sha512-kK0/rNa2j74XuHVcoCZxdFBMF+aq/vH83CXAOHieC+2Gis4mF8jJXT5eAfyD3K0sAxtPuwxaIOIOvhwzVDt/kw==", "dev": true, "dependencies": { - "@eslint-community/eslint-utils": "^4.2.0", - "@types/json-schema": "^7.0.9", - "@types/semver": "^7.3.12", - "@typescript-eslint/scope-manager": "5.62.0", - "@typescript-eslint/types": "5.62.0", - "@typescript-eslint/typescript-estree": "5.62.0", - "eslint-scope": "^5.1.1", - "semver": "^7.3.7" + "@eslint-community/eslint-utils": "^4.4.0", + "@typescript-eslint/scope-manager": "7.18.0", + "@typescript-eslint/types": "7.18.0", + "@typescript-eslint/typescript-estree": "7.18.0" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^18.18.0 || >=20.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + "eslint": "^8.56.0" } }, - "node_modules/@typescript-eslint/utils/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "node_modules/@typescript-eslint/visitor-keys": { + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.18.0.tgz", + "integrity": "sha512-cDF0/Gf81QpY3xYyJKDV14Zwdmid5+uuENhjH2EqFaF0ni+yAyq/LzMaIJdhNJXZI7uLzwIlA+V7oWoyn6Curg==", "dev": true, "dependencies": { - "yallist": "^4.0.0" + "@typescript-eslint/types": "7.18.0", + "eslint-visitor-keys": "^3.4.3" }, "engines": { - "node": ">=10" + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" } }, - "node_modules/@typescript-eslint/utils/node_modules/semver": { - "version": "7.6.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", - "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@typescript-eslint/utils/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "node_modules/@ungap/structured-clone": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", + "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==", "dev": true }, - "node_modules/@typescript-eslint/visitor-keys": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.62.0.tgz", - "integrity": "sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "5.62.0", - "eslint-visitor-keys": "^3.3.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, "node_modules/@webassemblyjs/ast": { "version": "1.12.1", "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.12.1.tgz", @@ -3682,13 +3734,6 @@ "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", "dev": true }, - "node_modules/abab": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.6.tgz", - "integrity": "sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==", - "deprecated": "Use your platform's native atob() and btoa() methods instead", - "dev": true - }, "node_modules/accepts": { "version": "1.3.8", "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", @@ -3703,9 +3748,9 @@ } }, "node_modules/acorn": { - "version": "8.11.3", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz", - "integrity": "sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==", + "version": "8.12.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.12.1.tgz", + "integrity": "sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg==", "dev": true, "bin": { "acorn": "bin/acorn" @@ -3714,10 +3759,10 @@ "node": ">=0.4.0" } }, - "node_modules/acorn-import-assertions": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.9.0.tgz", - "integrity": "sha512-cmMwop9x+8KFhxvKrKfPYmN6/pKTYYHBqLa0DfvVZcKMJWNyWLnaqND7dx/qn66R7ewM1UX5XMaDVP5wlVTaVA==", + "node_modules/acorn-import-attributes": { + "version": "1.9.5", + "resolved": "https://registry.npmjs.org/acorn-import-attributes/-/acorn-import-attributes-1.9.5.tgz", + "integrity": "sha512-n02Vykv5uA3eHGM/Z2dQrcD56kL8TyDb2p1+0P83PClMnC/nc+anbQRhIOWnSq4Ke/KvDPrY3C9hDtC/A3eHnQ==", "dev": true, "peerDependencies": { "acorn": "^8" @@ -3752,9 +3797,9 @@ } }, "node_modules/agent-base": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.0.tgz", - "integrity": "sha512-o/zjMZRhJxny7OyEF+Op8X+efiELC7k7yOjMzgfzVqOzXqkBkWI79YoTdOtsuWd5BWhAGAuOY/Xa6xpiaWXiNg==", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.1.tgz", + "integrity": "sha512-H0TSyFNDMomMNJQBn8wFV5YC/2eJ+VXECwOadZJT554xP6cODZHPX3H9QMQECxvrgiSOP1pHjy1sMWQVYJOUOA==", "dev": true, "peer": true, "dependencies": { @@ -3781,9 +3826,9 @@ } }, "node_modules/ajv-formats": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", - "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-3.0.1.tgz", + "integrity": "sha512-8iUql50EUR+uUcdRQ3HDqa6EVyo3docL8g5WJ3FNcWmu62IbkGUue/pEyLBW8VGKKucTPgqeks4fIU1DA4yowQ==", "dev": true, "dependencies": { "ajv": "^8.0.0" @@ -3798,15 +3843,15 @@ } }, "node_modules/ajv-formats/node_modules/ajv": { - "version": "8.12.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", - "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", + "version": "8.17.1", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", + "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", "dev": true, "dependencies": { - "fast-deep-equal": "^3.1.1", + "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" + "require-from-string": "^2.0.2" }, "funding": { "type": "github", @@ -3828,15 +3873,6 @@ "ajv": "^6.9.1" } }, - "node_modules/ansi-colors": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz", - "integrity": "sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==", - "dev": true, - "engines": { - "node": ">=6" - } - }, "node_modules/ansi-escapes": { "version": "4.3.2", "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", @@ -3911,13 +3947,10 @@ } }, "node_modules/argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "dev": true, - "dependencies": { - "sprintf-js": "~1.0.2" - } + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true }, "node_modules/array-buffer-byte-length": { "version": "1.0.1", @@ -4033,29 +4066,20 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/array.prototype.toreversed": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/array.prototype.toreversed/-/array.prototype.toreversed-1.1.2.tgz", - "integrity": "sha512-wwDCoT4Ck4Cz7sLtgUmzR5UV3YF5mFHUlbChCzZBQZ+0m2cl/DH3tKgvphv1nKgFsJ48oCSg6p91q2Vm0I/ZMA==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "es-shim-unscopables": "^1.0.0" - } - }, "node_modules/array.prototype.tosorted": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/array.prototype.tosorted/-/array.prototype.tosorted-1.1.3.tgz", - "integrity": "sha512-/DdH4TiTmOKzyQbp/eadcCVexiCb36xJg7HshYOYJnNZFDj33GEv0P7GxsynpShhq4OLYJzbGcBDkLsDt7MnNg==", + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/array.prototype.tosorted/-/array.prototype.tosorted-1.1.4.tgz", + "integrity": "sha512-p6Fx8B7b7ZhL/gmUsAy0D15WhvDccw3mnGNbZpi3pmeJdxtWsj2jEaI4Y6oo3XiHfzuSgPwKc04MYt6KgvC/wA==", "dev": true, "dependencies": { - "call-bind": "^1.0.5", + "call-bind": "^1.0.7", "define-properties": "^1.2.1", - "es-abstract": "^1.22.3", - "es-errors": "^1.1.0", + "es-abstract": "^1.23.3", + "es-errors": "^1.3.0", "es-shim-unscopables": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" } }, "node_modules/arraybuffer.prototype.slice": { @@ -4080,13 +4104,14 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/astral-regex": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", - "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", + "node_modules/assertion-error": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz", + "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==", "dev": true, + "peer": true, "engines": { - "node": ">=8" + "node": "*" } }, "node_modules/async-hook-jl": { @@ -4164,10 +4189,11 @@ } }, "node_modules/axios": { - "version": "1.6.8", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.6.8.tgz", - "integrity": "sha512-v/ZHtJDU39mDpyBoFVkETcd/uNdxrWRrg3bKpOKzXFA6Bvqopts6ALSMU3y6ijYxbw2B+wPrIv46egTzJXCLGQ==", + "version": "1.7.4", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.7.4.tgz", + "integrity": "sha512-DukmaFRnY6AzAALSH4J2M3k6PkaC+MfaAGdEERRWcC9q3/TWQwLpHR8ZRLKTdQ3aBDL64EdluRDjJqKw+BPZEw==", "dev": true, + "peer": true, "dependencies": { "follow-redirects": "^1.15.6", "form-data": "^4.0.0", @@ -4186,22 +4212,20 @@ } }, "node_modules/babel-loader": { - "version": "8.3.0", - "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.3.0.tgz", - "integrity": "sha512-H8SvsMF+m9t15HNLMipppzkC+Y2Yq+v3SonZyU70RBL/h1gxPkH08Ot8pEE9Z4Kd+czyWJClmFS8qzIP9OZ04Q==", + "version": "9.1.3", + "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-9.1.3.tgz", + "integrity": "sha512-xG3ST4DglodGf8qSwv0MdeWLhrDsw/32QMdTO5T1ZIp9gQur0HkCyFs7Awskr10JKXFXwpAhiCuYX5oGXnRGbw==", "dev": true, "dependencies": { - "find-cache-dir": "^3.3.1", - "loader-utils": "^2.0.0", - "make-dir": "^3.1.0", - "schema-utils": "^2.6.5" + "find-cache-dir": "^4.0.0", + "schema-utils": "^4.0.0" }, "engines": { - "node": ">= 8.9" + "node": ">= 14.15.0" }, "peerDependencies": { - "@babel/core": "^7.0.0", - "webpack": ">=2" + "@babel/core": "^7.12.0", + "webpack": ">=5" } }, "node_modules/balanced-match": { @@ -4237,16 +4261,6 @@ "integrity": "sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw==", "dev": true }, - "node_modules/big-integer": { - "version": "1.6.52", - "resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.52.tgz", - "integrity": "sha512-QxD8cf2eVqJOOz63z6JIN9BzvVs/dlySa5HGSBH5xtR8dPteIRQnBxxKqkNTiT6jbDTF6jAfrd4oMcND9RGbQg==", - "dev": true, - "peer": true, - "engines": { - "node": ">=0.6" - } - }, "node_modules/big.js": { "version": "5.2.2", "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", @@ -4256,20 +4270,6 @@ "node": "*" } }, - "node_modules/binary": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/binary/-/binary-0.3.0.tgz", - "integrity": "sha512-D4H1y5KYwpJgK8wk1Cue5LLPgmwHKYSChkbspQg5JtVuR5ulGckxfR62H3AE9UDkdMC8yyXlqYihuz3Aqg2XZg==", - "dev": true, - "peer": true, - "dependencies": { - "buffers": "~0.1.1", - "chainsaw": "~0.1.0" - }, - "engines": { - "node": "*" - } - }, "node_modules/binary-extensions": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", @@ -4295,13 +4295,6 @@ "readable-stream": "^3.4.0" } }, - "node_modules/bluebird": { - "version": "3.4.7", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.4.7.tgz", - "integrity": "sha512-iD3898SR7sWVRHbiQv+sHUtHnMvC1o3nW5rAcqnq3uOn07DSAppZYUkIGslDz6gXC7HfunPe7YVBgoEJASPcHA==", - "dev": true, - "peer": true - }, "node_modules/body-parser": { "version": "1.20.2", "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.2.tgz", @@ -4392,9 +4385,9 @@ } }, "node_modules/browserslist": { - "version": "4.23.0", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.0.tgz", - "integrity": "sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==", + "version": "4.23.3", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.3.tgz", + "integrity": "sha512-btwCFJVjI4YWDNfau8RhZ+B1Q/VLoUITrm3RlP6y1tYGWIOa+InuYiRGXUBXo8nA1qKmHMyLB/iVQg5TT4eFoA==", "dev": true, "funding": [ { @@ -4411,10 +4404,10 @@ } ], "dependencies": { - "caniuse-lite": "^1.0.30001587", - "electron-to-chromium": "^1.4.668", - "node-releases": "^2.0.14", - "update-browserslist-db": "^1.0.13" + "caniuse-lite": "^1.0.30001646", + "electron-to-chromium": "^1.5.4", + "node-releases": "^2.0.18", + "update-browserslist-db": "^1.1.0" }, "bin": { "browserslist": "cli.js" @@ -4461,24 +4454,19 @@ "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", "dev": true }, - "node_modules/buffer-indexof-polyfill": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/buffer-indexof-polyfill/-/buffer-indexof-polyfill-1.0.2.tgz", - "integrity": "sha512-I7wzHwA3t1/lwXQh+A5PbNvJxgfo5r3xulgpYDB5zckTu/Z9oUK9biouBKQUjEqzaz3HnAT6TYoovmE+GqSf7A==", - "dev": true, - "peer": true, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/buffers": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/buffers/-/buffers-0.1.1.tgz", - "integrity": "sha512-9q/rDEGSb/Qsvv2qvzIzdluL5k7AaJOTrw23z9reQthrbF7is4CtlT0DXyO1oei2DCp4uojjzQ7igaSHp1kAEQ==", + "node_modules/bundle-name": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/bundle-name/-/bundle-name-4.1.0.tgz", + "integrity": "sha512-tjwM5exMg6BGRI+kNmTntNsvdZS1X8BFYS6tnJ2hdH0kVxM6/eVZ2xy+FqStSWvYmtfFMDLIxurorHwDKfDz5Q==", "dev": true, - "peer": true, + "dependencies": { + "run-applescript": "^7.0.0" + }, "engines": { - "node": ">=0.2.0" + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/bytes": { @@ -4536,9 +4524,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001599", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001599.tgz", - "integrity": "sha512-LRAQHZ4yT1+f9LemSMeqdMpMxZcc4RMWdj4tiFe3G8tNkWK+E58g+/tzotb5cU6TbcVJLr4fySiAW7XmxQvZQA==", + "version": "1.0.30001651", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001651.tgz", + "integrity": "sha512-9Cf+Xv1jJNe1xPZLGuUXLNkE1BoDkqRqYyFJ9TDYSqhduqA4hu4oR9HluGoWYQC/aj8WHjsGVV+bwkh0+tegRg==", "dev": true, "funding": [ { @@ -4555,17 +4543,23 @@ } ] }, - "node_modules/chainsaw": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/chainsaw/-/chainsaw-0.1.0.tgz", - "integrity": "sha512-75kWfWt6MEKNC8xYXIdRpDehRYY/tNSgwKaJq+dbbDcxORuVrrQ+SEHoWsniVn9XPYfP4gmdWIeDk/4YNp1rNQ==", + "node_modules/chai": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/chai/-/chai-4.5.0.tgz", + "integrity": "sha512-RITGBfijLkBddZvnn8jdqoTypxvqbOLYQkGGxXzeFjVHvudaPw0HNFD9x928/eUwYWd2dPCugVqspGALTZZQKw==", "dev": true, "peer": true, "dependencies": { - "traverse": ">=0.3.0 <0.4" + "assertion-error": "^1.1.0", + "check-error": "^1.0.3", + "deep-eql": "^4.1.3", + "get-func-name": "^2.0.2", + "loupe": "^2.3.6", + "pathval": "^1.1.1", + "type-detect": "^4.1.0" }, "engines": { - "node": "*" + "node": ">=4" } }, "node_modules/chalk": { @@ -4598,6 +4592,19 @@ "node": "*" } }, + "node_modules/check-error": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.3.tgz", + "integrity": "sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==", + "dev": true, + "peer": true, + "dependencies": { + "get-func-name": "^2.0.2" + }, + "engines": { + "node": "*" + } + }, "node_modules/chokidar": { "version": "3.6.0", "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", @@ -4643,9 +4650,9 @@ "peer": true }, "node_modules/chrome-trace-event": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz", - "integrity": "sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.4.tgz", + "integrity": "sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ==", "dev": true, "engines": { "node": ">=6.0" @@ -4689,9 +4696,9 @@ } }, "node_modules/cli-table3": { - "version": "0.6.4", - "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.6.4.tgz", - "integrity": "sha512-Lm3L0p+/npIQWNIiyF/nAn7T5dnOwR3xNTHXYEBFBFVPXzCVNZ5lqEC/1eo/EVfpDsQ1I+TX4ORPQgp+UI0CRw==", + "version": "0.6.5", + "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.6.5.tgz", + "integrity": "sha512-+W/5efTR7y5HRD7gACw9yQjqMVvEMLBHmboM/kPWam+H+Hmyrgjh6YncVKK122YZkXrLudzTuAukUw9FnMf7IQ==", "dev": true, "peer": true, "dependencies": { @@ -4863,9 +4870,9 @@ } }, "node_modules/comment-json": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/comment-json/-/comment-json-4.2.3.tgz", - "integrity": "sha512-SsxdiOf064DWoZLH799Ata6u7iV658A11PlWtZATDlXPpKGJnbJZ5Z24ybixAi+LUUqJ/GKowAejtC5GFUG7Tw==", + "version": "4.2.5", + "resolved": "https://registry.npmjs.org/comment-json/-/comment-json-4.2.5.tgz", + "integrity": "sha512-bKw/r35jR3HGt5PEPm1ljsQQGyCrR8sFGNiN5L+ykDHdpO8Smxkrkla9Yi6NkQyUrb8V54PGhfMs6NrIwtxtdw==", "dev": true, "peer": true, "dependencies": { @@ -4879,10 +4886,10 @@ "node": ">= 6" } }, - "node_modules/commondir": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", - "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==", + "node_modules/common-path-prefix": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/common-path-prefix/-/common-path-prefix-3.0.0.tgz", + "integrity": "sha512-QE33hToZseCH3jS0qN96O/bSh3kaw/h+Tq7ngyY9eWDUnTlTNUyqfqvCXioLe5Na5jFsL78ra/wuBU4iuEgd4w==", "dev": true }, "node_modules/compressible": { @@ -5013,20 +5020,20 @@ "dev": true }, "node_modules/copy-webpack-plugin": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-9.1.0.tgz", - "integrity": "sha512-rxnR7PaGigJzhqETHGmAcxKnLZSR5u1Y3/bcIv/1FnqXedcL/E2ewK7ZCNrArJKCiSv8yVXhTqetJh8inDvfsA==", + "version": "12.0.2", + "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-12.0.2.tgz", + "integrity": "sha512-SNwdBeHyII+rWvee/bTnAYyO8vfVdcSTud4EIb6jcZ8inLeWucJE0DnxXQBjlQ5zlteuuvooGQy3LIyGxhvlOA==", "dev": true, "dependencies": { - "fast-glob": "^3.2.7", + "fast-glob": "^3.3.2", "glob-parent": "^6.0.1", - "globby": "^11.0.3", + "globby": "^14.0.0", "normalize-path": "^3.0.0", - "schema-utils": "^3.1.1", - "serialize-javascript": "^6.0.0" + "schema-utils": "^4.2.0", + "serialize-javascript": "^6.0.2" }, "engines": { - "node": ">= 12.13.0" + "node": ">= 18.12.0" }, "funding": { "type": "opencollective", @@ -5036,28 +5043,10 @@ "webpack": "^5.1.0" } }, - "node_modules/copy-webpack-plugin/node_modules/schema-utils": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", - "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", - "dev": true, - "dependencies": { - "@types/json-schema": "^7.0.8", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" - }, - "engines": { - "node": ">= 10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - } - }, "node_modules/core-js": { - "version": "3.36.1", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.36.1.tgz", - "integrity": "sha512-BTvUrwxVBezj5SZ3f10ImnX2oRByMxql3EimVqMysepbC9EeMUOpLwdy6Eoili2x6E4kf+ZUB5k/+Jv55alPfA==", + "version": "3.38.1", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.38.1.tgz", + "integrity": "sha512-OP35aUorbU3Zvlx7pjsFdu1rGNnD4pgw/CWoYzRY3t2EzoVT7shKHY1dlAy3f41cGIO7ZDPQimhGFTlEYkG/Hw==", "hasInstallScript": true, "funding": { "type": "opencollective", @@ -5181,9 +5170,9 @@ } }, "node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "version": "4.3.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.6.tgz", + "integrity": "sha512-O/09Bd4Z1fBrU4VzkhFqVgpPzaGbw6Sm9FEkBT1A/YBXQFGuuSxa1dN2nxgxS34JmKXqYx8CZAwEVoJFImUXIg==", "dev": true, "dependencies": { "ms": "2.1.2" @@ -5214,6 +5203,19 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/deep-eql": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-4.1.4.tgz", + "integrity": "sha512-SUwdGfqdKOwxCPeVYjwSyRpJ7Z+fhpwIAtmCUdZIWZ/YP5R9WAsyuSgpLVDi9bjWoN2LXHNss/dk3urXtdQxGg==", + "dev": true, + "peer": true, + "dependencies": { + "type-detect": "^4.0.0" + }, + "engines": { + "node": ">=6" + } + }, "node_modules/deep-extend": { "version": "0.6.0", "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", @@ -5231,6 +5233,34 @@ "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", "dev": true }, + "node_modules/default-browser": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/default-browser/-/default-browser-5.2.1.tgz", + "integrity": "sha512-WY/3TUME0x3KPYdRRxEJJvXRHV4PyPoUsxtZa78lwItwRQRHhd2U9xOscaT/YTf8uCXIAjeJOFBVEh/7FtD8Xg==", + "dev": true, + "dependencies": { + "bundle-name": "^4.1.0", + "default-browser-id": "^5.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/default-browser-id": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/default-browser-id/-/default-browser-id-5.0.0.tgz", + "integrity": "sha512-A6p/pu/6fyBcA1TRz/GqWYPViplrftcW2gZC9q79ngNCKAeR/X3gcEdXQHl4KNXV+3wgIJ1CPkJQ3IHM6lcsyA==", + "dev": true, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/default-gateway": { "version": "6.0.3", "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-6.0.3.tgz", @@ -5265,6 +5295,7 @@ "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==", "dev": true, + "peer": true, "engines": { "node": ">=8" } @@ -5332,9 +5363,9 @@ "dev": true }, "node_modules/detect-port": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/detect-port/-/detect-port-1.5.1.tgz", - "integrity": "sha512-aBzdj76lueB6uUst5iAs7+0H/oOjqI5D16XUWxlWMIMROhcM0rfsNVk93zTngq1dDNpoXRr++Sus7ETAExppAQ==", + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/detect-port/-/detect-port-1.6.1.tgz", + "integrity": "sha512-CmnVc+Hek2egPx1PeTFVta2W78xy2K/9Rkf6cC4T59S50tVnzKj+tnx5mmx5lwvCkujZ4uRrpRSuV+IVs3f90Q==", "dev": true, "peer": true, "dependencies": { @@ -5344,6 +5375,9 @@ "bin": { "detect": "bin/detect-port.js", "detect-port": "bin/detect-port.js" + }, + "engines": { + "node": ">= 4.0.0" } }, "node_modules/diagnostic-channel": { @@ -5385,6 +5419,15 @@ "node": ">=8" } }, + "node_modules/dir-glob/node_modules/path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, "node_modules/dns-packet": { "version": "5.6.1", "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-5.6.1.tgz", @@ -5502,55 +5545,11 @@ "node": ">=10" } }, - "node_modules/duplexer2": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.1.4.tgz", - "integrity": "sha512-asLFVfWWtJ90ZyOUHMqk7/S2w2guQKxUI2itj3d92ADHhxUSbCMGi1f1cBcJ7xM1To+pE/Khbwo1yuNbMEPKeA==", - "dev": true, - "peer": true, - "dependencies": { - "readable-stream": "^2.0.2" - } - }, - "node_modules/duplexer2/node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", - "dev": true, - "peer": true - }, - "node_modules/duplexer2/node_modules/readable-stream": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", - "dev": true, - "peer": true, - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "node_modules/duplexer2/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true, - "peer": true - }, - "node_modules/duplexer2/node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "peer": true, - "dependencies": { - "safe-buffer": "~5.1.0" - } + "node_modules/eastasianwidth": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", + "dev": true }, "node_modules/ecdsa-sig-formatter": { "version": "1.0.11", @@ -5569,9 +5568,9 @@ "dev": true }, "node_modules/electron-to-chromium": { - "version": "1.4.712", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.712.tgz", - "integrity": "sha512-ncfPC8UnGIyGFrPE03J5Xn6yTZ6R+clkcZbuG1PJbjAaZBFS4Kn3UKfzu8eilzru6SfC8TPsHuwv0p0eYVu+ww==", + "version": "1.5.13", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.13.tgz", + "integrity": "sha512-lbBcvtIJ4J6sS4tb5TLp1b4LyfCdMkwStzXPyAgVgTRAsep4bvrAGaBOP7ZJtQMNJpSQ9SqG4brWOroNaQtm7Q==", "dev": true }, "node_modules/emitter-listener": { @@ -5619,9 +5618,9 @@ } }, "node_modules/enhanced-resolve": { - "version": "5.16.0", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.16.0.tgz", - "integrity": "sha512-O+QWCviPNSSLAD9Ucn8Awv+poAkqn3T1XY5/N7kR7rQO9yfSGWkYZDwpJ+iKF7B8rxaQKWngSqACpgzeapSyoA==", + "version": "5.17.1", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.17.1.tgz", + "integrity": "sha512-LMHl3dXhTcfv8gM4kEzIUeTQ+7fpdA0l2tUf34BddXPkz2A5xJ5L/Pchd5BL6rdccM9QGvu0sWZzK1Z1t4wwyg==", "dev": true, "dependencies": { "graceful-fs": "^4.2.4", @@ -5631,19 +5630,6 @@ "node": ">=10.13.0" } }, - "node_modules/enquirer": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.4.1.tgz", - "integrity": "sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ==", - "dev": true, - "dependencies": { - "ansi-colors": "^4.1.1", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8.6" - } - }, "node_modules/entities": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", @@ -5657,9 +5643,9 @@ } }, "node_modules/envinfo": { - "version": "7.11.1", - "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.11.1.tgz", - "integrity": "sha512-8PiZgZNIB4q/Lw4AhOvAfB/ityHAd2bli3lESSWmWSzSsl5dKpy5N1d1Rfkd2teq/g9xN90lc6o98DOjMeYHpg==", + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.13.0.tgz", + "integrity": "sha512-cvcaMr7KqXVh4nyzGTVqTum+gAiL265x5jUWQIDLq//zOGbW+gSW/C+OWLleY/rs9Qole6AZLMXPbtIFQbqu+Q==", "dev": true, "bin": { "envinfo": "dist/cli.js" @@ -5669,9 +5655,9 @@ } }, "node_modules/es-abstract": { - "version": "1.23.2", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.23.2.tgz", - "integrity": "sha512-60s3Xv2T2p1ICykc7c+DNDPLDMm9t4QxCOUU0K9JxiLjM3C1zB9YVdN7tjxrFd4+AkZ8CdX1ovUga4P2+1e+/w==", + "version": "1.23.3", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.23.3.tgz", + "integrity": "sha512-e+HfNH61Bj1X9/jLc5v1owaLYuHdeHHSQlkhCBiTK8rBvKaULl/beGMxwrMXjpYrv4pz22BlY570vVePA2ho4A==", "dev": true, "dependencies": { "array-buffer-byte-length": "^1.0.1", @@ -5713,11 +5699,11 @@ "safe-regex-test": "^1.0.3", "string.prototype.trim": "^1.2.9", "string.prototype.trimend": "^1.0.8", - "string.prototype.trimstart": "^1.0.7", + "string.prototype.trimstart": "^1.0.8", "typed-array-buffer": "^1.0.2", "typed-array-byte-length": "^1.0.1", "typed-array-byte-offset": "^1.0.2", - "typed-array-length": "^1.0.5", + "typed-array-length": "^1.0.6", "unbox-primitive": "^1.0.2", "which-typed-array": "^1.1.15" }, @@ -5750,14 +5736,14 @@ } }, "node_modules/es-iterator-helpers": { - "version": "1.0.18", - "resolved": "https://registry.npmjs.org/es-iterator-helpers/-/es-iterator-helpers-1.0.18.tgz", - "integrity": "sha512-scxAJaewsahbqTYrGKJihhViaM6DDZDDoucfvzNbK0pOren1g/daDQ3IAhzn+1G14rBG7w+i5N+qul60++zlKA==", + "version": "1.0.19", + "resolved": "https://registry.npmjs.org/es-iterator-helpers/-/es-iterator-helpers-1.0.19.tgz", + "integrity": "sha512-zoMwbCcH5hwUkKJkT8kDIBZSz9I6mVG//+lDCinLCGov4+r7NIy0ld8o03M0cJxl2spVf6ESYVS6/gpIfq1FFw==", "dev": true, "dependencies": { "call-bind": "^1.0.7", "define-properties": "^1.2.1", - "es-abstract": "^1.23.0", + "es-abstract": "^1.23.3", "es-errors": "^1.3.0", "es-set-tostringtag": "^2.0.3", "function-bind": "^1.1.2", @@ -5775,9 +5761,9 @@ } }, "node_modules/es-module-lexer": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.4.2.tgz", - "integrity": "sha512-7nOqkomXZEaxUDJw21XZNtRk739QvrPSoZoRtbsEfcii00vdzZUh6zh1CQwHhrib8MdEtJfv5rJiGeb4KuV/vw==", + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.5.4.tgz", + "integrity": "sha512-MVNK56NiMrOwitFB7cqDwq0CQutbw+0BvLshJSse0MUNU+y1FC3bUS/AQg7oUng+/wKrrki7JfmwtVHkVfPLlw==", "dev": true }, "node_modules/es-object-atoms": { @@ -5864,66 +5850,64 @@ } }, "node_modules/eslint": { - "version": "7.32.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.32.0.tgz", - "integrity": "sha512-VHZ8gX+EDfz+97jGcgyGCyRia/dPOd6Xh9yPv8Bl1+SoaIwD+a/vlrOmGRUyOYu7MwUhc7CxqeaDZU13S4+EpA==", + "version": "8.57.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.0.tgz", + "integrity": "sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==", "dev": true, "dependencies": { - "@babel/code-frame": "7.12.11", - "@eslint/eslintrc": "^0.4.3", - "@humanwhocodes/config-array": "^0.5.0", - "ajv": "^6.10.0", + "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/regexpp": "^4.6.1", + "@eslint/eslintrc": "^2.1.4", + "@eslint/js": "8.57.0", + "@humanwhocodes/config-array": "^0.11.14", + "@humanwhocodes/module-importer": "^1.0.1", + "@nodelib/fs.walk": "^1.2.8", + "@ungap/structured-clone": "^1.2.0", + "ajv": "^6.12.4", "chalk": "^4.0.0", "cross-spawn": "^7.0.2", - "debug": "^4.0.1", + "debug": "^4.3.2", "doctrine": "^3.0.0", - "enquirer": "^2.3.5", "escape-string-regexp": "^4.0.0", - "eslint-scope": "^5.1.1", - "eslint-utils": "^2.1.0", - "eslint-visitor-keys": "^2.0.0", - "espree": "^7.3.1", - "esquery": "^1.4.0", + "eslint-scope": "^7.2.2", + "eslint-visitor-keys": "^3.4.3", + "espree": "^9.6.1", + "esquery": "^1.4.2", "esutils": "^2.0.2", "fast-deep-equal": "^3.1.3", "file-entry-cache": "^6.0.1", - "functional-red-black-tree": "^1.0.1", - "glob-parent": "^5.1.2", - "globals": "^13.6.0", - "ignore": "^4.0.6", - "import-fresh": "^3.0.0", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "globals": "^13.19.0", + "graphemer": "^1.4.0", + "ignore": "^5.2.0", "imurmurhash": "^0.1.4", "is-glob": "^4.0.0", - "js-yaml": "^3.13.1", + "is-path-inside": "^3.0.3", + "js-yaml": "^4.1.0", "json-stable-stringify-without-jsonify": "^1.0.1", "levn": "^0.4.1", "lodash.merge": "^4.6.2", - "minimatch": "^3.0.4", + "minimatch": "^3.1.2", "natural-compare": "^1.4.0", - "optionator": "^0.9.1", - "progress": "^2.0.0", - "regexpp": "^3.1.0", - "semver": "^7.2.1", - "strip-ansi": "^6.0.0", - "strip-json-comments": "^3.1.0", - "table": "^6.0.9", - "text-table": "^0.2.0", - "v8-compile-cache": "^2.0.3" + "optionator": "^0.9.3", + "strip-ansi": "^6.0.1", + "text-table": "^0.2.0" }, "bin": { "eslint": "bin/eslint.js" }, "engines": { - "node": "^10.12.0 || >=12.0.0" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, "funding": { "url": "https://opencollective.com/eslint" } }, "node_modules/eslint-config-prettier": { - "version": "8.10.0", - "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.10.0.tgz", - "integrity": "sha512-SM8AMJdeQqRYT9O9zguiruQZaN7+z+E4eAP9oiLNGKMtomwaB1E9dcgUD6ZAn/eQAb52USbvezbiljfZUhbJcg==", + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-9.1.0.tgz", + "integrity": "sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==", "dev": true, "bin": { "eslint-config-prettier": "bin/cli.js" @@ -5933,92 +5917,99 @@ } }, "node_modules/eslint-plugin-office-addins": { - "version": "2.1.8", - "resolved": "https://registry.npmjs.org/eslint-plugin-office-addins/-/eslint-plugin-office-addins-2.1.8.tgz", - "integrity": "sha512-ReXyUE8DvbIE/eFRhiSc4iSJXNqetWMC6+3s+wA5xwRuu33GBDM89LUEo2GUbdGD90S/A9mIcLDTk7gt1M+SSQ==", - "dev": true, - "dependencies": { - "@typescript-eslint/eslint-plugin": "^5.33.1", - "@typescript-eslint/parser": "^5.33.1", - "@typescript-eslint/utils": "^5.33.1", - "eslint": "^7.32.0", - "eslint-config-prettier": "^8.3.0", - "eslint-plugin-prettier": "^4.0.0", - "eslint-plugin-react": "^7.25.1", - "eslint-plugin-react-native": "^3.11.0", - "office-addin-prettier-config": "^1.2.0", - "prettier": "^2.4.0", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-office-addins/-/eslint-plugin-office-addins-3.0.2.tgz", + "integrity": "sha512-VxX3juMvfQ7UKKzRvUV1JgopJmZsOa9iWA4Mg3+p+sTIqNmuaYiSgy9AT+MheP4zopWHjvJR4rRfyZWTXtUjeA==", + "dev": true, + "dependencies": { + "@typescript-eslint/rule-tester": "^7.5.0", + "eslint": "^8.57.0", + "eslint-config-prettier": "^9.1.0", + "eslint-plugin-prettier": "^5.1.3", + "eslint-plugin-react": "^7.34.1", + "eslint-plugin-react-native": "^4.1.0", + "office-addin-prettier-config": "^1.2.1", + "prettier": "^3.2.5", "requireindex": "~1.2.0", - "typescript": "^4.7.4" + "typescript": "^5.4.3", + "typescript-eslint": "^7.5.0" }, "engines": { "node": ">=0.10.0" } }, "node_modules/eslint-plugin-prettier": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-4.2.1.tgz", - "integrity": "sha512-f/0rXLXUt0oFYs8ra4w49wYZBG5GKZpAYsJSm6rnYL5uVDjd+zowwMwVZHnAjf4edNrKpCDYfXDgmRE/Ak7QyQ==", + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-5.2.1.tgz", + "integrity": "sha512-gH3iR3g4JfF+yYPaJYkN7jEl9QbweL/YfkoRlNnuIEHEz1vHVlCmWOS+eGGiRuzHQXdJFCOTxRgvju9b8VUmrw==", "dev": true, "dependencies": { - "prettier-linter-helpers": "^1.0.0" + "prettier-linter-helpers": "^1.0.0", + "synckit": "^0.9.1" }, "engines": { - "node": ">=12.0.0" + "node": "^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint-plugin-prettier" }, "peerDependencies": { - "eslint": ">=7.28.0", - "prettier": ">=2.0.0" + "@types/eslint": ">=8.0.0", + "eslint": ">=8.0.0", + "eslint-config-prettier": "*", + "prettier": ">=3.0.0" }, "peerDependenciesMeta": { + "@types/eslint": { + "optional": true + }, "eslint-config-prettier": { "optional": true } } }, "node_modules/eslint-plugin-react": { - "version": "7.34.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.34.1.tgz", - "integrity": "sha512-N97CxlouPT1AHt8Jn0mhhN2RrADlUAsk1/atcT2KyA/l9Q/E6ll7OIGwNumFmWfZ9skV3XXccYS19h80rHtgkw==", + "version": "7.35.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.35.0.tgz", + "integrity": "sha512-v501SSMOWv8gerHkk+IIQBkcGRGrO2nfybfj5pLxuJNFTPxxA3PSryhXTK+9pNbtkggheDdsC0E9Q8CuPk6JKA==", "dev": true, "dependencies": { - "array-includes": "^3.1.7", - "array.prototype.findlast": "^1.2.4", + "array-includes": "^3.1.8", + "array.prototype.findlast": "^1.2.5", "array.prototype.flatmap": "^1.3.2", - "array.prototype.toreversed": "^1.1.2", - "array.prototype.tosorted": "^1.1.3", + "array.prototype.tosorted": "^1.1.4", "doctrine": "^2.1.0", - "es-iterator-helpers": "^1.0.17", + "es-iterator-helpers": "^1.0.19", "estraverse": "^5.3.0", + "hasown": "^2.0.2", "jsx-ast-utils": "^2.4.1 || ^3.0.0", "minimatch": "^3.1.2", - "object.entries": "^1.1.7", - "object.fromentries": "^2.0.7", - "object.hasown": "^1.1.3", - "object.values": "^1.1.7", + "object.entries": "^1.1.8", + "object.fromentries": "^2.0.8", + "object.values": "^1.2.0", "prop-types": "^15.8.1", "resolve": "^2.0.0-next.5", "semver": "^6.3.1", - "string.prototype.matchall": "^4.0.10" + "string.prototype.matchall": "^4.0.11", + "string.prototype.repeat": "^1.0.0" }, "engines": { "node": ">=4" }, "peerDependencies": { - "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8" + "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7" } }, "node_modules/eslint-plugin-react-native": { - "version": "3.11.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-react-native/-/eslint-plugin-react-native-3.11.0.tgz", - "integrity": "sha512-7F3OTwrtQPfPFd+VygqKA2VZ0f2fz0M4gJmry/TRE18JBb94/OtMxwbL7Oqwu7FGyrdeIOWnXQbBAveMcSTZIA==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-react-native/-/eslint-plugin-react-native-4.1.0.tgz", + "integrity": "sha512-QLo7rzTBOl43FvVqDdq5Ql9IoElIuTdjrz9SKAXCvULvBoRZ44JGSkx9z4999ZusCsb4rK3gjS8gOGyeYqZv2Q==", "dev": true, "dependencies": { - "@babel/traverse": "^7.7.4", "eslint-plugin-react-native-globals": "^0.1.1" }, "peerDependencies": { - "eslint": "^3.17.0 || ^4 || ^5 || ^6 || ^7" + "eslint": "^3.17.0 || ^4 || ^5 || ^6 || ^7 || ^8" } }, "node_modules/eslint-plugin-react-native-globals": { @@ -6040,49 +6031,19 @@ } }, "node_modules/eslint-scope": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", - "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", + "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", "dev": true, "dependencies": { "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/eslint-scope/node_modules/estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", - "dev": true, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/eslint-utils": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", - "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", - "dev": true, - "dependencies": { - "eslint-visitor-keys": "^1.1.0" + "estraverse": "^5.2.0" }, "engines": { - "node": ">=6" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, "funding": { - "url": "https://github.com/sponsors/mysticatea" - } - }, - "node_modules/eslint-utils/node_modules/eslint-visitor-keys": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", - "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", - "dev": true, - "engines": { - "node": ">=4" + "url": "https://opencollective.com/eslint" } }, "node_modules/eslint-visitor-keys": { @@ -6097,13 +6058,27 @@ "url": "https://opencollective.com/eslint" } }, - "node_modules/eslint/node_modules/@babel/code-frame": { - "version": "7.12.11", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.11.tgz", - "integrity": "sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==", + "node_modules/eslint/node_modules/@eslint/eslintrc": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz", + "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==", "dev": true, "dependencies": { - "@babel/highlight": "^7.10.4" + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.6.0", + "globals": "^13.19.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" } }, "node_modules/eslint/node_modules/ansi-styles": { @@ -6167,25 +6142,21 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/eslint/node_modules/eslint-visitor-keys": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", - "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/eslint/node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "node_modules/eslint/node_modules/espree": { + "version": "9.6.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", + "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", "dev": true, "dependencies": { - "is-glob": "^4.0.1" + "acorn": "^8.9.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.4.1" }, "engines": { - "node": ">= 6" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" } }, "node_modules/eslint/node_modules/globals": { @@ -6212,42 +6183,6 @@ "node": ">=8" } }, - "node_modules/eslint/node_modules/ignore": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", - "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", - "dev": true, - "engines": { - "node": ">= 4" - } - }, - "node_modules/eslint/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/eslint/node_modules/semver": { - "version": "7.6.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", - "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/eslint/node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", @@ -6272,45 +6207,35 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/eslint/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, "node_modules/espree": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-7.3.1.tgz", - "integrity": "sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g==", + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/espree/-/espree-10.1.0.tgz", + "integrity": "sha512-M1M6CpiE6ffoigIOWYO9UDP8TMUw9kqb21tf+08IgDYjCsOvCuDt4jQcZmoYxx+w7zlKw9/N0KXfto+I8/FrXA==", "dev": true, + "peer": true, "dependencies": { - "acorn": "^7.4.0", - "acorn-jsx": "^5.3.1", - "eslint-visitor-keys": "^1.3.0" + "acorn": "^8.12.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^4.0.0" }, "engines": { - "node": "^10.12.0 || >=12.0.0" - } - }, - "node_modules/espree/node_modules/acorn": { - "version": "7.4.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", - "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", - "dev": true, - "bin": { - "acorn": "bin/acorn" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, - "engines": { - "node": ">=0.4.0" + "funding": { + "url": "https://opencollective.com/eslint" } }, "node_modules/espree/node_modules/eslint-visitor-keys": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", - "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.0.0.tgz", + "integrity": "sha512-OtIRv/2GyiF6o/d8K7MYKKbXrOUBIK6SfkIRM4Z0dY3w+LiQ0vy3F57m0Z71bjbyeiWFiHJ8brqnmE6H6/jEuw==", "dev": true, + "peer": true, "engines": { - "node": ">=4" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" } }, "node_modules/esprima": { @@ -6318,6 +6243,7 @@ "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", "dev": true, + "peer": true, "bin": { "esparse": "bin/esparse.js", "esvalidate": "bin/esvalidate.js" @@ -6327,9 +6253,9 @@ } }, "node_modules/esquery": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", - "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.6.0.tgz", + "integrity": "sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==", "dev": true, "dependencies": { "estraverse": "^5.1.0" @@ -6574,6 +6500,35 @@ "dev": true, "peer": true }, + "node_modules/fast-uri": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.0.1.tgz", + "integrity": "sha512-MWipKbbYiYI0UC7cl8m/i/IWTqfC8YXsqjzybjddLsFjStroQzsHXkc73JutMvBiXmOvapk+axIl79ig5t55Bw==", + "dev": true + }, + "node_modules/fast-xml-parser": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-4.4.1.tgz", + "integrity": "sha512-xkjOecfnKGkSsOwtZ5Pz7Us/T6mrbPQrq0nh+aCO5V9nk5NLWmasAHumTKjiPJPWANe+kAZ84Jc8ooJkzZ88Sw==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/NaturalIntelligence" + }, + { + "type": "paypal", + "url": "https://paypal.me/naturalintelligence" + } + ], + "peer": true, + "dependencies": { + "strnum": "^1.0.5" + }, + "bin": { + "fxparser": "src/cli/cli.js" + } + }, "node_modules/fastest-levenshtein": { "version": "1.0.16", "resolved": "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.16.tgz", @@ -6715,33 +6670,35 @@ "dev": true }, "node_modules/find-cache-dir": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz", - "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-4.0.0.tgz", + "integrity": "sha512-9ZonPT4ZAK4a+1pUPVPZJapbi7O5qbbJPdYw/NOQWZZbVLdDTYM3A4R9z/DpAM08IDaFGsvPgiGZ82WEwUDWjg==", "dev": true, "dependencies": { - "commondir": "^1.0.1", - "make-dir": "^3.0.2", - "pkg-dir": "^4.1.0" + "common-path-prefix": "^3.0.0", + "pkg-dir": "^7.0.0" }, "engines": { - "node": ">=8" + "node": ">=14.16" }, "funding": { - "url": "https://github.com/avajs/find-cache-dir?sponsor=1" + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", "dev": true, "dependencies": { - "locate-path": "^5.0.0", + "locate-path": "^6.0.0", "path-exists": "^4.0.0" }, "engines": { - "node": ">=8" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/flat": { @@ -6802,6 +6759,22 @@ "is-callable": "^1.1.3" } }, + "node_modules/foreground-child": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.0.tgz", + "integrity": "sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.0", + "signal-exit": "^4.0.1" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/form-data": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", @@ -6857,12 +6830,6 @@ "node": ">=10" } }, - "node_modules/fs-monkey": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/fs-monkey/-/fs-monkey-1.0.5.tgz", - "integrity": "sha512-8uMbBjrhzW76TYgEV27Y5E//W2f/lTFmx78P2w19FZSxarhI/798APGQyuGCwmkNxgwGRhrLfvWyLBvNtuOmew==", - "dev": true - }, "node_modules/fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", @@ -6883,35 +6850,6 @@ "node": "^8.16.0 || ^10.6.0 || >=11.0.0" } }, - "node_modules/fstream": { - "version": "1.0.12", - "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.12.tgz", - "integrity": "sha512-WvJ193OHa0GHPEL+AycEJgxvBEwyfRkN1vhjca23OaPVMCaLCXTd5qAu82AjTcgP1UJmytkOKb63Ypde7raDIg==", - "dev": true, - "peer": true, - "dependencies": { - "graceful-fs": "^4.1.2", - "inherits": "~2.0.0", - "mkdirp": ">=0.5 0", - "rimraf": "2" - }, - "engines": { - "node": ">=0.6" - } - }, - "node_modules/fstream/node_modules/rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "dev": true, - "peer": true, - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - } - }, "node_modules/function-bind": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", @@ -6939,12 +6877,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/functional-red-black-tree": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", - "integrity": "sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==", - "dev": true - }, "node_modules/functions-have-names": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", @@ -6973,6 +6905,16 @@ "node": "6.* || 8.* || >= 10.*" } }, + "node_modules/get-func-name": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.2.tgz", + "integrity": "sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==", + "dev": true, + "peer": true, + "engines": { + "node": "*" + } + }, "node_modules/get-intrinsic": { "version": "1.2.4", "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz", @@ -7033,6 +6975,7 @@ "version": "7.2.3", "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", "dev": true, "dependencies": { "fs.realpath": "^1.0.0", @@ -7077,12 +7020,13 @@ } }, "node_modules/globalthis": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz", - "integrity": "sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.4.tgz", + "integrity": "sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==", "dev": true, "dependencies": { - "define-properties": "^1.1.3" + "define-properties": "^1.2.1", + "gopd": "^1.0.1" }, "engines": { "node": ">= 0.4" @@ -7092,20 +7036,20 @@ } }, "node_modules/globby": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", - "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "version": "14.0.2", + "resolved": "https://registry.npmjs.org/globby/-/globby-14.0.2.tgz", + "integrity": "sha512-s3Fq41ZVh7vbbe2PN3nrW7yC7U7MFVc5c98/iTl9c2GawNMKx/J648KQRW6WKkuU8GIbbh2IXfIRQjOZnXcTnw==", "dev": true, "dependencies": { - "array-union": "^2.1.0", - "dir-glob": "^3.0.1", - "fast-glob": "^3.2.9", - "ignore": "^5.2.0", - "merge2": "^1.4.1", - "slash": "^3.0.0" + "@sindresorhus/merge-streams": "^2.1.0", + "fast-glob": "^3.3.2", + "ignore": "^5.2.4", + "path-type": "^5.0.0", + "slash": "^5.1.0", + "unicorn-magic": "^0.1.0" }, "engines": { - "node": ">=10" + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -7328,16 +7272,16 @@ ] }, "node_modules/html-loader": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/html-loader/-/html-loader-4.2.0.tgz", - "integrity": "sha512-OxCHD3yt+qwqng2vvcaPApCEvbx+nXWu+v69TYHx1FO8bffHn/JjHtE3TTQZmHjwvnJe4xxzuecetDVBrQR1Zg==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/html-loader/-/html-loader-5.1.0.tgz", + "integrity": "sha512-Jb3xwDbsm0W3qlXrCZwcYqYGnYz55hb6aoKQTlzyZPXsPpi6tHXzAfqalecglMQgNvtEfxrCQPaKT90Irt5XDA==", "dev": true, "dependencies": { - "html-minifier-terser": "^7.0.0", - "parse5": "^7.0.0" + "html-minifier-terser": "^7.2.0", + "parse5": "^7.1.2" }, "engines": { - "node": ">= 14.15.0" + "node": ">= 18.12.0" }, "funding": { "type": "opencollective", @@ -7546,9 +7490,9 @@ "peer": true }, "node_modules/https-proxy-agent": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.4.tgz", - "integrity": "sha512-wlwpilI7YdjSkWaQ/7omYBMTliDcmCN8OLihO6I9B86g06lMyAoqgoDpV0XqoaPOKj+0DIdAvnsWfyAAhmimcg==", + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.5.tgz", + "integrity": "sha512-1e4Wqeblerz+tMKPIq2EMGiiWW1dIjZOksyHWSUm1rmuvw/how9hBHZ38lAGj5ID4Ik6EdkOw7NmWPy6LAwalw==", "dev": true, "peer": true, "dependencies": { @@ -7568,6 +7512,15 @@ "node": ">=10.17.0" } }, + "node_modules/hyperdyperid": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/hyperdyperid/-/hyperdyperid-1.2.0.tgz", + "integrity": "sha512-Y93lCzHYgGWdrJ66yIktxiaGULYc6oGiABxhcO5AufBeOyoIdZF7bIfLaOrbM0iGIOXQQgxxRrFEnb+Y6w1n4A==", + "dev": true, + "engines": { + "node": ">=10.18" + } + }, "node_modules/iconv-lite": { "version": "0.6.3", "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", @@ -7602,9 +7555,9 @@ "peer": true }, "node_modules/ignore": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.1.tgz", - "integrity": "sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==", + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", + "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", "dev": true, "engines": { "node": ">= 4" @@ -7627,9 +7580,9 @@ } }, "node_modules/import-local": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz", - "integrity": "sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.2.0.tgz", + "integrity": "sha512-2SPlun1JUPWoM6t3F0dw0FkCF/jWY8kttcY4f599GLTSjh2OCuuhdTkJQsEcZzBqbXZGKMK2OqW1oZsjtf/gQA==", "dev": true, "dependencies": { "pkg-dir": "^4.2.0", @@ -7645,35 +7598,100 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "node_modules/import-local/node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", "dev": true, + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, "engines": { - "node": ">=0.8.19" + "node": ">=8" } }, - "node_modules/inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "node_modules/import-local/node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", "dev": true, "dependencies": { - "once": "^1.3.0", - "wrappy": "1" + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" } }, - "node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true - }, - "node_modules/ini": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", - "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", + "node_modules/import-local/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/import-local/node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/import-local/node_modules/pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "dev": true, + "dependencies": { + "find-up": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true, + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.", + "dev": true, + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "node_modules/ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", "dev": true, "optional": true, "peer": true @@ -7819,15 +7837,6 @@ "node": ">=10.13.0" } }, - "node_modules/ip-regex": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-4.3.0.tgz", - "integrity": "sha512-B9ZWJxHHOHUhUjCPrMpLD4xEq35bUTClHM1S6CBU5ixQnkZmwipwgc96vAd7AAGM9TGHvJR+Uss+/Ak6UphK+Q==", - "dev": true, - "engines": { - "node": ">=8" - } - }, "node_modules/ipaddr.js": { "version": "1.9.1", "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", @@ -7928,12 +7937,15 @@ } }, "node_modules/is-core-module": { - "version": "2.13.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", - "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", + "version": "2.15.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.15.1.tgz", + "integrity": "sha512-z0vtXSwucUJtANQWldhbtbt7BnL0vxiFjIdDLAatwhDYty2bad6s+rijD6Ri4YuYJubLzIJLUidCh09e1djEVQ==", "dev": true, "dependencies": { - "hasown": "^2.0.0" + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -7974,6 +7986,7 @@ "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", "dev": true, + "peer": true, "bin": { "is-docker": "cli.js" }, @@ -8041,6 +8054,39 @@ "node": ">=0.10.0" } }, + "node_modules/is-inside-container": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-inside-container/-/is-inside-container-1.0.0.tgz", + "integrity": "sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==", + "dev": true, + "dependencies": { + "is-docker": "^3.0.0" + }, + "bin": { + "is-inside-container": "cli.js" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-inside-container/node_modules/is-docker": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-3.0.0.tgz", + "integrity": "sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==", + "dev": true, + "bin": { + "is-docker": "cli.js" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/is-map": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.3.tgz", @@ -8065,6 +8111,18 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/is-network-error": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-network-error/-/is-network-error-1.1.0.tgz", + "integrity": "sha512-tUdRRAnhT+OtCZR/LxZelH/C7QtjtFrTu5tXCA8pl55eTUElUHT+GPYV8MBMBvea/j+NxQqVt3LbWMRir7Gx9g==", + "dev": true, + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/is-number": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", @@ -8089,6 +8147,15 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/is-path-inside": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, "node_modules/is-plain-obj": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-3.0.0.tgz", @@ -8271,6 +8338,7 @@ "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", "dev": true, + "peer": true, "dependencies": { "is-docker": "^2.0.0" }, @@ -8312,6 +8380,21 @@ "set-function-name": "^2.0.1" } }, + "node_modules/jackspeak": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz", + "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==", + "dev": true, + "dependencies": { + "@isaacs/cliui": "^8.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + }, + "optionalDependencies": { + "@pkgjs/parseargs": "^0.11.0" + } + }, "node_modules/jest-worker": { "version": "27.5.1", "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", @@ -8364,13 +8447,12 @@ "dev": true }, "node_modules/js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", "dev": true, "dependencies": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" + "argparse": "^2.0.1" }, "bin": { "js-yaml": "bin/js-yaml.js" @@ -8492,28 +8574,12 @@ "safe-buffer": "^5.0.1" } }, - "node_modules/jsonwebtoken/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "peer": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/jsonwebtoken/node_modules/semver": { - "version": "7.6.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", - "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", "dev": true, "peer": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, "bin": { "semver": "bin/semver.js" }, @@ -8521,13 +8587,6 @@ "node": ">=10" } }, - "node_modules/jsonwebtoken/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true, - "peer": true - }, "node_modules/jsx-ast-utils": { "version": "3.3.5", "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.5.tgz", @@ -8617,9 +8676,9 @@ } }, "node_modules/launch-editor": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/launch-editor/-/launch-editor-2.6.1.tgz", - "integrity": "sha512-eB/uXmFVpY4zezmGp5XtU21kwo7GBbKB+EQ+UZeWtGb9yAM5xt/Evk+lYH3eRNAtId+ej4u7TYPFZ07w4s7rRw==", + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/launch-editor/-/launch-editor-2.8.1.tgz", + "integrity": "sha512-elBx2l/tp9z99X5H/qev8uyDywVh0VXAwEbjk8kJhnc5grOFkGh7aW6q55me9xnYbss261XtnUrysZ+XvGbhQA==", "dev": true, "dependencies": { "picocolors": "^1.0.0", @@ -8639,13 +8698,6 @@ "node": ">= 0.8.0" } }, - "node_modules/listenercount": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/listenercount/-/listenercount-1.0.1.tgz", - "integrity": "sha512-3mk/Zag0+IJxeDrxSgaDPy4zZ3w05PRZeJNnlWhzFz5OkX49J4krc+A8X2d2M69vGMBEX0uyl8M+W+8gH+kBqQ==", - "dev": true, - "peer": true - }, "node_modules/loader-runner": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz", @@ -8670,15 +8722,18 @@ } }, "node_modules/locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", "dev": true, "dependencies": { - "p-locate": "^4.1.0" + "p-locate": "^5.0.0" }, "engines": { - "node": ">=8" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/lodash": { @@ -8742,12 +8797,6 @@ "dev": true, "peer": true }, - "node_modules/lodash.truncate": { - "version": "4.4.2", - "resolved": "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz", - "integrity": "sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw==", - "dev": true - }, "node_modules/loose-envify": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", @@ -8760,6 +8809,16 @@ "loose-envify": "cli.js" } }, + "node_modules/loupe": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/loupe/-/loupe-2.3.7.tgz", + "integrity": "sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA==", + "dev": true, + "peer": true, + "dependencies": { + "get-func-name": "^2.0.1" + } + }, "node_modules/lower-case": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz", @@ -8778,21 +8837,6 @@ "yallist": "^3.0.2" } }, - "node_modules/make-dir": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", - "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", - "dev": true, - "dependencies": { - "semver": "^6.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/md5": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/md5/-/md5-2.3.0.tgz", @@ -8815,15 +8859,22 @@ } }, "node_modules/memfs": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/memfs/-/memfs-3.5.3.tgz", - "integrity": "sha512-UERzLsxzllchadvbPs5aolHh65ISpKpM+ccLbOJ8/vvpBKmAWf+la7dXFy7Mr0ySHbdHrFv5kGFCUHHe6GFEmw==", + "version": "4.11.1", + "resolved": "https://registry.npmjs.org/memfs/-/memfs-4.11.1.tgz", + "integrity": "sha512-LZcMTBAgqUUKNXZagcZxvXXfgF1bHX7Y7nQ0QyEiNbRJgE29GhgPd8Yna1VQcLlPiHt/5RFJMWYN9Uv/VPNvjQ==", "dev": true, "dependencies": { - "fs-monkey": "^1.0.4" + "@jsonjoy.com/json-pack": "^1.0.3", + "@jsonjoy.com/util": "^1.3.0", + "tree-dump": "^1.0.1", + "tslib": "^2.0.0" }, "engines": { "node": ">= 4.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" } }, "node_modules/merge-descriptors": { @@ -8857,12 +8908,12 @@ } }, "node_modules/micromatch": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", - "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.7.tgz", + "integrity": "sha512-LPP/3KorzCwBxfeUuZmaR6bG2kdeHSbe0P2tY3FLRU4vYrjYz5hI4QZwV0njUx3jeuKe67YukQ1LSPZBKDqO/Q==", "dev": true, "dependencies": { - "braces": "^3.0.2", + "braces": "^3.0.3", "picomatch": "^2.3.1" }, "engines": { @@ -8954,43 +9005,38 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/minipass": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", + "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", + "dev": true, + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, "node_modules/mkcert": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/mkcert/-/mkcert-1.5.1.tgz", - "integrity": "sha512-MHOmridCutIIPMKvaQwueIAo+lsHPyO0WotbGIOq5V4mPywrjtOPlzdS/kgk/2vjRELWv4OrDSKo4KA8H7VARw==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/mkcert/-/mkcert-3.2.0.tgz", + "integrity": "sha512-026Eivq9RoOjOuLJGzbhGwXUAjBxRX11Z7Jbm4/7lqT/Av+XNy9SPrJte6+UpEt7i+W3e/HZYxQqlQcqXZWSzg==", "dev": true, "dependencies": { - "commander": "^9.4.0", - "ip-regex": "^4.3.0", + "commander": "^11.0.0", "node-forge": "^1.3.1" }, "bin": { - "mkcert": "src/cli.js" + "mkcert": "dist/cli.js" }, "engines": { - "node": ">=12" + "node": ">=16" } }, "node_modules/mkcert/node_modules/commander": { - "version": "9.5.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-9.5.0.tgz", - "integrity": "sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==", + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-11.1.0.tgz", + "integrity": "sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ==", "dev": true, "engines": { - "node": "^12.20.0 || >=14" - } - }, - "node_modules/mkdirp": { - "version": "0.5.6", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", - "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", - "dev": true, - "peer": true, - "dependencies": { - "minimist": "^1.2.6" - }, - "bin": { - "mkdirp": "bin/cmd.js" + "node": ">=16" } }, "node_modules/mkdirp-classic": { @@ -9054,12 +9100,6 @@ "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", "dev": true }, - "node_modules/natural-compare-lite": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz", - "integrity": "sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==", - "dev": true - }, "node_modules/negotiator": { "version": "0.6.3", "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", @@ -9093,9 +9133,9 @@ } }, "node_modules/node-abi": { - "version": "3.56.0", - "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-3.56.0.tgz", - "integrity": "sha512-fZjdhDOeRcaS+rcpve7XuwHBmktS1nS1gzgghwKUQQ8nTy2FdSDr6ZT8k6YhvlJeHmmQMYiT/IH9hfco5zeW2Q==", + "version": "3.67.0", + "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-3.67.0.tgz", + "integrity": "sha512-bLn/fU/ALVBE9wj+p4Y21ZJWYFjUXLXPi/IewyLZkx3ApxKDNBWCKdReeKOtD8dWpOdDCeMyLh6ZewzcLsG2Nw==", "dev": true, "optional": true, "peer": true, @@ -9106,30 +9146,13 @@ "node": ">=10" } }, - "node_modules/node-abi/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/node-abi/node_modules/semver": { - "version": "7.6.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", - "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", "dev": true, "optional": true, "peer": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, "bin": { "semver": "bin/semver.js" }, @@ -9137,14 +9160,6 @@ "node": ">=10" } }, - "node_modules/node-abi/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true, - "optional": true, - "peer": true - }, "node_modules/node-addon-api": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-4.3.0.tgz", @@ -9213,9 +9228,9 @@ } }, "node_modules/node-releases": { - "version": "2.0.14", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz", - "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==", + "version": "2.0.18", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.18.tgz", + "integrity": "sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==", "dev": true }, "node_modules/normalize-path": { @@ -9372,10 +9387,13 @@ } }, "node_modules/object-inspect": { - "version": "1.13.1", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz", - "integrity": "sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==", + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.2.tgz", + "integrity": "sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g==", "dev": true, + "engines": { + "node": ">= 0.4" + }, "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -9439,19 +9457,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/object.hasown": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/object.hasown/-/object.hasown-1.1.3.tgz", - "integrity": "sha512-fFI4VcYpRHvSLXxP7yiZOMAd331cPfd2p7PFDVbgUsYOfCT3tICVqXWngbjr4m49OvsBwUBQ6O2uQoJvy3RexA==", - "dev": true, - "dependencies": { - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/object.values": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.2.0.tgz", @@ -9476,9 +9481,9 @@ "dev": true }, "node_modules/office-addin-cli": { - "version": "1.5.9", - "resolved": "https://registry.npmjs.org/office-addin-cli/-/office-addin-cli-1.5.9.tgz", - "integrity": "sha512-8L6vhvt63bIKmNauqtDUyRgK6ciGmbcKt6OL+RlxMympjNrA1YJ/p0wzyEov1GlO8N2X3HKANPTNZx7/4BJQ6A==", + "version": "1.6.3", + "resolved": "https://registry.npmjs.org/office-addin-cli/-/office-addin-cli-1.6.3.tgz", + "integrity": "sha512-ni3bTp9xDDig8SN5TkuuppI2AMfmqVYpOAEU4odx6IfOjztBLJhhAmeBn2fht6B2yOJ+RqRgYZqhSzYPySUTVw==", "dev": true, "dependencies": { "commander": "^6.2.1", @@ -9499,20 +9504,20 @@ } }, "node_modules/office-addin-debugging": { - "version": "5.0.17", - "resolved": "https://registry.npmjs.org/office-addin-debugging/-/office-addin-debugging-5.0.17.tgz", - "integrity": "sha512-MHnNUypJ0UzW+ZM15hBc1tzgnxJ4F2AF14w8/MF+aMwgeSYGaW1eQAYG2wpsXMw7huMZUbeiqvH6jJadQIwT2A==", + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/office-addin-debugging/-/office-addin-debugging-5.1.4.tgz", + "integrity": "sha512-nFxUmDxWRUxMZq+nCXcUXEjLU1ZLtM1hKEBrxwsUfyH62wbQBDLH1k0GeU38Rb29wIbrIY7kG3L6SAzf2xYU2A==", "dev": true, "dependencies": { - "adm-zip": "^0.5.9", + "adm-zip": "0.5.12", "commander": "^6.2.0", "node-fetch": "^2.6.1", - "office-addin-cli": "^1.5.9", - "office-addin-dev-certs": "^1.12.2", - "office-addin-dev-settings": "^2.2.3", - "office-addin-manifest": "^1.12.11", - "office-addin-node-debugger": "^0.8.9", - "office-addin-usage-data": "^1.6.9" + "office-addin-cli": "^1.6.3", + "office-addin-dev-certs": "^1.13.3", + "office-addin-dev-settings": "^2.3.4", + "office-addin-manifest": "^1.13.4", + "office-addin-node-debugger": "^0.9.4", + "office-addin-usage-data": "^1.6.12" }, "bin": { "office-addin-debugging": "cli.js" @@ -9528,16 +9533,16 @@ } }, "node_modules/office-addin-dev-certs": { - "version": "1.12.2", - "resolved": "https://registry.npmjs.org/office-addin-dev-certs/-/office-addin-dev-certs-1.12.2.tgz", - "integrity": "sha512-09F2LHbc5+k9s+6QvckBQpq6LhNIBVi9MgnDiPd48Pq+u7j/44DqxNUC6J1hHiBepJyyNeXH2DGcUBFvMb4Pag==", + "version": "1.13.3", + "resolved": "https://registry.npmjs.org/office-addin-dev-certs/-/office-addin-dev-certs-1.13.3.tgz", + "integrity": "sha512-aj/uKNC660crQmJZ0nwYcjDM6SQ+tuMBb4CcWNLzv4wkRMmFc04htyL57hLIXNmK821bpgsQo2Qni8fLclzRLA==", "dev": true, "dependencies": { "commander": "^6.2.0", - "fs-extra": "^7.0.1", - "mkcert": "^1.4.0", - "office-addin-cli": "^1.5.9", - "office-addin-usage-data": "^1.6.9" + "fs-extra": "^11.2.0", + "mkcert": "^3.2.0", + "office-addin-cli": "^1.6.3", + "office-addin-usage-data": "^1.6.12" }, "bin": { "office-addin-dev-certs": "cli.js" @@ -9553,50 +9558,32 @@ } }, "node_modules/office-addin-dev-certs/node_modules/fs-extra": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", - "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", + "version": "11.2.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.2.0.tgz", + "integrity": "sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==", "dev": true, "dependencies": { - "graceful-fs": "^4.1.2", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" }, "engines": { - "node": ">=6 <7 || >=8" - } - }, - "node_modules/office-addin-dev-certs/node_modules/jsonfile": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", - "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", - "dev": true, - "optionalDependencies": { - "graceful-fs": "^4.1.6" - } - }, - "node_modules/office-addin-dev-certs/node_modules/universalify": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", - "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", - "dev": true, - "engines": { - "node": ">= 4.0.0" + "node": ">=14.14" } }, "node_modules/office-addin-dev-settings": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/office-addin-dev-settings/-/office-addin-dev-settings-2.2.3.tgz", - "integrity": "sha512-qlopE6RotwUx5OjV7Cx16N6gvSoK7tiO3jK/1H0UNkLRVVr8SGACmeK4nHVFGuBiyJb/FhJQowHXmiWCWNts8A==", + "version": "2.3.4", + "resolved": "https://registry.npmjs.org/office-addin-dev-settings/-/office-addin-dev-settings-2.3.4.tgz", + "integrity": "sha512-MpO1wj5mrNJeNisvhziFo1lg/4ARH/kILBEygL+WmS1F36nAi9EfY+kH0GkVSHd0WF8d/eaOBFRxOxrkdtidLQ==", "dev": true, "dependencies": { - "adm-zip": "0.5.10", + "adm-zip": "0.5.12", "commander": "^6.2.0", "fs-extra": "^11.2.0", "inquirer": "^7.3.3", "junk": "^3.1.0", - "office-addin-manifest": "^1.12.11", - "office-addin-usage-data": "^1.6.9", + "office-addin-manifest": "^1.13.4", + "office-addin-usage-data": "^1.6.12", "open": "^6.4.0", "string_decoder": "1.3.0", "whatwg-url": "^14.0.0", @@ -9606,16 +9593,7 @@ "office-addin-dev-settings": "cli.js" }, "peerDependencies": { - "@microsoft/teamsapp-cli": "3.0.0" - } - }, - "node_modules/office-addin-dev-settings/node_modules/adm-zip": { - "version": "0.5.10", - "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.5.10.tgz", - "integrity": "sha512-x0HvcHqVJNTPk/Bw8JbLWlWoo6Wwnsug0fnYYro1HBrjxZ3G7/AZk7Ahv8JwDe1uIcz8eBqvu86FuF1POiG7vQ==", - "dev": true, - "engines": { - "node": ">=6.0" + "@microsoft/teamsapp-cli": "3.0.2" } }, "node_modules/office-addin-dev-settings/node_modules/commander": { @@ -9697,21 +9675,21 @@ } }, "node_modules/office-addin-lint": { - "version": "2.2.9", - "resolved": "https://registry.npmjs.org/office-addin-lint/-/office-addin-lint-2.2.9.tgz", - "integrity": "sha512-zU0eC4UsgbauQXEivOlcaenHnlxlzhc6sQMHKJoK3pDmp08uJeoc1EV1PNgiF6i1Py+4xIkIaDAsqlYEbjoumQ==", + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/office-addin-lint/-/office-addin-lint-2.3.3.tgz", + "integrity": "sha512-Makne5gVQuC/t0Bh6NsXk8SGm7jLZS5Kj6VGM4nAHFNZZfWuAmoNWOKKb8PAMRlRqBqIhAPknIeu6OwcGhNCfA==", "dev": true, "dependencies": { - "@typescript-eslint/eslint-plugin": "^5.33.1", - "@typescript-eslint/parser": "^5.33.1", + "@typescript-eslint/eslint-plugin": "^7.3.0", + "@typescript-eslint/parser": "^7.5.0", "commander": "^6.2.0", - "eslint": "^7.32.0", - "eslint-config-prettier": "^8.1.0", - "eslint-plugin-office-addins": "^2.1.8", - "eslint-plugin-prettier": "^3.3.1", - "office-addin-prettier-config": "^1.2.0", - "office-addin-usage-data": "^1.6.9", - "prettier": "^2.2.1" + "eslint": "^8.57.0", + "eslint-config-prettier": "^9.1.0", + "eslint-plugin-office-addins": "^3.0.2", + "eslint-plugin-prettier": "^5.1.3", + "office-addin-prettier-config": "^1.2.1", + "office-addin-usage-data": "^1.6.12", + "prettier": "^3.2.5" }, "bin": { "office-addin-lint": "lib/cli.js" @@ -9726,40 +9704,19 @@ "node": ">= 6" } }, - "node_modules/office-addin-lint/node_modules/eslint-plugin-prettier": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-3.4.1.tgz", - "integrity": "sha512-htg25EUYUeIhKHXjOinK4BgCcDwtLHjqaxCDsMy5nbnUMkKFvIhMVCp+5GFUXQ4Nr8lBsPqtGAqBenbpFqAA2g==", - "dev": true, - "dependencies": { - "prettier-linter-helpers": "^1.0.0" - }, - "engines": { - "node": ">=6.0.0" - }, - "peerDependencies": { - "eslint": ">=5.0.0", - "prettier": ">=1.13.0" - }, - "peerDependenciesMeta": { - "eslint-config-prettier": { - "optional": true - } - } - }, "node_modules/office-addin-manifest": { - "version": "1.12.11", - "resolved": "https://registry.npmjs.org/office-addin-manifest/-/office-addin-manifest-1.12.11.tgz", - "integrity": "sha512-MOQqKAme4SSN6ut6t1Fyj4ilBRpko9gp6EWCPhxpQKk8Krg7cMIrLZ0QHJ3BMAYjB31QnqHVIjfJtLydSY4RwQ==", + "version": "1.13.4", + "resolved": "https://registry.npmjs.org/office-addin-manifest/-/office-addin-manifest-1.13.4.tgz", + "integrity": "sha512-bzjc+ypvJT+UBUSsfugftOZh/CZECR5GwJ7PMYcFuB/zGPuh41jeAxbuXhlAy8AeJpQgEsTK3B7N1aDr+JPqjg==", "dev": true, "dependencies": { "@microsoft/teams-manifest": "^0.1.3", - "adm-zip": "^0.5.9", + "adm-zip": "0.5.12", "chalk": "^2.4.2", "commander": "^6.2.0", "fs-extra": "^7.0.1", "node-fetch": "^2.6.1", - "office-addin-usage-data": "^1.6.9", + "office-addin-usage-data": "^1.6.12", "path": "^0.12.7", "uuid": "^8.3.2", "xml2js": "^0.5.0" @@ -9769,15 +9726,15 @@ } }, "node_modules/office-addin-manifest-converter": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/office-addin-manifest-converter/-/office-addin-manifest-converter-0.2.4.tgz", - "integrity": "sha512-TGL6tUEbnMjVxFm/6XddwUkyF4a9947IxHETP2I/hqtFTD2JXoRVi2bQ6l5x938bla450mu3nfof0QFJtwbgHw==", + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/office-addin-manifest-converter/-/office-addin-manifest-converter-0.3.1.tgz", + "integrity": "sha512-b0KumPkwfFqNTQ66Wjjbw5FU+wFMds6zvnGQit5yhHksv01aqQ/abBoI6T7hE5QV4Zx0wZrFGLntYMSShWFi0Q==", "dev": true, "peer": true, "dependencies": { "@xmldom/xmldom": "^0.8.5", "commander": "^9.0.0", - "terser": "^5.6.0" + "terser": "^5.29.1" }, "bin": { "office-addin-manifest-converter": "cli.js" @@ -9835,14 +9792,14 @@ } }, "node_modules/office-addin-node-debugger": { - "version": "0.8.9", - "resolved": "https://registry.npmjs.org/office-addin-node-debugger/-/office-addin-node-debugger-0.8.9.tgz", - "integrity": "sha512-sPgTdSRe+iEkhyCZ6UpRjHZw4gfb3vKww4KqIo0erud8RN71UtPQ2tLJ/XWKSXt7VIfAqEDteJfjiLqaW95jkQ==", + "version": "0.9.4", + "resolved": "https://registry.npmjs.org/office-addin-node-debugger/-/office-addin-node-debugger-0.9.4.tgz", + "integrity": "sha512-OXqlwOSyBas8GO+GD+8+sIqRr7Oh8eTe/8MaA3de+AUKl1IdwxpmkcTdTeFJQeSmuGmD2aaoytGDFLN5E1FT0A==", "dev": true, "dependencies": { "commander": "^6.2.0", "node-fetch": "^2.6.1", - "office-addin-usage-data": "^1.6.9", + "office-addin-usage-data": "^1.6.12", "ws": "^7.4.6" }, "bin": { @@ -9859,25 +9816,25 @@ } }, "node_modules/office-addin-prettier-config": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/office-addin-prettier-config/-/office-addin-prettier-config-1.2.0.tgz", - "integrity": "sha512-42/w9BUlUvgbLNn8vLaGULVTrcTFBnhn+xAe6IwSOhPrFQpi2GxZPl8ln/f5X4lterVrJz7U6Vi+VeN7WYAsGQ==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/office-addin-prettier-config/-/office-addin-prettier-config-1.2.1.tgz", + "integrity": "sha512-FlBMKuZostX7/g2M5Y8qUtkdy83STzm7zDonx3ZRr9NnrFyhdUVANqnDCy4NwCOpcALxMVnpNOYMmTFIQBXaAw==", "dev": true }, "node_modules/office-addin-project": { - "version": "0.7.9", - "resolved": "https://registry.npmjs.org/office-addin-project/-/office-addin-project-0.7.9.tgz", - "integrity": "sha512-z03wH/EuD+TxEKKNi8W4cM1iGmeK+oeWrPS+1LKJzGhxxijJ2Lbgut6aTV9MMIyMkaajtYskDzjRH4wxLg0iug==", + "version": "0.8.4", + "resolved": "https://registry.npmjs.org/office-addin-project/-/office-addin-project-0.8.4.tgz", + "integrity": "sha512-RJ5Z9jb9T/SPQt6w5s/cPeO8XWwcGmM7YoWyHxi+OlqcbgPw3amHbCxAVM96R4mkfN57sL8IBAaC0KxIK9l67g==", "dev": true, "peer": true, "dependencies": { - "adm-zip": "^0.5.9", + "adm-zip": "0.5.12", "commander": "^6.2.1", "fs-extra": "^7.0.1", "inquirer": "^7.3.3", - "office-addin-manifest": "^1.12.11", - "office-addin-manifest-converter": "^0.2.4", - "office-addin-usage-data": "^1.6.9", + "office-addin-manifest": "^1.13.4", + "office-addin-manifest-converter": "^0.3.1", + "office-addin-usage-data": "^1.6.12", "path": "^0.12.7" }, "bin": { @@ -9930,9 +9887,9 @@ } }, "node_modules/office-addin-usage-data": { - "version": "1.6.9", - "resolved": "https://registry.npmjs.org/office-addin-usage-data/-/office-addin-usage-data-1.6.9.tgz", - "integrity": "sha512-SDqFRNZD/iTtgEbHczlswjsUB0OLYU6s+5EKcHzwQxvZIEocsTW9sqj/3eR3qi2IT8oTHFBJxilws1yckshiPA==", + "version": "1.6.12", + "resolved": "https://registry.npmjs.org/office-addin-usage-data/-/office-addin-usage-data-1.6.12.tgz", + "integrity": "sha512-K9Ii5Jsc6Vuf6LrBvo5BycMzTmDwTkk3g5W2zS4PLffvvQYeI/RO3oYpGpOT6z7Pa8oh5gQ2QMDUgmjQGQZ7PA==", "dev": true, "dependencies": { "applicationinsights": "^1.7.3", @@ -10003,6 +9960,7 @@ "resolved": "https://registry.npmjs.org/open/-/open-8.4.2.tgz", "integrity": "sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==", "dev": true, + "peer": true, "dependencies": { "define-lazy-prop": "^2.0.0", "is-docker": "^2.1.1", @@ -10023,17 +9981,17 @@ "peer": true }, "node_modules/optionator": { - "version": "0.9.3", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz", - "integrity": "sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==", + "version": "0.9.4", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", + "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==", "dev": true, "dependencies": { - "@aashutoshrathi/word-wrap": "^1.2.3", "deep-is": "^0.1.3", "fast-levenshtein": "^2.0.6", "levn": "^0.4.1", "prelude-ls": "^1.2.1", - "type-check": "^0.4.0" + "type-check": "^0.4.0", + "word-wrap": "^1.2.5" }, "engines": { "node": ">= 0.8.0" @@ -10055,43 +10013,50 @@ } }, "node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", "dev": true, "dependencies": { - "p-try": "^2.0.0" + "yocto-queue": "^0.1.0" }, "engines": { - "node": ">=6" + "node": ">=10" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", "dev": true, "dependencies": { - "p-limit": "^2.2.0" + "p-limit": "^3.0.2" }, "engines": { - "node": ">=8" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/p-retry": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-4.6.2.tgz", - "integrity": "sha512-312Id396EbJdvRONlngUx0NydfrIQ5lsYu0znKVUzVvArzEIt08V1qhtyESbGVd1FGX7UKtiFp5uwKZdM8wIuQ==", + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-6.2.0.tgz", + "integrity": "sha512-JA6nkq6hKyWLLasXQXUrO4z8BUZGUt/LjlJxx8Gb2+2ntodU/SS63YZ8b0LUTbQ8ZB9iwOfhEPhg4ykKnn2KsA==", "dev": true, "dependencies": { - "@types/retry": "0.12.0", + "@types/retry": "0.12.2", + "is-network-error": "^1.0.0", "retry": "^0.13.1" }, "engines": { - "node": ">=8" + "node": ">=16.17" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/p-retry/node_modules/retry": { @@ -10112,6 +10077,12 @@ "node": ">=6" } }, + "node_modules/package-json-from-dist": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.0.tgz", + "integrity": "sha512-dATvCeZN/8wQsGywez1mzHtTlP22H8OEfPrVMLNr4/eGa+ijtLn/6M5f0dY8UKNrC2O9UCU6SSoG3qRKnt7STw==", + "dev": true + }, "node_modules/param-case": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/param-case/-/param-case-3.0.4.tgz", @@ -10208,6 +10179,28 @@ "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", "dev": true }, + "node_modules/path-scurry": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", + "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", + "dev": true, + "dependencies": { + "lru-cache": "^10.2.0", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" + }, + "engines": { + "node": ">=16 || 14 >=14.18" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/path-scurry/node_modules/lru-cache": { + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", + "dev": true + }, "node_modules/path-to-regexp": { "version": "0.1.7", "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", @@ -10215,18 +10208,31 @@ "dev": true }, "node_modules/path-type": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", - "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-5.0.0.tgz", + "integrity": "sha512-5HviZNaZcfqP95rwpv+1HDgUamezbqdSYTyzjTvwtJSnIH+3vnbmWsItli8OFEndS984VT55M3jduxZbX351gg==", "dev": true, "engines": { - "node": ">=8" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/pathval": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz", + "integrity": "sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==", + "dev": true, + "peer": true, + "engines": { + "node": "*" } }, "node_modules/picocolors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.1.tgz", + "integrity": "sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==", "dev": true }, "node_modules/picomatch": { @@ -10242,15 +10248,100 @@ } }, "node_modules/pkg-dir": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", - "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-7.0.0.tgz", + "integrity": "sha512-Ie9z/WINcxxLp27BKOCHGde4ITq9UklYKDzVo1nhk5sqGEXU3FpkwP5GM2voTGJkGd9B3Otl+Q4uwSOeSUtOBA==", "dev": true, "dependencies": { - "find-up": "^4.0.0" + "find-up": "^6.3.0" }, "engines": { - "node": ">=8" + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/pkg-dir/node_modules/find-up": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-6.3.0.tgz", + "integrity": "sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw==", + "dev": true, + "dependencies": { + "locate-path": "^7.1.0", + "path-exists": "^5.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/pkg-dir/node_modules/locate-path": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-7.2.0.tgz", + "integrity": "sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==", + "dev": true, + "dependencies": { + "p-locate": "^6.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/pkg-dir/node_modules/p-limit": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-4.0.0.tgz", + "integrity": "sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==", + "dev": true, + "dependencies": { + "yocto-queue": "^1.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/pkg-dir/node_modules/p-locate": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-6.0.0.tgz", + "integrity": "sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==", + "dev": true, + "dependencies": { + "p-limit": "^4.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/pkg-dir/node_modules/path-exists": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-5.0.0.tgz", + "integrity": "sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==", + "dev": true, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + } + }, + "node_modules/pkg-dir/node_modules/yocto-queue": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.1.1.tgz", + "integrity": "sha512-b4JR1PFR10y1mKjhHY9LaGo6tmrgjit7hxVIeAmyMw3jegXR4dhYqLaQF5zMXZxY7tLpMyJeLjr1C4rLmkVe8g==", + "dev": true, + "engines": { + "node": ">=12.20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/possible-typed-array-names": { @@ -10300,15 +10391,15 @@ } }, "node_modules/prettier": { - "version": "2.8.8", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.8.tgz", - "integrity": "sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==", + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.3.3.tgz", + "integrity": "sha512-i2tDNA0O5IrMO757lfrdQZCc2jPNDVntV0m/+4whiDfWaTKfMNgR7Qz0NAeGz/nRqF4m5/6CLzbP4/liHt12Ew==", "dev": true, "bin": { - "prettier": "bin-prettier.js" + "prettier": "bin/prettier.cjs" }, "engines": { - "node": ">=10.13.0" + "node": ">=14" }, "funding": { "url": "https://github.com/prettier/prettier?sponsor=1" @@ -10351,15 +10442,6 @@ "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", "dev": true }, - "node_modules/progress": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", - "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", - "dev": true, - "engines": { - "node": ">=0.4.0" - } - }, "node_modules/prop-types": { "version": "15.8.1", "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", @@ -10407,7 +10489,8 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", - "dev": true + "dev": true, + "peer": true }, "node_modules/pump": { "version": "3.0.0", @@ -10660,9 +10743,9 @@ } }, "node_modules/regenerator-runtime": { - "version": "0.13.11", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz", - "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==" + "version": "0.14.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", + "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==" }, "node_modules/regexp.prototype.flags": { "version": "1.5.2", @@ -10682,18 +10765,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/regexpp": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", - "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", - "dev": true, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/mysticatea" - } - }, "node_modules/relateurl": { "version": "0.2.7", "resolved": "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz", @@ -10850,6 +10921,7 @@ "version": "3.0.2", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "deprecated": "Rimraf versions prior to v4 are no longer supported", "dev": true, "dependencies": { "glob": "^7.1.3" @@ -10861,6 +10933,18 @@ "url": "https://github.com/sponsors/isaacs" } }, + "node_modules/run-applescript": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/run-applescript/-/run-applescript-7.0.0.tgz", + "integrity": "sha512-9by4Ij99JUr/MCFBUkDKLWK3G9HVXmabKz9U5MlIAIuvuzkiOicRYs8XJLxX+xahD+mLiiCYDqF9dKAgtzKP1A==", + "dev": true, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/run-async": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/run-async/-/run-async-3.0.0.tgz", @@ -10974,29 +11058,81 @@ "dev": true }, "node_modules/sax": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/sax/-/sax-1.3.0.tgz", - "integrity": "sha512-0s+oAmw9zLl1V1cS9BtZN7JAd0cW5e0QH4W3LWEK6a4LaLEA2OTpGYWDY+6XasBLtz6wkm3u1xRw95mRuJ59WA==", + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.4.1.tgz", + "integrity": "sha512-+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg==", "dev": true }, "node_modules/schema-utils": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.1.tgz", - "integrity": "sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.2.0.tgz", + "integrity": "sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw==", "dev": true, "dependencies": { - "@types/json-schema": "^7.0.5", - "ajv": "^6.12.4", - "ajv-keywords": "^3.5.2" + "@types/json-schema": "^7.0.9", + "ajv": "^8.9.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.1.0" }, "engines": { - "node": ">= 8.9.0" + "node": ">= 12.13.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/webpack" } }, + "node_modules/schema-utils/node_modules/ajv": { + "version": "8.17.1", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", + "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/schema-utils/node_modules/ajv-formats": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", + "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", + "dev": true, + "dependencies": { + "ajv": "^8.0.0" + }, + "peerDependencies": { + "ajv": "^8.0.0" + }, + "peerDependenciesMeta": { + "ajv": { + "optional": true + } + } + }, + "node_modules/schema-utils/node_modules/ajv-keywords": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", + "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.3" + }, + "peerDependencies": { + "ajv": "^8.8.2" + } + }, + "node_modules/schema-utils/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true + }, "node_modules/select-hose": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz", @@ -11216,13 +11352,6 @@ "node": ">= 0.4" } }, - "node_modules/setimmediate": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", - "integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==", - "dev": true, - "peer": true - }, "node_modules/setprototypeof": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", @@ -11360,7 +11489,6 @@ "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", "dev": true, - "peer": true, "engines": { "node": ">=14" }, @@ -11418,64 +11546,17 @@ } }, "node_modules/slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-5.1.0.tgz", + "integrity": "sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg==", "dev": true, "engines": { - "node": ">=8" - } - }, - "node_modules/slice-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", - "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.0.0", - "astral-regex": "^2.0.0", - "is-fullwidth-code-point": "^3.0.0" - }, - "engines": { - "node": ">=10" + "node": ">=14.16" }, "funding": { - "url": "https://github.com/chalk/slice-ansi?sponsor=1" - } - }, - "node_modules/slice-ansi/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/slice-ansi/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/slice-ansi/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, "node_modules/sockjs": { "version": "0.3.24", "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.24.tgz", @@ -11506,24 +11587,23 @@ } }, "node_modules/source-map-loader": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/source-map-loader/-/source-map-loader-3.0.2.tgz", - "integrity": "sha512-BokxPoLjyl3iOrgkWaakaxqnelAJSS+0V+De0kKIq6lyWrXuiPgYTGp6z3iHmqljKAaLXwZa+ctD8GccRJeVvg==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/source-map-loader/-/source-map-loader-5.0.0.tgz", + "integrity": "sha512-k2Dur7CbSLcAH73sBcIkV5xjPV4SzqO1NJ7+XaQl8if3VODDUj3FNchNGpqgJSKbvUfJuhVdv8K2Eu8/TNl2eA==", "dev": true, "dependencies": { - "abab": "^2.0.5", "iconv-lite": "^0.6.3", - "source-map-js": "^1.0.1" + "source-map-js": "^1.0.2" }, "engines": { - "node": ">= 12.13.0" + "node": ">= 18.12.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/webpack" }, "peerDependencies": { - "webpack": "^5.0.0" + "webpack": "^5.72.1" } }, "node_modules/source-map-support": { @@ -11570,7 +11650,8 @@ "version": "1.0.3", "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", - "dev": true + "dev": true, + "peer": true }, "node_modules/stack-chain": { "version": "1.3.7", @@ -11621,6 +11702,21 @@ "node": ">=8" } }, + "node_modules/string-width-cjs": { + "name": "string-width", + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/string.prototype.matchall": { "version": "4.0.11", "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.11.tgz", @@ -11647,6 +11743,16 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/string.prototype.repeat": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/string.prototype.repeat/-/string.prototype.repeat-1.0.0.tgz", + "integrity": "sha512-0u/TldDbKD8bFCQ/4f5+mNRrXwZ8hg2w7ZR8wa16e8z9XpePWl3eGEcUD0OXpEH/VJH/2G3gjUtR3ZOiBe2S/w==", + "dev": true, + "dependencies": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.5" + } + }, "node_modules/string.prototype.trim": { "version": "1.2.9", "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.9.tgz", @@ -11680,14 +11786,17 @@ } }, "node_modules/string.prototype.trimstart": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.7.tgz", - "integrity": "sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg==", + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz", + "integrity": "sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1" + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -11705,6 +11814,19 @@ "node": ">=8" } }, + "node_modules/strip-ansi-cjs": { + "name": "strip-ansi", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/strip-bom": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", @@ -11736,6 +11858,13 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/strnum": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/strnum/-/strnum-1.0.5.tgz", + "integrity": "sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA==", + "dev": true, + "peer": true + }, "node_modules/supports-color": { "version": "5.5.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", @@ -11798,44 +11927,22 @@ "node": ">= 6" } }, - "node_modules/table": { - "version": "6.8.1", - "resolved": "https://registry.npmjs.org/table/-/table-6.8.1.tgz", - "integrity": "sha512-Y4X9zqrCftUhMeH2EptSSERdVKt/nEdijTOacGD/97EKjhQ/Qs8RTlEGABSJNNN8lac9kheH+af7yAkEWlgneA==", + "node_modules/synckit": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/synckit/-/synckit-0.9.1.tgz", + "integrity": "sha512-7gr8p9TQP6RAHusBOSLs46F4564ZrjV8xFmw5zCmgmhGUcw2hxsShhJ6CEiHQMgPDwAQ1fWHPM0ypc4RMAig4A==", "dev": true, "dependencies": { - "ajv": "^8.0.1", - "lodash.truncate": "^4.4.2", - "slice-ansi": "^4.0.0", - "string-width": "^4.2.3", - "strip-ansi": "^6.0.1" + "@pkgr/core": "^0.1.0", + "tslib": "^2.6.2" }, "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/table/node_modules/ajv": { - "version": "8.12.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", - "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" + "node": "^14.18.0 || >=16.0.0" }, "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" + "url": "https://opencollective.com/unts" } }, - "node_modules/table/node_modules/json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "dev": true - }, "node_modules/tapable": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", @@ -11878,9 +11985,9 @@ } }, "node_modules/terser": { - "version": "5.29.2", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.29.2.tgz", - "integrity": "sha512-ZiGkhUBIM+7LwkNjXYJq8svgkd+QK3UUr0wJqY4MieaezBSAIPgbSPZyIx0idM6XWK5CMzSWa8MJIzmRcB8Caw==", + "version": "5.31.6", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.31.6.tgz", + "integrity": "sha512-PQ4DAriWzKj+qgehQ7LK5bQqCFNMmlhjR2PFFLuqGCpuCAauxemVBWwWOxo3UIwWQx8+Pr61Df++r76wDmkQBg==", "dev": true, "dependencies": { "@jridgewell/source-map": "^0.3.3", @@ -11959,6 +12066,18 @@ "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", "dev": true }, + "node_modules/thingies": { + "version": "1.21.0", + "resolved": "https://registry.npmjs.org/thingies/-/thingies-1.21.0.tgz", + "integrity": "sha512-hsqsJsFMsV+aD4s3CWKk85ep/3I9XzYV/IXaSouJMYIoDlgyi11cBhsqYe9/geRfB0YIikBQg6raRaM+nIMP9g==", + "dev": true, + "engines": { + "node": ">=10.18" + }, + "peerDependencies": { + "tslib": "^2" + } + }, "node_modules/through": { "version": "2.3.8", "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", @@ -12019,14 +12138,20 @@ "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", "dev": true }, - "node_modules/traverse": { - "version": "0.3.9", - "resolved": "https://registry.npmjs.org/traverse/-/traverse-0.3.9.tgz", - "integrity": "sha512-iawgk0hLP3SxGKDfnDJf8wTz4p2qImnyihM5Hh/sGvQ3K37dPi/w8sRhdNIxYA1TwFwc5mDhIJq+O0RsvXBKdQ==", + "node_modules/tree-dump": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/tree-dump/-/tree-dump-1.0.2.tgz", + "integrity": "sha512-dpev9ABuLWdEubk+cIaI9cHwRNNDjkBBLXTwI4UCUFdQ5xXKqNXoK4FEciw/vxf+NQ7Cb7sGUyeUtORvHIdRXQ==", "dev": true, - "peer": true, "engines": { - "node": "*" + "node": ">=10.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "tslib": "2" } }, "node_modules/tree-kill": { @@ -12039,6 +12164,18 @@ "tree-kill": "cli.js" } }, + "node_modules/ts-api-utils": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.3.0.tgz", + "integrity": "sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==", + "dev": true, + "engines": { + "node": ">=16" + }, + "peerDependencies": { + "typescript": ">=4.2.0" + } + }, "node_modules/ts-loader": { "version": "9.5.1", "resolved": "https://registry.npmjs.org/ts-loader/-/ts-loader-9.5.1.tgz", @@ -12117,26 +12254,11 @@ "node": ">=8" } }, - "node_modules/ts-loader/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/ts-loader/node_modules/semver": { - "version": "7.6.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", - "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, "bin": { "semver": "bin/semver.js" }, @@ -12165,49 +12287,12 @@ "node": ">=8" } }, - "node_modules/ts-loader/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, "node_modules/tslib": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", - "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==", + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.3.tgz", + "integrity": "sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ==", "dev": true }, - "node_modules/tsutils": { - "version": "3.21.0", - "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", - "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", - "dev": true, - "dependencies": { - "tslib": "^1.8.1" - }, - "engines": { - "node": ">= 6" - }, - "peerDependencies": { - "typescript": ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta" - } - }, - "node_modules/tsutils/node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true - }, - "node_modules/tunnel": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/tunnel/-/tunnel-0.0.6.tgz", - "integrity": "sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg==", - "dev": true, - "peer": true, - "engines": { - "node": ">=0.6.11 <=0.7.0 || >=0.7.3" - } - }, "node_modules/tunnel-agent": { "version": "0.6.0", "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", @@ -12234,6 +12319,16 @@ "node": ">= 0.8.0" } }, + "node_modules/type-detect": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.1.0.tgz", + "integrity": "sha512-Acylog8/luQ8L7il+geoSxhEkazvkslg7PSNKOX59mbB9cOveP5aq9h74Y7YU8yDpJwetzQQrfIwtf4Wp4LKcw==", + "dev": true, + "peer": true, + "engines": { + "node": ">=4" + } + }, "node_modules/type-fest": { "version": "0.21.3", "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", @@ -12313,9 +12408,9 @@ } }, "node_modules/typed-array-length": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.5.tgz", - "integrity": "sha512-yMi0PlwuznKHxKmcpoOdeLwxBoVPkqZxd7q2FgMkmD3bNwvF5VW0+UlUQ1k1vmktTu4Yu13Q0RIxEP8+B+wloA==", + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.6.tgz", + "integrity": "sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g==", "dev": true, "dependencies": { "call-bind": "^1.0.7", @@ -12340,22 +12435,48 @@ "peer": true }, "node_modules/typescript": { - "version": "4.9.5", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz", - "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==", + "version": "5.5.4", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.5.4.tgz", + "integrity": "sha512-Mtq29sKDAEYP7aljRgtPOpTvOfbwRWlS6dPRzwjdE+C0R4brX/GUyhHSecbHMFLNBLcJIPt9nl9yG5TZ1weH+Q==", "dev": true, "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" }, "engines": { - "node": ">=4.2.0" + "node": ">=14.17" + } + }, + "node_modules/typescript-eslint": { + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-7.18.0.tgz", + "integrity": "sha512-PonBkP603E3tt05lDkbOMyaxJjvKqQrXsnow72sVeOFINDE/qNmnnd+f9b4N+U7W6MXnnYyrhtmF2t08QWwUbA==", + "dev": true, + "dependencies": { + "@typescript-eslint/eslint-plugin": "7.18.0", + "@typescript-eslint/parser": "7.18.0", + "@typescript-eslint/utils": "7.18.0" + }, + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.56.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } } }, "node_modules/uglify-js": { - "version": "3.17.4", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.17.4.tgz", - "integrity": "sha512-T9q82TJI9e/C1TAxYvfb16xO120tMVFZrGA3f9/P4424DNu6ypK103y0GPFVa17yotwSyZW5iYXgjYHkGrJW/g==", + "version": "3.19.2", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.19.2.tgz", + "integrity": "sha512-S8KA6DDI47nQXJSi2ctQ629YzwOVs+bQML6DAtvy0wgNdpi+0ySpQK0g2pxBq2xfF2z3YCscu7NNA8nXT9PlIQ==", "dev": true, "optional": true, "peer": true, @@ -12382,18 +12503,30 @@ } }, "node_modules/underscore": { - "version": "1.13.6", - "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.13.6.tgz", - "integrity": "sha512-+A5Sja4HP1M08MaXya7p5LvjuM7K6q/2EaC0+iovj/wOcMsTzMvDFbasi/oSapiwOlt252IqsKqPjCl7huKS0A==", + "version": "1.13.7", + "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.13.7.tgz", + "integrity": "sha512-GMXzWtsc57XAtguZgaQViUOzs0KTkk8ojr3/xAxXLITqf/3EMwxC0inyETfDFjH/Krbhuep0HNbbjI9i/q3F3g==", "dev": true, "peer": true }, "node_modules/undici-types": { - "version": "5.26.5", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", - "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==", + "version": "6.19.8", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.19.8.tgz", + "integrity": "sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==", "dev": true }, + "node_modules/unicorn-magic": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/unicorn-magic/-/unicorn-magic-0.1.0.tgz", + "integrity": "sha512-lRfVq8fE8gz6QMBuDM6a+LO3IAzTi05H6gCVaUpir2E1Rwpo4ZUog45KpNXKC/Mn3Yb9UDuHumeFTo9iV/D9FQ==", + "dev": true, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/universalify": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", @@ -12412,69 +12545,10 @@ "node": ">= 0.8" } }, - "node_modules/unzipper": { - "version": "0.10.14", - "resolved": "https://registry.npmjs.org/unzipper/-/unzipper-0.10.14.tgz", - "integrity": "sha512-ti4wZj+0bQTiX2KmKWuwj7lhV+2n//uXEotUmGuQqrbVZSEGFMbI68+c6JCQ8aAmUWYvtHEz2A8K6wXvueR/6g==", - "dev": true, - "peer": true, - "dependencies": { - "big-integer": "^1.6.17", - "binary": "~0.3.0", - "bluebird": "~3.4.1", - "buffer-indexof-polyfill": "~1.0.0", - "duplexer2": "~0.1.4", - "fstream": "^1.0.12", - "graceful-fs": "^4.2.2", - "listenercount": "~1.0.1", - "readable-stream": "~2.3.6", - "setimmediate": "~1.0.4" - } - }, - "node_modules/unzipper/node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", - "dev": true, - "peer": true - }, - "node_modules/unzipper/node_modules/readable-stream": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", - "dev": true, - "peer": true, - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "node_modules/unzipper/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true, - "peer": true - }, - "node_modules/unzipper/node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "peer": true, - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, "node_modules/update-browserslist-db": { - "version": "1.0.13", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz", - "integrity": "sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.0.tgz", + "integrity": "sha512-EdRAaAyk2cUE1wOf2DkEhzxqOQvFOoRJFNS6NeyJ01Gp2beMRpBAINjM2iDXE3KCuKhwnvHIQCJm6ThL2Z+HzQ==", "dev": true, "funding": [ { @@ -12491,8 +12565,8 @@ } ], "dependencies": { - "escalade": "^3.1.1", - "picocolors": "^1.0.0" + "escalade": "^3.1.2", + "picocolors": "^1.0.1" }, "bin": { "update-browserslist-db": "cli.js" @@ -12555,16 +12629,10 @@ "uuid": "dist/bin/uuid" } }, - "node_modules/v8-compile-cache": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.4.0.tgz", - "integrity": "sha512-ocyWc3bAHBB/guyqJQVI5o4BZkPhznPYUG2ea80Gond/BgNWpap8TOmLSeeQG7bnh2KMISxskdADG59j7zruhw==", - "dev": true - }, "node_modules/validator": { - "version": "13.11.0", - "resolved": "https://registry.npmjs.org/validator/-/validator-13.11.0.tgz", - "integrity": "sha512-Ii+sehpSfZy+At5nPdnyMhx78fEoPDkR2XW/zimHEL3MyGJQOCQ7WeP20jPYRz7ZCpcKLB21NxuXHF3bxjStBQ==", + "version": "13.12.0", + "resolved": "https://registry.npmjs.org/validator/-/validator-13.12.0.tgz", + "integrity": "sha512-c1Q0mCiPlgdTVVVIJIrBuxNicYE+t/7oKeI9MWLj3fh/uq2Pxh/3eeWbVZ4OcGW1TUf53At0njHw5SMdA3tmMg==", "dev": true, "peer": true, "engines": { @@ -12591,9 +12659,9 @@ } }, "node_modules/watchpack": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.1.tgz", - "integrity": "sha512-8wrBCMtVhqcXP2Sup1ctSkga6uc2Bx0IIvKyT7yTFier5AXHooSI+QyQQAtTb7+E0IUCCKyTFmXqdqgum2XWGg==", + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.2.tgz", + "integrity": "sha512-TnbFSbcOCcDgjZ4piURLCbJ3nJhznVh9kw6F6iokjiFPl8ONxe9A6nMDVXDiNbrSfLILs6vB07F7wLBrwPYzJw==", "dev": true, "dependencies": { "glob-to-regexp": "^0.4.1", @@ -12619,21 +12687,20 @@ "dev": true }, "node_modules/webpack": { - "version": "5.91.0", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.91.0.tgz", - "integrity": "sha512-rzVwlLeBWHJbmgTC/8TvAcu5vpJNII+MelQpylD4jNERPwpBJOE2lEcko1zJX3QJeLjTTAnQxn/OJ8bjDzVQaw==", + "version": "5.94.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.94.0.tgz", + "integrity": "sha512-KcsGn50VT+06JH/iunZJedYGUJS5FGjow8wb9c0v5n1Om8O1g4L6LjtfxwlXIATopoQu+vOXXa7gYisWxCoPyg==", "dev": true, "dependencies": { - "@types/eslint-scope": "^3.7.3", "@types/estree": "^1.0.5", "@webassemblyjs/ast": "^1.12.1", "@webassemblyjs/wasm-edit": "^1.12.1", "@webassemblyjs/wasm-parser": "^1.12.1", "acorn": "^8.7.1", - "acorn-import-assertions": "^1.9.0", + "acorn-import-attributes": "^1.9.5", "browserslist": "^4.21.10", "chrome-trace-event": "^1.0.2", - "enhanced-resolve": "^5.16.0", + "enhanced-resolve": "^5.17.1", "es-module-lexer": "^1.2.1", "eslint-scope": "5.1.1", "events": "^3.2.0", @@ -12711,130 +12778,83 @@ } }, "node_modules/webpack-dev-middleware": { - "version": "5.3.4", - "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-5.3.4.tgz", - "integrity": "sha512-BVdTqhhs+0IfoeAf7EoH5WE+exCmqGerHfDM0IL096Px60Tq2Mn9MAbnaGUe6HiMa41KMCYF19gyzZmBcq/o4Q==", + "version": "7.4.2", + "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-7.4.2.tgz", + "integrity": "sha512-xOO8n6eggxnwYpy1NlzUKpvrjfJTvae5/D6WOK0S2LSo7vjmo5gCM1DbLUmFqrMTJP+W/0YZNctm7jasWvLuBA==", "dev": true, "dependencies": { "colorette": "^2.0.10", - "memfs": "^3.4.3", + "memfs": "^4.6.0", "mime-types": "^2.1.31", + "on-finished": "^2.4.1", "range-parser": "^1.2.1", "schema-utils": "^4.0.0" }, "engines": { - "node": ">= 12.13.0" + "node": ">= 18.12.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/webpack" }, "peerDependencies": { - "webpack": "^4.0.0 || ^5.0.0" - } - }, - "node_modules/webpack-dev-middleware/node_modules/ajv": { - "version": "8.12.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", - "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/webpack-dev-middleware/node_modules/ajv-keywords": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", - "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.3" - }, - "peerDependencies": { - "ajv": "^8.8.2" - } - }, - "node_modules/webpack-dev-middleware/node_modules/json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "dev": true - }, - "node_modules/webpack-dev-middleware/node_modules/schema-utils": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.2.0.tgz", - "integrity": "sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw==", - "dev": true, - "dependencies": { - "@types/json-schema": "^7.0.9", - "ajv": "^8.9.0", - "ajv-formats": "^2.1.1", - "ajv-keywords": "^5.1.0" - }, - "engines": { - "node": ">= 12.13.0" + "webpack": "^5.0.0" }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" + "peerDependenciesMeta": { + "webpack": { + "optional": true + } } }, "node_modules/webpack-dev-server": { - "version": "4.13.1", - "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-4.13.1.tgz", - "integrity": "sha512-5tWg00bnWbYgkN+pd5yISQKDejRBYGEw15RaEEslH+zdbNDxxaZvEAO2WulaSaFKb5n3YG8JXsGaDsut1D0xdA==", - "dev": true, - "dependencies": { - "@types/bonjour": "^3.5.9", - "@types/connect-history-api-fallback": "^1.3.5", - "@types/express": "^4.17.13", - "@types/serve-index": "^1.9.1", - "@types/serve-static": "^1.13.10", - "@types/sockjs": "^0.3.33", - "@types/ws": "^8.5.1", + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-5.0.4.tgz", + "integrity": "sha512-dljXhUgx3HqKP2d8J/fUMvhxGhzjeNVarDLcbO/EWMSgRizDkxHQDZQaLFL5VJY9tRBj2Gz+rvCEYYvhbqPHNA==", + "dev": true, + "dependencies": { + "@types/bonjour": "^3.5.13", + "@types/connect-history-api-fallback": "^1.5.4", + "@types/express": "^4.17.21", + "@types/serve-index": "^1.9.4", + "@types/serve-static": "^1.15.5", + "@types/sockjs": "^0.3.36", + "@types/ws": "^8.5.10", "ansi-html-community": "^0.0.8", - "bonjour-service": "^1.0.11", - "chokidar": "^3.5.3", + "bonjour-service": "^1.2.1", + "chokidar": "^3.6.0", "colorette": "^2.0.10", "compression": "^1.7.4", "connect-history-api-fallback": "^2.0.0", "default-gateway": "^6.0.3", "express": "^4.17.3", "graceful-fs": "^4.2.6", - "html-entities": "^2.3.2", + "html-entities": "^2.4.0", "http-proxy-middleware": "^2.0.3", - "ipaddr.js": "^2.0.1", - "launch-editor": "^2.6.0", - "open": "^8.0.9", - "p-retry": "^4.5.0", - "rimraf": "^3.0.2", - "schema-utils": "^4.0.0", - "selfsigned": "^2.1.1", + "ipaddr.js": "^2.1.0", + "launch-editor": "^2.6.1", + "open": "^10.0.3", + "p-retry": "^6.2.0", + "rimraf": "^5.0.5", + "schema-utils": "^4.2.0", + "selfsigned": "^2.4.1", "serve-index": "^1.9.1", "sockjs": "^0.3.24", "spdy": "^4.0.2", - "webpack-dev-middleware": "^5.3.1", - "ws": "^8.13.0" + "webpack-dev-middleware": "^7.1.0", + "ws": "^8.16.0" }, "bin": { "webpack-dev-server": "bin/webpack-dev-server.js" }, "engines": { - "node": ">= 12.13.0" + "node": ">= 18.12.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/webpack" }, "peerDependencies": { - "webpack": "^4.37.0 || ^5.0.0" + "webpack": "^5.0.0" }, "peerDependenciesMeta": { "webpack": { @@ -12845,72 +12865,123 @@ } } }, - "node_modules/webpack-dev-server/node_modules/ajv": { - "version": "8.12.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", - "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", + "node_modules/webpack-dev-server/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", "dev": true, "dependencies": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" + "balanced-match": "^1.0.0" + } + }, + "node_modules/webpack-dev-server/node_modules/define-lazy-prop": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-3.0.0.tgz", + "integrity": "sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==", + "dev": true, + "engines": { + "node": ">=12" }, "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/webpack-dev-server/node_modules/ajv-keywords": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", - "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", + "node_modules/webpack-dev-server/node_modules/glob": { + "version": "10.4.5", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", + "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", "dev": true, "dependencies": { - "fast-deep-equal": "^3.1.3" + "foreground-child": "^3.1.0", + "jackspeak": "^3.1.2", + "minimatch": "^9.0.4", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^1.11.1" }, - "peerDependencies": { - "ajv": "^8.8.2" + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, "node_modules/webpack-dev-server/node_modules/ipaddr.js": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.1.0.tgz", - "integrity": "sha512-LlbxQ7xKzfBusov6UMi4MFpEg0m+mAm9xyNGEduwXMEDuf4WfzB/RZwMVYEd7IKGvh4IUkEXYxtAVu9T3OelJQ==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.2.0.tgz", + "integrity": "sha512-Ag3wB2o37wslZS19hZqorUnrnzSkpOVy+IiiDEiTqNubEYpYuHWIf6K4psgN2ZWKExS4xhVCrRVfb/wfW8fWJA==", "dev": true, "engines": { "node": ">= 10" } }, - "node_modules/webpack-dev-server/node_modules/json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "dev": true + "node_modules/webpack-dev-server/node_modules/is-wsl": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-3.1.0.tgz", + "integrity": "sha512-UcVfVfaK4Sc4m7X3dUSoHoozQGBEFeDC+zVo06t98xe8CzHSZZBekNXH+tu0NalHolcJ/QAGqS46Hef7QXBIMw==", + "dev": true, + "dependencies": { + "is-inside-container": "^1.0.0" + }, + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } }, - "node_modules/webpack-dev-server/node_modules/schema-utils": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.2.0.tgz", - "integrity": "sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw==", + "node_modules/webpack-dev-server/node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", "dev": true, "dependencies": { - "@types/json-schema": "^7.0.9", - "ajv": "^8.9.0", - "ajv-formats": "^2.1.1", - "ajv-keywords": "^5.1.0" + "brace-expansion": "^2.0.1" }, "engines": { - "node": ">= 12.13.0" + "node": ">=16 || 14 >=14.17" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/webpack-dev-server/node_modules/open": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/open/-/open-10.1.0.tgz", + "integrity": "sha512-mnkeQ1qP5Ue2wd+aivTD3NHd/lZ96Lu0jgf0pwktLPtx6cTZiH7tyeGRRHs0zX0rbrahXPnXlUnbeXyaBBuIaw==", + "dev": true, + "dependencies": { + "default-browser": "^5.2.1", + "define-lazy-prop": "^3.0.0", + "is-inside-container": "^1.0.0", + "is-wsl": "^3.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/webpack-dev-server/node_modules/rimraf": { + "version": "5.0.10", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-5.0.10.tgz", + "integrity": "sha512-l0OE8wL34P4nJH/H2ffoaniAokM2qSmrtXHmlpvYr5AVVX8msAyW0l8NVJFDxlSK4u3Uh/f41cQheDVdnYijwQ==", + "dev": true, + "dependencies": { + "glob": "^10.3.7" + }, + "bin": { + "rimraf": "dist/esm/bin.mjs" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, "node_modules/webpack-dev-server/node_modules/ws": { - "version": "8.16.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.16.0.tgz", - "integrity": "sha512-HS0c//TP7Ina87TfiPUz1rQzMhHrl/SG2guqRcTOIUYD2q8uhUdNHZYJUaQ8aTGPzCh+c6oawMKW35nFl1dxyQ==", + "version": "8.18.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.0.tgz", + "integrity": "sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==", "dev": true, "engines": { "node": ">=10.0.0" @@ -12951,6 +13022,28 @@ "node": ">=10.13.0" } }, + "node_modules/webpack/node_modules/eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "dev": true, + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/webpack/node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, "node_modules/webpack/node_modules/schema-utils": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", @@ -13034,13 +13127,13 @@ } }, "node_modules/which-builtin-type": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/which-builtin-type/-/which-builtin-type-1.1.3.tgz", - "integrity": "sha512-YmjsSMDBYsM1CaFiayOVT06+KJeXf0o5M/CAd4o1lTadFAtacTUM49zoYxr/oroopFDfhvN6iEcBxUyc3gvKmw==", + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/which-builtin-type/-/which-builtin-type-1.1.4.tgz", + "integrity": "sha512-bppkmBSsHFmIMSl8BO9TbsyzsvGjVoppt8xUiGzwiu/bhDCGxnpOKCxgqj6GuyHE0mINMDecBFPlOm2hzY084w==", "dev": true, "dependencies": { - "function.prototype.name": "^1.1.5", - "has-tostringtag": "^1.0.0", + "function.prototype.name": "^1.1.6", + "has-tostringtag": "^1.0.2", "is-async-function": "^2.0.0", "is-date-object": "^1.0.5", "is-finalizationregistry": "^1.0.2", @@ -13049,8 +13142,8 @@ "is-weakref": "^1.0.2", "isarray": "^2.0.5", "which-boxed-primitive": "^1.0.2", - "which-collection": "^1.0.1", - "which-typed-array": "^1.1.9" + "which-collection": "^1.0.2", + "which-typed-array": "^1.1.15" }, "engines": { "node": ">= 0.4" @@ -13108,6 +13201,15 @@ "integrity": "sha512-IHpzORub7kYlb8A43Iig3reOvlcBJGX9gZ0WycHhghHtA65X0LYnMRuJs+aH1abVnMJztQkvQNlltnbPi5aGIA==", "dev": true }, + "node_modules/word-wrap": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", + "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/wordwrap": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", @@ -13130,6 +13232,57 @@ "node": ">=8" } }, + "node_modules/wrap-ansi-cjs": { + "name": "wrap-ansi", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, "node_modules/wrap-ansi/node_modules/ansi-styles": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", @@ -13173,9 +13326,9 @@ "dev": true }, "node_modules/ws": { - "version": "7.5.9", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz", - "integrity": "sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==", + "version": "7.5.10", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.10.tgz", + "integrity": "sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ==", "dev": true, "engines": { "node": ">=8.3.0" @@ -13232,9 +13385,9 @@ "dev": true }, "node_modules/yaml": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.4.1.tgz", - "integrity": "sha512-pIXzoImaqmfOrL7teGUBt/T7ZDnyeGBWyXQBvOVhLkWLN37GXv8NMLK406UY6dS51JfcQHsmcW5cJ441bHg6Lg==", + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.5.0.tgz", + "integrity": "sha512-2wWLbGbYDiSqqIKoPjar3MPgB94ErzCtrNE1FdqGuaO0pi2JGjmE8aW8TDZwzU7vuxcGRdL/4gPQwQ7hD5AMSw==", "dev": true, "peer": true, "bin": { @@ -13272,6 +13425,18 @@ "engines": { "node": ">=12" } + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } } } } diff --git a/Samples/auth/Outlook-Add-in-SSO-NAA/package.json b/Samples/auth/Outlook-Add-in-SSO-NAA/package.json index 3cff98d6c..72e3653ef 100644 --- a/Samples/auth/Outlook-Add-in-SSO-NAA/package.json +++ b/Samples/auth/Outlook-Add-in-SSO-NAA/package.json @@ -28,36 +28,36 @@ "watch": "webpack --mode development --watch" }, "dependencies": { - "@azure/msal-browser": "^3.15.0", - "core-js": "^3.9.1", - "regenerator-runtime": "^0.13.7" + "@azure/msal-browser": "^3.24.0", + "core-js": "^3.38.1", + "regenerator-runtime": "^0.14.1" }, "devDependencies": { - "@babel/core": "^7.13.10", - "@babel/preset-typescript": "^7.13.0", - "@types/office-js": "^1.0.256", - "@types/office-runtime": "^1.0.23", - "acorn": "^8.5.0", - "babel-loader": "^8.2.2", - "copy-webpack-plugin": "^9.0.1", - "eslint-plugin-office-addins": "^2.1.5", + "@babel/core": "^7.25.2", + "@babel/preset-typescript": "^7.24.7", + "@types/office-js-preview": "^1.0.499", + "@types/office-runtime": "^1.0.35", + "acorn": "^8.12.1", + "babel-loader": "^9.1.3", + "copy-webpack-plugin": "^12.0.2", + "eslint-plugin-office-addins": "^3.0.2", "file-loader": "^6.2.0", - "html-loader": "^4.1.0", - "html-webpack-plugin": "^5.5.0", - "office-addin-cli": "^1.5.5", - "office-addin-debugging": "^5.0.12", - "office-addin-dev-certs": "^1.11.4", - "office-addin-lint": "^2.2.5", - "office-addin-manifest": "^1.12.4", - "office-addin-prettier-config": "^1.2.0", + "html-loader": "^5.1.0", + "html-webpack-plugin": "^5.6.0", + "office-addin-cli": "^1.6.3", + "office-addin-debugging": "^5.1.4", + "office-addin-dev-certs": "^1.13.3", + "office-addin-lint": "^2.3.3", + "office-addin-manifest": "^1.13.4", + "office-addin-prettier-config": "^1.2.1", "os-browserify": "^0.3.0", "process": "^0.11.10", - "source-map-loader": "^3.0.0", - "ts-loader": "^9.4.1", - "typescript": "^4.3.5", - "webpack": "^5.76.3", - "webpack-cli": "^5.0.1", - "webpack-dev-server": "4.13.1" + "source-map-loader": "^5.0.0", + "ts-loader": "^9.5.1", + "typescript": "^5.5.4", + "webpack": "^5.94.0", + "webpack-cli": "^5.1.4", + "webpack-dev-server": "^5.0.4" }, "prettier": "office-addin-prettier-config", "browserslist": [ diff --git a/Samples/auth/Outlook-Add-in-SSO-NAA/src/taskpane/authConfig.ts b/Samples/auth/Outlook-Add-in-SSO-NAA/src/taskpane/authConfig.ts index 37fe0ec17..2358df712 100644 --- a/Samples/auth/Outlook-Add-in-SSO-NAA/src/taskpane/authConfig.ts +++ b/Samples/auth/Outlook-Add-in-SSO-NAA/src/taskpane/authConfig.ts @@ -3,97 +3,70 @@ /* This file provides MSAL auth configuration to get access token through nested app authentication. */ -/* global console, Office */ +/* global Office, console, document*/ import { - type AccountInfo, + BrowserAuthError, createNestablePublicClientApplication, type IPublicClientApplication, - Configuration, - LogLevel, } from "@azure/msal-browser"; +import { msalConfig } from "./msalconfig"; +import { createLocalUrl } from "./util"; +import { getTokenRequest } from "./msalcommon"; -export { AccountManager }; +export type AuthDialogResult = { + accessToken?: string; + error?: string; +}; -interface AuthContext { - loginHint: string; - userPrincipalName: string; - userObjectId: string; - tenantId: string; -} - -const applicationId = "Enter_the_Application_Id_Here"; - -function getMsalConfig(enableDebugLogging: boolean) { - const msalConfig: Configuration = { - auth: { - clientId: applicationId, - authority: "https://login.microsoftonline.com/common", - }, - system: {}, - }; - if (enableDebugLogging) { - msalConfig.system.loggerOptions = { - logLevel: LogLevel.Verbose, - loggerCallback: (level: LogLevel, message: string) => { - switch (level) { - case LogLevel.Error: - console.error(message); - return; - case LogLevel.Info: - console.info(message); - return; - case LogLevel.Verbose: - console.debug(message); - return; - case LogLevel.Warning: - console.warn(message); - return; - } - }, - piiLoggingEnabled: true, - }; - } - return msalConfig; -} +type DialogEventMessage = { message: string; origin: string | undefined }; +type DialogEventError = { error: number }; +type DialogEventArg = DialogEventMessage | DialogEventError; // Encapsulate functions for getting user account and token information. -class AccountManager { +export class AccountManager { private pca: IPublicClientApplication | undefined = undefined; - private account: AccountInfo | undefined = undefined; - private loginHint: string | undefined = undefined; + private _dialogApiResult: Promise | null = null; + private _usingFallbackDialog = false; + + private getSignOutButton() { + return document.getElementById("signOutButton"); + } + + private setSignOutButtonVisibility(isVisible: boolean) { + const signOutButton = this.getSignOutButton(); + if (signOutButton) { + signOutButton.style.visibility = isVisible ? "visible" : "hidden"; + } + } + + private isNestedAppAuthSupported() { + return Office.context.requirements.isSetSupported("NestedAppAuth", "1.1"); + } // Initialize MSAL public client application. async initialize() { + // Make sure office.js is initialized + await Office.onReady(); + // If auth is not working, enable debug logging to help diagnose. - this.pca = await createNestablePublicClientApplication(getMsalConfig(false)); + this.pca = await createNestablePublicClientApplication(msalConfig); - // Initialize account by matching account known by Outlook with MSAL.js - try { - const authContext: AuthContext = await Office.auth.getAuthContext(); - const username = authContext.userPrincipalName; - const tenantId = authContext.tenantId; - const localAccountId = authContext.userObjectId; - this.loginHint = authContext.loginHint || authContext.userPrincipalName; - const account = this.pca.getAccount({ - username, - localAccountId, - tenantId, - }); - if (account) { - this.account = account; - } - } catch { - // Intentionally empty catch block. + // If Office does not support Nested App Auth provide a sign-out button since the user selects account + if (!this.isNestedAppAuthSupported() && this.pca.getActiveAccount()) { + this.setSignOutButtonVisibility(true); } + this.getSignOutButton()?.addEventListener("click", () => this.signOut()); + } - if (!this.loginHint) { - const accountType = Office.context.mailbox.userProfile.accountType; - this.loginHint = - accountType === "office365" || accountType === "outlookCom" - ? Office.context.mailbox.userProfile.emailAddress - : ""; + private async signOut() { + if (this._usingFallbackDialog) { + await this.signOutWithDialogApi(); + } else { + await this.pca?.logoutPopup(); } + + this.setSignOutButtonVisibility(false); } /** @@ -101,57 +74,97 @@ class AccountManager { * @param scopes the minimum scopes needed. * @returns An access token. */ - async ssoGetToken(scopes: string[]) { - const userAccount = await this.ssoGetUserIdentity(scopes); - return userAccount.accessToken; - } + async ssoGetAccessToken(scopes: string[]) { + if (this._dialogApiResult) { + return this._dialogApiResult; + } - /** - * - * Uses MSAL and nested app authentication to get the user account from Office SSO. - * This demonstrates how to work with user identity from the token. - * - * @param scopes The minimum scopes needed. - * @returns The user account data (including identity). - */ - async ssoGetUserIdentity(scopes: string[]) { if (this.pca === undefined) { throw new Error("AccountManager is not initialized!"); } - // Specify minimum scopes needed for the access token. - const tokenRequest = { - scopes: scopes, - loginHint: this.loginHint, - account: this.account, - }; - try { console.log("Trying to acquire token silently..."); - - //acquireTokenSilent requires an active account. Check if one exists, otherwise use ssoSilent. - const authResult = this.account - ? await this.pca.acquireTokenSilent(tokenRequest) - : await this.pca.ssoSilent(tokenRequest); - this.account = authResult.account; - + const authResult = await this.pca.acquireTokenSilent(getTokenRequest(scopes, false)); console.log("Acquired token silently."); - return authResult; + return authResult.accessToken; } catch (error) { - console.log(`Unable to acquire token silently: ${error}`); + console.warn(`Unable to acquire token silently: ${error}`); } // Acquire token silent failure. Send an interactive request via popup. try { console.log("Trying to acquire token interactively..."); - const authResult = await this.pca.acquireTokenPopup(tokenRequest); - this.account = authResult.account; + const selectAccount = this.pca.getActiveAccount() ? false : true; + const authResult = await this.pca.acquireTokenPopup(getTokenRequest(scopes, selectAccount)); console.log("Acquired token interactively."); - return authResult; + if (selectAccount) { + this.pca.setActiveAccount(authResult.account); + } + if (!this.isNestedAppAuthSupported()) { + this.setSignOutButtonVisibility(true); + } + return authResult.accessToken; } catch (popupError) { - // Acquire token interactive failure. - console.log(`Unable to acquire token interactively: ${popupError}`); - throw new Error(`Unable to acquire access token: ${popupError}`); + // Optional fallback if about:blank popup should not be shown + if (popupError instanceof BrowserAuthError && popupError.errorCode === "popup_window_error") { + const accessToken = await this.getTokenWithDialogApi(); + return accessToken; + } else { + // Acquire token interactive failure. + console.error(`Unable to acquire token interactively: ${popupError}`); + throw new Error(`Unable to acquire access token: ${popupError}`); + } } } + + /** + * Gets an access token by using the Office dialog API to handle authentication. Used for fallback scenario. + * @returns The access token. + */ + async getTokenWithDialogApi(): Promise { + this._dialogApiResult = new Promise((resolve, reject) => { + Office.context.ui.displayDialogAsync(createLocalUrl(`dialog.html`), { height: 60, width: 30 }, (result) => { + result.value.addEventHandler(Office.EventType.DialogEventReceived, (arg: DialogEventArg) => { + const errorArg = arg as DialogEventError; + if (errorArg.error == 12006) { + this._dialogApiResult = null; + reject("Dialog closed"); + } + }); + result.value.addEventHandler(Office.EventType.DialogMessageReceived, (arg: DialogEventArg) => { + const messageArg = arg as DialogEventMessage; + const parsedMessage = JSON.parse(messageArg.message); + result.value.close(); + + if (parsedMessage.error) { + reject(parsedMessage.error); + this._dialogApiResult = null; + } else { + resolve(parsedMessage.accessToken); + this.setSignOutButtonVisibility(true); + this._usingFallbackDialog = true; + } + }); + }); + }); + return this._dialogApiResult; + } + + signOutWithDialogApi(): Promise { + return new Promise((resolve) => { + Office.context.ui.displayDialogAsync( + createLocalUrl(`dialog.html?logout=1`), + { height: 60, width: 30 }, + (result) => { + result.value.addEventHandler(Office.EventType.DialogMessageReceived, () => { + this.setSignOutButtonVisibility(false); + this._dialogApiResult = null; + resolve(); + result.value.close(); + }); + } + ); + }); + } } diff --git a/Samples/auth/Outlook-Add-in-SSO-NAA/src/taskpane/button.css b/Samples/auth/Outlook-Add-in-SSO-NAA/src/taskpane/button.css index 19f06f441..fafe68f6a 100644 --- a/Samples/auth/Outlook-Add-in-SSO-NAA/src/taskpane/button.css +++ b/Samples/auth/Outlook-Add-in-SSO-NAA/src/taskpane/button.css @@ -3,118 +3,118 @@ * Button styles * */ - .Button { - color: #333333; - font-family: 'Segoe UI Regular WestEuropean', 'Segoe UI', Tahoma, Arial, sans-serif; - font-size: 14px; - font-weight: normal; - box-sizing: border-box; - margin: 0; - padding: 0; - box-shadow: none; - background-color: #f4f4f4; - border: 1px solid #f4f4f4; - cursor: pointer; - display: inline-block; - min-height: 32px; - min-width: 80px; - padding: 4px 20px 6px; +.Button { + color: #333333; + font-family: "Segoe UI Regular WestEuropean", "Segoe UI", Tahoma, Arial, sans-serif; + font-size: 14px; + font-weight: normal; + box-sizing: border-box; + margin: 5px; + padding: 0; + box-shadow: none; + background-color: #f4f4f4; + border: 1px solid #f4f4f4; + cursor: pointer; + display: inline-block; + min-height: 32px; + min-width: 80px; + padding: 4px 20px 6px; } .Button:hover { - background-color: #eaeaea; - border-color: #eaeaea; - outline: 1px solid transparent; + background-color: #eaeaea; + border-color: #eaeaea; + outline: 1px solid transparent; } .Button:hover .Button-label { - color: #000000; + color: #000000; } .Button:focus { - background-color: #eaeaea; - border-color: #0F6CBD; - outline: 1px solid transparent; + background-color: #eaeaea; + border-color: #0f6cbd; + outline: 1px solid transparent; } .Button:focus .Button-label { - color: #000000; + color: #000000; } .Button:active { - background-color: #0F6CBD; - border-color: #0F6CBD; + background-color: #0f6cbd; + border-color: #0f6cbd; } .Button:active .Button-label { - color: #ffffff; + color: #ffffff; } .Button:disabled, .Button.is-disabled { - background-color: #f4f4f4; - border-color: #f4f4f4; - cursor: default; + background-color: #f4f4f4; + border-color: #f4f4f4; + cursor: default; } - .Button:disabled .Button-label, - .Button.is-disabled .Button-label { - color: #a6a6a6; - } +.Button:disabled .Button-label, +.Button.is-disabled .Button-label { + color: #a6a6a6; +} - .Button:disabled:hover, - .Button:disabled:focus, - .Button.is-disabled:hover, - .Button.is-disabled:focus { - outline: 0; - } +.Button:disabled:hover, +.Button:disabled:focus, +.Button.is-disabled:hover, +.Button.is-disabled:focus { + outline: 0; +} .Button + .Button { - margin-left: 6px; + margin-left: 6px; } .Button-label { - color: #333333; - font-family: 'Segoe UI Semibold WestEuropean', 'Segoe UI Semibold', 'Segoe UI', Tahoma, Arial, sans-serif; - font-size: 14px; + color: #333333; + font-family: "Segoe UI Semibold WestEuropean", "Segoe UI Semibold", "Segoe UI", Tahoma, Arial, sans-serif; + font-size: 14px; } .Button-icon, .Button-description { - display: none; + display: none; } .Button.Button--primary { - background-color: #0F6CBD; - border-color: #0F6CBD; + background-color: #0f6cbd; + border-color: #0f6cbd; } .Button.Button--primary .Button-label { - color: #ffffff; + color: #ffffff; } .Button.Button--primary:hover { - background-color: #005a9e; - border-color: #005a9e; + background-color: #005a9e; + border-color: #005a9e; } .Button.Button--primary:focus { - background-color: #005a9e; - border-color: #004578; + background-color: #005a9e; + border-color: #004578; } .Button.Button--primary:active { - background-color: #0F6CBD; - border-color: #0F6CBD; + background-color: #0f6cbd; + border-color: #0f6cbd; } .Button.Button--primary:disabled, .Button.Button--primary.is-disabled { - background-color: #f4f4f4; - border-color: #f4f4f4; + background-color: #f4f4f4; + border-color: #f4f4f4; } .Button.Button--primary:disabled .Button-label, .Button.Button--primary.is-disabled .Button-label { - color: #a6a6a6; + color: #a6a6a6; } diff --git a/Samples/auth/Outlook-Add-in-SSO-NAA/src/taskpane/fallback/auth.html b/Samples/auth/Outlook-Add-in-SSO-NAA/src/taskpane/fallback/auth.html new file mode 100644 index 000000000..eb556cc62 --- /dev/null +++ b/Samples/auth/Outlook-Add-in-SSO-NAA/src/taskpane/fallback/auth.html @@ -0,0 +1,13 @@ + + + + + + + + + + Auth Page + + + diff --git a/Samples/auth/Outlook-Add-in-SSO-NAA/src/taskpane/fallback/dialog.html b/Samples/auth/Outlook-Add-in-SSO-NAA/src/taskpane/fallback/dialog.html new file mode 100644 index 000000000..2cc530346 --- /dev/null +++ b/Samples/auth/Outlook-Add-in-SSO-NAA/src/taskpane/fallback/dialog.html @@ -0,0 +1,17 @@ + + + + + + + + + + Dialog + + + + + + + diff --git a/Samples/auth/Outlook-Add-in-SSO-NAA/src/taskpane/fallback/fallbackauthdialog.ts b/Samples/auth/Outlook-Add-in-SSO-NAA/src/taskpane/fallback/fallbackauthdialog.ts new file mode 100644 index 000000000..0d478896d --- /dev/null +++ b/Samples/auth/Outlook-Add-in-SSO-NAA/src/taskpane/fallback/fallbackauthdialog.ts @@ -0,0 +1,76 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + +/* This file handls MSAL auth for the fallback dialog page. */ + +/* global Office, window, URLSearchParams */ + +import { + AuthenticationResult, + createStandardPublicClientApplication, + IPublicClientApplication, +} from "@azure/msal-browser"; +import { getTokenRequest } from "../msalcommon"; +import { createLocalUrl } from "../util"; +import { defaultScopes, msalConfig } from "../msalconfig"; +import type { AuthDialogResult } from "../authConfig"; + +// read querystring parameter +function getQueryParameter(param: string) { + const params = new URLSearchParams(window.location.search); + return params.get(param); +} + +async function sendDialogMessage(message: string) { + await Office.onReady(); + Office.context.ui.messageParent(message); +} +async function returnResult(publicClientApp: IPublicClientApplication, authResult: AuthenticationResult) { + publicClientApp.setActiveAccount(authResult.account); + + const authDialogResult: AuthDialogResult = { + accessToken: authResult.accessToken, + }; + + sendDialogMessage(JSON.stringify(authDialogResult)); +} + +export async function initializeMsal() { + // Use standard Public Client instead of nested because this is a fallback path when nested app authentication isn't available. + const publicClientApp = await createStandardPublicClientApplication(msalConfig); + try { + if (getQueryParameter("logout") === "1") { + await publicClientApp.logoutRedirect({ postLogoutRedirectUri: createLocalUrl("dialog.html?close=1") }); + return; + } else if (getQueryParameter("close") === "1") { + sendDialogMessage("close"); + return; + } + const result = await publicClientApp.handleRedirectPromise(); + + if (result) { + return returnResult(publicClientApp, result); + } + } catch (ex: any) { + const authDialogResult: AuthDialogResult = { + error: ex.name, + }; + sendDialogMessage(JSON.stringify(authDialogResult)); + return; + } + + try { + if (publicClientApp.getActiveAccount()) { + const result = await publicClientApp.acquireTokenSilent(getTokenRequest(defaultScopes, false)); + if (result) { + return returnResult(publicClientApp, result); + } + } + } catch { + /* empty */ + } + + publicClientApp.acquireTokenRedirect(getTokenRequest(defaultScopes, true, createLocalUrl("dialog.html"))); +} + +initializeMsal(); diff --git a/Samples/auth/Outlook-Add-in-SSO-NAA/src/taskpane/msalcommon.ts b/Samples/auth/Outlook-Add-in-SSO-NAA/src/taskpane/msalcommon.ts new file mode 100644 index 000000000..9cd2fc9b2 --- /dev/null +++ b/Samples/auth/Outlook-Add-in-SSO-NAA/src/taskpane/msalcommon.ts @@ -0,0 +1,40 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + +// This file provides common MSAL functions for use in the add-in project. + +import { + createNestablePublicClientApplication, + type IPublicClientApplication, + type RedirectRequest, +} from "@azure/msal-browser"; +import { msalConfig } from "./msalconfig"; + +/** + * Gets a token request for a given account context. + * @param accountContext The account context to get the token request for. + * @returns The token request. + */ +export function getTokenRequest(scopes: string[], selectAccount: boolean, redirectUri?: string): RedirectRequest { + let additionalProperties: Partial = {}; + if (selectAccount) { + additionalProperties = { prompt: "select_account" }; + } + if (redirectUri) { + additionalProperties.redirectUri = redirectUri; + } + return { scopes, ...additionalProperties }; +} + +let _publicClientApp: IPublicClientApplication; + +/** + * Returns the existing public client application. Returns a new public client application if it did not exist. + * @returns The nested public client application. + */ +export async function ensurePublicClient() { + if (!_publicClientApp) { + _publicClientApp = await createNestablePublicClientApplication(msalConfig); + } + return _publicClientApp; +} diff --git a/Samples/auth/Outlook-Add-in-SSO-NAA/src/taskpane/msalconfig.ts b/Samples/auth/Outlook-Add-in-SSO-NAA/src/taskpane/msalconfig.ts new file mode 100644 index 000000000..76e2356c1 --- /dev/null +++ b/Samples/auth/Outlook-Add-in-SSO-NAA/src/taskpane/msalconfig.ts @@ -0,0 +1,46 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + +// This file provides the default MSAL configuration for the add-in project. + +import { LogLevel } from "@azure/msal-browser"; +import { createLocalUrl } from "./util"; + +/* global console */ + +export const clientId = "Enter_the_Application_Id_Here"; +export const msalConfig = { + auth: { + clientId, + redirectUri: createLocalUrl("auth.html"), + postLogoutRedirectUri: createLocalUrl("auth.html"), + }, + cache: { + cacheLocation: "localStorage", + }, + system: { + loggerOptions: { + logLevel: LogLevel.Verbose, + loggerCallback: (level: LogLevel, message: string) => { + switch (level) { + case LogLevel.Error: + console.error(message); + return; + case LogLevel.Info: + console.info(message); + return; + case LogLevel.Verbose: + console.debug(message); + return; + case LogLevel.Warning: + console.warn(message); + return; + } + }, + piiLoggingEnabled: true, + }, + }, +}; + +// Default scopes to use in the fallback dialog. +export const defaultScopes = ["user.read", "files.read"]; diff --git a/Samples/auth/Outlook-Add-in-SSO-NAA/src/taskpane/msgraph-helper.ts b/Samples/auth/Outlook-Add-in-SSO-NAA/src/taskpane/msgraph-helper.ts index 0f7abedee..7c90d4b0e 100644 --- a/Samples/auth/Outlook-Add-in-SSO-NAA/src/taskpane/msgraph-helper.ts +++ b/Samples/auth/Outlook-Add-in-SSO-NAA/src/taskpane/msgraph-helper.ts @@ -29,4 +29,4 @@ export async function makeGraphRequest(accessToken: string, path: string, queryP } else { throw new Error(response.statusText); } -} \ No newline at end of file +} diff --git a/Samples/auth/Outlook-Add-in-SSO-NAA/src/taskpane/taskpane.html b/Samples/auth/Outlook-Add-in-SSO-NAA/src/taskpane/taskpane.html index 11bfab9a1..0f4ac5417 100644 --- a/Samples/auth/Outlook-Add-in-SSO-NAA/src/taskpane/taskpane.html +++ b/Samples/auth/Outlook-Add-in-SSO-NAA/src/taskpane/taskpane.html @@ -1,57 +1,72 @@ - + - - + - + Contoso Task Pane Add-in - + - + - +
- Contoso -

Welcome

+ Contoso +

Welcome

-

Please sideload your add-in to see app body.

+

+ Please + sideload + your add-in to see app body. +

-
-

SSO with nested app authentication

-

This add-in demonstrates how to connect to Microsoft Graph from an add-in.

- - -
- -
- +
+

SSO with nested app authentication

+

This add-in demonstrates how to connect to Microsoft Graph from an add-in.

-

+ +
+ +
+ + +

- - + diff --git a/Samples/auth/Outlook-Add-in-SSO-NAA/src/taskpane/taskpane.ts b/Samples/auth/Outlook-Add-in-SSO-NAA/src/taskpane/taskpane.ts index ad61897a2..e27eef14b 100644 --- a/Samples/auth/Outlook-Add-in-SSO-NAA/src/taskpane/taskpane.ts +++ b/Samples/auth/Outlook-Add-in-SSO-NAA/src/taskpane/taskpane.ts @@ -3,7 +3,7 @@ * See LICENSE in the project root for license information. */ -/* global document, Office */ +/* global document, Office, console */ import { AccountManager } from "./authConfig"; import { makeGraphRequest } from "./msgraph-helper"; @@ -16,34 +16,36 @@ const getUserFilesButton = document.getElementById("getUserFiles"); const userName = document.getElementById("userName"); const userEmail = document.getElementById("userEmail"); +// Initialize when Office is ready. Office.onReady((info) => { if (info.host === Office.HostType.Outlook) { if (sideloadMsg) sideloadMsg.style.display = "none"; if (appBody) appBody.style.display = "flex"; if (getUserDataButton) { - getUserDataButton.onclick = getUserData; + getUserDataButton.addEventListener("click", getUserData); } if (getUserFilesButton) { - getUserFilesButton.onclick = getUserFiles; + getUserFilesButton.addEventListener("click", getUserFiles); } - - // Initialize MSAL. MSAL need's a loginHint for when running in a browser. - + // Initialize MSAL. accountManager.initialize(); } }); +/** + * Writes a list of filenames into the email body. + * @param fileNameList The list of filenames. + */ async function writeFileNames(fileNameList: string[]) { const item = Office.context.mailbox.item; let fileNameBody: string = ""; - fileNameList.map((item) => fileNameBody += "
" + item); + fileNameList.map((fileName) => (fileNameBody += "
" + fileName)); - Office.context.mailbox.item.body.setAsync( - fileNameBody, - { + if (item) { + item.body.setAsync(fileNameBody, { coercionType: "html", - } - ); + }); + } } /** @@ -52,19 +54,19 @@ async function writeFileNames(fileNameList: string[]) { */ async function getUserData() { const userDataElement = document.getElementById("userData"); - const userAccount = await accountManager.ssoGetUserIdentity(["user.read"]); - const idTokenClaims = userAccount.idTokenClaims as { name?: string; preferred_username?: string }; + // Specify minimum scopes for the token needed. + const accessToken = await accountManager.ssoGetAccessToken(["user.read"]); - console.log(userAccount); + const response: { displayName: string; mail: string } = await makeGraphRequest(accessToken, "/me", ""); if (userDataElement) { userDataElement.style.visibility = "visible"; } if (userName) { - userName.innerText = idTokenClaims.name ?? ""; + userName.innerText = response.displayName ?? ""; } if (userEmail) { - userEmail.innerText = idTokenClaims.preferred_username ?? ""; + userEmail.innerText = response.mail ?? ""; } } @@ -87,7 +89,7 @@ async function getUserFiles() { */ async function getFileNames(count = 10) { // Specify minimum scopes for the token needed. - const accessToken = await accountManager.ssoGetToken(["Files.Read"]); + const accessToken = await accountManager.ssoGetAccessToken(["Files.Read"]); const response: { value: { name: string }[] } = await makeGraphRequest( accessToken, "/me/drive/root/children", @@ -96,4 +98,4 @@ async function getFileNames(count = 10) { const names = response.value.map((item: { name: string }) => item.name); return names; -} \ No newline at end of file +} diff --git a/Samples/auth/Outlook-Add-in-SSO-NAA/src/taskpane/util.ts b/Samples/auth/Outlook-Add-in-SSO-NAA/src/taskpane/util.ts new file mode 100644 index 000000000..e777e142b --- /dev/null +++ b/Samples/auth/Outlook-Add-in-SSO-NAA/src/taskpane/util.ts @@ -0,0 +1,13 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + +/* global window */ + +/** + * Constructs a local URL for the web page for the given path. + * @param path The path to construct a local URL for. + * @returns + */ +export function createLocalUrl(path: string) { + return `${window.location.origin}/${path}`; +} diff --git a/Samples/auth/Outlook-Add-in-SSO-NAA/webpack.config.js b/Samples/auth/Outlook-Add-in-SSO-NAA/webpack.config.js index 2c0d47144..4c3961c65 100644 --- a/Samples/auth/Outlook-Add-in-SSO-NAA/webpack.config.js +++ b/Samples/auth/Outlook-Add-in-SSO-NAA/webpack.config.js @@ -19,6 +19,7 @@ module.exports = async (env, options) => { entry: { polyfill: ["core-js/stable", "regenerator-runtime/runtime"], taskpane: ["./src/taskpane/taskpane.ts", "./src/taskpane/taskpane.html"], + dialog: ["./src/taskpane/fallback/fallbackauthdialog.ts"], }, output: { clean: true, @@ -58,6 +59,16 @@ module.exports = async (env, options) => { template: "./src/taskpane/taskpane.html", chunks: ["polyfill", "taskpane"], }), + new HtmlWebpackPlugin({ + filename: "auth.html", + template: "./src/taskpane/fallback/auth.html", + chunks: [], + }), + new HtmlWebpackPlugin({ + filename: "dialog.html", + template: "./src/taskpane/fallback/dialog.html", + chunks: ["dialog"], + }), new CopyWebpackPlugin({ patterns: [ { diff --git a/Samples/auth/Outlook-Add-in-SSO/AttachmentDemo-ASPNETCore/Views/Shared/_Layout.cshtml b/Samples/auth/Outlook-Add-in-SSO/AttachmentDemo-ASPNETCore/Views/Shared/_Layout.cshtml index 7bd4fd9ba..241974f3b 100644 --- a/Samples/auth/Outlook-Add-in-SSO/AttachmentDemo-ASPNETCore/Views/Shared/_Layout.cshtml +++ b/Samples/auth/Outlook-Add-in-SSO/AttachmentDemo-ASPNETCore/Views/Shared/_Layout.cshtml @@ -18,7 +18,7 @@ @* This office.js library holds the JavaScript API for Office.*@ - + @await RenderSectionAsync("Scripts", required: false) diff --git a/Samples/auth/Outlook-Add-in-SSO/AttachmentDemo-ASPNETCore/wwwroot/dialog.html b/Samples/auth/Outlook-Add-in-SSO/AttachmentDemo-ASPNETCore/wwwroot/dialog.html index e07ae0951..77dab8202 100644 --- a/Samples/auth/Outlook-Add-in-SSO/AttachmentDemo-ASPNETCore/wwwroot/dialog.html +++ b/Samples/auth/Outlook-Add-in-SSO/AttachmentDemo-ASPNETCore/wwwroot/dialog.html @@ -15,7 +15,7 @@ crossorigin="anonymous"> - + diff --git a/Samples/auth/Outlook-Event-SSO-NAA/package-lock.json b/Samples/auth/Outlook-Event-SSO-NAA/package-lock.json index 2863bf428..ff1b6f286 100644 --- a/Samples/auth/Outlook-Event-SSO-NAA/package-lock.json +++ b/Samples/auth/Outlook-Event-SSO-NAA/package-lock.json @@ -9,7 +9,7 @@ "version": "0.0.1", "license": "MIT", "dependencies": { - "@azure/msal-browser": "^3.15.0", + "@azure/msal-browser": "^3.26.1", "core-js": "^3.36.0", "regenerator-runtime": "^0.14.1" }, @@ -509,20 +509,30 @@ } }, "node_modules/@azure/msal-browser": { - "version": "3.20.0", - "resolved": "https://registry.npmjs.org/@azure/msal-browser/-/msal-browser-3.20.0.tgz", - "integrity": "sha512-ErsxbfCGIwdqD8jipqdxpfAGiUEQS7MWUe39Rjhl0ZVPsb1JEe9bZCe2+0g23HDH6DGyCAtnTNN9scPtievrMQ==", + "version": "3.26.1", + "resolved": "https://registry.npmjs.org/@azure/msal-browser/-/msal-browser-3.26.1.tgz", + "integrity": "sha512-y78sr9g61aCAH9fcLO1um+oHFXc1/5Ap88RIsUSuzkm0BHzFnN+PXGaQeuM1h5Qf5dTnWNOd6JqkskkMPAhh7Q==", "dependencies": { - "@azure/msal-common": "14.14.0" + "@azure/msal-common": "14.15.0" }, "engines": { "node": ">=0.8.0" } }, + "node_modules/@azure/msal-browser/node_modules/@azure/msal-common": { + "version": "14.15.0", + "resolved": "https://registry.npmjs.org/@azure/msal-common/-/msal-common-14.15.0.tgz", + "integrity": "sha512-ImAQHxmpMneJ/4S8BRFhjt1MZ3bppmpRPYYNyzeQPeFN288YKbb8TmmISQEbtfkQ1BPASvYZU5doIZOPBAqENQ==", + "engines": { + "node": ">=0.8.0" + } + }, "node_modules/@azure/msal-common": { "version": "14.14.0", "resolved": "https://registry.npmjs.org/@azure/msal-common/-/msal-common-14.14.0.tgz", "integrity": "sha512-OxcOk9H1/1fktHh6//VCORgSNJc2dCQObTm6JNmL824Z6iZSO6eFo/Bttxe0hETn9B+cr7gDouTQtsRq3YPuSQ==", + "dev": true, + "peer": true, "engines": { "node": ">=0.8.0" } diff --git a/Samples/auth/Outlook-Event-SSO-NAA/package.json b/Samples/auth/Outlook-Event-SSO-NAA/package.json index 44c209390..dd54f94ed 100644 --- a/Samples/auth/Outlook-Event-SSO-NAA/package.json +++ b/Samples/auth/Outlook-Event-SSO-NAA/package.json @@ -28,7 +28,7 @@ "watch": "webpack --mode development --watch" }, "dependencies": { - "@azure/msal-browser": "^3.15.0", + "@azure/msal-browser": "^3.26.1", "core-js": "^3.36.0", "regenerator-runtime": "^0.14.1" }, @@ -62,4 +62,4 @@ "last 2 versions", "ie 11" ] -} \ No newline at end of file +} diff --git a/Samples/auth/Outlook-Event-SSO-NAA/src/well-known/microsoft-officeaddins-allowed.json b/Samples/auth/Outlook-Event-SSO-NAA/src/well-known/microsoft-officeaddins-allowed.json index 98794c343..6394c1e90 100644 --- a/Samples/auth/Outlook-Event-SSO-NAA/src/well-known/microsoft-officeaddins-allowed.json +++ b/Samples/auth/Outlook-Event-SSO-NAA/src/well-known/microsoft-officeaddins-allowed.json @@ -1,6 +1,3 @@ { - "allowed": - [ - "https://localhost:3000/public/launchevent.js" - ] -} \ No newline at end of file + "allowed": ["https://localhost:3000/launchevent.js"] +} diff --git a/Samples/auth/Outlook-Event-SSO-NAA/webpack.config.js b/Samples/auth/Outlook-Event-SSO-NAA/webpack.config.js index 6e1072eff..1267f2461 100644 --- a/Samples/auth/Outlook-Event-SSO-NAA/webpack.config.js +++ b/Samples/auth/Outlook-Event-SSO-NAA/webpack.config.js @@ -32,14 +32,22 @@ module.exports = async (env, options) => { module: { rules: [ { - test: /\.js$/, + test: /\.m?js$/, // exclude: /node_modules/, // Exclude all node_modules except @azure include: [path.resolve(__dirname, "node_modules/@azure"), path.resolve(__dirname, "src")], - exclude: /node_modules/, use: { loader: "babel-loader", options: { - presets: ["@babel/preset-env"], + presets: [ + [ + "@babel/preset-env", + { + targets: { + browsers: ["since 2015"], // Create a bundle that is compatible with loading in older versions of Office clients. + }, + }, + ], + ], }, }, }, diff --git a/Samples/blazor-add-in/excel-blazor-add-in/excel-blazor-add-in/wwwroot/index.html b/Samples/blazor-add-in/excel-blazor-add-in/excel-blazor-add-in/wwwroot/index.html index b0b1867e6..17b572e70 100644 --- a/Samples/blazor-add-in/excel-blazor-add-in/excel-blazor-add-in/wwwroot/index.html +++ b/Samples/blazor-add-in/excel-blazor-add-in/excel-blazor-add-in/wwwroot/index.html @@ -19,7 +19,7 @@ Office JavaScript API - replace lib/1 with lib/beta for preview options --> - + diff --git a/Samples/blazor-add-in/word-blazor-add-in/word-blazor-add-in/wwwroot/index.html b/Samples/blazor-add-in/word-blazor-add-in/word-blazor-add-in/wwwroot/index.html index 2295e4f4f..6391bc180 100644 --- a/Samples/blazor-add-in/word-blazor-add-in/word-blazor-add-in/wwwroot/index.html +++ b/Samples/blazor-add-in/word-blazor-add-in/word-blazor-add-in/wwwroot/index.html @@ -19,7 +19,7 @@ Office JavaScript API - replace lib/1 with lib/beta for preview options --> - + diff --git a/Samples/excel-create-worksheet-from-web-site/WebApplication/package-lock.json b/Samples/excel-create-worksheet-from-web-site/WebApplication/package-lock.json index 7163ec460..c0c568941 100644 --- a/Samples/excel-create-worksheet-from-web-site/WebApplication/package-lock.json +++ b/Samples/excel-create-worksheet-from-web-site/WebApplication/package-lock.json @@ -446,13 +446,24 @@ "node": ">=14.0.0" } }, + "node_modules/@azure/identity/node_modules/@azure/msal-common": { + "version": "14.14.0", + "resolved": "https://registry.npmjs.org/@azure/msal-common/-/msal-common-14.14.0.tgz", + "integrity": "sha512-OxcOk9H1/1fktHh6//VCORgSNJc2dCQObTm6JNmL824Z6iZSO6eFo/Bttxe0hETn9B+cr7gDouTQtsRq3YPuSQ==", + "license": "MIT", + "peer": true, + "engines": { + "node": ">=0.8.0" + } + }, "node_modules/@azure/identity/node_modules/@azure/msal-node": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/@azure/msal-node/-/msal-node-2.7.0.tgz", - "integrity": "sha512-wXD8LkUvHICeSWZydqg6o8Yvv+grlBEcmLGu+QEI4FcwFendbTEZrlSygnAXXSOCVaGAirWLchca35qrgpO6Jw==", + "version": "2.12.0", + "resolved": "https://registry.npmjs.org/@azure/msal-node/-/msal-node-2.12.0.tgz", + "integrity": "sha512-jmk5Im5KujRA2AcyCb0awA3buV8niSrwXZs+NBJWIvxOz76RvNlusGIqi43A0h45BPUy93Qb+CPdpJn82NFTIg==", + "license": "MIT", "peer": true, "dependencies": { - "@azure/msal-common": "14.9.0", + "@azure/msal-common": "14.14.0", "jsonwebtoken": "^9.0.0", "uuid": "^8.3.0" }, @@ -1891,9 +1902,10 @@ } }, "node_modules/axios": { - "version": "1.6.8", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.6.8.tgz", - "integrity": "sha512-v/ZHtJDU39mDpyBoFVkETcd/uNdxrWRrg3bKpOKzXFA6Bvqopts6ALSMU3y6ijYxbw2B+wPrIv46egTzJXCLGQ==", + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.7.3.tgz", + "integrity": "sha512-Ar7ND9pU99eJ9GpoGQKhKf58GpUOgnzuaB7ueNQ5BMi0p+LZ5oaEnfF999fAArcTIBwXTCHAmGcHOZJaWPq9Nw==", + "license": "MIT", "dependencies": { "follow-redirects": "^1.15.6", "form-data": "^4.0.0", @@ -5842,9 +5854,10 @@ "peer": true }, "node_modules/ws": { - "version": "7.5.5", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.5.tgz", - "integrity": "sha512-BAkMFcAzl8as1G/hArkxOxq3G7pjUqQ3gzYbLL0/5zNkph70e+lCoxBGnm6AW1+/aiNeV4fnKqZ8m4GZewmH2w==", + "version": "7.5.10", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.10.tgz", + "integrity": "sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ==", + "license": "MIT", "engines": { "node": ">=8.3.0" }, @@ -6264,13 +6277,19 @@ "tslib": "^2.2.0" }, "dependencies": { + "@azure/msal-common": { + "version": "14.14.0", + "resolved": "https://registry.npmjs.org/@azure/msal-common/-/msal-common-14.14.0.tgz", + "integrity": "sha512-OxcOk9H1/1fktHh6//VCORgSNJc2dCQObTm6JNmL824Z6iZSO6eFo/Bttxe0hETn9B+cr7gDouTQtsRq3YPuSQ==", + "peer": true + }, "@azure/msal-node": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/@azure/msal-node/-/msal-node-2.7.0.tgz", - "integrity": "sha512-wXD8LkUvHICeSWZydqg6o8Yvv+grlBEcmLGu+QEI4FcwFendbTEZrlSygnAXXSOCVaGAirWLchca35qrgpO6Jw==", + "version": "2.12.0", + "resolved": "https://registry.npmjs.org/@azure/msal-node/-/msal-node-2.12.0.tgz", + "integrity": "sha512-jmk5Im5KujRA2AcyCb0awA3buV8niSrwXZs+NBJWIvxOz76RvNlusGIqi43A0h45BPUy93Qb+CPdpJn82NFTIg==", "peer": true, "requires": { - "@azure/msal-common": "14.9.0", + "@azure/msal-common": "14.14.0", "jsonwebtoken": "^9.0.0", "uuid": "^8.3.0" } @@ -7437,9 +7456,9 @@ "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==" }, "axios": { - "version": "1.6.8", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.6.8.tgz", - "integrity": "sha512-v/ZHtJDU39mDpyBoFVkETcd/uNdxrWRrg3bKpOKzXFA6Bvqopts6ALSMU3y6ijYxbw2B+wPrIv46egTzJXCLGQ==", + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.7.3.tgz", + "integrity": "sha512-Ar7ND9pU99eJ9GpoGQKhKf58GpUOgnzuaB7ueNQ5BMi0p+LZ5oaEnfF999fAArcTIBwXTCHAmGcHOZJaWPq9Nw==", "requires": { "follow-redirects": "^1.15.6", "form-data": "^4.0.0", @@ -10465,9 +10484,9 @@ "peer": true }, "ws": { - "version": "7.5.5", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.5.tgz", - "integrity": "sha512-BAkMFcAzl8as1G/hArkxOxq3G7pjUqQ3gzYbLL0/5zNkph70e+lCoxBGnm6AW1+/aiNeV4fnKqZ8m4GZewmH2w==", + "version": "7.5.10", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.10.tgz", + "integrity": "sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ==", "requires": {} }, "xml2js": { diff --git a/Samples/excel-data-types-explorer/package-lock.json b/Samples/excel-data-types-explorer/package-lock.json index d2d82b8c7..cd0b6ba0c 100644 --- a/Samples/excel-data-types-explorer/package-lock.json +++ b/Samples/excel-data-types-explorer/package-lock.json @@ -134,17 +134,17 @@ } }, "node_modules/@apidevtools/swagger-parser/node_modules/ajv": { - "version": "8.16.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.16.0.tgz", - "integrity": "sha512-F0twR8U1ZU67JIEtekUcLkXkoO5mMMmgGD8sK/xUFzJ805jxHQl92hImFAqqXMyMYjSPOyUPAwHYhB72g5sTXw==", + "version": "8.17.1", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", + "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", "dev": true, "license": "MIT", "peer": true, "dependencies": { "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.4.1" + "require-from-string": "^2.0.2" }, "funding": { "type": "github", @@ -409,9 +409,9 @@ } }, "node_modules/@azure/core-rest-pipeline": { - "version": "1.16.1", - "resolved": "https://registry.npmjs.org/@azure/core-rest-pipeline/-/core-rest-pipeline-1.16.1.tgz", - "integrity": "sha512-ExPSbgjwCoht6kB7B4MeZoBAxcQSIl29r/bPeazZJx50ej4JJCByimLOrZoIsurISNyJQQHf30b3JfqC3Hb88A==", + "version": "1.16.3", + "resolved": "https://registry.npmjs.org/@azure/core-rest-pipeline/-/core-rest-pipeline-1.16.3.tgz", + "integrity": "sha512-VxLk4AHLyqcHsfKe4MZ6IQ+D+ShuByy+RfStKfSjxJoL3WBWq17VNmrz8aT8etKzqc2nAeIyLxScjpzsS4fz8w==", "dev": true, "license": "MIT", "peer": true, @@ -458,9 +458,9 @@ } }, "node_modules/@azure/core-util": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@azure/core-util/-/core-util-1.9.0.tgz", - "integrity": "sha512-AfalUQ1ZppaKuxPPMsFEUdX6GZPB3d9paR9d/TTL7Ow2De8cJaC7ibi7kWVlFAVPCYo31OcnGymc0R89DX8Oaw==", + "version": "1.9.2", + "resolved": "https://registry.npmjs.org/@azure/core-util/-/core-util-1.9.2.tgz", + "integrity": "sha512-l1Qrqhi4x1aekkV+OlcqsJa4AnAkj5p0JV8omgwjaV9OAbP41lvrMvs+CptfetKkeEaGRGSzby7sjPZEX7+kkQ==", "dev": true, "license": "MIT", "peer": true, @@ -487,9 +487,9 @@ } }, "node_modules/@azure/core-xml": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/@azure/core-xml/-/core-xml-1.4.2.tgz", - "integrity": "sha512-CW3MZhApe/S4iikbYKE7s83fjDBPIr2kpidX+hlGRwh7N4o1nIpQ/PfJTeioqhfqdMvRtheEl+ft64fyTaLNaA==", + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/@azure/core-xml/-/core-xml-1.4.3.tgz", + "integrity": "sha512-D6G7FEmDiTctPKuWegX2WTrS1enKZwqYwdKTO6ZN6JMigcCehlT0/CYl+zWpI9vQ9frwwp7GQT3/owaEXgnOsA==", "dev": true, "license": "MIT", "peer": true, @@ -502,9 +502,9 @@ } }, "node_modules/@azure/identity": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/@azure/identity/-/identity-4.3.0.tgz", - "integrity": "sha512-LHZ58/RsIpIWa4hrrE2YuJ/vzG1Jv9f774RfTTAVDZDriubvJ0/S5u4pnw4akJDlS0TiJb6VMphmVUFsWmgodQ==", + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/@azure/identity/-/identity-4.4.1.tgz", + "integrity": "sha512-DwnG4cKFEM7S3T+9u05NstXU/HN0dk45kPOinUyNKsn5VWwpXd9sbPKEg6kgJzGbm1lMuhx9o31PVbCtM5sfBA==", "dev": true, "license": "MIT", "peer": true, @@ -516,7 +516,7 @@ "@azure/core-tracing": "^1.0.0", "@azure/core-util": "^1.3.0", "@azure/logger": "^1.0.0", - "@azure/msal-browser": "^3.11.1", + "@azure/msal-browser": "^3.14.0", "@azure/msal-node": "^2.9.2", "events": "^3.0.0", "jws": "^4.0.0", @@ -529,9 +529,9 @@ } }, "node_modules/@azure/logger": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@azure/logger/-/logger-1.1.2.tgz", - "integrity": "sha512-l170uE7bsKpIU6B/giRc9i4NI0Mj+tANMMMxf7Zi/5cKzEqPayP7+X1WPrG7e+91JgY8N+7K7nF2WOi7iVhXvg==", + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/@azure/logger/-/logger-1.1.4.tgz", + "integrity": "sha512-4IXXzcCdLdlXuCG+8UKEwLA1T1NHqUfanhXYHiQTn+6sfWCZXduqbtXDGceg3Ce5QxTGo7EqmbV6Bi+aqKuClQ==", "dev": true, "license": "MIT", "peer": true, @@ -543,23 +543,23 @@ } }, "node_modules/@azure/msal-browser": { - "version": "3.17.0", - "resolved": "https://registry.npmjs.org/@azure/msal-browser/-/msal-browser-3.17.0.tgz", - "integrity": "sha512-csccKXmW2z7EkZ0I3yAoW/offQt+JECdTIV/KrnRoZyM7wCSsQWODpwod8ZhYy7iOyamcHApR9uCh0oD1M+0/A==", + "version": "3.20.0", + "resolved": "https://registry.npmjs.org/@azure/msal-browser/-/msal-browser-3.20.0.tgz", + "integrity": "sha512-ErsxbfCGIwdqD8jipqdxpfAGiUEQS7MWUe39Rjhl0ZVPsb1JEe9bZCe2+0g23HDH6DGyCAtnTNN9scPtievrMQ==", "dev": true, "license": "MIT", "peer": true, "dependencies": { - "@azure/msal-common": "14.12.0" + "@azure/msal-common": "14.14.0" }, "engines": { "node": ">=0.8.0" } }, "node_modules/@azure/msal-common": { - "version": "14.12.0", - "resolved": "https://registry.npmjs.org/@azure/msal-common/-/msal-common-14.12.0.tgz", - "integrity": "sha512-IDDXmzfdwmDkv4SSmMEyAniJf6fDu3FJ7ncOjlxkDuT85uSnLEhZi3fGZpoR7T4XZpOMx9teM9GXBgrfJgyeBw==", + "version": "14.14.0", + "resolved": "https://registry.npmjs.org/@azure/msal-common/-/msal-common-14.14.0.tgz", + "integrity": "sha512-OxcOk9H1/1fktHh6//VCORgSNJc2dCQObTm6JNmL824Z6iZSO6eFo/Bttxe0hETn9B+cr7gDouTQtsRq3YPuSQ==", "dev": true, "license": "MIT", "peer": true, @@ -568,14 +568,14 @@ } }, "node_modules/@azure/msal-node": { - "version": "2.9.2", - "resolved": "https://registry.npmjs.org/@azure/msal-node/-/msal-node-2.9.2.tgz", - "integrity": "sha512-8tvi6Cos3m+0KmRbPjgkySXi+UQU/QiuVRFnrxIwt5xZlEEFa69O04RTaNESGgImyBBlYbo2mfE8/U8Bbdk1WQ==", + "version": "2.12.0", + "resolved": "https://registry.npmjs.org/@azure/msal-node/-/msal-node-2.12.0.tgz", + "integrity": "sha512-jmk5Im5KujRA2AcyCb0awA3buV8niSrwXZs+NBJWIvxOz76RvNlusGIqi43A0h45BPUy93Qb+CPdpJn82NFTIg==", "dev": true, "license": "MIT", "peer": true, "dependencies": { - "@azure/msal-common": "14.12.0", + "@azure/msal-common": "14.14.0", "jsonwebtoken": "^9.0.0", "uuid": "^8.3.0" }, @@ -584,9 +584,9 @@ } }, "node_modules/@azure/storage-blob": { - "version": "12.23.0", - "resolved": "https://registry.npmjs.org/@azure/storage-blob/-/storage-blob-12.23.0.tgz", - "integrity": "sha512-c1KJ5R5hqR/HtvmFtTn/Y1BNMq45NUBp0LZH7yF8WFMET+wmESgEr0FVTu/Z5NonmfUjbgJZG5Nh8xHc5RdWGQ==", + "version": "12.24.0", + "resolved": "https://registry.npmjs.org/@azure/storage-blob/-/storage-blob-12.24.0.tgz", + "integrity": "sha512-l8cmWM4C7RoNCBOImoFMxhTXe1Lr+8uQ/IgnhRNMpfoA9bAFWoLG4XrWm6O5rKXortreVQuD+fc1hbzWklOZbw==", "dev": true, "license": "MIT", "peer": true, @@ -598,7 +598,7 @@ "@azure/core-lro": "^2.2.0", "@azure/core-paging": "^1.1.1", "@azure/core-rest-pipeline": "^1.10.1", - "@azure/core-tracing": "^1.0.0", + "@azure/core-tracing": "^1.1.2", "@azure/core-util": "^1.6.1", "@azure/core-xml": "^1.3.2", "@azure/logger": "^1.0.0", @@ -1084,9 +1084,9 @@ } }, "node_modules/@babel/runtime": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.24.7.tgz", - "integrity": "sha512-UwgBRMjJP+xv857DCngvqXI3Iq6J4v0wXmwc6sapg+zyhbwmQX67LUEFrkK5tbyJ30jGuG3ZvWpBiB9LCy1kWw==", + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.25.0.tgz", + "integrity": "sha512-7dRy4DwXwtzBrPbZflqxnvfxLF8kdZXPkhymtDeFoFqE6ldzjQFgYTtYIFARcLEYDrqfBfYcZt1WqFxRoyC9Rw==", "dev": true, "license": "MIT", "peer": true, @@ -2690,12 +2690,15 @@ } }, "node_modules/@inquirer/type": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/@inquirer/type/-/type-1.3.3.tgz", - "integrity": "sha512-xTUt0NulylX27/zMx04ZYar/kr1raaiFTVvQ5feljQsiAgdm0WPj4S73/ye0fbslh+15QrIuDvfCXTek7pMY5A==", + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/@inquirer/type/-/type-1.5.2.tgz", + "integrity": "sha512-w9qFkumYDCNyDZmNQjf/n6qQuvQ4dMC3BJesY4oF+yr0CxR5vxujflAVeIcS6U336uzi9GM0kAfZlLrZ9UTkpA==", "dev": true, "license": "MIT", "peer": true, + "dependencies": { + "mute-stream": "^1.0.0" + }, "engines": { "node": ">=18" } @@ -3118,9 +3121,9 @@ } }, "node_modules/@microsoft/teamsapp-cli/node_modules/semver": { - "version": "7.6.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", - "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", "dev": true, "license": "ISC", "peer": true, @@ -3224,17 +3227,17 @@ } }, "node_modules/@microsoft/teamsfx-core/node_modules/ajv": { - "version": "8.16.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.16.0.tgz", - "integrity": "sha512-F0twR8U1ZU67JIEtekUcLkXkoO5mMMmgGD8sK/xUFzJ805jxHQl92hImFAqqXMyMYjSPOyUPAwHYhB72g5sTXw==", + "version": "8.17.1", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", + "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", "dev": true, "license": "MIT", "peer": true, "dependencies": { "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.4.1" + "require-from-string": "^2.0.2" }, "funding": { "type": "github", @@ -3264,9 +3267,9 @@ "peer": true }, "node_modules/@microsoft/teamsfx-core/node_modules/semver": { - "version": "7.6.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", - "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", "dev": true, "license": "ISC", "peer": true, @@ -4212,11 +4215,12 @@ } }, "node_modules/adm-zip": { - "version": "0.5.14", - "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.5.14.tgz", - "integrity": "sha512-DnyqqifT4Jrcvb8USYjp6FHtBpEIz1mnXu6pTRHZ0RL69LbQYiO+0lDFg5+OKA7U29oWSs3a/i8fhn8ZcceIWg==", + "version": "0.5.15", + "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.5.15.tgz", + "integrity": "sha512-jYPWSeOA8EFoZnucrKCNihqBjoEGQSU4HKgHYQgKNEQ0pQF9a/DYuo/+fAxY76k4qe75LUlLWpAM1QWcBMTOKw==", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">=12.0" } @@ -4649,9 +4653,9 @@ } }, "node_modules/axios": { - "version": "1.7.2", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.7.2.tgz", - "integrity": "sha512-2A8QhOMrbomlDuiLeK9XibIBzuHeRcqqNOHp0Cyp5EoJ1IFDh+XZH3A6BkXtv0K4gFGCI0Y4BM7B1wOEi0Rmgw==", + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.7.3.tgz", + "integrity": "sha512-Ar7ND9pU99eJ9GpoGQKhKf58GpUOgnzuaB7ueNQ5BMi0p+LZ5oaEnfF999fAArcTIBwXTCHAmGcHOZJaWPq9Nw==", "dev": true, "license": "MIT", "peer": true, @@ -5029,9 +5033,9 @@ ] }, "node_modules/chai": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/chai/-/chai-4.4.1.tgz", - "integrity": "sha512-13sOfMv2+DWduEU+/xbun3LScLoqN17nBeTLUsmDfKdoiC1fr0n9PU4guu4AhRcOVFk/sW8LyZWHuhWtQZiF+g==", + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/chai/-/chai-4.5.0.tgz", + "integrity": "sha512-RITGBfijLkBddZvnn8jdqoTypxvqbOLYQkGGxXzeFjVHvudaPw0HNFD9x928/eUwYWd2dPCugVqspGALTZZQKw==", "dev": true, "license": "MIT", "peer": true, @@ -5042,7 +5046,7 @@ "get-func-name": "^2.0.2", "loupe": "^2.3.6", "pathval": "^1.1.1", - "type-detect": "^4.0.8" + "type-detect": "^4.1.0" }, "engines": { "node": ">=4" @@ -5375,9 +5379,9 @@ } }, "node_modules/comment-json": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/comment-json/-/comment-json-4.2.3.tgz", - "integrity": "sha512-SsxdiOf064DWoZLH799Ata6u7iV658A11PlWtZATDlXPpKGJnbJZ5Z24ybixAi+LUUqJ/GKowAejtC5GFUG7Tw==", + "version": "4.2.5", + "resolved": "https://registry.npmjs.org/comment-json/-/comment-json-4.2.5.tgz", + "integrity": "sha512-bKw/r35jR3HGt5PEPm1ljsQQGyCrR8sFGNiN5L+ykDHdpO8Smxkrkla9Yi6NkQyUrb8V54PGhfMs6NrIwtxtdw==", "dev": true, "license": "MIT", "peer": true, @@ -7265,10 +7269,18 @@ "license": "MIT", "peer": true }, + "node_modules/fast-uri": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.0.1.tgz", + "integrity": "sha512-MWipKbbYiYI0UC7cl8m/i/IWTqfC8YXsqjzybjddLsFjStroQzsHXkc73JutMvBiXmOvapk+axIl79ig5t55Bw==", + "dev": true, + "license": "MIT", + "peer": true + }, "node_modules/fast-xml-parser": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-4.4.0.tgz", - "integrity": "sha512-kLY3jFlwIYwBNDojclKsNAC12sfD6NwW74QB2CoNGPvtVxjliYehVunB3HYyNi+n4Tt1dAcgwYvmKF/Z18flqg==", + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-4.4.1.tgz", + "integrity": "sha512-xkjOecfnKGkSsOwtZ5Pz7Us/T6mrbPQrq0nh+aCO5V9nk5NLWmasAHumTKjiPJPWANe+kAZ84Jc8ooJkzZ88Sw==", "dev": true, "funding": [ { @@ -8389,9 +8401,9 @@ "peer": true }, "node_modules/https-proxy-agent": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.4.tgz", - "integrity": "sha512-wlwpilI7YdjSkWaQ/7omYBMTliDcmCN8OLihO6I9B86g06lMyAoqgoDpV0XqoaPOKj+0DIdAvnsWfyAAhmimcg==", + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.5.tgz", + "integrity": "sha512-1e4Wqeblerz+tMKPIq2EMGiiWW1dIjZOksyHWSUm1rmuvw/how9hBHZ38lAGj5ID4Ik6EdkOw7NmWPy6LAwalw==", "dev": true, "license": "MIT", "peer": true, @@ -9448,9 +9460,9 @@ } }, "node_modules/jsonwebtoken/node_modules/semver": { - "version": "7.6.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", - "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", "dev": true, "license": "ISC", "peer": true, @@ -10036,9 +10048,9 @@ } }, "node_modules/node-abi/node_modules/semver": { - "version": "7.6.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", - "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", "dev": true, "license": "ISC", "optional": true, @@ -10423,26 +10435,36 @@ } }, "node_modules/office-addin-debugging": { - "version": "5.1.3", - "resolved": "https://registry.npmjs.org/office-addin-debugging/-/office-addin-debugging-5.1.3.tgz", - "integrity": "sha512-Y/uW4Gt93MIkHcSk8Kb+k/MuNQTWwtl9WmfdKFqC3UI4V8UO01jGkCk1uRuNhO186pLWD1SBZLG+jbmI7EC+qw==", + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/office-addin-debugging/-/office-addin-debugging-5.1.4.tgz", + "integrity": "sha512-nFxUmDxWRUxMZq+nCXcUXEjLU1ZLtM1hKEBrxwsUfyH62wbQBDLH1k0GeU38Rb29wIbrIY7kG3L6SAzf2xYU2A==", "dev": true, "license": "MIT", "dependencies": { - "adm-zip": "^0.5.9", + "adm-zip": "0.5.12", "commander": "^6.2.0", "node-fetch": "^2.6.1", "office-addin-cli": "^1.6.3", "office-addin-dev-certs": "^1.13.3", - "office-addin-dev-settings": "^2.3.3", - "office-addin-manifest": "^1.13.3", - "office-addin-node-debugger": "^0.9.3", + "office-addin-dev-settings": "^2.3.4", + "office-addin-manifest": "^1.13.4", + "office-addin-node-debugger": "^0.9.4", "office-addin-usage-data": "^1.6.12" }, "bin": { "office-addin-debugging": "cli.js" } }, + "node_modules/office-addin-debugging/node_modules/adm-zip": { + "version": "0.5.12", + "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.5.12.tgz", + "integrity": "sha512-6TVU49mK6KZb4qG6xWaaM4C7sA/sgUMLy/JYMOzkcp3BvVLpW0fXDFQiIzAuxFCt/2+xD7fNIiPFAoLZPhVNLQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.0" + } + }, "node_modules/office-addin-dev-certs": { "version": "1.13.3", "resolved": "https://registry.npmjs.org/office-addin-dev-certs/-/office-addin-dev-certs-1.13.3.tgz", @@ -10476,18 +10498,18 @@ } }, "node_modules/office-addin-dev-settings": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/office-addin-dev-settings/-/office-addin-dev-settings-2.3.3.tgz", - "integrity": "sha512-Zw+GnG0NnT471tkSPPuatNqXH4VZsCqCmItx+nGEj6fCwFowPbmP6eBcypIGS47x/T3+V9KNIKsoUKKps4Kefw==", + "version": "2.3.4", + "resolved": "https://registry.npmjs.org/office-addin-dev-settings/-/office-addin-dev-settings-2.3.4.tgz", + "integrity": "sha512-MpO1wj5mrNJeNisvhziFo1lg/4ARH/kILBEygL+WmS1F36nAi9EfY+kH0GkVSHd0WF8d/eaOBFRxOxrkdtidLQ==", "dev": true, "license": "MIT", "dependencies": { - "adm-zip": "0.5.10", + "adm-zip": "0.5.12", "commander": "^6.2.0", "fs-extra": "^11.2.0", "inquirer": "^7.3.3", "junk": "^3.1.0", - "office-addin-manifest": "^1.13.3", + "office-addin-manifest": "^1.13.4", "office-addin-usage-data": "^1.6.12", "open": "^6.4.0", "string_decoder": "1.3.0", @@ -10502,9 +10524,9 @@ } }, "node_modules/office-addin-dev-settings/node_modules/adm-zip": { - "version": "0.5.10", - "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.5.10.tgz", - "integrity": "sha512-x0HvcHqVJNTPk/Bw8JbLWlWoo6Wwnsug0fnYYro1HBrjxZ3G7/AZk7Ahv8JwDe1uIcz8eBqvu86FuF1POiG7vQ==", + "version": "0.5.12", + "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.5.12.tgz", + "integrity": "sha512-6TVU49mK6KZb4qG6xWaaM4C7sA/sgUMLy/JYMOzkcp3BvVLpW0fXDFQiIzAuxFCt/2+xD7fNIiPFAoLZPhVNLQ==", "dev": true, "license": "MIT", "engines": { @@ -10640,14 +10662,14 @@ } }, "node_modules/office-addin-manifest": { - "version": "1.13.3", - "resolved": "https://registry.npmjs.org/office-addin-manifest/-/office-addin-manifest-1.13.3.tgz", - "integrity": "sha512-pcIJTkLCKddGWyTQYkxWRcumZo9NzPdkQN43c17oylpvH2W0HgsZyBIazkwAjqAETy0VX40NbSQ8ejf4c9jvcA==", + "version": "1.13.4", + "resolved": "https://registry.npmjs.org/office-addin-manifest/-/office-addin-manifest-1.13.4.tgz", + "integrity": "sha512-bzjc+ypvJT+UBUSsfugftOZh/CZECR5GwJ7PMYcFuB/zGPuh41jeAxbuXhlAy8AeJpQgEsTK3B7N1aDr+JPqjg==", "dev": true, "license": "MIT", "dependencies": { "@microsoft/teams-manifest": "^0.1.3", - "adm-zip": "^0.5.9", + "adm-zip": "0.5.12", "chalk": "^2.4.2", "commander": "^6.2.0", "fs-extra": "^7.0.1", @@ -10688,6 +10710,16 @@ "node": "^12.20.0 || >=14" } }, + "node_modules/office-addin-manifest/node_modules/adm-zip": { + "version": "0.5.12", + "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.5.12.tgz", + "integrity": "sha512-6TVU49mK6KZb4qG6xWaaM4C7sA/sgUMLy/JYMOzkcp3BvVLpW0fXDFQiIzAuxFCt/2+xD7fNIiPFAoLZPhVNLQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.0" + } + }, "node_modules/office-addin-manifest/node_modules/fs-extra": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", @@ -10724,9 +10756,9 @@ } }, "node_modules/office-addin-node-debugger": { - "version": "0.9.3", - "resolved": "https://registry.npmjs.org/office-addin-node-debugger/-/office-addin-node-debugger-0.9.3.tgz", - "integrity": "sha512-S0e1lh7ykrcfaccF6jYvK40WJHh0JkZCdUENsYiThqKRB1843Rk0OLYZGHqEqSZYMondO21zUEVYLrwjaaMmwg==", + "version": "0.9.4", + "resolved": "https://registry.npmjs.org/office-addin-node-debugger/-/office-addin-node-debugger-0.9.4.tgz", + "integrity": "sha512-OXqlwOSyBas8GO+GD+8+sIqRr7Oh8eTe/8MaA3de+AUKl1IdwxpmkcTdTeFJQeSmuGmD2aaoytGDFLN5E1FT0A==", "dev": true, "license": "MIT", "dependencies": { @@ -10747,18 +10779,18 @@ "license": "MIT" }, "node_modules/office-addin-project": { - "version": "0.8.3", - "resolved": "https://registry.npmjs.org/office-addin-project/-/office-addin-project-0.8.3.tgz", - "integrity": "sha512-PgGk/LXnfxcKAYfERTPpI7CjXQbMinchIDnDGzS7kigSure5VQsuKi2c8l/F8/8KO+UzKJQa8obqFhwwiAd66A==", + "version": "0.8.4", + "resolved": "https://registry.npmjs.org/office-addin-project/-/office-addin-project-0.8.4.tgz", + "integrity": "sha512-RJ5Z9jb9T/SPQt6w5s/cPeO8XWwcGmM7YoWyHxi+OlqcbgPw3amHbCxAVM96R4mkfN57sL8IBAaC0KxIK9l67g==", "dev": true, "license": "MIT", "peer": true, "dependencies": { - "adm-zip": "^0.5.9", + "adm-zip": "0.5.12", "commander": "^6.2.1", "fs-extra": "^7.0.1", "inquirer": "^7.3.3", - "office-addin-manifest": "^1.13.3", + "office-addin-manifest": "^1.13.4", "office-addin-manifest-converter": "^0.3.1", "office-addin-usage-data": "^1.6.12", "path": "^0.12.7" @@ -10767,6 +10799,17 @@ "office-addin-project": "cli.js" } }, + "node_modules/office-addin-project/node_modules/adm-zip": { + "version": "0.5.12", + "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.5.12.tgz", + "integrity": "sha512-6TVU49mK6KZb4qG6xWaaM4C7sA/sgUMLy/JYMOzkcp3BvVLpW0fXDFQiIzAuxFCt/2+xD7fNIiPFAoLZPhVNLQ==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=6.0" + } + }, "node_modules/office-addin-project/node_modules/fs-extra": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", @@ -13170,9 +13213,9 @@ } }, "node_modules/type-detect": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", - "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.1.0.tgz", + "integrity": "sha512-Acylog8/luQ8L7il+geoSxhEkazvkslg7PSNKOX59mbB9cOveP5aq9h74Y7YU8yDpJwetzQQrfIwtf4Wp4LKcw==", "dev": true, "license": "MIT", "peer": true, @@ -13333,9 +13376,9 @@ } }, "node_modules/uglify-js": { - "version": "3.18.0", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.18.0.tgz", - "integrity": "sha512-SyVVbcNBCk0dzr9XL/R/ySrmYf0s372K6/hFklzgcp2lBFyXtw4I7BOdDjlLhE1aVqaI/SHWXWmYdlZxuyF38A==", + "version": "3.19.2", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.19.2.tgz", + "integrity": "sha512-S8KA6DDI47nQXJSi2ctQ629YzwOVs+bQML6DAtvy0wgNdpi+0ySpQK0g2pxBq2xfF2z3YCscu7NNA8nXT9PlIQ==", "dev": true, "license": "BSD-2-Clause", "optional": true, @@ -13364,9 +13407,9 @@ } }, "node_modules/underscore": { - "version": "1.13.6", - "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.13.6.tgz", - "integrity": "sha512-+A5Sja4HP1M08MaXya7p5LvjuM7K6q/2EaC0+iovj/wOcMsTzMvDFbasi/oSapiwOlt252IqsKqPjCl7huKS0A==", + "version": "1.13.7", + "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.13.7.tgz", + "integrity": "sha512-GMXzWtsc57XAtguZgaQViUOzs0KTkk8ojr3/xAxXLITqf/3EMwxC0inyETfDFjH/Krbhuep0HNbbjI9i/q3F3g==", "dev": true, "license": "MIT", "peer": true @@ -14269,9 +14312,9 @@ "dev": true }, "node_modules/yaml": { - "version": "2.4.5", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.4.5.tgz", - "integrity": "sha512-aBx2bnqDzVOyNKfsysjA2ms5ZlnjSAW2eG3/L5G/CSujfjLJTJsEw1bGw8kCf04KodQWk1pxlGnZ56CRxiawmg==", + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.5.0.tgz", + "integrity": "sha512-2wWLbGbYDiSqqIKoPjar3MPgB94ErzCtrNE1FdqGuaO0pi2JGjmE8aW8TDZwzU7vuxcGRdL/4gPQwQ7hD5AMSw==", "dev": true, "license": "ISC", "peer": true, @@ -14403,16 +14446,16 @@ }, "dependencies": { "ajv": { - "version": "8.16.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.16.0.tgz", - "integrity": "sha512-F0twR8U1ZU67JIEtekUcLkXkoO5mMMmgGD8sK/xUFzJ805jxHQl92hImFAqqXMyMYjSPOyUPAwHYhB72g5sTXw==", + "version": "8.17.1", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", + "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", "dev": true, "peer": true, "requires": { "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.4.1" + "require-from-string": "^2.0.2" } }, "ajv-draft-04": { @@ -14618,9 +14661,9 @@ } }, "@azure/core-rest-pipeline": { - "version": "1.16.1", - "resolved": "https://registry.npmjs.org/@azure/core-rest-pipeline/-/core-rest-pipeline-1.16.1.tgz", - "integrity": "sha512-ExPSbgjwCoht6kB7B4MeZoBAxcQSIl29r/bPeazZJx50ej4JJCByimLOrZoIsurISNyJQQHf30b3JfqC3Hb88A==", + "version": "1.16.3", + "resolved": "https://registry.npmjs.org/@azure/core-rest-pipeline/-/core-rest-pipeline-1.16.3.tgz", + "integrity": "sha512-VxLk4AHLyqcHsfKe4MZ6IQ+D+ShuByy+RfStKfSjxJoL3WBWq17VNmrz8aT8etKzqc2nAeIyLxScjpzsS4fz8w==", "dev": true, "peer": true, "requires": { @@ -14657,9 +14700,9 @@ } }, "@azure/core-util": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@azure/core-util/-/core-util-1.9.0.tgz", - "integrity": "sha512-AfalUQ1ZppaKuxPPMsFEUdX6GZPB3d9paR9d/TTL7Ow2De8cJaC7ibi7kWVlFAVPCYo31OcnGymc0R89DX8Oaw==", + "version": "1.9.2", + "resolved": "https://registry.npmjs.org/@azure/core-util/-/core-util-1.9.2.tgz", + "integrity": "sha512-l1Qrqhi4x1aekkV+OlcqsJa4AnAkj5p0JV8omgwjaV9OAbP41lvrMvs+CptfetKkeEaGRGSzby7sjPZEX7+kkQ==", "dev": true, "peer": true, "requires": { @@ -14680,9 +14723,9 @@ } }, "@azure/core-xml": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/@azure/core-xml/-/core-xml-1.4.2.tgz", - "integrity": "sha512-CW3MZhApe/S4iikbYKE7s83fjDBPIr2kpidX+hlGRwh7N4o1nIpQ/PfJTeioqhfqdMvRtheEl+ft64fyTaLNaA==", + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/@azure/core-xml/-/core-xml-1.4.3.tgz", + "integrity": "sha512-D6G7FEmDiTctPKuWegX2WTrS1enKZwqYwdKTO6ZN6JMigcCehlT0/CYl+zWpI9vQ9frwwp7GQT3/owaEXgnOsA==", "dev": true, "peer": true, "requires": { @@ -14691,9 +14734,9 @@ } }, "@azure/identity": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/@azure/identity/-/identity-4.3.0.tgz", - "integrity": "sha512-LHZ58/RsIpIWa4hrrE2YuJ/vzG1Jv9f774RfTTAVDZDriubvJ0/S5u4pnw4akJDlS0TiJb6VMphmVUFsWmgodQ==", + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/@azure/identity/-/identity-4.4.1.tgz", + "integrity": "sha512-DwnG4cKFEM7S3T+9u05NstXU/HN0dk45kPOinUyNKsn5VWwpXd9sbPKEg6kgJzGbm1lMuhx9o31PVbCtM5sfBA==", "dev": true, "peer": true, "requires": { @@ -14704,7 +14747,7 @@ "@azure/core-tracing": "^1.0.0", "@azure/core-util": "^1.3.0", "@azure/logger": "^1.0.0", - "@azure/msal-browser": "^3.11.1", + "@azure/msal-browser": "^3.14.0", "@azure/msal-node": "^2.9.2", "events": "^3.0.0", "jws": "^4.0.0", @@ -14714,9 +14757,9 @@ } }, "@azure/logger": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@azure/logger/-/logger-1.1.2.tgz", - "integrity": "sha512-l170uE7bsKpIU6B/giRc9i4NI0Mj+tANMMMxf7Zi/5cKzEqPayP7+X1WPrG7e+91JgY8N+7K7nF2WOi7iVhXvg==", + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/@azure/logger/-/logger-1.1.4.tgz", + "integrity": "sha512-4IXXzcCdLdlXuCG+8UKEwLA1T1NHqUfanhXYHiQTn+6sfWCZXduqbtXDGceg3Ce5QxTGo7EqmbV6Bi+aqKuClQ==", "dev": true, "peer": true, "requires": { @@ -14724,38 +14767,38 @@ } }, "@azure/msal-browser": { - "version": "3.17.0", - "resolved": "https://registry.npmjs.org/@azure/msal-browser/-/msal-browser-3.17.0.tgz", - "integrity": "sha512-csccKXmW2z7EkZ0I3yAoW/offQt+JECdTIV/KrnRoZyM7wCSsQWODpwod8ZhYy7iOyamcHApR9uCh0oD1M+0/A==", + "version": "3.20.0", + "resolved": "https://registry.npmjs.org/@azure/msal-browser/-/msal-browser-3.20.0.tgz", + "integrity": "sha512-ErsxbfCGIwdqD8jipqdxpfAGiUEQS7MWUe39Rjhl0ZVPsb1JEe9bZCe2+0g23HDH6DGyCAtnTNN9scPtievrMQ==", "dev": true, "peer": true, "requires": { - "@azure/msal-common": "14.12.0" + "@azure/msal-common": "14.14.0" } }, "@azure/msal-common": { - "version": "14.12.0", - "resolved": "https://registry.npmjs.org/@azure/msal-common/-/msal-common-14.12.0.tgz", - "integrity": "sha512-IDDXmzfdwmDkv4SSmMEyAniJf6fDu3FJ7ncOjlxkDuT85uSnLEhZi3fGZpoR7T4XZpOMx9teM9GXBgrfJgyeBw==", + "version": "14.14.0", + "resolved": "https://registry.npmjs.org/@azure/msal-common/-/msal-common-14.14.0.tgz", + "integrity": "sha512-OxcOk9H1/1fktHh6//VCORgSNJc2dCQObTm6JNmL824Z6iZSO6eFo/Bttxe0hETn9B+cr7gDouTQtsRq3YPuSQ==", "dev": true, "peer": true }, "@azure/msal-node": { - "version": "2.9.2", - "resolved": "https://registry.npmjs.org/@azure/msal-node/-/msal-node-2.9.2.tgz", - "integrity": "sha512-8tvi6Cos3m+0KmRbPjgkySXi+UQU/QiuVRFnrxIwt5xZlEEFa69O04RTaNESGgImyBBlYbo2mfE8/U8Bbdk1WQ==", + "version": "2.12.0", + "resolved": "https://registry.npmjs.org/@azure/msal-node/-/msal-node-2.12.0.tgz", + "integrity": "sha512-jmk5Im5KujRA2AcyCb0awA3buV8niSrwXZs+NBJWIvxOz76RvNlusGIqi43A0h45BPUy93Qb+CPdpJn82NFTIg==", "dev": true, "peer": true, "requires": { - "@azure/msal-common": "14.12.0", + "@azure/msal-common": "14.14.0", "jsonwebtoken": "^9.0.0", "uuid": "^8.3.0" } }, "@azure/storage-blob": { - "version": "12.23.0", - "resolved": "https://registry.npmjs.org/@azure/storage-blob/-/storage-blob-12.23.0.tgz", - "integrity": "sha512-c1KJ5R5hqR/HtvmFtTn/Y1BNMq45NUBp0LZH7yF8WFMET+wmESgEr0FVTu/Z5NonmfUjbgJZG5Nh8xHc5RdWGQ==", + "version": "12.24.0", + "resolved": "https://registry.npmjs.org/@azure/storage-blob/-/storage-blob-12.24.0.tgz", + "integrity": "sha512-l8cmWM4C7RoNCBOImoFMxhTXe1Lr+8uQ/IgnhRNMpfoA9bAFWoLG4XrWm6O5rKXortreVQuD+fc1hbzWklOZbw==", "dev": true, "peer": true, "requires": { @@ -14766,7 +14809,7 @@ "@azure/core-lro": "^2.2.0", "@azure/core-paging": "^1.1.1", "@azure/core-rest-pipeline": "^1.10.1", - "@azure/core-tracing": "^1.0.0", + "@azure/core-tracing": "^1.1.2", "@azure/core-util": "^1.6.1", "@azure/core-xml": "^1.3.2", "@azure/logger": "^1.0.0", @@ -15098,9 +15141,9 @@ } }, "@babel/runtime": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.24.7.tgz", - "integrity": "sha512-UwgBRMjJP+xv857DCngvqXI3Iq6J4v0wXmwc6sapg+zyhbwmQX67LUEFrkK5tbyJ30jGuG3ZvWpBiB9LCy1kWw==", + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.25.0.tgz", + "integrity": "sha512-7dRy4DwXwtzBrPbZflqxnvfxLF8kdZXPkhymtDeFoFqE6ldzjQFgYTtYIFARcLEYDrqfBfYcZt1WqFxRoyC9Rw==", "dev": true, "peer": true, "requires": { @@ -16238,11 +16281,14 @@ } }, "@inquirer/type": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/@inquirer/type/-/type-1.3.3.tgz", - "integrity": "sha512-xTUt0NulylX27/zMx04ZYar/kr1raaiFTVvQ5feljQsiAgdm0WPj4S73/ye0fbslh+15QrIuDvfCXTek7pMY5A==", + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/@inquirer/type/-/type-1.5.2.tgz", + "integrity": "sha512-w9qFkumYDCNyDZmNQjf/n6qQuvQ4dMC3BJesY4oF+yr0CxR5vxujflAVeIcS6U336uzi9GM0kAfZlLrZ9UTkpA==", "dev": true, - "peer": true + "peer": true, + "requires": { + "mute-stream": "^1.0.0" + } }, "@isaacs/cliui": { "version": "8.0.2", @@ -16558,9 +16604,9 @@ "peer": true }, "semver": { - "version": "7.6.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", - "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", "dev": true, "peer": true }, @@ -16653,16 +16699,16 @@ }, "dependencies": { "ajv": { - "version": "8.16.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.16.0.tgz", - "integrity": "sha512-F0twR8U1ZU67JIEtekUcLkXkoO5mMMmgGD8sK/xUFzJ805jxHQl92hImFAqqXMyMYjSPOyUPAwHYhB72g5sTXw==", + "version": "8.17.1", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", + "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", "dev": true, "peer": true, "requires": { "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.4.1" + "require-from-string": "^2.0.2" } }, "iconv-lite": { @@ -16683,9 +16729,9 @@ "peer": true }, "semver": { - "version": "7.6.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", - "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", "dev": true, "peer": true } @@ -17408,10 +17454,11 @@ "peer": true }, "adm-zip": { - "version": "0.5.14", - "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.5.14.tgz", - "integrity": "sha512-DnyqqifT4Jrcvb8USYjp6FHtBpEIz1mnXu6pTRHZ0RL69LbQYiO+0lDFg5+OKA7U29oWSs3a/i8fhn8ZcceIWg==", - "dev": true + "version": "0.5.15", + "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.5.15.tgz", + "integrity": "sha512-jYPWSeOA8EFoZnucrKCNihqBjoEGQSU4HKgHYQgKNEQ0pQF9a/DYuo/+fAxY76k4qe75LUlLWpAM1QWcBMTOKw==", + "dev": true, + "peer": true }, "agent-base": { "version": "7.1.1", @@ -17717,9 +17764,9 @@ } }, "axios": { - "version": "1.7.2", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.7.2.tgz", - "integrity": "sha512-2A8QhOMrbomlDuiLeK9XibIBzuHeRcqqNOHp0Cyp5EoJ1IFDh+XZH3A6BkXtv0K4gFGCI0Y4BM7B1wOEi0Rmgw==", + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.7.3.tgz", + "integrity": "sha512-Ar7ND9pU99eJ9GpoGQKhKf58GpUOgnzuaB7ueNQ5BMi0p+LZ5oaEnfF999fAArcTIBwXTCHAmGcHOZJaWPq9Nw==", "dev": true, "peer": true, "requires": { @@ -17980,9 +18027,9 @@ "dev": true }, "chai": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/chai/-/chai-4.4.1.tgz", - "integrity": "sha512-13sOfMv2+DWduEU+/xbun3LScLoqN17nBeTLUsmDfKdoiC1fr0n9PU4guu4AhRcOVFk/sW8LyZWHuhWtQZiF+g==", + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/chai/-/chai-4.5.0.tgz", + "integrity": "sha512-RITGBfijLkBddZvnn8jdqoTypxvqbOLYQkGGxXzeFjVHvudaPw0HNFD9x928/eUwYWd2dPCugVqspGALTZZQKw==", "dev": true, "peer": true, "requires": { @@ -17992,7 +18039,7 @@ "get-func-name": "^2.0.2", "loupe": "^2.3.6", "pathval": "^1.1.1", - "type-detect": "^4.0.8" + "type-detect": "^4.1.0" } }, "chalk": { @@ -18233,9 +18280,9 @@ "dev": true }, "comment-json": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/comment-json/-/comment-json-4.2.3.tgz", - "integrity": "sha512-SsxdiOf064DWoZLH799Ata6u7iV658A11PlWtZATDlXPpKGJnbJZ5Z24ybixAi+LUUqJ/GKowAejtC5GFUG7Tw==", + "version": "4.2.5", + "resolved": "https://registry.npmjs.org/comment-json/-/comment-json-4.2.5.tgz", + "integrity": "sha512-bKw/r35jR3HGt5PEPm1ljsQQGyCrR8sFGNiN5L+ykDHdpO8Smxkrkla9Yi6NkQyUrb8V54PGhfMs6NrIwtxtdw==", "dev": true, "peer": true, "requires": { @@ -19581,10 +19628,17 @@ "dev": true, "peer": true }, + "fast-uri": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.0.1.tgz", + "integrity": "sha512-MWipKbbYiYI0UC7cl8m/i/IWTqfC8YXsqjzybjddLsFjStroQzsHXkc73JutMvBiXmOvapk+axIl79ig5t55Bw==", + "dev": true, + "peer": true + }, "fast-xml-parser": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-4.4.0.tgz", - "integrity": "sha512-kLY3jFlwIYwBNDojclKsNAC12sfD6NwW74QB2CoNGPvtVxjliYehVunB3HYyNi+n4Tt1dAcgwYvmKF/Z18flqg==", + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-4.4.1.tgz", + "integrity": "sha512-xkjOecfnKGkSsOwtZ5Pz7Us/T6mrbPQrq0nh+aCO5V9nk5NLWmasAHumTKjiPJPWANe+kAZ84Jc8ooJkzZ88Sw==", "dev": true, "peer": true, "requires": { @@ -20337,9 +20391,9 @@ "peer": true }, "https-proxy-agent": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.4.tgz", - "integrity": "sha512-wlwpilI7YdjSkWaQ/7omYBMTliDcmCN8OLihO6I9B86g06lMyAoqgoDpV0XqoaPOKj+0DIdAvnsWfyAAhmimcg==", + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.5.tgz", + "integrity": "sha512-1e4Wqeblerz+tMKPIq2EMGiiWW1dIjZOksyHWSUm1rmuvw/how9hBHZ38lAGj5ID4Ik6EdkOw7NmWPy6LAwalw==", "dev": true, "peer": true, "requires": { @@ -21029,9 +21083,9 @@ } }, "semver": { - "version": "7.6.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", - "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", "dev": true, "peer": true } @@ -21484,9 +21538,9 @@ }, "dependencies": { "semver": { - "version": "7.6.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", - "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", "dev": true, "optional": true, "peer": true @@ -21759,20 +21813,28 @@ } }, "office-addin-debugging": { - "version": "5.1.3", - "resolved": "https://registry.npmjs.org/office-addin-debugging/-/office-addin-debugging-5.1.3.tgz", - "integrity": "sha512-Y/uW4Gt93MIkHcSk8Kb+k/MuNQTWwtl9WmfdKFqC3UI4V8UO01jGkCk1uRuNhO186pLWD1SBZLG+jbmI7EC+qw==", + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/office-addin-debugging/-/office-addin-debugging-5.1.4.tgz", + "integrity": "sha512-nFxUmDxWRUxMZq+nCXcUXEjLU1ZLtM1hKEBrxwsUfyH62wbQBDLH1k0GeU38Rb29wIbrIY7kG3L6SAzf2xYU2A==", "dev": true, "requires": { - "adm-zip": "^0.5.9", + "adm-zip": "0.5.12", "commander": "^6.2.0", "node-fetch": "^2.6.1", "office-addin-cli": "^1.6.3", "office-addin-dev-certs": "^1.13.3", - "office-addin-dev-settings": "^2.3.3", - "office-addin-manifest": "^1.13.3", - "office-addin-node-debugger": "^0.9.3", + "office-addin-dev-settings": "^2.3.4", + "office-addin-manifest": "^1.13.4", + "office-addin-node-debugger": "^0.9.4", "office-addin-usage-data": "^1.6.12" + }, + "dependencies": { + "adm-zip": { + "version": "0.5.12", + "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.5.12.tgz", + "integrity": "sha512-6TVU49mK6KZb4qG6xWaaM4C7sA/sgUMLy/JYMOzkcp3BvVLpW0fXDFQiIzAuxFCt/2+xD7fNIiPFAoLZPhVNLQ==", + "dev": true + } } }, "office-addin-dev-certs": { @@ -21802,17 +21864,17 @@ } }, "office-addin-dev-settings": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/office-addin-dev-settings/-/office-addin-dev-settings-2.3.3.tgz", - "integrity": "sha512-Zw+GnG0NnT471tkSPPuatNqXH4VZsCqCmItx+nGEj6fCwFowPbmP6eBcypIGS47x/T3+V9KNIKsoUKKps4Kefw==", + "version": "2.3.4", + "resolved": "https://registry.npmjs.org/office-addin-dev-settings/-/office-addin-dev-settings-2.3.4.tgz", + "integrity": "sha512-MpO1wj5mrNJeNisvhziFo1lg/4ARH/kILBEygL+WmS1F36nAi9EfY+kH0GkVSHd0WF8d/eaOBFRxOxrkdtidLQ==", "dev": true, "requires": { - "adm-zip": "0.5.10", + "adm-zip": "0.5.12", "commander": "^6.2.0", "fs-extra": "^11.2.0", "inquirer": "^7.3.3", "junk": "^3.1.0", - "office-addin-manifest": "^1.13.3", + "office-addin-manifest": "^1.13.4", "office-addin-usage-data": "^1.6.12", "open": "^6.4.0", "string_decoder": "1.3.0", @@ -21821,9 +21883,9 @@ }, "dependencies": { "adm-zip": { - "version": "0.5.10", - "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.5.10.tgz", - "integrity": "sha512-x0HvcHqVJNTPk/Bw8JbLWlWoo6Wwnsug0fnYYro1HBrjxZ3G7/AZk7Ahv8JwDe1uIcz8eBqvu86FuF1POiG7vQ==", + "version": "0.5.12", + "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.5.12.tgz", + "integrity": "sha512-6TVU49mK6KZb4qG6xWaaM4C7sA/sgUMLy/JYMOzkcp3BvVLpW0fXDFQiIzAuxFCt/2+xD7fNIiPFAoLZPhVNLQ==", "dev": true }, "fs-extra": { @@ -21913,13 +21975,13 @@ } }, "office-addin-manifest": { - "version": "1.13.3", - "resolved": "https://registry.npmjs.org/office-addin-manifest/-/office-addin-manifest-1.13.3.tgz", - "integrity": "sha512-pcIJTkLCKddGWyTQYkxWRcumZo9NzPdkQN43c17oylpvH2W0HgsZyBIazkwAjqAETy0VX40NbSQ8ejf4c9jvcA==", + "version": "1.13.4", + "resolved": "https://registry.npmjs.org/office-addin-manifest/-/office-addin-manifest-1.13.4.tgz", + "integrity": "sha512-bzjc+ypvJT+UBUSsfugftOZh/CZECR5GwJ7PMYcFuB/zGPuh41jeAxbuXhlAy8AeJpQgEsTK3B7N1aDr+JPqjg==", "dev": true, "requires": { "@microsoft/teams-manifest": "^0.1.3", - "adm-zip": "^0.5.9", + "adm-zip": "0.5.12", "chalk": "^2.4.2", "commander": "^6.2.0", "fs-extra": "^7.0.1", @@ -21930,6 +21992,12 @@ "xml2js": "^0.5.0" }, "dependencies": { + "adm-zip": { + "version": "0.5.12", + "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.5.12.tgz", + "integrity": "sha512-6TVU49mK6KZb4qG6xWaaM4C7sA/sgUMLy/JYMOzkcp3BvVLpW0fXDFQiIzAuxFCt/2+xD7fNIiPFAoLZPhVNLQ==", + "dev": true + }, "fs-extra": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", @@ -21980,9 +22048,9 @@ } }, "office-addin-node-debugger": { - "version": "0.9.3", - "resolved": "https://registry.npmjs.org/office-addin-node-debugger/-/office-addin-node-debugger-0.9.3.tgz", - "integrity": "sha512-S0e1lh7ykrcfaccF6jYvK40WJHh0JkZCdUENsYiThqKRB1843Rk0OLYZGHqEqSZYMondO21zUEVYLrwjaaMmwg==", + "version": "0.9.4", + "resolved": "https://registry.npmjs.org/office-addin-node-debugger/-/office-addin-node-debugger-0.9.4.tgz", + "integrity": "sha512-OXqlwOSyBas8GO+GD+8+sIqRr7Oh8eTe/8MaA3de+AUKl1IdwxpmkcTdTeFJQeSmuGmD2aaoytGDFLN5E1FT0A==", "dev": true, "requires": { "commander": "^6.2.0", @@ -21998,22 +22066,29 @@ "dev": true }, "office-addin-project": { - "version": "0.8.3", - "resolved": "https://registry.npmjs.org/office-addin-project/-/office-addin-project-0.8.3.tgz", - "integrity": "sha512-PgGk/LXnfxcKAYfERTPpI7CjXQbMinchIDnDGzS7kigSure5VQsuKi2c8l/F8/8KO+UzKJQa8obqFhwwiAd66A==", + "version": "0.8.4", + "resolved": "https://registry.npmjs.org/office-addin-project/-/office-addin-project-0.8.4.tgz", + "integrity": "sha512-RJ5Z9jb9T/SPQt6w5s/cPeO8XWwcGmM7YoWyHxi+OlqcbgPw3amHbCxAVM96R4mkfN57sL8IBAaC0KxIK9l67g==", "dev": true, "peer": true, "requires": { - "adm-zip": "^0.5.9", + "adm-zip": "0.5.12", "commander": "^6.2.1", "fs-extra": "^7.0.1", "inquirer": "^7.3.3", - "office-addin-manifest": "^1.13.3", + "office-addin-manifest": "^1.13.4", "office-addin-manifest-converter": "^0.3.1", "office-addin-usage-data": "^1.6.12", "path": "^0.12.7" }, "dependencies": { + "adm-zip": { + "version": "0.5.12", + "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.5.12.tgz", + "integrity": "sha512-6TVU49mK6KZb4qG6xWaaM4C7sA/sgUMLy/JYMOzkcp3BvVLpW0fXDFQiIzAuxFCt/2+xD7fNIiPFAoLZPhVNLQ==", + "dev": true, + "peer": true + }, "fs-extra": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", @@ -23778,9 +23853,9 @@ } }, "type-detect": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", - "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.1.0.tgz", + "integrity": "sha512-Acylog8/luQ8L7il+geoSxhEkazvkslg7PSNKOX59mbB9cOveP5aq9h74Y7YU8yDpJwetzQQrfIwtf4Wp4LKcw==", "dev": true, "peer": true }, @@ -23877,9 +23952,9 @@ } }, "uglify-js": { - "version": "3.18.0", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.18.0.tgz", - "integrity": "sha512-SyVVbcNBCk0dzr9XL/R/ySrmYf0s372K6/hFklzgcp2lBFyXtw4I7BOdDjlLhE1aVqaI/SHWXWmYdlZxuyF38A==", + "version": "3.19.2", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.19.2.tgz", + "integrity": "sha512-S8KA6DDI47nQXJSi2ctQ629YzwOVs+bQML6DAtvy0wgNdpi+0ySpQK0g2pxBq2xfF2z3YCscu7NNA8nXT9PlIQ==", "dev": true, "optional": true, "peer": true @@ -23897,9 +23972,9 @@ } }, "underscore": { - "version": "1.13.6", - "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.13.6.tgz", - "integrity": "sha512-+A5Sja4HP1M08MaXya7p5LvjuM7K6q/2EaC0+iovj/wOcMsTzMvDFbasi/oSapiwOlt252IqsKqPjCl7huKS0A==", + "version": "1.13.7", + "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.13.7.tgz", + "integrity": "sha512-GMXzWtsc57XAtguZgaQViUOzs0KTkk8ojr3/xAxXLITqf/3EMwxC0inyETfDFjH/Krbhuep0HNbbjI9i/q3F3g==", "dev": true, "peer": true }, @@ -24504,9 +24579,9 @@ "dev": true }, "yaml": { - "version": "2.4.5", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.4.5.tgz", - "integrity": "sha512-aBx2bnqDzVOyNKfsysjA2ms5ZlnjSAW2eG3/L5G/CSujfjLJTJsEw1bGw8kCf04KodQWk1pxlGnZ56CRxiawmg==", + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.5.0.tgz", + "integrity": "sha512-2wWLbGbYDiSqqIKoPjar3MPgB94ErzCtrNE1FdqGuaO0pi2JGjmE8aW8TDZwzU7vuxcGRdL/4gPQwQ7hD5AMSw==", "dev": true, "peer": true }, diff --git a/Samples/excel-insert-file/README.md b/Samples/excel-insert-file/README.md index 206cd7c9a..275be60fe 100644 --- a/Samples/excel-insert-file/README.md +++ b/Samples/excel-insert-file/README.md @@ -179,7 +179,7 @@ If you prefer to run the web server and host the add-in's web files from your co The http-server will run and host the current folder's files on localhost:3000. -1. Follow the steps in [Run the sample](https://github.com/OfficeDev/PnP-OfficeAddins/tree/main/Samples/excel-keyboard-shortcuts#run-the-sample), but upload the `manifest-localhost.xml` file for step 6. +1. Follow the steps in [Run the sample](#run-the-sample), but upload the `manifest-localhost.xml` file for step 6. ## Questions and feedback diff --git a/Samples/excel-keyboard-shortcuts/README.md b/Samples/excel-keyboard-shortcuts/README.md deleted file mode 100644 index ab0c0d837..000000000 --- a/Samples/excel-keyboard-shortcuts/README.md +++ /dev/null @@ -1,151 +0,0 @@ ---- -page_type: sample -urlFragment: office-add-in-keyboard-shortcuts -products: - - office-excel - - office -languages: - - javascript -extensions: - contentType: samples - technologies: - - Add-ins - createdDate: "11/5/2020 10:00:00 AM" -description: "This sample shows how to add keyboard shortcuts to your Office Add-in." ---- - -# Use keyboard shortcuts for Office add-in actions - -## Summary - -This sample shows how to set up a basic Excel add-in project that utilizes keyboard shortcuts. Keyboard shortcuts let power users quickly use you add-in's features and give accessibility options to avoid a mouse. Currently, the sample's shortcuts are configured to show and hide the task pane as well as cycle through colors for a selected cell. Keyboard shortcuts can be used to achieve any action within the add-in runtime. - -![Screen shot of Excel showing the use of CTRL+SHIFT+UP to open the task pane, and CTRL+SHIFT+DOWN to close the task pane.](./assets/excel-keyboard-shortcuts-overview.jpg) - -## Features - -- Add keyboard shortcuts to your Office Add-in. -- Enable users to use those keyboard shortcuts to invoke any action within the Office Add-in runtime. - -## Applies to - -- Excel on Windows, Mac, and in a browser. - -## Prerequisites - -- Microsoft 365 - -## Solution - -Solution | Author(s) ----------|---------- -Use keyboard shortcuts for Office add-in actions | Microsoft - -## Version history - -Version | Date | Comments ----------| -----| -------- -1.0 | 11-5-2020 | Initial release -1.1 | May 11, 2021 | Removed yo office and modified to be GitHub hosted - -## Disclaimer - -**THIS CODE IS PROVIDED *AS IS* WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING ANY IMPLIED WARRANTIES OF FITNESS FOR A PARTICULAR PURPOSE, MERCHANTABILITY, OR NON-INFRINGEMENT.** - ----------- - -## Scenario: Open/Close taskpane and modify cell color - -This sample adds three different shortcuts to the Office Add-in. This enables the user to: - -- Use the "Ctrl+Alt+1" keyboard shortcut to open the task pane. -- Use the "Ctrl+Alt+2" keyboard shortcut to close the task pane. -- Use the "Ctrl+Alt+3" keyboard shortcut to cycle through colors for a selected cell. -- Use the "Ctrl+R" keyboard shortcut to test the shortcut conflict modal. - -## Run the sample - -You can run this sample in Excel in a browser. The add-in web files are served from this repo on GitHub. - -1. Download the **manifest.xml** file from this sample to a folder on your computer. -1. Open [Office on the web](https://office.live.com/). -1. Choose **Excel**, and then open a new document. -1. Open the **Insert** tab on the ribbon and choose **Office Add-ins**. -1. On the **Office Add-ins** dialog, select the **MY ADD-INS** tab, choose **Manage My Add-ins**, and then **Upload My Add-in**. - ![The Office Add-ins dialog with a drop-down in the upper right reading "Manage my add-ins" and a drop-down below it with the option "Upload My Add-in"](../../Samples/images/office-add-ins-my-account.png) -1. Browse to the add-in manifest file, and then select **Upload**. - ![The upload add-in dialog with buttons for browse, upload, and cancel. -](../../Samples/images/upload-add-in.png) -1. Verify that the add-in loaded successfully. You will see a **PnP keyboard shortcuts** button on the **Home** tab on the ribbon. - -Once the add-in is loaded use the following steps to try out the functionality. - -1. Press "Ctrl+Alt+1" on the keyboard to trigger the Show Taskpane action. -2. In the task pane, you will see the additional shortcuts available to try in the sample. - -## Key parts of this sample - -The manifest.xml is pre-configured to use the shared runtime. To see how to add shared runtime to your own add-in, use the following article: - -- [Configure your Excel Add-in to use a shared JavaScript runtime](https://learn.microsoft.com/office/dev/add-ins/excel/configure-your-add-in-to-use-a-shared-runtime) - - -Additionally, the following changes have been made to enable keyboard shortcuts: - -1. Configured the add-in's manifest by adding the new element `ExtendedOverrides` to the end of the manifest. -2. Created the shortcuts JSON file `shortcuts.json`, in the `src/` folder to define actions and their keyboard shortcuts. -3. Mapped actions to runtime calls with the associate method in `src/taskpane.js`. - - -## Run the sample from Localhost - -If you prefer to host the web server for the sample on your computer, follow these steps: - -1. Open the **/src/commands/ribbonJSON.js** file. -1. Edit line 9 to refer to the localhost:3000 endpoint as shown in the following code. - - ```javascript - const sourceUrl = "https://localhost:3000"; - ``` - -1. Save the file. -1. You need http-server to run the local web server. If you haven't installed this yet you can do this with the following command: - - ```console - npm install --global http-server - ``` - -2. Use a tool such as openssl to generate a self-signed certificate that you can use for the web server. Move the cert.pem and key.pem files to the webworker-customfunction folder for this sample. -3. From a command prompt, go to the web-worker folder and run the following command: - - ```console - http-server -S --cors . -p 3000 - ``` - -4. To reroute to localhost run office-addin-https-reverse-proxy. If you haven't installed this you can do this with the following command: - - ```console - npm install --global office-addin-https-reverse-proxy - ``` - - To reroute run the following in another command prompt: - - ```console - office-addin-https-reverse-proxy --url http://localhost:3000 - ``` - -5. Follow the steps in [Run the sample](https://github.com/OfficeDev/PnP-OfficeAddins/tree/main/Samples/excel-keyboard-shortcuts#run-the-sample), but upload the `manifest-localhost.xml` file for step 6. - -## Questions and feedback - -- Did you experience any problems with the sample? [Create an issue](https://github.com/OfficeDev/Office-Add-in-samples/issues/new/choose) and we'll help you out. -- We'd love to get your feedback about this sample. Go to our [Office samples survey](https://aka.ms/OfficeSamplesSurvey) to give feedback and suggest improvements. -- For general questions about developing Office Add-ins, go to [Microsoft Q&A](https://learn.microsoft.com/answers/topics/office-js-dev.html) using the office-js-dev tag. - -## Copyright - -Copyright (c) 2020 Microsoft Corporation. All rights reserved. - -This project has adopted the [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/). For more information, see the [Code of Conduct FAQ](https://opensource.microsoft.com/codeofconduct/faq/) or contact [opencode@microsoft.com](mailto:opencode@microsoft.com) with any additional questions or comments. - - diff --git a/Samples/excel-keyboard-shortcuts/assets/excel-keyboard-shortcuts-overview.jpg b/Samples/excel-keyboard-shortcuts/assets/excel-keyboard-shortcuts-overview.jpg deleted file mode 100644 index 938a53edf8bd3548a0a31c3464c0d23f1a585a16..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 240204 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

4< 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 Fx;2L{6Q&oVmX#31+bVl(4-E3q1BnEQ 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 diff --git a/Samples/excel-keyboard-shortcuts/src/taskpane.js b/Samples/excel-keyboard-shortcuts/src/taskpane.js deleted file mode 100644 index f67aeaa2e..000000000 --- a/Samples/excel-keyboard-shortcuts/src/taskpane.js +++ /dev/null @@ -1,66 +0,0 @@ -/* - * Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license. - * See LICENSE in the project root for license information. - */ - -/* global console, document, Excel, Office */ - -Office.actions.associate("SHOWTASKPANE", function() { - return Office.addin - .showAsTaskpane() - .then(function() { - return; - }) - .catch(function(error) { - return error.code; - }); -}); - -Office.actions.associate("HIDETASKPANE", function() { - return Office.addin - .hide() - .then(function() { - return; - }) - .catch(function(error) { - return error.code; - }); -}); - -Office.actions.associate("SETCOLOR", function() { - const context = new Excel.RequestContext(); - const range = context.workbook.getSelectedRange(); - const rangeFormat = range.format; - rangeFormat.fill.load(); - const colors = ["#FFFFFF", "#C7CC7A", "#7560BA", "#9DD9D2", "#FFE1A8", "#E26D5C"]; - return context.sync().then(function() { - const rangeTarget = context.workbook.getSelectedRange(); - let currentColor = -1; - for (let i = 0; i < colors.length; i++) { - if (colors[i] == rangeFormat.fill.color) { - currentColor = i; - break; - } - } - if (currentColor == -1) { - currentColor = 0; - } else if (currentColor == colors.length - 1) { - currentColor = 0; - } else { - currentColor++; - } - rangeTarget.format.fill.color = colors[currentColor]; - return context.sync(); - }); -}); - -Office.actions.associate("TESTCONFLICT", function() { - console.log("test conflict"); -}); - -Office.onReady(info => { - if (info.host === Office.HostType.Excel) { - document.getElementById("sideload-msg").style.display = "none"; - document.getElementById("app-body").style.display = "flex"; - } -}); diff --git a/Samples/hello-world/excel-hello-world/taskpane.html b/Samples/hello-world/excel-hello-world/taskpane.html index 5ade3bb91..4398fe80f 100644 --- a/Samples/hello-world/excel-hello-world/taskpane.html +++ b/Samples/hello-world/excel-hello-world/taskpane.html @@ -3,7 +3,7 @@ - + diff --git a/Samples/hello-world/outlook-hello-world/taskpane.html b/Samples/hello-world/outlook-hello-world/taskpane.html index c3c84f70a..0db884223 100644 --- a/Samples/hello-world/outlook-hello-world/taskpane.html +++ b/Samples/hello-world/outlook-hello-world/taskpane.html @@ -4,7 +4,7 @@ - + diff --git a/Samples/hello-world/powerpoint-hello-world/taskpane.html b/Samples/hello-world/powerpoint-hello-world/taskpane.html index c48fba690..777210c8e 100644 --- a/Samples/hello-world/powerpoint-hello-world/taskpane.html +++ b/Samples/hello-world/powerpoint-hello-world/taskpane.html @@ -4,7 +4,7 @@ - + diff --git a/Samples/hello-world/word-hello-world/taskpane.html b/Samples/hello-world/word-hello-world/taskpane.html index 6c5bf1944..21cbf5bfc 100644 --- a/Samples/hello-world/word-hello-world/taskpane.html +++ b/Samples/hello-world/word-hello-world/taskpane.html @@ -4,7 +4,7 @@ - + diff --git a/Samples/office-add-in-commands/auto-open-task-pane/home.html b/Samples/office-add-in-commands/auto-open-task-pane/home.html index d3c56c34b..609204d46 100644 --- a/Samples/office-add-in-commands/auto-open-task-pane/home.html +++ b/Samples/office-add-in-commands/auto-open-task-pane/home.html @@ -6,7 +6,7 @@ Word add-in sample to auto-open a task pane with a document - + diff --git a/Samples/office-add-in-save-custom-settings/src/taskpane.html b/Samples/office-add-in-save-custom-settings/src/taskpane.html index d785c2459..969530e3e 100644 --- a/Samples/office-add-in-save-custom-settings/src/taskpane.html +++ b/Samples/office-add-in-save-custom-settings/src/taskpane.html @@ -17,7 +17,7 @@ - + diff --git a/Samples/excel-keyboard-shortcuts/.gitignore b/Samples/office-keyboard-shortcuts/.gitignore similarity index 100% rename from Samples/excel-keyboard-shortcuts/.gitignore rename to Samples/office-keyboard-shortcuts/.gitignore diff --git a/Samples/excel-keyboard-shortcuts/CONTRIBUTING.md b/Samples/office-keyboard-shortcuts/CONTRIBUTING.md similarity index 100% rename from Samples/excel-keyboard-shortcuts/CONTRIBUTING.md rename to Samples/office-keyboard-shortcuts/CONTRIBUTING.md diff --git a/Samples/excel-keyboard-shortcuts/LICENSE b/Samples/office-keyboard-shortcuts/LICENSE similarity index 100% rename from Samples/excel-keyboard-shortcuts/LICENSE rename to Samples/office-keyboard-shortcuts/LICENSE diff --git a/Samples/office-keyboard-shortcuts/README.md b/Samples/office-keyboard-shortcuts/README.md new file mode 100644 index 000000000..4ce604389 --- /dev/null +++ b/Samples/office-keyboard-shortcuts/README.md @@ -0,0 +1,166 @@ +--- +page_type: sample +urlFragment: office-add-in-keyboard-shortcuts +products: + - office-excel + - office-word + - office +languages: + - javascript +extensions: + contentType: samples + technologies: + - Add-ins + createdDate: "11/5/2020 10:00:00 AM" +description: "This sample shows how to add keyboard shortcuts to your Office Add-in." +--- + +# Use keyboard shortcuts for Office Add-in actions + +## Summary + +This sample shows how to create custom keyboard shortcuts for an Office Add-in. Keyboard shortcuts let power users quickly use your add-in's features and give accessibility options to avoid using a mouse. In this sample, the following shortcuts are configured. + +- **Ctrl+Alt+1**: Opens the add-in's task pane. +- **Ctrl+Alt+2**: Hides the add-in's task pane. +- **Ctrl+Alt+3**: Performs an action that's specific to the current Office host. + - **Excel**: Cycles through colors in the currently selected cell. + - **Word**: Adds text to the document. + +Keyboard shortcuts can be used to achieve any action within the add-in runtime. + +![The sample's task pane displaying a list of the available keyboard shortcuts.](./assets/office-keyboard-shortcuts-overview.png) + +## Features + +- Add keyboard shortcuts to your Office Add-in. +- Provide users with keyboard shortcuts to invoke any action within the Office Add-in runtime. + +## Applies to + +- Office on the web + - Excel + - Word +- Office on Windows + - Excel: Version 2111 (Build 14701.10000) + - Word: Version 2408 (Build 17928.20114) +- Office on Mac + - Excel: Version 16.55 (21111400) + - Word: Version 16.88 (24081116) + +## Prerequisites + +- Microsoft 365 + +## Solution + +| Solution | Authors | +| -------- | --------- | +| Use keyboard shortcuts for Office Add-in actions | Microsoft | + +## Version history + +| Version | Date | Comments | +| ------- | ---- | -------- | +| 1.0 | 11-5-2020 | Initial release | +| 1.1 | May 11, 2021 | Removed yo office and modified to be GitHub hosted | +| 2.0 | September 27, 2024 | Added support for Word | + +## Disclaimer + +**THIS CODE IS PROVIDED *AS IS* WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING ANY IMPLIED WARRANTIES OF FITNESS FOR A PARTICULAR PURPOSE, MERCHANTABILITY, OR NON-INFRINGEMENT.** + +## Run the sample + +### Run the sample from GitHub + +Run this sample in Excel or Word. The add-in web files are served from this repository on GitHub. + +1. Download the **manifest.xml** file from this sample to a folder on your computer. +1. Sideload the manifest file in Excel or Word. The sideloading process varies depending on your platform. + + - **Office on the web**: [Manually sideload an add-in to Office on the web](https://learn.microsoft.com/office/dev/add-ins/testing/sideload-office-add-ins-for-testing#manually-sideload-an-add-in-to-office-on-the-web) + - **Office on Windows**: [Sideload Office Add-ins for testing from a network share](https://learn.microsoft.com/office/dev/add-ins/testing/create-a-network-shared-folder-catalog-for-task-pane-and-content-add-ins) + - **Office on Mac**: [Sideload Office Add-ins on Mac for testing](https://learn.microsoft.com/office/dev/add-ins/testing/sideload-an-office-add-in-on-mac) +1. Verify that the add-in loaded successfully. You'll see a **Keyboard shortcuts** button on the **Home** tab of the ribbon. +1. Test the sample by following the steps in [Try it out](#try-it-out). + +### Run the sample from localhost + +If you prefer to host the web server for the sample on your computer, follow these steps. + +1. Install a recent version of [npm](https://www.npmjs.com/get-npm) and [Node.js](https://nodejs.org/) on your computer. To verify if you've already installed these tools, run the commands `node -v` and `npm -v` in your terminal. +1. You need http-server to run the local web server. If you haven't installed this yet, you can do this with the following command. + + ```console + npm install --global http-server + ``` + +1. You need Office-Addin-dev-certs to generate self-signed certificates to run the local web server. If you haven't installed this yet, you can do this with the following command. + + ```console + npm install --global office-addin-dev-certs + ``` + +1. Clone or download this sample to a folder on your computer, then go to that folder in a console or terminal window. +1. Run the following command to generate a self-signed certificate to use for the web server. + + ```console + npx office-addin-dev-certs install + ``` + + This command will display the folder location where it generated the certificate files. + +1. Go to the folder location where the certificate files were generated, then copy the **localhost.crt** and **localhost.key** files to the cloned or downloaded sample folder. +1. Run the following command. + + ```console + http-server -S -C localhost.crt -K localhost.key --cors . -p 3000 + ``` + + The http-server will run and host the current folder's files on localhost:3000. + +1. Sideload the **manifest-localhost.xml** file in Excel or Word. The sideloading process varies depending on your platform. + + - **Office on the web**: [Manually sideload an add-in to Office on the web](https://learn.microsoft.com/office/dev/add-ins/testing/sideload-office-add-ins-for-testing#manually-sideload-an-add-in-to-office-on-the-web) + - **Office on Windows**: [Sideload Office Add-ins for testing from a network share](https://learn.microsoft.com/office/dev/add-ins/testing/create-a-network-shared-folder-catalog-for-task-pane-and-content-add-ins) + - **Office on Mac**: [Sideload Office Add-ins on Mac for testing](https://learn.microsoft.com/office/dev/add-ins/testing/sideload-an-office-add-in-on-mac) +1. Verify that the add-in loaded successfully. You'll see a **Keyboard shortcuts** button on the **Home** tab of the ribbon. +1. Test the sample by following the steps in [Try it out](#try-it-out). + +## Try it out + +Once the add-in is loaded, try out its functionality. + +1. Press **Ctrl+Alt+1** on your keyboard to open the add-in's task pane. + + > [!NOTE] + > If the keyboard shortcut is already in use in Excel or Word, a dialog will be shown so that you can select which action you'd like to map to the shortcut. Once you select an action, you can change your preference by invoking the **Reset Office Add-in Shortcut Preferences** command from the search field. + > + > ![The Reset Office Add-in Shortcut Preferences option in Excel.](./assets/office-keyboard-shortcuts-reset.png) + +1. Try the other available shortcuts shown in the task pane. + +## Key parts of this sample + +The custom keyboard shortcuts implemented in this sample rely on the following components. + +- The add-in manifest (**manifest.xml**) is configured to use a shared runtime. For guidance on how to implement a shared runtime in your add-in, see [Configure your Office Add-in to use a shared runtime](https://learn.microsoft.com/office/dev/add-ins/develop/configure-your-add-in-to-use-a-shared-runtime). +- A shortcuts JSON file (**shortcuts.json**) is included in the sample to define the add-in's actions and their keyboard shortcuts. For guidance on how to construct the JSON file, see the [JSON file schema](https://developer.microsoft.com/json-schemas/office-js/extended-manifest.schema.json). +- The custom actions defined in the JSON file are then mapped to their specific JavaScript functions (**taskpane.js**) using the [Office.actions.associate](https://learn.microsoft.com/javascript/api/office/office.actions#office-office-actions-associate-member(1)) method. + +To learn more about each component, see [Add custom keyboard shortcuts to your Office Add-ins](https://learn.microsoft.com/office/dev/add-ins/design/keyboard-shortcuts). + +## Questions and feedback + +- Did you experience any problems with the sample? [Create an issue](https://github.com/OfficeDev/Office-Add-in-samples/issues/new/choose) and we'll help you out. +- We'd love to get your feedback about this sample. Go to our [Office samples survey](https://aka.ms/OfficeSamplesSurvey) to give feedback and suggest improvements. +- For general questions about developing Office Add-ins, go to [Microsoft Q&A](https://learn.microsoft.com/answers/topics/office-js-dev.html) using the office-js-dev tag. + +## Copyright + +Copyright (c) 2020 Microsoft Corporation. All rights reserved. + +This project has adopted the [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/). For more information, see the [Code of Conduct FAQ](https://opensource.microsoft.com/codeofconduct/faq/) or contact [opencode@microsoft.com](mailto:opencode@microsoft.com) with any additional questions or comments. + + diff --git a/Samples/office-keyboard-shortcuts/assets/icon-16.png b/Samples/office-keyboard-shortcuts/assets/icon-16.png new file mode 100644 index 0000000000000000000000000000000000000000..b6509798aadcf9eb0e382bab24b3dc67de818729 GIT binary patch literal 1596 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!6#=yXs@#Xw?AV;#qHKHUqKdq!Zu_%?nF(p4K zRlzeiF+DXXH8G{K@MNkD0|RqeW=KRygs+cPa(=E}B1ny1MQ#C5Hv@x>eMLcHa&~Ho zLQ-maW}dCm``!DM6f#q6mBLMZ4SWlnQ!_F>s)|yBtNcQetFn_VQY3>#8yZ_Em|N-@ znp#>Indm4O85o-B8(8Wan&=uBS{Ybc85k-+ffCTRqLehNAQv~NT|l0#QbtKhft9{~ zd3m{Bxv^e;QM$gNrKP35fswwEkuFe$ZgFK^Nn(X=Ua>OF1ees}t-3#_`hBq$Z(46Le)Ln;eW z^@CE2^Gl18f$@>14ATq@JNy=b6armiBkFOx%nuOw0|9EzK=pdOh=sOA_;vQ(<;z0_}$CHO8yg%DE^tu_V7JBtJg~ zmI?wg@=NlIGx7@*oSi|jZmysao|%`DUtX*UiYAD!T~doO%TiO^it=+6z~O9_iNy`X z`5&S`h1~Gd2Rce0lvt1w4@?M{B0)@eRseF~nJG07n1hOdS;gz?%1QF! zNj{#Qi51`9#YzfKSn=oo|9W)?217PhR>KB{%eS}Z|L5lB{?E>#u;IkvcK-jy4vfOg zQVbjlGv+ZU*nNF}e}B5piBtdo{k5LkIdkUB#_7|iAG~>UCS!)L+Tx8HKgupxVieM9 z;=ph)hmrG+qw#;SfJUnm*Ax~QmN$qQbaZt!^)fStg@u_ae3f7FKq5f(L`_@z`FV|^ zjX&(`{xGckeTwDEPbQ5698Y|blai8l)c!W}c*HDln&D_A15<(PF*A-M1|p>s*gIT~ zn1*Doc||WTP4AD)uh@2z0hc!;5D1oQ7ln-cB=>@Ff`rX+&w41;T!*&zXBV*Cz?$Vk!Iq)rRwX%^5-j9%af=3%!||AYENwP@joEdEZfX{dHR}v2RPpx>}6+lRN#BuRKcQm0YhU2PgTe~DWM4fV}M0Q literal 0 HcmV?d00001 diff --git a/Samples/office-keyboard-shortcuts/assets/icon-32.png b/Samples/office-keyboard-shortcuts/assets/icon-32.png new file mode 100644 index 0000000000000000000000000000000000000000..dcf56db7089a10edc61a0914be2af6736c8c676c GIT binary patch literal 2386 zcmbVOX;2es8t#w~5{5vyBA3zx&_zkoImjg-fq(=FA_j;fD+x&>QF53B2?{%Mh=3@& z=&Inch^2TUIO72_Gs>}`Fs_c*Dkvg~sGuSWjvP*-;_eS?YHPcytH1B-=Xu}fy{f*# z=%|GROBYK300^RRVGQyGr(PTu08p5$h$Lj=Yz&nemui!Z>2f^`2$b3+7!;}HE8!Se zuFP0-3HAp7^jeifYLtp2`3kL?DxbnoO==y&1_1vBCY@Zd8a9GS@Jf{?fc*0O&ty=g z3?Rq*i6OBr1Wr+fuhYXz*F{Mb>sBjxO7en0(BH&I45(qF95ks@H3q&Zfc()eA6ZWw z)5zdQh;elQ`I9KAI2sJm>S552%BCpjOfJabQR#j>E`#L@G9Wse2JvWg76qd7As!#1 zgP$KV;!Uqi=En%bKKnv;0pt{;QOBpz($mwa=}f9tzmi7h@pv?dL1Qo|2!dkB&=}<= zipJnMZ9xbd6nd4;sM2b{DU0$XZJIHFj41sSf?6jQe=)2vd`=XSGMY)QqtU4lO|71a z>m%A=jDi0nqogF$*_8SZ>tnC0cFj zbQeUYXpLG!idF}PgiKYP1O6#qrBQ0r4L(z4`V_Sg)~nXS$}qiF4SvisU-cCY|6BZ@ z_{#q`e>6lCZK_%Rt9ho6kdB;Mei;R1^JSP|4KhJ`WKNU&xk(?p< zmLEpzf`USrMP&qsR8qPeME$1Q&*kAxx&K*hynCoXQDAaGNHAFRbmcq z17NnP>Hd%FdpsqU#*&XU==W=1`)9r1-ZT8e6?*289-@T6Z>%bzU^vJ8sK#m?#=QbCPbk~`Rkez-iyA63Aq zsM~-70XVj!)WacEJG6guH%;f5T9ooze%!%6?84n@mEPxY?TKqd3)ckiiym#4YCX0j zlskU=&Hf7Sb)#>q8%_p#+PD!jM+3XFp19r4?4Gm!gqdc7H)7}KKd-%XUP2?P_h!*s zo8tM!FIlebr+z8{?@d@7V4Uh9_3q~0E%WX4Mo*%vDqje#x2)flub?N~2kHpdhr$V4 zU!m+TK*a)o2Uo7F-kaw{U#Y^5N%Ar_ZQSMJv{mku^SoYGKHDJ_Renei8+&y$z;DT| zr@ojj?{-E(Wx*3ksaN!EzyA6whNd&>3|@M#eedkcX|>W<-8jB3@E;*W%!76#mg)~5aU+mhL#c4#Je4VMAooIGr zg*gR}Sz@xZDJP~u%ZRj`Y^<#yd*?X%>FGr?Y~mJxQ2mXTdL!Z4t;GK5y}28$BdV-} z&kAqV$HtLFFV{Ex4ZiC*H>I zOXcO{?~krHc`W(+BM}Gf=HT+pm$6+4nnhlAM-!;?TGvQU#4UYl{MOOZd|y*RMq^~S z@x#4=n=8WSZ;PsGI^VeUhn`?p;cPeSVf#TTu6M}#@0(ka22T11&T*JzKAKy+=S88A zoJHCc2|l>JW_!3<5%y`2`<_{)N&8YypR5fRtiM3}kD$?m@9?AT_4EiEs! z@z^D_dyLa2#iI>|Mz@|jC3rtVZ^u#3gm;lFQ~S1}(}kRx#k;@`yAfPTU~j`!FA07} zN3HlBy>&>P+j8Z}aIP<(H7=Fa7y0lglD_z>?=Pyy(Eg=@VXU>-GXhgJn6t E1JVSZtpET3 literal 0 HcmV?d00001 diff --git a/Samples/office-keyboard-shortcuts/assets/icon-80.png b/Samples/office-keyboard-shortcuts/assets/icon-80.png new file mode 100644 index 0000000000000000000000000000000000000000..5e63769d8e0f21f7ba1dc81cbc6070d901b4d8ac GIT binary patch literal 4836 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 literal 0 HcmV?d00001 diff --git a/Samples/office-keyboard-shortcuts/assets/office-keyboard-shortcuts-overview.png b/Samples/office-keyboard-shortcuts/assets/office-keyboard-shortcuts-overview.png new file mode 100644 index 0000000000000000000000000000000000000000..d05730908a9cc2df1b20b0ab75f7be4c7e373f4c GIT binary patch literal 15564 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 b--x_pNi(EwxBs&Z1CSDv7p)UE4Ep~7O^@t? literal 0 HcmV?d00001 diff --git a/Samples/office-keyboard-shortcuts/assets/office-keyboard-shortcuts-reset.png b/Samples/office-keyboard-shortcuts/assets/office-keyboard-shortcuts-reset.png new file mode 100644 index 0000000000000000000000000000000000000000..7d29c3922bb6ca8a4ab0ba63e62f670886d2e095 GIT binary patch literal 42798 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 literal 0 HcmV?d00001 diff --git a/Samples/excel-keyboard-shortcuts/assets/sample.json b/Samples/office-keyboard-shortcuts/assets/sample.json similarity index 61% rename from Samples/excel-keyboard-shortcuts/assets/sample.json rename to Samples/office-keyboard-shortcuts/assets/sample.json index 01eb43909..120c8a3c5 100644 --- a/Samples/excel-keyboard-shortcuts/assets/sample.json +++ b/Samples/office-keyboard-shortcuts/assets/sample.json @@ -3,12 +3,12 @@ "name": "office-add-in-keyboard-shortcuts", "reponame": "OfficeDev", "source": "officedev", - "title": "Use keyboard shortcuts for Office add-in actions", - "shortDescription": "This sample shows how to set up a basic Excel add-in project that utilizes keyboard shortcuts. ", - "url": "https://github.com/OfficeDev/Office-Add-in-samples/tree/main/Samples/excel-keyboard-shortcuts", - "longDescription": "This sample shows how to set up a basic Excel add-in project that utilizes keyboard shortcuts. Currently, the shortcuts are configured to show and hide the task pane as well as cycle through colors for a selected cell. Keyboard shortcuts can be used to achieve any action within the add-in runtime.", + "title": "Use keyboard shortcuts for Office Add-in actions", + "shortDescription": "This sample shows how to create custom keyboard shortcuts to invoke certain actions for your Office Add-in. ", + "url": "https://github.com/OfficeDev/Office-Add-in-samples/tree/main/Samples/office-keyboard-shortcuts", + "longDescription": "This sample shows how to create custom keyboard shortcuts for your add-in. Keyboard shortcuts can be used to achieve any action within the add-in runtime.", "creationDateTime": "2020-11-05", - "updateDateTime": "2021-05-11", + "updateDateTime": "2024-09-27", "products": [ "Office" ], @@ -22,8 +22,8 @@ { "type": "image", "order": 100, - "url": "https://officedev.github.io/Office-Add-in-samples/Samples/excel-keyboard-shortcuts/assets/excel-keyboard-shortcuts-overview.jpg", - "alt": "Screen shot of Excel showing the use of CTRL+SHIFT+UP to open the task pane, and CTRL+SHIFT+DOWN to close the task pane." + "url": "https://officedev.github.io/Office-Add-in-samples/Samples/office-keyboard-shortcuts/assets/office-keyboard-shortcuts-overview.jpg", + "alt": "The sample's task pane displaying a list of available keyboard shortcuts." } ], "authors": [ diff --git a/Samples/excel-keyboard-shortcuts/manifest-localhost.xml b/Samples/office-keyboard-shortcuts/manifest-localhost.xml similarity index 63% rename from Samples/excel-keyboard-shortcuts/manifest-localhost.xml rename to Samples/office-keyboard-shortcuts/manifest-localhost.xml index e3e619212..79c73f9cd 100644 --- a/Samples/excel-keyboard-shortcuts/manifest-localhost.xml +++ b/Samples/office-keyboard-shortcuts/manifest-localhost.xml @@ -7,15 +7,16 @@ 1.0.0.0 Contoso en-US - + - + https://www.contoso.com + @@ -24,10 +25,51 @@ ReadWriteDocument + + + + + + + + <Description resid="GetStarted.Description"/> + <LearnMoreUrl resid="GetStarted.LearnMoreUrl"/> + </GetStarted> + <FunctionFile resid="ContosoAddin.Url" /> + <ExtensionPoint xsi:type="PrimaryCommandSurface"> + <OfficeTab id="TabHome"> + <Group id="CommandsGroup"> + <Label resid="CommandsGroup.Label" /> + <Icon> + <bt:Image size="16" resid="Icon.16x16" /> + <bt:Image size="32" resid="Icon.32x32" /> + <bt:Image size="80" resid="Icon.80x80" /> + </Icon> + <Control xsi:type="Button" id="TaskpaneButton"> + <Label resid="TaskpaneButton.Label" /> + <Supertip> + <Title resid="TaskpaneButton.Label" /> + <Description resid="TaskpaneButton.Tooltip" /> + </Supertip> + <Icon> + <bt:Image size="16" resid="Icon.16x16" /> + <bt:Image size="32" resid="Icon.32x32" /> + <bt:Image size="80" resid="Icon.80x80" /> + </Icon> + <Action xsi:type="ShowTaskpane"> + <TaskpaneId>ShowTaskpaneButton</TaskpaneId> + <SourceLocation resid="ContosoAddin.Url" /> + </Action> + </Control> + </Group> + </OfficeTab> + </ExtensionPoint> + </DesktopFormFactor> + </Host> <Host xsi:type="Workbook"> - <Runtimes> - <Runtime resid="ContosoAddin.Url" lifetime="long" /> - </Runtimes> + <Runtimes> + <Runtime resid="ContosoAddin.Url" lifetime="long" /> + </Runtimes> <DesktopFormFactor> <GetStarted> <Title resid="GetStarted.Title"/> @@ -56,7 +98,7 @@ <bt:Image size="80" resid="Icon.80x80" /> </Icon> <Action xsi:type="ShowTaskpane"> - <TaskpaneId>ButtonId1</TaskpaneId> + <TaskpaneId>ShowTaskpaneButton</TaskpaneId> <SourceLocation resid="ContosoAddin.Url" /> </Action> </Control> @@ -79,11 +121,11 @@ <bt:ShortStrings> <bt:String id="GetStarted.Title" DefaultValue="Get started with your sample add-in!" /> <bt:String id="CommandsGroup.Label" DefaultValue="Commands Group" /> - <bt:String id="TaskpaneButton.Label" DefaultValue="PnP keyboard shortcuts" /> + <bt:String id="TaskpaneButton.Label" DefaultValue="Keyboard shortcuts" /> </bt:ShortStrings> <bt:LongStrings> - <bt:String id="GetStarted.Description" DefaultValue="Your sample add-in loaded successfully. Go to the HOME tab and click the 'Show Taskpane' button to get started." /> - <bt:String id="TaskpaneButton.Tooltip" DefaultValue="Click to Show a Taskpane" /> + <bt:String id="GetStarted.Description" DefaultValue="Your sample add-in loaded successfully. Go to the HOME tab and click the 'Keyboard shortcuts' button to get started." /> + <bt:String id="TaskpaneButton.Tooltip" DefaultValue="Open the add-in task pane." /> </bt:LongStrings> </Resources> </VersionOverrides> diff --git a/Samples/excel-keyboard-shortcuts/manifest.xml b/Samples/office-keyboard-shortcuts/manifest.xml similarity index 56% rename from Samples/excel-keyboard-shortcuts/manifest.xml rename to Samples/office-keyboard-shortcuts/manifest.xml index e6031c8ba..6e2fc329c 100644 --- a/Samples/excel-keyboard-shortcuts/manifest.xml +++ b/Samples/office-keyboard-shortcuts/manifest.xml @@ -7,27 +7,69 @@ <Version>1.0.0.0</Version> <ProviderName>Contoso</ProviderName> <DefaultLocale>en-US</DefaultLocale> - <DisplayName DefaultValue="PnP keyboard shortcuts sample"/> + <DisplayName DefaultValue="Keyboard shortcuts sample"/> <Description DefaultValue="Shows how to add keyboard shortcuts to your Office Add-in."/> - <IconUrl DefaultValue="https://officedev.github.io/Office-Add-in-samples/Samples/excel-keyboard-shortcuts/assets/icon-32.png"/> - <HighResolutionIconUrl DefaultValue="https://officedev.github.io/Office-Add-in-samples/Samples/excel-keyboard-shortcuts/assets/icon-80.png"/> - <SupportUrl DefaultValue="https://github.com/OfficeDev/PnP-OfficeAddins/tree/main/Samples/excel-keyboard-shortcuts"/> + <IconUrl DefaultValue="https://officedev.github.io/Office-Add-in-samples/Samples/office-keyboard-shortcuts/assets/icon-32.png"/> + <HighResolutionIconUrl DefaultValue="https://officedev.github.io/Office-Add-in-samples/Samples/office-keyboard-shortcuts/assets/icon-80.png"/> + <SupportUrl DefaultValue="https://github.com/OfficeDev/PnP-OfficeAddins/tree/main/Samples/office-keyboard-shortcuts"/> <AppDomains> <AppDomain>https://www.contoso.com</AppDomain> </AppDomains> <Hosts> + <Host Name="Document"/> <Host Name="Workbook"/> </Hosts> <DefaultSettings> - <SourceLocation DefaultValue="https://officedev.github.io/Office-Add-in-samples/Samples/excel-keyboard-shortcuts/src/taskpane.html"/> + <SourceLocation DefaultValue="https://officedev.github.io/Office-Add-in-samples/Samples/office-keyboard-shortcuts/src/taskpane.html"/> </DefaultSettings> <Permissions>ReadWriteDocument</Permissions> <VersionOverrides xmlns="http://schemas.microsoft.com/office/taskpaneappversionoverrides" xsi:type="VersionOverridesV1_0"> <Hosts> + <Host xsi:type="Document"> + <Runtimes> + <Runtime resid="ContosoAddin.Url" lifetime="long" /> + </Runtimes> + <DesktopFormFactor> + <GetStarted> + <Title resid="GetStarted.Title"/> + <Description resid="GetStarted.Description"/> + <LearnMoreUrl resid="GetStarted.LearnMoreUrl"/> + </GetStarted> + <FunctionFile resid="ContosoAddin.Url" /> + <ExtensionPoint xsi:type="PrimaryCommandSurface"> + <OfficeTab id="TabHome"> + <Group id="CommandsGroup"> + <Label resid="CommandsGroup.Label" /> + <Icon> + <bt:Image size="16" resid="Icon.16x16" /> + <bt:Image size="32" resid="Icon.32x32" /> + <bt:Image size="80" resid="Icon.80x80" /> + </Icon> + <Control xsi:type="Button" id="TaskpaneButton"> + <Label resid="TaskpaneButton.Label" /> + <Supertip> + <Title resid="TaskpaneButton.Label" /> + <Description resid="TaskpaneButton.Tooltip" /> + </Supertip> + <Icon> + <bt:Image size="16" resid="Icon.16x16" /> + <bt:Image size="32" resid="Icon.32x32" /> + <bt:Image size="80" resid="Icon.80x80" /> + </Icon> + <Action xsi:type="ShowTaskpane"> + <TaskpaneId>ShowTaskpaneButton</TaskpaneId> + <SourceLocation resid="ContosoAddin.Url" /> + </Action> + </Control> + </Group> + </OfficeTab> + </ExtensionPoint> + </DesktopFormFactor> + </Host> <Host xsi:type="Workbook"> - <Runtimes> - <Runtime resid="ContosoAddin.Url" lifetime="long" /> - </Runtimes> + <Runtimes> + <Runtime resid="ContosoAddin.Url" lifetime="long" /> + </Runtimes> <DesktopFormFactor> <GetStarted> <Title resid="GetStarted.Title"/> @@ -56,7 +98,7 @@ <bt:Image size="80" resid="Icon.80x80" /> </Icon> <Action xsi:type="ShowTaskpane"> - <TaskpaneId>ButtonId1</TaskpaneId> + <TaskpaneId>ShowTaskpaneButton</TaskpaneId> <SourceLocation resid="ContosoAddin.Url" /> </Action> </Control> @@ -68,24 +110,24 @@ </Hosts> <Resources> <bt:Images> - <bt:Image id="Icon.16x16" DefaultValue="https://officedev.github.io/Office-Add-in-samples/Samples/excel-keyboard-shortcuts/assets/icon-16.png"/> - <bt:Image id="Icon.32x32" DefaultValue="https://officedev.github.io/Office-Add-in-samples/Samples/excel-keyboard-shortcuts/icon-32.png"/> - <bt:Image id="Icon.80x80" DefaultValue="https://officedev.github.io/Office-Add-in-samples/Samples/excel-keyboard-shortcuts/assets/icon-80.png"/> + <bt:Image id="Icon.16x16" DefaultValue="https://officedev.github.io/Office-Add-in-samples/Samples/office-keyboard-shortcuts/assets/icon-16.png"/> + <bt:Image id="Icon.32x32" DefaultValue="https://officedev.github.io/Office-Add-in-samples/Samples/office-keyboard-shortcuts/icon-32.png"/> + <bt:Image id="Icon.80x80" DefaultValue="https://officedev.github.io/Office-Add-in-samples/Samples/office-keyboard-shortcuts/assets/icon-80.png"/> </bt:Images> <bt:Urls> <bt:Url id="GetStarted.LearnMoreUrl" DefaultValue="https://go.microsoft.com/fwlink/?LinkId=276812" /> - <bt:Url id="ContosoAddin.Url" DefaultValue="https://officedev.github.io/Office-Add-in-samples/Samples/excel-keyboard-shortcuts/src/taskpane.html" /> + <bt:Url id="ContosoAddin.Url" DefaultValue="https://officedev.github.io/Office-Add-in-samples/Samples/office-keyboard-shortcuts/src/taskpane.html" /> </bt:Urls> <bt:ShortStrings> <bt:String id="GetStarted.Title" DefaultValue="Get started with your sample add-in!" /> <bt:String id="CommandsGroup.Label" DefaultValue="Commands Group" /> - <bt:String id="TaskpaneButton.Label" DefaultValue="PnP keyboard shortcuts" /> + <bt:String id="TaskpaneButton.Label" DefaultValue="Keyboard shortcuts" /> </bt:ShortStrings> <bt:LongStrings> - <bt:String id="GetStarted.Description" DefaultValue="Your sample add-in loaded successfully. Go to the HOME tab and click the 'Show Taskpane' button to get started." /> - <bt:String id="TaskpaneButton.Tooltip" DefaultValue="Click to Show a Taskpane" /> + <bt:String id="GetStarted.Description" DefaultValue="Your sample add-in loaded successfully. Go to the HOME tab and click the 'Keyboard shortcuts' button to get started." /> + <bt:String id="TaskpaneButton.Tooltip" DefaultValue="Open the add-in task pane." /> </bt:LongStrings> </Resources> </VersionOverrides> - <ExtendedOverrides Url="https://officedev.github.io/Office-Add-in-samples/Samples/excel-keyboard-shortcuts/src/shortcuts.json"></ExtendedOverrides> + <ExtendedOverrides Url="https://officedev.github.io/Office-Add-in-samples/Samples/office-keyboard-shortcuts/src/shortcuts.json"></ExtendedOverrides> </OfficeApp> \ No newline at end of file diff --git a/Samples/excel-keyboard-shortcuts/src/shortcuts.json b/Samples/office-keyboard-shortcuts/src/shortcuts.json similarity index 66% rename from Samples/excel-keyboard-shortcuts/src/shortcuts.json rename to Samples/office-keyboard-shortcuts/src/shortcuts.json index 101de7518..1158a3095 100644 --- a/Samples/excel-keyboard-shortcuts/src/shortcuts.json +++ b/Samples/office-keyboard-shortcuts/src/shortcuts.json @@ -1,48 +1,48 @@ { "actions": [ { - "id": "SHOWTASKPANE", + "id": "ShowTaskpane", "type": "ExecuteFunction", "name": "Show task pane for add-in" }, { - "id": "HIDETASKPANE", + "id": "HideTaskpane", "type": "ExecuteFunction", "name": "Hide task pane for add-in" }, { - "id": "SETCOLOR", + "id": "RunAction", "type": "ExecuteFunction", - "name": "Cycle through cell colors" + "name": "Run an action specific to the Office host" }, { - "id": "TESTCONFLICT", + "id": "TestConflict", "type": "ExecuteFunction", - "name": "Test the conflict modal" + "name": "Test the conflict dialog" } ], "shortcuts": [ { - "action": "SHOWTASKPANE", + "action": "ShowTaskpane", "key": { "default": "Ctrl+Alt+1" } }, { - "action": "HIDETASKPANE", + "action": "HideTaskpane", "key": { "default": "Ctrl+Alt+2" } }, { - "action": "SETCOLOR", + "action": "RunAction", "key": { "default": "Ctrl+Alt+3" } }, { - "action": "TESTCONFLICT", + "action": "TestConflict", "key": { "default": "Ctrl+R" } diff --git a/Samples/office-keyboard-shortcuts/src/taskpane.css b/Samples/office-keyboard-shortcuts/src/taskpane.css new file mode 100644 index 000000000..5249d8895 --- /dev/null +++ b/Samples/office-keyboard-shortcuts/src/taskpane.css @@ -0,0 +1,83 @@ +/* + * Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license. + * See LICENSE in the project root for license information. + */ + + html, + body { + width: 100%; + height: 100%; + margin: 0; + padding: 0; + } + + h1 { + align-items: left; + } + + ul { + margin: 0; + padding: 0; + } + + .ms-welcome__header { + padding: 20px; + padding-bottom: 30px; + padding-top: 100px; + display: -webkit-flex; + display: flex; + -webkit-flex-direction: column; + flex-direction: column; + align-items: center; + } + + .ms-welcome__main { + display: -webkit-flex; + display: flex; + -webkit-flex-direction: column; + flex-direction: column; + -webkit-flex-wrap: nowrap; + flex-wrap: nowrap; + -webkit-align-items: center; + align-items: center; + -webkit-flex: 1 0 0; + flex: 1 0 0; + padding: 10px 20px; + } + + .ms-welcome__main>h1 { + width: 100%; + } + + .ms-welcome__features { + list-style-type: none; + margin-top: 20px; + } + + .ms-welcome__features.ms-List .ms-ListItem { + padding-bottom: 20px; + display: -webkit-flex; + display: flex; + } + + .ms-welcome__features.ms-List .ms-ListItem>.ms-Icon { + margin-right: 10px; + } + + .ms-welcome__action.ms-Button--hero { + margin-top: 30px; + } + + .ms-Button.ms-Button--hero .ms-Button-label { + color: #0078d7; + } + + .ms-Button.ms-Button--hero:hover .ms-Button-label, + .ms-Button.ms-Button--hero:focus .ms-Button-label { + color: #005a9e; + cursor: pointer; + } + + #task-pane-content { + text-align: left; + } \ No newline at end of file diff --git a/Samples/excel-keyboard-shortcuts/src/taskpane.html b/Samples/office-keyboard-shortcuts/src/taskpane.html similarity index 51% rename from Samples/excel-keyboard-shortcuts/src/taskpane.html rename to Samples/office-keyboard-shortcuts/src/taskpane.html index 685c536d9..802685051 100644 --- a/Samples/excel-keyboard-shortcuts/src/taskpane.html +++ b/Samples/office-keyboard-shortcuts/src/taskpane.html @@ -25,40 +25,41 @@ <body class="ms-font-m ms-welcome ms-Fabric"> <!-- The following image URL tracks diagnostic data for this sample add-in. Please remove the image tag if you reuse this sample in your own code project. --> - <img src="https://pnptelemetry.azurewebsites.net/pnp-officeaddins/samples/excel-keyboard-shortcuts-run" /> + <img src="https://pnptelemetry.azurewebsites.net/pnp-officeaddins/samples/office-keyboard-shortcuts-run" /> <header class="ms-welcome__header ms-bgColor-neutralLighter"> <img width="90" height="90" src="../assets/logo-filled.png" alt="Contoso" title="Contoso" /> - <h1 class="ms-font-su">Keyboard Shortcuts</h1> + <h1 class="ms-font-su">Keyboard shortcuts sample</h1> </header> <section id="sideload-msg" class="ms-welcome__main"> <h2 class="ms-font-xl">Please sideload your add-in to see app body.</h2> </section> <main id="app-body" class="ms-welcome__main" style="display: none;"> - <h1 class="ms-font-xl"> Try the following keyboard shortcuts: </h1> - <ul class="ms-List ms-welcome__features"> - <li class="ms-ListItem"> - <span class="ms-font-l">Ctrl+Alt+1 to Show task pane.</span> - </li> - <li class="ms-ListItem"> - <span class="ms-font-l">Ctrl+Alt+2 to Hide task pane.</span> - </li> - <li class="ms-ListItem"> - <span class="ms-font-l">Ctrl+Alt+3 to cycle through cell colors.</span> - </li> - <li class="ms-ListItem"> - </li> - </ul> - <h2 class="ms-font-l"> - If using a shortcut that conflicts with existing Excel shortcuts, - the user will see a conflict modal. For e.g. try pressing Ctrl+R. - - The shortcut is programmed to log "test conflict" in the console, but in order to use the shortcut, - the user must first confirm which action the shortcut must take. - - After making a selection, if you wish to reset the shortcut preference, - search for "Reset Office Add-in Shortcut Preferences" in the Tell Me Search box. - </h2> + <div id="task-pane-content"> + <p class="ms-font-m"> Try the following keyboard shortcuts.</p> + <ul class="ms-List ms-welcome__features"> + <li class="ms-ListItem"> + <span class="ms-font-m"><b>Ctrl+Alt+1</b>: Open the add-in's task pane.</span> + </li> + <li class="ms-ListItem"> + <span class="ms-font-m"><b>Ctrl+Alt+2</b>: Hide the add-in's task pane.</span> + </li> + <li class="ms-ListItem"> + <span class="ms-font-m"> + <b>Ctrl+Alt+3</b>: Run an action that's specific to the current Office host. + In Excel, this shortcut cycles through colors in the currently selected cell. + In Word, this shortcut adds text to the document. + </span> + </li> + </ul> + <hr> + <p class="ms-font-m"> + If a custom shortcut conflicts with an existing shortcut that's defined in the host application or in another add-in, a dialog will be shown. + This dialog will ask you to confirm which action you want to be mapped to the keyboard shortcut. + </p> + <p class="ms-font-m">To test this now, press <b>Ctrl+R</b>.</p> + <p class="ms-font-m">After you select an action, you can change your preference by invoking <b>Reset Office Add-in Shortcut Preferences</b> from the search field.</p> + </div> </main> </body> diff --git a/Samples/office-keyboard-shortcuts/src/taskpane.js b/Samples/office-keyboard-shortcuts/src/taskpane.js new file mode 100644 index 000000000..d91e78039 --- /dev/null +++ b/Samples/office-keyboard-shortcuts/src/taskpane.js @@ -0,0 +1,84 @@ +/* + * Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license. + * See LICENSE in the project root for license information. + */ + +/* global console, document, Excel, Office */ + +// Initialize the Office JavaScript API library. +Office.onReady(() => { + document.getElementById("sideload-msg").style.display = "none"; + document.getElementById("app-body").style.display = "flex"; +}); + +// Configure the keyboard shortcut to open the task pane. +Office.actions.associate("ShowTaskpane", () => { +return Office.addin + .showAsTaskpane() + .then(() => { + return; + }) + .catch((error) => { + return error.code; + }); +}); + +// Configure the keyboard shortcut to close the task pane. +Office.actions.associate("HideTaskpane", () => { +return Office.addin + .hide() + .then(() => { + return; + }) + .catch((error) => { + return error.code; + }); +}); + +// Configure the keyboard shortcut to run an action that's specific to the current Office host. +Office.actions.associate("RunAction", () => { +const host = Office.context.host; + +// Cycle through cell colors in Excel. +if (host === Office.HostType.Excel) { + const context = new Excel.RequestContext(); + const range = context.workbook.getSelectedRange(); + const rangeFormat = range.format; + rangeFormat.fill.load(); + const colors = ["#FFFFFF", "#C7CC7A", "#7560BA", "#9DD9D2", "#FFE1A8", "#E26D5C"]; + return context.sync().then(() => { + const rangeTarget = context.workbook.getSelectedRange(); + let currentColor = -1; + for (let i = 0; i < colors.length; i++) { + if (colors[i] == rangeFormat.fill.color) { + currentColor = i; + break; + } + } + if (currentColor == -1) { + currentColor = 0; + } else if (currentColor == colors.length - 1) { + currentColor = 0; + } else { + currentColor++; + } + rangeTarget.format.fill.color = colors[currentColor]; + return context.sync(); + }); +} else if (host === Office.HostType.Word) { + // Insert text into the Word document. + const context = new Word.RequestContext(); + return context.sync().then(() => { + context.document.body.insertText( + "Added using a custom keyboard shortcut.", + Word.InsertLocation.start + ); + return context.sync(); + }); +} +}); + +// Display the shortcut conflict dialog for testing. +Office.actions.associate("TestConflict", () => { + console.log("Display the shortcut conflict dialog for testing."); +}); diff --git a/Samples/outlook-encrypt-attachments/src/commands/commands.js b/Samples/outlook-encrypt-attachments/src/commands/commands.js index 6b9770fca..dc467eb48 100644 --- a/Samples/outlook-encrypt-attachments/src/commands/commands.js +++ b/Samples/outlook-encrypt-attachments/src/commands/commands.js @@ -303,7 +303,7 @@ function onAppointmentAttendeesChangedHandler(event) { * Method that fires when an attachment is being added or removed from the compose email or appointment * @param {Office.AsyncResult} event default: Office.AsyncResult */ -function onItemAttachmentsChangedHandler(event) { +function onItemAttachmentsChangedHandler(event) { if (Office.context.platform !== Office.PlatformType.OfficeOnline){ console.warn(`onItemAttachmentsChangedHandler(): Unsupported platform for encrypting/decrypting attachments (${Office.context.platform}); leaving...`); event.completed(); @@ -546,7 +546,7 @@ function onAppointmentTimeChangedHandler(event) { console.error(`onAppointmentTimeChangedHandler(): Action failed with message ${asyncResult.error.message}`); event.completed(); } - }); + }); } // 1st parameter: FunctionName of LaunchEvent in the manifest; 2nd parameter: Its implementation in this .js file. diff --git a/Samples/outlook-set-signature/package-lock.json b/Samples/outlook-set-signature/package-lock.json index b5ad6d02c..94a3d09de 100644 --- a/Samples/outlook-set-signature/package-lock.json +++ b/Samples/outlook-set-signature/package-lock.json @@ -4825,6 +4825,7 @@ "integrity": "sha512-DnyqqifT4Jrcvb8USYjp6FHtBpEIz1mnXu6pTRHZ0RL69LbQYiO+0lDFg5+OKA7U29oWSs3a/i8fhn8ZcceIWg==", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">=12.0" } @@ -5264,9 +5265,9 @@ } }, "node_modules/axios": { - "version": "1.7.2", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.7.2.tgz", - "integrity": "sha512-2A8QhOMrbomlDuiLeK9XibIBzuHeRcqqNOHp0Cyp5EoJ1IFDh+XZH3A6BkXtv0K4gFGCI0Y4BM7B1wOEi0Rmgw==", + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.7.3.tgz", + "integrity": "sha512-Ar7ND9pU99eJ9GpoGQKhKf58GpUOgnzuaB7ueNQ5BMi0p+LZ5oaEnfF999fAArcTIBwXTCHAmGcHOZJaWPq9Nw==", "dev": true, "license": "MIT", "peer": true, @@ -7771,9 +7772,9 @@ "peer": true }, "node_modules/fast-xml-parser": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-4.4.0.tgz", - "integrity": "sha512-kLY3jFlwIYwBNDojclKsNAC12sfD6NwW74QB2CoNGPvtVxjliYehVunB3HYyNi+n4Tt1dAcgwYvmKF/Z18flqg==", + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-4.4.1.tgz", + "integrity": "sha512-xkjOecfnKGkSsOwtZ5Pz7Us/T6mrbPQrq0nh+aCO5V9nk5NLWmasAHumTKjiPJPWANe+kAZ84Jc8ooJkzZ88Sw==", "dev": true, "funding": [ { @@ -10836,26 +10837,36 @@ } }, "node_modules/office-addin-debugging": { - "version": "5.1.3", - "resolved": "https://registry.npmjs.org/office-addin-debugging/-/office-addin-debugging-5.1.3.tgz", - "integrity": "sha512-Y/uW4Gt93MIkHcSk8Kb+k/MuNQTWwtl9WmfdKFqC3UI4V8UO01jGkCk1uRuNhO186pLWD1SBZLG+jbmI7EC+qw==", + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/office-addin-debugging/-/office-addin-debugging-5.1.4.tgz", + "integrity": "sha512-nFxUmDxWRUxMZq+nCXcUXEjLU1ZLtM1hKEBrxwsUfyH62wbQBDLH1k0GeU38Rb29wIbrIY7kG3L6SAzf2xYU2A==", "dev": true, "license": "MIT", "dependencies": { - "adm-zip": "^0.5.9", + "adm-zip": "0.5.12", "commander": "^6.2.0", "node-fetch": "^2.6.1", "office-addin-cli": "^1.6.3", "office-addin-dev-certs": "^1.13.3", - "office-addin-dev-settings": "^2.3.3", - "office-addin-manifest": "^1.13.3", - "office-addin-node-debugger": "^0.9.3", + "office-addin-dev-settings": "^2.3.4", + "office-addin-manifest": "^1.13.4", + "office-addin-node-debugger": "^0.9.4", "office-addin-usage-data": "^1.6.12" }, "bin": { "office-addin-debugging": "cli.js" } }, + "node_modules/office-addin-debugging/node_modules/adm-zip": { + "version": "0.5.12", + "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.5.12.tgz", + "integrity": "sha512-6TVU49mK6KZb4qG6xWaaM4C7sA/sgUMLy/JYMOzkcp3BvVLpW0fXDFQiIzAuxFCt/2+xD7fNIiPFAoLZPhVNLQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.0" + } + }, "node_modules/office-addin-dev-certs": { "version": "1.13.3", "resolved": "https://registry.npmjs.org/office-addin-dev-certs/-/office-addin-dev-certs-1.13.3.tgz", @@ -10889,18 +10900,18 @@ } }, "node_modules/office-addin-dev-settings": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/office-addin-dev-settings/-/office-addin-dev-settings-2.3.3.tgz", - "integrity": "sha512-Zw+GnG0NnT471tkSPPuatNqXH4VZsCqCmItx+nGEj6fCwFowPbmP6eBcypIGS47x/T3+V9KNIKsoUKKps4Kefw==", + "version": "2.3.4", + "resolved": "https://registry.npmjs.org/office-addin-dev-settings/-/office-addin-dev-settings-2.3.4.tgz", + "integrity": "sha512-MpO1wj5mrNJeNisvhziFo1lg/4ARH/kILBEygL+WmS1F36nAi9EfY+kH0GkVSHd0WF8d/eaOBFRxOxrkdtidLQ==", "dev": true, "license": "MIT", "dependencies": { - "adm-zip": "0.5.10", + "adm-zip": "0.5.12", "commander": "^6.2.0", "fs-extra": "^11.2.0", "inquirer": "^7.3.3", "junk": "^3.1.0", - "office-addin-manifest": "^1.13.3", + "office-addin-manifest": "^1.13.4", "office-addin-usage-data": "^1.6.12", "open": "^6.4.0", "string_decoder": "1.3.0", @@ -10915,9 +10926,9 @@ } }, "node_modules/office-addin-dev-settings/node_modules/adm-zip": { - "version": "0.5.10", - "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.5.10.tgz", - "integrity": "sha512-x0HvcHqVJNTPk/Bw8JbLWlWoo6Wwnsug0fnYYro1HBrjxZ3G7/AZk7Ahv8JwDe1uIcz8eBqvu86FuF1POiG7vQ==", + "version": "0.5.12", + "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.5.12.tgz", + "integrity": "sha512-6TVU49mK6KZb4qG6xWaaM4C7sA/sgUMLy/JYMOzkcp3BvVLpW0fXDFQiIzAuxFCt/2+xD7fNIiPFAoLZPhVNLQ==", "dev": true, "license": "MIT", "engines": { @@ -11022,14 +11033,14 @@ } }, "node_modules/office-addin-manifest": { - "version": "1.13.3", - "resolved": "https://registry.npmjs.org/office-addin-manifest/-/office-addin-manifest-1.13.3.tgz", - "integrity": "sha512-pcIJTkLCKddGWyTQYkxWRcumZo9NzPdkQN43c17oylpvH2W0HgsZyBIazkwAjqAETy0VX40NbSQ8ejf4c9jvcA==", + "version": "1.13.4", + "resolved": "https://registry.npmjs.org/office-addin-manifest/-/office-addin-manifest-1.13.4.tgz", + "integrity": "sha512-bzjc+ypvJT+UBUSsfugftOZh/CZECR5GwJ7PMYcFuB/zGPuh41jeAxbuXhlAy8AeJpQgEsTK3B7N1aDr+JPqjg==", "dev": true, "license": "MIT", "dependencies": { "@microsoft/teams-manifest": "^0.1.3", - "adm-zip": "^0.5.9", + "adm-zip": "0.5.12", "chalk": "^2.4.2", "commander": "^6.2.0", "fs-extra": "^7.0.1", @@ -11070,6 +11081,16 @@ "node": "^12.20.0 || >=14" } }, + "node_modules/office-addin-manifest/node_modules/adm-zip": { + "version": "0.5.12", + "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.5.12.tgz", + "integrity": "sha512-6TVU49mK6KZb4qG6xWaaM4C7sA/sgUMLy/JYMOzkcp3BvVLpW0fXDFQiIzAuxFCt/2+xD7fNIiPFAoLZPhVNLQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.0" + } + }, "node_modules/office-addin-manifest/node_modules/ansi-styles": { "version": "3.2.1", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", @@ -11174,9 +11195,9 @@ } }, "node_modules/office-addin-node-debugger": { - "version": "0.9.3", - "resolved": "https://registry.npmjs.org/office-addin-node-debugger/-/office-addin-node-debugger-0.9.3.tgz", - "integrity": "sha512-S0e1lh7ykrcfaccF6jYvK40WJHh0JkZCdUENsYiThqKRB1843Rk0OLYZGHqEqSZYMondO21zUEVYLrwjaaMmwg==", + "version": "0.9.4", + "resolved": "https://registry.npmjs.org/office-addin-node-debugger/-/office-addin-node-debugger-0.9.4.tgz", + "integrity": "sha512-OXqlwOSyBas8GO+GD+8+sIqRr7Oh8eTe/8MaA3de+AUKl1IdwxpmkcTdTeFJQeSmuGmD2aaoytGDFLN5E1FT0A==", "dev": true, "license": "MIT", "dependencies": { @@ -18192,7 +18213,8 @@ "version": "0.5.14", "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.5.14.tgz", "integrity": "sha512-DnyqqifT4Jrcvb8USYjp6FHtBpEIz1mnXu6pTRHZ0RL69LbQYiO+0lDFg5+OKA7U29oWSs3a/i8fhn8ZcceIWg==", - "dev": true + "dev": true, + "peer": true }, "agent-base": { "version": "7.1.1", @@ -18506,9 +18528,9 @@ } }, "axios": { - "version": "1.7.2", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.7.2.tgz", - "integrity": "sha512-2A8QhOMrbomlDuiLeK9XibIBzuHeRcqqNOHp0Cyp5EoJ1IFDh+XZH3A6BkXtv0K4gFGCI0Y4BM7B1wOEi0Rmgw==", + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.7.3.tgz", + "integrity": "sha512-Ar7ND9pU99eJ9GpoGQKhKf58GpUOgnzuaB7ueNQ5BMi0p+LZ5oaEnfF999fAArcTIBwXTCHAmGcHOZJaWPq9Nw==", "dev": true, "peer": true, "requires": { @@ -20352,9 +20374,9 @@ "peer": true }, "fast-xml-parser": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-4.4.0.tgz", - "integrity": "sha512-kLY3jFlwIYwBNDojclKsNAC12sfD6NwW74QB2CoNGPvtVxjliYehVunB3HYyNi+n4Tt1dAcgwYvmKF/Z18flqg==", + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-4.4.1.tgz", + "integrity": "sha512-xkjOecfnKGkSsOwtZ5Pz7Us/T6mrbPQrq0nh+aCO5V9nk5NLWmasAHumTKjiPJPWANe+kAZ84Jc8ooJkzZ88Sw==", "dev": true, "peer": true, "requires": { @@ -22515,20 +22537,28 @@ } }, "office-addin-debugging": { - "version": "5.1.3", - "resolved": "https://registry.npmjs.org/office-addin-debugging/-/office-addin-debugging-5.1.3.tgz", - "integrity": "sha512-Y/uW4Gt93MIkHcSk8Kb+k/MuNQTWwtl9WmfdKFqC3UI4V8UO01jGkCk1uRuNhO186pLWD1SBZLG+jbmI7EC+qw==", + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/office-addin-debugging/-/office-addin-debugging-5.1.4.tgz", + "integrity": "sha512-nFxUmDxWRUxMZq+nCXcUXEjLU1ZLtM1hKEBrxwsUfyH62wbQBDLH1k0GeU38Rb29wIbrIY7kG3L6SAzf2xYU2A==", "dev": true, "requires": { - "adm-zip": "^0.5.9", + "adm-zip": "0.5.12", "commander": "^6.2.0", "node-fetch": "^2.6.1", "office-addin-cli": "^1.6.3", "office-addin-dev-certs": "^1.13.3", - "office-addin-dev-settings": "^2.3.3", - "office-addin-manifest": "^1.13.3", - "office-addin-node-debugger": "^0.9.3", + "office-addin-dev-settings": "^2.3.4", + "office-addin-manifest": "^1.13.4", + "office-addin-node-debugger": "^0.9.4", "office-addin-usage-data": "^1.6.12" + }, + "dependencies": { + "adm-zip": { + "version": "0.5.12", + "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.5.12.tgz", + "integrity": "sha512-6TVU49mK6KZb4qG6xWaaM4C7sA/sgUMLy/JYMOzkcp3BvVLpW0fXDFQiIzAuxFCt/2+xD7fNIiPFAoLZPhVNLQ==", + "dev": true + } } }, "office-addin-dev-certs": { @@ -22558,17 +22588,17 @@ } }, "office-addin-dev-settings": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/office-addin-dev-settings/-/office-addin-dev-settings-2.3.3.tgz", - "integrity": "sha512-Zw+GnG0NnT471tkSPPuatNqXH4VZsCqCmItx+nGEj6fCwFowPbmP6eBcypIGS47x/T3+V9KNIKsoUKKps4Kefw==", + "version": "2.3.4", + "resolved": "https://registry.npmjs.org/office-addin-dev-settings/-/office-addin-dev-settings-2.3.4.tgz", + "integrity": "sha512-MpO1wj5mrNJeNisvhziFo1lg/4ARH/kILBEygL+WmS1F36nAi9EfY+kH0GkVSHd0WF8d/eaOBFRxOxrkdtidLQ==", "dev": true, "requires": { - "adm-zip": "0.5.10", + "adm-zip": "0.5.12", "commander": "^6.2.0", "fs-extra": "^11.2.0", "inquirer": "^7.3.3", "junk": "^3.1.0", - "office-addin-manifest": "^1.13.3", + "office-addin-manifest": "^1.13.4", "office-addin-usage-data": "^1.6.12", "open": "^6.4.0", "string_decoder": "1.3.0", @@ -22577,9 +22607,9 @@ }, "dependencies": { "adm-zip": { - "version": "0.5.10", - "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.5.10.tgz", - "integrity": "sha512-x0HvcHqVJNTPk/Bw8JbLWlWoo6Wwnsug0fnYYro1HBrjxZ3G7/AZk7Ahv8JwDe1uIcz8eBqvu86FuF1POiG7vQ==", + "version": "0.5.12", + "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.5.12.tgz", + "integrity": "sha512-6TVU49mK6KZb4qG6xWaaM4C7sA/sgUMLy/JYMOzkcp3BvVLpW0fXDFQiIzAuxFCt/2+xD7fNIiPFAoLZPhVNLQ==", "dev": true }, "fs-extra": { @@ -22654,13 +22684,13 @@ } }, "office-addin-manifest": { - "version": "1.13.3", - "resolved": "https://registry.npmjs.org/office-addin-manifest/-/office-addin-manifest-1.13.3.tgz", - "integrity": "sha512-pcIJTkLCKddGWyTQYkxWRcumZo9NzPdkQN43c17oylpvH2W0HgsZyBIazkwAjqAETy0VX40NbSQ8ejf4c9jvcA==", + "version": "1.13.4", + "resolved": "https://registry.npmjs.org/office-addin-manifest/-/office-addin-manifest-1.13.4.tgz", + "integrity": "sha512-bzjc+ypvJT+UBUSsfugftOZh/CZECR5GwJ7PMYcFuB/zGPuh41jeAxbuXhlAy8AeJpQgEsTK3B7N1aDr+JPqjg==", "dev": true, "requires": { "@microsoft/teams-manifest": "^0.1.3", - "adm-zip": "^0.5.9", + "adm-zip": "0.5.12", "chalk": "^2.4.2", "commander": "^6.2.0", "fs-extra": "^7.0.1", @@ -22671,6 +22701,12 @@ "xml2js": "^0.5.0" }, "dependencies": { + "adm-zip": { + "version": "0.5.12", + "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.5.12.tgz", + "integrity": "sha512-6TVU49mK6KZb4qG6xWaaM4C7sA/sgUMLy/JYMOzkcp3BvVLpW0fXDFQiIzAuxFCt/2+xD7fNIiPFAoLZPhVNLQ==", + "dev": true + }, "ansi-styles": { "version": "3.2.1", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", @@ -22771,9 +22807,9 @@ } }, "office-addin-node-debugger": { - "version": "0.9.3", - "resolved": "https://registry.npmjs.org/office-addin-node-debugger/-/office-addin-node-debugger-0.9.3.tgz", - "integrity": "sha512-S0e1lh7ykrcfaccF6jYvK40WJHh0JkZCdUENsYiThqKRB1843Rk0OLYZGHqEqSZYMondO21zUEVYLrwjaaMmwg==", + "version": "0.9.4", + "resolved": "https://registry.npmjs.org/office-addin-node-debugger/-/office-addin-node-debugger-0.9.4.tgz", + "integrity": "sha512-OXqlwOSyBas8GO+GD+8+sIqRr7Oh8eTe/8MaA3de+AUKl1IdwxpmkcTdTeFJQeSmuGmD2aaoytGDFLN5E1FT0A==", "dev": true, "requires": { "commander": "^6.2.0", diff --git a/Samples/outlook-spam-reporting/README.md b/Samples/outlook-spam-reporting/README.md index b6a292c0a..427962e4d 100644 --- a/Samples/outlook-spam-reporting/README.md +++ b/Samples/outlook-spam-reporting/README.md @@ -144,5 +144,6 @@ This project has adopted the [Microsoft Open Source Code of Conduct](https://ope | ----- | ----- | ----- | | 1.0 | March 26, 2024 | Initial release | | 1.1 | July 1, 2024 | Create separate JavaScript files for supported clients | +| 1.2 | September 11, 2024 | Correct the `Office.actions.associate` call and consolidate the JavaScript files | <img src="https://pnptelemetry.azurewebsites.net/pnp-officeaddins/samples/outlook-spam-reporting" /> diff --git a/Samples/outlook-spam-reporting/manifest-localhost.xml b/Samples/outlook-spam-reporting/manifest-localhost.xml index 3f7c5024d..e29a5f274 100644 --- a/Samples/outlook-spam-reporting/manifest-localhost.xml +++ b/Samples/outlook-spam-reporting/manifest-localhost.xml @@ -112,7 +112,7 @@ </bt:Images> <bt:Urls> <bt:Url id="WebViewRuntime.Url" DefaultValue="https://localhost:3000/src/spamreporting.html"/> - <bt:Url id="JSRuntime.Url" DefaultValue="https://localhost:3000/src/spamreporting_classic.js"/> + <bt:Url id="JSRuntime.Url" DefaultValue="https://localhost:3000/src/spamreporting.js"/> <bt:Url id="MoreInfo.Url" DefaultValue="https://learn.microsoft.com/en-us/office/dev/add-ins/outlook/spam-reporting"/> </bt:Urls> <bt:ShortStrings> diff --git a/Samples/outlook-spam-reporting/manifest.xml b/Samples/outlook-spam-reporting/manifest.xml index 6d793c28d..9353034c8 100644 --- a/Samples/outlook-spam-reporting/manifest.xml +++ b/Samples/outlook-spam-reporting/manifest.xml @@ -112,7 +112,7 @@ </bt:Images> <bt:Urls> <bt:Url id="WebViewRuntime.Url" DefaultValue="https://officedev.github.io/Office-Add-in-samples/Samples/outlook-spam-reporting/src/spamreporting.html"/> - <bt:Url id="JSRuntime.Url" DefaultValue="https://officedev.github.io/Office-Add-in-samples/Samples/outlook-spam-reporting/src/spamreporting_classic.js"/> + <bt:Url id="JSRuntime.Url" DefaultValue="https://officedev.github.io/Office-Add-in-samples/Samples/outlook-spam-reporting/src/spamreporting.js"/> <bt:Url id="MoreInfo.Url" DefaultValue="https://learn.microsoft.com/en-us/office/dev/add-ins/outlook/spam-reporting"/> </bt:Urls> <bt:ShortStrings> diff --git a/Samples/outlook-spam-reporting/src/spamreporting.js b/Samples/outlook-spam-reporting/src/spamreporting.js index 3218dcb90..475c82a9f 100644 --- a/Samples/outlook-spam-reporting/src/spamreporting.js +++ b/Samples/outlook-spam-reporting/src/spamreporting.js @@ -45,3 +45,9 @@ function onSpamReport(event) { } ); } + +/** + * IMPORTANT: To ensure your add-in is supported in Outlook, remember to map the event handler name + * specified in the manifest to its JavaScript counterpart. + */ +Office.actions.associate("onSpamReport", onSpamReport); diff --git a/Samples/outlook-spam-reporting/src/spamreporting_classic.js b/Samples/outlook-spam-reporting/src/spamreporting_classic.js deleted file mode 100644 index 4a677c3d3..000000000 --- a/Samples/outlook-spam-reporting/src/spamreporting_classic.js +++ /dev/null @@ -1,52 +0,0 @@ -/* - * Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license. - * See LICENSE in the project root for license information. - */ - -// Handles the SpamReporting event to process a reported message. -function onSpamReport(event) { - // Get the Base64-encoded EML format of a reported message. - Office.context.mailbox.item.getAsFileAsync( - { asyncContext: event }, - (asyncResult) => { - if (asyncResult.status === Office.AsyncResultStatus.Failed) { - console.log( - `Error encountered during message processing: ${asyncResult.error.message}` - ); - return; - } - - // Get the user's responses to the options and text box in the preprocessing dialog. - const spamReportingEvent = asyncResult.asyncContext; - const reportedOptions = spamReportingEvent.options; - const additionalInfo = spamReportingEvent.freeText; - - // Run additional processing operations here. - - /** - * Signals that the spam-reporting event has completed processing. - * It then moves the reported message to the Junk Email folder of the mailbox, - * then shows a post-processing dialog to the user. - * If an error occurs while the message is being processed, - * the `onErrorDeleteItem` property determines whether the message will be deleted. - */ - const event = asyncResult.asyncContext; - event.completed({ - onErrorDeleteItem: true, - moveItemTo: Office.MailboxEnums.MoveSpamItemTo.JunkFolder, - showPostProcessingDialog: { - title: "Contoso Spam Reporting", - description: "Thank you for reporting this message.", - }, - }); - } - ); -} - -/** - * IMPORTANT: To ensure your add-in is supported in the classic Outlook client on Windows, - * remember to map the event handler name specified in the manifest to its JavaScript counterpart. - */ -if (Office.context.platform === Office.PlatformType.PC || Office.context.platform == null) { - Office.actions.associate("onSpamReport", onSpamReport); -} \ No newline at end of file diff --git a/Samples/outlook-verify-sensitivity-label/README.md b/Samples/outlook-verify-sensitivity-label/README.md index 36b16c576..4c1d3bd48 100644 --- a/Samples/outlook-verify-sensitivity-label/README.md +++ b/Samples/outlook-verify-sensitivity-label/README.md @@ -188,18 +188,15 @@ The **\<LaunchEvents\>** element maps the three events that activate the add-in ### Configure the event handlers -The event object is passed to its respective handler in the **commands.js** file for processing. To ensure that the event-based add-in runs in classic Outlook on Windows, the JavaScript file that contains your handlers (in this case, **commands.js**) must call `Office.actions.associate`. This method maps the function ID specified in the manifest to its respective event handler in the JavaScript file. +The event object is passed to its respective handler in the **commands.js** file for processing. To ensure that the event-based add-in runs in Outlook, the JavaScript file that contains your handlers (in this case, **commands.js**) must call `Office.actions.associate`. This method maps the function ID specified in the manifest to its respective event handler in the JavaScript file. ```javascript /** - * Maps the event handler name specified in the manifest's LaunchEvent element to its JavaScript counterpart. - * This ensures support in classic Outlook on Windows. + * Maps the event handler name specified in the manifest to its JavaScript counterpart. */ -if (Office.context.platform === Office.PlatformType.PC || Office.context.platform == null) { - Office.actions.associate("onMessageRecipientsChangedHandler", onMessageRecipientsChangedHandler); - Office.actions.associate("onMessageSendHandler", onMessageSendHandler); - Office.actions.associate("onSensitivityLabelChangedHandler", onSensitivityLabelChangedHandler); -} +Office.actions.associate("onMessageRecipientsChangedHandler", onMessageRecipientsChangedHandler); +Office.actions.associate("onMessageSendHandler", onMessageSendHandler); +Office.actions.associate("onSensitivityLabelChangedHandler", onSensitivityLabelChangedHandler); ``` The handler calls the [event.completed](https://learn.microsoft.com/javascript/api/outlook/office.mailboxevent#outlook-office-mailboxevent-completed-member(1)) method to signify when it completes processing an event. In the `onMessageSendHandler` function, the `event.completed` call specifies the [allowEvent](https://learn.microsoft.com/javascript/api/outlook/office.smartalertseventcompletedoptions#outlook-office-smartalertseventcompletedoptions-allowevent-member) property to indicate whether the event can continue to execute or must terminate. It also specifies the [errorMessage](https://learn.microsoft.com/javascript/api/outlook/office.smartalertseventcompletedoptions#outlook-office-smartalertseventcompletedoptions-errormessage-member) property to display the Smart Alerts dialog to indicate that the sensitivity label was updated. diff --git a/Samples/outlook-verify-sensitivity-label/src/commands/commands.js b/Samples/outlook-verify-sensitivity-label/src/commands/commands.js index 43aa817c6..f883a123a 100644 --- a/Samples/outlook-verify-sensitivity-label/src/commands/commands.js +++ b/Samples/outlook-verify-sensitivity-label/src/commands/commands.js @@ -6,17 +6,7 @@ /** * Ensures the Office.js library is loaded. */ -Office.onReady((info) => { - /** - * Maps the event handler name specified in the manifest's LaunchEvent element to its JavaScript counterpart. - * This ensures support in Outlook on Windows. - */ - if (Office.context.platform === Office.PlatformType.PC || Office.context.platform == null) { - Office.actions.associate("onMessageRecipientsChangedHandler", onMessageRecipientsChangedHandler); - Office.actions.associate("onMessageSendHandler", onMessageSendHandler); - Office.actions.associate("onSensitivityLabelChangedHandler", onSensitivityLabelChangedHandler); - } -}); +Office.onReady(); /** * The legal hold email account of the fictitious company, Fabrikam. It's added to the Bcc field of a @@ -334,4 +324,11 @@ function containsLegalTeamMember(recipients) { } return false; -} \ No newline at end of file +} + +/** + * Maps the event handler name specified in the manifest to its JavaScript counterpart. + */ +Office.actions.associate("onMessageRecipientsChangedHandler", onMessageRecipientsChangedHandler); +Office.actions.associate("onMessageSendHandler", onMessageSendHandler); +Office.actions.associate("onSensitivityLabelChangedHandler", onSensitivityLabelChangedHandler); diff --git a/Samples/tutorials/excel-tutorial/My Office Add-in/package-lock.json b/Samples/tutorials/excel-tutorial/My Office Add-in/package-lock.json index 5212f9de0..359c87d00 100644 --- a/Samples/tutorials/excel-tutorial/My Office Add-in/package-lock.json +++ b/Samples/tutorials/excel-tutorial/My Office Add-in/package-lock.json @@ -133,17 +133,17 @@ } }, "node_modules/@apidevtools/swagger-parser/node_modules/ajv": { - "version": "8.16.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.16.0.tgz", - "integrity": "sha512-F0twR8U1ZU67JIEtekUcLkXkoO5mMMmgGD8sK/xUFzJ805jxHQl92hImFAqqXMyMYjSPOyUPAwHYhB72g5sTXw==", + "version": "8.17.1", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", + "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", "dev": true, "license": "MIT", "peer": true, "dependencies": { "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.4.1" + "require-from-string": "^2.0.2" }, "funding": { "type": "github", @@ -408,9 +408,9 @@ } }, "node_modules/@azure/core-rest-pipeline": { - "version": "1.16.0", - "resolved": "https://registry.npmjs.org/@azure/core-rest-pipeline/-/core-rest-pipeline-1.16.0.tgz", - "integrity": "sha512-CeuTvsXxCUmEuxH5g/aceuSl6w2EugvNHKAtKKVdiX915EjJJxAwfzNNWZreNnbxHZ2fi0zaM6wwS23x2JVqSQ==", + "version": "1.16.3", + "resolved": "https://registry.npmjs.org/@azure/core-rest-pipeline/-/core-rest-pipeline-1.16.3.tgz", + "integrity": "sha512-VxLk4AHLyqcHsfKe4MZ6IQ+D+ShuByy+RfStKfSjxJoL3WBWq17VNmrz8aT8etKzqc2nAeIyLxScjpzsS4fz8w==", "dev": true, "license": "MIT", "peer": true, @@ -457,9 +457,9 @@ } }, "node_modules/@azure/core-util": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@azure/core-util/-/core-util-1.9.0.tgz", - "integrity": "sha512-AfalUQ1ZppaKuxPPMsFEUdX6GZPB3d9paR9d/TTL7Ow2De8cJaC7ibi7kWVlFAVPCYo31OcnGymc0R89DX8Oaw==", + "version": "1.9.2", + "resolved": "https://registry.npmjs.org/@azure/core-util/-/core-util-1.9.2.tgz", + "integrity": "sha512-l1Qrqhi4x1aekkV+OlcqsJa4AnAkj5p0JV8omgwjaV9OAbP41lvrMvs+CptfetKkeEaGRGSzby7sjPZEX7+kkQ==", "dev": true, "license": "MIT", "peer": true, @@ -486,9 +486,9 @@ } }, "node_modules/@azure/core-xml": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/@azure/core-xml/-/core-xml-1.4.2.tgz", - "integrity": "sha512-CW3MZhApe/S4iikbYKE7s83fjDBPIr2kpidX+hlGRwh7N4o1nIpQ/PfJTeioqhfqdMvRtheEl+ft64fyTaLNaA==", + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/@azure/core-xml/-/core-xml-1.4.3.tgz", + "integrity": "sha512-D6G7FEmDiTctPKuWegX2WTrS1enKZwqYwdKTO6ZN6JMigcCehlT0/CYl+zWpI9vQ9frwwp7GQT3/owaEXgnOsA==", "dev": true, "license": "MIT", "peer": true, @@ -501,9 +501,9 @@ } }, "node_modules/@azure/identity": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/@azure/identity/-/identity-4.3.0.tgz", - "integrity": "sha512-LHZ58/RsIpIWa4hrrE2YuJ/vzG1Jv9f774RfTTAVDZDriubvJ0/S5u4pnw4akJDlS0TiJb6VMphmVUFsWmgodQ==", + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/@azure/identity/-/identity-4.4.1.tgz", + "integrity": "sha512-DwnG4cKFEM7S3T+9u05NstXU/HN0dk45kPOinUyNKsn5VWwpXd9sbPKEg6kgJzGbm1lMuhx9o31PVbCtM5sfBA==", "dev": true, "license": "MIT", "peer": true, @@ -515,7 +515,7 @@ "@azure/core-tracing": "^1.0.0", "@azure/core-util": "^1.3.0", "@azure/logger": "^1.0.0", - "@azure/msal-browser": "^3.11.1", + "@azure/msal-browser": "^3.14.0", "@azure/msal-node": "^2.9.2", "events": "^3.0.0", "jws": "^4.0.0", @@ -528,9 +528,9 @@ } }, "node_modules/@azure/logger": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@azure/logger/-/logger-1.1.2.tgz", - "integrity": "sha512-l170uE7bsKpIU6B/giRc9i4NI0Mj+tANMMMxf7Zi/5cKzEqPayP7+X1WPrG7e+91JgY8N+7K7nF2WOi7iVhXvg==", + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/@azure/logger/-/logger-1.1.4.tgz", + "integrity": "sha512-4IXXzcCdLdlXuCG+8UKEwLA1T1NHqUfanhXYHiQTn+6sfWCZXduqbtXDGceg3Ce5QxTGo7EqmbV6Bi+aqKuClQ==", "dev": true, "license": "MIT", "peer": true, @@ -542,23 +542,23 @@ } }, "node_modules/@azure/msal-browser": { - "version": "3.17.0", - "resolved": "https://registry.npmjs.org/@azure/msal-browser/-/msal-browser-3.17.0.tgz", - "integrity": "sha512-csccKXmW2z7EkZ0I3yAoW/offQt+JECdTIV/KrnRoZyM7wCSsQWODpwod8ZhYy7iOyamcHApR9uCh0oD1M+0/A==", + "version": "3.20.0", + "resolved": "https://registry.npmjs.org/@azure/msal-browser/-/msal-browser-3.20.0.tgz", + "integrity": "sha512-ErsxbfCGIwdqD8jipqdxpfAGiUEQS7MWUe39Rjhl0ZVPsb1JEe9bZCe2+0g23HDH6DGyCAtnTNN9scPtievrMQ==", "dev": true, "license": "MIT", "peer": true, "dependencies": { - "@azure/msal-common": "14.12.0" + "@azure/msal-common": "14.14.0" }, "engines": { "node": ">=0.8.0" } }, "node_modules/@azure/msal-common": { - "version": "14.12.0", - "resolved": "https://registry.npmjs.org/@azure/msal-common/-/msal-common-14.12.0.tgz", - "integrity": "sha512-IDDXmzfdwmDkv4SSmMEyAniJf6fDu3FJ7ncOjlxkDuT85uSnLEhZi3fGZpoR7T4XZpOMx9teM9GXBgrfJgyeBw==", + "version": "14.14.0", + "resolved": "https://registry.npmjs.org/@azure/msal-common/-/msal-common-14.14.0.tgz", + "integrity": "sha512-OxcOk9H1/1fktHh6//VCORgSNJc2dCQObTm6JNmL824Z6iZSO6eFo/Bttxe0hETn9B+cr7gDouTQtsRq3YPuSQ==", "dev": true, "license": "MIT", "peer": true, @@ -567,14 +567,14 @@ } }, "node_modules/@azure/msal-node": { - "version": "2.9.2", - "resolved": "https://registry.npmjs.org/@azure/msal-node/-/msal-node-2.9.2.tgz", - "integrity": "sha512-8tvi6Cos3m+0KmRbPjgkySXi+UQU/QiuVRFnrxIwt5xZlEEFa69O04RTaNESGgImyBBlYbo2mfE8/U8Bbdk1WQ==", + "version": "2.12.0", + "resolved": "https://registry.npmjs.org/@azure/msal-node/-/msal-node-2.12.0.tgz", + "integrity": "sha512-jmk5Im5KujRA2AcyCb0awA3buV8niSrwXZs+NBJWIvxOz76RvNlusGIqi43A0h45BPUy93Qb+CPdpJn82NFTIg==", "dev": true, "license": "MIT", "peer": true, "dependencies": { - "@azure/msal-common": "14.12.0", + "@azure/msal-common": "14.14.0", "jsonwebtoken": "^9.0.0", "uuid": "^8.3.0" }, @@ -583,9 +583,9 @@ } }, "node_modules/@azure/storage-blob": { - "version": "12.23.0", - "resolved": "https://registry.npmjs.org/@azure/storage-blob/-/storage-blob-12.23.0.tgz", - "integrity": "sha512-c1KJ5R5hqR/HtvmFtTn/Y1BNMq45NUBp0LZH7yF8WFMET+wmESgEr0FVTu/Z5NonmfUjbgJZG5Nh8xHc5RdWGQ==", + "version": "12.24.0", + "resolved": "https://registry.npmjs.org/@azure/storage-blob/-/storage-blob-12.24.0.tgz", + "integrity": "sha512-l8cmWM4C7RoNCBOImoFMxhTXe1Lr+8uQ/IgnhRNMpfoA9bAFWoLG4XrWm6O5rKXortreVQuD+fc1hbzWklOZbw==", "dev": true, "license": "MIT", "peer": true, @@ -597,7 +597,7 @@ "@azure/core-lro": "^2.2.0", "@azure/core-paging": "^1.1.1", "@azure/core-rest-pipeline": "^1.10.1", - "@azure/core-tracing": "^1.0.0", + "@azure/core-tracing": "^1.1.2", "@azure/core-util": "^1.6.1", "@azure/core-xml": "^1.3.2", "@azure/logger": "^1.0.0", @@ -3899,12 +3899,15 @@ } }, "node_modules/@inquirer/type": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/@inquirer/type/-/type-1.3.3.tgz", - "integrity": "sha512-xTUt0NulylX27/zMx04ZYar/kr1raaiFTVvQ5feljQsiAgdm0WPj4S73/ye0fbslh+15QrIuDvfCXTek7pMY5A==", + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/@inquirer/type/-/type-1.5.2.tgz", + "integrity": "sha512-w9qFkumYDCNyDZmNQjf/n6qQuvQ4dMC3BJesY4oF+yr0CxR5vxujflAVeIcS6U336uzi9GM0kAfZlLrZ9UTkpA==", "dev": true, "license": "MIT", "peer": true, + "dependencies": { + "mute-stream": "^1.0.0" + }, "engines": { "node": ">=18" } @@ -4394,9 +4397,9 @@ } }, "node_modules/@microsoft/teamsapp-cli/node_modules/semver": { - "version": "7.6.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", - "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", "dev": true, "license": "ISC", "peer": true, @@ -4500,17 +4503,17 @@ } }, "node_modules/@microsoft/teamsfx-core/node_modules/ajv": { - "version": "8.16.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.16.0.tgz", - "integrity": "sha512-F0twR8U1ZU67JIEtekUcLkXkoO5mMMmgGD8sK/xUFzJ805jxHQl92hImFAqqXMyMYjSPOyUPAwHYhB72g5sTXw==", + "version": "8.17.1", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", + "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", "dev": true, "license": "MIT", "peer": true, "dependencies": { "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.4.1" + "require-from-string": "^2.0.2" }, "funding": { "type": "github", @@ -4540,9 +4543,9 @@ "peer": true }, "node_modules/@microsoft/teamsfx-core/node_modules/semver": { - "version": "7.6.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", - "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", "dev": true, "license": "ISC", "peer": true, @@ -5454,11 +5457,12 @@ } }, "node_modules/adm-zip": { - "version": "0.5.14", - "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.5.14.tgz", - "integrity": "sha512-DnyqqifT4Jrcvb8USYjp6FHtBpEIz1mnXu6pTRHZ0RL69LbQYiO+0lDFg5+OKA7U29oWSs3a/i8fhn8ZcceIWg==", + "version": "0.5.15", + "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.5.15.tgz", + "integrity": "sha512-jYPWSeOA8EFoZnucrKCNihqBjoEGQSU4HKgHYQgKNEQ0pQF9a/DYuo/+fAxY76k4qe75LUlLWpAM1QWcBMTOKw==", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">=12.0" } @@ -5879,9 +5883,9 @@ } }, "node_modules/axios": { - "version": "1.7.2", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.7.2.tgz", - "integrity": "sha512-2A8QhOMrbomlDuiLeK9XibIBzuHeRcqqNOHp0Cyp5EoJ1IFDh+XZH3A6BkXtv0K4gFGCI0Y4BM7B1wOEi0Rmgw==", + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.7.3.tgz", + "integrity": "sha512-Ar7ND9pU99eJ9GpoGQKhKf58GpUOgnzuaB7ueNQ5BMi0p+LZ5oaEnfF999fAArcTIBwXTCHAmGcHOZJaWPq9Nw==", "dev": true, "license": "MIT", "peer": true, @@ -6269,9 +6273,9 @@ ] }, "node_modules/chai": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/chai/-/chai-4.4.1.tgz", - "integrity": "sha512-13sOfMv2+DWduEU+/xbun3LScLoqN17nBeTLUsmDfKdoiC1fr0n9PU4guu4AhRcOVFk/sW8LyZWHuhWtQZiF+g==", + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/chai/-/chai-4.5.0.tgz", + "integrity": "sha512-RITGBfijLkBddZvnn8jdqoTypxvqbOLYQkGGxXzeFjVHvudaPw0HNFD9x928/eUwYWd2dPCugVqspGALTZZQKw==", "dev": true, "license": "MIT", "peer": true, @@ -6282,7 +6286,7 @@ "get-func-name": "^2.0.2", "loupe": "^2.3.6", "pathval": "^1.1.1", - "type-detect": "^4.0.8" + "type-detect": "^4.1.0" }, "engines": { "node": ">=4" @@ -6612,9 +6616,9 @@ } }, "node_modules/comment-json": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/comment-json/-/comment-json-4.2.3.tgz", - "integrity": "sha512-SsxdiOf064DWoZLH799Ata6u7iV658A11PlWtZATDlXPpKGJnbJZ5Z24ybixAi+LUUqJ/GKowAejtC5GFUG7Tw==", + "version": "4.2.5", + "resolved": "https://registry.npmjs.org/comment-json/-/comment-json-4.2.5.tgz", + "integrity": "sha512-bKw/r35jR3HGt5PEPm1ljsQQGyCrR8sFGNiN5L+ykDHdpO8Smxkrkla9Yi6NkQyUrb8V54PGhfMs6NrIwtxtdw==", "dev": true, "license": "MIT", "peer": true, @@ -8398,10 +8402,18 @@ "license": "MIT", "peer": true }, + "node_modules/fast-uri": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.0.1.tgz", + "integrity": "sha512-MWipKbbYiYI0UC7cl8m/i/IWTqfC8YXsqjzybjddLsFjStroQzsHXkc73JutMvBiXmOvapk+axIl79ig5t55Bw==", + "dev": true, + "license": "MIT", + "peer": true + }, "node_modules/fast-xml-parser": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-4.4.0.tgz", - "integrity": "sha512-kLY3jFlwIYwBNDojclKsNAC12sfD6NwW74QB2CoNGPvtVxjliYehVunB3HYyNi+n4Tt1dAcgwYvmKF/Z18flqg==", + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-4.4.1.tgz", + "integrity": "sha512-xkjOecfnKGkSsOwtZ5Pz7Us/T6mrbPQrq0nh+aCO5V9nk5NLWmasAHumTKjiPJPWANe+kAZ84Jc8ooJkzZ88Sw==", "dev": true, "funding": [ { @@ -9474,9 +9486,9 @@ "peer": true }, "node_modules/https-proxy-agent": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.4.tgz", - "integrity": "sha512-wlwpilI7YdjSkWaQ/7omYBMTliDcmCN8OLihO6I9B86g06lMyAoqgoDpV0XqoaPOKj+0DIdAvnsWfyAAhmimcg==", + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.5.tgz", + "integrity": "sha512-1e4Wqeblerz+tMKPIq2EMGiiWW1dIjZOksyHWSUm1rmuvw/how9hBHZ38lAGj5ID4Ik6EdkOw7NmWPy6LAwalw==", "dev": true, "license": "MIT", "peer": true, @@ -10519,9 +10531,9 @@ } }, "node_modules/jsonwebtoken/node_modules/semver": { - "version": "7.6.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", - "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", "dev": true, "license": "ISC", "peer": true, @@ -11120,9 +11132,9 @@ } }, "node_modules/node-abi/node_modules/semver": { - "version": "7.6.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", - "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", "dev": true, "license": "ISC", "optional": true, @@ -11505,26 +11517,36 @@ } }, "node_modules/office-addin-debugging": { - "version": "5.1.3", - "resolved": "https://registry.npmjs.org/office-addin-debugging/-/office-addin-debugging-5.1.3.tgz", - "integrity": "sha512-Y/uW4Gt93MIkHcSk8Kb+k/MuNQTWwtl9WmfdKFqC3UI4V8UO01jGkCk1uRuNhO186pLWD1SBZLG+jbmI7EC+qw==", + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/office-addin-debugging/-/office-addin-debugging-5.1.4.tgz", + "integrity": "sha512-nFxUmDxWRUxMZq+nCXcUXEjLU1ZLtM1hKEBrxwsUfyH62wbQBDLH1k0GeU38Rb29wIbrIY7kG3L6SAzf2xYU2A==", "dev": true, "license": "MIT", "dependencies": { - "adm-zip": "^0.5.9", + "adm-zip": "0.5.12", "commander": "^6.2.0", "node-fetch": "^2.6.1", "office-addin-cli": "^1.6.3", "office-addin-dev-certs": "^1.13.3", - "office-addin-dev-settings": "^2.3.3", - "office-addin-manifest": "^1.13.3", - "office-addin-node-debugger": "^0.9.3", + "office-addin-dev-settings": "^2.3.4", + "office-addin-manifest": "^1.13.4", + "office-addin-node-debugger": "^0.9.4", "office-addin-usage-data": "^1.6.12" }, "bin": { "office-addin-debugging": "cli.js" } }, + "node_modules/office-addin-debugging/node_modules/adm-zip": { + "version": "0.5.12", + "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.5.12.tgz", + "integrity": "sha512-6TVU49mK6KZb4qG6xWaaM4C7sA/sgUMLy/JYMOzkcp3BvVLpW0fXDFQiIzAuxFCt/2+xD7fNIiPFAoLZPhVNLQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.0" + } + }, "node_modules/office-addin-debugging/node_modules/commander": { "version": "6.2.1", "resolved": "https://registry.npmjs.org/commander/-/commander-6.2.1.tgz", @@ -11577,18 +11599,18 @@ } }, "node_modules/office-addin-dev-settings": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/office-addin-dev-settings/-/office-addin-dev-settings-2.3.3.tgz", - "integrity": "sha512-Zw+GnG0NnT471tkSPPuatNqXH4VZsCqCmItx+nGEj6fCwFowPbmP6eBcypIGS47x/T3+V9KNIKsoUKKps4Kefw==", + "version": "2.3.4", + "resolved": "https://registry.npmjs.org/office-addin-dev-settings/-/office-addin-dev-settings-2.3.4.tgz", + "integrity": "sha512-MpO1wj5mrNJeNisvhziFo1lg/4ARH/kILBEygL+WmS1F36nAi9EfY+kH0GkVSHd0WF8d/eaOBFRxOxrkdtidLQ==", "dev": true, "license": "MIT", "dependencies": { - "adm-zip": "0.5.10", + "adm-zip": "0.5.12", "commander": "^6.2.0", "fs-extra": "^11.2.0", "inquirer": "^7.3.3", "junk": "^3.1.0", - "office-addin-manifest": "^1.13.3", + "office-addin-manifest": "^1.13.4", "office-addin-usage-data": "^1.6.12", "open": "^6.4.0", "string_decoder": "1.3.0", @@ -11603,9 +11625,9 @@ } }, "node_modules/office-addin-dev-settings/node_modules/adm-zip": { - "version": "0.5.10", - "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.5.10.tgz", - "integrity": "sha512-x0HvcHqVJNTPk/Bw8JbLWlWoo6Wwnsug0fnYYro1HBrjxZ3G7/AZk7Ahv8JwDe1uIcz8eBqvu86FuF1POiG7vQ==", + "version": "0.5.12", + "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.5.12.tgz", + "integrity": "sha512-6TVU49mK6KZb4qG6xWaaM4C7sA/sgUMLy/JYMOzkcp3BvVLpW0fXDFQiIzAuxFCt/2+xD7fNIiPFAoLZPhVNLQ==", "dev": true, "license": "MIT", "engines": { @@ -11729,14 +11751,14 @@ } }, "node_modules/office-addin-manifest": { - "version": "1.13.3", - "resolved": "https://registry.npmjs.org/office-addin-manifest/-/office-addin-manifest-1.13.3.tgz", - "integrity": "sha512-pcIJTkLCKddGWyTQYkxWRcumZo9NzPdkQN43c17oylpvH2W0HgsZyBIazkwAjqAETy0VX40NbSQ8ejf4c9jvcA==", + "version": "1.13.4", + "resolved": "https://registry.npmjs.org/office-addin-manifest/-/office-addin-manifest-1.13.4.tgz", + "integrity": "sha512-bzjc+ypvJT+UBUSsfugftOZh/CZECR5GwJ7PMYcFuB/zGPuh41jeAxbuXhlAy8AeJpQgEsTK3B7N1aDr+JPqjg==", "dev": true, "license": "MIT", "dependencies": { "@microsoft/teams-manifest": "^0.1.3", - "adm-zip": "^0.5.9", + "adm-zip": "0.5.12", "chalk": "^2.4.2", "commander": "^6.2.0", "fs-extra": "^7.0.1", @@ -11777,6 +11799,16 @@ "node": "^12.20.0 || >=14" } }, + "node_modules/office-addin-manifest/node_modules/adm-zip": { + "version": "0.5.12", + "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.5.12.tgz", + "integrity": "sha512-6TVU49mK6KZb4qG6xWaaM4C7sA/sgUMLy/JYMOzkcp3BvVLpW0fXDFQiIzAuxFCt/2+xD7fNIiPFAoLZPhVNLQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.0" + } + }, "node_modules/office-addin-manifest/node_modules/commander": { "version": "6.2.1", "resolved": "https://registry.npmjs.org/commander/-/commander-6.2.1.tgz", @@ -11823,9 +11855,9 @@ } }, "node_modules/office-addin-node-debugger": { - "version": "0.9.3", - "resolved": "https://registry.npmjs.org/office-addin-node-debugger/-/office-addin-node-debugger-0.9.3.tgz", - "integrity": "sha512-S0e1lh7ykrcfaccF6jYvK40WJHh0JkZCdUENsYiThqKRB1843Rk0OLYZGHqEqSZYMondO21zUEVYLrwjaaMmwg==", + "version": "0.9.4", + "resolved": "https://registry.npmjs.org/office-addin-node-debugger/-/office-addin-node-debugger-0.9.4.tgz", + "integrity": "sha512-OXqlwOSyBas8GO+GD+8+sIqRr7Oh8eTe/8MaA3de+AUKl1IdwxpmkcTdTeFJQeSmuGmD2aaoytGDFLN5E1FT0A==", "dev": true, "license": "MIT", "dependencies": { @@ -11856,18 +11888,18 @@ "license": "MIT" }, "node_modules/office-addin-project": { - "version": "0.8.3", - "resolved": "https://registry.npmjs.org/office-addin-project/-/office-addin-project-0.8.3.tgz", - "integrity": "sha512-PgGk/LXnfxcKAYfERTPpI7CjXQbMinchIDnDGzS7kigSure5VQsuKi2c8l/F8/8KO+UzKJQa8obqFhwwiAd66A==", + "version": "0.8.4", + "resolved": "https://registry.npmjs.org/office-addin-project/-/office-addin-project-0.8.4.tgz", + "integrity": "sha512-RJ5Z9jb9T/SPQt6w5s/cPeO8XWwcGmM7YoWyHxi+OlqcbgPw3amHbCxAVM96R4mkfN57sL8IBAaC0KxIK9l67g==", "dev": true, "license": "MIT", "peer": true, "dependencies": { - "adm-zip": "^0.5.9", + "adm-zip": "0.5.12", "commander": "^6.2.1", "fs-extra": "^7.0.1", "inquirer": "^7.3.3", - "office-addin-manifest": "^1.13.3", + "office-addin-manifest": "^1.13.4", "office-addin-manifest-converter": "^0.3.1", "office-addin-usage-data": "^1.6.12", "path": "^0.12.7" @@ -11876,6 +11908,17 @@ "office-addin-project": "cli.js" } }, + "node_modules/office-addin-project/node_modules/adm-zip": { + "version": "0.5.12", + "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.5.12.tgz", + "integrity": "sha512-6TVU49mK6KZb4qG6xWaaM4C7sA/sgUMLy/JYMOzkcp3BvVLpW0fXDFQiIzAuxFCt/2+xD7fNIiPFAoLZPhVNLQ==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=6.0" + } + }, "node_modules/office-addin-project/node_modules/commander": { "version": "6.2.1", "resolved": "https://registry.npmjs.org/commander/-/commander-6.2.1.tgz", @@ -14342,9 +14385,9 @@ } }, "node_modules/type-detect": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", - "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.1.0.tgz", + "integrity": "sha512-Acylog8/luQ8L7il+geoSxhEkazvkslg7PSNKOX59mbB9cOveP5aq9h74Y7YU8yDpJwetzQQrfIwtf4Wp4LKcw==", "dev": true, "license": "MIT", "peer": true, @@ -14500,9 +14543,9 @@ } }, "node_modules/uglify-js": { - "version": "3.18.0", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.18.0.tgz", - "integrity": "sha512-SyVVbcNBCk0dzr9XL/R/ySrmYf0s372K6/hFklzgcp2lBFyXtw4I7BOdDjlLhE1aVqaI/SHWXWmYdlZxuyF38A==", + "version": "3.19.2", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.19.2.tgz", + "integrity": "sha512-S8KA6DDI47nQXJSi2ctQ629YzwOVs+bQML6DAtvy0wgNdpi+0ySpQK0g2pxBq2xfF2z3YCscu7NNA8nXT9PlIQ==", "dev": true, "license": "BSD-2-Clause", "optional": true, @@ -14530,9 +14573,9 @@ } }, "node_modules/underscore": { - "version": "1.13.6", - "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.13.6.tgz", - "integrity": "sha512-+A5Sja4HP1M08MaXya7p5LvjuM7K6q/2EaC0+iovj/wOcMsTzMvDFbasi/oSapiwOlt252IqsKqPjCl7huKS0A==", + "version": "1.13.7", + "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.13.7.tgz", + "integrity": "sha512-GMXzWtsc57XAtguZgaQViUOzs0KTkk8ojr3/xAxXLITqf/3EMwxC0inyETfDFjH/Krbhuep0HNbbjI9i/q3F3g==", "dev": true, "license": "MIT", "peer": true @@ -15459,9 +15502,9 @@ "dev": true }, "node_modules/yaml": { - "version": "2.4.5", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.4.5.tgz", - "integrity": "sha512-aBx2bnqDzVOyNKfsysjA2ms5ZlnjSAW2eG3/L5G/CSujfjLJTJsEw1bGw8kCf04KodQWk1pxlGnZ56CRxiawmg==", + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.5.0.tgz", + "integrity": "sha512-2wWLbGbYDiSqqIKoPjar3MPgB94ErzCtrNE1FdqGuaO0pi2JGjmE8aW8TDZwzU7vuxcGRdL/4gPQwQ7hD5AMSw==", "dev": true, "license": "ISC", "peer": true, @@ -15593,16 +15636,16 @@ }, "dependencies": { "ajv": { - "version": "8.16.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.16.0.tgz", - "integrity": "sha512-F0twR8U1ZU67JIEtekUcLkXkoO5mMMmgGD8sK/xUFzJ805jxHQl92hImFAqqXMyMYjSPOyUPAwHYhB72g5sTXw==", + "version": "8.17.1", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", + "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", "dev": true, "peer": true, "requires": { "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.4.1" + "require-from-string": "^2.0.2" } }, "ajv-draft-04": { @@ -15808,9 +15851,9 @@ } }, "@azure/core-rest-pipeline": { - "version": "1.16.0", - "resolved": "https://registry.npmjs.org/@azure/core-rest-pipeline/-/core-rest-pipeline-1.16.0.tgz", - "integrity": "sha512-CeuTvsXxCUmEuxH5g/aceuSl6w2EugvNHKAtKKVdiX915EjJJxAwfzNNWZreNnbxHZ2fi0zaM6wwS23x2JVqSQ==", + "version": "1.16.3", + "resolved": "https://registry.npmjs.org/@azure/core-rest-pipeline/-/core-rest-pipeline-1.16.3.tgz", + "integrity": "sha512-VxLk4AHLyqcHsfKe4MZ6IQ+D+ShuByy+RfStKfSjxJoL3WBWq17VNmrz8aT8etKzqc2nAeIyLxScjpzsS4fz8w==", "dev": true, "peer": true, "requires": { @@ -15847,9 +15890,9 @@ } }, "@azure/core-util": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@azure/core-util/-/core-util-1.9.0.tgz", - "integrity": "sha512-AfalUQ1ZppaKuxPPMsFEUdX6GZPB3d9paR9d/TTL7Ow2De8cJaC7ibi7kWVlFAVPCYo31OcnGymc0R89DX8Oaw==", + "version": "1.9.2", + "resolved": "https://registry.npmjs.org/@azure/core-util/-/core-util-1.9.2.tgz", + "integrity": "sha512-l1Qrqhi4x1aekkV+OlcqsJa4AnAkj5p0JV8omgwjaV9OAbP41lvrMvs+CptfetKkeEaGRGSzby7sjPZEX7+kkQ==", "dev": true, "peer": true, "requires": { @@ -15870,9 +15913,9 @@ } }, "@azure/core-xml": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/@azure/core-xml/-/core-xml-1.4.2.tgz", - "integrity": "sha512-CW3MZhApe/S4iikbYKE7s83fjDBPIr2kpidX+hlGRwh7N4o1nIpQ/PfJTeioqhfqdMvRtheEl+ft64fyTaLNaA==", + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/@azure/core-xml/-/core-xml-1.4.3.tgz", + "integrity": "sha512-D6G7FEmDiTctPKuWegX2WTrS1enKZwqYwdKTO6ZN6JMigcCehlT0/CYl+zWpI9vQ9frwwp7GQT3/owaEXgnOsA==", "dev": true, "peer": true, "requires": { @@ -15881,9 +15924,9 @@ } }, "@azure/identity": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/@azure/identity/-/identity-4.3.0.tgz", - "integrity": "sha512-LHZ58/RsIpIWa4hrrE2YuJ/vzG1Jv9f774RfTTAVDZDriubvJ0/S5u4pnw4akJDlS0TiJb6VMphmVUFsWmgodQ==", + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/@azure/identity/-/identity-4.4.1.tgz", + "integrity": "sha512-DwnG4cKFEM7S3T+9u05NstXU/HN0dk45kPOinUyNKsn5VWwpXd9sbPKEg6kgJzGbm1lMuhx9o31PVbCtM5sfBA==", "dev": true, "peer": true, "requires": { @@ -15894,7 +15937,7 @@ "@azure/core-tracing": "^1.0.0", "@azure/core-util": "^1.3.0", "@azure/logger": "^1.0.0", - "@azure/msal-browser": "^3.11.1", + "@azure/msal-browser": "^3.14.0", "@azure/msal-node": "^2.9.2", "events": "^3.0.0", "jws": "^4.0.0", @@ -15904,9 +15947,9 @@ } }, "@azure/logger": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@azure/logger/-/logger-1.1.2.tgz", - "integrity": "sha512-l170uE7bsKpIU6B/giRc9i4NI0Mj+tANMMMxf7Zi/5cKzEqPayP7+X1WPrG7e+91JgY8N+7K7nF2WOi7iVhXvg==", + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/@azure/logger/-/logger-1.1.4.tgz", + "integrity": "sha512-4IXXzcCdLdlXuCG+8UKEwLA1T1NHqUfanhXYHiQTn+6sfWCZXduqbtXDGceg3Ce5QxTGo7EqmbV6Bi+aqKuClQ==", "dev": true, "peer": true, "requires": { @@ -15914,38 +15957,38 @@ } }, "@azure/msal-browser": { - "version": "3.17.0", - "resolved": "https://registry.npmjs.org/@azure/msal-browser/-/msal-browser-3.17.0.tgz", - "integrity": "sha512-csccKXmW2z7EkZ0I3yAoW/offQt+JECdTIV/KrnRoZyM7wCSsQWODpwod8ZhYy7iOyamcHApR9uCh0oD1M+0/A==", + "version": "3.20.0", + "resolved": "https://registry.npmjs.org/@azure/msal-browser/-/msal-browser-3.20.0.tgz", + "integrity": "sha512-ErsxbfCGIwdqD8jipqdxpfAGiUEQS7MWUe39Rjhl0ZVPsb1JEe9bZCe2+0g23HDH6DGyCAtnTNN9scPtievrMQ==", "dev": true, "peer": true, "requires": { - "@azure/msal-common": "14.12.0" + "@azure/msal-common": "14.14.0" } }, "@azure/msal-common": { - "version": "14.12.0", - "resolved": "https://registry.npmjs.org/@azure/msal-common/-/msal-common-14.12.0.tgz", - "integrity": "sha512-IDDXmzfdwmDkv4SSmMEyAniJf6fDu3FJ7ncOjlxkDuT85uSnLEhZi3fGZpoR7T4XZpOMx9teM9GXBgrfJgyeBw==", + "version": "14.14.0", + "resolved": "https://registry.npmjs.org/@azure/msal-common/-/msal-common-14.14.0.tgz", + "integrity": "sha512-OxcOk9H1/1fktHh6//VCORgSNJc2dCQObTm6JNmL824Z6iZSO6eFo/Bttxe0hETn9B+cr7gDouTQtsRq3YPuSQ==", "dev": true, "peer": true }, "@azure/msal-node": { - "version": "2.9.2", - "resolved": "https://registry.npmjs.org/@azure/msal-node/-/msal-node-2.9.2.tgz", - "integrity": "sha512-8tvi6Cos3m+0KmRbPjgkySXi+UQU/QiuVRFnrxIwt5xZlEEFa69O04RTaNESGgImyBBlYbo2mfE8/U8Bbdk1WQ==", + "version": "2.12.0", + "resolved": "https://registry.npmjs.org/@azure/msal-node/-/msal-node-2.12.0.tgz", + "integrity": "sha512-jmk5Im5KujRA2AcyCb0awA3buV8niSrwXZs+NBJWIvxOz76RvNlusGIqi43A0h45BPUy93Qb+CPdpJn82NFTIg==", "dev": true, "peer": true, "requires": { - "@azure/msal-common": "14.12.0", + "@azure/msal-common": "14.14.0", "jsonwebtoken": "^9.0.0", "uuid": "^8.3.0" } }, "@azure/storage-blob": { - "version": "12.23.0", - "resolved": "https://registry.npmjs.org/@azure/storage-blob/-/storage-blob-12.23.0.tgz", - "integrity": "sha512-c1KJ5R5hqR/HtvmFtTn/Y1BNMq45NUBp0LZH7yF8WFMET+wmESgEr0FVTu/Z5NonmfUjbgJZG5Nh8xHc5RdWGQ==", + "version": "12.24.0", + "resolved": "https://registry.npmjs.org/@azure/storage-blob/-/storage-blob-12.24.0.tgz", + "integrity": "sha512-l8cmWM4C7RoNCBOImoFMxhTXe1Lr+8uQ/IgnhRNMpfoA9bAFWoLG4XrWm6O5rKXortreVQuD+fc1hbzWklOZbw==", "dev": true, "peer": true, "requires": { @@ -15956,7 +15999,7 @@ "@azure/core-lro": "^2.2.0", "@azure/core-paging": "^1.1.1", "@azure/core-rest-pipeline": "^1.10.1", - "@azure/core-tracing": "^1.0.0", + "@azure/core-tracing": "^1.1.2", "@azure/core-util": "^1.6.1", "@azure/core-xml": "^1.3.2", "@azure/logger": "^1.0.0", @@ -18268,11 +18311,14 @@ } }, "@inquirer/type": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/@inquirer/type/-/type-1.3.3.tgz", - "integrity": "sha512-xTUt0NulylX27/zMx04ZYar/kr1raaiFTVvQ5feljQsiAgdm0WPj4S73/ye0fbslh+15QrIuDvfCXTek7pMY5A==", + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/@inquirer/type/-/type-1.5.2.tgz", + "integrity": "sha512-w9qFkumYDCNyDZmNQjf/n6qQuvQ4dMC3BJesY4oF+yr0CxR5vxujflAVeIcS6U336uzi9GM0kAfZlLrZ9UTkpA==", "dev": true, - "peer": true + "peer": true, + "requires": { + "mute-stream": "^1.0.0" + } }, "@isaacs/cliui": { "version": "8.0.2", @@ -18626,9 +18672,9 @@ "peer": true }, "semver": { - "version": "7.6.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", - "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", "dev": true, "peer": true }, @@ -18721,16 +18767,16 @@ }, "dependencies": { "ajv": { - "version": "8.16.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.16.0.tgz", - "integrity": "sha512-F0twR8U1ZU67JIEtekUcLkXkoO5mMMmgGD8sK/xUFzJ805jxHQl92hImFAqqXMyMYjSPOyUPAwHYhB72g5sTXw==", + "version": "8.17.1", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", + "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", "dev": true, "peer": true, "requires": { "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.4.1" + "require-from-string": "^2.0.2" } }, "iconv-lite": { @@ -18751,9 +18797,9 @@ "peer": true }, "semver": { - "version": "7.6.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", - "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", "dev": true, "peer": true } @@ -19461,10 +19507,11 @@ "peer": true }, "adm-zip": { - "version": "0.5.14", - "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.5.14.tgz", - "integrity": "sha512-DnyqqifT4Jrcvb8USYjp6FHtBpEIz1mnXu6pTRHZ0RL69LbQYiO+0lDFg5+OKA7U29oWSs3a/i8fhn8ZcceIWg==", - "dev": true + "version": "0.5.15", + "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.5.15.tgz", + "integrity": "sha512-jYPWSeOA8EFoZnucrKCNihqBjoEGQSU4HKgHYQgKNEQ0pQF9a/DYuo/+fAxY76k4qe75LUlLWpAM1QWcBMTOKw==", + "dev": true, + "peer": true }, "agent-base": { "version": "7.1.1", @@ -19770,9 +19817,9 @@ } }, "axios": { - "version": "1.7.2", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.7.2.tgz", - "integrity": "sha512-2A8QhOMrbomlDuiLeK9XibIBzuHeRcqqNOHp0Cyp5EoJ1IFDh+XZH3A6BkXtv0K4gFGCI0Y4BM7B1wOEi0Rmgw==", + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.7.3.tgz", + "integrity": "sha512-Ar7ND9pU99eJ9GpoGQKhKf58GpUOgnzuaB7ueNQ5BMi0p+LZ5oaEnfF999fAArcTIBwXTCHAmGcHOZJaWPq9Nw==", "dev": true, "peer": true, "requires": { @@ -20042,9 +20089,9 @@ "dev": true }, "chai": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/chai/-/chai-4.4.1.tgz", - "integrity": "sha512-13sOfMv2+DWduEU+/xbun3LScLoqN17nBeTLUsmDfKdoiC1fr0n9PU4guu4AhRcOVFk/sW8LyZWHuhWtQZiF+g==", + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/chai/-/chai-4.5.0.tgz", + "integrity": "sha512-RITGBfijLkBddZvnn8jdqoTypxvqbOLYQkGGxXzeFjVHvudaPw0HNFD9x928/eUwYWd2dPCugVqspGALTZZQKw==", "dev": true, "peer": true, "requires": { @@ -20054,7 +20101,7 @@ "get-func-name": "^2.0.2", "loupe": "^2.3.6", "pathval": "^1.1.1", - "type-detect": "^4.0.8" + "type-detect": "^4.1.0" } }, "chalk": { @@ -20295,9 +20342,9 @@ "dev": true }, "comment-json": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/comment-json/-/comment-json-4.2.3.tgz", - "integrity": "sha512-SsxdiOf064DWoZLH799Ata6u7iV658A11PlWtZATDlXPpKGJnbJZ5Z24ybixAi+LUUqJ/GKowAejtC5GFUG7Tw==", + "version": "4.2.5", + "resolved": "https://registry.npmjs.org/comment-json/-/comment-json-4.2.5.tgz", + "integrity": "sha512-bKw/r35jR3HGt5PEPm1ljsQQGyCrR8sFGNiN5L+ykDHdpO8Smxkrkla9Yi6NkQyUrb8V54PGhfMs6NrIwtxtdw==", "dev": true, "peer": true, "requires": { @@ -21625,10 +21672,17 @@ "dev": true, "peer": true }, + "fast-uri": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.0.1.tgz", + "integrity": "sha512-MWipKbbYiYI0UC7cl8m/i/IWTqfC8YXsqjzybjddLsFjStroQzsHXkc73JutMvBiXmOvapk+axIl79ig5t55Bw==", + "dev": true, + "peer": true + }, "fast-xml-parser": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-4.4.0.tgz", - "integrity": "sha512-kLY3jFlwIYwBNDojclKsNAC12sfD6NwW74QB2CoNGPvtVxjliYehVunB3HYyNi+n4Tt1dAcgwYvmKF/Z18flqg==", + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-4.4.1.tgz", + "integrity": "sha512-xkjOecfnKGkSsOwtZ5Pz7Us/T6mrbPQrq0nh+aCO5V9nk5NLWmasAHumTKjiPJPWANe+kAZ84Jc8ooJkzZ88Sw==", "dev": true, "peer": true, "requires": { @@ -22366,9 +22420,9 @@ "peer": true }, "https-proxy-agent": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.4.tgz", - "integrity": "sha512-wlwpilI7YdjSkWaQ/7omYBMTliDcmCN8OLihO6I9B86g06lMyAoqgoDpV0XqoaPOKj+0DIdAvnsWfyAAhmimcg==", + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.5.tgz", + "integrity": "sha512-1e4Wqeblerz+tMKPIq2EMGiiWW1dIjZOksyHWSUm1rmuvw/how9hBHZ38lAGj5ID4Ik6EdkOw7NmWPy6LAwalw==", "dev": true, "peer": true, "requires": { @@ -23064,9 +23118,9 @@ } }, "semver": { - "version": "7.6.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", - "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", "dev": true, "peer": true } @@ -23539,9 +23593,9 @@ }, "dependencies": { "semver": { - "version": "7.6.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", - "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", "dev": true, "optional": true, "peer": true @@ -23822,22 +23876,28 @@ } }, "office-addin-debugging": { - "version": "5.1.3", - "resolved": "https://registry.npmjs.org/office-addin-debugging/-/office-addin-debugging-5.1.3.tgz", - "integrity": "sha512-Y/uW4Gt93MIkHcSk8Kb+k/MuNQTWwtl9WmfdKFqC3UI4V8UO01jGkCk1uRuNhO186pLWD1SBZLG+jbmI7EC+qw==", + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/office-addin-debugging/-/office-addin-debugging-5.1.4.tgz", + "integrity": "sha512-nFxUmDxWRUxMZq+nCXcUXEjLU1ZLtM1hKEBrxwsUfyH62wbQBDLH1k0GeU38Rb29wIbrIY7kG3L6SAzf2xYU2A==", "dev": true, "requires": { - "adm-zip": "^0.5.9", + "adm-zip": "0.5.12", "commander": "^6.2.0", "node-fetch": "^2.6.1", "office-addin-cli": "^1.6.3", "office-addin-dev-certs": "^1.13.3", - "office-addin-dev-settings": "^2.3.3", - "office-addin-manifest": "^1.13.3", - "office-addin-node-debugger": "^0.9.3", + "office-addin-dev-settings": "^2.3.4", + "office-addin-manifest": "^1.13.4", + "office-addin-node-debugger": "^0.9.4", "office-addin-usage-data": "^1.6.12" }, "dependencies": { + "adm-zip": { + "version": "0.5.12", + "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.5.12.tgz", + "integrity": "sha512-6TVU49mK6KZb4qG6xWaaM4C7sA/sgUMLy/JYMOzkcp3BvVLpW0fXDFQiIzAuxFCt/2+xD7fNIiPFAoLZPhVNLQ==", + "dev": true + }, "commander": { "version": "6.2.1", "resolved": "https://registry.npmjs.org/commander/-/commander-6.2.1.tgz", @@ -23879,17 +23939,17 @@ } }, "office-addin-dev-settings": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/office-addin-dev-settings/-/office-addin-dev-settings-2.3.3.tgz", - "integrity": "sha512-Zw+GnG0NnT471tkSPPuatNqXH4VZsCqCmItx+nGEj6fCwFowPbmP6eBcypIGS47x/T3+V9KNIKsoUKKps4Kefw==", + "version": "2.3.4", + "resolved": "https://registry.npmjs.org/office-addin-dev-settings/-/office-addin-dev-settings-2.3.4.tgz", + "integrity": "sha512-MpO1wj5mrNJeNisvhziFo1lg/4ARH/kILBEygL+WmS1F36nAi9EfY+kH0GkVSHd0WF8d/eaOBFRxOxrkdtidLQ==", "dev": true, "requires": { - "adm-zip": "0.5.10", + "adm-zip": "0.5.12", "commander": "^6.2.0", "fs-extra": "^11.2.0", "inquirer": "^7.3.3", "junk": "^3.1.0", - "office-addin-manifest": "^1.13.3", + "office-addin-manifest": "^1.13.4", "office-addin-usage-data": "^1.6.12", "open": "^6.4.0", "string_decoder": "1.3.0", @@ -23898,9 +23958,9 @@ }, "dependencies": { "adm-zip": { - "version": "0.5.10", - "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.5.10.tgz", - "integrity": "sha512-x0HvcHqVJNTPk/Bw8JbLWlWoo6Wwnsug0fnYYro1HBrjxZ3G7/AZk7Ahv8JwDe1uIcz8eBqvu86FuF1POiG7vQ==", + "version": "0.5.12", + "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.5.12.tgz", + "integrity": "sha512-6TVU49mK6KZb4qG6xWaaM4C7sA/sgUMLy/JYMOzkcp3BvVLpW0fXDFQiIzAuxFCt/2+xD7fNIiPFAoLZPhVNLQ==", "dev": true }, "commander": { @@ -23989,13 +24049,13 @@ } }, "office-addin-manifest": { - "version": "1.13.3", - "resolved": "https://registry.npmjs.org/office-addin-manifest/-/office-addin-manifest-1.13.3.tgz", - "integrity": "sha512-pcIJTkLCKddGWyTQYkxWRcumZo9NzPdkQN43c17oylpvH2W0HgsZyBIazkwAjqAETy0VX40NbSQ8ejf4c9jvcA==", + "version": "1.13.4", + "resolved": "https://registry.npmjs.org/office-addin-manifest/-/office-addin-manifest-1.13.4.tgz", + "integrity": "sha512-bzjc+ypvJT+UBUSsfugftOZh/CZECR5GwJ7PMYcFuB/zGPuh41jeAxbuXhlAy8AeJpQgEsTK3B7N1aDr+JPqjg==", "dev": true, "requires": { "@microsoft/teams-manifest": "^0.1.3", - "adm-zip": "^0.5.9", + "adm-zip": "0.5.12", "chalk": "^2.4.2", "commander": "^6.2.0", "fs-extra": "^7.0.1", @@ -24006,6 +24066,12 @@ "xml2js": "^0.5.0" }, "dependencies": { + "adm-zip": { + "version": "0.5.12", + "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.5.12.tgz", + "integrity": "sha512-6TVU49mK6KZb4qG6xWaaM4C7sA/sgUMLy/JYMOzkcp3BvVLpW0fXDFQiIzAuxFCt/2+xD7fNIiPFAoLZPhVNLQ==", + "dev": true + }, "commander": { "version": "6.2.1", "resolved": "https://registry.npmjs.org/commander/-/commander-6.2.1.tgz", @@ -24062,9 +24128,9 @@ } }, "office-addin-node-debugger": { - "version": "0.9.3", - "resolved": "https://registry.npmjs.org/office-addin-node-debugger/-/office-addin-node-debugger-0.9.3.tgz", - "integrity": "sha512-S0e1lh7ykrcfaccF6jYvK40WJHh0JkZCdUENsYiThqKRB1843Rk0OLYZGHqEqSZYMondO21zUEVYLrwjaaMmwg==", + "version": "0.9.4", + "resolved": "https://registry.npmjs.org/office-addin-node-debugger/-/office-addin-node-debugger-0.9.4.tgz", + "integrity": "sha512-OXqlwOSyBas8GO+GD+8+sIqRr7Oh8eTe/8MaA3de+AUKl1IdwxpmkcTdTeFJQeSmuGmD2aaoytGDFLN5E1FT0A==", "dev": true, "requires": { "commander": "^6.2.0", @@ -24088,22 +24154,29 @@ "dev": true }, "office-addin-project": { - "version": "0.8.3", - "resolved": "https://registry.npmjs.org/office-addin-project/-/office-addin-project-0.8.3.tgz", - "integrity": "sha512-PgGk/LXnfxcKAYfERTPpI7CjXQbMinchIDnDGzS7kigSure5VQsuKi2c8l/F8/8KO+UzKJQa8obqFhwwiAd66A==", + "version": "0.8.4", + "resolved": "https://registry.npmjs.org/office-addin-project/-/office-addin-project-0.8.4.tgz", + "integrity": "sha512-RJ5Z9jb9T/SPQt6w5s/cPeO8XWwcGmM7YoWyHxi+OlqcbgPw3amHbCxAVM96R4mkfN57sL8IBAaC0KxIK9l67g==", "dev": true, "peer": true, "requires": { - "adm-zip": "^0.5.9", + "adm-zip": "0.5.12", "commander": "^6.2.1", "fs-extra": "^7.0.1", "inquirer": "^7.3.3", - "office-addin-manifest": "^1.13.3", + "office-addin-manifest": "^1.13.4", "office-addin-manifest-converter": "^0.3.1", "office-addin-usage-data": "^1.6.12", "path": "^0.12.7" }, "dependencies": { + "adm-zip": { + "version": "0.5.12", + "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.5.12.tgz", + "integrity": "sha512-6TVU49mK6KZb4qG6xWaaM4C7sA/sgUMLy/JYMOzkcp3BvVLpW0fXDFQiIzAuxFCt/2+xD7fNIiPFAoLZPhVNLQ==", + "dev": true, + "peer": true + }, "commander": { "version": "6.2.1", "resolved": "https://registry.npmjs.org/commander/-/commander-6.2.1.tgz", @@ -25913,9 +25986,9 @@ } }, "type-detect": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", - "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.1.0.tgz", + "integrity": "sha512-Acylog8/luQ8L7il+geoSxhEkazvkslg7PSNKOX59mbB9cOveP5aq9h74Y7YU8yDpJwetzQQrfIwtf4Wp4LKcw==", "dev": true, "peer": true }, @@ -26012,9 +26085,9 @@ } }, "uglify-js": { - "version": "3.18.0", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.18.0.tgz", - "integrity": "sha512-SyVVbcNBCk0dzr9XL/R/ySrmYf0s372K6/hFklzgcp2lBFyXtw4I7BOdDjlLhE1aVqaI/SHWXWmYdlZxuyF38A==", + "version": "3.19.2", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.19.2.tgz", + "integrity": "sha512-S8KA6DDI47nQXJSi2ctQ629YzwOVs+bQML6DAtvy0wgNdpi+0ySpQK0g2pxBq2xfF2z3YCscu7NNA8nXT9PlIQ==", "dev": true, "optional": true, "peer": true @@ -26032,9 +26105,9 @@ } }, "underscore": { - "version": "1.13.6", - "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.13.6.tgz", - "integrity": "sha512-+A5Sja4HP1M08MaXya7p5LvjuM7K6q/2EaC0+iovj/wOcMsTzMvDFbasi/oSapiwOlt252IqsKqPjCl7huKS0A==", + "version": "1.13.7", + "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.13.7.tgz", + "integrity": "sha512-GMXzWtsc57XAtguZgaQViUOzs0KTkk8ojr3/xAxXLITqf/3EMwxC0inyETfDFjH/Krbhuep0HNbbjI9i/q3F3g==", "dev": true, "peer": true }, @@ -26659,9 +26732,9 @@ "dev": true }, "yaml": { - "version": "2.4.5", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.4.5.tgz", - "integrity": "sha512-aBx2bnqDzVOyNKfsysjA2ms5ZlnjSAW2eG3/L5G/CSujfjLJTJsEw1bGw8kCf04KodQWk1pxlGnZ56CRxiawmg==", + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.5.0.tgz", + "integrity": "sha512-2wWLbGbYDiSqqIKoPjar3MPgB94ErzCtrNE1FdqGuaO0pi2JGjmE8aW8TDZwzU7vuxcGRdL/4gPQwQ7hD5AMSw==", "dev": true, "peer": true }, diff --git a/Samples/tutorials/excel-tutorial/My Office Add-in/src/dialogs/popup.html b/Samples/tutorials/excel-tutorial/My Office Add-in/src/dialogs/popup.html index a98e9170e..cca282e64 100644 --- a/Samples/tutorials/excel-tutorial/My Office Add-in/src/dialogs/popup.html +++ b/Samples/tutorials/excel-tutorial/My Office Add-in/src/dialogs/popup.html @@ -8,7 +8,7 @@ <!-- For more information on Fluent UI, visit https://developer.microsoft.com/fluentui. --> <link rel="stylesheet" href="https://static2.sharepointonline.com/files/fabric/office-ui-fabric-core/9.6.1/css/fabric.min.css"/> - <script type="text/javascript" src="https://appsforoffice.microsoft.com/lib/1/hosted/office.js"></script> + <script type="text/javascript" src="https://appsforoffice.microsoft.com/lib/1.1/hosted/office.js"></script> <script type="text/javascript" src="popup.js"></script> </head> diff --git a/Samples/tutorials/outlook-tutorial/Git the gist/package-lock.json b/Samples/tutorials/outlook-tutorial/Git the gist/package-lock.json index 6ccedd2bf..426344508 100644 --- a/Samples/tutorials/outlook-tutorial/Git the gist/package-lock.json +++ b/Samples/tutorials/outlook-tutorial/Git the gist/package-lock.json @@ -136,17 +136,17 @@ } }, "node_modules/@apidevtools/swagger-parser/node_modules/ajv": { - "version": "8.16.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.16.0.tgz", - "integrity": "sha512-F0twR8U1ZU67JIEtekUcLkXkoO5mMMmgGD8sK/xUFzJ805jxHQl92hImFAqqXMyMYjSPOyUPAwHYhB72g5sTXw==", + "version": "8.17.1", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", + "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", "dev": true, "license": "MIT", "peer": true, "dependencies": { "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.4.1" + "require-from-string": "^2.0.2" }, "funding": { "type": "github", @@ -411,9 +411,9 @@ } }, "node_modules/@azure/core-rest-pipeline": { - "version": "1.16.0", - "resolved": "https://registry.npmjs.org/@azure/core-rest-pipeline/-/core-rest-pipeline-1.16.0.tgz", - "integrity": "sha512-CeuTvsXxCUmEuxH5g/aceuSl6w2EugvNHKAtKKVdiX915EjJJxAwfzNNWZreNnbxHZ2fi0zaM6wwS23x2JVqSQ==", + "version": "1.16.3", + "resolved": "https://registry.npmjs.org/@azure/core-rest-pipeline/-/core-rest-pipeline-1.16.3.tgz", + "integrity": "sha512-VxLk4AHLyqcHsfKe4MZ6IQ+D+ShuByy+RfStKfSjxJoL3WBWq17VNmrz8aT8etKzqc2nAeIyLxScjpzsS4fz8w==", "dev": true, "license": "MIT", "peer": true, @@ -460,9 +460,9 @@ } }, "node_modules/@azure/core-util": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@azure/core-util/-/core-util-1.9.0.tgz", - "integrity": "sha512-AfalUQ1ZppaKuxPPMsFEUdX6GZPB3d9paR9d/TTL7Ow2De8cJaC7ibi7kWVlFAVPCYo31OcnGymc0R89DX8Oaw==", + "version": "1.9.2", + "resolved": "https://registry.npmjs.org/@azure/core-util/-/core-util-1.9.2.tgz", + "integrity": "sha512-l1Qrqhi4x1aekkV+OlcqsJa4AnAkj5p0JV8omgwjaV9OAbP41lvrMvs+CptfetKkeEaGRGSzby7sjPZEX7+kkQ==", "dev": true, "license": "MIT", "peer": true, @@ -489,9 +489,9 @@ } }, "node_modules/@azure/core-xml": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/@azure/core-xml/-/core-xml-1.4.2.tgz", - "integrity": "sha512-CW3MZhApe/S4iikbYKE7s83fjDBPIr2kpidX+hlGRwh7N4o1nIpQ/PfJTeioqhfqdMvRtheEl+ft64fyTaLNaA==", + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/@azure/core-xml/-/core-xml-1.4.3.tgz", + "integrity": "sha512-D6G7FEmDiTctPKuWegX2WTrS1enKZwqYwdKTO6ZN6JMigcCehlT0/CYl+zWpI9vQ9frwwp7GQT3/owaEXgnOsA==", "dev": true, "license": "MIT", "peer": true, @@ -504,9 +504,9 @@ } }, "node_modules/@azure/identity": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/@azure/identity/-/identity-4.3.0.tgz", - "integrity": "sha512-LHZ58/RsIpIWa4hrrE2YuJ/vzG1Jv9f774RfTTAVDZDriubvJ0/S5u4pnw4akJDlS0TiJb6VMphmVUFsWmgodQ==", + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/@azure/identity/-/identity-4.4.1.tgz", + "integrity": "sha512-DwnG4cKFEM7S3T+9u05NstXU/HN0dk45kPOinUyNKsn5VWwpXd9sbPKEg6kgJzGbm1lMuhx9o31PVbCtM5sfBA==", "dev": true, "license": "MIT", "peer": true, @@ -518,7 +518,7 @@ "@azure/core-tracing": "^1.0.0", "@azure/core-util": "^1.3.0", "@azure/logger": "^1.0.0", - "@azure/msal-browser": "^3.11.1", + "@azure/msal-browser": "^3.14.0", "@azure/msal-node": "^2.9.2", "events": "^3.0.0", "jws": "^4.0.0", @@ -531,9 +531,9 @@ } }, "node_modules/@azure/logger": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@azure/logger/-/logger-1.1.2.tgz", - "integrity": "sha512-l170uE7bsKpIU6B/giRc9i4NI0Mj+tANMMMxf7Zi/5cKzEqPayP7+X1WPrG7e+91JgY8N+7K7nF2WOi7iVhXvg==", + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/@azure/logger/-/logger-1.1.4.tgz", + "integrity": "sha512-4IXXzcCdLdlXuCG+8UKEwLA1T1NHqUfanhXYHiQTn+6sfWCZXduqbtXDGceg3Ce5QxTGo7EqmbV6Bi+aqKuClQ==", "dev": true, "license": "MIT", "peer": true, @@ -545,23 +545,23 @@ } }, "node_modules/@azure/msal-browser": { - "version": "3.17.0", - "resolved": "https://registry.npmjs.org/@azure/msal-browser/-/msal-browser-3.17.0.tgz", - "integrity": "sha512-csccKXmW2z7EkZ0I3yAoW/offQt+JECdTIV/KrnRoZyM7wCSsQWODpwod8ZhYy7iOyamcHApR9uCh0oD1M+0/A==", + "version": "3.20.0", + "resolved": "https://registry.npmjs.org/@azure/msal-browser/-/msal-browser-3.20.0.tgz", + "integrity": "sha512-ErsxbfCGIwdqD8jipqdxpfAGiUEQS7MWUe39Rjhl0ZVPsb1JEe9bZCe2+0g23HDH6DGyCAtnTNN9scPtievrMQ==", "dev": true, "license": "MIT", "peer": true, "dependencies": { - "@azure/msal-common": "14.12.0" + "@azure/msal-common": "14.14.0" }, "engines": { "node": ">=0.8.0" } }, "node_modules/@azure/msal-common": { - "version": "14.12.0", - "resolved": "https://registry.npmjs.org/@azure/msal-common/-/msal-common-14.12.0.tgz", - "integrity": "sha512-IDDXmzfdwmDkv4SSmMEyAniJf6fDu3FJ7ncOjlxkDuT85uSnLEhZi3fGZpoR7T4XZpOMx9teM9GXBgrfJgyeBw==", + "version": "14.14.0", + "resolved": "https://registry.npmjs.org/@azure/msal-common/-/msal-common-14.14.0.tgz", + "integrity": "sha512-OxcOk9H1/1fktHh6//VCORgSNJc2dCQObTm6JNmL824Z6iZSO6eFo/Bttxe0hETn9B+cr7gDouTQtsRq3YPuSQ==", "dev": true, "license": "MIT", "peer": true, @@ -570,14 +570,14 @@ } }, "node_modules/@azure/msal-node": { - "version": "2.9.2", - "resolved": "https://registry.npmjs.org/@azure/msal-node/-/msal-node-2.9.2.tgz", - "integrity": "sha512-8tvi6Cos3m+0KmRbPjgkySXi+UQU/QiuVRFnrxIwt5xZlEEFa69O04RTaNESGgImyBBlYbo2mfE8/U8Bbdk1WQ==", + "version": "2.12.0", + "resolved": "https://registry.npmjs.org/@azure/msal-node/-/msal-node-2.12.0.tgz", + "integrity": "sha512-jmk5Im5KujRA2AcyCb0awA3buV8niSrwXZs+NBJWIvxOz76RvNlusGIqi43A0h45BPUy93Qb+CPdpJn82NFTIg==", "dev": true, "license": "MIT", "peer": true, "dependencies": { - "@azure/msal-common": "14.12.0", + "@azure/msal-common": "14.14.0", "jsonwebtoken": "^9.0.0", "uuid": "^8.3.0" }, @@ -586,9 +586,9 @@ } }, "node_modules/@azure/storage-blob": { - "version": "12.23.0", - "resolved": "https://registry.npmjs.org/@azure/storage-blob/-/storage-blob-12.23.0.tgz", - "integrity": "sha512-c1KJ5R5hqR/HtvmFtTn/Y1BNMq45NUBp0LZH7yF8WFMET+wmESgEr0FVTu/Z5NonmfUjbgJZG5Nh8xHc5RdWGQ==", + "version": "12.24.0", + "resolved": "https://registry.npmjs.org/@azure/storage-blob/-/storage-blob-12.24.0.tgz", + "integrity": "sha512-l8cmWM4C7RoNCBOImoFMxhTXe1Lr+8uQ/IgnhRNMpfoA9bAFWoLG4XrWm6O5rKXortreVQuD+fc1hbzWklOZbw==", "dev": true, "license": "MIT", "peer": true, @@ -600,7 +600,7 @@ "@azure/core-lro": "^2.2.0", "@azure/core-paging": "^1.1.1", "@azure/core-rest-pipeline": "^1.10.1", - "@azure/core-tracing": "^1.0.0", + "@azure/core-tracing": "^1.1.2", "@azure/core-util": "^1.6.1", "@azure/core-xml": "^1.3.2", "@azure/logger": "^1.0.0", @@ -4002,12 +4002,15 @@ } }, "node_modules/@inquirer/type": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/@inquirer/type/-/type-1.3.3.tgz", - "integrity": "sha512-xTUt0NulylX27/zMx04ZYar/kr1raaiFTVvQ5feljQsiAgdm0WPj4S73/ye0fbslh+15QrIuDvfCXTek7pMY5A==", + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/@inquirer/type/-/type-1.5.2.tgz", + "integrity": "sha512-w9qFkumYDCNyDZmNQjf/n6qQuvQ4dMC3BJesY4oF+yr0CxR5vxujflAVeIcS6U336uzi9GM0kAfZlLrZ9UTkpA==", "dev": true, "license": "MIT", "peer": true, + "dependencies": { + "mute-stream": "^1.0.0" + }, "engines": { "node": ">=18" } @@ -4430,9 +4433,9 @@ } }, "node_modules/@microsoft/teamsapp-cli/node_modules/semver": { - "version": "7.6.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", - "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", "dev": true, "license": "ISC", "peer": true, @@ -4536,17 +4539,17 @@ } }, "node_modules/@microsoft/teamsfx-core/node_modules/ajv": { - "version": "8.16.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.16.0.tgz", - "integrity": "sha512-F0twR8U1ZU67JIEtekUcLkXkoO5mMMmgGD8sK/xUFzJ805jxHQl92hImFAqqXMyMYjSPOyUPAwHYhB72g5sTXw==", + "version": "8.17.1", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", + "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", "dev": true, "license": "MIT", "peer": true, "dependencies": { "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.4.1" + "require-from-string": "^2.0.2" }, "funding": { "type": "github", @@ -4562,9 +4565,9 @@ "peer": true }, "node_modules/@microsoft/teamsfx-core/node_modules/semver": { - "version": "7.6.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", - "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", "dev": true, "license": "ISC", "peer": true, @@ -5463,11 +5466,12 @@ } }, "node_modules/adm-zip": { - "version": "0.5.14", - "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.5.14.tgz", - "integrity": "sha512-DnyqqifT4Jrcvb8USYjp6FHtBpEIz1mnXu6pTRHZ0RL69LbQYiO+0lDFg5+OKA7U29oWSs3a/i8fhn8ZcceIWg==", + "version": "0.5.15", + "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.5.15.tgz", + "integrity": "sha512-jYPWSeOA8EFoZnucrKCNihqBjoEGQSU4HKgHYQgKNEQ0pQF9a/DYuo/+fAxY76k4qe75LUlLWpAM1QWcBMTOKw==", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">=12.0" } @@ -5900,9 +5904,9 @@ } }, "node_modules/axios": { - "version": "1.7.2", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.7.2.tgz", - "integrity": "sha512-2A8QhOMrbomlDuiLeK9XibIBzuHeRcqqNOHp0Cyp5EoJ1IFDh+XZH3A6BkXtv0K4gFGCI0Y4BM7B1wOEi0Rmgw==", + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.7.3.tgz", + "integrity": "sha512-Ar7ND9pU99eJ9GpoGQKhKf58GpUOgnzuaB7ueNQ5BMi0p+LZ5oaEnfF999fAArcTIBwXTCHAmGcHOZJaWPq9Nw==", "dev": true, "license": "MIT", "peer": true, @@ -6050,9 +6054,9 @@ } }, "node_modules/body-parser": { - "version": "1.20.2", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.2.tgz", - "integrity": "sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==", + "version": "1.20.3", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.3.tgz", + "integrity": "sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g==", "dev": true, "dependencies": { "bytes": "3.1.2", @@ -6063,7 +6067,7 @@ "http-errors": "2.0.0", "iconv-lite": "0.4.24", "on-finished": "2.4.1", - "qs": "6.11.0", + "qs": "6.13.0", "raw-body": "2.5.2", "type-is": "~1.6.18", "unpipe": "1.0.0" @@ -6305,9 +6309,9 @@ ] }, "node_modules/chai": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/chai/-/chai-4.4.1.tgz", - "integrity": "sha512-13sOfMv2+DWduEU+/xbun3LScLoqN17nBeTLUsmDfKdoiC1fr0n9PU4guu4AhRcOVFk/sW8LyZWHuhWtQZiF+g==", + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/chai/-/chai-4.5.0.tgz", + "integrity": "sha512-RITGBfijLkBddZvnn8jdqoTypxvqbOLYQkGGxXzeFjVHvudaPw0HNFD9x928/eUwYWd2dPCugVqspGALTZZQKw==", "dev": true, "license": "MIT", "peer": true, @@ -6318,7 +6322,7 @@ "get-func-name": "^2.0.2", "loupe": "^2.3.6", "pathval": "^1.1.1", - "type-detect": "^4.0.8" + "type-detect": "^4.1.0" }, "engines": { "node": ">=4" @@ -6651,9 +6655,9 @@ } }, "node_modules/comment-json": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/comment-json/-/comment-json-4.2.3.tgz", - "integrity": "sha512-SsxdiOf064DWoZLH799Ata6u7iV658A11PlWtZATDlXPpKGJnbJZ5Z24ybixAi+LUUqJ/GKowAejtC5GFUG7Tw==", + "version": "4.2.5", + "resolved": "https://registry.npmjs.org/comment-json/-/comment-json-4.2.5.tgz", + "integrity": "sha512-bKw/r35jR3HGt5PEPm1ljsQQGyCrR8sFGNiN5L+ykDHdpO8Smxkrkla9Yi6NkQyUrb8V54PGhfMs6NrIwtxtdw==", "dev": true, "license": "MIT", "peer": true, @@ -7454,9 +7458,9 @@ } }, "node_modules/encodeurl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz", + "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==", "dev": true, "engines": { "node": ">= 0.8" @@ -8388,37 +8392,37 @@ } }, "node_modules/express": { - "version": "4.19.2", - "resolved": "https://registry.npmjs.org/express/-/express-4.19.2.tgz", - "integrity": "sha512-5T6nhjsT+EOMzuck8JjBHARTHfMht0POzlA60WV2pMD3gyXw2LZnZ+ueGdNxG+0calOJcWKbpFcuzLZ91YWq9Q==", + "version": "4.21.0", + "resolved": "https://registry.npmjs.org/express/-/express-4.21.0.tgz", + "integrity": "sha512-VqcNGcj/Id5ZT1LZ/cfihi3ttTn+NJmkli2eZADigjq29qTlWi/hAQ43t/VLPq8+UX06FCEx3ByOYet6ZFblng==", "dev": true, "dependencies": { "accepts": "~1.3.8", "array-flatten": "1.1.1", - "body-parser": "1.20.2", + "body-parser": "1.20.3", "content-disposition": "0.5.4", "content-type": "~1.0.4", "cookie": "0.6.0", "cookie-signature": "1.0.6", "debug": "2.6.9", "depd": "2.0.0", - "encodeurl": "~1.0.2", + "encodeurl": "~2.0.0", "escape-html": "~1.0.3", "etag": "~1.8.1", - "finalhandler": "1.2.0", + "finalhandler": "1.3.1", "fresh": "0.5.2", "http-errors": "2.0.0", - "merge-descriptors": "1.0.1", + "merge-descriptors": "1.0.3", "methods": "~1.1.2", "on-finished": "2.4.1", "parseurl": "~1.3.3", - "path-to-regexp": "0.1.7", + "path-to-regexp": "0.1.10", "proxy-addr": "~2.0.7", - "qs": "6.11.0", + "qs": "6.13.0", "range-parser": "~1.2.1", "safe-buffer": "5.2.1", - "send": "0.18.0", - "serve-static": "1.15.0", + "send": "0.19.0", + "serve-static": "1.16.2", "setprototypeof": "1.2.0", "statuses": "2.0.1", "type-is": "~1.6.18", @@ -8534,10 +8538,18 @@ "license": "MIT", "peer": true }, + "node_modules/fast-uri": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.0.1.tgz", + "integrity": "sha512-MWipKbbYiYI0UC7cl8m/i/IWTqfC8YXsqjzybjddLsFjStroQzsHXkc73JutMvBiXmOvapk+axIl79ig5t55Bw==", + "dev": true, + "license": "MIT", + "peer": true + }, "node_modules/fast-xml-parser": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-4.4.0.tgz", - "integrity": "sha512-kLY3jFlwIYwBNDojclKsNAC12sfD6NwW74QB2CoNGPvtVxjliYehVunB3HYyNi+n4Tt1dAcgwYvmKF/Z18flqg==", + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-4.4.1.tgz", + "integrity": "sha512-xkjOecfnKGkSsOwtZ5Pz7Us/T6mrbPQrq0nh+aCO5V9nk5NLWmasAHumTKjiPJPWANe+kAZ84Jc8ooJkzZ88Sw==", "dev": true, "funding": [ { @@ -8669,13 +8681,13 @@ } }, "node_modules/finalhandler": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", - "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.3.1.tgz", + "integrity": "sha512-6BN9trH7bp3qvnrRyzsBz+g3lZxTNZTbVO2EV1CS0WIcDbawYVdYvGflME/9QP0h0pYlCDBCTjYa9nZzMDpyxQ==", "dev": true, "dependencies": { "debug": "2.6.9", - "encodeurl": "~1.0.2", + "encodeurl": "~2.0.0", "escape-html": "~1.0.3", "on-finished": "2.4.1", "parseurl": "~1.3.3", @@ -9638,9 +9650,9 @@ "peer": true }, "node_modules/https-proxy-agent": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.4.tgz", - "integrity": "sha512-wlwpilI7YdjSkWaQ/7omYBMTliDcmCN8OLihO6I9B86g06lMyAoqgoDpV0XqoaPOKj+0DIdAvnsWfyAAhmimcg==", + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.5.tgz", + "integrity": "sha512-1e4Wqeblerz+tMKPIq2EMGiiWW1dIjZOksyHWSUm1rmuvw/how9hBHZ38lAGj5ID4Ik6EdkOw7NmWPy6LAwalw==", "dev": true, "license": "MIT", "peer": true, @@ -10713,9 +10725,9 @@ } }, "node_modules/jsonwebtoken/node_modules/semver": { - "version": "7.6.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", - "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", "dev": true, "license": "ISC", "peer": true, @@ -11036,10 +11048,13 @@ } }, "node_modules/merge-descriptors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", - "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==", - "dev": true + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.3.tgz", + "integrity": "sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } }, "node_modules/merge-stream": { "version": "2.0.0", @@ -11318,9 +11333,9 @@ } }, "node_modules/node-abi/node_modules/semver": { - "version": "7.6.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", - "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", "dev": true, "license": "ISC", "optional": true, @@ -11711,26 +11726,36 @@ } }, "node_modules/office-addin-debugging": { - "version": "5.1.3", - "resolved": "https://registry.npmjs.org/office-addin-debugging/-/office-addin-debugging-5.1.3.tgz", - "integrity": "sha512-Y/uW4Gt93MIkHcSk8Kb+k/MuNQTWwtl9WmfdKFqC3UI4V8UO01jGkCk1uRuNhO186pLWD1SBZLG+jbmI7EC+qw==", + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/office-addin-debugging/-/office-addin-debugging-5.1.4.tgz", + "integrity": "sha512-nFxUmDxWRUxMZq+nCXcUXEjLU1ZLtM1hKEBrxwsUfyH62wbQBDLH1k0GeU38Rb29wIbrIY7kG3L6SAzf2xYU2A==", "dev": true, "license": "MIT", "dependencies": { - "adm-zip": "^0.5.9", + "adm-zip": "0.5.12", "commander": "^6.2.0", "node-fetch": "^2.6.1", "office-addin-cli": "^1.6.3", "office-addin-dev-certs": "^1.13.3", - "office-addin-dev-settings": "^2.3.3", - "office-addin-manifest": "^1.13.3", - "office-addin-node-debugger": "^0.9.3", + "office-addin-dev-settings": "^2.3.4", + "office-addin-manifest": "^1.13.4", + "office-addin-node-debugger": "^0.9.4", "office-addin-usage-data": "^1.6.12" }, "bin": { "office-addin-debugging": "cli.js" } }, + "node_modules/office-addin-debugging/node_modules/adm-zip": { + "version": "0.5.12", + "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.5.12.tgz", + "integrity": "sha512-6TVU49mK6KZb4qG6xWaaM4C7sA/sgUMLy/JYMOzkcp3BvVLpW0fXDFQiIzAuxFCt/2+xD7fNIiPFAoLZPhVNLQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.0" + } + }, "node_modules/office-addin-debugging/node_modules/commander": { "version": "6.2.1", "resolved": "https://registry.npmjs.org/commander/-/commander-6.2.1.tgz", @@ -11783,18 +11808,18 @@ } }, "node_modules/office-addin-dev-settings": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/office-addin-dev-settings/-/office-addin-dev-settings-2.3.3.tgz", - "integrity": "sha512-Zw+GnG0NnT471tkSPPuatNqXH4VZsCqCmItx+nGEj6fCwFowPbmP6eBcypIGS47x/T3+V9KNIKsoUKKps4Kefw==", + "version": "2.3.4", + "resolved": "https://registry.npmjs.org/office-addin-dev-settings/-/office-addin-dev-settings-2.3.4.tgz", + "integrity": "sha512-MpO1wj5mrNJeNisvhziFo1lg/4ARH/kILBEygL+WmS1F36nAi9EfY+kH0GkVSHd0WF8d/eaOBFRxOxrkdtidLQ==", "dev": true, "license": "MIT", "dependencies": { - "adm-zip": "0.5.10", + "adm-zip": "0.5.12", "commander": "^6.2.0", "fs-extra": "^11.2.0", "inquirer": "^7.3.3", "junk": "^3.1.0", - "office-addin-manifest": "^1.13.3", + "office-addin-manifest": "^1.13.4", "office-addin-usage-data": "^1.6.12", "open": "^6.4.0", "string_decoder": "1.3.0", @@ -11809,9 +11834,9 @@ } }, "node_modules/office-addin-dev-settings/node_modules/adm-zip": { - "version": "0.5.10", - "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.5.10.tgz", - "integrity": "sha512-x0HvcHqVJNTPk/Bw8JbLWlWoo6Wwnsug0fnYYro1HBrjxZ3G7/AZk7Ahv8JwDe1uIcz8eBqvu86FuF1POiG7vQ==", + "version": "0.5.12", + "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.5.12.tgz", + "integrity": "sha512-6TVU49mK6KZb4qG6xWaaM4C7sA/sgUMLy/JYMOzkcp3BvVLpW0fXDFQiIzAuxFCt/2+xD7fNIiPFAoLZPhVNLQ==", "dev": true, "license": "MIT", "engines": { @@ -11935,14 +11960,14 @@ } }, "node_modules/office-addin-manifest": { - "version": "1.13.3", - "resolved": "https://registry.npmjs.org/office-addin-manifest/-/office-addin-manifest-1.13.3.tgz", - "integrity": "sha512-pcIJTkLCKddGWyTQYkxWRcumZo9NzPdkQN43c17oylpvH2W0HgsZyBIazkwAjqAETy0VX40NbSQ8ejf4c9jvcA==", + "version": "1.13.4", + "resolved": "https://registry.npmjs.org/office-addin-manifest/-/office-addin-manifest-1.13.4.tgz", + "integrity": "sha512-bzjc+ypvJT+UBUSsfugftOZh/CZECR5GwJ7PMYcFuB/zGPuh41jeAxbuXhlAy8AeJpQgEsTK3B7N1aDr+JPqjg==", "dev": true, "license": "MIT", "dependencies": { "@microsoft/teams-manifest": "^0.1.3", - "adm-zip": "^0.5.9", + "adm-zip": "0.5.12", "chalk": "^2.4.2", "commander": "^6.2.0", "fs-extra": "^7.0.1", @@ -11983,6 +12008,16 @@ "node": "^12.20.0 || >=14" } }, + "node_modules/office-addin-manifest/node_modules/adm-zip": { + "version": "0.5.12", + "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.5.12.tgz", + "integrity": "sha512-6TVU49mK6KZb4qG6xWaaM4C7sA/sgUMLy/JYMOzkcp3BvVLpW0fXDFQiIzAuxFCt/2+xD7fNIiPFAoLZPhVNLQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.0" + } + }, "node_modules/office-addin-manifest/node_modules/commander": { "version": "6.2.1", "resolved": "https://registry.npmjs.org/commander/-/commander-6.2.1.tgz", @@ -12029,9 +12064,9 @@ } }, "node_modules/office-addin-node-debugger": { - "version": "0.9.3", - "resolved": "https://registry.npmjs.org/office-addin-node-debugger/-/office-addin-node-debugger-0.9.3.tgz", - "integrity": "sha512-S0e1lh7ykrcfaccF6jYvK40WJHh0JkZCdUENsYiThqKRB1843Rk0OLYZGHqEqSZYMondO21zUEVYLrwjaaMmwg==", + "version": "0.9.4", + "resolved": "https://registry.npmjs.org/office-addin-node-debugger/-/office-addin-node-debugger-0.9.4.tgz", + "integrity": "sha512-OXqlwOSyBas8GO+GD+8+sIqRr7Oh8eTe/8MaA3de+AUKl1IdwxpmkcTdTeFJQeSmuGmD2aaoytGDFLN5E1FT0A==", "dev": true, "license": "MIT", "dependencies": { @@ -12062,18 +12097,18 @@ "license": "MIT" }, "node_modules/office-addin-project": { - "version": "0.8.3", - "resolved": "https://registry.npmjs.org/office-addin-project/-/office-addin-project-0.8.3.tgz", - "integrity": "sha512-PgGk/LXnfxcKAYfERTPpI7CjXQbMinchIDnDGzS7kigSure5VQsuKi2c8l/F8/8KO+UzKJQa8obqFhwwiAd66A==", + "version": "0.8.4", + "resolved": "https://registry.npmjs.org/office-addin-project/-/office-addin-project-0.8.4.tgz", + "integrity": "sha512-RJ5Z9jb9T/SPQt6w5s/cPeO8XWwcGmM7YoWyHxi+OlqcbgPw3amHbCxAVM96R4mkfN57sL8IBAaC0KxIK9l67g==", "dev": true, "license": "MIT", "peer": true, "dependencies": { - "adm-zip": "^0.5.9", + "adm-zip": "0.5.12", "commander": "^6.2.1", "fs-extra": "^7.0.1", "inquirer": "^7.3.3", - "office-addin-manifest": "^1.13.3", + "office-addin-manifest": "^1.13.4", "office-addin-manifest-converter": "^0.3.1", "office-addin-usage-data": "^1.6.12", "path": "^0.12.7" @@ -12082,6 +12117,17 @@ "office-addin-project": "cli.js" } }, + "node_modules/office-addin-project/node_modules/adm-zip": { + "version": "0.5.12", + "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.5.12.tgz", + "integrity": "sha512-6TVU49mK6KZb4qG6xWaaM4C7sA/sgUMLy/JYMOzkcp3BvVLpW0fXDFQiIzAuxFCt/2+xD7fNIiPFAoLZPhVNLQ==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=6.0" + } + }, "node_modules/office-addin-project/node_modules/commander": { "version": "6.2.1", "resolved": "https://registry.npmjs.org/commander/-/commander-6.2.1.tgz", @@ -12451,9 +12497,9 @@ } }, "node_modules/path-to-regexp": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", - "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==", + "version": "0.1.10", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.10.tgz", + "integrity": "sha512-7lf7qcQidTku0Gu3YDPc8DJ1q7OOucfa/BSsIwjuh56VU7katFvuM8hULfkwB3Fns/rsVF7PwPKVw1sl5KQS9w==", "dev": true }, "node_modules/path-type": { @@ -12679,12 +12725,12 @@ } }, "node_modules/qs": { - "version": "6.11.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", - "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.13.0.tgz", + "integrity": "sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==", "dev": true, "dependencies": { - "side-channel": "^1.0.4" + "side-channel": "^1.0.6" }, "engines": { "node": ">=0.6" @@ -13373,9 +13419,9 @@ } }, "node_modules/send": { - "version": "0.18.0", - "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", - "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", + "version": "0.19.0", + "resolved": "https://registry.npmjs.org/send/-/send-0.19.0.tgz", + "integrity": "sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw==", "dev": true, "dependencies": { "debug": "2.6.9", @@ -13411,6 +13457,15 @@ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", "dev": true }, + "node_modules/send/node_modules/encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, "node_modules/send/node_modules/mime": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", @@ -13517,15 +13572,15 @@ } }, "node_modules/serve-static": { - "version": "1.15.0", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz", - "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==", + "version": "1.16.2", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.16.2.tgz", + "integrity": "sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw==", "dev": true, "dependencies": { - "encodeurl": "~1.0.2", + "encodeurl": "~2.0.0", "escape-html": "~1.0.3", "parseurl": "~1.3.3", - "send": "0.18.0" + "send": "0.19.0" }, "engines": { "node": ">= 0.8.0" @@ -14565,9 +14620,9 @@ } }, "node_modules/type-detect": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", - "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.1.0.tgz", + "integrity": "sha512-Acylog8/luQ8L7il+geoSxhEkazvkslg7PSNKOX59mbB9cOveP5aq9h74Y7YU8yDpJwetzQQrfIwtf4Wp4LKcw==", "dev": true, "license": "MIT", "peer": true, @@ -14728,9 +14783,9 @@ } }, "node_modules/uglify-js": { - "version": "3.18.0", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.18.0.tgz", - "integrity": "sha512-SyVVbcNBCk0dzr9XL/R/ySrmYf0s372K6/hFklzgcp2lBFyXtw4I7BOdDjlLhE1aVqaI/SHWXWmYdlZxuyF38A==", + "version": "3.19.2", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.19.2.tgz", + "integrity": "sha512-S8KA6DDI47nQXJSi2ctQ629YzwOVs+bQML6DAtvy0wgNdpi+0ySpQK0g2pxBq2xfF2z3YCscu7NNA8nXT9PlIQ==", "dev": true, "license": "BSD-2-Clause", "optional": true, @@ -14759,9 +14814,9 @@ } }, "node_modules/underscore": { - "version": "1.13.6", - "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.13.6.tgz", - "integrity": "sha512-+A5Sja4HP1M08MaXya7p5LvjuM7K6q/2EaC0+iovj/wOcMsTzMvDFbasi/oSapiwOlt252IqsKqPjCl7huKS0A==", + "version": "1.13.7", + "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.13.7.tgz", + "integrity": "sha512-GMXzWtsc57XAtguZgaQViUOzs0KTkk8ojr3/xAxXLITqf/3EMwxC0inyETfDFjH/Krbhuep0HNbbjI9i/q3F3g==", "dev": true, "license": "MIT", "peer": true @@ -15693,9 +15748,9 @@ "dev": true }, "node_modules/yaml": { - "version": "2.4.5", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.4.5.tgz", - "integrity": "sha512-aBx2bnqDzVOyNKfsysjA2ms5ZlnjSAW2eG3/L5G/CSujfjLJTJsEw1bGw8kCf04KodQWk1pxlGnZ56CRxiawmg==", + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.5.0.tgz", + "integrity": "sha512-2wWLbGbYDiSqqIKoPjar3MPgB94ErzCtrNE1FdqGuaO0pi2JGjmE8aW8TDZwzU7vuxcGRdL/4gPQwQ7hD5AMSw==", "dev": true, "license": "ISC", "peer": true, @@ -15827,16 +15882,16 @@ }, "dependencies": { "ajv": { - "version": "8.16.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.16.0.tgz", - "integrity": "sha512-F0twR8U1ZU67JIEtekUcLkXkoO5mMMmgGD8sK/xUFzJ805jxHQl92hImFAqqXMyMYjSPOyUPAwHYhB72g5sTXw==", + "version": "8.17.1", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", + "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", "dev": true, "peer": true, "requires": { "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.4.1" + "require-from-string": "^2.0.2" } }, "ajv-draft-04": { @@ -16042,9 +16097,9 @@ } }, "@azure/core-rest-pipeline": { - "version": "1.16.0", - "resolved": "https://registry.npmjs.org/@azure/core-rest-pipeline/-/core-rest-pipeline-1.16.0.tgz", - "integrity": "sha512-CeuTvsXxCUmEuxH5g/aceuSl6w2EugvNHKAtKKVdiX915EjJJxAwfzNNWZreNnbxHZ2fi0zaM6wwS23x2JVqSQ==", + "version": "1.16.3", + "resolved": "https://registry.npmjs.org/@azure/core-rest-pipeline/-/core-rest-pipeline-1.16.3.tgz", + "integrity": "sha512-VxLk4AHLyqcHsfKe4MZ6IQ+D+ShuByy+RfStKfSjxJoL3WBWq17VNmrz8aT8etKzqc2nAeIyLxScjpzsS4fz8w==", "dev": true, "peer": true, "requires": { @@ -16081,9 +16136,9 @@ } }, "@azure/core-util": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@azure/core-util/-/core-util-1.9.0.tgz", - "integrity": "sha512-AfalUQ1ZppaKuxPPMsFEUdX6GZPB3d9paR9d/TTL7Ow2De8cJaC7ibi7kWVlFAVPCYo31OcnGymc0R89DX8Oaw==", + "version": "1.9.2", + "resolved": "https://registry.npmjs.org/@azure/core-util/-/core-util-1.9.2.tgz", + "integrity": "sha512-l1Qrqhi4x1aekkV+OlcqsJa4AnAkj5p0JV8omgwjaV9OAbP41lvrMvs+CptfetKkeEaGRGSzby7sjPZEX7+kkQ==", "dev": true, "peer": true, "requires": { @@ -16104,9 +16159,9 @@ } }, "@azure/core-xml": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/@azure/core-xml/-/core-xml-1.4.2.tgz", - "integrity": "sha512-CW3MZhApe/S4iikbYKE7s83fjDBPIr2kpidX+hlGRwh7N4o1nIpQ/PfJTeioqhfqdMvRtheEl+ft64fyTaLNaA==", + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/@azure/core-xml/-/core-xml-1.4.3.tgz", + "integrity": "sha512-D6G7FEmDiTctPKuWegX2WTrS1enKZwqYwdKTO6ZN6JMigcCehlT0/CYl+zWpI9vQ9frwwp7GQT3/owaEXgnOsA==", "dev": true, "peer": true, "requires": { @@ -16115,9 +16170,9 @@ } }, "@azure/identity": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/@azure/identity/-/identity-4.3.0.tgz", - "integrity": "sha512-LHZ58/RsIpIWa4hrrE2YuJ/vzG1Jv9f774RfTTAVDZDriubvJ0/S5u4pnw4akJDlS0TiJb6VMphmVUFsWmgodQ==", + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/@azure/identity/-/identity-4.4.1.tgz", + "integrity": "sha512-DwnG4cKFEM7S3T+9u05NstXU/HN0dk45kPOinUyNKsn5VWwpXd9sbPKEg6kgJzGbm1lMuhx9o31PVbCtM5sfBA==", "dev": true, "peer": true, "requires": { @@ -16128,7 +16183,7 @@ "@azure/core-tracing": "^1.0.0", "@azure/core-util": "^1.3.0", "@azure/logger": "^1.0.0", - "@azure/msal-browser": "^3.11.1", + "@azure/msal-browser": "^3.14.0", "@azure/msal-node": "^2.9.2", "events": "^3.0.0", "jws": "^4.0.0", @@ -16138,9 +16193,9 @@ } }, "@azure/logger": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@azure/logger/-/logger-1.1.2.tgz", - "integrity": "sha512-l170uE7bsKpIU6B/giRc9i4NI0Mj+tANMMMxf7Zi/5cKzEqPayP7+X1WPrG7e+91JgY8N+7K7nF2WOi7iVhXvg==", + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/@azure/logger/-/logger-1.1.4.tgz", + "integrity": "sha512-4IXXzcCdLdlXuCG+8UKEwLA1T1NHqUfanhXYHiQTn+6sfWCZXduqbtXDGceg3Ce5QxTGo7EqmbV6Bi+aqKuClQ==", "dev": true, "peer": true, "requires": { @@ -16148,38 +16203,38 @@ } }, "@azure/msal-browser": { - "version": "3.17.0", - "resolved": "https://registry.npmjs.org/@azure/msal-browser/-/msal-browser-3.17.0.tgz", - "integrity": "sha512-csccKXmW2z7EkZ0I3yAoW/offQt+JECdTIV/KrnRoZyM7wCSsQWODpwod8ZhYy7iOyamcHApR9uCh0oD1M+0/A==", + "version": "3.20.0", + "resolved": "https://registry.npmjs.org/@azure/msal-browser/-/msal-browser-3.20.0.tgz", + "integrity": "sha512-ErsxbfCGIwdqD8jipqdxpfAGiUEQS7MWUe39Rjhl0ZVPsb1JEe9bZCe2+0g23HDH6DGyCAtnTNN9scPtievrMQ==", "dev": true, "peer": true, "requires": { - "@azure/msal-common": "14.12.0" + "@azure/msal-common": "14.14.0" } }, "@azure/msal-common": { - "version": "14.12.0", - "resolved": "https://registry.npmjs.org/@azure/msal-common/-/msal-common-14.12.0.tgz", - "integrity": "sha512-IDDXmzfdwmDkv4SSmMEyAniJf6fDu3FJ7ncOjlxkDuT85uSnLEhZi3fGZpoR7T4XZpOMx9teM9GXBgrfJgyeBw==", + "version": "14.14.0", + "resolved": "https://registry.npmjs.org/@azure/msal-common/-/msal-common-14.14.0.tgz", + "integrity": "sha512-OxcOk9H1/1fktHh6//VCORgSNJc2dCQObTm6JNmL824Z6iZSO6eFo/Bttxe0hETn9B+cr7gDouTQtsRq3YPuSQ==", "dev": true, "peer": true }, "@azure/msal-node": { - "version": "2.9.2", - "resolved": "https://registry.npmjs.org/@azure/msal-node/-/msal-node-2.9.2.tgz", - "integrity": "sha512-8tvi6Cos3m+0KmRbPjgkySXi+UQU/QiuVRFnrxIwt5xZlEEFa69O04RTaNESGgImyBBlYbo2mfE8/U8Bbdk1WQ==", + "version": "2.12.0", + "resolved": "https://registry.npmjs.org/@azure/msal-node/-/msal-node-2.12.0.tgz", + "integrity": "sha512-jmk5Im5KujRA2AcyCb0awA3buV8niSrwXZs+NBJWIvxOz76RvNlusGIqi43A0h45BPUy93Qb+CPdpJn82NFTIg==", "dev": true, "peer": true, "requires": { - "@azure/msal-common": "14.12.0", + "@azure/msal-common": "14.14.0", "jsonwebtoken": "^9.0.0", "uuid": "^8.3.0" } }, "@azure/storage-blob": { - "version": "12.23.0", - "resolved": "https://registry.npmjs.org/@azure/storage-blob/-/storage-blob-12.23.0.tgz", - "integrity": "sha512-c1KJ5R5hqR/HtvmFtTn/Y1BNMq45NUBp0LZH7yF8WFMET+wmESgEr0FVTu/Z5NonmfUjbgJZG5Nh8xHc5RdWGQ==", + "version": "12.24.0", + "resolved": "https://registry.npmjs.org/@azure/storage-blob/-/storage-blob-12.24.0.tgz", + "integrity": "sha512-l8cmWM4C7RoNCBOImoFMxhTXe1Lr+8uQ/IgnhRNMpfoA9bAFWoLG4XrWm6O5rKXortreVQuD+fc1hbzWklOZbw==", "dev": true, "peer": true, "requires": { @@ -16190,7 +16245,7 @@ "@azure/core-lro": "^2.2.0", "@azure/core-paging": "^1.1.1", "@azure/core-rest-pipeline": "^1.10.1", - "@azure/core-tracing": "^1.0.0", + "@azure/core-tracing": "^1.1.2", "@azure/core-util": "^1.6.1", "@azure/core-xml": "^1.3.2", "@azure/logger": "^1.0.0", @@ -18489,11 +18544,14 @@ } }, "@inquirer/type": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/@inquirer/type/-/type-1.3.3.tgz", - "integrity": "sha512-xTUt0NulylX27/zMx04ZYar/kr1raaiFTVvQ5feljQsiAgdm0WPj4S73/ye0fbslh+15QrIuDvfCXTek7pMY5A==", + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/@inquirer/type/-/type-1.5.2.tgz", + "integrity": "sha512-w9qFkumYDCNyDZmNQjf/n6qQuvQ4dMC3BJesY4oF+yr0CxR5vxujflAVeIcS6U336uzi9GM0kAfZlLrZ9UTkpA==", "dev": true, - "peer": true + "peer": true, + "requires": { + "mute-stream": "^1.0.0" + } }, "@isaacs/cliui": { "version": "8.0.2", @@ -18809,9 +18867,9 @@ "peer": true }, "semver": { - "version": "7.6.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", - "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", "dev": true, "peer": true }, @@ -18904,16 +18962,16 @@ }, "dependencies": { "ajv": { - "version": "8.16.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.16.0.tgz", - "integrity": "sha512-F0twR8U1ZU67JIEtekUcLkXkoO5mMMmgGD8sK/xUFzJ805jxHQl92hImFAqqXMyMYjSPOyUPAwHYhB72g5sTXw==", + "version": "8.17.1", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", + "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", "dev": true, "peer": true, "requires": { "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.4.1" + "require-from-string": "^2.0.2" } }, "json-schema-traverse": { @@ -18924,9 +18982,9 @@ "peer": true }, "semver": { - "version": "7.6.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", - "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", "dev": true, "peer": true } @@ -19614,10 +19672,11 @@ "peer": true }, "adm-zip": { - "version": "0.5.14", - "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.5.14.tgz", - "integrity": "sha512-DnyqqifT4Jrcvb8USYjp6FHtBpEIz1mnXu6pTRHZ0RL69LbQYiO+0lDFg5+OKA7U29oWSs3a/i8fhn8ZcceIWg==", - "dev": true + "version": "0.5.15", + "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.5.15.tgz", + "integrity": "sha512-jYPWSeOA8EFoZnucrKCNihqBjoEGQSU4HKgHYQgKNEQ0pQF9a/DYuo/+fAxY76k4qe75LUlLWpAM1QWcBMTOKw==", + "dev": true, + "peer": true }, "agent-base": { "version": "7.1.1", @@ -19923,9 +19982,9 @@ } }, "axios": { - "version": "1.7.2", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.7.2.tgz", - "integrity": "sha512-2A8QhOMrbomlDuiLeK9XibIBzuHeRcqqNOHp0Cyp5EoJ1IFDh+XZH3A6BkXtv0K4gFGCI0Y4BM7B1wOEi0Rmgw==", + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.7.3.tgz", + "integrity": "sha512-Ar7ND9pU99eJ9GpoGQKhKf58GpUOgnzuaB7ueNQ5BMi0p+LZ5oaEnfF999fAArcTIBwXTCHAmGcHOZJaWPq9Nw==", "dev": true, "peer": true, "requires": { @@ -20030,9 +20089,9 @@ } }, "body-parser": { - "version": "1.20.2", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.2.tgz", - "integrity": "sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==", + "version": "1.20.3", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.3.tgz", + "integrity": "sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g==", "dev": true, "requires": { "bytes": "3.1.2", @@ -20043,7 +20102,7 @@ "http-errors": "2.0.0", "iconv-lite": "0.4.24", "on-finished": "2.4.1", - "qs": "6.11.0", + "qs": "6.13.0", "raw-body": "2.5.2", "type-is": "~1.6.18", "unpipe": "1.0.0" @@ -20204,9 +20263,9 @@ "dev": true }, "chai": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/chai/-/chai-4.4.1.tgz", - "integrity": "sha512-13sOfMv2+DWduEU+/xbun3LScLoqN17nBeTLUsmDfKdoiC1fr0n9PU4guu4AhRcOVFk/sW8LyZWHuhWtQZiF+g==", + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/chai/-/chai-4.5.0.tgz", + "integrity": "sha512-RITGBfijLkBddZvnn8jdqoTypxvqbOLYQkGGxXzeFjVHvudaPw0HNFD9x928/eUwYWd2dPCugVqspGALTZZQKw==", "dev": true, "peer": true, "requires": { @@ -20216,7 +20275,7 @@ "get-func-name": "^2.0.2", "loupe": "^2.3.6", "pathval": "^1.1.1", - "type-detect": "^4.0.8" + "type-detect": "^4.1.0" } }, "chalk": { @@ -20457,9 +20516,9 @@ "dev": true }, "comment-json": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/comment-json/-/comment-json-4.2.3.tgz", - "integrity": "sha512-SsxdiOf064DWoZLH799Ata6u7iV658A11PlWtZATDlXPpKGJnbJZ5Z24ybixAi+LUUqJ/GKowAejtC5GFUG7Tw==", + "version": "4.2.5", + "resolved": "https://registry.npmjs.org/comment-json/-/comment-json-4.2.5.tgz", + "integrity": "sha512-bKw/r35jR3HGt5PEPm1ljsQQGyCrR8sFGNiN5L+ykDHdpO8Smxkrkla9Yi6NkQyUrb8V54PGhfMs6NrIwtxtdw==", "dev": true, "peer": true, "requires": { @@ -21036,9 +21095,9 @@ "dev": true }, "encodeurl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz", + "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==", "dev": true }, "encoding": { @@ -21679,37 +21738,37 @@ "peer": true }, "express": { - "version": "4.19.2", - "resolved": "https://registry.npmjs.org/express/-/express-4.19.2.tgz", - "integrity": "sha512-5T6nhjsT+EOMzuck8JjBHARTHfMht0POzlA60WV2pMD3gyXw2LZnZ+ueGdNxG+0calOJcWKbpFcuzLZ91YWq9Q==", + "version": "4.21.0", + "resolved": "https://registry.npmjs.org/express/-/express-4.21.0.tgz", + "integrity": "sha512-VqcNGcj/Id5ZT1LZ/cfihi3ttTn+NJmkli2eZADigjq29qTlWi/hAQ43t/VLPq8+UX06FCEx3ByOYet6ZFblng==", "dev": true, "requires": { "accepts": "~1.3.8", "array-flatten": "1.1.1", - "body-parser": "1.20.2", + "body-parser": "1.20.3", "content-disposition": "0.5.4", "content-type": "~1.0.4", "cookie": "0.6.0", "cookie-signature": "1.0.6", "debug": "2.6.9", "depd": "2.0.0", - "encodeurl": "~1.0.2", + "encodeurl": "~2.0.0", "escape-html": "~1.0.3", "etag": "~1.8.1", - "finalhandler": "1.2.0", + "finalhandler": "1.3.1", "fresh": "0.5.2", "http-errors": "2.0.0", - "merge-descriptors": "1.0.1", + "merge-descriptors": "1.0.3", "methods": "~1.1.2", "on-finished": "2.4.1", "parseurl": "~1.3.3", - "path-to-regexp": "0.1.7", + "path-to-regexp": "0.1.10", "proxy-addr": "~2.0.7", - "qs": "6.11.0", + "qs": "6.13.0", "range-parser": "~1.2.1", "safe-buffer": "5.2.1", - "send": "0.18.0", - "serve-static": "1.15.0", + "send": "0.19.0", + "serve-static": "1.16.2", "setprototypeof": "1.2.0", "statuses": "2.0.1", "type-is": "~1.6.18", @@ -21811,10 +21870,17 @@ "dev": true, "peer": true }, + "fast-uri": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.0.1.tgz", + "integrity": "sha512-MWipKbbYiYI0UC7cl8m/i/IWTqfC8YXsqjzybjddLsFjStroQzsHXkc73JutMvBiXmOvapk+axIl79ig5t55Bw==", + "dev": true, + "peer": true + }, "fast-xml-parser": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-4.4.0.tgz", - "integrity": "sha512-kLY3jFlwIYwBNDojclKsNAC12sfD6NwW74QB2CoNGPvtVxjliYehVunB3HYyNi+n4Tt1dAcgwYvmKF/Z18flqg==", + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-4.4.1.tgz", + "integrity": "sha512-xkjOecfnKGkSsOwtZ5Pz7Us/T6mrbPQrq0nh+aCO5V9nk5NLWmasAHumTKjiPJPWANe+kAZ84Jc8ooJkzZ88Sw==", "dev": true, "peer": true, "requires": { @@ -21896,13 +21962,13 @@ } }, "finalhandler": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", - "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.3.1.tgz", + "integrity": "sha512-6BN9trH7bp3qvnrRyzsBz+g3lZxTNZTbVO2EV1CS0WIcDbawYVdYvGflME/9QP0h0pYlCDBCTjYa9nZzMDpyxQ==", "dev": true, "requires": { "debug": "2.6.9", - "encodeurl": "~1.0.2", + "encodeurl": "~2.0.0", "escape-html": "~1.0.3", "on-finished": "2.4.1", "parseurl": "~1.3.3", @@ -22561,9 +22627,9 @@ "peer": true }, "https-proxy-agent": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.4.tgz", - "integrity": "sha512-wlwpilI7YdjSkWaQ/7omYBMTliDcmCN8OLihO6I9B86g06lMyAoqgoDpV0XqoaPOKj+0DIdAvnsWfyAAhmimcg==", + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.5.tgz", + "integrity": "sha512-1e4Wqeblerz+tMKPIq2EMGiiWW1dIjZOksyHWSUm1rmuvw/how9hBHZ38lAGj5ID4Ik6EdkOw7NmWPy6LAwalw==", "dev": true, "peer": true, "requires": { @@ -23258,9 +23324,9 @@ } }, "semver": { - "version": "7.6.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", - "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", "dev": true, "peer": true } @@ -23522,9 +23588,9 @@ } }, "merge-descriptors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", - "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.3.tgz", + "integrity": "sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==", "dev": true }, "merge-stream": { @@ -23730,9 +23796,9 @@ }, "dependencies": { "semver": { - "version": "7.6.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", - "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", "dev": true, "optional": true, "peer": true @@ -24013,22 +24079,28 @@ } }, "office-addin-debugging": { - "version": "5.1.3", - "resolved": "https://registry.npmjs.org/office-addin-debugging/-/office-addin-debugging-5.1.3.tgz", - "integrity": "sha512-Y/uW4Gt93MIkHcSk8Kb+k/MuNQTWwtl9WmfdKFqC3UI4V8UO01jGkCk1uRuNhO186pLWD1SBZLG+jbmI7EC+qw==", + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/office-addin-debugging/-/office-addin-debugging-5.1.4.tgz", + "integrity": "sha512-nFxUmDxWRUxMZq+nCXcUXEjLU1ZLtM1hKEBrxwsUfyH62wbQBDLH1k0GeU38Rb29wIbrIY7kG3L6SAzf2xYU2A==", "dev": true, "requires": { - "adm-zip": "^0.5.9", + "adm-zip": "0.5.12", "commander": "^6.2.0", "node-fetch": "^2.6.1", "office-addin-cli": "^1.6.3", "office-addin-dev-certs": "^1.13.3", - "office-addin-dev-settings": "^2.3.3", - "office-addin-manifest": "^1.13.3", - "office-addin-node-debugger": "^0.9.3", + "office-addin-dev-settings": "^2.3.4", + "office-addin-manifest": "^1.13.4", + "office-addin-node-debugger": "^0.9.4", "office-addin-usage-data": "^1.6.12" }, "dependencies": { + "adm-zip": { + "version": "0.5.12", + "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.5.12.tgz", + "integrity": "sha512-6TVU49mK6KZb4qG6xWaaM4C7sA/sgUMLy/JYMOzkcp3BvVLpW0fXDFQiIzAuxFCt/2+xD7fNIiPFAoLZPhVNLQ==", + "dev": true + }, "commander": { "version": "6.2.1", "resolved": "https://registry.npmjs.org/commander/-/commander-6.2.1.tgz", @@ -24070,17 +24142,17 @@ } }, "office-addin-dev-settings": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/office-addin-dev-settings/-/office-addin-dev-settings-2.3.3.tgz", - "integrity": "sha512-Zw+GnG0NnT471tkSPPuatNqXH4VZsCqCmItx+nGEj6fCwFowPbmP6eBcypIGS47x/T3+V9KNIKsoUKKps4Kefw==", + "version": "2.3.4", + "resolved": "https://registry.npmjs.org/office-addin-dev-settings/-/office-addin-dev-settings-2.3.4.tgz", + "integrity": "sha512-MpO1wj5mrNJeNisvhziFo1lg/4ARH/kILBEygL+WmS1F36nAi9EfY+kH0GkVSHd0WF8d/eaOBFRxOxrkdtidLQ==", "dev": true, "requires": { - "adm-zip": "0.5.10", + "adm-zip": "0.5.12", "commander": "^6.2.0", "fs-extra": "^11.2.0", "inquirer": "^7.3.3", "junk": "^3.1.0", - "office-addin-manifest": "^1.13.3", + "office-addin-manifest": "^1.13.4", "office-addin-usage-data": "^1.6.12", "open": "^6.4.0", "string_decoder": "1.3.0", @@ -24089,9 +24161,9 @@ }, "dependencies": { "adm-zip": { - "version": "0.5.10", - "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.5.10.tgz", - "integrity": "sha512-x0HvcHqVJNTPk/Bw8JbLWlWoo6Wwnsug0fnYYro1HBrjxZ3G7/AZk7Ahv8JwDe1uIcz8eBqvu86FuF1POiG7vQ==", + "version": "0.5.12", + "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.5.12.tgz", + "integrity": "sha512-6TVU49mK6KZb4qG6xWaaM4C7sA/sgUMLy/JYMOzkcp3BvVLpW0fXDFQiIzAuxFCt/2+xD7fNIiPFAoLZPhVNLQ==", "dev": true }, "commander": { @@ -24180,13 +24252,13 @@ } }, "office-addin-manifest": { - "version": "1.13.3", - "resolved": "https://registry.npmjs.org/office-addin-manifest/-/office-addin-manifest-1.13.3.tgz", - "integrity": "sha512-pcIJTkLCKddGWyTQYkxWRcumZo9NzPdkQN43c17oylpvH2W0HgsZyBIazkwAjqAETy0VX40NbSQ8ejf4c9jvcA==", + "version": "1.13.4", + "resolved": "https://registry.npmjs.org/office-addin-manifest/-/office-addin-manifest-1.13.4.tgz", + "integrity": "sha512-bzjc+ypvJT+UBUSsfugftOZh/CZECR5GwJ7PMYcFuB/zGPuh41jeAxbuXhlAy8AeJpQgEsTK3B7N1aDr+JPqjg==", "dev": true, "requires": { "@microsoft/teams-manifest": "^0.1.3", - "adm-zip": "^0.5.9", + "adm-zip": "0.5.12", "chalk": "^2.4.2", "commander": "^6.2.0", "fs-extra": "^7.0.1", @@ -24197,6 +24269,12 @@ "xml2js": "^0.5.0" }, "dependencies": { + "adm-zip": { + "version": "0.5.12", + "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.5.12.tgz", + "integrity": "sha512-6TVU49mK6KZb4qG6xWaaM4C7sA/sgUMLy/JYMOzkcp3BvVLpW0fXDFQiIzAuxFCt/2+xD7fNIiPFAoLZPhVNLQ==", + "dev": true + }, "commander": { "version": "6.2.1", "resolved": "https://registry.npmjs.org/commander/-/commander-6.2.1.tgz", @@ -24253,9 +24331,9 @@ } }, "office-addin-node-debugger": { - "version": "0.9.3", - "resolved": "https://registry.npmjs.org/office-addin-node-debugger/-/office-addin-node-debugger-0.9.3.tgz", - "integrity": "sha512-S0e1lh7ykrcfaccF6jYvK40WJHh0JkZCdUENsYiThqKRB1843Rk0OLYZGHqEqSZYMondO21zUEVYLrwjaaMmwg==", + "version": "0.9.4", + "resolved": "https://registry.npmjs.org/office-addin-node-debugger/-/office-addin-node-debugger-0.9.4.tgz", + "integrity": "sha512-OXqlwOSyBas8GO+GD+8+sIqRr7Oh8eTe/8MaA3de+AUKl1IdwxpmkcTdTeFJQeSmuGmD2aaoytGDFLN5E1FT0A==", "dev": true, "requires": { "commander": "^6.2.0", @@ -24279,22 +24357,29 @@ "dev": true }, "office-addin-project": { - "version": "0.8.3", - "resolved": "https://registry.npmjs.org/office-addin-project/-/office-addin-project-0.8.3.tgz", - "integrity": "sha512-PgGk/LXnfxcKAYfERTPpI7CjXQbMinchIDnDGzS7kigSure5VQsuKi2c8l/F8/8KO+UzKJQa8obqFhwwiAd66A==", + "version": "0.8.4", + "resolved": "https://registry.npmjs.org/office-addin-project/-/office-addin-project-0.8.4.tgz", + "integrity": "sha512-RJ5Z9jb9T/SPQt6w5s/cPeO8XWwcGmM7YoWyHxi+OlqcbgPw3amHbCxAVM96R4mkfN57sL8IBAaC0KxIK9l67g==", "dev": true, "peer": true, "requires": { - "adm-zip": "^0.5.9", + "adm-zip": "0.5.12", "commander": "^6.2.1", "fs-extra": "^7.0.1", "inquirer": "^7.3.3", - "office-addin-manifest": "^1.13.3", + "office-addin-manifest": "^1.13.4", "office-addin-manifest-converter": "^0.3.1", "office-addin-usage-data": "^1.6.12", "path": "^0.12.7" }, "dependencies": { + "adm-zip": { + "version": "0.5.12", + "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.5.12.tgz", + "integrity": "sha512-6TVU49mK6KZb4qG6xWaaM4C7sA/sgUMLy/JYMOzkcp3BvVLpW0fXDFQiIzAuxFCt/2+xD7fNIiPFAoLZPhVNLQ==", + "dev": true, + "peer": true + }, "commander": { "version": "6.2.1", "resolved": "https://registry.npmjs.org/commander/-/commander-6.2.1.tgz", @@ -24571,9 +24656,9 @@ } }, "path-to-regexp": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", - "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==", + "version": "0.1.10", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.10.tgz", + "integrity": "sha512-7lf7qcQidTku0Gu3YDPc8DJ1q7OOucfa/BSsIwjuh56VU7katFvuM8hULfkwB3Fns/rsVF7PwPKVw1sl5KQS9w==", "dev": true }, "path-type": { @@ -24740,12 +24825,12 @@ "dev": true }, "qs": { - "version": "6.11.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", - "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.13.0.tgz", + "integrity": "sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==", "dev": true, "requires": { - "side-channel": "^1.0.4" + "side-channel": "^1.0.6" } }, "queue-microtask": { @@ -25229,9 +25314,9 @@ "dev": true }, "send": { - "version": "0.18.0", - "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", - "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", + "version": "0.19.0", + "resolved": "https://registry.npmjs.org/send/-/send-0.19.0.tgz", + "integrity": "sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw==", "dev": true, "requires": { "debug": "2.6.9", @@ -25266,6 +25351,12 @@ } } }, + "encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", + "dev": true + }, "mime": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", @@ -25358,15 +25449,15 @@ } }, "serve-static": { - "version": "1.15.0", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz", - "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==", + "version": "1.16.2", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.16.2.tgz", + "integrity": "sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw==", "dev": true, "requires": { - "encodeurl": "~1.0.2", + "encodeurl": "~2.0.0", "escape-html": "~1.0.3", "parseurl": "~1.3.3", - "send": "0.18.0" + "send": "0.19.0" } }, "set-function-length": { @@ -26106,9 +26197,9 @@ } }, "type-detect": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", - "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.1.0.tgz", + "integrity": "sha512-Acylog8/luQ8L7il+geoSxhEkazvkslg7PSNKOX59mbB9cOveP5aq9h74Y7YU8yDpJwetzQQrfIwtf4Wp4LKcw==", "dev": true, "peer": true }, @@ -26205,9 +26296,9 @@ } }, "uglify-js": { - "version": "3.18.0", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.18.0.tgz", - "integrity": "sha512-SyVVbcNBCk0dzr9XL/R/ySrmYf0s372K6/hFklzgcp2lBFyXtw4I7BOdDjlLhE1aVqaI/SHWXWmYdlZxuyF38A==", + "version": "3.19.2", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.19.2.tgz", + "integrity": "sha512-S8KA6DDI47nQXJSi2ctQ629YzwOVs+bQML6DAtvy0wgNdpi+0ySpQK0g2pxBq2xfF2z3YCscu7NNA8nXT9PlIQ==", "dev": true, "optional": true, "peer": true @@ -26225,9 +26316,9 @@ } }, "underscore": { - "version": "1.13.6", - "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.13.6.tgz", - "integrity": "sha512-+A5Sja4HP1M08MaXya7p5LvjuM7K6q/2EaC0+iovj/wOcMsTzMvDFbasi/oSapiwOlt252IqsKqPjCl7huKS0A==", + "version": "1.13.7", + "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.13.7.tgz", + "integrity": "sha512-GMXzWtsc57XAtguZgaQViUOzs0KTkk8ojr3/xAxXLITqf/3EMwxC0inyETfDFjH/Krbhuep0HNbbjI9i/q3F3g==", "dev": true, "peer": true }, @@ -26849,9 +26940,9 @@ "dev": true }, "yaml": { - "version": "2.4.5", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.4.5.tgz", - "integrity": "sha512-aBx2bnqDzVOyNKfsysjA2ms5ZlnjSAW2eG3/L5G/CSujfjLJTJsEw1bGw8kCf04KodQWk1pxlGnZ56CRxiawmg==", + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.5.0.tgz", + "integrity": "sha512-2wWLbGbYDiSqqIKoPjar3MPgB94ErzCtrNE1FdqGuaO0pi2JGjmE8aW8TDZwzU7vuxcGRdL/4gPQwQ7hD5AMSw==", "dev": true, "peer": true }, diff --git a/Samples/tutorials/powerpoint-tutorial-yo/My Office Add-in/package-lock.json b/Samples/tutorials/powerpoint-tutorial-yo/My Office Add-in/package-lock.json index 1594a8c13..f86334f5e 100644 --- a/Samples/tutorials/powerpoint-tutorial-yo/My Office Add-in/package-lock.json +++ b/Samples/tutorials/powerpoint-tutorial-yo/My Office Add-in/package-lock.json @@ -133,17 +133,17 @@ } }, "node_modules/@apidevtools/swagger-parser/node_modules/ajv": { - "version": "8.16.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.16.0.tgz", - "integrity": "sha512-F0twR8U1ZU67JIEtekUcLkXkoO5mMMmgGD8sK/xUFzJ805jxHQl92hImFAqqXMyMYjSPOyUPAwHYhB72g5sTXw==", + "version": "8.17.1", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", + "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", "dev": true, "license": "MIT", "peer": true, "dependencies": { "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.4.1" + "require-from-string": "^2.0.2" }, "funding": { "type": "github", @@ -408,9 +408,9 @@ } }, "node_modules/@azure/core-rest-pipeline": { - "version": "1.16.0", - "resolved": "https://registry.npmjs.org/@azure/core-rest-pipeline/-/core-rest-pipeline-1.16.0.tgz", - "integrity": "sha512-CeuTvsXxCUmEuxH5g/aceuSl6w2EugvNHKAtKKVdiX915EjJJxAwfzNNWZreNnbxHZ2fi0zaM6wwS23x2JVqSQ==", + "version": "1.16.3", + "resolved": "https://registry.npmjs.org/@azure/core-rest-pipeline/-/core-rest-pipeline-1.16.3.tgz", + "integrity": "sha512-VxLk4AHLyqcHsfKe4MZ6IQ+D+ShuByy+RfStKfSjxJoL3WBWq17VNmrz8aT8etKzqc2nAeIyLxScjpzsS4fz8w==", "dev": true, "license": "MIT", "peer": true, @@ -457,9 +457,9 @@ } }, "node_modules/@azure/core-util": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@azure/core-util/-/core-util-1.9.0.tgz", - "integrity": "sha512-AfalUQ1ZppaKuxPPMsFEUdX6GZPB3d9paR9d/TTL7Ow2De8cJaC7ibi7kWVlFAVPCYo31OcnGymc0R89DX8Oaw==", + "version": "1.9.2", + "resolved": "https://registry.npmjs.org/@azure/core-util/-/core-util-1.9.2.tgz", + "integrity": "sha512-l1Qrqhi4x1aekkV+OlcqsJa4AnAkj5p0JV8omgwjaV9OAbP41lvrMvs+CptfetKkeEaGRGSzby7sjPZEX7+kkQ==", "dev": true, "license": "MIT", "peer": true, @@ -486,9 +486,9 @@ } }, "node_modules/@azure/core-xml": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/@azure/core-xml/-/core-xml-1.4.2.tgz", - "integrity": "sha512-CW3MZhApe/S4iikbYKE7s83fjDBPIr2kpidX+hlGRwh7N4o1nIpQ/PfJTeioqhfqdMvRtheEl+ft64fyTaLNaA==", + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/@azure/core-xml/-/core-xml-1.4.3.tgz", + "integrity": "sha512-D6G7FEmDiTctPKuWegX2WTrS1enKZwqYwdKTO6ZN6JMigcCehlT0/CYl+zWpI9vQ9frwwp7GQT3/owaEXgnOsA==", "dev": true, "license": "MIT", "peer": true, @@ -501,9 +501,9 @@ } }, "node_modules/@azure/identity": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/@azure/identity/-/identity-4.3.0.tgz", - "integrity": "sha512-LHZ58/RsIpIWa4hrrE2YuJ/vzG1Jv9f774RfTTAVDZDriubvJ0/S5u4pnw4akJDlS0TiJb6VMphmVUFsWmgodQ==", + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/@azure/identity/-/identity-4.4.1.tgz", + "integrity": "sha512-DwnG4cKFEM7S3T+9u05NstXU/HN0dk45kPOinUyNKsn5VWwpXd9sbPKEg6kgJzGbm1lMuhx9o31PVbCtM5sfBA==", "dev": true, "license": "MIT", "peer": true, @@ -515,7 +515,7 @@ "@azure/core-tracing": "^1.0.0", "@azure/core-util": "^1.3.0", "@azure/logger": "^1.0.0", - "@azure/msal-browser": "^3.11.1", + "@azure/msal-browser": "^3.14.0", "@azure/msal-node": "^2.9.2", "events": "^3.0.0", "jws": "^4.0.0", @@ -528,9 +528,9 @@ } }, "node_modules/@azure/logger": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@azure/logger/-/logger-1.1.2.tgz", - "integrity": "sha512-l170uE7bsKpIU6B/giRc9i4NI0Mj+tANMMMxf7Zi/5cKzEqPayP7+X1WPrG7e+91JgY8N+7K7nF2WOi7iVhXvg==", + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/@azure/logger/-/logger-1.1.4.tgz", + "integrity": "sha512-4IXXzcCdLdlXuCG+8UKEwLA1T1NHqUfanhXYHiQTn+6sfWCZXduqbtXDGceg3Ce5QxTGo7EqmbV6Bi+aqKuClQ==", "dev": true, "license": "MIT", "peer": true, @@ -542,23 +542,23 @@ } }, "node_modules/@azure/msal-browser": { - "version": "3.17.0", - "resolved": "https://registry.npmjs.org/@azure/msal-browser/-/msal-browser-3.17.0.tgz", - "integrity": "sha512-csccKXmW2z7EkZ0I3yAoW/offQt+JECdTIV/KrnRoZyM7wCSsQWODpwod8ZhYy7iOyamcHApR9uCh0oD1M+0/A==", + "version": "3.20.0", + "resolved": "https://registry.npmjs.org/@azure/msal-browser/-/msal-browser-3.20.0.tgz", + "integrity": "sha512-ErsxbfCGIwdqD8jipqdxpfAGiUEQS7MWUe39Rjhl0ZVPsb1JEe9bZCe2+0g23HDH6DGyCAtnTNN9scPtievrMQ==", "dev": true, "license": "MIT", "peer": true, "dependencies": { - "@azure/msal-common": "14.12.0" + "@azure/msal-common": "14.14.0" }, "engines": { "node": ">=0.8.0" } }, "node_modules/@azure/msal-common": { - "version": "14.12.0", - "resolved": "https://registry.npmjs.org/@azure/msal-common/-/msal-common-14.12.0.tgz", - "integrity": "sha512-IDDXmzfdwmDkv4SSmMEyAniJf6fDu3FJ7ncOjlxkDuT85uSnLEhZi3fGZpoR7T4XZpOMx9teM9GXBgrfJgyeBw==", + "version": "14.14.0", + "resolved": "https://registry.npmjs.org/@azure/msal-common/-/msal-common-14.14.0.tgz", + "integrity": "sha512-OxcOk9H1/1fktHh6//VCORgSNJc2dCQObTm6JNmL824Z6iZSO6eFo/Bttxe0hETn9B+cr7gDouTQtsRq3YPuSQ==", "dev": true, "license": "MIT", "peer": true, @@ -567,14 +567,14 @@ } }, "node_modules/@azure/msal-node": { - "version": "2.9.2", - "resolved": "https://registry.npmjs.org/@azure/msal-node/-/msal-node-2.9.2.tgz", - "integrity": "sha512-8tvi6Cos3m+0KmRbPjgkySXi+UQU/QiuVRFnrxIwt5xZlEEFa69O04RTaNESGgImyBBlYbo2mfE8/U8Bbdk1WQ==", + "version": "2.12.0", + "resolved": "https://registry.npmjs.org/@azure/msal-node/-/msal-node-2.12.0.tgz", + "integrity": "sha512-jmk5Im5KujRA2AcyCb0awA3buV8niSrwXZs+NBJWIvxOz76RvNlusGIqi43A0h45BPUy93Qb+CPdpJn82NFTIg==", "dev": true, "license": "MIT", "peer": true, "dependencies": { - "@azure/msal-common": "14.12.0", + "@azure/msal-common": "14.14.0", "jsonwebtoken": "^9.0.0", "uuid": "^8.3.0" }, @@ -583,9 +583,9 @@ } }, "node_modules/@azure/storage-blob": { - "version": "12.23.0", - "resolved": "https://registry.npmjs.org/@azure/storage-blob/-/storage-blob-12.23.0.tgz", - "integrity": "sha512-c1KJ5R5hqR/HtvmFtTn/Y1BNMq45NUBp0LZH7yF8WFMET+wmESgEr0FVTu/Z5NonmfUjbgJZG5Nh8xHc5RdWGQ==", + "version": "12.24.0", + "resolved": "https://registry.npmjs.org/@azure/storage-blob/-/storage-blob-12.24.0.tgz", + "integrity": "sha512-l8cmWM4C7RoNCBOImoFMxhTXe1Lr+8uQ/IgnhRNMpfoA9bAFWoLG4XrWm6O5rKXortreVQuD+fc1hbzWklOZbw==", "dev": true, "license": "MIT", "peer": true, @@ -597,7 +597,7 @@ "@azure/core-lro": "^2.2.0", "@azure/core-paging": "^1.1.1", "@azure/core-rest-pipeline": "^1.10.1", - "@azure/core-tracing": "^1.0.0", + "@azure/core-tracing": "^1.1.2", "@azure/core-util": "^1.6.1", "@azure/core-xml": "^1.3.2", "@azure/logger": "^1.0.0", @@ -3999,12 +3999,15 @@ } }, "node_modules/@inquirer/type": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/@inquirer/type/-/type-1.3.3.tgz", - "integrity": "sha512-xTUt0NulylX27/zMx04ZYar/kr1raaiFTVvQ5feljQsiAgdm0WPj4S73/ye0fbslh+15QrIuDvfCXTek7pMY5A==", + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/@inquirer/type/-/type-1.5.2.tgz", + "integrity": "sha512-w9qFkumYDCNyDZmNQjf/n6qQuvQ4dMC3BJesY4oF+yr0CxR5vxujflAVeIcS6U336uzi9GM0kAfZlLrZ9UTkpA==", "dev": true, "license": "MIT", "peer": true, + "dependencies": { + "mute-stream": "^1.0.0" + }, "engines": { "node": ">=18" } @@ -4427,9 +4430,9 @@ } }, "node_modules/@microsoft/teamsapp-cli/node_modules/semver": { - "version": "7.6.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", - "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", "dev": true, "license": "ISC", "peer": true, @@ -4533,17 +4536,17 @@ } }, "node_modules/@microsoft/teamsfx-core/node_modules/ajv": { - "version": "8.16.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.16.0.tgz", - "integrity": "sha512-F0twR8U1ZU67JIEtekUcLkXkoO5mMMmgGD8sK/xUFzJ805jxHQl92hImFAqqXMyMYjSPOyUPAwHYhB72g5sTXw==", + "version": "8.17.1", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", + "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", "dev": true, "license": "MIT", "peer": true, "dependencies": { "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.4.1" + "require-from-string": "^2.0.2" }, "funding": { "type": "github", @@ -4559,9 +4562,9 @@ "peer": true }, "node_modules/@microsoft/teamsfx-core/node_modules/semver": { - "version": "7.6.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", - "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", "dev": true, "license": "ISC", "peer": true, @@ -5460,11 +5463,12 @@ } }, "node_modules/adm-zip": { - "version": "0.5.14", - "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.5.14.tgz", - "integrity": "sha512-DnyqqifT4Jrcvb8USYjp6FHtBpEIz1mnXu6pTRHZ0RL69LbQYiO+0lDFg5+OKA7U29oWSs3a/i8fhn8ZcceIWg==", + "version": "0.5.15", + "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.5.15.tgz", + "integrity": "sha512-jYPWSeOA8EFoZnucrKCNihqBjoEGQSU4HKgHYQgKNEQ0pQF9a/DYuo/+fAxY76k4qe75LUlLWpAM1QWcBMTOKw==", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">=12.0" } @@ -5897,9 +5901,9 @@ } }, "node_modules/axios": { - "version": "1.7.2", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.7.2.tgz", - "integrity": "sha512-2A8QhOMrbomlDuiLeK9XibIBzuHeRcqqNOHp0Cyp5EoJ1IFDh+XZH3A6BkXtv0K4gFGCI0Y4BM7B1wOEi0Rmgw==", + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.7.3.tgz", + "integrity": "sha512-Ar7ND9pU99eJ9GpoGQKhKf58GpUOgnzuaB7ueNQ5BMi0p+LZ5oaEnfF999fAArcTIBwXTCHAmGcHOZJaWPq9Nw==", "dev": true, "license": "MIT", "peer": true, @@ -6097,21 +6101,6 @@ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", "dev": true }, - "node_modules/body-parser/node_modules/qs": { - "version": "6.13.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.13.0.tgz", - "integrity": "sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==", - "dev": true, - "dependencies": { - "side-channel": "^1.0.6" - }, - "engines": { - "node": ">=0.6" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/bonjour-service": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/bonjour-service/-/bonjour-service-1.2.1.tgz", @@ -6317,9 +6306,9 @@ ] }, "node_modules/chai": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/chai/-/chai-4.4.1.tgz", - "integrity": "sha512-13sOfMv2+DWduEU+/xbun3LScLoqN17nBeTLUsmDfKdoiC1fr0n9PU4guu4AhRcOVFk/sW8LyZWHuhWtQZiF+g==", + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/chai/-/chai-4.5.0.tgz", + "integrity": "sha512-RITGBfijLkBddZvnn8jdqoTypxvqbOLYQkGGxXzeFjVHvudaPw0HNFD9x928/eUwYWd2dPCugVqspGALTZZQKw==", "dev": true, "license": "MIT", "peer": true, @@ -6330,7 +6319,7 @@ "get-func-name": "^2.0.2", "loupe": "^2.3.6", "pathval": "^1.1.1", - "type-detect": "^4.0.8" + "type-detect": "^4.1.0" }, "engines": { "node": ">=4" @@ -6663,9 +6652,9 @@ } }, "node_modules/comment-json": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/comment-json/-/comment-json-4.2.3.tgz", - "integrity": "sha512-SsxdiOf064DWoZLH799Ata6u7iV658A11PlWtZATDlXPpKGJnbJZ5Z24ybixAi+LUUqJ/GKowAejtC5GFUG7Tw==", + "version": "4.2.5", + "resolved": "https://registry.npmjs.org/comment-json/-/comment-json-4.2.5.tgz", + "integrity": "sha512-bKw/r35jR3HGt5PEPm1ljsQQGyCrR8sFGNiN5L+ykDHdpO8Smxkrkla9Yi6NkQyUrb8V54PGhfMs6NrIwtxtdw==", "dev": true, "license": "MIT", "peer": true, @@ -6801,9 +6790,9 @@ "dev": true }, "node_modules/cookie": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.6.0.tgz", - "integrity": "sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==", + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.1.tgz", + "integrity": "sha512-6DnInpx7SJ2AK3+CTUE/ZM0vWTUboZCegxhC2xiIydHR9jNuTAASBrfEpHhiGOZw/nX51bHt6YQl8jsGo4y/0w==", "dev": true, "engines": { "node": ">= 0.6" @@ -8400,9 +8389,9 @@ } }, "node_modules/express": { - "version": "4.20.0", - "resolved": "https://registry.npmjs.org/express/-/express-4.20.0.tgz", - "integrity": "sha512-pLdae7I6QqShF5PnNTCVn4hI91Dx0Grkn2+IAsMTgMIKuQVte2dN9PeGSSAME2FR8anOhVA62QDIUaWVfEXVLw==", + "version": "4.21.1", + "resolved": "https://registry.npmjs.org/express/-/express-4.21.1.tgz", + "integrity": "sha512-YSFlK1Ee0/GC8QaO91tHcDxJiE/X4FbpAyQWkxAvG6AXCuR65YzK8ua6D9hvi/TzUfZMpc+BwuM1IPw8fmQBiQ==", "dev": true, "dependencies": { "accepts": "~1.3.8", @@ -8410,14 +8399,14 @@ "body-parser": "1.20.3", "content-disposition": "0.5.4", "content-type": "~1.0.4", - "cookie": "0.6.0", + "cookie": "0.7.1", "cookie-signature": "1.0.6", "debug": "2.6.9", "depd": "2.0.0", "encodeurl": "~2.0.0", "escape-html": "~1.0.3", "etag": "~1.8.1", - "finalhandler": "1.2.0", + "finalhandler": "1.3.1", "fresh": "0.5.2", "http-errors": "2.0.0", "merge-descriptors": "1.0.3", @@ -8426,11 +8415,11 @@ "parseurl": "~1.3.3", "path-to-regexp": "0.1.10", "proxy-addr": "~2.0.7", - "qs": "6.11.0", + "qs": "6.13.0", "range-parser": "~1.2.1", "safe-buffer": "5.2.1", "send": "0.19.0", - "serve-static": "1.16.0", + "serve-static": "1.16.2", "setprototypeof": "1.2.0", "statuses": "2.0.1", "type-is": "~1.6.18", @@ -8555,10 +8544,18 @@ "license": "MIT", "peer": true }, + "node_modules/fast-uri": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.0.1.tgz", + "integrity": "sha512-MWipKbbYiYI0UC7cl8m/i/IWTqfC8YXsqjzybjddLsFjStroQzsHXkc73JutMvBiXmOvapk+axIl79ig5t55Bw==", + "dev": true, + "license": "MIT", + "peer": true + }, "node_modules/fast-xml-parser": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-4.4.0.tgz", - "integrity": "sha512-kLY3jFlwIYwBNDojclKsNAC12sfD6NwW74QB2CoNGPvtVxjliYehVunB3HYyNi+n4Tt1dAcgwYvmKF/Z18flqg==", + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-4.4.1.tgz", + "integrity": "sha512-xkjOecfnKGkSsOwtZ5Pz7Us/T6mrbPQrq0nh+aCO5V9nk5NLWmasAHumTKjiPJPWANe+kAZ84Jc8ooJkzZ88Sw==", "dev": true, "funding": [ { @@ -8690,13 +8687,13 @@ } }, "node_modules/finalhandler": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", - "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.3.1.tgz", + "integrity": "sha512-6BN9trH7bp3qvnrRyzsBz+g3lZxTNZTbVO2EV1CS0WIcDbawYVdYvGflME/9QP0h0pYlCDBCTjYa9nZzMDpyxQ==", "dev": true, "dependencies": { "debug": "2.6.9", - "encodeurl": "~1.0.2", + "encodeurl": "~2.0.0", "escape-html": "~1.0.3", "on-finished": "2.4.1", "parseurl": "~1.3.3", @@ -8716,6 +8713,15 @@ "ms": "2.0.0" } }, + "node_modules/finalhandler/node_modules/encodeurl": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz", + "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, "node_modules/finalhandler/node_modules/ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", @@ -9659,9 +9665,9 @@ "peer": true }, "node_modules/https-proxy-agent": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.4.tgz", - "integrity": "sha512-wlwpilI7YdjSkWaQ/7omYBMTliDcmCN8OLihO6I9B86g06lMyAoqgoDpV0XqoaPOKj+0DIdAvnsWfyAAhmimcg==", + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.5.tgz", + "integrity": "sha512-1e4Wqeblerz+tMKPIq2EMGiiWW1dIjZOksyHWSUm1rmuvw/how9hBHZ38lAGj5ID4Ik6EdkOw7NmWPy6LAwalw==", "dev": true, "license": "MIT", "peer": true, @@ -10729,9 +10735,9 @@ } }, "node_modules/jsonwebtoken/node_modules/semver": { - "version": "7.6.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", - "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", "dev": true, "license": "ISC", "peer": true, @@ -11337,9 +11343,9 @@ } }, "node_modules/node-abi/node_modules/semver": { - "version": "7.6.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", - "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", "dev": true, "license": "ISC", "optional": true, @@ -11730,26 +11736,36 @@ } }, "node_modules/office-addin-debugging": { - "version": "5.1.3", - "resolved": "https://registry.npmjs.org/office-addin-debugging/-/office-addin-debugging-5.1.3.tgz", - "integrity": "sha512-Y/uW4Gt93MIkHcSk8Kb+k/MuNQTWwtl9WmfdKFqC3UI4V8UO01jGkCk1uRuNhO186pLWD1SBZLG+jbmI7EC+qw==", + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/office-addin-debugging/-/office-addin-debugging-5.1.4.tgz", + "integrity": "sha512-nFxUmDxWRUxMZq+nCXcUXEjLU1ZLtM1hKEBrxwsUfyH62wbQBDLH1k0GeU38Rb29wIbrIY7kG3L6SAzf2xYU2A==", "dev": true, "license": "MIT", "dependencies": { - "adm-zip": "^0.5.9", + "adm-zip": "0.5.12", "commander": "^6.2.0", "node-fetch": "^2.6.1", "office-addin-cli": "^1.6.3", "office-addin-dev-certs": "^1.13.3", - "office-addin-dev-settings": "^2.3.3", - "office-addin-manifest": "^1.13.3", - "office-addin-node-debugger": "^0.9.3", + "office-addin-dev-settings": "^2.3.4", + "office-addin-manifest": "^1.13.4", + "office-addin-node-debugger": "^0.9.4", "office-addin-usage-data": "^1.6.12" }, "bin": { "office-addin-debugging": "cli.js" } }, + "node_modules/office-addin-debugging/node_modules/adm-zip": { + "version": "0.5.12", + "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.5.12.tgz", + "integrity": "sha512-6TVU49mK6KZb4qG6xWaaM4C7sA/sgUMLy/JYMOzkcp3BvVLpW0fXDFQiIzAuxFCt/2+xD7fNIiPFAoLZPhVNLQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.0" + } + }, "node_modules/office-addin-debugging/node_modules/commander": { "version": "6.2.1", "resolved": "https://registry.npmjs.org/commander/-/commander-6.2.1.tgz", @@ -11802,18 +11818,18 @@ } }, "node_modules/office-addin-dev-settings": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/office-addin-dev-settings/-/office-addin-dev-settings-2.3.3.tgz", - "integrity": "sha512-Zw+GnG0NnT471tkSPPuatNqXH4VZsCqCmItx+nGEj6fCwFowPbmP6eBcypIGS47x/T3+V9KNIKsoUKKps4Kefw==", + "version": "2.3.4", + "resolved": "https://registry.npmjs.org/office-addin-dev-settings/-/office-addin-dev-settings-2.3.4.tgz", + "integrity": "sha512-MpO1wj5mrNJeNisvhziFo1lg/4ARH/kILBEygL+WmS1F36nAi9EfY+kH0GkVSHd0WF8d/eaOBFRxOxrkdtidLQ==", "dev": true, "license": "MIT", "dependencies": { - "adm-zip": "0.5.10", + "adm-zip": "0.5.12", "commander": "^6.2.0", "fs-extra": "^11.2.0", "inquirer": "^7.3.3", "junk": "^3.1.0", - "office-addin-manifest": "^1.13.3", + "office-addin-manifest": "^1.13.4", "office-addin-usage-data": "^1.6.12", "open": "^6.4.0", "string_decoder": "1.3.0", @@ -11828,9 +11844,9 @@ } }, "node_modules/office-addin-dev-settings/node_modules/adm-zip": { - "version": "0.5.10", - "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.5.10.tgz", - "integrity": "sha512-x0HvcHqVJNTPk/Bw8JbLWlWoo6Wwnsug0fnYYro1HBrjxZ3G7/AZk7Ahv8JwDe1uIcz8eBqvu86FuF1POiG7vQ==", + "version": "0.5.12", + "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.5.12.tgz", + "integrity": "sha512-6TVU49mK6KZb4qG6xWaaM4C7sA/sgUMLy/JYMOzkcp3BvVLpW0fXDFQiIzAuxFCt/2+xD7fNIiPFAoLZPhVNLQ==", "dev": true, "license": "MIT", "engines": { @@ -11954,14 +11970,14 @@ } }, "node_modules/office-addin-manifest": { - "version": "1.13.3", - "resolved": "https://registry.npmjs.org/office-addin-manifest/-/office-addin-manifest-1.13.3.tgz", - "integrity": "sha512-pcIJTkLCKddGWyTQYkxWRcumZo9NzPdkQN43c17oylpvH2W0HgsZyBIazkwAjqAETy0VX40NbSQ8ejf4c9jvcA==", + "version": "1.13.4", + "resolved": "https://registry.npmjs.org/office-addin-manifest/-/office-addin-manifest-1.13.4.tgz", + "integrity": "sha512-bzjc+ypvJT+UBUSsfugftOZh/CZECR5GwJ7PMYcFuB/zGPuh41jeAxbuXhlAy8AeJpQgEsTK3B7N1aDr+JPqjg==", "dev": true, "license": "MIT", "dependencies": { "@microsoft/teams-manifest": "^0.1.3", - "adm-zip": "^0.5.9", + "adm-zip": "0.5.12", "chalk": "^2.4.2", "commander": "^6.2.0", "fs-extra": "^7.0.1", @@ -12002,6 +12018,16 @@ "node": "^12.20.0 || >=14" } }, + "node_modules/office-addin-manifest/node_modules/adm-zip": { + "version": "0.5.12", + "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.5.12.tgz", + "integrity": "sha512-6TVU49mK6KZb4qG6xWaaM4C7sA/sgUMLy/JYMOzkcp3BvVLpW0fXDFQiIzAuxFCt/2+xD7fNIiPFAoLZPhVNLQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.0" + } + }, "node_modules/office-addin-manifest/node_modules/commander": { "version": "6.2.1", "resolved": "https://registry.npmjs.org/commander/-/commander-6.2.1.tgz", @@ -12048,9 +12074,9 @@ } }, "node_modules/office-addin-node-debugger": { - "version": "0.9.3", - "resolved": "https://registry.npmjs.org/office-addin-node-debugger/-/office-addin-node-debugger-0.9.3.tgz", - "integrity": "sha512-S0e1lh7ykrcfaccF6jYvK40WJHh0JkZCdUENsYiThqKRB1843Rk0OLYZGHqEqSZYMondO21zUEVYLrwjaaMmwg==", + "version": "0.9.4", + "resolved": "https://registry.npmjs.org/office-addin-node-debugger/-/office-addin-node-debugger-0.9.4.tgz", + "integrity": "sha512-OXqlwOSyBas8GO+GD+8+sIqRr7Oh8eTe/8MaA3de+AUKl1IdwxpmkcTdTeFJQeSmuGmD2aaoytGDFLN5E1FT0A==", "dev": true, "license": "MIT", "dependencies": { @@ -12081,18 +12107,18 @@ "license": "MIT" }, "node_modules/office-addin-project": { - "version": "0.8.3", - "resolved": "https://registry.npmjs.org/office-addin-project/-/office-addin-project-0.8.3.tgz", - "integrity": "sha512-PgGk/LXnfxcKAYfERTPpI7CjXQbMinchIDnDGzS7kigSure5VQsuKi2c8l/F8/8KO+UzKJQa8obqFhwwiAd66A==", + "version": "0.8.4", + "resolved": "https://registry.npmjs.org/office-addin-project/-/office-addin-project-0.8.4.tgz", + "integrity": "sha512-RJ5Z9jb9T/SPQt6w5s/cPeO8XWwcGmM7YoWyHxi+OlqcbgPw3amHbCxAVM96R4mkfN57sL8IBAaC0KxIK9l67g==", "dev": true, "license": "MIT", "peer": true, "dependencies": { - "adm-zip": "^0.5.9", + "adm-zip": "0.5.12", "commander": "^6.2.1", "fs-extra": "^7.0.1", "inquirer": "^7.3.3", - "office-addin-manifest": "^1.13.3", + "office-addin-manifest": "^1.13.4", "office-addin-manifest-converter": "^0.3.1", "office-addin-usage-data": "^1.6.12", "path": "^0.12.7" @@ -12101,6 +12127,17 @@ "office-addin-project": "cli.js" } }, + "node_modules/office-addin-project/node_modules/adm-zip": { + "version": "0.5.12", + "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.5.12.tgz", + "integrity": "sha512-6TVU49mK6KZb4qG6xWaaM4C7sA/sgUMLy/JYMOzkcp3BvVLpW0fXDFQiIzAuxFCt/2+xD7fNIiPFAoLZPhVNLQ==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=6.0" + } + }, "node_modules/office-addin-project/node_modules/commander": { "version": "6.2.1", "resolved": "https://registry.npmjs.org/commander/-/commander-6.2.1.tgz", @@ -12698,12 +12735,12 @@ } }, "node_modules/qs": { - "version": "6.11.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", - "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.13.0.tgz", + "integrity": "sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==", "dev": true, "dependencies": { - "side-channel": "^1.0.4" + "side-channel": "^1.0.6" }, "engines": { "node": ">=0.6" @@ -13536,75 +13573,27 @@ } }, "node_modules/serve-static": { - "version": "1.16.0", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.16.0.tgz", - "integrity": "sha512-pDLK8zwl2eKaYrs8mrPZBJua4hMplRWJ1tIFksVC3FtBEBnl8dxgeHtsaMS8DhS9i4fLObaon6ABoc4/hQGdPA==", + "version": "1.16.2", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.16.2.tgz", + "integrity": "sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw==", "dev": true, "dependencies": { - "encodeurl": "~1.0.2", + "encodeurl": "~2.0.0", "escape-html": "~1.0.3", "parseurl": "~1.3.3", - "send": "0.18.0" + "send": "0.19.0" }, "engines": { "node": ">= 0.8.0" } }, - "node_modules/serve-static/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/serve-static/node_modules/debug/node_modules/ms": { + "node_modules/serve-static/node_modules/encodeurl": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true - }, - "node_modules/serve-static/node_modules/mime": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", - "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", - "dev": true, - "bin": { - "mime": "cli.js" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/serve-static/node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "dev": true - }, - "node_modules/serve-static/node_modules/send": { - "version": "0.18.0", - "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", - "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz", + "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==", "dev": true, - "dependencies": { - "debug": "2.6.9", - "depd": "2.0.0", - "destroy": "1.2.0", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "fresh": "0.5.2", - "http-errors": "2.0.0", - "mime": "1.6.0", - "ms": "2.1.3", - "on-finished": "2.4.1", - "range-parser": "~1.2.1", - "statuses": "2.0.1" - }, "engines": { - "node": ">= 0.8.0" + "node": ">= 0.8" } }, "node_modules/set-function-length": { @@ -14618,9 +14607,9 @@ } }, "node_modules/type-detect": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", - "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.1.0.tgz", + "integrity": "sha512-Acylog8/luQ8L7il+geoSxhEkazvkslg7PSNKOX59mbB9cOveP5aq9h74Y7YU8yDpJwetzQQrfIwtf4Wp4LKcw==", "dev": true, "license": "MIT", "peer": true, @@ -14781,9 +14770,9 @@ } }, "node_modules/uglify-js": { - "version": "3.18.0", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.18.0.tgz", - "integrity": "sha512-SyVVbcNBCk0dzr9XL/R/ySrmYf0s372K6/hFklzgcp2lBFyXtw4I7BOdDjlLhE1aVqaI/SHWXWmYdlZxuyF38A==", + "version": "3.19.2", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.19.2.tgz", + "integrity": "sha512-S8KA6DDI47nQXJSi2ctQ629YzwOVs+bQML6DAtvy0wgNdpi+0ySpQK0g2pxBq2xfF2z3YCscu7NNA8nXT9PlIQ==", "dev": true, "license": "BSD-2-Clause", "optional": true, @@ -14812,9 +14801,9 @@ } }, "node_modules/underscore": { - "version": "1.13.6", - "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.13.6.tgz", - "integrity": "sha512-+A5Sja4HP1M08MaXya7p5LvjuM7K6q/2EaC0+iovj/wOcMsTzMvDFbasi/oSapiwOlt252IqsKqPjCl7huKS0A==", + "version": "1.13.7", + "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.13.7.tgz", + "integrity": "sha512-GMXzWtsc57XAtguZgaQViUOzs0KTkk8ojr3/xAxXLITqf/3EMwxC0inyETfDFjH/Krbhuep0HNbbjI9i/q3F3g==", "dev": true, "license": "MIT", "peer": true @@ -15741,9 +15730,9 @@ "dev": true }, "node_modules/yaml": { - "version": "2.4.5", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.4.5.tgz", - "integrity": "sha512-aBx2bnqDzVOyNKfsysjA2ms5ZlnjSAW2eG3/L5G/CSujfjLJTJsEw1bGw8kCf04KodQWk1pxlGnZ56CRxiawmg==", + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.5.0.tgz", + "integrity": "sha512-2wWLbGbYDiSqqIKoPjar3MPgB94ErzCtrNE1FdqGuaO0pi2JGjmE8aW8TDZwzU7vuxcGRdL/4gPQwQ7hD5AMSw==", "dev": true, "license": "ISC", "peer": true, @@ -15875,16 +15864,16 @@ }, "dependencies": { "ajv": { - "version": "8.16.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.16.0.tgz", - "integrity": "sha512-F0twR8U1ZU67JIEtekUcLkXkoO5mMMmgGD8sK/xUFzJ805jxHQl92hImFAqqXMyMYjSPOyUPAwHYhB72g5sTXw==", + "version": "8.17.1", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", + "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", "dev": true, "peer": true, "requires": { "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.4.1" + "require-from-string": "^2.0.2" } }, "ajv-draft-04": { @@ -16090,9 +16079,9 @@ } }, "@azure/core-rest-pipeline": { - "version": "1.16.0", - "resolved": "https://registry.npmjs.org/@azure/core-rest-pipeline/-/core-rest-pipeline-1.16.0.tgz", - "integrity": "sha512-CeuTvsXxCUmEuxH5g/aceuSl6w2EugvNHKAtKKVdiX915EjJJxAwfzNNWZreNnbxHZ2fi0zaM6wwS23x2JVqSQ==", + "version": "1.16.3", + "resolved": "https://registry.npmjs.org/@azure/core-rest-pipeline/-/core-rest-pipeline-1.16.3.tgz", + "integrity": "sha512-VxLk4AHLyqcHsfKe4MZ6IQ+D+ShuByy+RfStKfSjxJoL3WBWq17VNmrz8aT8etKzqc2nAeIyLxScjpzsS4fz8w==", "dev": true, "peer": true, "requires": { @@ -16129,9 +16118,9 @@ } }, "@azure/core-util": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@azure/core-util/-/core-util-1.9.0.tgz", - "integrity": "sha512-AfalUQ1ZppaKuxPPMsFEUdX6GZPB3d9paR9d/TTL7Ow2De8cJaC7ibi7kWVlFAVPCYo31OcnGymc0R89DX8Oaw==", + "version": "1.9.2", + "resolved": "https://registry.npmjs.org/@azure/core-util/-/core-util-1.9.2.tgz", + "integrity": "sha512-l1Qrqhi4x1aekkV+OlcqsJa4AnAkj5p0JV8omgwjaV9OAbP41lvrMvs+CptfetKkeEaGRGSzby7sjPZEX7+kkQ==", "dev": true, "peer": true, "requires": { @@ -16152,9 +16141,9 @@ } }, "@azure/core-xml": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/@azure/core-xml/-/core-xml-1.4.2.tgz", - "integrity": "sha512-CW3MZhApe/S4iikbYKE7s83fjDBPIr2kpidX+hlGRwh7N4o1nIpQ/PfJTeioqhfqdMvRtheEl+ft64fyTaLNaA==", + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/@azure/core-xml/-/core-xml-1.4.3.tgz", + "integrity": "sha512-D6G7FEmDiTctPKuWegX2WTrS1enKZwqYwdKTO6ZN6JMigcCehlT0/CYl+zWpI9vQ9frwwp7GQT3/owaEXgnOsA==", "dev": true, "peer": true, "requires": { @@ -16163,9 +16152,9 @@ } }, "@azure/identity": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/@azure/identity/-/identity-4.3.0.tgz", - "integrity": "sha512-LHZ58/RsIpIWa4hrrE2YuJ/vzG1Jv9f774RfTTAVDZDriubvJ0/S5u4pnw4akJDlS0TiJb6VMphmVUFsWmgodQ==", + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/@azure/identity/-/identity-4.4.1.tgz", + "integrity": "sha512-DwnG4cKFEM7S3T+9u05NstXU/HN0dk45kPOinUyNKsn5VWwpXd9sbPKEg6kgJzGbm1lMuhx9o31PVbCtM5sfBA==", "dev": true, "peer": true, "requires": { @@ -16176,7 +16165,7 @@ "@azure/core-tracing": "^1.0.0", "@azure/core-util": "^1.3.0", "@azure/logger": "^1.0.0", - "@azure/msal-browser": "^3.11.1", + "@azure/msal-browser": "^3.14.0", "@azure/msal-node": "^2.9.2", "events": "^3.0.0", "jws": "^4.0.0", @@ -16186,9 +16175,9 @@ } }, "@azure/logger": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@azure/logger/-/logger-1.1.2.tgz", - "integrity": "sha512-l170uE7bsKpIU6B/giRc9i4NI0Mj+tANMMMxf7Zi/5cKzEqPayP7+X1WPrG7e+91JgY8N+7K7nF2WOi7iVhXvg==", + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/@azure/logger/-/logger-1.1.4.tgz", + "integrity": "sha512-4IXXzcCdLdlXuCG+8UKEwLA1T1NHqUfanhXYHiQTn+6sfWCZXduqbtXDGceg3Ce5QxTGo7EqmbV6Bi+aqKuClQ==", "dev": true, "peer": true, "requires": { @@ -16196,38 +16185,38 @@ } }, "@azure/msal-browser": { - "version": "3.17.0", - "resolved": "https://registry.npmjs.org/@azure/msal-browser/-/msal-browser-3.17.0.tgz", - "integrity": "sha512-csccKXmW2z7EkZ0I3yAoW/offQt+JECdTIV/KrnRoZyM7wCSsQWODpwod8ZhYy7iOyamcHApR9uCh0oD1M+0/A==", + "version": "3.20.0", + "resolved": "https://registry.npmjs.org/@azure/msal-browser/-/msal-browser-3.20.0.tgz", + "integrity": "sha512-ErsxbfCGIwdqD8jipqdxpfAGiUEQS7MWUe39Rjhl0ZVPsb1JEe9bZCe2+0g23HDH6DGyCAtnTNN9scPtievrMQ==", "dev": true, "peer": true, "requires": { - "@azure/msal-common": "14.12.0" + "@azure/msal-common": "14.14.0" } }, "@azure/msal-common": { - "version": "14.12.0", - "resolved": "https://registry.npmjs.org/@azure/msal-common/-/msal-common-14.12.0.tgz", - "integrity": "sha512-IDDXmzfdwmDkv4SSmMEyAniJf6fDu3FJ7ncOjlxkDuT85uSnLEhZi3fGZpoR7T4XZpOMx9teM9GXBgrfJgyeBw==", + "version": "14.14.0", + "resolved": "https://registry.npmjs.org/@azure/msal-common/-/msal-common-14.14.0.tgz", + "integrity": "sha512-OxcOk9H1/1fktHh6//VCORgSNJc2dCQObTm6JNmL824Z6iZSO6eFo/Bttxe0hETn9B+cr7gDouTQtsRq3YPuSQ==", "dev": true, "peer": true }, "@azure/msal-node": { - "version": "2.9.2", - "resolved": "https://registry.npmjs.org/@azure/msal-node/-/msal-node-2.9.2.tgz", - "integrity": "sha512-8tvi6Cos3m+0KmRbPjgkySXi+UQU/QiuVRFnrxIwt5xZlEEFa69O04RTaNESGgImyBBlYbo2mfE8/U8Bbdk1WQ==", + "version": "2.12.0", + "resolved": "https://registry.npmjs.org/@azure/msal-node/-/msal-node-2.12.0.tgz", + "integrity": "sha512-jmk5Im5KujRA2AcyCb0awA3buV8niSrwXZs+NBJWIvxOz76RvNlusGIqi43A0h45BPUy93Qb+CPdpJn82NFTIg==", "dev": true, "peer": true, "requires": { - "@azure/msal-common": "14.12.0", + "@azure/msal-common": "14.14.0", "jsonwebtoken": "^9.0.0", "uuid": "^8.3.0" } }, "@azure/storage-blob": { - "version": "12.23.0", - "resolved": "https://registry.npmjs.org/@azure/storage-blob/-/storage-blob-12.23.0.tgz", - "integrity": "sha512-c1KJ5R5hqR/HtvmFtTn/Y1BNMq45NUBp0LZH7yF8WFMET+wmESgEr0FVTu/Z5NonmfUjbgJZG5Nh8xHc5RdWGQ==", + "version": "12.24.0", + "resolved": "https://registry.npmjs.org/@azure/storage-blob/-/storage-blob-12.24.0.tgz", + "integrity": "sha512-l8cmWM4C7RoNCBOImoFMxhTXe1Lr+8uQ/IgnhRNMpfoA9bAFWoLG4XrWm6O5rKXortreVQuD+fc1hbzWklOZbw==", "dev": true, "peer": true, "requires": { @@ -16238,7 +16227,7 @@ "@azure/core-lro": "^2.2.0", "@azure/core-paging": "^1.1.1", "@azure/core-rest-pipeline": "^1.10.1", - "@azure/core-tracing": "^1.0.0", + "@azure/core-tracing": "^1.1.2", "@azure/core-util": "^1.6.1", "@azure/core-xml": "^1.3.2", "@azure/logger": "^1.0.0", @@ -18537,11 +18526,14 @@ } }, "@inquirer/type": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/@inquirer/type/-/type-1.3.3.tgz", - "integrity": "sha512-xTUt0NulylX27/zMx04ZYar/kr1raaiFTVvQ5feljQsiAgdm0WPj4S73/ye0fbslh+15QrIuDvfCXTek7pMY5A==", + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/@inquirer/type/-/type-1.5.2.tgz", + "integrity": "sha512-w9qFkumYDCNyDZmNQjf/n6qQuvQ4dMC3BJesY4oF+yr0CxR5vxujflAVeIcS6U336uzi9GM0kAfZlLrZ9UTkpA==", "dev": true, - "peer": true + "peer": true, + "requires": { + "mute-stream": "^1.0.0" + } }, "@isaacs/cliui": { "version": "8.0.2", @@ -18857,9 +18849,9 @@ "peer": true }, "semver": { - "version": "7.6.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", - "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", "dev": true, "peer": true }, @@ -18952,16 +18944,16 @@ }, "dependencies": { "ajv": { - "version": "8.16.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.16.0.tgz", - "integrity": "sha512-F0twR8U1ZU67JIEtekUcLkXkoO5mMMmgGD8sK/xUFzJ805jxHQl92hImFAqqXMyMYjSPOyUPAwHYhB72g5sTXw==", + "version": "8.17.1", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", + "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", "dev": true, "peer": true, "requires": { "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.4.1" + "require-from-string": "^2.0.2" } }, "json-schema-traverse": { @@ -18972,9 +18964,9 @@ "peer": true }, "semver": { - "version": "7.6.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", - "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", "dev": true, "peer": true } @@ -19662,10 +19654,11 @@ "peer": true }, "adm-zip": { - "version": "0.5.14", - "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.5.14.tgz", - "integrity": "sha512-DnyqqifT4Jrcvb8USYjp6FHtBpEIz1mnXu6pTRHZ0RL69LbQYiO+0lDFg5+OKA7U29oWSs3a/i8fhn8ZcceIWg==", - "dev": true + "version": "0.5.15", + "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.5.15.tgz", + "integrity": "sha512-jYPWSeOA8EFoZnucrKCNihqBjoEGQSU4HKgHYQgKNEQ0pQF9a/DYuo/+fAxY76k4qe75LUlLWpAM1QWcBMTOKw==", + "dev": true, + "peer": true }, "agent-base": { "version": "7.1.1", @@ -19971,9 +19964,9 @@ } }, "axios": { - "version": "1.7.2", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.7.2.tgz", - "integrity": "sha512-2A8QhOMrbomlDuiLeK9XibIBzuHeRcqqNOHp0Cyp5EoJ1IFDh+XZH3A6BkXtv0K4gFGCI0Y4BM7B1wOEi0Rmgw==", + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.7.3.tgz", + "integrity": "sha512-Ar7ND9pU99eJ9GpoGQKhKf58GpUOgnzuaB7ueNQ5BMi0p+LZ5oaEnfF999fAArcTIBwXTCHAmGcHOZJaWPq9Nw==", "dev": true, "peer": true, "requires": { @@ -20120,15 +20113,6 @@ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", "dev": true - }, - "qs": { - "version": "6.13.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.13.0.tgz", - "integrity": "sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==", - "dev": true, - "requires": { - "side-channel": "^1.0.6" - } } } }, @@ -20261,9 +20245,9 @@ "dev": true }, "chai": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/chai/-/chai-4.4.1.tgz", - "integrity": "sha512-13sOfMv2+DWduEU+/xbun3LScLoqN17nBeTLUsmDfKdoiC1fr0n9PU4guu4AhRcOVFk/sW8LyZWHuhWtQZiF+g==", + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/chai/-/chai-4.5.0.tgz", + "integrity": "sha512-RITGBfijLkBddZvnn8jdqoTypxvqbOLYQkGGxXzeFjVHvudaPw0HNFD9x928/eUwYWd2dPCugVqspGALTZZQKw==", "dev": true, "peer": true, "requires": { @@ -20273,7 +20257,7 @@ "get-func-name": "^2.0.2", "loupe": "^2.3.6", "pathval": "^1.1.1", - "type-detect": "^4.0.8" + "type-detect": "^4.1.0" } }, "chalk": { @@ -20514,9 +20498,9 @@ "dev": true }, "comment-json": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/comment-json/-/comment-json-4.2.3.tgz", - "integrity": "sha512-SsxdiOf064DWoZLH799Ata6u7iV658A11PlWtZATDlXPpKGJnbJZ5Z24ybixAi+LUUqJ/GKowAejtC5GFUG7Tw==", + "version": "4.2.5", + "resolved": "https://registry.npmjs.org/comment-json/-/comment-json-4.2.5.tgz", + "integrity": "sha512-bKw/r35jR3HGt5PEPm1ljsQQGyCrR8sFGNiN5L+ykDHdpO8Smxkrkla9Yi6NkQyUrb8V54PGhfMs6NrIwtxtdw==", "dev": true, "peer": true, "requires": { @@ -20630,9 +20614,9 @@ "dev": true }, "cookie": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.6.0.tgz", - "integrity": "sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==", + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.1.tgz", + "integrity": "sha512-6DnInpx7SJ2AK3+CTUE/ZM0vWTUboZCegxhC2xiIydHR9jNuTAASBrfEpHhiGOZw/nX51bHt6YQl8jsGo4y/0w==", "dev": true }, "cookie-signature": { @@ -21736,9 +21720,9 @@ "peer": true }, "express": { - "version": "4.20.0", - "resolved": "https://registry.npmjs.org/express/-/express-4.20.0.tgz", - "integrity": "sha512-pLdae7I6QqShF5PnNTCVn4hI91Dx0Grkn2+IAsMTgMIKuQVte2dN9PeGSSAME2FR8anOhVA62QDIUaWVfEXVLw==", + "version": "4.21.1", + "resolved": "https://registry.npmjs.org/express/-/express-4.21.1.tgz", + "integrity": "sha512-YSFlK1Ee0/GC8QaO91tHcDxJiE/X4FbpAyQWkxAvG6AXCuR65YzK8ua6D9hvi/TzUfZMpc+BwuM1IPw8fmQBiQ==", "dev": true, "requires": { "accepts": "~1.3.8", @@ -21746,14 +21730,14 @@ "body-parser": "1.20.3", "content-disposition": "0.5.4", "content-type": "~1.0.4", - "cookie": "0.6.0", + "cookie": "0.7.1", "cookie-signature": "1.0.6", "debug": "2.6.9", "depd": "2.0.0", "encodeurl": "~2.0.0", "escape-html": "~1.0.3", "etag": "~1.8.1", - "finalhandler": "1.2.0", + "finalhandler": "1.3.1", "fresh": "0.5.2", "http-errors": "2.0.0", "merge-descriptors": "1.0.3", @@ -21762,11 +21746,11 @@ "parseurl": "~1.3.3", "path-to-regexp": "0.1.10", "proxy-addr": "~2.0.7", - "qs": "6.11.0", + "qs": "6.13.0", "range-parser": "~1.2.1", "safe-buffer": "5.2.1", "send": "0.19.0", - "serve-static": "1.16.0", + "serve-static": "1.16.2", "setprototypeof": "1.2.0", "statuses": "2.0.1", "type-is": "~1.6.18", @@ -21874,10 +21858,17 @@ "dev": true, "peer": true }, + "fast-uri": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.0.1.tgz", + "integrity": "sha512-MWipKbbYiYI0UC7cl8m/i/IWTqfC8YXsqjzybjddLsFjStroQzsHXkc73JutMvBiXmOvapk+axIl79ig5t55Bw==", + "dev": true, + "peer": true + }, "fast-xml-parser": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-4.4.0.tgz", - "integrity": "sha512-kLY3jFlwIYwBNDojclKsNAC12sfD6NwW74QB2CoNGPvtVxjliYehVunB3HYyNi+n4Tt1dAcgwYvmKF/Z18flqg==", + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-4.4.1.tgz", + "integrity": "sha512-xkjOecfnKGkSsOwtZ5Pz7Us/T6mrbPQrq0nh+aCO5V9nk5NLWmasAHumTKjiPJPWANe+kAZ84Jc8ooJkzZ88Sw==", "dev": true, "peer": true, "requires": { @@ -21959,13 +21950,13 @@ } }, "finalhandler": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", - "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.3.1.tgz", + "integrity": "sha512-6BN9trH7bp3qvnrRyzsBz+g3lZxTNZTbVO2EV1CS0WIcDbawYVdYvGflME/9QP0h0pYlCDBCTjYa9nZzMDpyxQ==", "dev": true, "requires": { "debug": "2.6.9", - "encodeurl": "~1.0.2", + "encodeurl": "~2.0.0", "escape-html": "~1.0.3", "on-finished": "2.4.1", "parseurl": "~1.3.3", @@ -21982,6 +21973,12 @@ "ms": "2.0.0" } }, + "encodeurl": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz", + "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==", + "dev": true + }, "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", @@ -22624,9 +22621,9 @@ "peer": true }, "https-proxy-agent": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.4.tgz", - "integrity": "sha512-wlwpilI7YdjSkWaQ/7omYBMTliDcmCN8OLihO6I9B86g06lMyAoqgoDpV0XqoaPOKj+0DIdAvnsWfyAAhmimcg==", + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.5.tgz", + "integrity": "sha512-1e4Wqeblerz+tMKPIq2EMGiiWW1dIjZOksyHWSUm1rmuvw/how9hBHZ38lAGj5ID4Ik6EdkOw7NmWPy6LAwalw==", "dev": true, "peer": true, "requires": { @@ -23316,9 +23313,9 @@ } }, "semver": { - "version": "7.6.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", - "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", "dev": true, "peer": true } @@ -23788,9 +23785,9 @@ }, "dependencies": { "semver": { - "version": "7.6.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", - "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", "dev": true, "optional": true, "peer": true @@ -24071,22 +24068,28 @@ } }, "office-addin-debugging": { - "version": "5.1.3", - "resolved": "https://registry.npmjs.org/office-addin-debugging/-/office-addin-debugging-5.1.3.tgz", - "integrity": "sha512-Y/uW4Gt93MIkHcSk8Kb+k/MuNQTWwtl9WmfdKFqC3UI4V8UO01jGkCk1uRuNhO186pLWD1SBZLG+jbmI7EC+qw==", + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/office-addin-debugging/-/office-addin-debugging-5.1.4.tgz", + "integrity": "sha512-nFxUmDxWRUxMZq+nCXcUXEjLU1ZLtM1hKEBrxwsUfyH62wbQBDLH1k0GeU38Rb29wIbrIY7kG3L6SAzf2xYU2A==", "dev": true, "requires": { - "adm-zip": "^0.5.9", + "adm-zip": "0.5.12", "commander": "^6.2.0", "node-fetch": "^2.6.1", "office-addin-cli": "^1.6.3", "office-addin-dev-certs": "^1.13.3", - "office-addin-dev-settings": "^2.3.3", - "office-addin-manifest": "^1.13.3", - "office-addin-node-debugger": "^0.9.3", + "office-addin-dev-settings": "^2.3.4", + "office-addin-manifest": "^1.13.4", + "office-addin-node-debugger": "^0.9.4", "office-addin-usage-data": "^1.6.12" }, "dependencies": { + "adm-zip": { + "version": "0.5.12", + "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.5.12.tgz", + "integrity": "sha512-6TVU49mK6KZb4qG6xWaaM4C7sA/sgUMLy/JYMOzkcp3BvVLpW0fXDFQiIzAuxFCt/2+xD7fNIiPFAoLZPhVNLQ==", + "dev": true + }, "commander": { "version": "6.2.1", "resolved": "https://registry.npmjs.org/commander/-/commander-6.2.1.tgz", @@ -24128,17 +24131,17 @@ } }, "office-addin-dev-settings": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/office-addin-dev-settings/-/office-addin-dev-settings-2.3.3.tgz", - "integrity": "sha512-Zw+GnG0NnT471tkSPPuatNqXH4VZsCqCmItx+nGEj6fCwFowPbmP6eBcypIGS47x/T3+V9KNIKsoUKKps4Kefw==", + "version": "2.3.4", + "resolved": "https://registry.npmjs.org/office-addin-dev-settings/-/office-addin-dev-settings-2.3.4.tgz", + "integrity": "sha512-MpO1wj5mrNJeNisvhziFo1lg/4ARH/kILBEygL+WmS1F36nAi9EfY+kH0GkVSHd0WF8d/eaOBFRxOxrkdtidLQ==", "dev": true, "requires": { - "adm-zip": "0.5.10", + "adm-zip": "0.5.12", "commander": "^6.2.0", "fs-extra": "^11.2.0", "inquirer": "^7.3.3", "junk": "^3.1.0", - "office-addin-manifest": "^1.13.3", + "office-addin-manifest": "^1.13.4", "office-addin-usage-data": "^1.6.12", "open": "^6.4.0", "string_decoder": "1.3.0", @@ -24147,9 +24150,9 @@ }, "dependencies": { "adm-zip": { - "version": "0.5.10", - "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.5.10.tgz", - "integrity": "sha512-x0HvcHqVJNTPk/Bw8JbLWlWoo6Wwnsug0fnYYro1HBrjxZ3G7/AZk7Ahv8JwDe1uIcz8eBqvu86FuF1POiG7vQ==", + "version": "0.5.12", + "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.5.12.tgz", + "integrity": "sha512-6TVU49mK6KZb4qG6xWaaM4C7sA/sgUMLy/JYMOzkcp3BvVLpW0fXDFQiIzAuxFCt/2+xD7fNIiPFAoLZPhVNLQ==", "dev": true }, "commander": { @@ -24238,13 +24241,13 @@ } }, "office-addin-manifest": { - "version": "1.13.3", - "resolved": "https://registry.npmjs.org/office-addin-manifest/-/office-addin-manifest-1.13.3.tgz", - "integrity": "sha512-pcIJTkLCKddGWyTQYkxWRcumZo9NzPdkQN43c17oylpvH2W0HgsZyBIazkwAjqAETy0VX40NbSQ8ejf4c9jvcA==", + "version": "1.13.4", + "resolved": "https://registry.npmjs.org/office-addin-manifest/-/office-addin-manifest-1.13.4.tgz", + "integrity": "sha512-bzjc+ypvJT+UBUSsfugftOZh/CZECR5GwJ7PMYcFuB/zGPuh41jeAxbuXhlAy8AeJpQgEsTK3B7N1aDr+JPqjg==", "dev": true, "requires": { "@microsoft/teams-manifest": "^0.1.3", - "adm-zip": "^0.5.9", + "adm-zip": "0.5.12", "chalk": "^2.4.2", "commander": "^6.2.0", "fs-extra": "^7.0.1", @@ -24255,6 +24258,12 @@ "xml2js": "^0.5.0" }, "dependencies": { + "adm-zip": { + "version": "0.5.12", + "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.5.12.tgz", + "integrity": "sha512-6TVU49mK6KZb4qG6xWaaM4C7sA/sgUMLy/JYMOzkcp3BvVLpW0fXDFQiIzAuxFCt/2+xD7fNIiPFAoLZPhVNLQ==", + "dev": true + }, "commander": { "version": "6.2.1", "resolved": "https://registry.npmjs.org/commander/-/commander-6.2.1.tgz", @@ -24311,9 +24320,9 @@ } }, "office-addin-node-debugger": { - "version": "0.9.3", - "resolved": "https://registry.npmjs.org/office-addin-node-debugger/-/office-addin-node-debugger-0.9.3.tgz", - "integrity": "sha512-S0e1lh7ykrcfaccF6jYvK40WJHh0JkZCdUENsYiThqKRB1843Rk0OLYZGHqEqSZYMondO21zUEVYLrwjaaMmwg==", + "version": "0.9.4", + "resolved": "https://registry.npmjs.org/office-addin-node-debugger/-/office-addin-node-debugger-0.9.4.tgz", + "integrity": "sha512-OXqlwOSyBas8GO+GD+8+sIqRr7Oh8eTe/8MaA3de+AUKl1IdwxpmkcTdTeFJQeSmuGmD2aaoytGDFLN5E1FT0A==", "dev": true, "requires": { "commander": "^6.2.0", @@ -24337,22 +24346,29 @@ "dev": true }, "office-addin-project": { - "version": "0.8.3", - "resolved": "https://registry.npmjs.org/office-addin-project/-/office-addin-project-0.8.3.tgz", - "integrity": "sha512-PgGk/LXnfxcKAYfERTPpI7CjXQbMinchIDnDGzS7kigSure5VQsuKi2c8l/F8/8KO+UzKJQa8obqFhwwiAd66A==", + "version": "0.8.4", + "resolved": "https://registry.npmjs.org/office-addin-project/-/office-addin-project-0.8.4.tgz", + "integrity": "sha512-RJ5Z9jb9T/SPQt6w5s/cPeO8XWwcGmM7YoWyHxi+OlqcbgPw3amHbCxAVM96R4mkfN57sL8IBAaC0KxIK9l67g==", "dev": true, "peer": true, "requires": { - "adm-zip": "^0.5.9", + "adm-zip": "0.5.12", "commander": "^6.2.1", "fs-extra": "^7.0.1", "inquirer": "^7.3.3", - "office-addin-manifest": "^1.13.3", + "office-addin-manifest": "^1.13.4", "office-addin-manifest-converter": "^0.3.1", "office-addin-usage-data": "^1.6.12", "path": "^0.12.7" }, "dependencies": { + "adm-zip": { + "version": "0.5.12", + "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.5.12.tgz", + "integrity": "sha512-6TVU49mK6KZb4qG6xWaaM4C7sA/sgUMLy/JYMOzkcp3BvVLpW0fXDFQiIzAuxFCt/2+xD7fNIiPFAoLZPhVNLQ==", + "dev": true, + "peer": true + }, "commander": { "version": "6.2.1", "resolved": "https://registry.npmjs.org/commander/-/commander-6.2.1.tgz", @@ -24798,12 +24814,12 @@ "dev": true }, "qs": { - "version": "6.11.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", - "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.13.0.tgz", + "integrity": "sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==", "dev": true, "requires": { - "side-channel": "^1.0.4" + "side-channel": "^1.0.6" } }, "queue-microtask": { @@ -25416,66 +25432,22 @@ } }, "serve-static": { - "version": "1.16.0", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.16.0.tgz", - "integrity": "sha512-pDLK8zwl2eKaYrs8mrPZBJua4hMplRWJ1tIFksVC3FtBEBnl8dxgeHtsaMS8DhS9i4fLObaon6ABoc4/hQGdPA==", + "version": "1.16.2", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.16.2.tgz", + "integrity": "sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw==", "dev": true, "requires": { - "encodeurl": "~1.0.2", + "encodeurl": "~2.0.0", "escape-html": "~1.0.3", "parseurl": "~1.3.3", - "send": "0.18.0" + "send": "0.19.0" }, "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - }, - "dependencies": { - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true - } - } - }, - "mime": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", - "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", - "dev": true - }, - "ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "encodeurl": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz", + "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==", "dev": true - }, - "send": { - "version": "0.18.0", - "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", - "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", - "dev": true, - "requires": { - "debug": "2.6.9", - "depd": "2.0.0", - "destroy": "1.2.0", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "fresh": "0.5.2", - "http-errors": "2.0.0", - "mime": "1.6.0", - "ms": "2.1.3", - "on-finished": "2.4.1", - "range-parser": "~1.2.1", - "statuses": "2.0.1" - } } } }, @@ -26201,9 +26173,9 @@ } }, "type-detect": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", - "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.1.0.tgz", + "integrity": "sha512-Acylog8/luQ8L7il+geoSxhEkazvkslg7PSNKOX59mbB9cOveP5aq9h74Y7YU8yDpJwetzQQrfIwtf4Wp4LKcw==", "dev": true, "peer": true }, @@ -26300,9 +26272,9 @@ } }, "uglify-js": { - "version": "3.18.0", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.18.0.tgz", - "integrity": "sha512-SyVVbcNBCk0dzr9XL/R/ySrmYf0s372K6/hFklzgcp2lBFyXtw4I7BOdDjlLhE1aVqaI/SHWXWmYdlZxuyF38A==", + "version": "3.19.2", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.19.2.tgz", + "integrity": "sha512-S8KA6DDI47nQXJSi2ctQ629YzwOVs+bQML6DAtvy0wgNdpi+0ySpQK0g2pxBq2xfF2z3YCscu7NNA8nXT9PlIQ==", "dev": true, "optional": true, "peer": true @@ -26320,9 +26292,9 @@ } }, "underscore": { - "version": "1.13.6", - "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.13.6.tgz", - "integrity": "sha512-+A5Sja4HP1M08MaXya7p5LvjuM7K6q/2EaC0+iovj/wOcMsTzMvDFbasi/oSapiwOlt252IqsKqPjCl7huKS0A==", + "version": "1.13.7", + "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.13.7.tgz", + "integrity": "sha512-GMXzWtsc57XAtguZgaQViUOzs0KTkk8ojr3/xAxXLITqf/3EMwxC0inyETfDFjH/Krbhuep0HNbbjI9i/q3F3g==", "dev": true, "peer": true }, @@ -26939,9 +26911,9 @@ "dev": true }, "yaml": { - "version": "2.4.5", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.4.5.tgz", - "integrity": "sha512-aBx2bnqDzVOyNKfsysjA2ms5ZlnjSAW2eG3/L5G/CSujfjLJTJsEw1bGw8kCf04KodQWk1pxlGnZ56CRxiawmg==", + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.5.0.tgz", + "integrity": "sha512-2wWLbGbYDiSqqIKoPjar3MPgB94ErzCtrNE1FdqGuaO0pi2JGjmE8aW8TDZwzU7vuxcGRdL/4gPQwQ7hD5AMSw==", "dev": true, "peer": true }, diff --git a/Samples/tutorials/powerpoint-tutorial/HelloWorld/HelloWorldWeb/Functions/FunctionFile.html b/Samples/tutorials/powerpoint-tutorial/HelloWorld/HelloWorldWeb/Functions/FunctionFile.html index 5ef650a50..b9951653b 100644 --- a/Samples/tutorials/powerpoint-tutorial/HelloWorld/HelloWorldWeb/Functions/FunctionFile.html +++ b/Samples/tutorials/powerpoint-tutorial/HelloWorld/HelloWorldWeb/Functions/FunctionFile.html @@ -5,7 +5,7 @@ <meta http-equiv="X-UA-Compatible" content="IE=Edge" /> <title> - + diff --git a/Samples/tutorials/powerpoint-tutorial/HelloWorld/HelloWorldWeb/Home.html b/Samples/tutorials/powerpoint-tutorial/HelloWorld/HelloWorldWeb/Home.html index eb7b79d10..a28ba283f 100644 --- a/Samples/tutorials/powerpoint-tutorial/HelloWorld/HelloWorldWeb/Home.html +++ b/Samples/tutorials/powerpoint-tutorial/HelloWorld/HelloWorldWeb/Home.html @@ -6,7 +6,7 @@ - + diff --git a/Samples/tutorials/word-tutorial/My Office Add-in/package-lock.json b/Samples/tutorials/word-tutorial/My Office Add-in/package-lock.json index 5ab8b5f17..f9437927a 100644 --- a/Samples/tutorials/word-tutorial/My Office Add-in/package-lock.json +++ b/Samples/tutorials/word-tutorial/My Office Add-in/package-lock.json @@ -133,17 +133,17 @@ } }, "node_modules/@apidevtools/swagger-parser/node_modules/ajv": { - "version": "8.16.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.16.0.tgz", - "integrity": "sha512-F0twR8U1ZU67JIEtekUcLkXkoO5mMMmgGD8sK/xUFzJ805jxHQl92hImFAqqXMyMYjSPOyUPAwHYhB72g5sTXw==", + "version": "8.17.1", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", + "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", "dev": true, "license": "MIT", "peer": true, "dependencies": { "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.4.1" + "require-from-string": "^2.0.2" }, "funding": { "type": "github", @@ -408,9 +408,9 @@ } }, "node_modules/@azure/core-rest-pipeline": { - "version": "1.16.0", - "resolved": "https://registry.npmjs.org/@azure/core-rest-pipeline/-/core-rest-pipeline-1.16.0.tgz", - "integrity": "sha512-CeuTvsXxCUmEuxH5g/aceuSl6w2EugvNHKAtKKVdiX915EjJJxAwfzNNWZreNnbxHZ2fi0zaM6wwS23x2JVqSQ==", + "version": "1.16.3", + "resolved": "https://registry.npmjs.org/@azure/core-rest-pipeline/-/core-rest-pipeline-1.16.3.tgz", + "integrity": "sha512-VxLk4AHLyqcHsfKe4MZ6IQ+D+ShuByy+RfStKfSjxJoL3WBWq17VNmrz8aT8etKzqc2nAeIyLxScjpzsS4fz8w==", "dev": true, "license": "MIT", "peer": true, @@ -457,9 +457,9 @@ } }, "node_modules/@azure/core-util": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@azure/core-util/-/core-util-1.9.0.tgz", - "integrity": "sha512-AfalUQ1ZppaKuxPPMsFEUdX6GZPB3d9paR9d/TTL7Ow2De8cJaC7ibi7kWVlFAVPCYo31OcnGymc0R89DX8Oaw==", + "version": "1.9.2", + "resolved": "https://registry.npmjs.org/@azure/core-util/-/core-util-1.9.2.tgz", + "integrity": "sha512-l1Qrqhi4x1aekkV+OlcqsJa4AnAkj5p0JV8omgwjaV9OAbP41lvrMvs+CptfetKkeEaGRGSzby7sjPZEX7+kkQ==", "dev": true, "license": "MIT", "peer": true, @@ -486,9 +486,9 @@ } }, "node_modules/@azure/core-xml": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/@azure/core-xml/-/core-xml-1.4.2.tgz", - "integrity": "sha512-CW3MZhApe/S4iikbYKE7s83fjDBPIr2kpidX+hlGRwh7N4o1nIpQ/PfJTeioqhfqdMvRtheEl+ft64fyTaLNaA==", + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/@azure/core-xml/-/core-xml-1.4.3.tgz", + "integrity": "sha512-D6G7FEmDiTctPKuWegX2WTrS1enKZwqYwdKTO6ZN6JMigcCehlT0/CYl+zWpI9vQ9frwwp7GQT3/owaEXgnOsA==", "dev": true, "license": "MIT", "peer": true, @@ -501,9 +501,9 @@ } }, "node_modules/@azure/identity": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/@azure/identity/-/identity-4.3.0.tgz", - "integrity": "sha512-LHZ58/RsIpIWa4hrrE2YuJ/vzG1Jv9f774RfTTAVDZDriubvJ0/S5u4pnw4akJDlS0TiJb6VMphmVUFsWmgodQ==", + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/@azure/identity/-/identity-4.4.1.tgz", + "integrity": "sha512-DwnG4cKFEM7S3T+9u05NstXU/HN0dk45kPOinUyNKsn5VWwpXd9sbPKEg6kgJzGbm1lMuhx9o31PVbCtM5sfBA==", "dev": true, "license": "MIT", "peer": true, @@ -515,7 +515,7 @@ "@azure/core-tracing": "^1.0.0", "@azure/core-util": "^1.3.0", "@azure/logger": "^1.0.0", - "@azure/msal-browser": "^3.11.1", + "@azure/msal-browser": "^3.14.0", "@azure/msal-node": "^2.9.2", "events": "^3.0.0", "jws": "^4.0.0", @@ -528,9 +528,9 @@ } }, "node_modules/@azure/logger": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@azure/logger/-/logger-1.1.2.tgz", - "integrity": "sha512-l170uE7bsKpIU6B/giRc9i4NI0Mj+tANMMMxf7Zi/5cKzEqPayP7+X1WPrG7e+91JgY8N+7K7nF2WOi7iVhXvg==", + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/@azure/logger/-/logger-1.1.4.tgz", + "integrity": "sha512-4IXXzcCdLdlXuCG+8UKEwLA1T1NHqUfanhXYHiQTn+6sfWCZXduqbtXDGceg3Ce5QxTGo7EqmbV6Bi+aqKuClQ==", "dev": true, "license": "MIT", "peer": true, @@ -542,23 +542,23 @@ } }, "node_modules/@azure/msal-browser": { - "version": "3.17.0", - "resolved": "https://registry.npmjs.org/@azure/msal-browser/-/msal-browser-3.17.0.tgz", - "integrity": "sha512-csccKXmW2z7EkZ0I3yAoW/offQt+JECdTIV/KrnRoZyM7wCSsQWODpwod8ZhYy7iOyamcHApR9uCh0oD1M+0/A==", + "version": "3.20.0", + "resolved": "https://registry.npmjs.org/@azure/msal-browser/-/msal-browser-3.20.0.tgz", + "integrity": "sha512-ErsxbfCGIwdqD8jipqdxpfAGiUEQS7MWUe39Rjhl0ZVPsb1JEe9bZCe2+0g23HDH6DGyCAtnTNN9scPtievrMQ==", "dev": true, "license": "MIT", "peer": true, "dependencies": { - "@azure/msal-common": "14.12.0" + "@azure/msal-common": "14.14.0" }, "engines": { "node": ">=0.8.0" } }, "node_modules/@azure/msal-common": { - "version": "14.12.0", - "resolved": "https://registry.npmjs.org/@azure/msal-common/-/msal-common-14.12.0.tgz", - "integrity": "sha512-IDDXmzfdwmDkv4SSmMEyAniJf6fDu3FJ7ncOjlxkDuT85uSnLEhZi3fGZpoR7T4XZpOMx9teM9GXBgrfJgyeBw==", + "version": "14.14.0", + "resolved": "https://registry.npmjs.org/@azure/msal-common/-/msal-common-14.14.0.tgz", + "integrity": "sha512-OxcOk9H1/1fktHh6//VCORgSNJc2dCQObTm6JNmL824Z6iZSO6eFo/Bttxe0hETn9B+cr7gDouTQtsRq3YPuSQ==", "dev": true, "license": "MIT", "peer": true, @@ -567,14 +567,14 @@ } }, "node_modules/@azure/msal-node": { - "version": "2.9.2", - "resolved": "https://registry.npmjs.org/@azure/msal-node/-/msal-node-2.9.2.tgz", - "integrity": "sha512-8tvi6Cos3m+0KmRbPjgkySXi+UQU/QiuVRFnrxIwt5xZlEEFa69O04RTaNESGgImyBBlYbo2mfE8/U8Bbdk1WQ==", + "version": "2.12.0", + "resolved": "https://registry.npmjs.org/@azure/msal-node/-/msal-node-2.12.0.tgz", + "integrity": "sha512-jmk5Im5KujRA2AcyCb0awA3buV8niSrwXZs+NBJWIvxOz76RvNlusGIqi43A0h45BPUy93Qb+CPdpJn82NFTIg==", "dev": true, "license": "MIT", "peer": true, "dependencies": { - "@azure/msal-common": "14.12.0", + "@azure/msal-common": "14.14.0", "jsonwebtoken": "^9.0.0", "uuid": "^8.3.0" }, @@ -583,9 +583,9 @@ } }, "node_modules/@azure/storage-blob": { - "version": "12.23.0", - "resolved": "https://registry.npmjs.org/@azure/storage-blob/-/storage-blob-12.23.0.tgz", - "integrity": "sha512-c1KJ5R5hqR/HtvmFtTn/Y1BNMq45NUBp0LZH7yF8WFMET+wmESgEr0FVTu/Z5NonmfUjbgJZG5Nh8xHc5RdWGQ==", + "version": "12.24.0", + "resolved": "https://registry.npmjs.org/@azure/storage-blob/-/storage-blob-12.24.0.tgz", + "integrity": "sha512-l8cmWM4C7RoNCBOImoFMxhTXe1Lr+8uQ/IgnhRNMpfoA9bAFWoLG4XrWm6O5rKXortreVQuD+fc1hbzWklOZbw==", "dev": true, "license": "MIT", "peer": true, @@ -597,7 +597,7 @@ "@azure/core-lro": "^2.2.0", "@azure/core-paging": "^1.1.1", "@azure/core-rest-pipeline": "^1.10.1", - "@azure/core-tracing": "^1.0.0", + "@azure/core-tracing": "^1.1.2", "@azure/core-util": "^1.6.1", "@azure/core-xml": "^1.3.2", "@azure/logger": "^1.0.0", @@ -3999,12 +3999,15 @@ } }, "node_modules/@inquirer/type": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/@inquirer/type/-/type-1.3.3.tgz", - "integrity": "sha512-xTUt0NulylX27/zMx04ZYar/kr1raaiFTVvQ5feljQsiAgdm0WPj4S73/ye0fbslh+15QrIuDvfCXTek7pMY5A==", + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/@inquirer/type/-/type-1.5.2.tgz", + "integrity": "sha512-w9qFkumYDCNyDZmNQjf/n6qQuvQ4dMC3BJesY4oF+yr0CxR5vxujflAVeIcS6U336uzi9GM0kAfZlLrZ9UTkpA==", "dev": true, "license": "MIT", "peer": true, + "dependencies": { + "mute-stream": "^1.0.0" + }, "engines": { "node": ">=18" } @@ -4427,9 +4430,9 @@ } }, "node_modules/@microsoft/teamsapp-cli/node_modules/semver": { - "version": "7.6.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", - "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", "dev": true, "license": "ISC", "peer": true, @@ -4533,17 +4536,17 @@ } }, "node_modules/@microsoft/teamsfx-core/node_modules/ajv": { - "version": "8.16.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.16.0.tgz", - "integrity": "sha512-F0twR8U1ZU67JIEtekUcLkXkoO5mMMmgGD8sK/xUFzJ805jxHQl92hImFAqqXMyMYjSPOyUPAwHYhB72g5sTXw==", + "version": "8.17.1", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", + "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", "dev": true, "license": "MIT", "peer": true, "dependencies": { "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.4.1" + "require-from-string": "^2.0.2" }, "funding": { "type": "github", @@ -4559,9 +4562,9 @@ "peer": true }, "node_modules/@microsoft/teamsfx-core/node_modules/semver": { - "version": "7.6.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", - "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", "dev": true, "license": "ISC", "peer": true, @@ -5460,11 +5463,12 @@ } }, "node_modules/adm-zip": { - "version": "0.5.14", - "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.5.14.tgz", - "integrity": "sha512-DnyqqifT4Jrcvb8USYjp6FHtBpEIz1mnXu6pTRHZ0RL69LbQYiO+0lDFg5+OKA7U29oWSs3a/i8fhn8ZcceIWg==", + "version": "0.5.15", + "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.5.15.tgz", + "integrity": "sha512-jYPWSeOA8EFoZnucrKCNihqBjoEGQSU4HKgHYQgKNEQ0pQF9a/DYuo/+fAxY76k4qe75LUlLWpAM1QWcBMTOKw==", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">=12.0" } @@ -5897,9 +5901,9 @@ } }, "node_modules/axios": { - "version": "1.7.2", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.7.2.tgz", - "integrity": "sha512-2A8QhOMrbomlDuiLeK9XibIBzuHeRcqqNOHp0Cyp5EoJ1IFDh+XZH3A6BkXtv0K4gFGCI0Y4BM7B1wOEi0Rmgw==", + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.7.3.tgz", + "integrity": "sha512-Ar7ND9pU99eJ9GpoGQKhKf58GpUOgnzuaB7ueNQ5BMi0p+LZ5oaEnfF999fAArcTIBwXTCHAmGcHOZJaWPq9Nw==", "dev": true, "license": "MIT", "peer": true, @@ -6317,9 +6321,9 @@ ] }, "node_modules/chai": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/chai/-/chai-4.4.1.tgz", - "integrity": "sha512-13sOfMv2+DWduEU+/xbun3LScLoqN17nBeTLUsmDfKdoiC1fr0n9PU4guu4AhRcOVFk/sW8LyZWHuhWtQZiF+g==", + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/chai/-/chai-4.5.0.tgz", + "integrity": "sha512-RITGBfijLkBddZvnn8jdqoTypxvqbOLYQkGGxXzeFjVHvudaPw0HNFD9x928/eUwYWd2dPCugVqspGALTZZQKw==", "dev": true, "license": "MIT", "peer": true, @@ -6330,7 +6334,7 @@ "get-func-name": "^2.0.2", "loupe": "^2.3.6", "pathval": "^1.1.1", - "type-detect": "^4.0.8" + "type-detect": "^4.1.0" }, "engines": { "node": ">=4" @@ -6663,9 +6667,9 @@ } }, "node_modules/comment-json": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/comment-json/-/comment-json-4.2.3.tgz", - "integrity": "sha512-SsxdiOf064DWoZLH799Ata6u7iV658A11PlWtZATDlXPpKGJnbJZ5Z24ybixAi+LUUqJ/GKowAejtC5GFUG7Tw==", + "version": "4.2.5", + "resolved": "https://registry.npmjs.org/comment-json/-/comment-json-4.2.5.tgz", + "integrity": "sha512-bKw/r35jR3HGt5PEPm1ljsQQGyCrR8sFGNiN5L+ykDHdpO8Smxkrkla9Yi6NkQyUrb8V54PGhfMs6NrIwtxtdw==", "dev": true, "license": "MIT", "peer": true, @@ -8555,10 +8559,18 @@ "license": "MIT", "peer": true }, + "node_modules/fast-uri": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.0.1.tgz", + "integrity": "sha512-MWipKbbYiYI0UC7cl8m/i/IWTqfC8YXsqjzybjddLsFjStroQzsHXkc73JutMvBiXmOvapk+axIl79ig5t55Bw==", + "dev": true, + "license": "MIT", + "peer": true + }, "node_modules/fast-xml-parser": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-4.4.0.tgz", - "integrity": "sha512-kLY3jFlwIYwBNDojclKsNAC12sfD6NwW74QB2CoNGPvtVxjliYehVunB3HYyNi+n4Tt1dAcgwYvmKF/Z18flqg==", + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-4.4.1.tgz", + "integrity": "sha512-xkjOecfnKGkSsOwtZ5Pz7Us/T6mrbPQrq0nh+aCO5V9nk5NLWmasAHumTKjiPJPWANe+kAZ84Jc8ooJkzZ88Sw==", "dev": true, "funding": [ { @@ -9659,9 +9671,9 @@ "peer": true }, "node_modules/https-proxy-agent": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.4.tgz", - "integrity": "sha512-wlwpilI7YdjSkWaQ/7omYBMTliDcmCN8OLihO6I9B86g06lMyAoqgoDpV0XqoaPOKj+0DIdAvnsWfyAAhmimcg==", + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.5.tgz", + "integrity": "sha512-1e4Wqeblerz+tMKPIq2EMGiiWW1dIjZOksyHWSUm1rmuvw/how9hBHZ38lAGj5ID4Ik6EdkOw7NmWPy6LAwalw==", "dev": true, "license": "MIT", "peer": true, @@ -10729,9 +10741,9 @@ } }, "node_modules/jsonwebtoken/node_modules/semver": { - "version": "7.6.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", - "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", "dev": true, "license": "ISC", "peer": true, @@ -11337,9 +11349,9 @@ } }, "node_modules/node-abi/node_modules/semver": { - "version": "7.6.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", - "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", "dev": true, "license": "ISC", "optional": true, @@ -11730,26 +11742,36 @@ } }, "node_modules/office-addin-debugging": { - "version": "5.1.3", - "resolved": "https://registry.npmjs.org/office-addin-debugging/-/office-addin-debugging-5.1.3.tgz", - "integrity": "sha512-Y/uW4Gt93MIkHcSk8Kb+k/MuNQTWwtl9WmfdKFqC3UI4V8UO01jGkCk1uRuNhO186pLWD1SBZLG+jbmI7EC+qw==", + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/office-addin-debugging/-/office-addin-debugging-5.1.4.tgz", + "integrity": "sha512-nFxUmDxWRUxMZq+nCXcUXEjLU1ZLtM1hKEBrxwsUfyH62wbQBDLH1k0GeU38Rb29wIbrIY7kG3L6SAzf2xYU2A==", "dev": true, "license": "MIT", "dependencies": { - "adm-zip": "^0.5.9", + "adm-zip": "0.5.12", "commander": "^6.2.0", "node-fetch": "^2.6.1", "office-addin-cli": "^1.6.3", "office-addin-dev-certs": "^1.13.3", - "office-addin-dev-settings": "^2.3.3", - "office-addin-manifest": "^1.13.3", - "office-addin-node-debugger": "^0.9.3", + "office-addin-dev-settings": "^2.3.4", + "office-addin-manifest": "^1.13.4", + "office-addin-node-debugger": "^0.9.4", "office-addin-usage-data": "^1.6.12" }, "bin": { "office-addin-debugging": "cli.js" } }, + "node_modules/office-addin-debugging/node_modules/adm-zip": { + "version": "0.5.12", + "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.5.12.tgz", + "integrity": "sha512-6TVU49mK6KZb4qG6xWaaM4C7sA/sgUMLy/JYMOzkcp3BvVLpW0fXDFQiIzAuxFCt/2+xD7fNIiPFAoLZPhVNLQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.0" + } + }, "node_modules/office-addin-debugging/node_modules/commander": { "version": "6.2.1", "resolved": "https://registry.npmjs.org/commander/-/commander-6.2.1.tgz", @@ -11802,18 +11824,18 @@ } }, "node_modules/office-addin-dev-settings": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/office-addin-dev-settings/-/office-addin-dev-settings-2.3.3.tgz", - "integrity": "sha512-Zw+GnG0NnT471tkSPPuatNqXH4VZsCqCmItx+nGEj6fCwFowPbmP6eBcypIGS47x/T3+V9KNIKsoUKKps4Kefw==", + "version": "2.3.4", + "resolved": "https://registry.npmjs.org/office-addin-dev-settings/-/office-addin-dev-settings-2.3.4.tgz", + "integrity": "sha512-MpO1wj5mrNJeNisvhziFo1lg/4ARH/kILBEygL+WmS1F36nAi9EfY+kH0GkVSHd0WF8d/eaOBFRxOxrkdtidLQ==", "dev": true, "license": "MIT", "dependencies": { - "adm-zip": "0.5.10", + "adm-zip": "0.5.12", "commander": "^6.2.0", "fs-extra": "^11.2.0", "inquirer": "^7.3.3", "junk": "^3.1.0", - "office-addin-manifest": "^1.13.3", + "office-addin-manifest": "^1.13.4", "office-addin-usage-data": "^1.6.12", "open": "^6.4.0", "string_decoder": "1.3.0", @@ -11828,9 +11850,9 @@ } }, "node_modules/office-addin-dev-settings/node_modules/adm-zip": { - "version": "0.5.10", - "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.5.10.tgz", - "integrity": "sha512-x0HvcHqVJNTPk/Bw8JbLWlWoo6Wwnsug0fnYYro1HBrjxZ3G7/AZk7Ahv8JwDe1uIcz8eBqvu86FuF1POiG7vQ==", + "version": "0.5.12", + "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.5.12.tgz", + "integrity": "sha512-6TVU49mK6KZb4qG6xWaaM4C7sA/sgUMLy/JYMOzkcp3BvVLpW0fXDFQiIzAuxFCt/2+xD7fNIiPFAoLZPhVNLQ==", "dev": true, "license": "MIT", "engines": { @@ -11954,14 +11976,14 @@ } }, "node_modules/office-addin-manifest": { - "version": "1.13.3", - "resolved": "https://registry.npmjs.org/office-addin-manifest/-/office-addin-manifest-1.13.3.tgz", - "integrity": "sha512-pcIJTkLCKddGWyTQYkxWRcumZo9NzPdkQN43c17oylpvH2W0HgsZyBIazkwAjqAETy0VX40NbSQ8ejf4c9jvcA==", + "version": "1.13.4", + "resolved": "https://registry.npmjs.org/office-addin-manifest/-/office-addin-manifest-1.13.4.tgz", + "integrity": "sha512-bzjc+ypvJT+UBUSsfugftOZh/CZECR5GwJ7PMYcFuB/zGPuh41jeAxbuXhlAy8AeJpQgEsTK3B7N1aDr+JPqjg==", "dev": true, "license": "MIT", "dependencies": { "@microsoft/teams-manifest": "^0.1.3", - "adm-zip": "^0.5.9", + "adm-zip": "0.5.12", "chalk": "^2.4.2", "commander": "^6.2.0", "fs-extra": "^7.0.1", @@ -12002,6 +12024,16 @@ "node": "^12.20.0 || >=14" } }, + "node_modules/office-addin-manifest/node_modules/adm-zip": { + "version": "0.5.12", + "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.5.12.tgz", + "integrity": "sha512-6TVU49mK6KZb4qG6xWaaM4C7sA/sgUMLy/JYMOzkcp3BvVLpW0fXDFQiIzAuxFCt/2+xD7fNIiPFAoLZPhVNLQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.0" + } + }, "node_modules/office-addin-manifest/node_modules/commander": { "version": "6.2.1", "resolved": "https://registry.npmjs.org/commander/-/commander-6.2.1.tgz", @@ -12048,9 +12080,9 @@ } }, "node_modules/office-addin-node-debugger": { - "version": "0.9.3", - "resolved": "https://registry.npmjs.org/office-addin-node-debugger/-/office-addin-node-debugger-0.9.3.tgz", - "integrity": "sha512-S0e1lh7ykrcfaccF6jYvK40WJHh0JkZCdUENsYiThqKRB1843Rk0OLYZGHqEqSZYMondO21zUEVYLrwjaaMmwg==", + "version": "0.9.4", + "resolved": "https://registry.npmjs.org/office-addin-node-debugger/-/office-addin-node-debugger-0.9.4.tgz", + "integrity": "sha512-OXqlwOSyBas8GO+GD+8+sIqRr7Oh8eTe/8MaA3de+AUKl1IdwxpmkcTdTeFJQeSmuGmD2aaoytGDFLN5E1FT0A==", "dev": true, "license": "MIT", "dependencies": { @@ -12081,18 +12113,18 @@ "license": "MIT" }, "node_modules/office-addin-project": { - "version": "0.8.3", - "resolved": "https://registry.npmjs.org/office-addin-project/-/office-addin-project-0.8.3.tgz", - "integrity": "sha512-PgGk/LXnfxcKAYfERTPpI7CjXQbMinchIDnDGzS7kigSure5VQsuKi2c8l/F8/8KO+UzKJQa8obqFhwwiAd66A==", + "version": "0.8.4", + "resolved": "https://registry.npmjs.org/office-addin-project/-/office-addin-project-0.8.4.tgz", + "integrity": "sha512-RJ5Z9jb9T/SPQt6w5s/cPeO8XWwcGmM7YoWyHxi+OlqcbgPw3amHbCxAVM96R4mkfN57sL8IBAaC0KxIK9l67g==", "dev": true, "license": "MIT", "peer": true, "dependencies": { - "adm-zip": "^0.5.9", + "adm-zip": "0.5.12", "commander": "^6.2.1", "fs-extra": "^7.0.1", "inquirer": "^7.3.3", - "office-addin-manifest": "^1.13.3", + "office-addin-manifest": "^1.13.4", "office-addin-manifest-converter": "^0.3.1", "office-addin-usage-data": "^1.6.12", "path": "^0.12.7" @@ -12101,6 +12133,17 @@ "office-addin-project": "cli.js" } }, + "node_modules/office-addin-project/node_modules/adm-zip": { + "version": "0.5.12", + "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.5.12.tgz", + "integrity": "sha512-6TVU49mK6KZb4qG6xWaaM4C7sA/sgUMLy/JYMOzkcp3BvVLpW0fXDFQiIzAuxFCt/2+xD7fNIiPFAoLZPhVNLQ==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=6.0" + } + }, "node_modules/office-addin-project/node_modules/commander": { "version": "6.2.1", "resolved": "https://registry.npmjs.org/commander/-/commander-6.2.1.tgz", @@ -14618,9 +14661,9 @@ } }, "node_modules/type-detect": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", - "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.1.0.tgz", + "integrity": "sha512-Acylog8/luQ8L7il+geoSxhEkazvkslg7PSNKOX59mbB9cOveP5aq9h74Y7YU8yDpJwetzQQrfIwtf4Wp4LKcw==", "dev": true, "license": "MIT", "peer": true, @@ -14781,9 +14824,9 @@ } }, "node_modules/uglify-js": { - "version": "3.18.0", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.18.0.tgz", - "integrity": "sha512-SyVVbcNBCk0dzr9XL/R/ySrmYf0s372K6/hFklzgcp2lBFyXtw4I7BOdDjlLhE1aVqaI/SHWXWmYdlZxuyF38A==", + "version": "3.19.2", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.19.2.tgz", + "integrity": "sha512-S8KA6DDI47nQXJSi2ctQ629YzwOVs+bQML6DAtvy0wgNdpi+0ySpQK0g2pxBq2xfF2z3YCscu7NNA8nXT9PlIQ==", "dev": true, "license": "BSD-2-Clause", "optional": true, @@ -14812,9 +14855,9 @@ } }, "node_modules/underscore": { - "version": "1.13.6", - "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.13.6.tgz", - "integrity": "sha512-+A5Sja4HP1M08MaXya7p5LvjuM7K6q/2EaC0+iovj/wOcMsTzMvDFbasi/oSapiwOlt252IqsKqPjCl7huKS0A==", + "version": "1.13.7", + "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.13.7.tgz", + "integrity": "sha512-GMXzWtsc57XAtguZgaQViUOzs0KTkk8ojr3/xAxXLITqf/3EMwxC0inyETfDFjH/Krbhuep0HNbbjI9i/q3F3g==", "dev": true, "license": "MIT", "peer": true @@ -15741,9 +15784,9 @@ "dev": true }, "node_modules/yaml": { - "version": "2.4.5", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.4.5.tgz", - "integrity": "sha512-aBx2bnqDzVOyNKfsysjA2ms5ZlnjSAW2eG3/L5G/CSujfjLJTJsEw1bGw8kCf04KodQWk1pxlGnZ56CRxiawmg==", + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.5.0.tgz", + "integrity": "sha512-2wWLbGbYDiSqqIKoPjar3MPgB94ErzCtrNE1FdqGuaO0pi2JGjmE8aW8TDZwzU7vuxcGRdL/4gPQwQ7hD5AMSw==", "dev": true, "license": "ISC", "peer": true, @@ -15875,16 +15918,16 @@ }, "dependencies": { "ajv": { - "version": "8.16.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.16.0.tgz", - "integrity": "sha512-F0twR8U1ZU67JIEtekUcLkXkoO5mMMmgGD8sK/xUFzJ805jxHQl92hImFAqqXMyMYjSPOyUPAwHYhB72g5sTXw==", + "version": "8.17.1", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", + "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", "dev": true, "peer": true, "requires": { "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.4.1" + "require-from-string": "^2.0.2" } }, "ajv-draft-04": { @@ -16090,9 +16133,9 @@ } }, "@azure/core-rest-pipeline": { - "version": "1.16.0", - "resolved": "https://registry.npmjs.org/@azure/core-rest-pipeline/-/core-rest-pipeline-1.16.0.tgz", - "integrity": "sha512-CeuTvsXxCUmEuxH5g/aceuSl6w2EugvNHKAtKKVdiX915EjJJxAwfzNNWZreNnbxHZ2fi0zaM6wwS23x2JVqSQ==", + "version": "1.16.3", + "resolved": "https://registry.npmjs.org/@azure/core-rest-pipeline/-/core-rest-pipeline-1.16.3.tgz", + "integrity": "sha512-VxLk4AHLyqcHsfKe4MZ6IQ+D+ShuByy+RfStKfSjxJoL3WBWq17VNmrz8aT8etKzqc2nAeIyLxScjpzsS4fz8w==", "dev": true, "peer": true, "requires": { @@ -16129,9 +16172,9 @@ } }, "@azure/core-util": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@azure/core-util/-/core-util-1.9.0.tgz", - "integrity": "sha512-AfalUQ1ZppaKuxPPMsFEUdX6GZPB3d9paR9d/TTL7Ow2De8cJaC7ibi7kWVlFAVPCYo31OcnGymc0R89DX8Oaw==", + "version": "1.9.2", + "resolved": "https://registry.npmjs.org/@azure/core-util/-/core-util-1.9.2.tgz", + "integrity": "sha512-l1Qrqhi4x1aekkV+OlcqsJa4AnAkj5p0JV8omgwjaV9OAbP41lvrMvs+CptfetKkeEaGRGSzby7sjPZEX7+kkQ==", "dev": true, "peer": true, "requires": { @@ -16152,9 +16195,9 @@ } }, "@azure/core-xml": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/@azure/core-xml/-/core-xml-1.4.2.tgz", - "integrity": "sha512-CW3MZhApe/S4iikbYKE7s83fjDBPIr2kpidX+hlGRwh7N4o1nIpQ/PfJTeioqhfqdMvRtheEl+ft64fyTaLNaA==", + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/@azure/core-xml/-/core-xml-1.4.3.tgz", + "integrity": "sha512-D6G7FEmDiTctPKuWegX2WTrS1enKZwqYwdKTO6ZN6JMigcCehlT0/CYl+zWpI9vQ9frwwp7GQT3/owaEXgnOsA==", "dev": true, "peer": true, "requires": { @@ -16163,9 +16206,9 @@ } }, "@azure/identity": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/@azure/identity/-/identity-4.3.0.tgz", - "integrity": "sha512-LHZ58/RsIpIWa4hrrE2YuJ/vzG1Jv9f774RfTTAVDZDriubvJ0/S5u4pnw4akJDlS0TiJb6VMphmVUFsWmgodQ==", + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/@azure/identity/-/identity-4.4.1.tgz", + "integrity": "sha512-DwnG4cKFEM7S3T+9u05NstXU/HN0dk45kPOinUyNKsn5VWwpXd9sbPKEg6kgJzGbm1lMuhx9o31PVbCtM5sfBA==", "dev": true, "peer": true, "requires": { @@ -16176,7 +16219,7 @@ "@azure/core-tracing": "^1.0.0", "@azure/core-util": "^1.3.0", "@azure/logger": "^1.0.0", - "@azure/msal-browser": "^3.11.1", + "@azure/msal-browser": "^3.14.0", "@azure/msal-node": "^2.9.2", "events": "^3.0.0", "jws": "^4.0.0", @@ -16186,9 +16229,9 @@ } }, "@azure/logger": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@azure/logger/-/logger-1.1.2.tgz", - "integrity": "sha512-l170uE7bsKpIU6B/giRc9i4NI0Mj+tANMMMxf7Zi/5cKzEqPayP7+X1WPrG7e+91JgY8N+7K7nF2WOi7iVhXvg==", + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/@azure/logger/-/logger-1.1.4.tgz", + "integrity": "sha512-4IXXzcCdLdlXuCG+8UKEwLA1T1NHqUfanhXYHiQTn+6sfWCZXduqbtXDGceg3Ce5QxTGo7EqmbV6Bi+aqKuClQ==", "dev": true, "peer": true, "requires": { @@ -16196,38 +16239,38 @@ } }, "@azure/msal-browser": { - "version": "3.17.0", - "resolved": "https://registry.npmjs.org/@azure/msal-browser/-/msal-browser-3.17.0.tgz", - "integrity": "sha512-csccKXmW2z7EkZ0I3yAoW/offQt+JECdTIV/KrnRoZyM7wCSsQWODpwod8ZhYy7iOyamcHApR9uCh0oD1M+0/A==", + "version": "3.20.0", + "resolved": "https://registry.npmjs.org/@azure/msal-browser/-/msal-browser-3.20.0.tgz", + "integrity": "sha512-ErsxbfCGIwdqD8jipqdxpfAGiUEQS7MWUe39Rjhl0ZVPsb1JEe9bZCe2+0g23HDH6DGyCAtnTNN9scPtievrMQ==", "dev": true, "peer": true, "requires": { - "@azure/msal-common": "14.12.0" + "@azure/msal-common": "14.14.0" } }, "@azure/msal-common": { - "version": "14.12.0", - "resolved": "https://registry.npmjs.org/@azure/msal-common/-/msal-common-14.12.0.tgz", - "integrity": "sha512-IDDXmzfdwmDkv4SSmMEyAniJf6fDu3FJ7ncOjlxkDuT85uSnLEhZi3fGZpoR7T4XZpOMx9teM9GXBgrfJgyeBw==", + "version": "14.14.0", + "resolved": "https://registry.npmjs.org/@azure/msal-common/-/msal-common-14.14.0.tgz", + "integrity": "sha512-OxcOk9H1/1fktHh6//VCORgSNJc2dCQObTm6JNmL824Z6iZSO6eFo/Bttxe0hETn9B+cr7gDouTQtsRq3YPuSQ==", "dev": true, "peer": true }, "@azure/msal-node": { - "version": "2.9.2", - "resolved": "https://registry.npmjs.org/@azure/msal-node/-/msal-node-2.9.2.tgz", - "integrity": "sha512-8tvi6Cos3m+0KmRbPjgkySXi+UQU/QiuVRFnrxIwt5xZlEEFa69O04RTaNESGgImyBBlYbo2mfE8/U8Bbdk1WQ==", + "version": "2.12.0", + "resolved": "https://registry.npmjs.org/@azure/msal-node/-/msal-node-2.12.0.tgz", + "integrity": "sha512-jmk5Im5KujRA2AcyCb0awA3buV8niSrwXZs+NBJWIvxOz76RvNlusGIqi43A0h45BPUy93Qb+CPdpJn82NFTIg==", "dev": true, "peer": true, "requires": { - "@azure/msal-common": "14.12.0", + "@azure/msal-common": "14.14.0", "jsonwebtoken": "^9.0.0", "uuid": "^8.3.0" } }, "@azure/storage-blob": { - "version": "12.23.0", - "resolved": "https://registry.npmjs.org/@azure/storage-blob/-/storage-blob-12.23.0.tgz", - "integrity": "sha512-c1KJ5R5hqR/HtvmFtTn/Y1BNMq45NUBp0LZH7yF8WFMET+wmESgEr0FVTu/Z5NonmfUjbgJZG5Nh8xHc5RdWGQ==", + "version": "12.24.0", + "resolved": "https://registry.npmjs.org/@azure/storage-blob/-/storage-blob-12.24.0.tgz", + "integrity": "sha512-l8cmWM4C7RoNCBOImoFMxhTXe1Lr+8uQ/IgnhRNMpfoA9bAFWoLG4XrWm6O5rKXortreVQuD+fc1hbzWklOZbw==", "dev": true, "peer": true, "requires": { @@ -16238,7 +16281,7 @@ "@azure/core-lro": "^2.2.0", "@azure/core-paging": "^1.1.1", "@azure/core-rest-pipeline": "^1.10.1", - "@azure/core-tracing": "^1.0.0", + "@azure/core-tracing": "^1.1.2", "@azure/core-util": "^1.6.1", "@azure/core-xml": "^1.3.2", "@azure/logger": "^1.0.0", @@ -18537,11 +18580,14 @@ } }, "@inquirer/type": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/@inquirer/type/-/type-1.3.3.tgz", - "integrity": "sha512-xTUt0NulylX27/zMx04ZYar/kr1raaiFTVvQ5feljQsiAgdm0WPj4S73/ye0fbslh+15QrIuDvfCXTek7pMY5A==", + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/@inquirer/type/-/type-1.5.2.tgz", + "integrity": "sha512-w9qFkumYDCNyDZmNQjf/n6qQuvQ4dMC3BJesY4oF+yr0CxR5vxujflAVeIcS6U336uzi9GM0kAfZlLrZ9UTkpA==", "dev": true, - "peer": true + "peer": true, + "requires": { + "mute-stream": "^1.0.0" + } }, "@isaacs/cliui": { "version": "8.0.2", @@ -18857,9 +18903,9 @@ "peer": true }, "semver": { - "version": "7.6.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", - "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", "dev": true, "peer": true }, @@ -18952,16 +18998,16 @@ }, "dependencies": { "ajv": { - "version": "8.16.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.16.0.tgz", - "integrity": "sha512-F0twR8U1ZU67JIEtekUcLkXkoO5mMMmgGD8sK/xUFzJ805jxHQl92hImFAqqXMyMYjSPOyUPAwHYhB72g5sTXw==", + "version": "8.17.1", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", + "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", "dev": true, "peer": true, "requires": { "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.4.1" + "require-from-string": "^2.0.2" } }, "json-schema-traverse": { @@ -18972,9 +19018,9 @@ "peer": true }, "semver": { - "version": "7.6.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", - "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", "dev": true, "peer": true } @@ -19662,10 +19708,11 @@ "peer": true }, "adm-zip": { - "version": "0.5.14", - "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.5.14.tgz", - "integrity": "sha512-DnyqqifT4Jrcvb8USYjp6FHtBpEIz1mnXu6pTRHZ0RL69LbQYiO+0lDFg5+OKA7U29oWSs3a/i8fhn8ZcceIWg==", - "dev": true + "version": "0.5.15", + "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.5.15.tgz", + "integrity": "sha512-jYPWSeOA8EFoZnucrKCNihqBjoEGQSU4HKgHYQgKNEQ0pQF9a/DYuo/+fAxY76k4qe75LUlLWpAM1QWcBMTOKw==", + "dev": true, + "peer": true }, "agent-base": { "version": "7.1.1", @@ -19971,9 +20018,9 @@ } }, "axios": { - "version": "1.7.2", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.7.2.tgz", - "integrity": "sha512-2A8QhOMrbomlDuiLeK9XibIBzuHeRcqqNOHp0Cyp5EoJ1IFDh+XZH3A6BkXtv0K4gFGCI0Y4BM7B1wOEi0Rmgw==", + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.7.3.tgz", + "integrity": "sha512-Ar7ND9pU99eJ9GpoGQKhKf58GpUOgnzuaB7ueNQ5BMi0p+LZ5oaEnfF999fAArcTIBwXTCHAmGcHOZJaWPq9Nw==", "dev": true, "peer": true, "requires": { @@ -20261,9 +20308,9 @@ "dev": true }, "chai": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/chai/-/chai-4.4.1.tgz", - "integrity": "sha512-13sOfMv2+DWduEU+/xbun3LScLoqN17nBeTLUsmDfKdoiC1fr0n9PU4guu4AhRcOVFk/sW8LyZWHuhWtQZiF+g==", + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/chai/-/chai-4.5.0.tgz", + "integrity": "sha512-RITGBfijLkBddZvnn8jdqoTypxvqbOLYQkGGxXzeFjVHvudaPw0HNFD9x928/eUwYWd2dPCugVqspGALTZZQKw==", "dev": true, "peer": true, "requires": { @@ -20273,7 +20320,7 @@ "get-func-name": "^2.0.2", "loupe": "^2.3.6", "pathval": "^1.1.1", - "type-detect": "^4.0.8" + "type-detect": "^4.1.0" } }, "chalk": { @@ -20514,9 +20561,9 @@ "dev": true }, "comment-json": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/comment-json/-/comment-json-4.2.3.tgz", - "integrity": "sha512-SsxdiOf064DWoZLH799Ata6u7iV658A11PlWtZATDlXPpKGJnbJZ5Z24ybixAi+LUUqJ/GKowAejtC5GFUG7Tw==", + "version": "4.2.5", + "resolved": "https://registry.npmjs.org/comment-json/-/comment-json-4.2.5.tgz", + "integrity": "sha512-bKw/r35jR3HGt5PEPm1ljsQQGyCrR8sFGNiN5L+ykDHdpO8Smxkrkla9Yi6NkQyUrb8V54PGhfMs6NrIwtxtdw==", "dev": true, "peer": true, "requires": { @@ -21874,10 +21921,17 @@ "dev": true, "peer": true }, + "fast-uri": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.0.1.tgz", + "integrity": "sha512-MWipKbbYiYI0UC7cl8m/i/IWTqfC8YXsqjzybjddLsFjStroQzsHXkc73JutMvBiXmOvapk+axIl79ig5t55Bw==", + "dev": true, + "peer": true + }, "fast-xml-parser": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-4.4.0.tgz", - "integrity": "sha512-kLY3jFlwIYwBNDojclKsNAC12sfD6NwW74QB2CoNGPvtVxjliYehVunB3HYyNi+n4Tt1dAcgwYvmKF/Z18flqg==", + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-4.4.1.tgz", + "integrity": "sha512-xkjOecfnKGkSsOwtZ5Pz7Us/T6mrbPQrq0nh+aCO5V9nk5NLWmasAHumTKjiPJPWANe+kAZ84Jc8ooJkzZ88Sw==", "dev": true, "peer": true, "requires": { @@ -22624,9 +22678,9 @@ "peer": true }, "https-proxy-agent": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.4.tgz", - "integrity": "sha512-wlwpilI7YdjSkWaQ/7omYBMTliDcmCN8OLihO6I9B86g06lMyAoqgoDpV0XqoaPOKj+0DIdAvnsWfyAAhmimcg==", + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.5.tgz", + "integrity": "sha512-1e4Wqeblerz+tMKPIq2EMGiiWW1dIjZOksyHWSUm1rmuvw/how9hBHZ38lAGj5ID4Ik6EdkOw7NmWPy6LAwalw==", "dev": true, "peer": true, "requires": { @@ -23316,9 +23370,9 @@ } }, "semver": { - "version": "7.6.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", - "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", "dev": true, "peer": true } @@ -23788,9 +23842,9 @@ }, "dependencies": { "semver": { - "version": "7.6.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", - "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", "dev": true, "optional": true, "peer": true @@ -24071,22 +24125,28 @@ } }, "office-addin-debugging": { - "version": "5.1.3", - "resolved": "https://registry.npmjs.org/office-addin-debugging/-/office-addin-debugging-5.1.3.tgz", - "integrity": "sha512-Y/uW4Gt93MIkHcSk8Kb+k/MuNQTWwtl9WmfdKFqC3UI4V8UO01jGkCk1uRuNhO186pLWD1SBZLG+jbmI7EC+qw==", + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/office-addin-debugging/-/office-addin-debugging-5.1.4.tgz", + "integrity": "sha512-nFxUmDxWRUxMZq+nCXcUXEjLU1ZLtM1hKEBrxwsUfyH62wbQBDLH1k0GeU38Rb29wIbrIY7kG3L6SAzf2xYU2A==", "dev": true, "requires": { - "adm-zip": "^0.5.9", + "adm-zip": "0.5.12", "commander": "^6.2.0", "node-fetch": "^2.6.1", "office-addin-cli": "^1.6.3", "office-addin-dev-certs": "^1.13.3", - "office-addin-dev-settings": "^2.3.3", - "office-addin-manifest": "^1.13.3", - "office-addin-node-debugger": "^0.9.3", + "office-addin-dev-settings": "^2.3.4", + "office-addin-manifest": "^1.13.4", + "office-addin-node-debugger": "^0.9.4", "office-addin-usage-data": "^1.6.12" }, "dependencies": { + "adm-zip": { + "version": "0.5.12", + "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.5.12.tgz", + "integrity": "sha512-6TVU49mK6KZb4qG6xWaaM4C7sA/sgUMLy/JYMOzkcp3BvVLpW0fXDFQiIzAuxFCt/2+xD7fNIiPFAoLZPhVNLQ==", + "dev": true + }, "commander": { "version": "6.2.1", "resolved": "https://registry.npmjs.org/commander/-/commander-6.2.1.tgz", @@ -24128,17 +24188,17 @@ } }, "office-addin-dev-settings": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/office-addin-dev-settings/-/office-addin-dev-settings-2.3.3.tgz", - "integrity": "sha512-Zw+GnG0NnT471tkSPPuatNqXH4VZsCqCmItx+nGEj6fCwFowPbmP6eBcypIGS47x/T3+V9KNIKsoUKKps4Kefw==", + "version": "2.3.4", + "resolved": "https://registry.npmjs.org/office-addin-dev-settings/-/office-addin-dev-settings-2.3.4.tgz", + "integrity": "sha512-MpO1wj5mrNJeNisvhziFo1lg/4ARH/kILBEygL+WmS1F36nAi9EfY+kH0GkVSHd0WF8d/eaOBFRxOxrkdtidLQ==", "dev": true, "requires": { - "adm-zip": "0.5.10", + "adm-zip": "0.5.12", "commander": "^6.2.0", "fs-extra": "^11.2.0", "inquirer": "^7.3.3", "junk": "^3.1.0", - "office-addin-manifest": "^1.13.3", + "office-addin-manifest": "^1.13.4", "office-addin-usage-data": "^1.6.12", "open": "^6.4.0", "string_decoder": "1.3.0", @@ -24147,9 +24207,9 @@ }, "dependencies": { "adm-zip": { - "version": "0.5.10", - "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.5.10.tgz", - "integrity": "sha512-x0HvcHqVJNTPk/Bw8JbLWlWoo6Wwnsug0fnYYro1HBrjxZ3G7/AZk7Ahv8JwDe1uIcz8eBqvu86FuF1POiG7vQ==", + "version": "0.5.12", + "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.5.12.tgz", + "integrity": "sha512-6TVU49mK6KZb4qG6xWaaM4C7sA/sgUMLy/JYMOzkcp3BvVLpW0fXDFQiIzAuxFCt/2+xD7fNIiPFAoLZPhVNLQ==", "dev": true }, "commander": { @@ -24238,13 +24298,13 @@ } }, "office-addin-manifest": { - "version": "1.13.3", - "resolved": "https://registry.npmjs.org/office-addin-manifest/-/office-addin-manifest-1.13.3.tgz", - "integrity": "sha512-pcIJTkLCKddGWyTQYkxWRcumZo9NzPdkQN43c17oylpvH2W0HgsZyBIazkwAjqAETy0VX40NbSQ8ejf4c9jvcA==", + "version": "1.13.4", + "resolved": "https://registry.npmjs.org/office-addin-manifest/-/office-addin-manifest-1.13.4.tgz", + "integrity": "sha512-bzjc+ypvJT+UBUSsfugftOZh/CZECR5GwJ7PMYcFuB/zGPuh41jeAxbuXhlAy8AeJpQgEsTK3B7N1aDr+JPqjg==", "dev": true, "requires": { "@microsoft/teams-manifest": "^0.1.3", - "adm-zip": "^0.5.9", + "adm-zip": "0.5.12", "chalk": "^2.4.2", "commander": "^6.2.0", "fs-extra": "^7.0.1", @@ -24255,6 +24315,12 @@ "xml2js": "^0.5.0" }, "dependencies": { + "adm-zip": { + "version": "0.5.12", + "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.5.12.tgz", + "integrity": "sha512-6TVU49mK6KZb4qG6xWaaM4C7sA/sgUMLy/JYMOzkcp3BvVLpW0fXDFQiIzAuxFCt/2+xD7fNIiPFAoLZPhVNLQ==", + "dev": true + }, "commander": { "version": "6.2.1", "resolved": "https://registry.npmjs.org/commander/-/commander-6.2.1.tgz", @@ -24311,9 +24377,9 @@ } }, "office-addin-node-debugger": { - "version": "0.9.3", - "resolved": "https://registry.npmjs.org/office-addin-node-debugger/-/office-addin-node-debugger-0.9.3.tgz", - "integrity": "sha512-S0e1lh7ykrcfaccF6jYvK40WJHh0JkZCdUENsYiThqKRB1843Rk0OLYZGHqEqSZYMondO21zUEVYLrwjaaMmwg==", + "version": "0.9.4", + "resolved": "https://registry.npmjs.org/office-addin-node-debugger/-/office-addin-node-debugger-0.9.4.tgz", + "integrity": "sha512-OXqlwOSyBas8GO+GD+8+sIqRr7Oh8eTe/8MaA3de+AUKl1IdwxpmkcTdTeFJQeSmuGmD2aaoytGDFLN5E1FT0A==", "dev": true, "requires": { "commander": "^6.2.0", @@ -24337,22 +24403,29 @@ "dev": true }, "office-addin-project": { - "version": "0.8.3", - "resolved": "https://registry.npmjs.org/office-addin-project/-/office-addin-project-0.8.3.tgz", - "integrity": "sha512-PgGk/LXnfxcKAYfERTPpI7CjXQbMinchIDnDGzS7kigSure5VQsuKi2c8l/F8/8KO+UzKJQa8obqFhwwiAd66A==", + "version": "0.8.4", + "resolved": "https://registry.npmjs.org/office-addin-project/-/office-addin-project-0.8.4.tgz", + "integrity": "sha512-RJ5Z9jb9T/SPQt6w5s/cPeO8XWwcGmM7YoWyHxi+OlqcbgPw3amHbCxAVM96R4mkfN57sL8IBAaC0KxIK9l67g==", "dev": true, "peer": true, "requires": { - "adm-zip": "^0.5.9", + "adm-zip": "0.5.12", "commander": "^6.2.1", "fs-extra": "^7.0.1", "inquirer": "^7.3.3", - "office-addin-manifest": "^1.13.3", + "office-addin-manifest": "^1.13.4", "office-addin-manifest-converter": "^0.3.1", "office-addin-usage-data": "^1.6.12", "path": "^0.12.7" }, "dependencies": { + "adm-zip": { + "version": "0.5.12", + "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.5.12.tgz", + "integrity": "sha512-6TVU49mK6KZb4qG6xWaaM4C7sA/sgUMLy/JYMOzkcp3BvVLpW0fXDFQiIzAuxFCt/2+xD7fNIiPFAoLZPhVNLQ==", + "dev": true, + "peer": true + }, "commander": { "version": "6.2.1", "resolved": "https://registry.npmjs.org/commander/-/commander-6.2.1.tgz", @@ -26201,9 +26274,9 @@ } }, "type-detect": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", - "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.1.0.tgz", + "integrity": "sha512-Acylog8/luQ8L7il+geoSxhEkazvkslg7PSNKOX59mbB9cOveP5aq9h74Y7YU8yDpJwetzQQrfIwtf4Wp4LKcw==", "dev": true, "peer": true }, @@ -26300,9 +26373,9 @@ } }, "uglify-js": { - "version": "3.18.0", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.18.0.tgz", - "integrity": "sha512-SyVVbcNBCk0dzr9XL/R/ySrmYf0s372K6/hFklzgcp2lBFyXtw4I7BOdDjlLhE1aVqaI/SHWXWmYdlZxuyF38A==", + "version": "3.19.2", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.19.2.tgz", + "integrity": "sha512-S8KA6DDI47nQXJSi2ctQ629YzwOVs+bQML6DAtvy0wgNdpi+0ySpQK0g2pxBq2xfF2z3YCscu7NNA8nXT9PlIQ==", "dev": true, "optional": true, "peer": true @@ -26320,9 +26393,9 @@ } }, "underscore": { - "version": "1.13.6", - "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.13.6.tgz", - "integrity": "sha512-+A5Sja4HP1M08MaXya7p5LvjuM7K6q/2EaC0+iovj/wOcMsTzMvDFbasi/oSapiwOlt252IqsKqPjCl7huKS0A==", + "version": "1.13.7", + "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.13.7.tgz", + "integrity": "sha512-GMXzWtsc57XAtguZgaQViUOzs0KTkk8ojr3/xAxXLITqf/3EMwxC0inyETfDFjH/Krbhuep0HNbbjI9i/q3F3g==", "dev": true, "peer": true }, @@ -26939,9 +27012,9 @@ "dev": true }, "yaml": { - "version": "2.4.5", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.4.5.tgz", - "integrity": "sha512-aBx2bnqDzVOyNKfsysjA2ms5ZlnjSAW2eG3/L5G/CSujfjLJTJsEw1bGw8kCf04KodQWk1pxlGnZ56CRxiawmg==", + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.5.0.tgz", + "integrity": "sha512-2wWLbGbYDiSqqIKoPjar3MPgB94ErzCtrNE1FdqGuaO0pi2JGjmE8aW8TDZwzU7vuxcGRdL/4gPQwQ7hD5AMSw==", "dev": true, "peer": true }, diff --git a/Samples/word-add-in-load-and-write-open-xml/C#/LoadingAndWritingOOXMLWeb/App/LoadingAndWritingOOXML/LoadingAndWritingOOXML.html b/Samples/word-add-in-load-and-write-open-xml/C#/LoadingAndWritingOOXMLWeb/App/LoadingAndWritingOOXML/LoadingAndWritingOOXML.html index 0304aae8f..ad41f793e 100644 --- a/Samples/word-add-in-load-and-write-open-xml/C#/LoadingAndWritingOOXMLWeb/App/LoadingAndWritingOOXML/LoadingAndWritingOOXML.html +++ b/Samples/word-add-in-load-and-write-open-xml/C#/LoadingAndWritingOOXMLWeb/App/LoadingAndWritingOOXML/LoadingAndWritingOOXML.html @@ -6,7 +6,7 @@ Sample that shows loading and writing OOXML - + diff --git a/Samples/word-citation-management/package-lock.json b/Samples/word-citation-management/package-lock.json index 2438b18a8..4f3db29b8 100644 --- a/Samples/word-citation-management/package-lock.json +++ b/Samples/word-citation-management/package-lock.json @@ -134,17 +134,17 @@ } }, "node_modules/@apidevtools/swagger-parser/node_modules/ajv": { - "version": "8.16.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.16.0.tgz", - "integrity": "sha512-F0twR8U1ZU67JIEtekUcLkXkoO5mMMmgGD8sK/xUFzJ805jxHQl92hImFAqqXMyMYjSPOyUPAwHYhB72g5sTXw==", + "version": "8.17.1", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", + "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", "dev": true, "license": "MIT", "peer": true, "dependencies": { "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.4.1" + "require-from-string": "^2.0.2" }, "funding": { "type": "github", @@ -409,9 +409,9 @@ } }, "node_modules/@azure/core-rest-pipeline": { - "version": "1.16.0", - "resolved": "https://registry.npmjs.org/@azure/core-rest-pipeline/-/core-rest-pipeline-1.16.0.tgz", - "integrity": "sha512-CeuTvsXxCUmEuxH5g/aceuSl6w2EugvNHKAtKKVdiX915EjJJxAwfzNNWZreNnbxHZ2fi0zaM6wwS23x2JVqSQ==", + "version": "1.16.3", + "resolved": "https://registry.npmjs.org/@azure/core-rest-pipeline/-/core-rest-pipeline-1.16.3.tgz", + "integrity": "sha512-VxLk4AHLyqcHsfKe4MZ6IQ+D+ShuByy+RfStKfSjxJoL3WBWq17VNmrz8aT8etKzqc2nAeIyLxScjpzsS4fz8w==", "dev": true, "license": "MIT", "peer": true, @@ -458,9 +458,9 @@ } }, "node_modules/@azure/core-util": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@azure/core-util/-/core-util-1.9.0.tgz", - "integrity": "sha512-AfalUQ1ZppaKuxPPMsFEUdX6GZPB3d9paR9d/TTL7Ow2De8cJaC7ibi7kWVlFAVPCYo31OcnGymc0R89DX8Oaw==", + "version": "1.9.2", + "resolved": "https://registry.npmjs.org/@azure/core-util/-/core-util-1.9.2.tgz", + "integrity": "sha512-l1Qrqhi4x1aekkV+OlcqsJa4AnAkj5p0JV8omgwjaV9OAbP41lvrMvs+CptfetKkeEaGRGSzby7sjPZEX7+kkQ==", "dev": true, "license": "MIT", "peer": true, @@ -487,9 +487,9 @@ } }, "node_modules/@azure/core-xml": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/@azure/core-xml/-/core-xml-1.4.2.tgz", - "integrity": "sha512-CW3MZhApe/S4iikbYKE7s83fjDBPIr2kpidX+hlGRwh7N4o1nIpQ/PfJTeioqhfqdMvRtheEl+ft64fyTaLNaA==", + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/@azure/core-xml/-/core-xml-1.4.3.tgz", + "integrity": "sha512-D6G7FEmDiTctPKuWegX2WTrS1enKZwqYwdKTO6ZN6JMigcCehlT0/CYl+zWpI9vQ9frwwp7GQT3/owaEXgnOsA==", "dev": true, "license": "MIT", "peer": true, @@ -502,9 +502,9 @@ } }, "node_modules/@azure/identity": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/@azure/identity/-/identity-4.3.0.tgz", - "integrity": "sha512-LHZ58/RsIpIWa4hrrE2YuJ/vzG1Jv9f774RfTTAVDZDriubvJ0/S5u4pnw4akJDlS0TiJb6VMphmVUFsWmgodQ==", + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/@azure/identity/-/identity-4.4.1.tgz", + "integrity": "sha512-DwnG4cKFEM7S3T+9u05NstXU/HN0dk45kPOinUyNKsn5VWwpXd9sbPKEg6kgJzGbm1lMuhx9o31PVbCtM5sfBA==", "dev": true, "license": "MIT", "peer": true, @@ -516,7 +516,7 @@ "@azure/core-tracing": "^1.0.0", "@azure/core-util": "^1.3.0", "@azure/logger": "^1.0.0", - "@azure/msal-browser": "^3.11.1", + "@azure/msal-browser": "^3.14.0", "@azure/msal-node": "^2.9.2", "events": "^3.0.0", "jws": "^4.0.0", @@ -529,9 +529,9 @@ } }, "node_modules/@azure/logger": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@azure/logger/-/logger-1.1.2.tgz", - "integrity": "sha512-l170uE7bsKpIU6B/giRc9i4NI0Mj+tANMMMxf7Zi/5cKzEqPayP7+X1WPrG7e+91JgY8N+7K7nF2WOi7iVhXvg==", + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/@azure/logger/-/logger-1.1.4.tgz", + "integrity": "sha512-4IXXzcCdLdlXuCG+8UKEwLA1T1NHqUfanhXYHiQTn+6sfWCZXduqbtXDGceg3Ce5QxTGo7EqmbV6Bi+aqKuClQ==", "dev": true, "license": "MIT", "peer": true, @@ -543,23 +543,23 @@ } }, "node_modules/@azure/msal-browser": { - "version": "3.17.0", - "resolved": "https://registry.npmjs.org/@azure/msal-browser/-/msal-browser-3.17.0.tgz", - "integrity": "sha512-csccKXmW2z7EkZ0I3yAoW/offQt+JECdTIV/KrnRoZyM7wCSsQWODpwod8ZhYy7iOyamcHApR9uCh0oD1M+0/A==", + "version": "3.20.0", + "resolved": "https://registry.npmjs.org/@azure/msal-browser/-/msal-browser-3.20.0.tgz", + "integrity": "sha512-ErsxbfCGIwdqD8jipqdxpfAGiUEQS7MWUe39Rjhl0ZVPsb1JEe9bZCe2+0g23HDH6DGyCAtnTNN9scPtievrMQ==", "dev": true, "license": "MIT", "peer": true, "dependencies": { - "@azure/msal-common": "14.12.0" + "@azure/msal-common": "14.14.0" }, "engines": { "node": ">=0.8.0" } }, "node_modules/@azure/msal-common": { - "version": "14.12.0", - "resolved": "https://registry.npmjs.org/@azure/msal-common/-/msal-common-14.12.0.tgz", - "integrity": "sha512-IDDXmzfdwmDkv4SSmMEyAniJf6fDu3FJ7ncOjlxkDuT85uSnLEhZi3fGZpoR7T4XZpOMx9teM9GXBgrfJgyeBw==", + "version": "14.14.0", + "resolved": "https://registry.npmjs.org/@azure/msal-common/-/msal-common-14.14.0.tgz", + "integrity": "sha512-OxcOk9H1/1fktHh6//VCORgSNJc2dCQObTm6JNmL824Z6iZSO6eFo/Bttxe0hETn9B+cr7gDouTQtsRq3YPuSQ==", "dev": true, "license": "MIT", "peer": true, @@ -568,14 +568,14 @@ } }, "node_modules/@azure/msal-node": { - "version": "2.9.2", - "resolved": "https://registry.npmjs.org/@azure/msal-node/-/msal-node-2.9.2.tgz", - "integrity": "sha512-8tvi6Cos3m+0KmRbPjgkySXi+UQU/QiuVRFnrxIwt5xZlEEFa69O04RTaNESGgImyBBlYbo2mfE8/U8Bbdk1WQ==", + "version": "2.12.0", + "resolved": "https://registry.npmjs.org/@azure/msal-node/-/msal-node-2.12.0.tgz", + "integrity": "sha512-jmk5Im5KujRA2AcyCb0awA3buV8niSrwXZs+NBJWIvxOz76RvNlusGIqi43A0h45BPUy93Qb+CPdpJn82NFTIg==", "dev": true, "license": "MIT", "peer": true, "dependencies": { - "@azure/msal-common": "14.12.0", + "@azure/msal-common": "14.14.0", "jsonwebtoken": "^9.0.0", "uuid": "^8.3.0" }, @@ -584,9 +584,9 @@ } }, "node_modules/@azure/storage-blob": { - "version": "12.23.0", - "resolved": "https://registry.npmjs.org/@azure/storage-blob/-/storage-blob-12.23.0.tgz", - "integrity": "sha512-c1KJ5R5hqR/HtvmFtTn/Y1BNMq45NUBp0LZH7yF8WFMET+wmESgEr0FVTu/Z5NonmfUjbgJZG5Nh8xHc5RdWGQ==", + "version": "12.24.0", + "resolved": "https://registry.npmjs.org/@azure/storage-blob/-/storage-blob-12.24.0.tgz", + "integrity": "sha512-l8cmWM4C7RoNCBOImoFMxhTXe1Lr+8uQ/IgnhRNMpfoA9bAFWoLG4XrWm6O5rKXortreVQuD+fc1hbzWklOZbw==", "dev": true, "license": "MIT", "peer": true, @@ -598,7 +598,7 @@ "@azure/core-lro": "^2.2.0", "@azure/core-paging": "^1.1.1", "@azure/core-rest-pipeline": "^1.10.1", - "@azure/core-tracing": "^1.0.0", + "@azure/core-tracing": "^1.1.2", "@azure/core-util": "^1.6.1", "@azure/core-xml": "^1.3.2", "@azure/logger": "^1.0.0", @@ -4000,12 +4000,15 @@ } }, "node_modules/@inquirer/type": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/@inquirer/type/-/type-1.3.3.tgz", - "integrity": "sha512-xTUt0NulylX27/zMx04ZYar/kr1raaiFTVvQ5feljQsiAgdm0WPj4S73/ye0fbslh+15QrIuDvfCXTek7pMY5A==", + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/@inquirer/type/-/type-1.5.2.tgz", + "integrity": "sha512-w9qFkumYDCNyDZmNQjf/n6qQuvQ4dMC3BJesY4oF+yr0CxR5vxujflAVeIcS6U336uzi9GM0kAfZlLrZ9UTkpA==", "dev": true, "license": "MIT", "peer": true, + "dependencies": { + "mute-stream": "^1.0.0" + }, "engines": { "node": ">=18" } @@ -4428,9 +4431,9 @@ } }, "node_modules/@microsoft/teamsapp-cli/node_modules/semver": { - "version": "7.6.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", - "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", "dev": true, "license": "ISC", "peer": true, @@ -4534,17 +4537,17 @@ } }, "node_modules/@microsoft/teamsfx-core/node_modules/ajv": { - "version": "8.16.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.16.0.tgz", - "integrity": "sha512-F0twR8U1ZU67JIEtekUcLkXkoO5mMMmgGD8sK/xUFzJ805jxHQl92hImFAqqXMyMYjSPOyUPAwHYhB72g5sTXw==", + "version": "8.17.1", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", + "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", "dev": true, "license": "MIT", "peer": true, "dependencies": { "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.4.1" + "require-from-string": "^2.0.2" }, "funding": { "type": "github", @@ -4560,9 +4563,9 @@ "peer": true }, "node_modules/@microsoft/teamsfx-core/node_modules/semver": { - "version": "7.6.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", - "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", "dev": true, "license": "ISC", "peer": true, @@ -5466,11 +5469,12 @@ } }, "node_modules/adm-zip": { - "version": "0.5.14", - "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.5.14.tgz", - "integrity": "sha512-DnyqqifT4Jrcvb8USYjp6FHtBpEIz1mnXu6pTRHZ0RL69LbQYiO+0lDFg5+OKA7U29oWSs3a/i8fhn8ZcceIWg==", + "version": "0.5.15", + "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.5.15.tgz", + "integrity": "sha512-jYPWSeOA8EFoZnucrKCNihqBjoEGQSU4HKgHYQgKNEQ0pQF9a/DYuo/+fAxY76k4qe75LUlLWpAM1QWcBMTOKw==", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">=12.0" } @@ -5903,9 +5907,9 @@ } }, "node_modules/axios": { - "version": "1.7.2", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.7.2.tgz", - "integrity": "sha512-2A8QhOMrbomlDuiLeK9XibIBzuHeRcqqNOHp0Cyp5EoJ1IFDh+XZH3A6BkXtv0K4gFGCI0Y4BM7B1wOEi0Rmgw==", + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.7.3.tgz", + "integrity": "sha512-Ar7ND9pU99eJ9GpoGQKhKf58GpUOgnzuaB7ueNQ5BMi0p+LZ5oaEnfF999fAArcTIBwXTCHAmGcHOZJaWPq9Nw==", "dev": true, "license": "MIT", "peer": true, @@ -6053,9 +6057,9 @@ } }, "node_modules/body-parser": { - "version": "1.20.2", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.2.tgz", - "integrity": "sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==", + "version": "1.20.3", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.3.tgz", + "integrity": "sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g==", "dev": true, "dependencies": { "bytes": "3.1.2", @@ -6066,7 +6070,7 @@ "http-errors": "2.0.0", "iconv-lite": "0.4.24", "on-finished": "2.4.1", - "qs": "6.11.0", + "qs": "6.13.0", "raw-body": "2.5.2", "type-is": "~1.6.18", "unpipe": "1.0.0" @@ -6308,9 +6312,9 @@ ] }, "node_modules/chai": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/chai/-/chai-4.4.1.tgz", - "integrity": "sha512-13sOfMv2+DWduEU+/xbun3LScLoqN17nBeTLUsmDfKdoiC1fr0n9PU4guu4AhRcOVFk/sW8LyZWHuhWtQZiF+g==", + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/chai/-/chai-4.5.0.tgz", + "integrity": "sha512-RITGBfijLkBddZvnn8jdqoTypxvqbOLYQkGGxXzeFjVHvudaPw0HNFD9x928/eUwYWd2dPCugVqspGALTZZQKw==", "dev": true, "license": "MIT", "peer": true, @@ -6321,7 +6325,7 @@ "get-func-name": "^2.0.2", "loupe": "^2.3.6", "pathval": "^1.1.1", - "type-detect": "^4.0.8" + "type-detect": "^4.1.0" }, "engines": { "node": ">=4" @@ -6654,9 +6658,9 @@ } }, "node_modules/comment-json": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/comment-json/-/comment-json-4.2.3.tgz", - "integrity": "sha512-SsxdiOf064DWoZLH799Ata6u7iV658A11PlWtZATDlXPpKGJnbJZ5Z24ybixAi+LUUqJ/GKowAejtC5GFUG7Tw==", + "version": "4.2.5", + "resolved": "https://registry.npmjs.org/comment-json/-/comment-json-4.2.5.tgz", + "integrity": "sha512-bKw/r35jR3HGt5PEPm1ljsQQGyCrR8sFGNiN5L+ykDHdpO8Smxkrkla9Yi6NkQyUrb8V54PGhfMs6NrIwtxtdw==", "dev": true, "license": "MIT", "peer": true, @@ -7457,9 +7461,9 @@ } }, "node_modules/encodeurl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz", + "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==", "dev": true, "engines": { "node": ">= 0.8" @@ -8391,37 +8395,37 @@ } }, "node_modules/express": { - "version": "4.19.2", - "resolved": "https://registry.npmjs.org/express/-/express-4.19.2.tgz", - "integrity": "sha512-5T6nhjsT+EOMzuck8JjBHARTHfMht0POzlA60WV2pMD3gyXw2LZnZ+ueGdNxG+0calOJcWKbpFcuzLZ91YWq9Q==", + "version": "4.21.0", + "resolved": "https://registry.npmjs.org/express/-/express-4.21.0.tgz", + "integrity": "sha512-VqcNGcj/Id5ZT1LZ/cfihi3ttTn+NJmkli2eZADigjq29qTlWi/hAQ43t/VLPq8+UX06FCEx3ByOYet6ZFblng==", "dev": true, "dependencies": { "accepts": "~1.3.8", "array-flatten": "1.1.1", - "body-parser": "1.20.2", + "body-parser": "1.20.3", "content-disposition": "0.5.4", "content-type": "~1.0.4", "cookie": "0.6.0", "cookie-signature": "1.0.6", "debug": "2.6.9", "depd": "2.0.0", - "encodeurl": "~1.0.2", + "encodeurl": "~2.0.0", "escape-html": "~1.0.3", "etag": "~1.8.1", - "finalhandler": "1.2.0", + "finalhandler": "1.3.1", "fresh": "0.5.2", "http-errors": "2.0.0", - "merge-descriptors": "1.0.1", + "merge-descriptors": "1.0.3", "methods": "~1.1.2", "on-finished": "2.4.1", "parseurl": "~1.3.3", - "path-to-regexp": "0.1.7", + "path-to-regexp": "0.1.10", "proxy-addr": "~2.0.7", - "qs": "6.11.0", + "qs": "6.13.0", "range-parser": "~1.2.1", "safe-buffer": "5.2.1", - "send": "0.18.0", - "serve-static": "1.15.0", + "send": "0.19.0", + "serve-static": "1.16.2", "setprototypeof": "1.2.0", "statuses": "2.0.1", "type-is": "~1.6.18", @@ -8537,10 +8541,18 @@ "license": "MIT", "peer": true }, + "node_modules/fast-uri": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.0.1.tgz", + "integrity": "sha512-MWipKbbYiYI0UC7cl8m/i/IWTqfC8YXsqjzybjddLsFjStroQzsHXkc73JutMvBiXmOvapk+axIl79ig5t55Bw==", + "dev": true, + "license": "MIT", + "peer": true + }, "node_modules/fast-xml-parser": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-4.4.0.tgz", - "integrity": "sha512-kLY3jFlwIYwBNDojclKsNAC12sfD6NwW74QB2CoNGPvtVxjliYehVunB3HYyNi+n4Tt1dAcgwYvmKF/Z18flqg==", + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-4.4.1.tgz", + "integrity": "sha512-xkjOecfnKGkSsOwtZ5Pz7Us/T6mrbPQrq0nh+aCO5V9nk5NLWmasAHumTKjiPJPWANe+kAZ84Jc8ooJkzZ88Sw==", "dev": true, "funding": [ { @@ -8672,13 +8684,13 @@ } }, "node_modules/finalhandler": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", - "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.3.1.tgz", + "integrity": "sha512-6BN9trH7bp3qvnrRyzsBz+g3lZxTNZTbVO2EV1CS0WIcDbawYVdYvGflME/9QP0h0pYlCDBCTjYa9nZzMDpyxQ==", "dev": true, "dependencies": { "debug": "2.6.9", - "encodeurl": "~1.0.2", + "encodeurl": "~2.0.0", "escape-html": "~1.0.3", "on-finished": "2.4.1", "parseurl": "~1.3.3", @@ -9637,9 +9649,9 @@ "peer": true }, "node_modules/https-proxy-agent": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.4.tgz", - "integrity": "sha512-wlwpilI7YdjSkWaQ/7omYBMTliDcmCN8OLihO6I9B86g06lMyAoqgoDpV0XqoaPOKj+0DIdAvnsWfyAAhmimcg==", + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.5.tgz", + "integrity": "sha512-1e4Wqeblerz+tMKPIq2EMGiiWW1dIjZOksyHWSUm1rmuvw/how9hBHZ38lAGj5ID4Ik6EdkOw7NmWPy6LAwalw==", "dev": true, "license": "MIT", "peer": true, @@ -10707,9 +10719,9 @@ } }, "node_modules/jsonwebtoken/node_modules/semver": { - "version": "7.6.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", - "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", "dev": true, "license": "ISC", "peer": true, @@ -11030,10 +11042,13 @@ } }, "node_modules/merge-descriptors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", - "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==", - "dev": true + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.3.tgz", + "integrity": "sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } }, "node_modules/merge-stream": { "version": "2.0.0", @@ -11312,9 +11327,9 @@ } }, "node_modules/node-abi/node_modules/semver": { - "version": "7.6.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", - "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", "dev": true, "license": "ISC", "optional": true, @@ -11705,26 +11720,36 @@ } }, "node_modules/office-addin-debugging": { - "version": "5.1.3", - "resolved": "https://registry.npmjs.org/office-addin-debugging/-/office-addin-debugging-5.1.3.tgz", - "integrity": "sha512-Y/uW4Gt93MIkHcSk8Kb+k/MuNQTWwtl9WmfdKFqC3UI4V8UO01jGkCk1uRuNhO186pLWD1SBZLG+jbmI7EC+qw==", + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/office-addin-debugging/-/office-addin-debugging-5.1.4.tgz", + "integrity": "sha512-nFxUmDxWRUxMZq+nCXcUXEjLU1ZLtM1hKEBrxwsUfyH62wbQBDLH1k0GeU38Rb29wIbrIY7kG3L6SAzf2xYU2A==", "dev": true, "license": "MIT", "dependencies": { - "adm-zip": "^0.5.9", + "adm-zip": "0.5.12", "commander": "^6.2.0", "node-fetch": "^2.6.1", "office-addin-cli": "^1.6.3", "office-addin-dev-certs": "^1.13.3", - "office-addin-dev-settings": "^2.3.3", - "office-addin-manifest": "^1.13.3", - "office-addin-node-debugger": "^0.9.3", + "office-addin-dev-settings": "^2.3.4", + "office-addin-manifest": "^1.13.4", + "office-addin-node-debugger": "^0.9.4", "office-addin-usage-data": "^1.6.12" }, "bin": { "office-addin-debugging": "cli.js" } }, + "node_modules/office-addin-debugging/node_modules/adm-zip": { + "version": "0.5.12", + "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.5.12.tgz", + "integrity": "sha512-6TVU49mK6KZb4qG6xWaaM4C7sA/sgUMLy/JYMOzkcp3BvVLpW0fXDFQiIzAuxFCt/2+xD7fNIiPFAoLZPhVNLQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.0" + } + }, "node_modules/office-addin-debugging/node_modules/commander": { "version": "6.2.1", "resolved": "https://registry.npmjs.org/commander/-/commander-6.2.1.tgz", @@ -11777,18 +11802,18 @@ } }, "node_modules/office-addin-dev-settings": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/office-addin-dev-settings/-/office-addin-dev-settings-2.3.3.tgz", - "integrity": "sha512-Zw+GnG0NnT471tkSPPuatNqXH4VZsCqCmItx+nGEj6fCwFowPbmP6eBcypIGS47x/T3+V9KNIKsoUKKps4Kefw==", + "version": "2.3.4", + "resolved": "https://registry.npmjs.org/office-addin-dev-settings/-/office-addin-dev-settings-2.3.4.tgz", + "integrity": "sha512-MpO1wj5mrNJeNisvhziFo1lg/4ARH/kILBEygL+WmS1F36nAi9EfY+kH0GkVSHd0WF8d/eaOBFRxOxrkdtidLQ==", "dev": true, "license": "MIT", "dependencies": { - "adm-zip": "0.5.10", + "adm-zip": "0.5.12", "commander": "^6.2.0", "fs-extra": "^11.2.0", "inquirer": "^7.3.3", "junk": "^3.1.0", - "office-addin-manifest": "^1.13.3", + "office-addin-manifest": "^1.13.4", "office-addin-usage-data": "^1.6.12", "open": "^6.4.0", "string_decoder": "1.3.0", @@ -11803,9 +11828,9 @@ } }, "node_modules/office-addin-dev-settings/node_modules/adm-zip": { - "version": "0.5.10", - "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.5.10.tgz", - "integrity": "sha512-x0HvcHqVJNTPk/Bw8JbLWlWoo6Wwnsug0fnYYro1HBrjxZ3G7/AZk7Ahv8JwDe1uIcz8eBqvu86FuF1POiG7vQ==", + "version": "0.5.12", + "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.5.12.tgz", + "integrity": "sha512-6TVU49mK6KZb4qG6xWaaM4C7sA/sgUMLy/JYMOzkcp3BvVLpW0fXDFQiIzAuxFCt/2+xD7fNIiPFAoLZPhVNLQ==", "dev": true, "license": "MIT", "engines": { @@ -11929,14 +11954,14 @@ } }, "node_modules/office-addin-manifest": { - "version": "1.13.3", - "resolved": "https://registry.npmjs.org/office-addin-manifest/-/office-addin-manifest-1.13.3.tgz", - "integrity": "sha512-pcIJTkLCKddGWyTQYkxWRcumZo9NzPdkQN43c17oylpvH2W0HgsZyBIazkwAjqAETy0VX40NbSQ8ejf4c9jvcA==", + "version": "1.13.4", + "resolved": "https://registry.npmjs.org/office-addin-manifest/-/office-addin-manifest-1.13.4.tgz", + "integrity": "sha512-bzjc+ypvJT+UBUSsfugftOZh/CZECR5GwJ7PMYcFuB/zGPuh41jeAxbuXhlAy8AeJpQgEsTK3B7N1aDr+JPqjg==", "dev": true, "license": "MIT", "dependencies": { "@microsoft/teams-manifest": "^0.1.3", - "adm-zip": "^0.5.9", + "adm-zip": "0.5.12", "chalk": "^2.4.2", "commander": "^6.2.0", "fs-extra": "^7.0.1", @@ -11977,6 +12002,16 @@ "node": "^12.20.0 || >=14" } }, + "node_modules/office-addin-manifest/node_modules/adm-zip": { + "version": "0.5.12", + "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.5.12.tgz", + "integrity": "sha512-6TVU49mK6KZb4qG6xWaaM4C7sA/sgUMLy/JYMOzkcp3BvVLpW0fXDFQiIzAuxFCt/2+xD7fNIiPFAoLZPhVNLQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.0" + } + }, "node_modules/office-addin-manifest/node_modules/commander": { "version": "6.2.1", "resolved": "https://registry.npmjs.org/commander/-/commander-6.2.1.tgz", @@ -12023,9 +12058,9 @@ } }, "node_modules/office-addin-node-debugger": { - "version": "0.9.3", - "resolved": "https://registry.npmjs.org/office-addin-node-debugger/-/office-addin-node-debugger-0.9.3.tgz", - "integrity": "sha512-S0e1lh7ykrcfaccF6jYvK40WJHh0JkZCdUENsYiThqKRB1843Rk0OLYZGHqEqSZYMondO21zUEVYLrwjaaMmwg==", + "version": "0.9.4", + "resolved": "https://registry.npmjs.org/office-addin-node-debugger/-/office-addin-node-debugger-0.9.4.tgz", + "integrity": "sha512-OXqlwOSyBas8GO+GD+8+sIqRr7Oh8eTe/8MaA3de+AUKl1IdwxpmkcTdTeFJQeSmuGmD2aaoytGDFLN5E1FT0A==", "dev": true, "license": "MIT", "dependencies": { @@ -12056,18 +12091,18 @@ "license": "MIT" }, "node_modules/office-addin-project": { - "version": "0.8.3", - "resolved": "https://registry.npmjs.org/office-addin-project/-/office-addin-project-0.8.3.tgz", - "integrity": "sha512-PgGk/LXnfxcKAYfERTPpI7CjXQbMinchIDnDGzS7kigSure5VQsuKi2c8l/F8/8KO+UzKJQa8obqFhwwiAd66A==", + "version": "0.8.4", + "resolved": "https://registry.npmjs.org/office-addin-project/-/office-addin-project-0.8.4.tgz", + "integrity": "sha512-RJ5Z9jb9T/SPQt6w5s/cPeO8XWwcGmM7YoWyHxi+OlqcbgPw3amHbCxAVM96R4mkfN57sL8IBAaC0KxIK9l67g==", "dev": true, "license": "MIT", "peer": true, "dependencies": { - "adm-zip": "^0.5.9", + "adm-zip": "0.5.12", "commander": "^6.2.1", "fs-extra": "^7.0.1", "inquirer": "^7.3.3", - "office-addin-manifest": "^1.13.3", + "office-addin-manifest": "^1.13.4", "office-addin-manifest-converter": "^0.3.1", "office-addin-usage-data": "^1.6.12", "path": "^0.12.7" @@ -12076,6 +12111,17 @@ "office-addin-project": "cli.js" } }, + "node_modules/office-addin-project/node_modules/adm-zip": { + "version": "0.5.12", + "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.5.12.tgz", + "integrity": "sha512-6TVU49mK6KZb4qG6xWaaM4C7sA/sgUMLy/JYMOzkcp3BvVLpW0fXDFQiIzAuxFCt/2+xD7fNIiPFAoLZPhVNLQ==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=6.0" + } + }, "node_modules/office-addin-project/node_modules/commander": { "version": "6.2.1", "resolved": "https://registry.npmjs.org/commander/-/commander-6.2.1.tgz", @@ -12445,9 +12491,9 @@ } }, "node_modules/path-to-regexp": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", - "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==", + "version": "0.1.10", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.10.tgz", + "integrity": "sha512-7lf7qcQidTku0Gu3YDPc8DJ1q7OOucfa/BSsIwjuh56VU7katFvuM8hULfkwB3Fns/rsVF7PwPKVw1sl5KQS9w==", "dev": true }, "node_modules/path-type": { @@ -12673,12 +12719,12 @@ } }, "node_modules/qs": { - "version": "6.11.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", - "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.13.0.tgz", + "integrity": "sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==", "dev": true, "dependencies": { - "side-channel": "^1.0.4" + "side-channel": "^1.0.6" }, "engines": { "node": ">=0.6" @@ -13367,9 +13413,9 @@ } }, "node_modules/send": { - "version": "0.18.0", - "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", - "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", + "version": "0.19.0", + "resolved": "https://registry.npmjs.org/send/-/send-0.19.0.tgz", + "integrity": "sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw==", "dev": true, "dependencies": { "debug": "2.6.9", @@ -13405,6 +13451,15 @@ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", "dev": true }, + "node_modules/send/node_modules/encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, "node_modules/send/node_modules/mime": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", @@ -13511,15 +13566,15 @@ } }, "node_modules/serve-static": { - "version": "1.15.0", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz", - "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==", + "version": "1.16.2", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.16.2.tgz", + "integrity": "sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw==", "dev": true, "dependencies": { - "encodeurl": "~1.0.2", + "encodeurl": "~2.0.0", "escape-html": "~1.0.3", "parseurl": "~1.3.3", - "send": "0.18.0" + "send": "0.19.0" }, "engines": { "node": ">= 0.8.0" @@ -14536,9 +14591,9 @@ } }, "node_modules/type-detect": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", - "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.1.0.tgz", + "integrity": "sha512-Acylog8/luQ8L7il+geoSxhEkazvkslg7PSNKOX59mbB9cOveP5aq9h74Y7YU8yDpJwetzQQrfIwtf4Wp4LKcw==", "dev": true, "license": "MIT", "peer": true, @@ -14699,9 +14754,9 @@ } }, "node_modules/uglify-js": { - "version": "3.18.0", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.18.0.tgz", - "integrity": "sha512-SyVVbcNBCk0dzr9XL/R/ySrmYf0s372K6/hFklzgcp2lBFyXtw4I7BOdDjlLhE1aVqaI/SHWXWmYdlZxuyF38A==", + "version": "3.19.2", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.19.2.tgz", + "integrity": "sha512-S8KA6DDI47nQXJSi2ctQ629YzwOVs+bQML6DAtvy0wgNdpi+0ySpQK0g2pxBq2xfF2z3YCscu7NNA8nXT9PlIQ==", "dev": true, "license": "BSD-2-Clause", "optional": true, @@ -14730,9 +14785,9 @@ } }, "node_modules/underscore": { - "version": "1.13.6", - "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.13.6.tgz", - "integrity": "sha512-+A5Sja4HP1M08MaXya7p5LvjuM7K6q/2EaC0+iovj/wOcMsTzMvDFbasi/oSapiwOlt252IqsKqPjCl7huKS0A==", + "version": "1.13.7", + "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.13.7.tgz", + "integrity": "sha512-GMXzWtsc57XAtguZgaQViUOzs0KTkk8ojr3/xAxXLITqf/3EMwxC0inyETfDFjH/Krbhuep0HNbbjI9i/q3F3g==", "dev": true, "license": "MIT", "peer": true @@ -15659,9 +15714,9 @@ "dev": true }, "node_modules/yaml": { - "version": "2.4.5", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.4.5.tgz", - "integrity": "sha512-aBx2bnqDzVOyNKfsysjA2ms5ZlnjSAW2eG3/L5G/CSujfjLJTJsEw1bGw8kCf04KodQWk1pxlGnZ56CRxiawmg==", + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.5.0.tgz", + "integrity": "sha512-2wWLbGbYDiSqqIKoPjar3MPgB94ErzCtrNE1FdqGuaO0pi2JGjmE8aW8TDZwzU7vuxcGRdL/4gPQwQ7hD5AMSw==", "dev": true, "license": "ISC", "peer": true, @@ -15793,16 +15848,16 @@ }, "dependencies": { "ajv": { - "version": "8.16.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.16.0.tgz", - "integrity": "sha512-F0twR8U1ZU67JIEtekUcLkXkoO5mMMmgGD8sK/xUFzJ805jxHQl92hImFAqqXMyMYjSPOyUPAwHYhB72g5sTXw==", + "version": "8.17.1", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", + "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", "dev": true, "peer": true, "requires": { "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.4.1" + "require-from-string": "^2.0.2" } }, "ajv-draft-04": { @@ -16008,9 +16063,9 @@ } }, "@azure/core-rest-pipeline": { - "version": "1.16.0", - "resolved": "https://registry.npmjs.org/@azure/core-rest-pipeline/-/core-rest-pipeline-1.16.0.tgz", - "integrity": "sha512-CeuTvsXxCUmEuxH5g/aceuSl6w2EugvNHKAtKKVdiX915EjJJxAwfzNNWZreNnbxHZ2fi0zaM6wwS23x2JVqSQ==", + "version": "1.16.3", + "resolved": "https://registry.npmjs.org/@azure/core-rest-pipeline/-/core-rest-pipeline-1.16.3.tgz", + "integrity": "sha512-VxLk4AHLyqcHsfKe4MZ6IQ+D+ShuByy+RfStKfSjxJoL3WBWq17VNmrz8aT8etKzqc2nAeIyLxScjpzsS4fz8w==", "dev": true, "peer": true, "requires": { @@ -16047,9 +16102,9 @@ } }, "@azure/core-util": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@azure/core-util/-/core-util-1.9.0.tgz", - "integrity": "sha512-AfalUQ1ZppaKuxPPMsFEUdX6GZPB3d9paR9d/TTL7Ow2De8cJaC7ibi7kWVlFAVPCYo31OcnGymc0R89DX8Oaw==", + "version": "1.9.2", + "resolved": "https://registry.npmjs.org/@azure/core-util/-/core-util-1.9.2.tgz", + "integrity": "sha512-l1Qrqhi4x1aekkV+OlcqsJa4AnAkj5p0JV8omgwjaV9OAbP41lvrMvs+CptfetKkeEaGRGSzby7sjPZEX7+kkQ==", "dev": true, "peer": true, "requires": { @@ -16070,9 +16125,9 @@ } }, "@azure/core-xml": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/@azure/core-xml/-/core-xml-1.4.2.tgz", - "integrity": "sha512-CW3MZhApe/S4iikbYKE7s83fjDBPIr2kpidX+hlGRwh7N4o1nIpQ/PfJTeioqhfqdMvRtheEl+ft64fyTaLNaA==", + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/@azure/core-xml/-/core-xml-1.4.3.tgz", + "integrity": "sha512-D6G7FEmDiTctPKuWegX2WTrS1enKZwqYwdKTO6ZN6JMigcCehlT0/CYl+zWpI9vQ9frwwp7GQT3/owaEXgnOsA==", "dev": true, "peer": true, "requires": { @@ -16081,9 +16136,9 @@ } }, "@azure/identity": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/@azure/identity/-/identity-4.3.0.tgz", - "integrity": "sha512-LHZ58/RsIpIWa4hrrE2YuJ/vzG1Jv9f774RfTTAVDZDriubvJ0/S5u4pnw4akJDlS0TiJb6VMphmVUFsWmgodQ==", + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/@azure/identity/-/identity-4.4.1.tgz", + "integrity": "sha512-DwnG4cKFEM7S3T+9u05NstXU/HN0dk45kPOinUyNKsn5VWwpXd9sbPKEg6kgJzGbm1lMuhx9o31PVbCtM5sfBA==", "dev": true, "peer": true, "requires": { @@ -16094,7 +16149,7 @@ "@azure/core-tracing": "^1.0.0", "@azure/core-util": "^1.3.0", "@azure/logger": "^1.0.0", - "@azure/msal-browser": "^3.11.1", + "@azure/msal-browser": "^3.14.0", "@azure/msal-node": "^2.9.2", "events": "^3.0.0", "jws": "^4.0.0", @@ -16104,9 +16159,9 @@ } }, "@azure/logger": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@azure/logger/-/logger-1.1.2.tgz", - "integrity": "sha512-l170uE7bsKpIU6B/giRc9i4NI0Mj+tANMMMxf7Zi/5cKzEqPayP7+X1WPrG7e+91JgY8N+7K7nF2WOi7iVhXvg==", + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/@azure/logger/-/logger-1.1.4.tgz", + "integrity": "sha512-4IXXzcCdLdlXuCG+8UKEwLA1T1NHqUfanhXYHiQTn+6sfWCZXduqbtXDGceg3Ce5QxTGo7EqmbV6Bi+aqKuClQ==", "dev": true, "peer": true, "requires": { @@ -16114,38 +16169,38 @@ } }, "@azure/msal-browser": { - "version": "3.17.0", - "resolved": "https://registry.npmjs.org/@azure/msal-browser/-/msal-browser-3.17.0.tgz", - "integrity": "sha512-csccKXmW2z7EkZ0I3yAoW/offQt+JECdTIV/KrnRoZyM7wCSsQWODpwod8ZhYy7iOyamcHApR9uCh0oD1M+0/A==", + "version": "3.20.0", + "resolved": "https://registry.npmjs.org/@azure/msal-browser/-/msal-browser-3.20.0.tgz", + "integrity": "sha512-ErsxbfCGIwdqD8jipqdxpfAGiUEQS7MWUe39Rjhl0ZVPsb1JEe9bZCe2+0g23HDH6DGyCAtnTNN9scPtievrMQ==", "dev": true, "peer": true, "requires": { - "@azure/msal-common": "14.12.0" + "@azure/msal-common": "14.14.0" } }, "@azure/msal-common": { - "version": "14.12.0", - "resolved": "https://registry.npmjs.org/@azure/msal-common/-/msal-common-14.12.0.tgz", - "integrity": "sha512-IDDXmzfdwmDkv4SSmMEyAniJf6fDu3FJ7ncOjlxkDuT85uSnLEhZi3fGZpoR7T4XZpOMx9teM9GXBgrfJgyeBw==", + "version": "14.14.0", + "resolved": "https://registry.npmjs.org/@azure/msal-common/-/msal-common-14.14.0.tgz", + "integrity": "sha512-OxcOk9H1/1fktHh6//VCORgSNJc2dCQObTm6JNmL824Z6iZSO6eFo/Bttxe0hETn9B+cr7gDouTQtsRq3YPuSQ==", "dev": true, "peer": true }, "@azure/msal-node": { - "version": "2.9.2", - "resolved": "https://registry.npmjs.org/@azure/msal-node/-/msal-node-2.9.2.tgz", - "integrity": "sha512-8tvi6Cos3m+0KmRbPjgkySXi+UQU/QiuVRFnrxIwt5xZlEEFa69O04RTaNESGgImyBBlYbo2mfE8/U8Bbdk1WQ==", + "version": "2.12.0", + "resolved": "https://registry.npmjs.org/@azure/msal-node/-/msal-node-2.12.0.tgz", + "integrity": "sha512-jmk5Im5KujRA2AcyCb0awA3buV8niSrwXZs+NBJWIvxOz76RvNlusGIqi43A0h45BPUy93Qb+CPdpJn82NFTIg==", "dev": true, "peer": true, "requires": { - "@azure/msal-common": "14.12.0", + "@azure/msal-common": "14.14.0", "jsonwebtoken": "^9.0.0", "uuid": "^8.3.0" } }, "@azure/storage-blob": { - "version": "12.23.0", - "resolved": "https://registry.npmjs.org/@azure/storage-blob/-/storage-blob-12.23.0.tgz", - "integrity": "sha512-c1KJ5R5hqR/HtvmFtTn/Y1BNMq45NUBp0LZH7yF8WFMET+wmESgEr0FVTu/Z5NonmfUjbgJZG5Nh8xHc5RdWGQ==", + "version": "12.24.0", + "resolved": "https://registry.npmjs.org/@azure/storage-blob/-/storage-blob-12.24.0.tgz", + "integrity": "sha512-l8cmWM4C7RoNCBOImoFMxhTXe1Lr+8uQ/IgnhRNMpfoA9bAFWoLG4XrWm6O5rKXortreVQuD+fc1hbzWklOZbw==", "dev": true, "peer": true, "requires": { @@ -16156,7 +16211,7 @@ "@azure/core-lro": "^2.2.0", "@azure/core-paging": "^1.1.1", "@azure/core-rest-pipeline": "^1.10.1", - "@azure/core-tracing": "^1.0.0", + "@azure/core-tracing": "^1.1.2", "@azure/core-util": "^1.6.1", "@azure/core-xml": "^1.3.2", "@azure/logger": "^1.0.0", @@ -18455,11 +18510,14 @@ } }, "@inquirer/type": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/@inquirer/type/-/type-1.3.3.tgz", - "integrity": "sha512-xTUt0NulylX27/zMx04ZYar/kr1raaiFTVvQ5feljQsiAgdm0WPj4S73/ye0fbslh+15QrIuDvfCXTek7pMY5A==", + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/@inquirer/type/-/type-1.5.2.tgz", + "integrity": "sha512-w9qFkumYDCNyDZmNQjf/n6qQuvQ4dMC3BJesY4oF+yr0CxR5vxujflAVeIcS6U336uzi9GM0kAfZlLrZ9UTkpA==", "dev": true, - "peer": true + "peer": true, + "requires": { + "mute-stream": "^1.0.0" + } }, "@isaacs/cliui": { "version": "8.0.2", @@ -18775,9 +18833,9 @@ "peer": true }, "semver": { - "version": "7.6.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", - "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", "dev": true, "peer": true }, @@ -18870,16 +18928,16 @@ }, "dependencies": { "ajv": { - "version": "8.16.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.16.0.tgz", - "integrity": "sha512-F0twR8U1ZU67JIEtekUcLkXkoO5mMMmgGD8sK/xUFzJ805jxHQl92hImFAqqXMyMYjSPOyUPAwHYhB72g5sTXw==", + "version": "8.17.1", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", + "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", "dev": true, "peer": true, "requires": { "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.4.1" + "require-from-string": "^2.0.2" } }, "json-schema-traverse": { @@ -18890,9 +18948,9 @@ "peer": true }, "semver": { - "version": "7.6.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", - "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", "dev": true, "peer": true } @@ -19585,10 +19643,11 @@ "peer": true }, "adm-zip": { - "version": "0.5.14", - "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.5.14.tgz", - "integrity": "sha512-DnyqqifT4Jrcvb8USYjp6FHtBpEIz1mnXu6pTRHZ0RL69LbQYiO+0lDFg5+OKA7U29oWSs3a/i8fhn8ZcceIWg==", - "dev": true + "version": "0.5.15", + "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.5.15.tgz", + "integrity": "sha512-jYPWSeOA8EFoZnucrKCNihqBjoEGQSU4HKgHYQgKNEQ0pQF9a/DYuo/+fAxY76k4qe75LUlLWpAM1QWcBMTOKw==", + "dev": true, + "peer": true }, "agent-base": { "version": "7.1.1", @@ -19894,9 +19953,9 @@ } }, "axios": { - "version": "1.7.2", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.7.2.tgz", - "integrity": "sha512-2A8QhOMrbomlDuiLeK9XibIBzuHeRcqqNOHp0Cyp5EoJ1IFDh+XZH3A6BkXtv0K4gFGCI0Y4BM7B1wOEi0Rmgw==", + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.7.3.tgz", + "integrity": "sha512-Ar7ND9pU99eJ9GpoGQKhKf58GpUOgnzuaB7ueNQ5BMi0p+LZ5oaEnfF999fAArcTIBwXTCHAmGcHOZJaWPq9Nw==", "dev": true, "peer": true, "requires": { @@ -20001,9 +20060,9 @@ } }, "body-parser": { - "version": "1.20.2", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.2.tgz", - "integrity": "sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==", + "version": "1.20.3", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.3.tgz", + "integrity": "sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g==", "dev": true, "requires": { "bytes": "3.1.2", @@ -20014,7 +20073,7 @@ "http-errors": "2.0.0", "iconv-lite": "0.4.24", "on-finished": "2.4.1", - "qs": "6.11.0", + "qs": "6.13.0", "raw-body": "2.5.2", "type-is": "~1.6.18", "unpipe": "1.0.0" @@ -20175,9 +20234,9 @@ "dev": true }, "chai": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/chai/-/chai-4.4.1.tgz", - "integrity": "sha512-13sOfMv2+DWduEU+/xbun3LScLoqN17nBeTLUsmDfKdoiC1fr0n9PU4guu4AhRcOVFk/sW8LyZWHuhWtQZiF+g==", + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/chai/-/chai-4.5.0.tgz", + "integrity": "sha512-RITGBfijLkBddZvnn8jdqoTypxvqbOLYQkGGxXzeFjVHvudaPw0HNFD9x928/eUwYWd2dPCugVqspGALTZZQKw==", "dev": true, "peer": true, "requires": { @@ -20187,7 +20246,7 @@ "get-func-name": "^2.0.2", "loupe": "^2.3.6", "pathval": "^1.1.1", - "type-detect": "^4.0.8" + "type-detect": "^4.1.0" } }, "chalk": { @@ -20428,9 +20487,9 @@ "dev": true }, "comment-json": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/comment-json/-/comment-json-4.2.3.tgz", - "integrity": "sha512-SsxdiOf064DWoZLH799Ata6u7iV658A11PlWtZATDlXPpKGJnbJZ5Z24ybixAi+LUUqJ/GKowAejtC5GFUG7Tw==", + "version": "4.2.5", + "resolved": "https://registry.npmjs.org/comment-json/-/comment-json-4.2.5.tgz", + "integrity": "sha512-bKw/r35jR3HGt5PEPm1ljsQQGyCrR8sFGNiN5L+ykDHdpO8Smxkrkla9Yi6NkQyUrb8V54PGhfMs6NrIwtxtdw==", "dev": true, "peer": true, "requires": { @@ -21007,9 +21066,9 @@ "dev": true }, "encodeurl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz", + "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==", "dev": true }, "encoding": { @@ -21650,37 +21709,37 @@ "peer": true }, "express": { - "version": "4.19.2", - "resolved": "https://registry.npmjs.org/express/-/express-4.19.2.tgz", - "integrity": "sha512-5T6nhjsT+EOMzuck8JjBHARTHfMht0POzlA60WV2pMD3gyXw2LZnZ+ueGdNxG+0calOJcWKbpFcuzLZ91YWq9Q==", + "version": "4.21.0", + "resolved": "https://registry.npmjs.org/express/-/express-4.21.0.tgz", + "integrity": "sha512-VqcNGcj/Id5ZT1LZ/cfihi3ttTn+NJmkli2eZADigjq29qTlWi/hAQ43t/VLPq8+UX06FCEx3ByOYet6ZFblng==", "dev": true, "requires": { "accepts": "~1.3.8", "array-flatten": "1.1.1", - "body-parser": "1.20.2", + "body-parser": "1.20.3", "content-disposition": "0.5.4", "content-type": "~1.0.4", "cookie": "0.6.0", "cookie-signature": "1.0.6", "debug": "2.6.9", "depd": "2.0.0", - "encodeurl": "~1.0.2", + "encodeurl": "~2.0.0", "escape-html": "~1.0.3", "etag": "~1.8.1", - "finalhandler": "1.2.0", + "finalhandler": "1.3.1", "fresh": "0.5.2", "http-errors": "2.0.0", - "merge-descriptors": "1.0.1", + "merge-descriptors": "1.0.3", "methods": "~1.1.2", "on-finished": "2.4.1", "parseurl": "~1.3.3", - "path-to-regexp": "0.1.7", + "path-to-regexp": "0.1.10", "proxy-addr": "~2.0.7", - "qs": "6.11.0", + "qs": "6.13.0", "range-parser": "~1.2.1", "safe-buffer": "5.2.1", - "send": "0.18.0", - "serve-static": "1.15.0", + "send": "0.19.0", + "serve-static": "1.16.2", "setprototypeof": "1.2.0", "statuses": "2.0.1", "type-is": "~1.6.18", @@ -21782,10 +21841,17 @@ "dev": true, "peer": true }, + "fast-uri": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.0.1.tgz", + "integrity": "sha512-MWipKbbYiYI0UC7cl8m/i/IWTqfC8YXsqjzybjddLsFjStroQzsHXkc73JutMvBiXmOvapk+axIl79ig5t55Bw==", + "dev": true, + "peer": true + }, "fast-xml-parser": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-4.4.0.tgz", - "integrity": "sha512-kLY3jFlwIYwBNDojclKsNAC12sfD6NwW74QB2CoNGPvtVxjliYehVunB3HYyNi+n4Tt1dAcgwYvmKF/Z18flqg==", + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-4.4.1.tgz", + "integrity": "sha512-xkjOecfnKGkSsOwtZ5Pz7Us/T6mrbPQrq0nh+aCO5V9nk5NLWmasAHumTKjiPJPWANe+kAZ84Jc8ooJkzZ88Sw==", "dev": true, "peer": true, "requires": { @@ -21867,13 +21933,13 @@ } }, "finalhandler": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", - "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.3.1.tgz", + "integrity": "sha512-6BN9trH7bp3qvnrRyzsBz+g3lZxTNZTbVO2EV1CS0WIcDbawYVdYvGflME/9QP0h0pYlCDBCTjYa9nZzMDpyxQ==", "dev": true, "requires": { "debug": "2.6.9", - "encodeurl": "~1.0.2", + "encodeurl": "~2.0.0", "escape-html": "~1.0.3", "on-finished": "2.4.1", "parseurl": "~1.3.3", @@ -22529,9 +22595,9 @@ "peer": true }, "https-proxy-agent": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.4.tgz", - "integrity": "sha512-wlwpilI7YdjSkWaQ/7omYBMTliDcmCN8OLihO6I9B86g06lMyAoqgoDpV0XqoaPOKj+0DIdAvnsWfyAAhmimcg==", + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.5.tgz", + "integrity": "sha512-1e4Wqeblerz+tMKPIq2EMGiiWW1dIjZOksyHWSUm1rmuvw/how9hBHZ38lAGj5ID4Ik6EdkOw7NmWPy6LAwalw==", "dev": true, "peer": true, "requires": { @@ -23221,9 +23287,9 @@ } }, "semver": { - "version": "7.6.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", - "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", "dev": true, "peer": true } @@ -23485,9 +23551,9 @@ } }, "merge-descriptors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", - "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.3.tgz", + "integrity": "sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==", "dev": true }, "merge-stream": { @@ -23693,9 +23759,9 @@ }, "dependencies": { "semver": { - "version": "7.6.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", - "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", "dev": true, "optional": true, "peer": true @@ -23976,22 +24042,28 @@ } }, "office-addin-debugging": { - "version": "5.1.3", - "resolved": "https://registry.npmjs.org/office-addin-debugging/-/office-addin-debugging-5.1.3.tgz", - "integrity": "sha512-Y/uW4Gt93MIkHcSk8Kb+k/MuNQTWwtl9WmfdKFqC3UI4V8UO01jGkCk1uRuNhO186pLWD1SBZLG+jbmI7EC+qw==", + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/office-addin-debugging/-/office-addin-debugging-5.1.4.tgz", + "integrity": "sha512-nFxUmDxWRUxMZq+nCXcUXEjLU1ZLtM1hKEBrxwsUfyH62wbQBDLH1k0GeU38Rb29wIbrIY7kG3L6SAzf2xYU2A==", "dev": true, "requires": { - "adm-zip": "^0.5.9", + "adm-zip": "0.5.12", "commander": "^6.2.0", "node-fetch": "^2.6.1", "office-addin-cli": "^1.6.3", "office-addin-dev-certs": "^1.13.3", - "office-addin-dev-settings": "^2.3.3", - "office-addin-manifest": "^1.13.3", - "office-addin-node-debugger": "^0.9.3", + "office-addin-dev-settings": "^2.3.4", + "office-addin-manifest": "^1.13.4", + "office-addin-node-debugger": "^0.9.4", "office-addin-usage-data": "^1.6.12" }, "dependencies": { + "adm-zip": { + "version": "0.5.12", + "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.5.12.tgz", + "integrity": "sha512-6TVU49mK6KZb4qG6xWaaM4C7sA/sgUMLy/JYMOzkcp3BvVLpW0fXDFQiIzAuxFCt/2+xD7fNIiPFAoLZPhVNLQ==", + "dev": true + }, "commander": { "version": "6.2.1", "resolved": "https://registry.npmjs.org/commander/-/commander-6.2.1.tgz", @@ -24033,17 +24105,17 @@ } }, "office-addin-dev-settings": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/office-addin-dev-settings/-/office-addin-dev-settings-2.3.3.tgz", - "integrity": "sha512-Zw+GnG0NnT471tkSPPuatNqXH4VZsCqCmItx+nGEj6fCwFowPbmP6eBcypIGS47x/T3+V9KNIKsoUKKps4Kefw==", + "version": "2.3.4", + "resolved": "https://registry.npmjs.org/office-addin-dev-settings/-/office-addin-dev-settings-2.3.4.tgz", + "integrity": "sha512-MpO1wj5mrNJeNisvhziFo1lg/4ARH/kILBEygL+WmS1F36nAi9EfY+kH0GkVSHd0WF8d/eaOBFRxOxrkdtidLQ==", "dev": true, "requires": { - "adm-zip": "0.5.10", + "adm-zip": "0.5.12", "commander": "^6.2.0", "fs-extra": "^11.2.0", "inquirer": "^7.3.3", "junk": "^3.1.0", - "office-addin-manifest": "^1.13.3", + "office-addin-manifest": "^1.13.4", "office-addin-usage-data": "^1.6.12", "open": "^6.4.0", "string_decoder": "1.3.0", @@ -24052,9 +24124,9 @@ }, "dependencies": { "adm-zip": { - "version": "0.5.10", - "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.5.10.tgz", - "integrity": "sha512-x0HvcHqVJNTPk/Bw8JbLWlWoo6Wwnsug0fnYYro1HBrjxZ3G7/AZk7Ahv8JwDe1uIcz8eBqvu86FuF1POiG7vQ==", + "version": "0.5.12", + "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.5.12.tgz", + "integrity": "sha512-6TVU49mK6KZb4qG6xWaaM4C7sA/sgUMLy/JYMOzkcp3BvVLpW0fXDFQiIzAuxFCt/2+xD7fNIiPFAoLZPhVNLQ==", "dev": true }, "commander": { @@ -24143,13 +24215,13 @@ } }, "office-addin-manifest": { - "version": "1.13.3", - "resolved": "https://registry.npmjs.org/office-addin-manifest/-/office-addin-manifest-1.13.3.tgz", - "integrity": "sha512-pcIJTkLCKddGWyTQYkxWRcumZo9NzPdkQN43c17oylpvH2W0HgsZyBIazkwAjqAETy0VX40NbSQ8ejf4c9jvcA==", + "version": "1.13.4", + "resolved": "https://registry.npmjs.org/office-addin-manifest/-/office-addin-manifest-1.13.4.tgz", + "integrity": "sha512-bzjc+ypvJT+UBUSsfugftOZh/CZECR5GwJ7PMYcFuB/zGPuh41jeAxbuXhlAy8AeJpQgEsTK3B7N1aDr+JPqjg==", "dev": true, "requires": { "@microsoft/teams-manifest": "^0.1.3", - "adm-zip": "^0.5.9", + "adm-zip": "0.5.12", "chalk": "^2.4.2", "commander": "^6.2.0", "fs-extra": "^7.0.1", @@ -24160,6 +24232,12 @@ "xml2js": "^0.5.0" }, "dependencies": { + "adm-zip": { + "version": "0.5.12", + "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.5.12.tgz", + "integrity": "sha512-6TVU49mK6KZb4qG6xWaaM4C7sA/sgUMLy/JYMOzkcp3BvVLpW0fXDFQiIzAuxFCt/2+xD7fNIiPFAoLZPhVNLQ==", + "dev": true + }, "commander": { "version": "6.2.1", "resolved": "https://registry.npmjs.org/commander/-/commander-6.2.1.tgz", @@ -24216,9 +24294,9 @@ } }, "office-addin-node-debugger": { - "version": "0.9.3", - "resolved": "https://registry.npmjs.org/office-addin-node-debugger/-/office-addin-node-debugger-0.9.3.tgz", - "integrity": "sha512-S0e1lh7ykrcfaccF6jYvK40WJHh0JkZCdUENsYiThqKRB1843Rk0OLYZGHqEqSZYMondO21zUEVYLrwjaaMmwg==", + "version": "0.9.4", + "resolved": "https://registry.npmjs.org/office-addin-node-debugger/-/office-addin-node-debugger-0.9.4.tgz", + "integrity": "sha512-OXqlwOSyBas8GO+GD+8+sIqRr7Oh8eTe/8MaA3de+AUKl1IdwxpmkcTdTeFJQeSmuGmD2aaoytGDFLN5E1FT0A==", "dev": true, "requires": { "commander": "^6.2.0", @@ -24242,22 +24320,29 @@ "dev": true }, "office-addin-project": { - "version": "0.8.3", - "resolved": "https://registry.npmjs.org/office-addin-project/-/office-addin-project-0.8.3.tgz", - "integrity": "sha512-PgGk/LXnfxcKAYfERTPpI7CjXQbMinchIDnDGzS7kigSure5VQsuKi2c8l/F8/8KO+UzKJQa8obqFhwwiAd66A==", + "version": "0.8.4", + "resolved": "https://registry.npmjs.org/office-addin-project/-/office-addin-project-0.8.4.tgz", + "integrity": "sha512-RJ5Z9jb9T/SPQt6w5s/cPeO8XWwcGmM7YoWyHxi+OlqcbgPw3amHbCxAVM96R4mkfN57sL8IBAaC0KxIK9l67g==", "dev": true, "peer": true, "requires": { - "adm-zip": "^0.5.9", + "adm-zip": "0.5.12", "commander": "^6.2.1", "fs-extra": "^7.0.1", "inquirer": "^7.3.3", - "office-addin-manifest": "^1.13.3", + "office-addin-manifest": "^1.13.4", "office-addin-manifest-converter": "^0.3.1", "office-addin-usage-data": "^1.6.12", "path": "^0.12.7" }, "dependencies": { + "adm-zip": { + "version": "0.5.12", + "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.5.12.tgz", + "integrity": "sha512-6TVU49mK6KZb4qG6xWaaM4C7sA/sgUMLy/JYMOzkcp3BvVLpW0fXDFQiIzAuxFCt/2+xD7fNIiPFAoLZPhVNLQ==", + "dev": true, + "peer": true + }, "commander": { "version": "6.2.1", "resolved": "https://registry.npmjs.org/commander/-/commander-6.2.1.tgz", @@ -24534,9 +24619,9 @@ } }, "path-to-regexp": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", - "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==", + "version": "0.1.10", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.10.tgz", + "integrity": "sha512-7lf7qcQidTku0Gu3YDPc8DJ1q7OOucfa/BSsIwjuh56VU7katFvuM8hULfkwB3Fns/rsVF7PwPKVw1sl5KQS9w==", "dev": true }, "path-type": { @@ -24703,12 +24788,12 @@ "dev": true }, "qs": { - "version": "6.11.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", - "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.13.0.tgz", + "integrity": "sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==", "dev": true, "requires": { - "side-channel": "^1.0.4" + "side-channel": "^1.0.6" } }, "queue-microtask": { @@ -25192,9 +25277,9 @@ "dev": true }, "send": { - "version": "0.18.0", - "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", - "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", + "version": "0.19.0", + "resolved": "https://registry.npmjs.org/send/-/send-0.19.0.tgz", + "integrity": "sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw==", "dev": true, "requires": { "debug": "2.6.9", @@ -25229,6 +25314,12 @@ } } }, + "encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", + "dev": true + }, "mime": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", @@ -25321,15 +25412,15 @@ } }, "serve-static": { - "version": "1.15.0", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz", - "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==", + "version": "1.16.2", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.16.2.tgz", + "integrity": "sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw==", "dev": true, "requires": { - "encodeurl": "~1.0.2", + "encodeurl": "~2.0.0", "escape-html": "~1.0.3", "parseurl": "~1.3.3", - "send": "0.18.0" + "send": "0.19.0" } }, "set-function-length": { @@ -26054,9 +26145,9 @@ } }, "type-detect": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", - "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.1.0.tgz", + "integrity": "sha512-Acylog8/luQ8L7il+geoSxhEkazvkslg7PSNKOX59mbB9cOveP5aq9h74Y7YU8yDpJwetzQQrfIwtf4Wp4LKcw==", "dev": true, "peer": true }, @@ -26153,9 +26244,9 @@ } }, "uglify-js": { - "version": "3.18.0", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.18.0.tgz", - "integrity": "sha512-SyVVbcNBCk0dzr9XL/R/ySrmYf0s372K6/hFklzgcp2lBFyXtw4I7BOdDjlLhE1aVqaI/SHWXWmYdlZxuyF38A==", + "version": "3.19.2", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.19.2.tgz", + "integrity": "sha512-S8KA6DDI47nQXJSi2ctQ629YzwOVs+bQML6DAtvy0wgNdpi+0ySpQK0g2pxBq2xfF2z3YCscu7NNA8nXT9PlIQ==", "dev": true, "optional": true, "peer": true @@ -26173,9 +26264,9 @@ } }, "underscore": { - "version": "1.13.6", - "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.13.6.tgz", - "integrity": "sha512-+A5Sja4HP1M08MaXya7p5LvjuM7K6q/2EaC0+iovj/wOcMsTzMvDFbasi/oSapiwOlt252IqsKqPjCl7huKS0A==", + "version": "1.13.7", + "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.13.7.tgz", + "integrity": "sha512-GMXzWtsc57XAtguZgaQViUOzs0KTkk8ojr3/xAxXLITqf/3EMwxC0inyETfDFjH/Krbhuep0HNbbjI9i/q3F3g==", "dev": true, "peer": true }, @@ -26792,9 +26883,9 @@ "dev": true }, "yaml": { - "version": "2.4.5", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.4.5.tgz", - "integrity": "sha512-aBx2bnqDzVOyNKfsysjA2ms5ZlnjSAW2eG3/L5G/CSujfjLJTJsEw1bGw8kCf04KodQWk1pxlGnZ56CRxiawmg==", + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.5.0.tgz", + "integrity": "sha512-2wWLbGbYDiSqqIKoPjar3MPgB94ErzCtrNE1FdqGuaO0pi2JGjmE8aW8TDZwzU7vuxcGRdL/4gPQwQ7hD5AMSw==", "dev": true, "peer": true }, diff --git a/Templates/Excel.MVCAddInTemplate/Excel.MVCAddInTemplateWeb/Scripts/_references.js b/Templates/Excel.MVCAddInTemplate/Excel.MVCAddInTemplateWeb/Scripts/_references.js index a6cfeabcccfb9f75f4334b2d8e5e67c44fa5bf5e..9260315b902976ff62b9f6909e3ab66d6dc393c6 100644 GIT binary patch delta 15 WcmbQ&#JH%5al;1(M!m^z9Si|8(gsHW delta 17 ZcmZ3~#5k{sal;3P$!ZQllfNm*002UQ2KN8} diff --git a/Templates/Excel.MVCAddInTemplate/Excel.MVCAddInTemplateWeb/Views/Shared/_Layout.cshtml b/Templates/Excel.MVCAddInTemplate/Excel.MVCAddInTemplateWeb/Views/Shared/_Layout.cshtml index 5f843438c..08ed3fa72 100644 --- a/Templates/Excel.MVCAddInTemplate/Excel.MVCAddInTemplateWeb/Views/Shared/_Layout.cshtml +++ b/Templates/Excel.MVCAddInTemplate/Excel.MVCAddInTemplateWeb/Views/Shared/_Layout.cshtml @@ -13,7 +13,7 @@ - + diff --git a/Templates/Outlook.MVCAddInTemplate/Outlook.MVCAddInTemplateWeb/Scripts/_references.js b/Templates/Outlook.MVCAddInTemplate/Outlook.MVCAddInTemplateWeb/Scripts/_references.js index 048fb2968596c0e72ca80b19856e64a1b90f61fe..597f5203744112c845e72fd89ce91b44c77926c5 100644 GIT binary patch delta 15 WcmZ3|#JHk~al - + diff --git a/Templates/PowerPoint.MVCAddInTemplate/PowerPoint.MVCAddInTemplateWeb/Scripts/_references.js b/Templates/PowerPoint.MVCAddInTemplate/PowerPoint.MVCAddInTemplateWeb/Scripts/_references.js index 5037417010bbf807e2e66ef85298363edf8f6182..d3ad5e33349c2655fdfe85e23270d401203185a3 100644 GIT binary patch delta 15 WcmbQx#5kpial<1AM!m`R9Si|6z6K8f delta 17 ZcmbQz#5kdeal<2r$r27ilYcnK002NJ2H^kz diff --git a/Templates/PowerPoint.MVCAddInTemplate/PowerPoint.MVCAddInTemplateWeb/Views/Shared/_Layout.cshtml b/Templates/PowerPoint.MVCAddInTemplate/PowerPoint.MVCAddInTemplateWeb/Views/Shared/_Layout.cshtml index ce79445bc..b200a7549 100644 --- a/Templates/PowerPoint.MVCAddInTemplate/PowerPoint.MVCAddInTemplateWeb/Views/Shared/_Layout.cshtml +++ b/Templates/PowerPoint.MVCAddInTemplate/PowerPoint.MVCAddInTemplateWeb/Views/Shared/_Layout.cshtml @@ -13,7 +13,7 @@ @*@Scripts.Render("~/bundles/bootstrap")*@ - + diff --git a/Templates/Word.MVCAddInTemplate/Word.MVCAddInTemplateWeb/Functions/FunctionFile.html b/Templates/Word.MVCAddInTemplate/Word.MVCAddInTemplateWeb/Functions/FunctionFile.html index 5ef650a50..b9951653b 100644 --- a/Templates/Word.MVCAddInTemplate/Word.MVCAddInTemplateWeb/Functions/FunctionFile.html +++ b/Templates/Word.MVCAddInTemplate/Word.MVCAddInTemplateWeb/Functions/FunctionFile.html @@ -5,7 +5,7 @@ - + diff --git a/Templates/Word.MVCAddInTemplate/Word.MVCAddInTemplateWeb/Scripts/_references.js b/Templates/Word.MVCAddInTemplate/Word.MVCAddInTemplateWeb/Scripts/_references.js index 9cbbae392011ddd1edb1d433d46c94394895ca9b..32755cee0dc8fb45e01f282f9c79f25459da5691 100644 GIT binary patch delta 19 bcmX@p%y^-hal<@EM!m@w9YiN@aFhW6Q#J>@ delta 17 Zcmcc6%y_1mal<^v$yXeNCU0?+0RTxv2ax~( diff --git a/Templates/Word.MVCAddInTemplate/Word.MVCAddInTemplateWeb/Views/Shared/_Layout.cshtml b/Templates/Word.MVCAddInTemplate/Word.MVCAddInTemplateWeb/Views/Shared/_Layout.cshtml index 1aee5de09..2ab940eee 100644 --- a/Templates/Word.MVCAddInTemplate/Word.MVCAddInTemplateWeb/Views/Shared/_Layout.cshtml +++ b/Templates/Word.MVCAddInTemplate/Word.MVCAddInTemplateWeb/Views/Shared/_Layout.cshtml @@ -15,7 +15,7 @@ - +

+

+ Pleasee + sideloadsss + your add-in to see app body. +

+