@zxncij2390/monorepo3 3.18.0
Sign up to get free protection for your applications and to get access to all the features.
- package/.eslintignore +16 -0
- package/.eslintrc.cjs +150 -0
- package/.github/ISSUE_TEMPLATE/bug-report.yml +178 -0
- package/.github/ISSUE_TEMPLATE/enhancement.yml +99 -0
- package/.github/ISSUE_TEMPLATE/question.yml +72 -0
- package/.github/ISSUE_TEMPLATE.md +39 -0
- package/.github/PULL_REQUEST_TEMPLATE.md +24 -0
- package/.github/workflows/lock.yml +18 -0
- package/.github/workflows/publish-buildsystem.yml +34 -0
- package/.github/workflows/publish-docs.yml +21 -0
- package/.github/workflows/publish.yml +40 -0
- package/.github/workflows/pull_request.yaml +28 -0
- package/.github/workflows/push.yaml +32 -0
- package/.github/workflows/v3-nightly.yml +40 -0
- package/.mocharc.cjs +68 -0
- package/.vscode/launch.json +103 -0
- package/.vscode/settings.json +17 -0
- package/.vscode/tasks.json +124 -0
- package/AUTHORS +13 -0
- package/CHANGELOG.md +33 -0
- package/CODE_OF_CONDUCT.md +6 -0
- package/CONTRIBUTING.md +9 -0
- package/LICENSE +25 -0
- package/README.md +66 -0
- package/buildsystem-config.ts +146 -0
- package/debug/launch/graph.ts +20 -0
- package/debug/launch/main.ts +38 -0
- package/debug/launch/setup.ts +50 -0
- package/debug/launch/sp.ts +21 -0
- package/debug/launch/tsconfig.json +27 -0
- package/debug/serve/main.ts +47 -0
- package/debug/serve/plumbing/local-module-resolver-plugin.ts +68 -0
- package/debug/serve/plumbing/run.ts +24 -0
- package/debug/serve/plumbing/serve.ts +27 -0
- package/debug/serve/plumbing/webpack.config.ts +43 -0
- package/debug/serve/spa.html +12 -0
- package/debug/serve/tsconfig.json +15 -0
- package/debug/spfx/.eslintrc.js +352 -0
- package/debug/spfx/README.md +73 -0
- package/debug/spfx/package-lock.json +57299 -0
- package/debug/spfx/package.json +38 -0
- package/debug/spfx/pnpjs-local-debug-start.js +19 -0
- package/debug/spfx/teams/f4c0e5ff-c402-46b7-8073-8cc506808d06_color.png +0 -0
- package/debug/spfx/teams/f4c0e5ff-c402-46b7-8073-8cc506808d06_outline.png +0 -0
- package/docs/_theme/main.html +5 -0
- package/docs/azidjsclient/index.md +36 -0
- package/docs/concepts/adv-clientside-pages.md +169 -0
- package/docs/concepts/auth-browser.md +42 -0
- package/docs/concepts/auth-nodejs.md +101 -0
- package/docs/concepts/auth-spfx.md +76 -0
- package/docs/concepts/authentication.md +42 -0
- package/docs/concepts/batching-caching.md +77 -0
- package/docs/concepts/batching.md +257 -0
- package/docs/concepts/calling-other-endpoints.md +213 -0
- package/docs/concepts/custom-bundle.md +15 -0
- package/docs/concepts/error-handling.md +245 -0
- package/docs/concepts/invokable.md +7 -0
- package/docs/concepts/nightly-builds.md +19 -0
- package/docs/concepts/project-preset.md +123 -0
- package/docs/concepts/selective-imports.md +106 -0
- package/docs/concepts/typings.md +23 -0
- package/docs/contributing/debug-tests.md +76 -0
- package/docs/contributing/debugging.md +135 -0
- package/docs/contributing/documentation.md +34 -0
- package/docs/contributing/extending-the-library.md +223 -0
- package/docs/contributing/index.md +22 -0
- package/docs/contributing/local-debug-configuration.md +28 -0
- package/docs/contributing/npm-scripts.md +148 -0
- package/docs/contributing/pull-requests.md +27 -0
- package/docs/contributing/settings.md +98 -0
- package/docs/contributing/setup-dev-machine.md +36 -0
- package/docs/core/behavior-recipes.md +199 -0
- package/docs/core/behaviors.md +179 -0
- package/docs/core/moments.md +215 -0
- package/docs/core/observers.md +100 -0
- package/docs/core/storage.md +90 -0
- package/docs/core/timeline.md +190 -0
- package/docs/core/util.md +191 -0
- package/docs/css/extra.css +33 -0
- package/docs/getting-started.md +361 -0
- package/docs/graph/behaviors.md +267 -0
- package/docs/graph/bookings.md +180 -0
- package/docs/graph/calendars.md +270 -0
- package/docs/graph/cloud-communications.md +40 -0
- package/docs/graph/columns.md +125 -0
- package/docs/graph/contacts.md +298 -0
- package/docs/graph/content-types.md +193 -0
- package/docs/graph/directoryobjects.md +106 -0
- package/docs/graph/groups.md +164 -0
- package/docs/graph/insights.md +151 -0
- package/docs/graph/invitations.md +22 -0
- package/docs/graph/items.md +38 -0
- package/docs/graph/lists.md +87 -0
- package/docs/graph/messages.md +20 -0
- package/docs/graph/onedrive.md +614 -0
- package/docs/graph/outlook.md +82 -0
- package/docs/graph/photos.md +71 -0
- package/docs/graph/planner.md +249 -0
- package/docs/graph/search.md +25 -0
- package/docs/graph/shares.md +44 -0
- package/docs/graph/sites.md +47 -0
- package/docs/graph/subscriptions.md +79 -0
- package/docs/graph/teams.md +293 -0
- package/docs/graph/users.md +134 -0
- package/docs/img/ConsoleListenerColors.png +0 -0
- package/docs/img/Logo.png +0 -0
- package/docs/img/PnPJS_FluentAPI.gif +0 -0
- package/docs/img/SPFx-On-Premesis-2016-1.png +0 -0
- package/docs/img/TimelineArchitecture.jpg +0 -0
- package/docs/img/csp_copyccvalue.png +0 -0
- package/docs/img/csp_networktab.png +0 -0
- package/docs/img/office365-header-icon.png +0 -0
- package/docs/img/usage-2020-eoy.png +0 -0
- package/docs/img/usage-2021-eoy.png +0 -0
- package/docs/img/usage-2022-eoy.png +0 -0
- package/docs/index.md +56 -0
- package/docs/logging/index.md +262 -0
- package/docs/msaljsclient/index.md +33 -0
- package/docs/news/2020-year-in-review.md +162 -0
- package/docs/news/2021-year-in-review.md +148 -0
- package/docs/news/2022-year-in-review.md +122 -0
- package/docs/nodejs/behaviors.md +164 -0
- package/docs/nodejs/sp-extensions.md +99 -0
- package/docs/packages.md +53 -0
- package/docs/queryable/behaviors.md +496 -0
- package/docs/queryable/extensions.md +204 -0
- package/docs/queryable/queryable.md +385 -0
- package/docs/sp/alias-parameters.md +76 -0
- package/docs/sp/alm.md +139 -0
- package/docs/sp/attachments.md +157 -0
- package/docs/sp/behaviors.md +142 -0
- package/docs/sp/clientside-pages.md +1048 -0
- package/docs/sp/column-defaults.md +241 -0
- package/docs/sp/comments-likes.md +302 -0
- package/docs/sp/content-types.md +131 -0
- package/docs/sp/context-info.md +67 -0
- package/docs/sp/favorites.md +91 -0
- package/docs/sp/features.md +83 -0
- package/docs/sp/fields.md +668 -0
- package/docs/sp/files.md +559 -0
- package/docs/sp/folders.md +532 -0
- package/docs/sp/forms.md +22 -0
- package/docs/sp/groupSiteManager.md +40 -0
- package/docs/sp/hubsites.md +140 -0
- package/docs/sp/items.md +601 -0
- package/docs/sp/lists.md +572 -0
- package/docs/sp/navigation.md +171 -0
- package/docs/sp/permissions.md +82 -0
- package/docs/sp/profiles.md +407 -0
- package/docs/sp/publishing-sitepageservice.md +16 -0
- package/docs/sp/recycle-bin.md +72 -0
- package/docs/sp/regional-settings.md +108 -0
- package/docs/sp/related-items.md +136 -0
- package/docs/sp/search.md +207 -0
- package/docs/sp/security.md +196 -0
- package/docs/sp/sharing.md +273 -0
- package/docs/sp/site-designs.md +117 -0
- package/docs/sp/site-groups.md +144 -0
- package/docs/sp/site-scripts.md +123 -0
- package/docs/sp/site-users.md +211 -0
- package/docs/sp/sites.md +269 -0
- package/docs/sp/social.md +182 -0
- package/docs/sp/sp-utilities-utility.md +159 -0
- package/docs/sp/subscriptions.md +79 -0
- package/docs/sp/taxonomy.md +470 -0
- package/docs/sp/tenant-properties.md +55 -0
- package/docs/sp/user-custom-actions.md +95 -0
- package/docs/sp/views.md +226 -0
- package/docs/sp/webs.md +947 -0
- package/docs/sp-admin/index.md +139 -0
- package/docs/transition-guide.md +87 -0
- package/docs/v1/404.html +1611 -0
- package/docs/v1/assets/fonts/font-awesome.css +4 -0
- package/docs/v1/assets/fonts/material-icons.css +13 -0
- package/docs/v1/assets/fonts/specimen/FontAwesome.ttf +0 -0
- package/docs/v1/assets/fonts/specimen/FontAwesome.woff +0 -0
- package/docs/v1/assets/fonts/specimen/FontAwesome.woff2 +0 -0
- package/docs/v1/assets/fonts/specimen/MaterialIcons-Regular.ttf +0 -0
- package/docs/v1/assets/fonts/specimen/MaterialIcons-Regular.woff +0 -0
- package/docs/v1/assets/fonts/specimen/MaterialIcons-Regular.woff2 +0 -0
- package/docs/v1/assets/images/favicon.png +0 -0
- package/docs/v1/assets/images/icons/bitbucket.1b09e088.svg +20 -0
- package/docs/v1/assets/images/icons/github.f0b8504a.svg +18 -0
- package/docs/v1/assets/images/icons/gitlab.6dd19c00.svg +38 -0
- package/docs/v1/assets/javascripts/application.583bbe55.js +1 -0
- package/docs/v1/assets/javascripts/lunr/lunr.da.js +1 -0
- package/docs/v1/assets/javascripts/lunr/lunr.de.js +1 -0
- package/docs/v1/assets/javascripts/lunr/lunr.du.js +1 -0
- package/docs/v1/assets/javascripts/lunr/lunr.es.js +1 -0
- package/docs/v1/assets/javascripts/lunr/lunr.fi.js +1 -0
- package/docs/v1/assets/javascripts/lunr/lunr.fr.js +1 -0
- package/docs/v1/assets/javascripts/lunr/lunr.hu.js +1 -0
- package/docs/v1/assets/javascripts/lunr/lunr.it.js +1 -0
- package/docs/v1/assets/javascripts/lunr/lunr.jp.js +1 -0
- package/docs/v1/assets/javascripts/lunr/lunr.multi.js +1 -0
- package/docs/v1/assets/javascripts/lunr/lunr.no.js +1 -0
- package/docs/v1/assets/javascripts/lunr/lunr.pt.js +1 -0
- package/docs/v1/assets/javascripts/lunr/lunr.ro.js +1 -0
- package/docs/v1/assets/javascripts/lunr/lunr.ru.js +1 -0
- package/docs/v1/assets/javascripts/lunr/lunr.stemmer.support.js +1 -0
- package/docs/v1/assets/javascripts/lunr/lunr.sv.js +1 -0
- package/docs/v1/assets/javascripts/lunr/lunr.tr.js +1 -0
- package/docs/v1/assets/javascripts/lunr/tinyseg.js +1 -0
- package/docs/v1/assets/javascripts/modernizr.1aa3b519.js +1 -0
- package/docs/v1/assets/stylesheets/application-palette.22915126.css +1176 -0
- package/docs/v1/assets/stylesheets/application.451f80e5.css +2552 -0
- package/docs/v1/common/docs/adalclient/index.html +1994 -0
- package/docs/v1/common/docs/collections/index.html +1786 -0
- package/docs/v1/common/docs/custom-httpclientimpl/index.html +1798 -0
- package/docs/v1/common/docs/index.html +1787 -0
- package/docs/v1/common/docs/libconfig/index.html +1930 -0
- package/docs/v1/common/docs/netutil/index.html +1860 -0
- package/docs/v1/common/docs/storage/index.html +1850 -0
- package/docs/v1/common/docs/util/index.html +2058 -0
- package/docs/v1/config-store/docs/configuration/index.html +1730 -0
- package/docs/v1/config-store/docs/index.html +1761 -0
- package/docs/v1/config-store/docs/providers/index.html +1782 -0
- package/docs/v1/documentation/SPFx-On-Premesis-2016/index.html +1720 -0
- package/docs/v1/documentation/beta-versions/index.html +1742 -0
- package/docs/v1/documentation/css/extra.css +33 -0
- package/docs/v1/documentation/debugging/index.html +2098 -0
- package/docs/v1/documentation/deployment/index.html +1972 -0
- package/docs/v1/documentation/documentation/index.html +1760 -0
- package/docs/v1/documentation/getting-started/index.html +2280 -0
- package/docs/v1/documentation/getting-started-dev/index.html +1799 -0
- package/docs/v1/documentation/gulp-commands/index.html +2100 -0
- package/docs/v1/documentation/img/Logo.png +0 -0
- package/docs/v1/documentation/img/PnPJS_FluentAPI.gif +0 -0
- package/docs/v1/documentation/img/SPFx-On-Premesis-2016-1.png +0 -0
- package/docs/v1/documentation/img/office365-header-icon.png +0 -0
- package/docs/v1/documentation/img/pnpjs-common-uml.svg +220 -0
- package/docs/v1/documentation/img/pnpjs-config-store-uml.svg +56 -0
- package/docs/v1/documentation/img/pnpjs-graph-uml.svg +602 -0
- package/docs/v1/documentation/img/pnpjs-logging-uml.svg +59 -0
- package/docs/v1/documentation/img/pnpjs-nodejs-uml.svg +85 -0
- package/docs/v1/documentation/img/pnpjs-odata-uml.svg +253 -0
- package/docs/v1/documentation/img/pnpjs-sp-addinhelpers-uml.svg +48 -0
- package/docs/v1/documentation/img/pnpjs-sp-clientsvc-uml.svg +167 -0
- package/docs/v1/documentation/img/pnpjs-sp-taxonomy-uml.svg +458 -0
- package/docs/v1/documentation/img/pnpjs-sp-uml.svg +2833 -0
- package/docs/v1/documentation/package-structure/index.html +1875 -0
- package/docs/v1/documentation/packages/index.html +1741 -0
- package/docs/v1/documentation/polyfill/index.html +1877 -0
- package/docs/v1/documentation/theme/main.html +5 -0
- package/docs/v1/documentation/transition-guide/index.html +1977 -0
- package/docs/v1/graph/docs/contacts/index.html +2080 -0
- package/docs/v1/graph/docs/directoryobjects/index.html +1865 -0
- package/docs/v1/graph/docs/index.html +1858 -0
- package/docs/v1/graph/docs/insights/index.html +1698 -0
- package/docs/v1/graph/docs/invitations/index.html +1742 -0
- package/docs/v1/graph/docs/onedrive/index.html +2086 -0
- package/docs/v1/graph/docs/people/index.html +1664 -0
- package/docs/v1/graph/docs/planner/index.html +2097 -0
- package/docs/v1/graph/docs/security/index.html +1692 -0
- package/docs/v1/graph/docs/sites/index.html +2043 -0
- package/docs/v1/graph/docs/subscriptions/index.html +1835 -0
- package/docs/v1/graph/docs/teams/index.html +2097 -0
- package/docs/v1/index.html +1889 -0
- package/docs/v1/logging/docs/index.html +2045 -0
- package/docs/v1/nodejs/docs/adal-certificate-fetch-client/index.html +1676 -0
- package/docs/v1/nodejs/docs/adal-fetch-client/index.html +1713 -0
- package/docs/v1/nodejs/docs/bearer-token-fetch-client/index.html +1712 -0
- package/docs/v1/nodejs/docs/index.html +1764 -0
- package/docs/v1/nodejs/docs/provider-hosted-app/index.html +1725 -0
- package/docs/v1/nodejs/docs/proxy/index.html +1699 -0
- package/docs/v1/nodejs/docs/sp-fetch-client/index.html +1895 -0
- package/docs/v1/odata/docs/caching/index.html +1988 -0
- package/docs/v1/odata/docs/core/index.html +1829 -0
- package/docs/v1/odata/docs/index.html +1781 -0
- package/docs/v1/odata/docs/odata-batch/index.html +1755 -0
- package/docs/v1/odata/docs/parsers/index.html +1862 -0
- package/docs/v1/odata/docs/pipeline/index.html +1811 -0
- package/docs/v1/odata/docs/queryable/index.html +1967 -0
- package/docs/v1/pnpjs/docs/index.html +1814 -0
- package/docs/v1/search/search_index.json +1 -0
- package/docs/v1/sitemap.xml +428 -0
- package/docs/v1/sitemap.xml.gz +0 -0
- package/docs/v1/sp/docs/alias-parameters/index.html +1830 -0
- package/docs/v1/sp/docs/alm/index.html +1920 -0
- package/docs/v1/sp/docs/attachments/index.html +1998 -0
- package/docs/v1/sp/docs/client-side-pages/index.html +2031 -0
- package/docs/v1/sp/docs/comments-likes/index.html +1958 -0
- package/docs/v1/sp/docs/content-types/index.html +1758 -0
- package/docs/v1/sp/docs/entity-merging/index.html +1838 -0
- package/docs/v1/sp/docs/features/index.html +1824 -0
- package/docs/v1/sp/docs/fields/index.html +2031 -0
- package/docs/v1/sp/docs/files/index.html +2178 -0
- package/docs/v1/sp/docs/index.html +1894 -0
- package/docs/v1/sp/docs/items/index.html +2362 -0
- package/docs/v1/sp/docs/navigation-service/index.html +1791 -0
- package/docs/v1/sp/docs/permissions/index.html +1860 -0
- package/docs/v1/sp/docs/profiles/index.html +1794 -0
- package/docs/v1/sp/docs/related-items/index.html +1886 -0
- package/docs/v1/sp/docs/search/index.html +1830 -0
- package/docs/v1/sp/docs/sharing/index.html +2058 -0
- package/docs/v1/sp/docs/sitedesigns/index.html +1851 -0
- package/docs/v1/sp/docs/sites/index.html +2186 -0
- package/docs/v1/sp/docs/social/index.html +2011 -0
- package/docs/v1/sp/docs/sp-utilities-utility/index.html +2061 -0
- package/docs/v1/sp/docs/tenant-properties/index.html +1795 -0
- package/docs/v1/sp/docs/views/index.html +1869 -0
- package/docs/v1/sp/docs/webs/index.html +1972 -0
- package/docs/v1/sp-addinhelpers/docs/index.html +1771 -0
- package/docs/v1/sp-addinhelpers/docs/sp-request-executor-client/index.html +1760 -0
- package/docs/v1/sp-addinhelpers/docs/sp-rest-addin/index.html +1711 -0
- package/docs/v1/sp-clientsvc/docs/index.html +1736 -0
- package/docs/v1/sp-taxonomy/docs/index.html +1887 -0
- package/docs/v1/sp-taxonomy/docs/labels/index.html +1827 -0
- package/docs/v1/sp-taxonomy/docs/term-groups/index.html +1875 -0
- package/docs/v1/sp-taxonomy/docs/term-sets/index.html +1946 -0
- package/docs/v1/sp-taxonomy/docs/term-stores/index.html +2111 -0
- package/docs/v1/sp-taxonomy/docs/terms/index.html +2036 -0
- package/docs/v1/sp-taxonomy/docs/utilities/index.html +1783 -0
- package/docs/v2/404.html +2108 -0
- package/docs/v2/SPFx-on-premises/index.html +2278 -0
- package/docs/v2/_theme/main.html +5 -0
- package/docs/v2/adaljsclient/adalclient/index.html +15 -0
- package/docs/v2/adaljsclient/index.html +15 -0
- package/docs/v2/assets/images/favicon.png +0 -0
- package/docs/v2/assets/javascripts/bundle.9554a270.min.js +2 -0
- package/docs/v2/assets/javascripts/bundle.9554a270.min.js.map +1 -0
- package/docs/v2/assets/javascripts/lunr/min/lunr.ar.min.js +1 -0
- package/docs/v2/assets/javascripts/lunr/min/lunr.da.min.js +18 -0
- package/docs/v2/assets/javascripts/lunr/min/lunr.de.min.js +18 -0
- package/docs/v2/assets/javascripts/lunr/min/lunr.du.min.js +18 -0
- package/docs/v2/assets/javascripts/lunr/min/lunr.es.min.js +18 -0
- package/docs/v2/assets/javascripts/lunr/min/lunr.fi.min.js +18 -0
- package/docs/v2/assets/javascripts/lunr/min/lunr.fr.min.js +18 -0
- package/docs/v2/assets/javascripts/lunr/min/lunr.hu.min.js +18 -0
- package/docs/v2/assets/javascripts/lunr/min/lunr.it.min.js +18 -0
- package/docs/v2/assets/javascripts/lunr/min/lunr.ja.min.js +1 -0
- package/docs/v2/assets/javascripts/lunr/min/lunr.jp.min.js +1 -0
- package/docs/v2/assets/javascripts/lunr/min/lunr.multi.min.js +1 -0
- package/docs/v2/assets/javascripts/lunr/min/lunr.nl.min.js +18 -0
- package/docs/v2/assets/javascripts/lunr/min/lunr.no.min.js +18 -0
- package/docs/v2/assets/javascripts/lunr/min/lunr.pt.min.js +18 -0
- package/docs/v2/assets/javascripts/lunr/min/lunr.ro.min.js +18 -0
- package/docs/v2/assets/javascripts/lunr/min/lunr.ru.min.js +18 -0
- package/docs/v2/assets/javascripts/lunr/min/lunr.stemmer.support.min.js +1 -0
- package/docs/v2/assets/javascripts/lunr/min/lunr.sv.min.js +18 -0
- package/docs/v2/assets/javascripts/lunr/min/lunr.tr.min.js +18 -0
- package/docs/v2/assets/javascripts/lunr/min/lunr.vi.min.js +1 -0
- package/docs/v2/assets/javascripts/lunr/tinyseg.min.js +1 -0
- package/docs/v2/assets/javascripts/vendor.77e55a48.min.js +30 -0
- package/docs/v2/assets/javascripts/vendor.77e55a48.min.js.map +1 -0
- package/docs/v2/assets/javascripts/worker/search.4ac00218.min.js +59 -0
- package/docs/v2/assets/javascripts/worker/search.4ac00218.min.js.map +1 -0
- package/docs/v2/assets/stylesheets/main.38780c08.min.css +3 -0
- package/docs/v2/assets/stylesheets/main.38780c08.min.css.map +1 -0
- package/docs/v2/assets/stylesheets/palette.3f72e892.min.css +3 -0
- package/docs/v2/assets/stylesheets/palette.3f72e892.min.css.map +1 -0
- package/docs/v2/authentication/adaljsclient/index.html +2510 -0
- package/docs/v2/authentication/bearertokenclient/index.html +2251 -0
- package/docs/v2/authentication/client-spa/index.html +2206 -0
- package/docs/v2/authentication/client-spfx/index.html +2397 -0
- package/docs/v2/authentication/index.html +2307 -0
- package/docs/v2/authentication/lambdaclient/index.html +2304 -0
- package/docs/v2/authentication/msaljsclient/index.html +2413 -0
- package/docs/v2/authentication/server-nodejs/index.html +2404 -0
- package/docs/v2/authentication/sp-app-registration/index.html +2273 -0
- package/docs/v2/common/collections/index.html +2277 -0
- package/docs/v2/common/custom-httpclientimpl/index.html +2300 -0
- package/docs/v2/common/index.html +2262 -0
- package/docs/v2/common/libconfig/index.html +2413 -0
- package/docs/v2/common/netutil/index.html +2350 -0
- package/docs/v2/common/storage/index.html +2339 -0
- package/docs/v2/common/util/index.html +2638 -0
- package/docs/v2/concepts/configuration/index.html +2685 -0
- package/docs/v2/concepts/custom-bundle/index.html +2279 -0
- package/docs/v2/concepts/error-handling/index.html +2539 -0
- package/docs/v2/concepts/ie11-mode/index.html +2278 -0
- package/docs/v2/concepts/invokable/index.html +2254 -0
- package/docs/v2/concepts/polyfill/index.html +2401 -0
- package/docs/v2/concepts/selective-imports/index.html +2360 -0
- package/docs/v2/concepts/settings/index.html +2551 -0
- package/docs/v2/config-store/configuration/index.html +2226 -0
- package/docs/v2/config-store/index.html +2239 -0
- package/docs/v2/config-store/providers/index.html +2275 -0
- package/docs/v2/contributing/debug-tests/index.html +2323 -0
- package/docs/v2/contributing/debugging/index.html +2514 -0
- package/docs/v2/contributing/documentation/index.html +2291 -0
- package/docs/v2/contributing/extending-the-library/index.html +2521 -0
- package/docs/v2/contributing/index.html +2270 -0
- package/docs/v2/contributing/local-debug-configuration/index.html +2284 -0
- package/docs/v2/contributing/pull-requests/index.html +2261 -0
- package/docs/v2/contributing/setup-dev-machine/index.html +2284 -0
- package/docs/v2/css/extra.css +33 -0
- package/docs/v2/debug-tests/index.html +15 -0
- package/docs/v2/debugging/index.html +15 -0
- package/docs/v2/documentation/index.html +15 -0
- package/docs/v2/getting-started/index.html +2789 -0
- package/docs/v2/getting-started-dev/index.html +15 -0
- package/docs/v2/graph/calendars/index.html +2569 -0
- package/docs/v2/graph/contacts/index.html +2673 -0
- package/docs/v2/graph/directoryobjects/index.html +2402 -0
- package/docs/v2/graph/groups/index.html +2488 -0
- package/docs/v2/graph/index.html +2333 -0
- package/docs/v2/graph/insights/index.html +2478 -0
- package/docs/v2/graph/invitations/index.html +2273 -0
- package/docs/v2/graph/onedrive/index.html +2617 -0
- package/docs/v2/graph/outlook/index.html +2363 -0
- package/docs/v2/graph/photos/index.html +2351 -0
- package/docs/v2/graph/planner/index.html +2628 -0
- package/docs/v2/graph/search/index.html +2264 -0
- package/docs/v2/graph/subscriptions/index.html +2333 -0
- package/docs/v2/graph/teams/index.html +2619 -0
- package/docs/v2/graph/users/index.html +2461 -0
- package/docs/v2/img/ConsoleListenerColors.png +0 -0
- package/docs/v2/img/Logo.png +0 -0
- package/docs/v2/img/PnPJS_FluentAPI.gif +0 -0
- package/docs/v2/img/SPFx-On-Premesis-2016-1.png +0 -0
- package/docs/v2/img/office365-header-icon.png +0 -0
- package/docs/v2/img/usage-2020-eoy.png +0 -0
- package/docs/v2/index.html +2410 -0
- package/docs/v2/logging/index.html +2622 -0
- package/docs/v2/news/2020-year-in-review/index.html +2525 -0
- package/docs/v2/nodejs/adal-fetch-client/index.html +2204 -0
- package/docs/v2/nodejs/bearer-token-fetch-client/index.html +2203 -0
- package/docs/v2/nodejs/index.html +2261 -0
- package/docs/v2/nodejs/provider-hosted-app/index.html +2220 -0
- package/docs/v2/nodejs/proxy/index.html +2238 -0
- package/docs/v2/nodejs/sp-extensions/index.html +2362 -0
- package/docs/v2/nodejs/sp-fetch-client/index.html +2294 -0
- package/docs/v2/nodejs-support/index.html +2398 -0
- package/docs/v2/npm-scripts/index.html +2521 -0
- package/docs/v2/odata/caching/index.html +2465 -0
- package/docs/v2/odata/core/index.html +2322 -0
- package/docs/v2/odata/debug/index.html +2358 -0
- package/docs/v2/odata/extensions/index.html +2581 -0
- package/docs/v2/odata/index.html +2259 -0
- package/docs/v2/odata/odata-batch/index.html +2250 -0
- package/docs/v2/odata/parsers/index.html +2355 -0
- package/docs/v2/odata/pipeline/index.html +2297 -0
- package/docs/v2/odata/queryable/index.html +2455 -0
- package/docs/v2/packages/index.html +2251 -0
- package/docs/v2/pnpjs/index.html +2281 -0
- package/docs/v2/search/search_index.json +1 -0
- package/docs/v2/sitemap.xml +483 -0
- package/docs/v2/sitemap.xml.gz +0 -0
- package/docs/v2/sp/alias-parameters/index.html +2330 -0
- package/docs/v2/sp/alm/index.html +2433 -0
- package/docs/v2/sp/attachments/index.html +2504 -0
- package/docs/v2/sp/clientside-pages/index.html +3477 -0
- package/docs/v2/sp/column-defaults/index.html +2540 -0
- package/docs/v2/sp/comments-likes/index.html +2646 -0
- package/docs/v2/sp/content-types/index.html +2462 -0
- package/docs/v2/sp/custom-irequestclient/index.html +2339 -0
- package/docs/v2/sp/entity-merging/index.html +2325 -0
- package/docs/v2/sp/features/index.html +2440 -0
- package/docs/v2/sp/fields/index.html +3103 -0
- package/docs/v2/sp/files/index.html +2949 -0
- package/docs/v2/sp/folders/index.html +2968 -0
- package/docs/v2/sp/forms/index.html +2289 -0
- package/docs/v2/sp/hubsites/index.html +2485 -0
- package/docs/v2/sp/index.html +2328 -0
- package/docs/v2/sp/items/index.html +2974 -0
- package/docs/v2/sp/lists/index.html +3387 -0
- package/docs/v2/sp/navigation/index.html +2535 -0
- package/docs/v2/sp/permissions/index.html +2338 -0
- package/docs/v2/sp/profiles/index.html +2806 -0
- package/docs/v2/sp/regional-settings/index.html +2394 -0
- package/docs/v2/sp/related-items/index.html +2417 -0
- package/docs/v2/sp/search/index.html +2474 -0
- package/docs/v2/sp/security/index.html +2432 -0
- package/docs/v2/sp/sharing/index.html +2589 -0
- package/docs/v2/sp/site-designs/index.html +2414 -0
- package/docs/v2/sp/site-groups/index.html +2504 -0
- package/docs/v2/sp/site-scripts/index.html +2433 -0
- package/docs/v2/sp/site-users/index.html +2641 -0
- package/docs/v2/sp/sites/index.html +2727 -0
- package/docs/v2/sp/social/index.html +2517 -0
- package/docs/v2/sp/sp-utilities-utility/index.html +2460 -0
- package/docs/v2/sp/subscriptions/index.html +2395 -0
- package/docs/v2/sp/taxonomy/index.html +2565 -0
- package/docs/v2/sp/tenant-properties/index.html +2286 -0
- package/docs/v2/sp/user-custom-actions/index.html +2424 -0
- package/docs/v2/sp/views/index.html +2652 -0
- package/docs/v2/sp/webs/index.html +4190 -0
- package/docs/v2/sp-addinhelpers/index.html +2274 -0
- package/docs/v2/sp-addinhelpers/sp-request-executor-client/index.html +2253 -0
- package/docs/v2/sp-addinhelpers/sp-rest-addin/index.html +2206 -0
- package/docs/v2/transition-guide/index.html +2435 -0
- package/mkdocs-requirements.txt +2 -0
- package/mkdocs.yml +188 -0
- package/package.json +96 -0
- package/packages/azidjsclient/index.ts +68 -0
- package/packages/azidjsclient/package.json +13 -0
- package/packages/azidjsclient/tsconfig.json +12 -0
- package/packages/core/behaviors/assign-from.ts +17 -0
- package/packages/core/behaviors/copy-from.ts +58 -0
- package/packages/core/extendable.ts +193 -0
- package/packages/core/index.ts +11 -0
- package/packages/core/moments.ts +117 -0
- package/packages/core/package.json +10 -0
- package/packages/core/storage.ts +274 -0
- package/packages/core/timeline.ts +387 -0
- package/packages/core/tsconfig.json +10 -0
- package/packages/core/util.ts +169 -0
- package/packages/graph/attachments/conversations.ts +14 -0
- package/packages/graph/attachments/index.ts +8 -0
- package/packages/graph/attachments/types.ts +37 -0
- package/packages/graph/batching.ts +408 -0
- package/packages/graph/behaviors/consistency-level.ts +17 -0
- package/packages/graph/behaviors/defaults.ts +41 -0
- package/packages/graph/behaviors/endpoint.ts +22 -0
- package/packages/graph/behaviors/graphbrowser.ts +38 -0
- package/packages/graph/behaviors/paged.ts +109 -0
- package/packages/graph/behaviors/spfx.ts +46 -0
- package/packages/graph/behaviors/telemetry.ts +19 -0
- package/packages/graph/bookings/funcs.ts +18 -0
- package/packages/graph/bookings/index.ts +62 -0
- package/packages/graph/bookings/types.ts +352 -0
- package/packages/graph/calendars/funcs.ts +58 -0
- package/packages/graph/calendars/groups.ts +19 -0
- package/packages/graph/calendars/index.ts +18 -0
- package/packages/graph/calendars/types.ts +73 -0
- package/packages/graph/calendars/users.ts +28 -0
- package/packages/graph/cloud-communications/index.ts +24 -0
- package/packages/graph/cloud-communications/types.ts +32 -0
- package/packages/graph/cloud-communications/users.ts +15 -0
- package/packages/graph/columns/addColumns.ts +28 -0
- package/packages/graph/columns/content-types.ts +44 -0
- package/packages/graph/columns/index.ts +14 -0
- package/packages/graph/columns/lists.ts +33 -0
- package/packages/graph/columns/sites.ts +32 -0
- package/packages/graph/columns/types.ts +24 -0
- package/packages/graph/contacts/index.ts +14 -0
- package/packages/graph/contacts/types.ts +126 -0
- package/packages/graph/contacts/users.ts +17 -0
- package/packages/graph/content-types/index.ts +11 -0
- package/packages/graph/content-types/lists.ts +44 -0
- package/packages/graph/content-types/sites.ts +70 -0
- package/packages/graph/content-types/types.ts +112 -0
- package/packages/graph/conversations/groups.ts +20 -0
- package/packages/graph/conversations/index.ts +19 -0
- package/packages/graph/conversations/types.ts +147 -0
- package/packages/graph/decorators.ts +164 -0
- package/packages/graph/directory-objects/index.ts +24 -0
- package/packages/graph/directory-objects/types.ts +94 -0
- package/packages/graph/fi.ts +46 -0
- package/packages/graph/graphqueryable.ts +193 -0
- package/packages/graph/groups/index.ts +25 -0
- package/packages/graph/groups/types.ts +130 -0
- package/packages/graph/index.ts +21 -0
- package/packages/graph/insights/index.ts +20 -0
- package/packages/graph/insights/types.ts +105 -0
- package/packages/graph/insights/users.ts +14 -0
- package/packages/graph/invitations/index.ts +22 -0
- package/packages/graph/invitations/types.ts +41 -0
- package/packages/graph/lists/drive.ts +21 -0
- package/packages/graph/lists/index.ts +10 -0
- package/packages/graph/lists/sites.ts +16 -0
- package/packages/graph/lists/types.ts +47 -0
- package/packages/graph/members/groups.ts +17 -0
- package/packages/graph/members/index.ts +8 -0
- package/packages/graph/members/types.ts +40 -0
- package/packages/graph/messages/index.ts +14 -0
- package/packages/graph/messages/types.ts +46 -0
- package/packages/graph/messages/users.ts +27 -0
- package/packages/graph/onedrive/funcs.ts +40 -0
- package/packages/graph/onedrive/groups.ts +33 -0
- package/packages/graph/onedrive/index.ts +48 -0
- package/packages/graph/onedrive/sites.ts +35 -0
- package/packages/graph/onedrive/types.ts +482 -0
- package/packages/graph/onedrive/users.ts +56 -0
- package/packages/graph/onenote/index.ts +16 -0
- package/packages/graph/onenote/types.ts +119 -0
- package/packages/graph/onenote/users.ts +14 -0
- package/packages/graph/operations.ts +22 -0
- package/packages/graph/outlook/index.ts +11 -0
- package/packages/graph/outlook/types.ts +58 -0
- package/packages/graph/outlook/users.ts +14 -0
- package/packages/graph/package.json +16 -0
- package/packages/graph/photos/groups.ts +14 -0
- package/packages/graph/photos/index.ts +7 -0
- package/packages/graph/photos/types.ts +33 -0
- package/packages/graph/photos/users.ts +14 -0
- package/packages/graph/planner/groups.ts +14 -0
- package/packages/graph/planner/index.ts +42 -0
- package/packages/graph/planner/types.ts +213 -0
- package/packages/graph/planner/users.ts +14 -0
- package/packages/graph/post-install.cjs +20 -0
- package/packages/graph/presets/all.ts +42 -0
- package/packages/graph/search/index.ts +18 -0
- package/packages/graph/search/types.ts +20 -0
- package/packages/graph/shares/index.ts +23 -0
- package/packages/graph/shares/types.ts +47 -0
- package/packages/graph/sites/group.ts +14 -0
- package/packages/graph/sites/index.ts +25 -0
- package/packages/graph/sites/types.ts +45 -0
- package/packages/graph/subscriptions/index.ts +24 -0
- package/packages/graph/subscriptions/types.ts +59 -0
- package/packages/graph/teams/index.ts +68 -0
- package/packages/graph/teams/types.ts +333 -0
- package/packages/graph/teams/users.ts +14 -0
- package/packages/graph/tsconfig.json +16 -0
- package/packages/graph/users/index.ts +34 -0
- package/packages/graph/users/types.ts +56 -0
- package/packages/graph/utils/type.ts +3 -0
- package/packages/logging/index.ts +145 -0
- package/packages/logging/listeners.ts +134 -0
- package/packages/logging/package.json +10 -0
- package/packages/logging/tsconfig.json +7 -0
- package/packages/msaljsclient/index.ts +40 -0
- package/packages/msaljsclient/package.json +12 -0
- package/packages/msaljsclient/tsconfig.json +12 -0
- package/packages/nodejs/behaviors/fetch.ts +130 -0
- package/packages/nodejs/behaviors/graphdefault.ts +50 -0
- package/packages/nodejs/behaviors/msal.ts +24 -0
- package/packages/nodejs/behaviors/spdefault.ts +45 -0
- package/packages/nodejs/behaviors/stream-parse.ts +7 -0
- package/packages/nodejs/index.ts +33 -0
- package/packages/nodejs/package.json +17 -0
- package/packages/nodejs/sp-extensions/stream.ts +136 -0
- package/packages/nodejs/tsconfig.json +28 -0
- package/packages/queryable/add-prop.ts +18 -0
- package/packages/queryable/behaviors/bearer-token.ts +15 -0
- package/packages/queryable/behaviors/browser-fetch.ts +131 -0
- package/packages/queryable/behaviors/caching-pessimistic.ts +67 -0
- package/packages/queryable/behaviors/caching.ts +149 -0
- package/packages/queryable/behaviors/cancelable.ts +264 -0
- package/packages/queryable/behaviors/inject-headers.ts +23 -0
- package/packages/queryable/behaviors/parsers.ts +134 -0
- package/packages/queryable/behaviors/resolvers.ts +28 -0
- package/packages/queryable/behaviors/timeout.ts +24 -0
- package/packages/queryable/index.ts +19 -0
- package/packages/queryable/invokable.ts +42 -0
- package/packages/queryable/operations.ts +32 -0
- package/packages/queryable/package.json +11 -0
- package/packages/queryable/queryable-factory.ts +19 -0
- package/packages/queryable/queryable.ts +239 -0
- package/packages/queryable/request-builders.ts +20 -0
- package/packages/queryable/tsconfig.json +11 -0
- package/packages/readme.md +21 -0
- package/packages/sp/appcatalog/index.ts +35 -0
- package/packages/sp/appcatalog/types.ts +176 -0
- package/packages/sp/appcatalog/web.ts +19 -0
- package/packages/sp/attachments/index.ts +11 -0
- package/packages/sp/attachments/item.ts +17 -0
- package/packages/sp/attachments/types.ts +95 -0
- package/packages/sp/batching.ts +483 -0
- package/packages/sp/behaviors/defaults.ts +38 -0
- package/packages/sp/behaviors/request-digest.ts +78 -0
- package/packages/sp/behaviors/spbrowser.ts +40 -0
- package/packages/sp/behaviors/spfx.ts +83 -0
- package/packages/sp/behaviors/telemetry.ts +35 -0
- package/packages/sp/clientside-pages/funcs.ts +27 -0
- package/packages/sp/clientside-pages/index.ts +27 -0
- package/packages/sp/clientside-pages/types.ts +1661 -0
- package/packages/sp/clientside-pages/web.ts +93 -0
- package/packages/sp/column-defaults/folder.ts +89 -0
- package/packages/sp/column-defaults/index.ts +8 -0
- package/packages/sp/column-defaults/list.ts +219 -0
- package/packages/sp/column-defaults/types.ts +19 -0
- package/packages/sp/comments/clientside-page.ts +120 -0
- package/packages/sp/comments/index.ts +14 -0
- package/packages/sp/comments/item.ts +77 -0
- package/packages/sp/comments/types.ts +160 -0
- package/packages/sp/content-types/index.ts +17 -0
- package/packages/sp/content-types/item.ts +17 -0
- package/packages/sp/content-types/list.ts +17 -0
- package/packages/sp/content-types/types.ts +181 -0
- package/packages/sp/content-types/web.ts +17 -0
- package/packages/sp/context-info/index.ts +40 -0
- package/packages/sp/decorators.ts +18 -0
- package/packages/sp/favorites/index.ts +32 -0
- package/packages/sp/favorites/types.ts +187 -0
- package/packages/sp/features/index.ts +11 -0
- package/packages/sp/features/site.ts +17 -0
- package/packages/sp/features/types.ts +73 -0
- package/packages/sp/features/web.ts +17 -0
- package/packages/sp/fi.ts +46 -0
- package/packages/sp/fields/index.ts +22 -0
- package/packages/sp/fields/list.ts +17 -0
- package/packages/sp/fields/types.ts +648 -0
- package/packages/sp/fields/web.ts +23 -0
- package/packages/sp/files/folder.ts +17 -0
- package/packages/sp/files/index.ts +25 -0
- package/packages/sp/files/item.ts +17 -0
- package/packages/sp/files/readable-file.ts +40 -0
- package/packages/sp/files/types.ts +771 -0
- package/packages/sp/files/web.ts +46 -0
- package/packages/sp/folders/index.ts +19 -0
- package/packages/sp/folders/item.ts +16 -0
- package/packages/sp/folders/list.ts +17 -0
- package/packages/sp/folders/types.ts +439 -0
- package/packages/sp/folders/web.ts +50 -0
- package/packages/sp/forms/index.ts +9 -0
- package/packages/sp/forms/list.ts +14 -0
- package/packages/sp/forms/types.ts +41 -0
- package/packages/sp/groupsitemanager/index.ts +18 -0
- package/packages/sp/groupsitemanager/types.ts +433 -0
- package/packages/sp/hubsites/index.ts +31 -0
- package/packages/sp/hubsites/site.ts +43 -0
- package/packages/sp/hubsites/types.ts +71 -0
- package/packages/sp/hubsites/web.ts +38 -0
- package/packages/sp/index.ts +24 -0
- package/packages/sp/items/get-all.ts +52 -0
- package/packages/sp/items/index.ts +18 -0
- package/packages/sp/items/list.ts +14 -0
- package/packages/sp/items/types.ts +405 -0
- package/packages/sp/lists/index.ts +23 -0
- package/packages/sp/lists/types.ts +851 -0
- package/packages/sp/lists/web.ts +68 -0
- package/packages/sp/navigation/index.ts +35 -0
- package/packages/sp/navigation/types.ts +243 -0
- package/packages/sp/navigation/web.ts +19 -0
- package/packages/sp/operations.ts +33 -0
- package/packages/sp/package.json +15 -0
- package/packages/sp/post-install.cjs +20 -0
- package/packages/sp/presets/all.ts +75 -0
- package/packages/sp/profiles/index.ts +30 -0
- package/packages/sp/profiles/types.ts +595 -0
- package/packages/sp/publishing-sitepageservice/index.ts +22 -0
- package/packages/sp/publishing-sitepageservice/types.ts +18 -0
- package/packages/sp/recycle-bin/index.ts +36 -0
- package/packages/sp/recycle-bin/types.ts +113 -0
- package/packages/sp/regional-settings/content-type.ts +11 -0
- package/packages/sp/regional-settings/field.ts +11 -0
- package/packages/sp/regional-settings/funcs.ts +10 -0
- package/packages/sp/regional-settings/index.ts +18 -0
- package/packages/sp/regional-settings/list.ts +11 -0
- package/packages/sp/regional-settings/types.ts +159 -0
- package/packages/sp/regional-settings/user-custom-actions.ts +11 -0
- package/packages/sp/regional-settings/web.ts +21 -0
- package/packages/sp/related-items/index.ts +7 -0
- package/packages/sp/related-items/types.ts +194 -0
- package/packages/sp/related-items/web.ts +22 -0
- package/packages/sp/search/index.ts +48 -0
- package/packages/sp/search/query.ts +254 -0
- package/packages/sp/search/suggest.ts +130 -0
- package/packages/sp/search/types.ts +480 -0
- package/packages/sp/security/funcs.ts +94 -0
- package/packages/sp/security/index.ts +21 -0
- package/packages/sp/security/item.ts +29 -0
- package/packages/sp/security/list.ts +29 -0
- package/packages/sp/security/types.ts +440 -0
- package/packages/sp/security/web.ts +34 -0
- package/packages/sp/sharing/file.ts +75 -0
- package/packages/sp/sharing/folder.ts +69 -0
- package/packages/sp/sharing/funcs.ts +258 -0
- package/packages/sp/sharing/index.ts +27 -0
- package/packages/sp/sharing/item.ts +53 -0
- package/packages/sp/sharing/types.ts +626 -0
- package/packages/sp/sharing/web.ts +109 -0
- package/packages/sp/site-designs/index.ts +29 -0
- package/packages/sp/site-designs/types.ts +456 -0
- package/packages/sp/site-designs/web.ts +41 -0
- package/packages/sp/site-groups/index.ts +11 -0
- package/packages/sp/site-groups/types.ts +133 -0
- package/packages/sp/site-groups/web.ts +73 -0
- package/packages/sp/site-scripts/index.ts +27 -0
- package/packages/sp/site-scripts/list.ts +27 -0
- package/packages/sp/site-scripts/types.ts +243 -0
- package/packages/sp/site-scripts/web.ts +24 -0
- package/packages/sp/site-users/index.ts +12 -0
- package/packages/sp/site-users/types.ts +195 -0
- package/packages/sp/site-users/web.ts +56 -0
- package/packages/sp/sites/index.ts +26 -0
- package/packages/sp/sites/types.ts +422 -0
- package/packages/sp/social/index.ts +33 -0
- package/packages/sp/social/types.ts +381 -0
- package/packages/sp/spqueryable.ts +244 -0
- package/packages/sp/sputilities/index.ts +23 -0
- package/packages/sp/sputilities/types.ts +197 -0
- package/packages/sp/subscriptions/index.ts +10 -0
- package/packages/sp/subscriptions/list.ts +18 -0
- package/packages/sp/subscriptions/types.ts +107 -0
- package/packages/sp/taxonomy/index.ts +50 -0
- package/packages/sp/taxonomy/types.ts +508 -0
- package/packages/sp/tsconfig.json +16 -0
- package/packages/sp/types.ts +283 -0
- package/packages/sp/user-custom-actions/index.ts +15 -0
- package/packages/sp/user-custom-actions/list.ts +18 -0
- package/packages/sp/user-custom-actions/site.ts +18 -0
- package/packages/sp/user-custom-actions/types.ts +133 -0
- package/packages/sp/user-custom-actions/web.ts +21 -0
- package/packages/sp/utils/encode-path-str.ts +29 -0
- package/packages/sp/utils/extract-web-url.ts +21 -0
- package/packages/sp/utils/file-names.ts +35 -0
- package/packages/sp/utils/metadata.ts +5 -0
- package/packages/sp/utils/odata-url-from.ts +42 -0
- package/packages/sp/utils/to-resource-path.ts +9 -0
- package/packages/sp/views/index.ts +14 -0
- package/packages/sp/views/list.ts +33 -0
- package/packages/sp/views/types.ts +210 -0
- package/packages/sp/webparts/file.ts +21 -0
- package/packages/sp/webparts/index.ts +11 -0
- package/packages/sp/webparts/types.ts +141 -0
- package/packages/sp/webs/index.ts +32 -0
- package/packages/sp/webs/types.ts +350 -0
- package/packages/sp-admin/index.ts +46 -0
- package/packages/sp-admin/office-tenant.ts +567 -0
- package/packages/sp-admin/package.json +13 -0
- package/packages/sp-admin/site-properties.ts +45 -0
- package/packages/sp-admin/tenant.ts +595 -0
- package/packages/sp-admin/tsconfig.json +20 -0
- package/packages/sp-admin/types.ts +1679 -0
- package/packages/tsconfig-watch.json +9 -0
- package/packages/tsconfig.json +37 -0
- package/pre-install.cjs +1 -0
- package/samples/custom-bundle-webpack/index.ts +33 -0
- package/samples/custom-bundle-webpack/package-lock.json +4601 -0
- package/samples/custom-bundle-webpack/package.json +18 -0
- package/samples/custom-bundle-webpack/readme.md +102 -0
- package/samples/custom-bundle-webpack/tsconfig.json +12 -0
- package/samples/custom-bundle-webpack/webpack.config.js +27 -0
- package/samples/nodejs-app/.vscode/launch.json +27 -0
- package/samples/nodejs-app/.vscode/settings.json +10 -0
- package/samples/nodejs-app/.vscode/tasks.json +22 -0
- package/samples/nodejs-app/index.ts +63 -0
- package/samples/nodejs-app/package-lock.json +259 -0
- package/samples/nodejs-app/package.json +21 -0
- package/samples/nodejs-app/readme.md +140 -0
- package/samples/nodejs-app/tsconfig.json +14 -0
- package/samples/nodejs-commonjs/package-lock.json +702 -0
- package/samples/nodejs-commonjs/package.json +21 -0
- package/samples/nodejs-commonjs/readme.md +58 -0
- package/samples/nodejs-commonjs/src/index.ts +23 -0
- package/samples/nodejs-commonjs/src/settings.ts +35 -0
- package/samples/nodejs-commonjs/tsconfig.json +35 -0
- package/samples/project-preset/README.md +73 -0
- package/samples/project-preset/package-lock.json +21097 -0
- package/samples/project-preset/package.json +29 -0
- package/samples/project-preset/teams/4530a515-8ba7-45bb-9a27-be06b33c59d4_color.png +0 -0
- package/samples/project-preset/teams/4530a515-8ba7-45bb-9a27-be06b33c59d4_outline.png +0 -0
- package/samples/readme.md +16 -0
- package/settings.example.js +57 -0
- package/test/args.ts +107 -0
- package/test/clean-subsite.ts +36 -0
- package/test/core/assumptions.ts +99 -0
- package/test/core/storage.ts +60 -0
- package/test/core/timeline.ts +205 -0
- package/test/core/util.ts +205 -0
- package/test/graph/assets/testconvert.docx +0 -0
- package/test/graph/batch.ts +125 -0
- package/test/graph/calendars.ts +234 -0
- package/test/graph/columns.ts +247 -0
- package/test/graph/contacts.ts +254 -0
- package/test/graph/content-types.ts +206 -0
- package/test/graph/directoryobjects.ts +115 -0
- package/test/graph/groups.ts +130 -0
- package/test/graph/lists.ts +72 -0
- package/test/graph/onedrive.ts +365 -0
- package/test/graph/outlook.ts +95 -0
- package/test/graph/paging.ts +91 -0
- package/test/graph/planner.ts +160 -0
- package/test/graph/querable.ts +97 -0
- package/test/graph/search.ts +4 -0
- package/test/graph/shares.ts +26 -0
- package/test/graph/sites.ts +40 -0
- package/test/graph/teams.ts +76 -0
- package/test/graph/utilities/getTestingGraphSPSite.ts +27 -0
- package/test/graph/utilities/getValidUser.ts +37 -0
- package/test/load-settings.ts +103 -0
- package/test/logging/logging.ts +86 -0
- package/test/mocha-root-hooks.ts +227 -0
- package/test/nodejs/sp-extensions.ts +86 -0
- package/test/pnp-test.ts +60 -0
- package/test/queryable/add-prop.ts +24 -0
- package/test/queryable/behaviors.ts +188 -0
- package/test/queryable/invokable.ts +35 -0
- package/test/queryable/queryable.ts +118 -0
- package/test/sp/alias.ts +46 -0
- package/test/sp/appcatalog.ts +142 -0
- package/test/sp/assets/helloworld.sppkg +0 -0
- package/test/sp/assets/sample_file.jpg +0 -0
- package/test/sp/attachments.ts +134 -0
- package/test/sp/batch.ts +362 -0
- package/test/sp/clientside-pages.ts +426 -0
- package/test/sp/column-defaults.ts +225 -0
- package/test/sp/comments.ts +202 -0
- package/test/sp/content-types.ts +68 -0
- package/test/sp/favorites.ts +2 -0
- package/test/sp/features.ts +201 -0
- package/test/sp/fields.ts +396 -0
- package/test/sp/files.ts +338 -0
- package/test/sp/folders.ts +242 -0
- package/test/sp/forms.ts +22 -0
- package/test/sp/groupsitemanager.ts +88 -0
- package/test/sp/hubsites.ts +41 -0
- package/test/sp/items.ts +179 -0
- package/test/sp/lists.ts +319 -0
- package/test/sp/navigation.ts +167 -0
- package/test/sp/profiles.ts +2 -0
- package/test/sp/query-escaping.ts +94 -0
- package/test/sp/recycle-bin.ts +1 -0
- package/test/sp/regional-settings.ts +58 -0
- package/test/sp/related-items.ts +94 -0
- package/test/sp/search.ts +39 -0
- package/test/sp/security.ts +90 -0
- package/test/sp/sharing.ts +313 -0
- package/test/sp/site-designs.ts +224 -0
- package/test/sp/site-groups.ts +98 -0
- package/test/sp/site-scripts.ts +162 -0
- package/test/sp/site-users.ts +93 -0
- package/test/sp/sites.ts +156 -0
- package/test/sp/social.ts +2 -0
- package/test/sp/spfx.ts +52 -0
- package/test/sp/sputilities.ts +78 -0
- package/test/sp/subscriptions.ts +64 -0
- package/test/sp/taxonomy.ts +178 -0
- package/test/sp/user-custom-actions.ts +31 -0
- package/test/sp/views.ts +117 -0
- package/test/sp/webparts.ts +38 -0
- package/test/sp/webs.ts +249 -0
- package/test/test-invokable-props.ts +35 -0
- package/test/test-props.ts +90 -0
- package/test/test-recording.ts +171 -0
- package/test/tsconfig.json +18 -0
- package/tools/buildsystem/package-lock.json +4404 -0
- package/tools/buildsystem/package.json +56 -0
- package/tools/buildsystem/readme.md +23 -0
- package/tools/config.js +34 -0
- package/tools/local-module-resolver/cjs.ts +33 -0
- package/tools/local-module-resolver/esm-debug.ts +2 -0
- package/tools/local-module-resolver/esm-test.ts +2 -0
- package/tools/local-module-resolver/esm.ts +112 -0
- package/tools/local-module-resolver/readme.md +8 -0
- package/tsconfig.buildsystem.json +17 -0
- package/tsconfig.json +42 -0
@@ -0,0 +1,38 @@
|
|
1
|
+
{
|
2
|
+
"name": "spfx-1-16-1",
|
3
|
+
"version": "0.0.1",
|
4
|
+
"private": true,
|
5
|
+
"engines": {
|
6
|
+
"node": ">=16.13.0 <17.0.0"
|
7
|
+
},
|
8
|
+
"main": "lib/index.js",
|
9
|
+
"scripts": {
|
10
|
+
"build": "gulp bundle",
|
11
|
+
"clean": "gulp clean",
|
12
|
+
"test": "gulp test"
|
13
|
+
},
|
14
|
+
"dependencies": {
|
15
|
+
"@microsoft/sp-core-library": "1.16.1",
|
16
|
+
"@microsoft/sp-lodash-subset": "1.16.1",
|
17
|
+
"@microsoft/sp-office-ui-fabric-core": "1.16.1",
|
18
|
+
"@microsoft/sp-property-pane": "1.16.1",
|
19
|
+
"@microsoft/sp-webpart-base": "1.16.1",
|
20
|
+
"@pnp/core": "^3.13.0",
|
21
|
+
"@pnp/graph": "^3.13.0",
|
22
|
+
"@pnp/logging": "^3.13.0",
|
23
|
+
"@pnp/sp": "^3.13.0",
|
24
|
+
"tslib": "2.3.1"
|
25
|
+
},
|
26
|
+
"devDependencies": {
|
27
|
+
"@microsoft/eslint-config-spfx": "1.16.1",
|
28
|
+
"@microsoft/eslint-plugin-spfx": "1.16.1",
|
29
|
+
"@microsoft/rush-stack-compiler-4.5": "0.2.2",
|
30
|
+
"@microsoft/sp-build-web": "1.16.1",
|
31
|
+
"@microsoft/sp-module-interfaces": "1.16.1",
|
32
|
+
"@rushstack/eslint-config": "2.5.1",
|
33
|
+
"@types/webpack-env": "~1.15.2",
|
34
|
+
"ajv": "^6.12.5",
|
35
|
+
"gulp": "4.0.2",
|
36
|
+
"typescript": "4.5.5"
|
37
|
+
}
|
38
|
+
}
|
@@ -0,0 +1,19 @@
|
|
1
|
+
const child_process = require("child_process");
|
2
|
+
const path = require("path");
|
3
|
+
|
4
|
+
// give ourselves a single reference to the projectRoot
|
5
|
+
const projectRoot = path.resolve("./");
|
6
|
+
|
7
|
+
const isWin = process.platform === "win32";
|
8
|
+
|
9
|
+
// start up tsc on the serve tsconfig, which will execute in watch mode
|
10
|
+
child_process.spawn(isWin ? "npx.cmd" : "npx", ["tsc", "-p", "./packages/tsconfig-watch.json"], {
|
11
|
+
cwd: projectRoot,
|
12
|
+
stdio: "inherit",
|
13
|
+
});
|
14
|
+
|
15
|
+
// run our server
|
16
|
+
child_process.spawn(isWin ? "npx.cmd" : "npx", ["gulp", "serve", "--nobrowser"], {
|
17
|
+
cwd: __dirname,
|
18
|
+
stdio: "inherit",
|
19
|
+
});
|
Binary file
|
@@ -0,0 +1,36 @@
|
|
1
|
+
# @pnp/azidjsclient
|
2
|
+
|
3
|
+
This library provides a thin wrapper around the [@azure/identity](https://github.com/Azure/azure-sdk-for-js) library to make it easy to integrate Azure Identity authentication in your solution.
|
4
|
+
|
5
|
+
You will first need to install the package:
|
6
|
+
|
7
|
+
`npm install @pnp/azidjsclient --save`
|
8
|
+
|
9
|
+
The following example shows how to configure the SPFI or GraphFI object using this behavior.
|
10
|
+
|
11
|
+
```TypeScript
|
12
|
+
import { DefaultAzureCredential } from "@azure/identity";
|
13
|
+
import { spfi } from "@pnp/sp";
|
14
|
+
import { graphfi } from "@pnp/sp";
|
15
|
+
import { SPDefault, GraphDefault } from "@pnp/nodejs";
|
16
|
+
import { AzureIdentity } from "@pnp/azidjsclient";
|
17
|
+
import "@pnp/sp/webs";
|
18
|
+
import "@pnp/graph/me";
|
19
|
+
|
20
|
+
const credential = new DefaultAzureCredential();
|
21
|
+
|
22
|
+
const sp = spfi("https://tenant.sharepoint.com/sites/dev").using(
|
23
|
+
SPDefault(),
|
24
|
+
AzureIdentity(credential, [`https://${tenant}.sharepoint.com/.default`], null)
|
25
|
+
);
|
26
|
+
|
27
|
+
const graph = graphfi().using(
|
28
|
+
GraphDefault(),
|
29
|
+
AzureIdentity(credential, ["https://graph.microsoft.com/.default"], null)
|
30
|
+
);
|
31
|
+
|
32
|
+
const webData = await sp.web();
|
33
|
+
const meData = await graph.me();
|
34
|
+
```
|
35
|
+
|
36
|
+
Please see more scenarios in the [authentication article](../concepts/authentication.md).
|
@@ -0,0 +1,169 @@
|
|
1
|
+
# Client-Side Pages
|
2
|
+
|
3
|
+
The client-side pages API included in this library is an implementation that was reverse engineered from the first-party API's and is unsupported by Microsoft. Given how flexible pages are we've done our best to give you the endpoints that will provide the functionality you need but that said, implementing these APIs is one of the more complicated tasks you can do.
|
4
|
+
|
5
|
+
It's especially important to understand the product team is constantly changing the features of pages and often that will also end up changing how the APIs that we've leveraged behave and because they are not offical third-party APIs this can cause our implementation to break. In order to fix those breaks we need to go back to the beginning and re-validate how the endpoints work searching for what has changed and then implementing those changes in our code. This is by no means simple. If you are reporting an issue with the pages API be aware that it may take significant time for us to unearth what is happening and fix it. Any research that you can provide when sharing your issue will go a long way in expediating that process, or better yet, if you can track it down and submit a PR with a fix we would be most greatful.
|
6
|
+
|
7
|
+
## Tricks to help you figure out how to add first-party web parts to your page
|
8
|
+
|
9
|
+
This section is to offer you methods to be able to reverse engineer some of the first party web parts to help figure out how to add them to the page using the `addControl` method.
|
10
|
+
|
11
|
+
Your first step needs to be creating a test page that you can inspect.
|
12
|
+
|
13
|
+
1. Create a new Site Page.
|
14
|
+
1. Open the browser console, and navigate to the network tab
|
15
|
+
1. Filter the network tab for `Fetch/XHR` and then type `SavePage` to filter for the specific network calls.
|
16
|
+
1. Add and configure the web part you want to reverse engineer and then save the page as draft. The network tab will now show a `SavePageAsDraft` call and you can then look at the `Payload` of that call
|
17
|
+
![Client-Side Pages Network Tab Image](../img/csp_networktab.png)
|
18
|
+
1. You then want to specifically look at the `CanvasContent1` property and copy that value. You can then paste it into a temporary file with the .json extension in your code editor so you can inspect the payload. The value is an array of objects, and each object (except the last) is the definition of the web part.
|
19
|
+
|
20
|
+
Below is an example (as of the last change date of this document) of what the QuickLinks web part looks like. One key takeaway from this file is the `webPartId` property which can be used when filtering for the right web part definition after getting a collection from `sp.web.getClientsideWebParts();`.
|
21
|
+
>Note that it could change at any time so please do not rely on this data, please use it as an example only.
|
22
|
+
|
23
|
+
```JSON
|
24
|
+
{
|
25
|
+
"position": {
|
26
|
+
"layoutIndex": 1,
|
27
|
+
"zoneIndex": 1,
|
28
|
+
"sectionIndex": 1,
|
29
|
+
"sectionFactor": 12,
|
30
|
+
"controlIndex": 1
|
31
|
+
},
|
32
|
+
"controlType": 3,
|
33
|
+
"id": "00000000-58fd-448c-9e40-6691ce30e3e4",
|
34
|
+
"webPartId": "c70391ea-0b10-4ee9-b2b4-006d3fcad0cd",
|
35
|
+
"addedFromPersistedData": true,
|
36
|
+
"reservedHeight": 141,
|
37
|
+
"reservedWidth": 909,
|
38
|
+
"webPartData": {
|
39
|
+
"id": "c70391ea-0b10-4ee9-b2b4-006d3fcad0cd",
|
40
|
+
"instanceId": "00000000-58fd-448c-9e40-6691ce30e3e4",
|
41
|
+
"title": "Quick links",
|
42
|
+
"description": "Show a collection of links to content such as documents, images, videos, and more in a variety of layouts with options for icons, images, and audience targeting.",
|
43
|
+
"audiences": [],
|
44
|
+
"serverProcessedContent": {
|
45
|
+
"htmlStrings": {},
|
46
|
+
"searchablePlainTexts": {
|
47
|
+
"items[0].title": "PnPjs Title"
|
48
|
+
},
|
49
|
+
"imageSources": {},
|
50
|
+
"links": {
|
51
|
+
"baseUrl": "https://contoso.sharepoint.com/sites/PnPJS",
|
52
|
+
"items[0].sourceItem.url": "/sites/PnPJS/SitePages/pnpjsTestV2.aspx"
|
53
|
+
},
|
54
|
+
"componentDependencies": {
|
55
|
+
"layoutComponentId": "706e33c8-af37-4e7b-9d22-6e5694d92a6f"
|
56
|
+
}
|
57
|
+
},
|
58
|
+
"dataVersion": "2.2",
|
59
|
+
"properties": {
|
60
|
+
"items": [
|
61
|
+
{
|
62
|
+
"sourceItem": {
|
63
|
+
"guids": {
|
64
|
+
"siteId": "00000000-4657-40d2-843d-3d6c72e647ff",
|
65
|
+
"webId": "00000000-e714-4de6-88db-b0ac40d17850",
|
66
|
+
"listId": "{00000000-8ED8-4E43-82BD-56794D9AB290}",
|
67
|
+
"uniqueId": "00000000-6779-4979-adad-c120a39fe311"
|
68
|
+
},
|
69
|
+
"itemType": 0,
|
70
|
+
"fileExtension": ".ASPX",
|
71
|
+
"progId": null
|
72
|
+
},
|
73
|
+
"thumbnailType": 2,
|
74
|
+
"id": 1,
|
75
|
+
"description": "",
|
76
|
+
"fabricReactIcon": {
|
77
|
+
"iconName": "heartfill"
|
78
|
+
},
|
79
|
+
"altText": "",
|
80
|
+
"rawPreviewImageMinCanvasWidth": 32767
|
81
|
+
}
|
82
|
+
],
|
83
|
+
"isMigrated": true,
|
84
|
+
"layoutId": "CompactCard",
|
85
|
+
"shouldShowThumbnail": true,
|
86
|
+
"imageWidth": 100,
|
87
|
+
"buttonLayoutOptions": {
|
88
|
+
"showDescription": false,
|
89
|
+
"buttonTreatment": 2,
|
90
|
+
"iconPositionType": 2,
|
91
|
+
"textAlignmentVertical": 2,
|
92
|
+
"textAlignmentHorizontal": 2,
|
93
|
+
"linesOfText": 2
|
94
|
+
},
|
95
|
+
"listLayoutOptions": {
|
96
|
+
"showDescription": false,
|
97
|
+
"showIcon": true
|
98
|
+
},
|
99
|
+
"waffleLayoutOptions": {
|
100
|
+
"iconSize": 1,
|
101
|
+
"onlyShowThumbnail": false
|
102
|
+
},
|
103
|
+
"hideWebPartWhenEmpty": true,
|
104
|
+
"dataProviderId": "QuickLinks",
|
105
|
+
"webId": "00000000-e714-4de6-88db-b0ac40d17850",
|
106
|
+
"siteId": "00000000-4657-40d2-843d-3d6c72e647ff"
|
107
|
+
}
|
108
|
+
}
|
109
|
+
}
|
110
|
+
```
|
111
|
+
|
112
|
+
At this point the only aspect of the above JSON payload you're going to be paying attention to is the `webPartData`. We have exposed `title`, `description`, and `dataVersion` as default properties of the `ClientsideWebpart` class. In addition we provide a `getProperties`, `setProperties`, `getServerProcessedContent`, `setServerProcessedContent` methods. The difference in this case in these set base methods is that it will merge the object you pass into those methods with the values already on the object.
|
113
|
+
|
114
|
+
The code below gives a incomplete but demonstrative example of how you would extend the ClientsideWebpart class to provide an interface to build a custom class for the QuickLinks web part illustrated in our JSON payload above. This code assumes you have already added the control to a section. For more information about that step see the documentation for [Add Controls](../sp/clientside-pages.md#Add_Controls)
|
115
|
+
|
116
|
+
```TypeScript
|
117
|
+
import { sp } from "@pnp/sp";
|
118
|
+
import "@pnp/sp/webs";
|
119
|
+
import { ClientsideWebpart } from "@pnp/sp/clientside-pages";
|
120
|
+
|
121
|
+
//Define interface based on JSON object above
|
122
|
+
interface IQLItem {
|
123
|
+
sourceItem: {
|
124
|
+
guids: {
|
125
|
+
siteId: string;
|
126
|
+
webId: string;
|
127
|
+
listId: string;
|
128
|
+
uniqueId: string;
|
129
|
+
},
|
130
|
+
itemType: number;
|
131
|
+
fileExtension: string;
|
132
|
+
progId: string;
|
133
|
+
}
|
134
|
+
thumbnailType: number;
|
135
|
+
id: number;
|
136
|
+
description: string;
|
137
|
+
fabricReactIcon: { iconName: string; };
|
138
|
+
altText: string;
|
139
|
+
rawPreviewImageMinCanvasWidth: number;
|
140
|
+
}
|
141
|
+
|
142
|
+
// we create a class to wrap our functionality in a reusable way
|
143
|
+
class QuickLinksWebpart extends ClientsideWebpart {
|
144
|
+
|
145
|
+
constructor(control: ClientsideWebpart) {
|
146
|
+
super((<any>control).json);
|
147
|
+
}
|
148
|
+
|
149
|
+
// add property getter/setter for what we need, in this case items array within properties
|
150
|
+
public get items(): IQLItem[] {
|
151
|
+
return this.json.webPartData?.properties?.items || [];
|
152
|
+
}
|
153
|
+
|
154
|
+
public set items(value: IQLItem[]) {
|
155
|
+
this.json.webPartData.properties?.items = value;
|
156
|
+
}
|
157
|
+
}
|
158
|
+
|
159
|
+
// now we load our page
|
160
|
+
const page = await sp.web.loadClientsidePage("/sites/PnPJS/SitePages/QuickLinks-Web-Part-Test.aspx");
|
161
|
+
|
162
|
+
// get our part and pass it to the constructor of our wrapper class.
|
163
|
+
const part = new QuickLinksWebpart(page.sections[0].columns[0].getControl(0));
|
164
|
+
|
165
|
+
//Need to set all the properties
|
166
|
+
part.items = [{IQLItem_properties}];
|
167
|
+
|
168
|
+
await page.save();
|
169
|
+
```
|
@@ -0,0 +1,42 @@
|
|
1
|
+
# Authentication in a custom browser based application
|
2
|
+
|
3
|
+
We support MSAL for both browser and nodejs by providing a thin wrapper around the official libraries. We won't document the fully possible MSAL configuration, but any parameters supplied are passed through to the underlying implementation. To use the browser MSAL package you'll need to install the @pnp/msaljsclient package which is deployed as a standalone due to the large MSAL dependency.
|
4
|
+
|
5
|
+
`npm install @pnp/msaljsclient --save`
|
6
|
+
|
7
|
+
At this time we're using version 1.x of the `msal` library which uses Implicit Flow. For more informaiton on the msal library please see the [AzureAD/microsoft-authentication-library-for-js](https://github.com/AzureAD/microsoft-authentication-library-for-js#readme).
|
8
|
+
|
9
|
+
Each of the following samples reference a MSAL configuration that utilizes an Azure AD App Registration, these are samples that show the typings for those objects:
|
10
|
+
|
11
|
+
```TypeScript
|
12
|
+
import { Configuration, AuthenticationParameters } from "msal";
|
13
|
+
|
14
|
+
const configuration: Configuration = {
|
15
|
+
auth: {
|
16
|
+
authority: "https://login.microsoftonline.com/{tenant Id}/",
|
17
|
+
clientId: "{AAD Application Id/Client Id}"
|
18
|
+
}
|
19
|
+
};
|
20
|
+
|
21
|
+
const authParams: AuthenticationParameters = {
|
22
|
+
scopes: ["https://graph.microsoft.com/.default"]
|
23
|
+
};
|
24
|
+
```
|
25
|
+
|
26
|
+
## MSAL + Browser
|
27
|
+
|
28
|
+
```TypeScript
|
29
|
+
import { spfi, SPBrowser } from "@pnp/sp";
|
30
|
+
import { graphfi, GraphBrowser } from "@pnp/graph";
|
31
|
+
import { MSAL } from "@pnp/msaljsclient";
|
32
|
+
import "@pnp/sp/webs";
|
33
|
+
import "@pnp/graph/users";
|
34
|
+
|
35
|
+
const sp = spfi("https://tenant.sharepoint.com/sites/dev").using(SPBrowser(), MSAL(configuration, authParams));
|
36
|
+
|
37
|
+
// within a webpart, application customizer, or adaptive card extension where the context object is available
|
38
|
+
const graph = graphfi().using(GraphBrowser(), MSAL(configuration, authParams));
|
39
|
+
|
40
|
+
const webData = await sp.web();
|
41
|
+
const meData = await graph.me();
|
42
|
+
```
|
@@ -0,0 +1,101 @@
|
|
1
|
+
# Authentication in NodeJS
|
2
|
+
|
3
|
+
We support MSAL for both browser and nodejs and Azure Identity for nodejs by providing a thin wrapper around the official libraries. We won't document the fully possible configurations, but any parameters supplied are passed through to the underlying implementation.
|
4
|
+
|
5
|
+
Depending on which package you want to use you will need to install an additional package from the library because of the large dependencies.
|
6
|
+
|
7
|
+
We support MSAL through the [msal-node](https://github.com/AzureAD/microsoft-authentication-library-for-js/blob/dev/lib/msal-node/README.md) library which is included by the @pnp/nodejs package.
|
8
|
+
|
9
|
+
For the Azure Identity package:
|
10
|
+
|
11
|
+
`npm install @pnp/azidjsclient --save`
|
12
|
+
|
13
|
+
We support Azure Identity through the [@azure/identity](https://github.com/Azure/azure-sdk-for-js/blob/main/documentation/using-azure-identity.md) library which simplifies the authentication process and makes it easy to integrate Azure Identity authentication in your solution.
|
14
|
+
|
15
|
+
## MSAL + NodeJS
|
16
|
+
|
17
|
+
The SPDefault and GraphDefault exported by the nodejs library include MSAL and takes the parameters directly.
|
18
|
+
|
19
|
+
The following samples reference a MSAL configuration that utilizes an Azure AD App Registration, these are samples that show the typings for those objects:
|
20
|
+
|
21
|
+
```TypeScript
|
22
|
+
import { SPDefault, GraphDefault } from "@pnp/nodejs";
|
23
|
+
import { spfi } from "@pnp/sp";
|
24
|
+
import { graphfi } from "@pnp/graph";
|
25
|
+
import { Configuration, AuthenticationParameters } from "msal";
|
26
|
+
import "@pnp/graph/users";
|
27
|
+
import "@pnp/sp/webs";
|
28
|
+
|
29
|
+
const configuration: Configuration = {
|
30
|
+
auth: {
|
31
|
+
authority: "https://login.microsoftonline.com/{tenant Id}/",
|
32
|
+
clientId: "{AAD Application Id/Client Id}"
|
33
|
+
}
|
34
|
+
};
|
35
|
+
|
36
|
+
const sp = spfi("{site url}").using(SPDefault({
|
37
|
+
msal: {
|
38
|
+
config: configuration,
|
39
|
+
scopes: ["https://{tenant}.sharepoint.com/.default"],
|
40
|
+
},
|
41
|
+
}));
|
42
|
+
|
43
|
+
const graph = graphfi().using(GraphDefault({
|
44
|
+
msal: {
|
45
|
+
config: configuration,
|
46
|
+
scopes: ["https://graph.microsoft.com/.default"],
|
47
|
+
},
|
48
|
+
}));
|
49
|
+
|
50
|
+
const webData = await sp.web();
|
51
|
+
const meData = await graph.me();
|
52
|
+
```
|
53
|
+
|
54
|
+
## Use Nodejs MSAL behavior directly
|
55
|
+
|
56
|
+
It is also possible to use the MSAL behavior directly if you are composing your own strategies.
|
57
|
+
|
58
|
+
```TypeScript
|
59
|
+
import { SPDefault, GraphDefault, MSAL } from "@pnp/nodejs";
|
60
|
+
|
61
|
+
const sp = spfi("{site url}").using(SPDefault(), MSAL({
|
62
|
+
config: configuration,
|
63
|
+
scopes: ["https://{tenant}.sharepoint.com/.default"],
|
64
|
+
}));
|
65
|
+
|
66
|
+
const graph = graphfi().using(GraphDefault(), MSAL({
|
67
|
+
config: configuration,
|
68
|
+
scopes: ["https://graph.microsoft.com/.default"],
|
69
|
+
}));
|
70
|
+
|
71
|
+
```
|
72
|
+
|
73
|
+
## Azure Identity + NodeJS
|
74
|
+
|
75
|
+
The following sample shows how to pass the credential object to the AzureIdentity behavior including scopes.
|
76
|
+
|
77
|
+
```TypeScript
|
78
|
+
import { DefaultAzureCredential } from "@azure/identity";
|
79
|
+
import { spfi } from "@pnp/sp";
|
80
|
+
import { graphfi } from "@pnp/sp";
|
81
|
+
import { SPDefault, GraphDefault } from "@pnp/nodejs";
|
82
|
+
import { AzureIdentity } from "@pnp/azidjsclient";
|
83
|
+
import "@pnp/sp/webs";
|
84
|
+
import "@pnp/graph/users";
|
85
|
+
|
86
|
+
// We're using DefaultAzureCredential but the credential can be any valid `Credential Type`
|
87
|
+
const credential = new DefaultAzureCredential();
|
88
|
+
|
89
|
+
const sp = spfi("https://{tenant}.sharepoint.com/sites/dev").using(
|
90
|
+
SPDefault(),
|
91
|
+
AzureIdentity(credential, [`https://${tenant}.sharepoint.com/.default`], null)
|
92
|
+
);
|
93
|
+
|
94
|
+
const graph = graphfi().using(
|
95
|
+
GraphDefault(),
|
96
|
+
AzureIdentity(credential, ["https://graph.microsoft.com/.default"], null)
|
97
|
+
);
|
98
|
+
|
99
|
+
const webData = await sp.web();
|
100
|
+
const meData = await graph.me();
|
101
|
+
```
|
@@ -0,0 +1,76 @@
|
|
1
|
+
# Authentication in SharePoint Framework
|
2
|
+
|
3
|
+
When building in SharePoint Framework you only need to provide the context to either sp or graph to ensure proper authentication. This will use the default [SharePoint AAD application](https://docs.microsoft.com/en-us/sharepoint/dev/spfx/use-aadhttpclient) to manage scopes. If you would prefer to use a different AAD application please see the MSAL section below.
|
4
|
+
|
5
|
+
## SPFx + SharePoint
|
6
|
+
|
7
|
+
```TypeScript
|
8
|
+
import { SPFx, spfi } from "@pnp/sp";
|
9
|
+
import "@pnp/sp/webs";
|
10
|
+
|
11
|
+
// within a webpart, application customizer, or adaptive card extension where the context object is available
|
12
|
+
const sp = spfi().using(SPFx(this.context));
|
13
|
+
|
14
|
+
const webData = await sp.web();
|
15
|
+
```
|
16
|
+
|
17
|
+
## SPFx + Graph
|
18
|
+
|
19
|
+
```TypeScript
|
20
|
+
import { SPFx, graphfi } from "@pnp/graph";
|
21
|
+
import "@pnp/graph/users";
|
22
|
+
|
23
|
+
// within a webpart, application customizer, or adaptive card extension where the context object is available
|
24
|
+
const graph = graphfi().using(SPFx(this.context));
|
25
|
+
|
26
|
+
const meData = await graph.me();
|
27
|
+
```
|
28
|
+
|
29
|
+
## SPFx + Authentication Token
|
30
|
+
|
31
|
+
When using the SPFx behavior, authentication is handled by a cookie stored on the users client. In very specific instances some of the SharePoint methods will require a token. We have added a custom behavior to support that called `SPFxToken`. This will require that you add the appropriate application role to the SharePoint Framework's `package-solution.json` -> webApiPermissionRequests section where you will [define the resource and scope for the request](https://learn.microsoft.com/en-us/sharepoint/dev/spfx/use-aadhttpclient#request-permissions-to-an-azure-ad-application).
|
32
|
+
|
33
|
+
Here's an example of how you would build an instance of the SPFI that would include an Bearer Token in the header. Be advised if you use this instance to make calls to SharePoint endpoints that you have not specifically authorized they will fail.
|
34
|
+
|
35
|
+
```TypeScript
|
36
|
+
import { spfi, SPFxToken, SPFx } from "@pnp/sp";
|
37
|
+
|
38
|
+
const sp = spfi().using(SPFx(context), SPFxToken(context));
|
39
|
+
```
|
40
|
+
|
41
|
+
## MSAL + SPFx
|
42
|
+
|
43
|
+
We support MSAL for both browser and nodejs by providing a thin wrapper around the official libraries. We won't document the fully possible MSAL configuration, but any parameters supplied are passed through to the underlying implementation. To use the browser MSAL package you'll need to install the @pnp/msaljsclient package which is deployed as a standalone due to the large MSAL dependency.
|
44
|
+
|
45
|
+
`npm install @pnp/msaljsclient --save`
|
46
|
+
|
47
|
+
At this time we're using version 1.x of the `msal` library which uses Implicit Flow. For more informaiton on the msal library please see the [AzureAD/microsoft-authentication-library-for-js](https://github.com/AzureAD/microsoft-authentication-library-for-js#readme).
|
48
|
+
|
49
|
+
Each of the following samples reference a MSAL configuration that utilizes an Azure AD App Registration, these are samples that show the typings for those objects:
|
50
|
+
|
51
|
+
```TypeScript
|
52
|
+
import { SPFx as graphSPFx, graphfi } from "@pnp/graph";
|
53
|
+
import { SPFx as spSPFx, spfi } from "@pnp/sp";
|
54
|
+
import { MSAL } from "@pnp/msaljsclient";
|
55
|
+
import { Configuration, AuthenticationParameters } from "msal";
|
56
|
+
import "@pnp/graph/users";
|
57
|
+
import "@pnp/sp/webs";
|
58
|
+
|
59
|
+
const configuration: Configuration = {
|
60
|
+
auth: {
|
61
|
+
authority: "https://login.microsoftonline.com/{tenant Id}/",
|
62
|
+
clientId: "{AAD Application Id/Client Id}"
|
63
|
+
}
|
64
|
+
};
|
65
|
+
|
66
|
+
const authParams: AuthenticationParameters = {
|
67
|
+
scopes: ["https://graph.microsoft.com/.default"]
|
68
|
+
};
|
69
|
+
|
70
|
+
// within a webpart, application customizer, or adaptive card extension where the context object is available
|
71
|
+
const graph = graphfi().using(graphSPFx(this.context), MSAL(configuration, authParams));
|
72
|
+
const sp = spfi().using(spSPFx(this.context), MSAL(configuration, authParams));
|
73
|
+
|
74
|
+
const meData = await graph.me();
|
75
|
+
const webData = await sp.web();
|
76
|
+
```
|
@@ -0,0 +1,42 @@
|
|
1
|
+
# Authentication
|
2
|
+
|
3
|
+
One of the more challenging aspects of web development is ensuring you are properly authenticated to access the resources you need. This section is designed to guide you through connecting to the resources you need using the appropriate methods.
|
4
|
+
|
5
|
+
We provide multiple ways to authenticate based on the scenario you're developing for, see one of these more detailed guides:
|
6
|
+
|
7
|
+
- [Authentication in SharePoint Framework](./auth-spfx.md)
|
8
|
+
- [Authentication in a custom browser based application (Outside Microsoft 365)](./auth-browser.md)
|
9
|
+
- [Authentication in NodeJS](./auth-nodejs.md)
|
10
|
+
|
11
|
+
If you have more specific authentication requirements you can always build your own by using the new [queryable](../queryable/queryable.md) pattern which exposes a dedicated [auth moment](../queryable/queryable.md#auth). That moment expects observers with the signature:
|
12
|
+
|
13
|
+
```TypeScript
|
14
|
+
async function(url, init) {
|
15
|
+
|
16
|
+
// logic to apply authentication to the request
|
17
|
+
|
18
|
+
return [url, init];
|
19
|
+
}
|
20
|
+
```
|
21
|
+
|
22
|
+
You can follow this example as a general pattern to build your own custom authentication model. You can then wrap your authentication in a [behavior](../core/behaviors.md) for easy reuse.
|
23
|
+
|
24
|
+
```TypeScript
|
25
|
+
import { spfi } from "@pnp/sp";
|
26
|
+
import "@pnp/sp/webs";
|
27
|
+
|
28
|
+
const sp = spfi().using({behaviors});
|
29
|
+
const web = sp.web;
|
30
|
+
|
31
|
+
// we will use custom auth on this web
|
32
|
+
web.on.auth(async function(url, init) {
|
33
|
+
|
34
|
+
// some code to get a token
|
35
|
+
const token = getToken();
|
36
|
+
|
37
|
+
// set the Authorization header in the init (this init is what is passed directly to the fetch call)
|
38
|
+
init.headers["Authorization"] = `Bearer ${token}`;
|
39
|
+
|
40
|
+
return [url, init];
|
41
|
+
});
|
42
|
+
```
|
@@ -0,0 +1,77 @@
|
|
1
|
+
# Batching and Caching
|
2
|
+
|
3
|
+
When optimizing for performance you can combine [batching](batching.md) and [caching](../queryable/behaviors.md#caching) to reduce the overall number of requests. On the first request any cachable data is stored as expected once the request completes. On subsequent requests if data is found in the cache it is returned immediately and that request is not added to the batch, in fact the batch will never register the request. This can work across many requests such that some returned cached data and others do not - the non-cached requests will be added to and processed by the batch as expected.
|
4
|
+
|
5
|
+
```TypeScript
|
6
|
+
import { spfi } from "@pnp/sp";
|
7
|
+
import "@pnp/sp/webs";
|
8
|
+
import "@pnp/sp/lists";
|
9
|
+
import { Caching } from "@pnp/queryable";
|
10
|
+
|
11
|
+
const sp = spfi(...);
|
12
|
+
|
13
|
+
const [batchedSP, execute] = sp.batched();
|
14
|
+
|
15
|
+
batchedSP.using(Caching());
|
16
|
+
|
17
|
+
batchedSP.web().then(console.log);
|
18
|
+
|
19
|
+
batchedSP.web.lists().then(console.log);
|
20
|
+
|
21
|
+
// execute the first set of batched requests, no information is currently cached
|
22
|
+
await execute();
|
23
|
+
|
24
|
+
// create a new batch
|
25
|
+
const [batchedSP2, execute2] = await sp.batched();
|
26
|
+
batchedSP2.using(Caching());
|
27
|
+
|
28
|
+
// add the same requests - this simulates the user navigating away from or reloading the page
|
29
|
+
batchedSP2.web().then(console.log);
|
30
|
+
batchedSP2.web.lists().then(console.log);
|
31
|
+
|
32
|
+
// executing the batch will return the cached values from the initial requests
|
33
|
+
await execute2();
|
34
|
+
```
|
35
|
+
|
36
|
+
In this second example we include an update to the web's title. Because non-get requests are never cached the update code will always run, but the results from the two get requests will resolve from the cache prior to being added to the batch.
|
37
|
+
|
38
|
+
```TypeScript
|
39
|
+
import { spfi } from "@pnp/sp";
|
40
|
+
import "@pnp/sp/webs";
|
41
|
+
import "@pnp/sp/lists";
|
42
|
+
import { Caching } from "@pnp/queryable";
|
43
|
+
|
44
|
+
const sp = spfi(...);
|
45
|
+
|
46
|
+
const [batchedSP, execute] = sp.batched();
|
47
|
+
|
48
|
+
batchedSP.using(Caching());
|
49
|
+
|
50
|
+
batchedSP.web().then(console.log);
|
51
|
+
|
52
|
+
batchedSP.web.lists().then(console.log);
|
53
|
+
|
54
|
+
// this will never be cached
|
55
|
+
batchedSP.web.update({
|
56
|
+
Title: "dev web 1",
|
57
|
+
});
|
58
|
+
|
59
|
+
// execute the first set of batched requests, no information is currently cached
|
60
|
+
await execute();
|
61
|
+
|
62
|
+
// create a new batch
|
63
|
+
const [batchedSP2, execute2] = await sp.batched();
|
64
|
+
batchedSP2.using(Caching());
|
65
|
+
|
66
|
+
// add the same requests - this simulates the user navigating away from or reloading the page
|
67
|
+
batchedSP2.web().then(console.log);
|
68
|
+
batchedSP2.web.lists().then(console.log);
|
69
|
+
|
70
|
+
// this will never be cached
|
71
|
+
batchedSP2.web.update({
|
72
|
+
Title: "dev web 2",
|
73
|
+
});
|
74
|
+
|
75
|
+
// executing the batch will return the cached values from the initial requests
|
76
|
+
await execute2();
|
77
|
+
```
|