Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

v4.13 #3949

Merged
merged 47 commits into from
Aug 29, 2024
Merged

v4.13 #3949

Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
47 commits
Select commit Hold shift + click to select a range
56234a8
Merge remote-tracking branch 'upstream/main' into develop
kasperbolarsen Feb 26, 2024
c5752b7
Update image paths in documentation files, highlighted that manual in…
kasperbolarsen Jun 23, 2024
0f43d3c
Merge branch 'develop' of https://github.com/kasperbolarsen/pnp-moder…
kasperbolarsen Jun 23, 2024
0368bb3
Moved v3 ref out of main index.md
kasperbolarsen Jun 23, 2024
b17a24a
Merge branch 'microsoft-search:develop' into develop
kasperbolarsen Jun 26, 2024
66479cf
Updates simple-list.html with CSS overrides for tags display, related…
kasperbolarsen Jun 27, 2024
2c4ed27
Merge branch 'develop' of https://github.com/kasperbolarsen/pnp-moder…
kasperbolarsen Jun 27, 2024
06fee1c
Show info-message in property pane if there are missing slots
jblueml Jun 27, 2024
4720e61
Merge pull request #1 from jblueml/jblueml-missing-slot-indication
jblueml Jun 27, 2024
324d521
Merge pull request #3825 from kasperbolarsen/develop
wobba Jun 28, 2024
2723dd3
Merge pull request #3829 from jblueml/jblueml-missing-slot-indication
wobba Jun 30, 2024
34bbce4
Updates for German strings for Filter operators
VictorRomanov1986 Jul 2, 2024
9f1b750
Added UPN-field to people layout
jblueml Jul 2, 2024
e29aa8a
Merge pull request #3835 from jblueml/jblueml-people-layout-upn-field
wobba Jul 7, 2024
dd68daf
Merge pull request #3834 from VictorRomanov1986/features/german-filte…
wobba Jul 7, 2024
5ac44b0
Bump fast-loops from 1.1.3 to 1.1.4 in /search-parts
dependabot[bot] Jul 10, 2024
b0a3659
Merge pull request #3857 from microsoft-search/dependabot/npm_and_yar…
wobba Jul 16, 2024
36ff83a
fix for removing padding and margin if nothing to show
jblueml Jul 17, 2024
ff19ab0
corrected code-comment
jblueml Jul 18, 2024
5e70dae
Merge pull request #3867 from jblueml/jblueml-fix-empty-webpart-rende…
wobba Jul 18, 2024
53394a4
fixed display of sort arrows on multiple columns
jblueml Jul 22, 2024
507dbe0
Merge pull request #3875 from jblueml/jblueml-fix-details-list-sort
wobba Jul 23, 2024
bcd8606
Bump fast-xml-parser from 4.4.0 to 4.4.1 in /search-parts
dependabot[bot] Jul 29, 2024
9f3b4eb
implementation of Improve display of tags #3806
kasperbolarsen Aug 7, 2024
d463ce9
updated the ootb handlebar tags #3806
kasperbolarsen Aug 8, 2024
77f95de
Merge pull request #3880 from microsoft-search/dependabot/npm_and_yar…
wobba Aug 13, 2024
cd6d2b9
Bump action setup package
wobba Aug 13, 2024
5e39472
added check for necessary API-permissions before calling MS Graph API
jblueml Aug 13, 2024
d7b4237
Updated the colors to use theme colors
kasperbolarsen Aug 13, 2024
938805e
Added a Q&A about MS search and custom script
kasperbolarsen Aug 21, 2024
23fc193
added additional scopes to be checked
jblueml Aug 22, 2024
40cdd60
Fixing regex
priests123 Aug 22, 2024
831c206
Merge pull request #3908 from jblueml/jblueml-fix-verticals-membershi…
wobba Aug 23, 2024
38185e2
Merge pull request #3925 from priests123/fix-getUserEmail-template-he…
wobba Aug 23, 2024
918e509
Merge pull request #3890 from kasperbolarsen/develop
wobba Aug 23, 2024
7a6c235
Fix #3911
wobba Aug 23, 2024
0117ecc
Merge pull request #3935 from microsoft-search/fix/3911
wobba Aug 23, 2024
f415346
Update SPFx to v1.19.0
wobba Aug 29, 2024
79d2506
Update build script versions
wobba Aug 29, 2024
4987442
Merge pull request #3945 from microsoft-search/spfx-1-19
wobba Aug 29, 2024
0a663fe
Update and lock npm packages to spfx v1.18.2
wobba Aug 29, 2024
fc45bfd
Update
wobba Aug 29, 2024
2a113bb
Merge pull request #3946 from microsoft-search/spfx-1-19
wobba Aug 29, 2024
bbf4a73
Update node version
wobba Aug 29, 2024
fb09c6c
Merge pull request #3947 from microsoft-search/spfx-1-19
wobba Aug 29, 2024
44341f2
Remove wrongly added line
wobba Aug 29, 2024
debdda3
Merge pull request #3948 from microsoft-search/spfx-1-19
wobba Aug 29, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion .github/workflows/publish-docs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,9 +13,10 @@ jobs:
environment: production
if: ${{ github.event.inputs.publish_docs }}
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
with:
fetch-depth: 0
node-version: 18

