@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,227 @@
|
|
1
|
+
import { getProcessArgs, IProcessArgs } from "./args.js";
|
2
|
+
import { getSettings, ISettings } from "./load-settings.js";
|
3
|
+
import { Context } from "mocha";
|
4
|
+
import { extractWebUrl, SPFI, spfi } from "@pnp/sp";
|
5
|
+
import { graphfi, GraphFI } from "@pnp/graph";
|
6
|
+
import { GraphDefault, SPDefault, NodeFetch } from "@pnp/nodejs";
|
7
|
+
import { getGUID, delay } from "@pnp/core";
|
8
|
+
import { cleanUpAllSubsites } from "./clean-subsite.js";
|
9
|
+
import * as chai from "chai";
|
10
|
+
import chaiAsPromised from "chai-as-promised";
|
11
|
+
import "mocha";
|
12
|
+
import "@pnp/sp/webs";
|
13
|
+
import { Web } from "@pnp/sp/webs";
|
14
|
+
import { PnPLogging, ConsoleListener, Logger, LogLevel } from "@pnp/logging";
|
15
|
+
import { disposeRecording, initRecording } from "./test-recording.js";
|
16
|
+
|
17
|
+
declare module "mocha" {
|
18
|
+
interface Context {
|
19
|
+
pnp: {
|
20
|
+
args: IProcessArgs;
|
21
|
+
settings: ISettings;
|
22
|
+
sp?: SPFI;
|
23
|
+
graph?: GraphFI;
|
24
|
+
_sp?: SPFI;
|
25
|
+
_graph?: GraphFI;
|
26
|
+
testProps: {
|
27
|
+
get<T>(key: string, defaults: T): Promise<T>;
|
28
|
+
set<T>(key: string, props: T): Promise<void>;
|
29
|
+
};
|
30
|
+
};
|
31
|
+
}
|
32
|
+
|
33
|
+
interface Suite {
|
34
|
+
pnp: {
|
35
|
+
args: IProcessArgs;
|
36
|
+
settings: ISettings;
|
37
|
+
sp?: SPFI;
|
38
|
+
graph?: GraphFI;
|
39
|
+
_sp?: SPFI;
|
40
|
+
_graph?: GraphFI;
|
41
|
+
testProps: {
|
42
|
+
get<T>(key: string, defaults: T): Promise<T>;
|
43
|
+
set<T>(key: string, props: T): Promise<void>;
|
44
|
+
};
|
45
|
+
};
|
46
|
+
}
|
47
|
+
}
|
48
|
+
|
49
|
+
let testStart: number;
|
50
|
+
let siteUsed = false;
|
51
|
+
|
52
|
+
export const mochaHooks = {
|
53
|
+
beforeAll: [
|
54
|
+
async function setup(this: Context) {
|
55
|
+
|
56
|
+
// start a timer
|
57
|
+
testStart = Date.now();
|
58
|
+
|
59
|
+
chai.use(chaiAsPromised);
|
60
|
+
|
61
|
+
// establish the testing settings shared across the testing context
|
62
|
+
const args = getProcessArgs();
|
63
|
+
const settings = await getSettings(args);
|
64
|
+
this.pnp = {
|
65
|
+
args,
|
66
|
+
settings,
|
67
|
+
testProps: {
|
68
|
+
get: async (_k, r) => r,
|
69
|
+
set: async () => void (0),
|
70
|
+
},
|
71
|
+
};
|
72
|
+
|
73
|
+
if (this.pnp.args.logging > LogLevel.Off) {
|
74
|
+
// add a listener for logging if we are enabled at any level
|
75
|
+
Logger.subscribe(ConsoleListener());
|
76
|
+
}
|
77
|
+
},
|
78
|
+
async function spSetup(this: Context) {
|
79
|
+
|
80
|
+
const setupStart = Date.now();
|
81
|
+
try {
|
82
|
+
|
83
|
+
if (!this.pnp.settings.enableWebTests) {
|
84
|
+
return;
|
85
|
+
}
|
86
|
+
|
87
|
+
this.pnp.settings.sp.testWebUrl = this.pnp.settings.sp.url;
|
88
|
+
|
89
|
+
if (this.pnp.args.site && this.pnp.args.site.length > 0) {
|
90
|
+
this.pnp.settings.sp.testWebUrl = this.pnp.args.site;
|
91
|
+
siteUsed = true;
|
92
|
+
}
|
93
|
+
|
94
|
+
const rootSP = spfi(this.pnp.settings.sp.testWebUrl).using(SPDefault({
|
95
|
+
msal: {
|
96
|
+
config: this.pnp.settings.sp.msal.init,
|
97
|
+
scopes: this.pnp.settings.sp.msal.scopes,
|
98
|
+
},
|
99
|
+
}), NodeFetch({ replace: true }), PnPLogging(this.pnp.args.logging));
|
100
|
+
|
101
|
+
if (siteUsed) {
|
102
|
+
// we were given a site, so we don't need to create one
|
103
|
+
this.pnp._sp = rootSP;
|
104
|
+
return;
|
105
|
+
}
|
106
|
+
|
107
|
+
const d = new Date();
|
108
|
+
const g = getGUID();
|
109
|
+
|
110
|
+
const testWebResult = await rootSP.web.webs.add(`PnP-JS-Core Testing ${d.toDateString()}`, g);
|
111
|
+
|
112
|
+
// set the testing web url so our tests have access if needed
|
113
|
+
this.pnp.settings.sp.testWebUrl = testWebResult.data.Url;
|
114
|
+
|
115
|
+
// create a new testing site
|
116
|
+
this.pnp._sp = spfi([rootSP.web, this.pnp.settings.sp.testWebUrl]);
|
117
|
+
|
118
|
+
// TODO:: remove once pnpTest is used everywhere
|
119
|
+
this.pnp.sp = this.pnp._sp;
|
120
|
+
|
121
|
+
} finally {
|
122
|
+
const setupEnd = Date.now();
|
123
|
+
console.log(`SP Setup completed in ${((setupEnd - setupStart) / 1000).toFixed(4)} seconds.`);
|
124
|
+
}
|
125
|
+
},
|
126
|
+
async function graphSetup(this: Context) {
|
127
|
+
|
128
|
+
const setupStart = Date.now();
|
129
|
+
try {
|
130
|
+
|
131
|
+
if (!this.pnp.settings.enableWebTests) {
|
132
|
+
return;
|
133
|
+
}
|
134
|
+
|
135
|
+
this.pnp._graph = graphfi().using(GraphDefault({
|
136
|
+
msal: {
|
137
|
+
config: this.pnp.settings.graph.msal.init,
|
138
|
+
scopes: this.pnp.settings.graph.msal.scopes,
|
139
|
+
},
|
140
|
+
}), NodeFetch({ replace: true }), PnPLogging(this.pnp.args.logging));
|
141
|
+
|
142
|
+
// TODO:: remove once pnpTest is used everywhere
|
143
|
+
this.pnp.graph = this.pnp._graph;
|
144
|
+
|
145
|
+
} finally {
|
146
|
+
const setupEnd = Date.now();
|
147
|
+
console.log(`Graph Setup completed in ${((setupEnd - setupStart) / 1000).toFixed(4)} seconds.`);
|
148
|
+
}
|
149
|
+
},
|
150
|
+
async function recordingSetup(this: Context) {
|
151
|
+
|
152
|
+
// we do this here because both sp and graph should be configured and ready
|
153
|
+
// meaning we can apply our recording to the shared contextual roots (sp & graph)
|
154
|
+
// if recording is not enabled via --record flag, then this function call has no side-effects
|
155
|
+
initRecording(this);
|
156
|
+
},
|
157
|
+
],
|
158
|
+
afterAll: [
|
159
|
+
function timing(this: Context) {
|
160
|
+
const testEnd = Date.now();
|
161
|
+
console.log(`Testing completed in ${((testEnd - testStart) / 1000).toFixed(4)} seconds.`);
|
162
|
+
},
|
163
|
+
async function spTeardown(this: Context) {
|
164
|
+
const teardownStart = Date.now();
|
165
|
+
try {
|
166
|
+
|
167
|
+
if (this.pnp.args.deleteAllWebs) {
|
168
|
+
|
169
|
+
const rootCleanupWeb = siteUsed ? this.pnp.sp.web : Web([this.pnp.sp.web, this.pnp.settings.sp.url]);
|
170
|
+
|
171
|
+
await cleanUpAllSubsites(rootCleanupWeb);
|
172
|
+
|
173
|
+
} else if (this.pnp.args.deleteWeb && this.pnp.settings.enableWebTests) {
|
174
|
+
|
175
|
+
console.log(`Deleting web ${extractWebUrl(this.pnp.sp.web.toUrl())} created during testing.`);
|
176
|
+
|
177
|
+
const web = await this.pnp.sp.web;
|
178
|
+
|
179
|
+
await cleanUpAllSubsites(web);
|
180
|
+
|
181
|
+
console.log("All subsites have been removed.");
|
182
|
+
|
183
|
+
// Delay so that web can be deleted
|
184
|
+
await delay(500);
|
185
|
+
|
186
|
+
await web.delete();
|
187
|
+
|
188
|
+
console.log(`Deleted web ${this.pnp.settings.sp.testWebUrl} created during testing.`);
|
189
|
+
|
190
|
+
} else if (this.pnp.settings.enableWebTests) {
|
191
|
+
|
192
|
+
console.log(`Leaving ${this.pnp.settings.sp.testWebUrl} alone.`);
|
193
|
+
|
194
|
+
} else {
|
195
|
+
|
196
|
+
console.log("No SP teardown");
|
197
|
+
}
|
198
|
+
|
199
|
+
} finally {
|
200
|
+
const teardownEnd = Date.now();
|
201
|
+
console.log(`SP Teardown completed in ${((teardownEnd - teardownStart) / 1000).toFixed(4)} seconds.`);
|
202
|
+
}
|
203
|
+
|
204
|
+
return Promise.resolve();
|
205
|
+
},
|
206
|
+
function graphTeardown(this: Context) {
|
207
|
+
const teardownStart = Date.now();
|
208
|
+
try {
|
209
|
+
console.log("No Graph teardown");
|
210
|
+
} finally {
|
211
|
+
const teardownEnd = Date.now();
|
212
|
+
console.log(`Graph Teardown completed in ${((teardownEnd - teardownStart) / 1000).toFixed(4)} seconds.`);
|
213
|
+
}
|
214
|
+
},
|
215
|
+
async function recordingTeardown(this: Context) {
|
216
|
+
return disposeRecording(this);
|
217
|
+
},
|
218
|
+
function goodbye() {
|
219
|
+
console.log("All done. Have a nice day :)");
|
220
|
+
},
|
221
|
+
],
|
222
|
+
};
|
223
|
+
|
224
|
+
|
225
|
+
|
226
|
+
|
227
|
+
|
@@ -0,0 +1,86 @@
|
|
1
|
+
import { expect } from "chai";
|
2
|
+
import "@pnp/sp/webs";
|
3
|
+
import "@pnp/sp/folders/web";
|
4
|
+
import "@pnp/sp/folders/list";
|
5
|
+
import "@pnp/sp/files/web";
|
6
|
+
import "@pnp/sp/files/folder";
|
7
|
+
import "@pnp/sp/lists/web";
|
8
|
+
import { getRandomString, isFunc } from "@pnp/core";
|
9
|
+
import * as fs from "fs";
|
10
|
+
import * as path from "path";
|
11
|
+
import * as os from "os";
|
12
|
+
|
13
|
+
|
14
|
+
describe("NodeJS: sp-extensions", function () {
|
15
|
+
|
16
|
+
before(function () {
|
17
|
+
|
18
|
+
if (!this.pnp.settings.enableWebTests) {
|
19
|
+
this.skip();
|
20
|
+
}
|
21
|
+
});
|
22
|
+
|
23
|
+
it("Read Stream", async function () {
|
24
|
+
|
25
|
+
const content = "Some test text content.";
|
26
|
+
const name = `Testing setContent - ${getRandomString(4)}.txt`;
|
27
|
+
const files = this.pnp.sp.web.defaultDocumentLibrary.rootFolder.files;
|
28
|
+
await files.addUsingPath(name, content);
|
29
|
+
|
30
|
+
const stream = await files.getByUrl(name).getStream();
|
31
|
+
|
32
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-expressions
|
33
|
+
expect(stream).to.not.be.null;
|
34
|
+
|
35
|
+
expect(stream.knownLength).to.be.greaterThan(0);
|
36
|
+
|
37
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-expressions
|
38
|
+
expect(stream.body).to.not.be.null;
|
39
|
+
|
40
|
+
const txt = await new Promise<string>((resolve) => {
|
41
|
+
let data = "";
|
42
|
+
stream.body.on("data", (chunk) => data += chunk);
|
43
|
+
stream.body.on("end", () => resolve(data));
|
44
|
+
});
|
45
|
+
|
46
|
+
expect(txt).to.eq(content);
|
47
|
+
});
|
48
|
+
|
49
|
+
it("Adding Chunks via Stream", async function () {
|
50
|
+
|
51
|
+
const name = `Testing addChunked (with Nodejs stream) - ${getRandomString(4)}.txt`;
|
52
|
+
const content = "Some test text content.";
|
53
|
+
|
54
|
+
const tmpFilePath = path.join(os.tmpdir(), name);
|
55
|
+
fs.writeFileSync(tmpFilePath, content);
|
56
|
+
|
57
|
+
const stream = fs.createReadStream(tmpFilePath);
|
58
|
+
const files = this.pnp.sp.web.defaultDocumentLibrary.rootFolder.files;
|
59
|
+
|
60
|
+
await files.addChunked(name, stream, null, true);
|
61
|
+
|
62
|
+
const fileContent = await files.getByUrl(name).getText();
|
63
|
+
|
64
|
+
expect(fileContent.length).be.equal(content.length);
|
65
|
+
|
66
|
+
if (isFunc((<any>fs).rmSync)) {
|
67
|
+
(<any>fs).rmSync(tmpFilePath);
|
68
|
+
} else {
|
69
|
+
fs.unlinkSync(tmpFilePath);
|
70
|
+
}
|
71
|
+
});
|
72
|
+
|
73
|
+
it("Adding Chunks Non-Stream", async function () {
|
74
|
+
|
75
|
+
const name = `Testing addChunked (with Nodejs buffer) - ${getRandomString(4)}.txt`;
|
76
|
+
const content = "Some test text content.";
|
77
|
+
|
78
|
+
const files = this.pnp.sp.web.defaultDocumentLibrary.rootFolder.files;
|
79
|
+
|
80
|
+
await files.addChunked(name, content as any, null, true, 10);
|
81
|
+
|
82
|
+
const fileContent = await files.getByUrl(name).getText();
|
83
|
+
|
84
|
+
expect(fileContent.length).be.equal(content.length);
|
85
|
+
});
|
86
|
+
});
|
package/test/pnp-test.ts
ADDED
@@ -0,0 +1,60 @@
|
|
1
|
+
import { spfi } from "@pnp/sp";
|
2
|
+
import { graphfi } from "@pnp/graph";
|
3
|
+
import { Queryable } from "@pnp/queryable";
|
4
|
+
import { Context } from "mocha";
|
5
|
+
import { TimelinePipe } from "@pnp/core";
|
6
|
+
|
7
|
+
interface IPnPTestFuncThis extends Context {
|
8
|
+
pnpid: string;
|
9
|
+
props<T>(defaults: T): Promise<T>;
|
10
|
+
}
|
11
|
+
|
12
|
+
interface IPnPTestFunc {
|
13
|
+
(this: IPnPTestFuncThis): any;
|
14
|
+
}
|
15
|
+
|
16
|
+
export const PnPTestHeaderName = "X-PnP-TestId";
|
17
|
+
|
18
|
+
/**
|
19
|
+
* Behavior used to inject the correct test id into the headers for each request
|
20
|
+
*
|
21
|
+
* @param id Function generating the id for the test
|
22
|
+
* @returns A timeline pipe
|
23
|
+
*/
|
24
|
+
function PnPTestIdHeader(id: () => string): TimelinePipe {
|
25
|
+
|
26
|
+
return (instance: Queryable) => {
|
27
|
+
|
28
|
+
instance.on.pre.prepend(async function (url: string, init: RequestInit, result: any): Promise<[string, RequestInit, any]> {
|
29
|
+
|
30
|
+
init.headers = { ...init.headers, "X-PnP-TestId": id() };
|
31
|
+
|
32
|
+
return [url, init, result];
|
33
|
+
});
|
34
|
+
|
35
|
+
return instance;
|
36
|
+
};
|
37
|
+
}
|
38
|
+
|
39
|
+
/**
|
40
|
+
* Wrapper function used to wrap our mocha test functions allowing us to inject/change behavior prior
|
41
|
+
* to mocha executing
|
42
|
+
*
|
43
|
+
* @param id The test id, should be unique across the suite of tests (just use a GUID)
|
44
|
+
* @param testFunc The function to be run as a test
|
45
|
+
* @returns The test function bound to an augmented "this"
|
46
|
+
*/
|
47
|
+
export function pnpTest(id: string, testFunc: (this: IPnPTestFuncThis) => any): IPnPTestFunc {
|
48
|
+
|
49
|
+
return async function (this: IPnPTestFuncThis, ...args: any[]) {
|
50
|
+
|
51
|
+
this.pnpid = id;
|
52
|
+
this.props = this.pnp.testProps.get.bind(this.pnp.testProps, this.pnpid);
|
53
|
+
|
54
|
+
// clone our sp and graph for each request, include the test header
|
55
|
+
this.pnp.sp = spfi(this.pnp._sp).using(PnPTestIdHeader(() => this.pnpid));
|
56
|
+
this.pnp.graph = graphfi(this.pnp._graph).using(PnPTestIdHeader(() => this.pnpid));
|
57
|
+
|
58
|
+
return testFunc.apply(this, args);
|
59
|
+
};
|
60
|
+
}
|
@@ -0,0 +1,24 @@
|
|
1
|
+
import { expect } from "chai";
|
2
|
+
import {
|
3
|
+
addProp,
|
4
|
+
} from "@pnp/queryable";
|
5
|
+
import "@pnp/sp/webs";
|
6
|
+
|
7
|
+
describe("add-prop", function () {
|
8
|
+
|
9
|
+
it("Should add a property to an object", async function () {
|
10
|
+
|
11
|
+
function tester() {
|
12
|
+
this.name = "Testing";
|
13
|
+
}
|
14
|
+
|
15
|
+
addProp(tester, "prop", (_o, path) => {
|
16
|
+
return path;
|
17
|
+
}, "path-value");
|
18
|
+
|
19
|
+
const y = new tester();
|
20
|
+
|
21
|
+
expect(y).to.have.property("name", "Testing");
|
22
|
+
expect(y).to.have.property("prop", "path-value");
|
23
|
+
});
|
24
|
+
});
|
@@ -0,0 +1,188 @@
|
|
1
|
+
import { expect } from "chai";
|
2
|
+
import {
|
3
|
+
Caching,
|
4
|
+
CachingPessimisticRefresh,
|
5
|
+
BearerToken,
|
6
|
+
Queryable,
|
7
|
+
InjectHeaders,
|
8
|
+
Timeout,
|
9
|
+
RejectOnError,
|
10
|
+
ResolveOnData,
|
11
|
+
} from "@pnp/queryable";
|
12
|
+
import { default as nodeFetch } from "node-fetch";
|
13
|
+
import "@pnp/sp/webs";
|
14
|
+
import "@pnp/sp/fields";
|
15
|
+
import { getRandomString } from "@pnp/core";
|
16
|
+
import { spfi } from "@pnp/sp";
|
17
|
+
|
18
|
+
describe("Behaviors", function () {
|
19
|
+
|
20
|
+
it("CachingPessimistic", async function () {
|
21
|
+
|
22
|
+
if (!this.pnp.settings.enableWebTests) {
|
23
|
+
this.skip();
|
24
|
+
}
|
25
|
+
|
26
|
+
// Testing a behavior, creating new instance of sp
|
27
|
+
const spInstance = spfi(this.pnp._sp).using(CachingPessimisticRefresh({
|
28
|
+
store: "session",
|
29
|
+
}));
|
30
|
+
|
31
|
+
// Test caching behavior
|
32
|
+
const startCheckpoint = new Date();
|
33
|
+
const u = await spInstance.web();
|
34
|
+
const midCheckpoint = new Date();
|
35
|
+
const u2 = await spInstance.web();
|
36
|
+
const endCheckpoint = new Date();
|
37
|
+
|
38
|
+
// Results should be the same
|
39
|
+
const test1 = JSON.stringify(u) === JSON.stringify(u2);
|
40
|
+
|
41
|
+
// Assume first call should take longer as it's not cached
|
42
|
+
const call1Time = (midCheckpoint.getTime() - startCheckpoint.getTime());
|
43
|
+
const call2Time = (endCheckpoint.getTime() - midCheckpoint.getTime());
|
44
|
+
const test2 = call1Time > call2Time;
|
45
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-expressions
|
46
|
+
return expect(test1 && test2).to.be.true;
|
47
|
+
});
|
48
|
+
|
49
|
+
it("CachingPessimistic (headers)", async function () {
|
50
|
+
|
51
|
+
if (!this.pnp.settings.enableWebTests) {
|
52
|
+
this.skip();
|
53
|
+
}
|
54
|
+
|
55
|
+
// Testing a behavior, creating new instance of sp
|
56
|
+
const spInstance = spfi(this.pnp._sp).using(CachingPessimisticRefresh({
|
57
|
+
store: "session",
|
58
|
+
}));
|
59
|
+
|
60
|
+
// Add a text field, which augments header, to validate that CachingPessimisticRefresh execute function honors header
|
61
|
+
const testFieldNameRand = `CachingPessimisticRefreshField_${getRandomString(10)}`;
|
62
|
+
const f = await spInstance.web.fields.addText(testFieldNameRand);
|
63
|
+
await f.field.delete();
|
64
|
+
|
65
|
+
// Test caching behavior
|
66
|
+
const startCheckpoint = new Date();
|
67
|
+
const u = await spInstance.web();
|
68
|
+
const midCheckpoint = new Date();
|
69
|
+
const u2 = await spInstance.web();
|
70
|
+
const endCheckpoint = new Date();
|
71
|
+
|
72
|
+
// Results should be the same
|
73
|
+
const test1 = JSON.stringify(u) === JSON.stringify(u2);
|
74
|
+
|
75
|
+
// Assume first call should take longer as it's not cached
|
76
|
+
const call1Time = (midCheckpoint.getTime() - startCheckpoint.getTime());
|
77
|
+
const call2Time = (endCheckpoint.getTime() - midCheckpoint.getTime());
|
78
|
+
const test2 = call1Time > call2Time;
|
79
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-expressions
|
80
|
+
return expect(test1 && test2).to.be.true;
|
81
|
+
});
|
82
|
+
|
83
|
+
it("Caching", async function () {
|
84
|
+
|
85
|
+
if (!this.pnp.settings.enableWebTests) {
|
86
|
+
this.skip();
|
87
|
+
}
|
88
|
+
|
89
|
+
// Testing a behavior, creating new instance of sp
|
90
|
+
const spInstance = spfi(this.pnp._sp).using(Caching({ store: "session" }));
|
91
|
+
|
92
|
+
// Test caching behavior
|
93
|
+
const startCheckpoint = new Date();
|
94
|
+
const u = await spInstance.web();
|
95
|
+
const midCheckpoint = new Date();
|
96
|
+
const u2 = await spInstance.web();
|
97
|
+
const endCheckpoint = new Date();
|
98
|
+
|
99
|
+
// Results should be the same
|
100
|
+
const test1 = JSON.stringify(u) === JSON.stringify(u2);
|
101
|
+
|
102
|
+
// Assume first call should take longer as it's not cached
|
103
|
+
const call1Time = (midCheckpoint.getTime() - startCheckpoint.getTime());
|
104
|
+
const call2Time = (endCheckpoint.getTime() - midCheckpoint.getTime());
|
105
|
+
const test2 = call1Time > call2Time;
|
106
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-expressions
|
107
|
+
return expect(test1 && test2).to.be.true;
|
108
|
+
});
|
109
|
+
|
110
|
+
it("Bearer Token", async function () {
|
111
|
+
|
112
|
+
const query = new Queryable("https://bing.com");
|
113
|
+
query.using(BearerToken("!!token!!"));
|
114
|
+
|
115
|
+
query.on.send.replace((url, init) => {
|
116
|
+
|
117
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-expressions
|
118
|
+
expect(init.headers).to.not.be.undefined.and.to.not.be.null;
|
119
|
+
|
120
|
+
expect(init.headers).to.have.property("Authorization", "Bearer !!token!!");
|
121
|
+
|
122
|
+
return null;
|
123
|
+
});
|
124
|
+
|
125
|
+
query.on.parse.replace(async function (this: Queryable, url, response, result) {
|
126
|
+
|
127
|
+
this.emit[this.InternalResolve](null);
|
128
|
+
|
129
|
+
return [url, response, result];
|
130
|
+
});
|
131
|
+
|
132
|
+
await query();
|
133
|
+
});
|
134
|
+
|
135
|
+
it("Inject Headers", async function () {
|
136
|
+
|
137
|
+
const query = new Queryable("https://bing.com");
|
138
|
+
query.using(InjectHeaders({
|
139
|
+
"header1": "header1-value",
|
140
|
+
"header2": "header2-value",
|
141
|
+
}));
|
142
|
+
|
143
|
+
query.on.send.replace((url, init) => {
|
144
|
+
|
145
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-expressions
|
146
|
+
expect(init.headers).to.not.be.undefined.and.to.not.be.null;
|
147
|
+
|
148
|
+
expect(init.headers).to.have.property("header1", "header1-value");
|
149
|
+
|
150
|
+
expect(init.headers).to.have.property("header2", "header2-value");
|
151
|
+
|
152
|
+
return null;
|
153
|
+
});
|
154
|
+
|
155
|
+
query.on.parse.replace(async function (this: Queryable, url, response, result) {
|
156
|
+
|
157
|
+
this.emit[this.InternalResolve](null);
|
158
|
+
|
159
|
+
return [url, response, result];
|
160
|
+
});
|
161
|
+
|
162
|
+
await query();
|
163
|
+
});
|
164
|
+
|
165
|
+
it("Timeout", async function () {
|
166
|
+
|
167
|
+
const query = new Queryable("https://bing.com");
|
168
|
+
query.using(Timeout(50));
|
169
|
+
query.using(ResolveOnData(), RejectOnError());
|
170
|
+
|
171
|
+
query.on.send.replace(async (url, init) => <any>nodeFetch(url.toString(), <any>init));
|
172
|
+
|
173
|
+
try {
|
174
|
+
|
175
|
+
await query();
|
176
|
+
|
177
|
+
expect.fail("Timeout should cause error and we end up in catch before this line.");
|
178
|
+
|
179
|
+
} catch (e) {
|
180
|
+
|
181
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-expressions
|
182
|
+
expect(e).to.not.be.null;
|
183
|
+
|
184
|
+
// we expect this to be the error from the abort signal
|
185
|
+
expect(e).property("name").to.eq("AbortError");
|
186
|
+
}
|
187
|
+
});
|
188
|
+
});
|
@@ -0,0 +1,35 @@
|
|
1
|
+
import { expect } from "chai";
|
2
|
+
import {
|
3
|
+
invokable,
|
4
|
+
IInvokable,
|
5
|
+
} from "@pnp/queryable";
|
6
|
+
|
7
|
+
const value = "Test Result";
|
8
|
+
const value2 = "Test2 Values";
|
9
|
+
|
10
|
+
@invokable(async () => value)
|
11
|
+
class InvokableTest { }
|
12
|
+
// eslint-disable-next-line no-redeclare
|
13
|
+
interface InvokableTest extends IInvokable<any> { }
|
14
|
+
|
15
|
+
@invokable(async () => value2)
|
16
|
+
class InvokableTest2 extends InvokableTest { }
|
17
|
+
// eslint-disable-next-line no-redeclare
|
18
|
+
interface InvokableTest2 extends IInvokable<any> { }
|
19
|
+
|
20
|
+
describe("invokable", function () {
|
21
|
+
|
22
|
+
it("works", async function () {
|
23
|
+
|
24
|
+
const obj = new InvokableTest();
|
25
|
+
const v = await obj();
|
26
|
+
expect(v).to.eq(value);
|
27
|
+
});
|
28
|
+
|
29
|
+
it("correctly overrides in inheriting classes", async function () {
|
30
|
+
|
31
|
+
const obj = new InvokableTest2();
|
32
|
+
const v = await obj();
|
33
|
+
expect(v).to.eq(value2);
|
34
|
+
});
|
35
|
+
});
|