@zxncij2390/monorepo3 3.18.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (921) hide show
  1. package/.eslintignore +16 -0
  2. package/.eslintrc.cjs +150 -0
  3. package/.github/ISSUE_TEMPLATE/bug-report.yml +178 -0
  4. package/.github/ISSUE_TEMPLATE/enhancement.yml +99 -0
  5. package/.github/ISSUE_TEMPLATE/question.yml +72 -0
  6. package/.github/ISSUE_TEMPLATE.md +39 -0
  7. package/.github/PULL_REQUEST_TEMPLATE.md +24 -0
  8. package/.github/workflows/lock.yml +18 -0
  9. package/.github/workflows/publish-buildsystem.yml +34 -0
  10. package/.github/workflows/publish-docs.yml +21 -0
  11. package/.github/workflows/publish.yml +40 -0
  12. package/.github/workflows/pull_request.yaml +28 -0
  13. package/.github/workflows/push.yaml +32 -0
  14. package/.github/workflows/v3-nightly.yml +40 -0
  15. package/.mocharc.cjs +68 -0
  16. package/.vscode/launch.json +103 -0
  17. package/.vscode/settings.json +17 -0
  18. package/.vscode/tasks.json +124 -0
  19. package/AUTHORS +13 -0
  20. package/CHANGELOG.md +33 -0
  21. package/CODE_OF_CONDUCT.md +6 -0
  22. package/CONTRIBUTING.md +9 -0
  23. package/LICENSE +25 -0
  24. package/README.md +66 -0
  25. package/buildsystem-config.ts +146 -0
  26. package/debug/launch/graph.ts +20 -0
  27. package/debug/launch/main.ts +38 -0
  28. package/debug/launch/setup.ts +50 -0
  29. package/debug/launch/sp.ts +21 -0
  30. package/debug/launch/tsconfig.json +27 -0
  31. package/debug/serve/main.ts +47 -0
  32. package/debug/serve/plumbing/local-module-resolver-plugin.ts +68 -0
  33. package/debug/serve/plumbing/run.ts +24 -0
  34. package/debug/serve/plumbing/serve.ts +27 -0
  35. package/debug/serve/plumbing/webpack.config.ts +43 -0
  36. package/debug/serve/spa.html +12 -0
  37. package/debug/serve/tsconfig.json +15 -0
  38. package/debug/spfx/.eslintrc.js +352 -0
  39. package/debug/spfx/README.md +73 -0
  40. package/debug/spfx/package-lock.json +57299 -0
  41. package/debug/spfx/package.json +38 -0
  42. package/debug/spfx/pnpjs-local-debug-start.js +19 -0
  43. package/debug/spfx/teams/f4c0e5ff-c402-46b7-8073-8cc506808d06_color.png +0 -0
  44. package/debug/spfx/teams/f4c0e5ff-c402-46b7-8073-8cc506808d06_outline.png +0 -0
  45. package/docs/_theme/main.html +5 -0
  46. package/docs/azidjsclient/index.md +36 -0
  47. package/docs/concepts/adv-clientside-pages.md +169 -0
  48. package/docs/concepts/auth-browser.md +42 -0
  49. package/docs/concepts/auth-nodejs.md +101 -0
  50. package/docs/concepts/auth-spfx.md +76 -0
  51. package/docs/concepts/authentication.md +42 -0
  52. package/docs/concepts/batching-caching.md +77 -0
  53. package/docs/concepts/batching.md +257 -0
  54. package/docs/concepts/calling-other-endpoints.md +213 -0
  55. package/docs/concepts/custom-bundle.md +15 -0
  56. package/docs/concepts/error-handling.md +245 -0
  57. package/docs/concepts/invokable.md +7 -0
  58. package/docs/concepts/nightly-builds.md +19 -0
  59. package/docs/concepts/project-preset.md +123 -0
  60. package/docs/concepts/selective-imports.md +106 -0
  61. package/docs/concepts/typings.md +23 -0
  62. package/docs/contributing/debug-tests.md +76 -0
  63. package/docs/contributing/debugging.md +135 -0
  64. package/docs/contributing/documentation.md +34 -0
  65. package/docs/contributing/extending-the-library.md +223 -0
  66. package/docs/contributing/index.md +22 -0
  67. package/docs/contributing/local-debug-configuration.md +28 -0
  68. package/docs/contributing/npm-scripts.md +148 -0
  69. package/docs/contributing/pull-requests.md +27 -0
  70. package/docs/contributing/settings.md +98 -0
  71. package/docs/contributing/setup-dev-machine.md +36 -0
  72. package/docs/core/behavior-recipes.md +199 -0
  73. package/docs/core/behaviors.md +179 -0
  74. package/docs/core/moments.md +215 -0
  75. package/docs/core/observers.md +100 -0
  76. package/docs/core/storage.md +90 -0
  77. package/docs/core/timeline.md +190 -0
  78. package/docs/core/util.md +191 -0
  79. package/docs/css/extra.css +33 -0
  80. package/docs/getting-started.md +361 -0
  81. package/docs/graph/behaviors.md +267 -0
  82. package/docs/graph/bookings.md +180 -0
  83. package/docs/graph/calendars.md +270 -0
  84. package/docs/graph/cloud-communications.md +40 -0
  85. package/docs/graph/columns.md +125 -0
  86. package/docs/graph/contacts.md +298 -0
  87. package/docs/graph/content-types.md +193 -0
  88. package/docs/graph/directoryobjects.md +106 -0
  89. package/docs/graph/groups.md +164 -0
  90. package/docs/graph/insights.md +151 -0
  91. package/docs/graph/invitations.md +22 -0
  92. package/docs/graph/items.md +38 -0
  93. package/docs/graph/lists.md +87 -0
  94. package/docs/graph/messages.md +20 -0
  95. package/docs/graph/onedrive.md +614 -0
  96. package/docs/graph/outlook.md +82 -0
  97. package/docs/graph/photos.md +71 -0
  98. package/docs/graph/planner.md +249 -0
  99. package/docs/graph/search.md +25 -0
  100. package/docs/graph/shares.md +44 -0
  101. package/docs/graph/sites.md +47 -0
  102. package/docs/graph/subscriptions.md +79 -0
  103. package/docs/graph/teams.md +293 -0
  104. package/docs/graph/users.md +134 -0
  105. package/docs/img/ConsoleListenerColors.png +0 -0
  106. package/docs/img/Logo.png +0 -0
  107. package/docs/img/PnPJS_FluentAPI.gif +0 -0
  108. package/docs/img/SPFx-On-Premesis-2016-1.png +0 -0
  109. package/docs/img/TimelineArchitecture.jpg +0 -0
  110. package/docs/img/csp_copyccvalue.png +0 -0
  111. package/docs/img/csp_networktab.png +0 -0
  112. package/docs/img/office365-header-icon.png +0 -0
  113. package/docs/img/usage-2020-eoy.png +0 -0
  114. package/docs/img/usage-2021-eoy.png +0 -0
  115. package/docs/img/usage-2022-eoy.png +0 -0
  116. package/docs/index.md +56 -0
  117. package/docs/logging/index.md +262 -0
  118. package/docs/msaljsclient/index.md +33 -0
  119. package/docs/news/2020-year-in-review.md +162 -0
  120. package/docs/news/2021-year-in-review.md +148 -0
  121. package/docs/news/2022-year-in-review.md +122 -0
  122. package/docs/nodejs/behaviors.md +164 -0
  123. package/docs/nodejs/sp-extensions.md +99 -0
  124. package/docs/packages.md +53 -0
  125. package/docs/queryable/behaviors.md +496 -0
  126. package/docs/queryable/extensions.md +204 -0
  127. package/docs/queryable/queryable.md +385 -0
  128. package/docs/sp/alias-parameters.md +76 -0
  129. package/docs/sp/alm.md +139 -0
  130. package/docs/sp/attachments.md +157 -0
  131. package/docs/sp/behaviors.md +142 -0
  132. package/docs/sp/clientside-pages.md +1048 -0
  133. package/docs/sp/column-defaults.md +241 -0
  134. package/docs/sp/comments-likes.md +302 -0
  135. package/docs/sp/content-types.md +131 -0
  136. package/docs/sp/context-info.md +67 -0
  137. package/docs/sp/favorites.md +91 -0
  138. package/docs/sp/features.md +83 -0
  139. package/docs/sp/fields.md +668 -0
  140. package/docs/sp/files.md +559 -0
  141. package/docs/sp/folders.md +532 -0
  142. package/docs/sp/forms.md +22 -0
  143. package/docs/sp/groupSiteManager.md +40 -0
  144. package/docs/sp/hubsites.md +140 -0
  145. package/docs/sp/items.md +601 -0
  146. package/docs/sp/lists.md +572 -0
  147. package/docs/sp/navigation.md +171 -0
  148. package/docs/sp/permissions.md +82 -0
  149. package/docs/sp/profiles.md +407 -0
  150. package/docs/sp/publishing-sitepageservice.md +16 -0
  151. package/docs/sp/recycle-bin.md +72 -0
  152. package/docs/sp/regional-settings.md +108 -0
  153. package/docs/sp/related-items.md +136 -0
  154. package/docs/sp/search.md +207 -0
  155. package/docs/sp/security.md +196 -0
  156. package/docs/sp/sharing.md +273 -0
  157. package/docs/sp/site-designs.md +117 -0
  158. package/docs/sp/site-groups.md +144 -0
  159. package/docs/sp/site-scripts.md +123 -0
  160. package/docs/sp/site-users.md +211 -0
  161. package/docs/sp/sites.md +269 -0
  162. package/docs/sp/social.md +182 -0
  163. package/docs/sp/sp-utilities-utility.md +159 -0
  164. package/docs/sp/subscriptions.md +79 -0
  165. package/docs/sp/taxonomy.md +470 -0
  166. package/docs/sp/tenant-properties.md +55 -0
  167. package/docs/sp/user-custom-actions.md +95 -0
  168. package/docs/sp/views.md +226 -0
  169. package/docs/sp/webs.md +947 -0
  170. package/docs/sp-admin/index.md +139 -0
  171. package/docs/transition-guide.md +87 -0
  172. package/docs/v1/404.html +1611 -0
  173. package/docs/v1/assets/fonts/font-awesome.css +4 -0
  174. package/docs/v1/assets/fonts/material-icons.css +13 -0
  175. package/docs/v1/assets/fonts/specimen/FontAwesome.ttf +0 -0
  176. package/docs/v1/assets/fonts/specimen/FontAwesome.woff +0 -0
  177. package/docs/v1/assets/fonts/specimen/FontAwesome.woff2 +0 -0
  178. package/docs/v1/assets/fonts/specimen/MaterialIcons-Regular.ttf +0 -0
  179. package/docs/v1/assets/fonts/specimen/MaterialIcons-Regular.woff +0 -0
  180. package/docs/v1/assets/fonts/specimen/MaterialIcons-Regular.woff2 +0 -0
  181. package/docs/v1/assets/images/favicon.png +0 -0
  182. package/docs/v1/assets/images/icons/bitbucket.1b09e088.svg +20 -0
  183. package/docs/v1/assets/images/icons/github.f0b8504a.svg +18 -0
  184. package/docs/v1/assets/images/icons/gitlab.6dd19c00.svg +38 -0
  185. package/docs/v1/assets/javascripts/application.583bbe55.js +1 -0
  186. package/docs/v1/assets/javascripts/lunr/lunr.da.js +1 -0
  187. package/docs/v1/assets/javascripts/lunr/lunr.de.js +1 -0
  188. package/docs/v1/assets/javascripts/lunr/lunr.du.js +1 -0
  189. package/docs/v1/assets/javascripts/lunr/lunr.es.js +1 -0
  190. package/docs/v1/assets/javascripts/lunr/lunr.fi.js +1 -0
  191. package/docs/v1/assets/javascripts/lunr/lunr.fr.js +1 -0
  192. package/docs/v1/assets/javascripts/lunr/lunr.hu.js +1 -0
  193. package/docs/v1/assets/javascripts/lunr/lunr.it.js +1 -0
  194. package/docs/v1/assets/javascripts/lunr/lunr.jp.js +1 -0
  195. package/docs/v1/assets/javascripts/lunr/lunr.multi.js +1 -0
  196. package/docs/v1/assets/javascripts/lunr/lunr.no.js +1 -0
  197. package/docs/v1/assets/javascripts/lunr/lunr.pt.js +1 -0
  198. package/docs/v1/assets/javascripts/lunr/lunr.ro.js +1 -0
  199. package/docs/v1/assets/javascripts/lunr/lunr.ru.js +1 -0
  200. package/docs/v1/assets/javascripts/lunr/lunr.stemmer.support.js +1 -0
  201. package/docs/v1/assets/javascripts/lunr/lunr.sv.js +1 -0
  202. package/docs/v1/assets/javascripts/lunr/lunr.tr.js +1 -0
  203. package/docs/v1/assets/javascripts/lunr/tinyseg.js +1 -0
  204. package/docs/v1/assets/javascripts/modernizr.1aa3b519.js +1 -0
  205. package/docs/v1/assets/stylesheets/application-palette.22915126.css +1176 -0
  206. package/docs/v1/assets/stylesheets/application.451f80e5.css +2552 -0
  207. package/docs/v1/common/docs/adalclient/index.html +1994 -0
  208. package/docs/v1/common/docs/collections/index.html +1786 -0
  209. package/docs/v1/common/docs/custom-httpclientimpl/index.html +1798 -0
  210. package/docs/v1/common/docs/index.html +1787 -0
  211. package/docs/v1/common/docs/libconfig/index.html +1930 -0
  212. package/docs/v1/common/docs/netutil/index.html +1860 -0
  213. package/docs/v1/common/docs/storage/index.html +1850 -0
  214. package/docs/v1/common/docs/util/index.html +2058 -0
  215. package/docs/v1/config-store/docs/configuration/index.html +1730 -0
  216. package/docs/v1/config-store/docs/index.html +1761 -0
  217. package/docs/v1/config-store/docs/providers/index.html +1782 -0
  218. package/docs/v1/documentation/SPFx-On-Premesis-2016/index.html +1720 -0
  219. package/docs/v1/documentation/beta-versions/index.html +1742 -0
  220. package/docs/v1/documentation/css/extra.css +33 -0
  221. package/docs/v1/documentation/debugging/index.html +2098 -0
  222. package/docs/v1/documentation/deployment/index.html +1972 -0
  223. package/docs/v1/documentation/documentation/index.html +1760 -0
  224. package/docs/v1/documentation/getting-started/index.html +2280 -0
  225. package/docs/v1/documentation/getting-started-dev/index.html +1799 -0
  226. package/docs/v1/documentation/gulp-commands/index.html +2100 -0
  227. package/docs/v1/documentation/img/Logo.png +0 -0
  228. package/docs/v1/documentation/img/PnPJS_FluentAPI.gif +0 -0
  229. package/docs/v1/documentation/img/SPFx-On-Premesis-2016-1.png +0 -0
  230. package/docs/v1/documentation/img/office365-header-icon.png +0 -0
  231. package/docs/v1/documentation/img/pnpjs-common-uml.svg +220 -0
  232. package/docs/v1/documentation/img/pnpjs-config-store-uml.svg +56 -0
  233. package/docs/v1/documentation/img/pnpjs-graph-uml.svg +602 -0
  234. package/docs/v1/documentation/img/pnpjs-logging-uml.svg +59 -0
  235. package/docs/v1/documentation/img/pnpjs-nodejs-uml.svg +85 -0
  236. package/docs/v1/documentation/img/pnpjs-odata-uml.svg +253 -0
  237. package/docs/v1/documentation/img/pnpjs-sp-addinhelpers-uml.svg +48 -0
  238. package/docs/v1/documentation/img/pnpjs-sp-clientsvc-uml.svg +167 -0
  239. package/docs/v1/documentation/img/pnpjs-sp-taxonomy-uml.svg +458 -0
  240. package/docs/v1/documentation/img/pnpjs-sp-uml.svg +2833 -0
  241. package/docs/v1/documentation/package-structure/index.html +1875 -0
  242. package/docs/v1/documentation/packages/index.html +1741 -0
  243. package/docs/v1/documentation/polyfill/index.html +1877 -0
  244. package/docs/v1/documentation/theme/main.html +5 -0
  245. package/docs/v1/documentation/transition-guide/index.html +1977 -0
  246. package/docs/v1/graph/docs/contacts/index.html +2080 -0
  247. package/docs/v1/graph/docs/directoryobjects/index.html +1865 -0
  248. package/docs/v1/graph/docs/index.html +1858 -0
  249. package/docs/v1/graph/docs/insights/index.html +1698 -0
  250. package/docs/v1/graph/docs/invitations/index.html +1742 -0
  251. package/docs/v1/graph/docs/onedrive/index.html +2086 -0
  252. package/docs/v1/graph/docs/people/index.html +1664 -0
  253. package/docs/v1/graph/docs/planner/index.html +2097 -0
  254. package/docs/v1/graph/docs/security/index.html +1692 -0
  255. package/docs/v1/graph/docs/sites/index.html +2043 -0
  256. package/docs/v1/graph/docs/subscriptions/index.html +1835 -0
  257. package/docs/v1/graph/docs/teams/index.html +2097 -0
  258. package/docs/v1/index.html +1889 -0
  259. package/docs/v1/logging/docs/index.html +2045 -0
  260. package/docs/v1/nodejs/docs/adal-certificate-fetch-client/index.html +1676 -0
  261. package/docs/v1/nodejs/docs/adal-fetch-client/index.html +1713 -0
  262. package/docs/v1/nodejs/docs/bearer-token-fetch-client/index.html +1712 -0
  263. package/docs/v1/nodejs/docs/index.html +1764 -0
  264. package/docs/v1/nodejs/docs/provider-hosted-app/index.html +1725 -0
  265. package/docs/v1/nodejs/docs/proxy/index.html +1699 -0
  266. package/docs/v1/nodejs/docs/sp-fetch-client/index.html +1895 -0
  267. package/docs/v1/odata/docs/caching/index.html +1988 -0
  268. package/docs/v1/odata/docs/core/index.html +1829 -0
  269. package/docs/v1/odata/docs/index.html +1781 -0
  270. package/docs/v1/odata/docs/odata-batch/index.html +1755 -0
  271. package/docs/v1/odata/docs/parsers/index.html +1862 -0
  272. package/docs/v1/odata/docs/pipeline/index.html +1811 -0
  273. package/docs/v1/odata/docs/queryable/index.html +1967 -0
  274. package/docs/v1/pnpjs/docs/index.html +1814 -0
  275. package/docs/v1/search/search_index.json +1 -0
  276. package/docs/v1/sitemap.xml +428 -0
  277. package/docs/v1/sitemap.xml.gz +0 -0
  278. package/docs/v1/sp/docs/alias-parameters/index.html +1830 -0
  279. package/docs/v1/sp/docs/alm/index.html +1920 -0
  280. package/docs/v1/sp/docs/attachments/index.html +1998 -0
  281. package/docs/v1/sp/docs/client-side-pages/index.html +2031 -0
  282. package/docs/v1/sp/docs/comments-likes/index.html +1958 -0
  283. package/docs/v1/sp/docs/content-types/index.html +1758 -0
  284. package/docs/v1/sp/docs/entity-merging/index.html +1838 -0
  285. package/docs/v1/sp/docs/features/index.html +1824 -0
  286. package/docs/v1/sp/docs/fields/index.html +2031 -0
  287. package/docs/v1/sp/docs/files/index.html +2178 -0
  288. package/docs/v1/sp/docs/index.html +1894 -0
  289. package/docs/v1/sp/docs/items/index.html +2362 -0
  290. package/docs/v1/sp/docs/navigation-service/index.html +1791 -0
  291. package/docs/v1/sp/docs/permissions/index.html +1860 -0
  292. package/docs/v1/sp/docs/profiles/index.html +1794 -0
  293. package/docs/v1/sp/docs/related-items/index.html +1886 -0
  294. package/docs/v1/sp/docs/search/index.html +1830 -0
  295. package/docs/v1/sp/docs/sharing/index.html +2058 -0
  296. package/docs/v1/sp/docs/sitedesigns/index.html +1851 -0
  297. package/docs/v1/sp/docs/sites/index.html +2186 -0
  298. package/docs/v1/sp/docs/social/index.html +2011 -0
  299. package/docs/v1/sp/docs/sp-utilities-utility/index.html +2061 -0
  300. package/docs/v1/sp/docs/tenant-properties/index.html +1795 -0
  301. package/docs/v1/sp/docs/views/index.html +1869 -0
  302. package/docs/v1/sp/docs/webs/index.html +1972 -0
  303. package/docs/v1/sp-addinhelpers/docs/index.html +1771 -0
  304. package/docs/v1/sp-addinhelpers/docs/sp-request-executor-client/index.html +1760 -0
  305. package/docs/v1/sp-addinhelpers/docs/sp-rest-addin/index.html +1711 -0
  306. package/docs/v1/sp-clientsvc/docs/index.html +1736 -0
  307. package/docs/v1/sp-taxonomy/docs/index.html +1887 -0
  308. package/docs/v1/sp-taxonomy/docs/labels/index.html +1827 -0
  309. package/docs/v1/sp-taxonomy/docs/term-groups/index.html +1875 -0
  310. package/docs/v1/sp-taxonomy/docs/term-sets/index.html +1946 -0
  311. package/docs/v1/sp-taxonomy/docs/term-stores/index.html +2111 -0
  312. package/docs/v1/sp-taxonomy/docs/terms/index.html +2036 -0
  313. package/docs/v1/sp-taxonomy/docs/utilities/index.html +1783 -0
  314. package/docs/v2/404.html +2108 -0
  315. package/docs/v2/SPFx-on-premises/index.html +2278 -0
  316. package/docs/v2/_theme/main.html +5 -0
  317. package/docs/v2/adaljsclient/adalclient/index.html +15 -0
  318. package/docs/v2/adaljsclient/index.html +15 -0
  319. package/docs/v2/assets/images/favicon.png +0 -0
  320. package/docs/v2/assets/javascripts/bundle.9554a270.min.js +2 -0
  321. package/docs/v2/assets/javascripts/bundle.9554a270.min.js.map +1 -0
  322. package/docs/v2/assets/javascripts/lunr/min/lunr.ar.min.js +1 -0
  323. package/docs/v2/assets/javascripts/lunr/min/lunr.da.min.js +18 -0
  324. package/docs/v2/assets/javascripts/lunr/min/lunr.de.min.js +18 -0
  325. package/docs/v2/assets/javascripts/lunr/min/lunr.du.min.js +18 -0
  326. package/docs/v2/assets/javascripts/lunr/min/lunr.es.min.js +18 -0
  327. package/docs/v2/assets/javascripts/lunr/min/lunr.fi.min.js +18 -0
  328. package/docs/v2/assets/javascripts/lunr/min/lunr.fr.min.js +18 -0
  329. package/docs/v2/assets/javascripts/lunr/min/lunr.hu.min.js +18 -0
  330. package/docs/v2/assets/javascripts/lunr/min/lunr.it.min.js +18 -0
  331. package/docs/v2/assets/javascripts/lunr/min/lunr.ja.min.js +1 -0
  332. package/docs/v2/assets/javascripts/lunr/min/lunr.jp.min.js +1 -0
  333. package/docs/v2/assets/javascripts/lunr/min/lunr.multi.min.js +1 -0
  334. package/docs/v2/assets/javascripts/lunr/min/lunr.nl.min.js +18 -0
  335. package/docs/v2/assets/javascripts/lunr/min/lunr.no.min.js +18 -0
  336. package/docs/v2/assets/javascripts/lunr/min/lunr.pt.min.js +18 -0
  337. package/docs/v2/assets/javascripts/lunr/min/lunr.ro.min.js +18 -0
  338. package/docs/v2/assets/javascripts/lunr/min/lunr.ru.min.js +18 -0
  339. package/docs/v2/assets/javascripts/lunr/min/lunr.stemmer.support.min.js +1 -0
  340. package/docs/v2/assets/javascripts/lunr/min/lunr.sv.min.js +18 -0
  341. package/docs/v2/assets/javascripts/lunr/min/lunr.tr.min.js +18 -0
  342. package/docs/v2/assets/javascripts/lunr/min/lunr.vi.min.js +1 -0
  343. package/docs/v2/assets/javascripts/lunr/tinyseg.min.js +1 -0
  344. package/docs/v2/assets/javascripts/vendor.77e55a48.min.js +30 -0
  345. package/docs/v2/assets/javascripts/vendor.77e55a48.min.js.map +1 -0
  346. package/docs/v2/assets/javascripts/worker/search.4ac00218.min.js +59 -0
  347. package/docs/v2/assets/javascripts/worker/search.4ac00218.min.js.map +1 -0
  348. package/docs/v2/assets/stylesheets/main.38780c08.min.css +3 -0
  349. package/docs/v2/assets/stylesheets/main.38780c08.min.css.map +1 -0
  350. package/docs/v2/assets/stylesheets/palette.3f72e892.min.css +3 -0
  351. package/docs/v2/assets/stylesheets/palette.3f72e892.min.css.map +1 -0
  352. package/docs/v2/authentication/adaljsclient/index.html +2510 -0
  353. package/docs/v2/authentication/bearertokenclient/index.html +2251 -0
  354. package/docs/v2/authentication/client-spa/index.html +2206 -0
  355. package/docs/v2/authentication/client-spfx/index.html +2397 -0
  356. package/docs/v2/authentication/index.html +2307 -0
  357. package/docs/v2/authentication/lambdaclient/index.html +2304 -0
  358. package/docs/v2/authentication/msaljsclient/index.html +2413 -0
  359. package/docs/v2/authentication/server-nodejs/index.html +2404 -0
  360. package/docs/v2/authentication/sp-app-registration/index.html +2273 -0
  361. package/docs/v2/common/collections/index.html +2277 -0
  362. package/docs/v2/common/custom-httpclientimpl/index.html +2300 -0
  363. package/docs/v2/common/index.html +2262 -0
  364. package/docs/v2/common/libconfig/index.html +2413 -0
  365. package/docs/v2/common/netutil/index.html +2350 -0
  366. package/docs/v2/common/storage/index.html +2339 -0
  367. package/docs/v2/common/util/index.html +2638 -0
  368. package/docs/v2/concepts/configuration/index.html +2685 -0
  369. package/docs/v2/concepts/custom-bundle/index.html +2279 -0
  370. package/docs/v2/concepts/error-handling/index.html +2539 -0
  371. package/docs/v2/concepts/ie11-mode/index.html +2278 -0
  372. package/docs/v2/concepts/invokable/index.html +2254 -0
  373. package/docs/v2/concepts/polyfill/index.html +2401 -0
  374. package/docs/v2/concepts/selective-imports/index.html +2360 -0
  375. package/docs/v2/concepts/settings/index.html +2551 -0
  376. package/docs/v2/config-store/configuration/index.html +2226 -0
  377. package/docs/v2/config-store/index.html +2239 -0
  378. package/docs/v2/config-store/providers/index.html +2275 -0
  379. package/docs/v2/contributing/debug-tests/index.html +2323 -0
  380. package/docs/v2/contributing/debugging/index.html +2514 -0
  381. package/docs/v2/contributing/documentation/index.html +2291 -0
  382. package/docs/v2/contributing/extending-the-library/index.html +2521 -0
  383. package/docs/v2/contributing/index.html +2270 -0
  384. package/docs/v2/contributing/local-debug-configuration/index.html +2284 -0
  385. package/docs/v2/contributing/pull-requests/index.html +2261 -0
  386. package/docs/v2/contributing/setup-dev-machine/index.html +2284 -0
  387. package/docs/v2/css/extra.css +33 -0
  388. package/docs/v2/debug-tests/index.html +15 -0
  389. package/docs/v2/debugging/index.html +15 -0
  390. package/docs/v2/documentation/index.html +15 -0
  391. package/docs/v2/getting-started/index.html +2789 -0
  392. package/docs/v2/getting-started-dev/index.html +15 -0
  393. package/docs/v2/graph/calendars/index.html +2569 -0
  394. package/docs/v2/graph/contacts/index.html +2673 -0
  395. package/docs/v2/graph/directoryobjects/index.html +2402 -0
  396. package/docs/v2/graph/groups/index.html +2488 -0
  397. package/docs/v2/graph/index.html +2333 -0
  398. package/docs/v2/graph/insights/index.html +2478 -0
  399. package/docs/v2/graph/invitations/index.html +2273 -0
  400. package/docs/v2/graph/onedrive/index.html +2617 -0
  401. package/docs/v2/graph/outlook/index.html +2363 -0
  402. package/docs/v2/graph/photos/index.html +2351 -0
  403. package/docs/v2/graph/planner/index.html +2628 -0
  404. package/docs/v2/graph/search/index.html +2264 -0
  405. package/docs/v2/graph/subscriptions/index.html +2333 -0
  406. package/docs/v2/graph/teams/index.html +2619 -0
  407. package/docs/v2/graph/users/index.html +2461 -0
  408. package/docs/v2/img/ConsoleListenerColors.png +0 -0
  409. package/docs/v2/img/Logo.png +0 -0
  410. package/docs/v2/img/PnPJS_FluentAPI.gif +0 -0
  411. package/docs/v2/img/SPFx-On-Premesis-2016-1.png +0 -0
  412. package/docs/v2/img/office365-header-icon.png +0 -0
  413. package/docs/v2/img/usage-2020-eoy.png +0 -0
  414. package/docs/v2/index.html +2410 -0
  415. package/docs/v2/logging/index.html +2622 -0
  416. package/docs/v2/news/2020-year-in-review/index.html +2525 -0
  417. package/docs/v2/nodejs/adal-fetch-client/index.html +2204 -0
  418. package/docs/v2/nodejs/bearer-token-fetch-client/index.html +2203 -0
  419. package/docs/v2/nodejs/index.html +2261 -0
  420. package/docs/v2/nodejs/provider-hosted-app/index.html +2220 -0
  421. package/docs/v2/nodejs/proxy/index.html +2238 -0
  422. package/docs/v2/nodejs/sp-extensions/index.html +2362 -0
  423. package/docs/v2/nodejs/sp-fetch-client/index.html +2294 -0
  424. package/docs/v2/nodejs-support/index.html +2398 -0
  425. package/docs/v2/npm-scripts/index.html +2521 -0
  426. package/docs/v2/odata/caching/index.html +2465 -0
  427. package/docs/v2/odata/core/index.html +2322 -0
  428. package/docs/v2/odata/debug/index.html +2358 -0
  429. package/docs/v2/odata/extensions/index.html +2581 -0
  430. package/docs/v2/odata/index.html +2259 -0
  431. package/docs/v2/odata/odata-batch/index.html +2250 -0
  432. package/docs/v2/odata/parsers/index.html +2355 -0
  433. package/docs/v2/odata/pipeline/index.html +2297 -0
  434. package/docs/v2/odata/queryable/index.html +2455 -0
  435. package/docs/v2/packages/index.html +2251 -0
  436. package/docs/v2/pnpjs/index.html +2281 -0
  437. package/docs/v2/search/search_index.json +1 -0
  438. package/docs/v2/sitemap.xml +483 -0
  439. package/docs/v2/sitemap.xml.gz +0 -0
  440. package/docs/v2/sp/alias-parameters/index.html +2330 -0
  441. package/docs/v2/sp/alm/index.html +2433 -0
  442. package/docs/v2/sp/attachments/index.html +2504 -0
  443. package/docs/v2/sp/clientside-pages/index.html +3477 -0
  444. package/docs/v2/sp/column-defaults/index.html +2540 -0
  445. package/docs/v2/sp/comments-likes/index.html +2646 -0
  446. package/docs/v2/sp/content-types/index.html +2462 -0
  447. package/docs/v2/sp/custom-irequestclient/index.html +2339 -0
  448. package/docs/v2/sp/entity-merging/index.html +2325 -0
  449. package/docs/v2/sp/features/index.html +2440 -0
  450. package/docs/v2/sp/fields/index.html +3103 -0
  451. package/docs/v2/sp/files/index.html +2949 -0
  452. package/docs/v2/sp/folders/index.html +2968 -0
  453. package/docs/v2/sp/forms/index.html +2289 -0
  454. package/docs/v2/sp/hubsites/index.html +2485 -0
  455. package/docs/v2/sp/index.html +2328 -0
  456. package/docs/v2/sp/items/index.html +2974 -0
  457. package/docs/v2/sp/lists/index.html +3387 -0
  458. package/docs/v2/sp/navigation/index.html +2535 -0
  459. package/docs/v2/sp/permissions/index.html +2338 -0
  460. package/docs/v2/sp/profiles/index.html +2806 -0
  461. package/docs/v2/sp/regional-settings/index.html +2394 -0
  462. package/docs/v2/sp/related-items/index.html +2417 -0
  463. package/docs/v2/sp/search/index.html +2474 -0
  464. package/docs/v2/sp/security/index.html +2432 -0
  465. package/docs/v2/sp/sharing/index.html +2589 -0
  466. package/docs/v2/sp/site-designs/index.html +2414 -0
  467. package/docs/v2/sp/site-groups/index.html +2504 -0
  468. package/docs/v2/sp/site-scripts/index.html +2433 -0
  469. package/docs/v2/sp/site-users/index.html +2641 -0
  470. package/docs/v2/sp/sites/index.html +2727 -0
  471. package/docs/v2/sp/social/index.html +2517 -0
  472. package/docs/v2/sp/sp-utilities-utility/index.html +2460 -0
  473. package/docs/v2/sp/subscriptions/index.html +2395 -0
  474. package/docs/v2/sp/taxonomy/index.html +2565 -0
  475. package/docs/v2/sp/tenant-properties/index.html +2286 -0
  476. package/docs/v2/sp/user-custom-actions/index.html +2424 -0
  477. package/docs/v2/sp/views/index.html +2652 -0
  478. package/docs/v2/sp/webs/index.html +4190 -0
  479. package/docs/v2/sp-addinhelpers/index.html +2274 -0
  480. package/docs/v2/sp-addinhelpers/sp-request-executor-client/index.html +2253 -0
  481. package/docs/v2/sp-addinhelpers/sp-rest-addin/index.html +2206 -0
  482. package/docs/v2/transition-guide/index.html +2435 -0
  483. package/mkdocs-requirements.txt +2 -0
  484. package/mkdocs.yml +188 -0
  485. package/package.json +96 -0
  486. package/packages/azidjsclient/index.ts +68 -0
  487. package/packages/azidjsclient/package.json +13 -0
  488. package/packages/azidjsclient/tsconfig.json +12 -0
  489. package/packages/core/behaviors/assign-from.ts +17 -0
  490. package/packages/core/behaviors/copy-from.ts +58 -0
  491. package/packages/core/extendable.ts +193 -0
  492. package/packages/core/index.ts +11 -0
  493. package/packages/core/moments.ts +117 -0
  494. package/packages/core/package.json +10 -0
  495. package/packages/core/storage.ts +274 -0
  496. package/packages/core/timeline.ts +387 -0
  497. package/packages/core/tsconfig.json +10 -0
  498. package/packages/core/util.ts +169 -0
  499. package/packages/graph/attachments/conversations.ts +14 -0
  500. package/packages/graph/attachments/index.ts +8 -0
  501. package/packages/graph/attachments/types.ts +37 -0
  502. package/packages/graph/batching.ts +408 -0
  503. package/packages/graph/behaviors/consistency-level.ts +17 -0
  504. package/packages/graph/behaviors/defaults.ts +41 -0
  505. package/packages/graph/behaviors/endpoint.ts +22 -0
  506. package/packages/graph/behaviors/graphbrowser.ts +38 -0
  507. package/packages/graph/behaviors/paged.ts +109 -0
  508. package/packages/graph/behaviors/spfx.ts +46 -0
  509. package/packages/graph/behaviors/telemetry.ts +19 -0
  510. package/packages/graph/bookings/funcs.ts +18 -0
  511. package/packages/graph/bookings/index.ts +62 -0
  512. package/packages/graph/bookings/types.ts +352 -0
  513. package/packages/graph/calendars/funcs.ts +58 -0
  514. package/packages/graph/calendars/groups.ts +19 -0
  515. package/packages/graph/calendars/index.ts +18 -0
  516. package/packages/graph/calendars/types.ts +73 -0
  517. package/packages/graph/calendars/users.ts +28 -0
  518. package/packages/graph/cloud-communications/index.ts +24 -0
  519. package/packages/graph/cloud-communications/types.ts +32 -0
  520. package/packages/graph/cloud-communications/users.ts +15 -0
  521. package/packages/graph/columns/addColumns.ts +28 -0
  522. package/packages/graph/columns/content-types.ts +44 -0
  523. package/packages/graph/columns/index.ts +14 -0
  524. package/packages/graph/columns/lists.ts +33 -0
  525. package/packages/graph/columns/sites.ts +32 -0
  526. package/packages/graph/columns/types.ts +24 -0
  527. package/packages/graph/contacts/index.ts +14 -0
  528. package/packages/graph/contacts/types.ts +126 -0
  529. package/packages/graph/contacts/users.ts +17 -0
  530. package/packages/graph/content-types/index.ts +11 -0
  531. package/packages/graph/content-types/lists.ts +44 -0
  532. package/packages/graph/content-types/sites.ts +70 -0
  533. package/packages/graph/content-types/types.ts +112 -0
  534. package/packages/graph/conversations/groups.ts +20 -0
  535. package/packages/graph/conversations/index.ts +19 -0
  536. package/packages/graph/conversations/types.ts +147 -0
  537. package/packages/graph/decorators.ts +164 -0
  538. package/packages/graph/directory-objects/index.ts +24 -0
  539. package/packages/graph/directory-objects/types.ts +94 -0
  540. package/packages/graph/fi.ts +46 -0
  541. package/packages/graph/graphqueryable.ts +193 -0
  542. package/packages/graph/groups/index.ts +25 -0
  543. package/packages/graph/groups/types.ts +130 -0
  544. package/packages/graph/index.ts +21 -0
  545. package/packages/graph/insights/index.ts +20 -0
  546. package/packages/graph/insights/types.ts +105 -0
  547. package/packages/graph/insights/users.ts +14 -0
  548. package/packages/graph/invitations/index.ts +22 -0
  549. package/packages/graph/invitations/types.ts +41 -0
  550. package/packages/graph/lists/drive.ts +21 -0
  551. package/packages/graph/lists/index.ts +10 -0
  552. package/packages/graph/lists/sites.ts +16 -0
  553. package/packages/graph/lists/types.ts +47 -0
  554. package/packages/graph/members/groups.ts +17 -0
  555. package/packages/graph/members/index.ts +8 -0
  556. package/packages/graph/members/types.ts +40 -0
  557. package/packages/graph/messages/index.ts +14 -0
  558. package/packages/graph/messages/types.ts +46 -0
  559. package/packages/graph/messages/users.ts +27 -0
  560. package/packages/graph/onedrive/funcs.ts +40 -0
  561. package/packages/graph/onedrive/groups.ts +33 -0
  562. package/packages/graph/onedrive/index.ts +48 -0
  563. package/packages/graph/onedrive/sites.ts +35 -0
  564. package/packages/graph/onedrive/types.ts +482 -0
  565. package/packages/graph/onedrive/users.ts +56 -0
  566. package/packages/graph/onenote/index.ts +16 -0
  567. package/packages/graph/onenote/types.ts +119 -0
  568. package/packages/graph/onenote/users.ts +14 -0
  569. package/packages/graph/operations.ts +22 -0
  570. package/packages/graph/outlook/index.ts +11 -0
  571. package/packages/graph/outlook/types.ts +58 -0
  572. package/packages/graph/outlook/users.ts +14 -0
  573. package/packages/graph/package.json +16 -0
  574. package/packages/graph/photos/groups.ts +14 -0
  575. package/packages/graph/photos/index.ts +7 -0
  576. package/packages/graph/photos/types.ts +33 -0
  577. package/packages/graph/photos/users.ts +14 -0
  578. package/packages/graph/planner/groups.ts +14 -0
  579. package/packages/graph/planner/index.ts +42 -0
  580. package/packages/graph/planner/types.ts +213 -0
  581. package/packages/graph/planner/users.ts +14 -0
  582. package/packages/graph/post-install.cjs +20 -0
  583. package/packages/graph/presets/all.ts +42 -0
  584. package/packages/graph/search/index.ts +18 -0
  585. package/packages/graph/search/types.ts +20 -0
  586. package/packages/graph/shares/index.ts +23 -0
  587. package/packages/graph/shares/types.ts +47 -0
  588. package/packages/graph/sites/group.ts +14 -0
  589. package/packages/graph/sites/index.ts +25 -0
  590. package/packages/graph/sites/types.ts +45 -0
  591. package/packages/graph/subscriptions/index.ts +24 -0
  592. package/packages/graph/subscriptions/types.ts +59 -0
  593. package/packages/graph/teams/index.ts +68 -0
  594. package/packages/graph/teams/types.ts +333 -0
  595. package/packages/graph/teams/users.ts +14 -0
  596. package/packages/graph/tsconfig.json +16 -0
  597. package/packages/graph/users/index.ts +34 -0
  598. package/packages/graph/users/types.ts +56 -0
  599. package/packages/graph/utils/type.ts +3 -0
  600. package/packages/logging/index.ts +145 -0
  601. package/packages/logging/listeners.ts +134 -0
  602. package/packages/logging/package.json +10 -0
  603. package/packages/logging/tsconfig.json +7 -0
  604. package/packages/msaljsclient/index.ts +40 -0
  605. package/packages/msaljsclient/package.json +12 -0
  606. package/packages/msaljsclient/tsconfig.json +12 -0
  607. package/packages/nodejs/behaviors/fetch.ts +130 -0
  608. package/packages/nodejs/behaviors/graphdefault.ts +50 -0
  609. package/packages/nodejs/behaviors/msal.ts +24 -0
  610. package/packages/nodejs/behaviors/spdefault.ts +45 -0
  611. package/packages/nodejs/behaviors/stream-parse.ts +7 -0
  612. package/packages/nodejs/index.ts +33 -0
  613. package/packages/nodejs/package.json +17 -0
  614. package/packages/nodejs/sp-extensions/stream.ts +136 -0
  615. package/packages/nodejs/tsconfig.json +28 -0
  616. package/packages/queryable/add-prop.ts +18 -0
  617. package/packages/queryable/behaviors/bearer-token.ts +15 -0
  618. package/packages/queryable/behaviors/browser-fetch.ts +131 -0
  619. package/packages/queryable/behaviors/caching-pessimistic.ts +67 -0
  620. package/packages/queryable/behaviors/caching.ts +149 -0
  621. package/packages/queryable/behaviors/cancelable.ts +264 -0
  622. package/packages/queryable/behaviors/inject-headers.ts +23 -0
  623. package/packages/queryable/behaviors/parsers.ts +134 -0
  624. package/packages/queryable/behaviors/resolvers.ts +28 -0
  625. package/packages/queryable/behaviors/timeout.ts +24 -0
  626. package/packages/queryable/index.ts +19 -0
  627. package/packages/queryable/invokable.ts +42 -0
  628. package/packages/queryable/operations.ts +32 -0
  629. package/packages/queryable/package.json +11 -0
  630. package/packages/queryable/queryable-factory.ts +19 -0
  631. package/packages/queryable/queryable.ts +239 -0
  632. package/packages/queryable/request-builders.ts +20 -0
  633. package/packages/queryable/tsconfig.json +11 -0
  634. package/packages/readme.md +21 -0
  635. package/packages/sp/appcatalog/index.ts +35 -0
  636. package/packages/sp/appcatalog/types.ts +176 -0
  637. package/packages/sp/appcatalog/web.ts +19 -0
  638. package/packages/sp/attachments/index.ts +11 -0
  639. package/packages/sp/attachments/item.ts +17 -0
  640. package/packages/sp/attachments/types.ts +95 -0
  641. package/packages/sp/batching.ts +483 -0
  642. package/packages/sp/behaviors/defaults.ts +38 -0
  643. package/packages/sp/behaviors/request-digest.ts +78 -0
  644. package/packages/sp/behaviors/spbrowser.ts +40 -0
  645. package/packages/sp/behaviors/spfx.ts +83 -0
  646. package/packages/sp/behaviors/telemetry.ts +35 -0
  647. package/packages/sp/clientside-pages/funcs.ts +27 -0
  648. package/packages/sp/clientside-pages/index.ts +27 -0
  649. package/packages/sp/clientside-pages/types.ts +1661 -0
  650. package/packages/sp/clientside-pages/web.ts +93 -0
  651. package/packages/sp/column-defaults/folder.ts +89 -0
  652. package/packages/sp/column-defaults/index.ts +8 -0
  653. package/packages/sp/column-defaults/list.ts +219 -0
  654. package/packages/sp/column-defaults/types.ts +19 -0
  655. package/packages/sp/comments/clientside-page.ts +120 -0
  656. package/packages/sp/comments/index.ts +14 -0
  657. package/packages/sp/comments/item.ts +77 -0
  658. package/packages/sp/comments/types.ts +160 -0
  659. package/packages/sp/content-types/index.ts +17 -0
  660. package/packages/sp/content-types/item.ts +17 -0
  661. package/packages/sp/content-types/list.ts +17 -0
  662. package/packages/sp/content-types/types.ts +181 -0
  663. package/packages/sp/content-types/web.ts +17 -0
  664. package/packages/sp/context-info/index.ts +40 -0
  665. package/packages/sp/decorators.ts +18 -0
  666. package/packages/sp/favorites/index.ts +32 -0
  667. package/packages/sp/favorites/types.ts +187 -0
  668. package/packages/sp/features/index.ts +11 -0
  669. package/packages/sp/features/site.ts +17 -0
  670. package/packages/sp/features/types.ts +73 -0
  671. package/packages/sp/features/web.ts +17 -0
  672. package/packages/sp/fi.ts +46 -0
  673. package/packages/sp/fields/index.ts +22 -0
  674. package/packages/sp/fields/list.ts +17 -0
  675. package/packages/sp/fields/types.ts +648 -0
  676. package/packages/sp/fields/web.ts +23 -0
  677. package/packages/sp/files/folder.ts +17 -0
  678. package/packages/sp/files/index.ts +25 -0
  679. package/packages/sp/files/item.ts +17 -0
  680. package/packages/sp/files/readable-file.ts +40 -0
  681. package/packages/sp/files/types.ts +771 -0
  682. package/packages/sp/files/web.ts +46 -0
  683. package/packages/sp/folders/index.ts +19 -0
  684. package/packages/sp/folders/item.ts +16 -0
  685. package/packages/sp/folders/list.ts +17 -0
  686. package/packages/sp/folders/types.ts +439 -0
  687. package/packages/sp/folders/web.ts +50 -0
  688. package/packages/sp/forms/index.ts +9 -0
  689. package/packages/sp/forms/list.ts +14 -0
  690. package/packages/sp/forms/types.ts +41 -0
  691. package/packages/sp/groupsitemanager/index.ts +18 -0
  692. package/packages/sp/groupsitemanager/types.ts +433 -0
  693. package/packages/sp/hubsites/index.ts +31 -0
  694. package/packages/sp/hubsites/site.ts +43 -0
  695. package/packages/sp/hubsites/types.ts +71 -0
  696. package/packages/sp/hubsites/web.ts +38 -0
  697. package/packages/sp/index.ts +24 -0
  698. package/packages/sp/items/get-all.ts +52 -0
  699. package/packages/sp/items/index.ts +18 -0
  700. package/packages/sp/items/list.ts +14 -0
  701. package/packages/sp/items/types.ts +405 -0
  702. package/packages/sp/lists/index.ts +23 -0
  703. package/packages/sp/lists/types.ts +851 -0
  704. package/packages/sp/lists/web.ts +68 -0
  705. package/packages/sp/navigation/index.ts +35 -0
  706. package/packages/sp/navigation/types.ts +243 -0
  707. package/packages/sp/navigation/web.ts +19 -0
  708. package/packages/sp/operations.ts +33 -0
  709. package/packages/sp/package.json +15 -0
  710. package/packages/sp/post-install.cjs +20 -0
  711. package/packages/sp/presets/all.ts +75 -0
  712. package/packages/sp/profiles/index.ts +30 -0
  713. package/packages/sp/profiles/types.ts +595 -0
  714. package/packages/sp/publishing-sitepageservice/index.ts +22 -0
  715. package/packages/sp/publishing-sitepageservice/types.ts +18 -0
  716. package/packages/sp/recycle-bin/index.ts +36 -0
  717. package/packages/sp/recycle-bin/types.ts +113 -0
  718. package/packages/sp/regional-settings/content-type.ts +11 -0
  719. package/packages/sp/regional-settings/field.ts +11 -0
  720. package/packages/sp/regional-settings/funcs.ts +10 -0
  721. package/packages/sp/regional-settings/index.ts +18 -0
  722. package/packages/sp/regional-settings/list.ts +11 -0
  723. package/packages/sp/regional-settings/types.ts +159 -0
  724. package/packages/sp/regional-settings/user-custom-actions.ts +11 -0
  725. package/packages/sp/regional-settings/web.ts +21 -0
  726. package/packages/sp/related-items/index.ts +7 -0
  727. package/packages/sp/related-items/types.ts +194 -0
  728. package/packages/sp/related-items/web.ts +22 -0
  729. package/packages/sp/search/index.ts +48 -0
  730. package/packages/sp/search/query.ts +254 -0
  731. package/packages/sp/search/suggest.ts +130 -0
  732. package/packages/sp/search/types.ts +480 -0
  733. package/packages/sp/security/funcs.ts +94 -0
  734. package/packages/sp/security/index.ts +21 -0
  735. package/packages/sp/security/item.ts +29 -0
  736. package/packages/sp/security/list.ts +29 -0
  737. package/packages/sp/security/types.ts +440 -0
  738. package/packages/sp/security/web.ts +34 -0
  739. package/packages/sp/sharing/file.ts +75 -0
  740. package/packages/sp/sharing/folder.ts +69 -0
  741. package/packages/sp/sharing/funcs.ts +258 -0
  742. package/packages/sp/sharing/index.ts +27 -0
  743. package/packages/sp/sharing/item.ts +53 -0
  744. package/packages/sp/sharing/types.ts +626 -0
  745. package/packages/sp/sharing/web.ts +109 -0
  746. package/packages/sp/site-designs/index.ts +29 -0
  747. package/packages/sp/site-designs/types.ts +456 -0
  748. package/packages/sp/site-designs/web.ts +41 -0
  749. package/packages/sp/site-groups/index.ts +11 -0
  750. package/packages/sp/site-groups/types.ts +133 -0
  751. package/packages/sp/site-groups/web.ts +73 -0
  752. package/packages/sp/site-scripts/index.ts +27 -0
  753. package/packages/sp/site-scripts/list.ts +27 -0
  754. package/packages/sp/site-scripts/types.ts +243 -0
  755. package/packages/sp/site-scripts/web.ts +24 -0
  756. package/packages/sp/site-users/index.ts +12 -0
  757. package/packages/sp/site-users/types.ts +195 -0
  758. package/packages/sp/site-users/web.ts +56 -0
  759. package/packages/sp/sites/index.ts +26 -0
  760. package/packages/sp/sites/types.ts +422 -0
  761. package/packages/sp/social/index.ts +33 -0
  762. package/packages/sp/social/types.ts +381 -0
  763. package/packages/sp/spqueryable.ts +244 -0
  764. package/packages/sp/sputilities/index.ts +23 -0
  765. package/packages/sp/sputilities/types.ts +197 -0
  766. package/packages/sp/subscriptions/index.ts +10 -0
  767. package/packages/sp/subscriptions/list.ts +18 -0
  768. package/packages/sp/subscriptions/types.ts +107 -0
  769. package/packages/sp/taxonomy/index.ts +50 -0
  770. package/packages/sp/taxonomy/types.ts +508 -0
  771. package/packages/sp/tsconfig.json +16 -0
  772. package/packages/sp/types.ts +283 -0
  773. package/packages/sp/user-custom-actions/index.ts +15 -0
  774. package/packages/sp/user-custom-actions/list.ts +18 -0
  775. package/packages/sp/user-custom-actions/site.ts +18 -0
  776. package/packages/sp/user-custom-actions/types.ts +133 -0
  777. package/packages/sp/user-custom-actions/web.ts +21 -0
  778. package/packages/sp/utils/encode-path-str.ts +29 -0
  779. package/packages/sp/utils/extract-web-url.ts +21 -0
  780. package/packages/sp/utils/file-names.ts +35 -0
  781. package/packages/sp/utils/metadata.ts +5 -0
  782. package/packages/sp/utils/odata-url-from.ts +42 -0
  783. package/packages/sp/utils/to-resource-path.ts +9 -0
  784. package/packages/sp/views/index.ts +14 -0
  785. package/packages/sp/views/list.ts +33 -0
  786. package/packages/sp/views/types.ts +210 -0
  787. package/packages/sp/webparts/file.ts +21 -0
  788. package/packages/sp/webparts/index.ts +11 -0
  789. package/packages/sp/webparts/types.ts +141 -0
  790. package/packages/sp/webs/index.ts +32 -0
  791. package/packages/sp/webs/types.ts +350 -0
  792. package/packages/sp-admin/index.ts +46 -0
  793. package/packages/sp-admin/office-tenant.ts +567 -0
  794. package/packages/sp-admin/package.json +13 -0
  795. package/packages/sp-admin/site-properties.ts +45 -0
  796. package/packages/sp-admin/tenant.ts +595 -0
  797. package/packages/sp-admin/tsconfig.json +20 -0
  798. package/packages/sp-admin/types.ts +1679 -0
  799. package/packages/tsconfig-watch.json +9 -0
  800. package/packages/tsconfig.json +37 -0
  801. package/pre-install.cjs +1 -0
  802. package/samples/custom-bundle-webpack/index.ts +33 -0
  803. package/samples/custom-bundle-webpack/package-lock.json +4601 -0
  804. package/samples/custom-bundle-webpack/package.json +18 -0
  805. package/samples/custom-bundle-webpack/readme.md +102 -0
  806. package/samples/custom-bundle-webpack/tsconfig.json +12 -0
  807. package/samples/custom-bundle-webpack/webpack.config.js +27 -0
  808. package/samples/nodejs-app/.vscode/launch.json +27 -0
  809. package/samples/nodejs-app/.vscode/settings.json +10 -0
  810. package/samples/nodejs-app/.vscode/tasks.json +22 -0
  811. package/samples/nodejs-app/index.ts +63 -0
  812. package/samples/nodejs-app/package-lock.json +259 -0
  813. package/samples/nodejs-app/package.json +21 -0
  814. package/samples/nodejs-app/readme.md +140 -0
  815. package/samples/nodejs-app/tsconfig.json +14 -0
  816. package/samples/nodejs-commonjs/package-lock.json +702 -0
  817. package/samples/nodejs-commonjs/package.json +21 -0
  818. package/samples/nodejs-commonjs/readme.md +58 -0
  819. package/samples/nodejs-commonjs/src/index.ts +23 -0
  820. package/samples/nodejs-commonjs/src/settings.ts +35 -0
  821. package/samples/nodejs-commonjs/tsconfig.json +35 -0
  822. package/samples/project-preset/README.md +73 -0
  823. package/samples/project-preset/package-lock.json +21097 -0
  824. package/samples/project-preset/package.json +29 -0
  825. package/samples/project-preset/teams/4530a515-8ba7-45bb-9a27-be06b33c59d4_color.png +0 -0
  826. package/samples/project-preset/teams/4530a515-8ba7-45bb-9a27-be06b33c59d4_outline.png +0 -0
  827. package/samples/readme.md +16 -0
  828. package/settings.example.js +57 -0
  829. package/test/args.ts +107 -0
  830. package/test/clean-subsite.ts +36 -0
  831. package/test/core/assumptions.ts +99 -0
  832. package/test/core/storage.ts +60 -0
  833. package/test/core/timeline.ts +205 -0
  834. package/test/core/util.ts +205 -0
  835. package/test/graph/assets/testconvert.docx +0 -0
  836. package/test/graph/batch.ts +125 -0
  837. package/test/graph/calendars.ts +234 -0
  838. package/test/graph/columns.ts +247 -0
  839. package/test/graph/contacts.ts +254 -0
  840. package/test/graph/content-types.ts +206 -0
  841. package/test/graph/directoryobjects.ts +115 -0
  842. package/test/graph/groups.ts +130 -0
  843. package/test/graph/lists.ts +72 -0
  844. package/test/graph/onedrive.ts +365 -0
  845. package/test/graph/outlook.ts +95 -0
  846. package/test/graph/paging.ts +91 -0
  847. package/test/graph/planner.ts +160 -0
  848. package/test/graph/querable.ts +97 -0
  849. package/test/graph/search.ts +4 -0
  850. package/test/graph/shares.ts +26 -0
  851. package/test/graph/sites.ts +40 -0
  852. package/test/graph/teams.ts +76 -0
  853. package/test/graph/utilities/getTestingGraphSPSite.ts +27 -0
  854. package/test/graph/utilities/getValidUser.ts +37 -0
  855. package/test/load-settings.ts +103 -0
  856. package/test/logging/logging.ts +86 -0
  857. package/test/mocha-root-hooks.ts +227 -0
  858. package/test/nodejs/sp-extensions.ts +86 -0
  859. package/test/pnp-test.ts +60 -0
  860. package/test/queryable/add-prop.ts +24 -0
  861. package/test/queryable/behaviors.ts +188 -0
  862. package/test/queryable/invokable.ts +35 -0
  863. package/test/queryable/queryable.ts +118 -0
  864. package/test/sp/alias.ts +46 -0
  865. package/test/sp/appcatalog.ts +142 -0
  866. package/test/sp/assets/helloworld.sppkg +0 -0
  867. package/test/sp/assets/sample_file.jpg +0 -0
  868. package/test/sp/attachments.ts +134 -0
  869. package/test/sp/batch.ts +362 -0
  870. package/test/sp/clientside-pages.ts +426 -0
  871. package/test/sp/column-defaults.ts +225 -0
  872. package/test/sp/comments.ts +202 -0
  873. package/test/sp/content-types.ts +68 -0
  874. package/test/sp/favorites.ts +2 -0
  875. package/test/sp/features.ts +201 -0
  876. package/test/sp/fields.ts +396 -0
  877. package/test/sp/files.ts +338 -0
  878. package/test/sp/folders.ts +242 -0
  879. package/test/sp/forms.ts +22 -0
  880. package/test/sp/groupsitemanager.ts +88 -0
  881. package/test/sp/hubsites.ts +41 -0
  882. package/test/sp/items.ts +179 -0
  883. package/test/sp/lists.ts +319 -0
  884. package/test/sp/navigation.ts +167 -0
  885. package/test/sp/profiles.ts +2 -0
  886. package/test/sp/query-escaping.ts +94 -0
  887. package/test/sp/recycle-bin.ts +1 -0
  888. package/test/sp/regional-settings.ts +58 -0
  889. package/test/sp/related-items.ts +94 -0
  890. package/test/sp/search.ts +39 -0
  891. package/test/sp/security.ts +90 -0
  892. package/test/sp/sharing.ts +313 -0
  893. package/test/sp/site-designs.ts +224 -0
  894. package/test/sp/site-groups.ts +98 -0
  895. package/test/sp/site-scripts.ts +162 -0
  896. package/test/sp/site-users.ts +93 -0
  897. package/test/sp/sites.ts +156 -0
  898. package/test/sp/social.ts +2 -0
  899. package/test/sp/spfx.ts +52 -0
  900. package/test/sp/sputilities.ts +78 -0
  901. package/test/sp/subscriptions.ts +64 -0
  902. package/test/sp/taxonomy.ts +178 -0
  903. package/test/sp/user-custom-actions.ts +31 -0
  904. package/test/sp/views.ts +117 -0
  905. package/test/sp/webparts.ts +38 -0
  906. package/test/sp/webs.ts +249 -0
  907. package/test/test-invokable-props.ts +35 -0
  908. package/test/test-props.ts +90 -0
  909. package/test/test-recording.ts +171 -0
  910. package/test/tsconfig.json +18 -0
  911. package/tools/buildsystem/package-lock.json +4404 -0
  912. package/tools/buildsystem/package.json +56 -0
  913. package/tools/buildsystem/readme.md +23 -0
  914. package/tools/config.js +34 -0
  915. package/tools/local-module-resolver/cjs.ts +33 -0
  916. package/tools/local-module-resolver/esm-debug.ts +2 -0
  917. package/tools/local-module-resolver/esm-test.ts +2 -0
  918. package/tools/local-module-resolver/esm.ts +112 -0
  919. package/tools/local-module-resolver/readme.md +8 -0
  920. package/tsconfig.buildsystem.json +17 -0
  921. 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
+ });
@@ -0,0 +1,5 @@
1
+ {% extends "base.html" %}
2
+
3
+ {% block analytics %}
4
+ <img src="https://m365-visitor-stats.azurewebsites.net/@pnp/pnpjs/ghpages{{ page.abs_url }}" alt="spacer" width="1" height="1" />
5
+ {% endblock %}
@@ -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
+ ```