- name: Setup python
uses: actions/setup-python@v2
Expand Down
11 changes: 6 additions & 5 deletions .github/workflows/publish.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,19 +14,20 @@ jobs:
# Steps represent a sequence of tasks that will be executed as part of the job
steps:
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
- uses: actions/checkout@v2
- uses: actions/checkout@v4
with:
ref: develop
node-version: 18
# setup nodejs
- name: Use Node.js 16
uses: actions/setup-node@v2
- name: Use Node.js 18
uses: actions/setup-node@v4
with:
node-version: 16
node-version: 18
registry-url: "https://registry.npmjs.org"
# cache node modules
- name: Cache node modules
id: cache
uses: actions/cache@v2
uses: actions/cache@v3
with:
path: |
**/node_modules
Expand Down
19 changes: 10 additions & 9 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,35 +21,36 @@ jobs:

strategy:
matrix:
node-version: [16.x]
node-version: [18.x]

outputs:
majorMinorPatch: ${{ steps.setoutputs.outputs.majorMinorPatch }}
semver: ${{ steps.setoutputs.outputs.semver }}

steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
with:
fetch-depth: 0
node-version: 18

- name: Setup GitVersion
uses: gittools/actions/gitversion/setup@v0.9.7
uses: gittools/actions/gitversion/setup@v3.0.0
with:
versionSpec: '5.x'
versionSpec: '6.x'

- name: Setup pnpm
uses: pnpm/action-setup@v2.4.1
uses: pnpm/action-setup@v4
with:
version: 7
version: 9

- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v3
uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node-version }}

- name: Determine Version
id: gitversion
uses: gittools/actions/gitversion/execute@v0.9.7
uses: gittools/actions/gitversion/execute@v3.0.0

- name: Set outputs
id: setoutputs
Expand Down Expand Up @@ -78,7 +79,7 @@ jobs:
needs: build
steps:

- uses: actions/checkout@v3
- uses: actions/checkout@v4
with:
fetch-depth: 0

Expand Down
17 changes: 14 additions & 3 deletions docs/QnA.md
Original file line number Diff line number Diff line change
@@ -1,12 +1,23 @@


**Q: In version 4.10.1 the LPC (Live Person Card) hover option became available as an option for the People Layout. What is the difference between LCP and Persona card? **

![LCP option](/assets/LCP.png "LCP option in the People Layout")
**Q: Should I switch from using SharePoint Search as the datasource to Microsoft Search? **
![Microsoft Search](./assets/DataSources.png "Datasources")

**A**: It depends on your requirement. Microsoft Search is the API being invested in going forward and allows search on entities outside of SharePoint such as Teams, Outlook and Graph Connector items. If you are only using SharePoint and OneDrive data, using features such as managed metadata, or creating a people directory, then using the SharePoint Search API is recommended for now.




**Q: How will the automatic disabling of SharePoint Online custom scripts affect the PnP Modern Search web parts? **

**A**: Not at all. The PnP Modern Search web parts are built using the SharePoint Framework, which is not affected by the automatic disabling of custom scripts.



**Q: In version 4.10.1 the LPC (Live Person Card) hover option became available as an option for the People Layout. What is the difference between LCP and Persona card? **

![LCP option](./assets/LCP.png "LCP option in the People Layout")


**A**: The Live Person Card does not require any additional Graph Permissions. The LPC can be customized to show additional fields from Entra ID, but not the same way as the pnp-people or mgt-person. However it will always show equal to any other people card shown in Microsoft 365.See https://learn.microsoft.com/en-us/graph/add-properties-profilecard.

Expand Down
Binary file added docs/assets/DataSources.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
31 changes: 9 additions & 22 deletions docs/index.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
!["PnP"](https://pnp.github.io/images/hero-parker-p-1080.png){: .center .logo}
!["PnP"](./assets/pnp_logo.png){: .center .logo }

# PnP Modern Search v4

Expand All @@ -18,18 +18,6 @@ Hence v4 was born. The goal of v4 is to solve scenarios already solved by v3, bu

As more and more Microsoft Search functionality is exposed via the Microsoft Graph Search API's, we will keep on investing in v4 to surface these great capabilities.

**Looking for the v3 documentation? [Here you go!](./v3/index.md)**

!!! important "PnP Modern Search v3.x deprecation"
**v4 uses a brand new code architecture and replace the older v3 codebase**. There will be no new features added to v3.x, but we will continue to
provide bug fixes and minor changes as needed. As v4.x is not yet at feature parity with v3.x, you can still use the v3.x packages to meet your requirements.
Also not that there is not an auto-upgrade path from v3 to v4 due to the new architecture, so you are perfectly ok
to stay on the v3 version until v4 provides the features validating your upgrade.
However, the main focus is on the v4 version, and new search functionality backed by the Microsoft Graph Search API will be v4 only.

**v3 and v4 don't share the same package name, Web Part and solution IDs meaning you can have them side by side on a page if necessary without overlap.**

!["V3 & v4"](./assets/v3_v4.png){: .center}

## What's included?

Expand Down Expand Up @@ -99,16 +87,15 @@ PnP Modern Search version 4 initially made by [Franck Cornu](https://twitter.com

Here is the list of main contributors of the PnP Modern Search (all versions included)

- Franck Cornu (Ubisoft) - [@FranckCornu](http://www.twitter.com/FranckCornu)
- Mikael Svenson (Microsoft) - [@mikaelsvenson](http://www.twitter.com/mikaelsvenson)
- Yannick Reekmans - [@yannickreekmans](https://twitter.com/yannickreekmans)
- Albert-Jan Schot - [@appieschot](https://twitter.com/appieschot)
- Tarald Gåsbakk (Norwegian Armed Forces) - [@taraldgasbakk](https://twitter.com/Taraldgasbakk)
- Franck Cornu (Ubisoft) - [@FranckCornu](http://www.twitter.com/FranckCornu)
- David Mehr (IOZAG) - [@davmehr](https://github.com/davemehr)
- Brad Schlintz (Microsoft) - [@bschlintz](https://twitter.com/bschlintz)
- Richard Gigan - [@PooLP](https://twitter.com/PooLP)
- Matthew Stark
- Patrik Hellgren (SherparsGroupAB) - [@PatrikHellgren](https://twitter.com/patrikhellgren)
- Per Ove Sandhåland (crayon) - [@PerOve](https://github.com/PerOve)
- Marc Anderson ( Sympraxis) [@sympmarc](https://github.com/sympmarc)
- Fabio Franzini (Apvee Solutions) - [@franzinifabio](https://twitter.com/franzinifabio)
- Paolo Pialorsi (PiaSys.com) - [@PaoloPia](https://twitter.com/paolopia)
- Patrik Hellgren (SherparsGroupAB) - [@PatrikHellgren](https://twitter.com/patrikhellgren)
- Erfan Darroudi [@edarroudi](https://github.com/edarroudi)
- Kasper Larsen (Fellowmind) - [@kasperlarsen](https://twitter.com/kasperbolarsen)
- Kasper Larsen (Fellowmind) - [@kasperbolarsen](https://twitter.com/kasperbolarsen)

Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,7 @@ Hit the Reindex site in the site collections Search and Offline Availability sec

Map the crawled properties to a couple of RefinableDates. If possible it is recommended to make this mapping on the tenant level as it ensures that you can use them in your entire tenant.
![mapping birthdaythisyear and hiredatethisyear](../scenarios/assets/Setup-Results-web-part-to-show-work-anniversaries/mapping2.png)

Find the Content Type ID of the Content type created by the script.


Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ The _'SharePoint Search'_ data source retrieve items from the SharePoint search
| **Query text** | The input query text to pass to the search engine. This setting is not configurable directly in the data source options. To enable it, go to the third configuration page of the Web Part and select either a static or dynamic value (Ex: from a connected search box Web Part). See [the connection documentation](../../search-results/connections/index.md) for more information on how to configure this option. This value can be then used in the **Query template** using the `{searchTerms}` token. Also this value can be a [Keyword Query Language expression (KQL)](https://docs.microsoft.com/sharepoint/dev/general-development/keyword-query-language-kql-syntax-reference). | None.
| **Query template** | The search query template to use. It allows you to use dynamic tokens according to the context or specify conditions that should always apply to the query. | `{searchTerms}`
| **Result source ID** | Can be either a built-in result source ID listed in the dropdown, or a custom result source that you specify. Type the `GUID` of the result source, or the `SCOPE` and `NAME`, separated by `\|` (pipe character). For this to take effect, you must press _'Enter'_ to save the value. Valid scopes are `SPSiteSubscription`, `SPSite`, `SPWeb`. Examples: <ul><li>SPWeb`\|`Local News</li><li>SPSite`\|`Contracts</li><li>SPSiteSubscription`\|`Intranet</li></ul> | LocalSharePointResults
| **Selected properties** | The SharePoint managed properties to retrieve from the results. They can be used with the same name in layouts and slots afterwards.<br/><br/>To add other managed properties to the list, clear out the dropdown list field and manually type or paste the name of your managed property and press ENTER. This will add it to the list of selected properties in the query. Pasting a comma separated list of property names also work. You can validate the property is working by using the [Debug](../layouts/#debug) layout. If a list of properties is not shown, enter manually.| <ul><li>Title</li><li>Path</li><li>DefaultEncodingURL</li><li>FileType</li><li>HitHighlightedProperties</li><li>HitHighlightedSummary</li><li>AuthorOWSUSER</li><li>owstaxidmetadataalltagsinfo</li><li>Created</li><li>UniqueID</li><li>NormSiteID</li><li>NormListID</li><li>NormUniqueID</li><li>ContentTypeId</li><li>UserName</li><li>JobTitle</li><li>WorkPhone</li><li>SPSiteURL</li><li>SiteTitle</li><li>CreatedBy</li><li>HtmlFileType</li><li>SiteLogo</li></ul>
| **Selected properties** | The SharePoint managed properties to retrieve from the results. They can be used with the same name in layouts and slots afterwards.<br/><b> Please be aware that the way we get the list of managed properties is not reliable and you might have to enter the property name manually. To add other managed properties to the list, clear out the dropdown list field and manually type or paste the name of your managed property and press ENTER</b>. This will add it to the list of selected properties in the query. Pasting a comma separated list of property names also work. You can validate the property is working by using the [Debug](../layouts/#debug) layout. If a list of properties is not shown, enter manually.| <ul><li>Title</li><li>Path</li><li>DefaultEncodingURL</li><li>FileType</li><li>HitHighlightedProperties</li><li>HitHighlightedSummary</li><li>AuthorOWSUSER</li><li>owstaxidmetadataalltagsinfo</li><li>Created</li><li>UniqueID</li><li>NormSiteID</li><li>NormListID</li><li>NormUniqueID</li><li>ContentTypeId</li><li>UserName</li><li>JobTitle</li><li>WorkPhone</li><li>SPSiteURL</li><li>SiteTitle</li><li>CreatedBy</li><li>HtmlFileType</li><li>SiteLogo</li></ul>
| **Sort settings** | Configure the sort settings of the data source. Properties listed in the dropdown are all static properties marked as _'Sortable'_ in the [SharePoint search schema](https://docs.microsoft.com/sharepoint/technical-reference/). However, it does not list all possible _RefinableXXX_ or aliases fields. To use them, you must enter the value manually and press 'Enter' to validate. For a particular field, you can define if it should be used for initial sort (i.e. when the results are loaded for the first time) or be only available for users in the sort control (i.e. after the results are loaded). **The sort control does not consider default sort fields (i.e. select them by default) and you can only sort on a single field at a time according the fields you defined**. If no user sort fields are defined in the configuration, the sort control won't be displayed. | None.
| **Refinement filters** | The initial refinement filters to apply to the query. Filters has to be written using FQL ([Fast Query Language](https://docs.microsoft.com/sharepoint/dev/general-development/fast-query-language-fql-syntax-reference)) (e.g. `FileType:equals("docx")`). They will be applied every time to the current search query regardless selected filters from connected Web Parts. Note: for string expressions, use `"` instead of `'`. | None.
| **Language of the search request** | The language to use for the search request. By default the search request will be made using the current user interface language. This parameter is mainly used to process diacritics, plurals, etc. correctly according to the language. | Current UI language.
Expand Down
4 changes: 2 additions & 2 deletions docs/usage/search-results/layouts/people.md
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
The 'people' layout display a list of persons with additional information. Typically, this layout is well suited for a people directory.
The 'people' layout displays a list of persons with additional information. Typically, this layout is well suited for a people directory.

!["People layout"](../../../assets/webparts/search-results/layouts/people_layout.png){: .center}

By default, the user profile pictures are fetched from the SharePoint User Profile Service. If your user pictures are stored in Active Directoy, make sure you synchronized them with SharePoint User Profile Service. Otherwise, a placeholder image will be displayed.

| Setting | Description | Default value
| ------- |---------------- | ----------
| **Manage people fields** | Allows you to define you own values for people placeholder fields. <br><p align="center">[!["Manage people fields"](../../../assets/webparts/search-results/layouts/manage_people_fields.png)](../../../assets/webparts/search-results/layouts/manage_people_fields.png)</p>As a field value, you can choose either a field property value (from the list or as free text) and without any transformation or use an Handlebars expression by clicking on the checkbox next to it. In this case, all helpers from the main template are available. Also, if the field doesn't have the **'Allow HTML'** indication flag enabled, it means the value will be always interpreted as text, regardless if you set an HTML value. Otherwise, your value will be interpreted as HTML for those fields (ex: '_Primary text_' placeholder field). For HTML fields you can use the special variable `@root.theme` to use theme colors (ex: `@root.theme.palette.themePrimary`) or `@root.slots.<SlotName>` to access slot value. If you don't set a value for those fields (i.e an empty value), they won't appear in the UI.</br>
| **Manage people fields** | Allows you to define you own values for people placeholder fields. <br><p align="center">[!["Manage people fields"](../../../assets/webparts/search-results/layouts/manage_people_fields.png)](../../../assets/webparts/search-results/layouts/manage_people_fields.png)</p>As a field value, you can choose either a field property value (from the list or as free text) and without any transformation or use an Handlebars expression by clicking on the checkbox next to it. In this case, all helpers from the main template are available. Also, if the field doesn't have the **'Allow HTML'** indication flag enabled, it means the value will be always interpreted as text, regardless if you set an HTML value. Otherwise, your value will be interpreted as HTML for those fields (ex: '_Primary text_' placeholder field). For HTML fields you can use the special variable `@root.theme` to use theme colors (ex: `@root.theme.palette.themePrimary`) or `@root.slots.<SlotName>` to access slot value. If you don't set a value for those fields (i.e an empty value), they won't appear in the UI.<br><br>The _UPN_-field is necessary for displaying the native SharePoint persona card (LPC) on hover. If it contains an empty value, the persona card will not appear. If it contains an invalid value (e.g. a non-existing UPN), an empty persona card will be shown.</br>
| **Show persona card on hover (LPC)** | If enabled, show a person card on hover for the curren item using the native SharePoint implementation.
| **Show persona card on hover** | If enabled, show a person card on hover for the current item. <p align="center">[!["Persona card hover"](../../../assets/webparts/search-results/layouts/persona_card_hover.png)](../../../assets/webparts/search-results/layouts/persona_card_hover.png)</p> This feature uses Microsoft Graph and [Microsoft Graph Toolkit](https://docs.microsoft.com/en-us/graph/toolkit/components/person) to display information about the user and needs the following API permissions in your tenant to work: <ul><li>User.Read</li><li>People.Read</li><li>Contacts.Read</li><li>User.Read.All</li></ul>**If these permissions are not set, the card won't appear**. You can use [PnP Office 365 CLI](https://pnp.github.io/office365-cli/cmd/spo/serviceprincipal/serviceprincipal-grant-add/) to add correct permissions for this feature:</br></br>`$m365 spo serviceprincipal grant add --resource '<aad_app_display_name>' --scope 'user_impersonation'`. Refer to the section below about [persona hover card customization](#persona-hover-card).
| **Show presence** | <p>If enabled, the person's presence-information will be displayed in the bottom right corner of the user's profile picture.</p>This feature uses Microsoft Graph and needs the API permission 'Presence.Read.All' in your tenant to work.
Expand Down
11 changes: 11 additions & 0 deletions docs/v3/index.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,16 @@
# PnP Modern Search v3 #

!!! important "PnP Modern Search v3.x deprecation"
**v4 uses a brand new code architecture and replace the older v3 codebase**. There will be no new features added to v3.x, but we will continue to
provide bug fixes and minor changes as needed. As v4.x is not yet at feature parity with v3.x, you can still use the v3.x packages to meet your requirements.
Also not that there is not an auto-upgrade path from v3 to v4 due to the new architecture, so you are perfectly ok
to stay on the v3 version until v4 provides the features validating your upgrade.
However, the main focus is on the v4 version, and new search functionality backed by the Microsoft Graph Search API will be v4 only.

**v3 and v4 don't share the same package name, Web Part and solution IDs meaning you can have them side by side on a page if necessary without overlap.**

!["V3 & v4"](./assets/v3_v4.png){: .center}

## Solution overview

![Solution demo](./images/react-search-refiners.gif)
Expand Down
1 change: 1 addition & 0 deletions mkdocs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ nav:
- Create custom layouts: create-custom-layouts/index.md
- How to contribute?: how-to-contribute.md
- Building documentation: build-the-doc.md
- Version 3 : v3/index.md
- Search Results:
- Usage: usage/search-results/index.md
- Data sources: usage/search-results/data-sources/index.md
Expand Down
4 changes: 2 additions & 2 deletions search-extensibility/.yo-rc.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,13 @@
"@microsoft/generator-sharepoint": {
"isCreatingSolution": true,
"environment": "spo",
"version": "1.18.2",
"version": "1.19.0",
"libraryName": "pnp-search-extensibility",
"libraryId": "f13a5866-004f-4219-b078-69731f848bd1",
"packageManager": "npm",
"isDomainIsolated": false,
"componentType": "library",
"nodeVersion": "16.20.0",
"nodeVersion": "18.20.4",
"sdkVersions": {
"@microsoft/teams-js": "2.12.0",
"@microsoft/microsoft-graph-client": "3.0.2"
Expand Down
Loading
Loading