@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,2521 @@
1
+
2
+ <!doctype html>
3
+ <html lang="en" class="no-js">
4
+ <head>
5
+
6
+ <meta charset="utf-8">
7
+ <meta name="viewport" content="width=device-width,initial-scale=1">
8
+
9
+
10
+ <link rel="canonical" href="https://pnp.github.io/pnpjs/contributing/extending-the-library/">
11
+
12
+
13
+ <link rel="shortcut icon" href="../../assets/images/favicon.png">
14
+ <meta name="generator" content="mkdocs-1.1.2, mkdocs-material-6.0.2">
15
+
16
+
17
+
18
+ <title>Extending the library - PnP/PnPjs</title>
19
+
20
+
21
+
22
+ <link rel="stylesheet" href="../../assets/stylesheets/main.38780c08.min.css">
23
+
24
+
25
+ <link rel="stylesheet" href="../../assets/stylesheets/palette.3f72e892.min.css">
26
+
27
+
28
+
29
+ <meta name="theme-color" content="#2094f3">
30
+
31
+
32
+
33
+
34
+
35
+
36
+
37
+ <link href="https://fonts.gstatic.com" rel="preconnect" crossorigin>
38
+ <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto:300,400,400i,700%7CRoboto+Mono&display=fallback">
39
+ <style>body,input{font-family:"Roboto",-apple-system,BlinkMacSystemFont,Helvetica,Arial,sans-serif}code,kbd,pre{font-family:"Roboto Mono",SFMono-Regular,Consolas,Menlo,monospace}</style>
40
+
41
+
42
+
43
+
44
+ <link rel="stylesheet" href="../../css/extra.css">
45
+
46
+
47
+ <img src="https://telemetry.sharepointpnp.com/@pnp/pnpjs/ghpages/pnpjs/contributing/extending-the-library/" alt="spacer" width="1" height="1" />
48
+
49
+
50
+ </head>
51
+
52
+
53
+
54
+
55
+
56
+
57
+
58
+ <body dir="ltr" data-md-color-scheme="" data-md-color-primary="blue" data-md-color-accent="">
59
+
60
+
61
+ <input class="md-toggle" data-md-toggle="drawer" type="checkbox" id="__drawer" autocomplete="off">
62
+ <input class="md-toggle" data-md-toggle="search" type="checkbox" id="__search" autocomplete="off">
63
+ <label class="md-overlay" for="__drawer"></label>
64
+ <div data-md-component="skip">
65
+
66
+
67
+ <a href="#extending-pnpjs" class="md-skip">
68
+ Skip to content
69
+ </a>
70
+
71
+ </div>
72
+ <div data-md-component="announce">
73
+
74
+ </div>
75
+
76
+ <header class="md-header" data-md-component="header">
77
+ <nav class="md-header-nav md-grid" aria-label="Header">
78
+ <a href="https://pnp.github.io/pnpjs/" title="PnP/PnPjs" class="md-header-nav__button md-logo" aria-label="PnP/PnPjs">
79
+
80
+ <img src="../../img/Logo.png" alt="logo">
81
+
82
+ </a>
83
+ <label class="md-header-nav__button md-icon" for="__drawer">
84
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M3 6h18v2H3V6m0 5h18v2H3v-2m0 5h18v2H3v-2z"/></svg>
85
+ </label>
86
+ <div class="md-header-nav__title" data-md-component="header-title">
87
+
88
+ <div class="md-header-nav__ellipsis">
89
+ <span class="md-header-nav__topic md-ellipsis">
90
+ PnP/PnPjs
91
+ </span>
92
+ <span class="md-header-nav__topic md-ellipsis">
93
+
94
+ Extending the library
95
+
96
+ </span>
97
+ </div>
98
+
99
+ </div>
100
+
101
+ <label class="md-header-nav__button md-icon" for="__search">
102
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0116 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.516 6.516 0 019.5 16 6.5 6.5 0 013 9.5 6.5 6.5 0 019.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5z"/></svg>
103
+ </label>
104
+
105
+ <div class="md-search" data-md-component="search" role="dialog">
106
+ <label class="md-search__overlay" for="__search"></label>
107
+ <div class="md-search__inner" role="search">
108
+ <form class="md-search__form" name="search">
109
+ <input type="text" class="md-search__input" name="query" aria-label="Search" placeholder="Search" autocapitalize="off" autocorrect="off" autocomplete="off" spellcheck="false" data-md-component="search-query" data-md-state="active">
110
+ <label class="md-search__icon md-icon" for="__search">
111
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0116 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.516 6.516 0 019.5 16 6.5 6.5 0 013 9.5 6.5 6.5 0 019.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5z"/></svg>
112
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11h12z"/></svg>
113
+ </label>
114
+ <button type="reset" class="md-search__icon md-icon" aria-label="Clear" data-md-component="search-reset" tabindex="-1">
115
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12 19 6.41z"/></svg>
116
+ </button>
117
+ </form>
118
+ <div class="md-search__output">
119
+ <div class="md-search__scrollwrap" data-md-scrollfix>
120
+ <div class="md-search-result" data-md-component="search-result">
121
+ <div class="md-search-result__meta">
122
+ Initializing search
123
+ </div>
124
+ <ol class="md-search-result__list"></ol>
125
+ </div>
126
+ </div>
127
+ </div>
128
+ </div>
129
+ </div>
130
+
131
+
132
+ <div class="md-header-nav__source">
133
+
134
+ <a href="https://github.com/pnp/pnpjs/" title="Go to repository" class="md-source">
135
+ <div class="md-source__icon md-icon">
136
+
137
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M439.55 236.05L244 40.45a28.87 28.87 0 00-40.81 0l-40.66 40.63 51.52 51.52c27.06-9.14 52.68 16.77 43.39 43.68l49.66 49.66c34.23-11.8 61.18 31 35.47 56.69-26.49 26.49-70.21-2.87-56-37.34L240.22 199v121.85c25.3 12.54 22.26 41.85 9.08 55a34.34 34.34 0 01-48.55 0c-17.57-17.6-11.07-46.91 11.25-56v-123c-20.8-8.51-24.6-30.74-18.64-45L142.57 101 8.45 235.14a28.86 28.86 0 000 40.81l195.61 195.6a28.86 28.86 0 0040.8 0l194.69-194.69a28.86 28.86 0 000-40.81z"/></svg>
138
+ </div>
139
+ <div class="md-source__repository">
140
+ GitHub
141
+ </div>
142
+ </a>
143
+ </div>
144
+
145
+ </nav>
146
+ </header>
147
+
148
+ <div class="md-container" data-md-component="container">
149
+
150
+
151
+
152
+
153
+ <main class="md-main" data-md-component="main">
154
+ <div class="md-main__inner md-grid">
155
+
156
+
157
+ <div class="md-sidebar md-sidebar--primary" data-md-component="navigation">
158
+ <div class="md-sidebar__scrollwrap">
159
+ <div class="md-sidebar__inner">
160
+ <nav class="md-nav md-nav--primary" aria-label="Navigation" data-md-level="0">
161
+ <label class="md-nav__title" for="__drawer">
162
+ <a href="https://pnp.github.io/pnpjs/" title="PnP/PnPjs" class="md-nav__button md-logo" aria-label="PnP/PnPjs">
163
+
164
+ <img src="../../img/Logo.png" alt="logo">
165
+
166
+ </a>
167
+ PnP/PnPjs
168
+ </label>
169
+
170
+ <div class="md-nav__source">
171
+
172
+ <a href="https://github.com/pnp/pnpjs/" title="Go to repository" class="md-source">
173
+ <div class="md-source__icon md-icon">
174
+
175
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M439.55 236.05L244 40.45a28.87 28.87 0 00-40.81 0l-40.66 40.63 51.52 51.52c27.06-9.14 52.68 16.77 43.39 43.68l49.66 49.66c34.23-11.8 61.18 31 35.47 56.69-26.49 26.49-70.21-2.87-56-37.34L240.22 199v121.85c25.3 12.54 22.26 41.85 9.08 55a34.34 34.34 0 01-48.55 0c-17.57-17.6-11.07-46.91 11.25-56v-123c-20.8-8.51-24.6-30.74-18.64-45L142.57 101 8.45 235.14a28.86 28.86 0 000 40.81l195.61 195.6a28.86 28.86 0 0040.8 0l194.69-194.69a28.86 28.86 0 000-40.81z"/></svg>
176
+ </div>
177
+ <div class="md-source__repository">
178
+ GitHub
179
+ </div>
180
+ </a>
181
+ </div>
182
+
183
+ <ul class="md-nav__list" data-md-scrollfix>
184
+
185
+
186
+
187
+
188
+
189
+
190
+ <li class="md-nav__item">
191
+ <a href="../.." class="md-nav__link">
192
+ Home
193
+ </a>
194
+ </li>
195
+
196
+
197
+
198
+
199
+
200
+
201
+
202
+ <li class="md-nav__item">
203
+ <a href="../../getting-started/" class="md-nav__link">
204
+ Getting Started
205
+ </a>
206
+ </li>
207
+
208
+
209
+
210
+
211
+
212
+
213
+
214
+ <li class="md-nav__item">
215
+ <a href="../../news/2020-year-in-review/" class="md-nav__link">
216
+ 2020 Year In Review
217
+ </a>
218
+ </li>
219
+
220
+
221
+
222
+
223
+
224
+
225
+
226
+ <li class="md-nav__item md-nav__item--nested">
227
+
228
+ <input class="md-nav__toggle md-toggle" data-md-toggle="nav-4" type="checkbox" id="nav-4">
229
+
230
+ <label class="md-nav__link" for="nav-4">
231
+ General
232
+ <span class="md-nav__icon md-icon"></span>
233
+ </label>
234
+ <nav class="md-nav" aria-label="General" data-md-level="1">
235
+ <label class="md-nav__title" for="nav-4">
236
+ <span class="md-nav__icon md-icon"></span>
237
+ General
238
+ </label>
239
+ <ul class="md-nav__list" data-md-scrollfix>
240
+
241
+
242
+
243
+
244
+
245
+
246
+
247
+ <li class="md-nav__item">
248
+ <a href="../../getting-started/" class="md-nav__link">
249
+ Getting Started
250
+ </a>
251
+ </li>
252
+
253
+
254
+
255
+
256
+
257
+
258
+
259
+ <li class="md-nav__item">
260
+ <a href="../../transition-guide/" class="md-nav__link">
261
+ Transition Guide
262
+ </a>
263
+ </li>
264
+
265
+
266
+
267
+
268
+
269
+
270
+
271
+ <li class="md-nav__item">
272
+ <a href="../../npm-scripts/" class="md-nav__link">
273
+ Npm Scripts
274
+ </a>
275
+ </li>
276
+
277
+
278
+
279
+
280
+
281
+
282
+
283
+ <li class="md-nav__item">
284
+ <a href="../../SPFx-on-premises/" class="md-nav__link">
285
+ SPFx On-Premises
286
+ </a>
287
+ </li>
288
+
289
+
290
+
291
+
292
+
293
+
294
+
295
+ <li class="md-nav__item">
296
+ <a href="../../nodejs-support/" class="md-nav__link">
297
+ Working in Nodejs
298
+ </a>
299
+ </li>
300
+
301
+
302
+ </ul>
303
+ </nav>
304
+ </li>
305
+
306
+
307
+
308
+
309
+
310
+
311
+
312
+ <li class="md-nav__item md-nav__item--nested">
313
+
314
+ <input class="md-nav__toggle md-toggle" data-md-toggle="nav-5" type="checkbox" id="nav-5">
315
+
316
+ <label class="md-nav__link" for="nav-5">
317
+ Library Concepts
318
+ <span class="md-nav__icon md-icon"></span>
319
+ </label>
320
+ <nav class="md-nav" aria-label="Library Concepts" data-md-level="1">
321
+ <label class="md-nav__title" for="nav-5">
322
+ <span class="md-nav__icon md-icon"></span>
323
+ Library Concepts
324
+ </label>
325
+ <ul class="md-nav__list" data-md-scrollfix>
326
+
327
+
328
+
329
+
330
+
331
+
332
+
333
+ <li class="md-nav__item">
334
+ <a href="../../concepts/configuration/" class="md-nav__link">
335
+ Configuration
336
+ </a>
337
+ </li>
338
+
339
+
340
+
341
+
342
+
343
+
344
+
345
+ <li class="md-nav__item">
346
+ <a href="../../concepts/selective-imports/" class="md-nav__link">
347
+ Selective Imports
348
+ </a>
349
+ </li>
350
+
351
+
352
+
353
+
354
+
355
+
356
+
357
+ <li class="md-nav__item">
358
+ <a href="../../concepts/custom-bundle/" class="md-nav__link">
359
+ Custom Bundle
360
+ </a>
361
+ </li>
362
+
363
+
364
+
365
+
366
+
367
+
368
+
369
+ <li class="md-nav__item">
370
+ <a href="../../concepts/ie11-mode/" class="md-nav__link">
371
+ IE11 Mode
372
+ </a>
373
+ </li>
374
+
375
+
376
+
377
+
378
+
379
+
380
+
381
+ <li class="md-nav__item">
382
+ <a href="../../concepts/invokable/" class="md-nav__link">
383
+ Invokables
384
+ </a>
385
+ </li>
386
+
387
+
388
+
389
+
390
+
391
+
392
+
393
+ <li class="md-nav__item">
394
+ <a href="../../concepts/polyfill/" class="md-nav__link">
395
+ Polyfills
396
+ </a>
397
+ </li>
398
+
399
+
400
+
401
+
402
+
403
+
404
+
405
+ <li class="md-nav__item">
406
+ <a href="../../concepts/settings/" class="md-nav__link">
407
+ Settings
408
+ </a>
409
+ </li>
410
+
411
+
412
+
413
+
414
+
415
+
416
+
417
+ <li class="md-nav__item">
418
+ <a href="../../concepts/error-handling/" class="md-nav__link">
419
+ Error Handling
420
+ </a>
421
+ </li>
422
+
423
+
424
+
425
+
426
+
427
+
428
+
429
+ <li class="md-nav__item md-nav__item--nested">
430
+
431
+ <input class="md-nav__toggle md-toggle" data-md-toggle="nav-5-9" type="checkbox" id="nav-5-9">
432
+
433
+ <label class="md-nav__link" for="nav-5-9">
434
+ Authentication
435
+ <span class="md-nav__icon md-icon"></span>
436
+ </label>
437
+ <nav class="md-nav" aria-label="Authentication" data-md-level="2">
438
+ <label class="md-nav__title" for="nav-5-9">
439
+ <span class="md-nav__icon md-icon"></span>
440
+ Authentication
441
+ </label>
442
+ <ul class="md-nav__list" data-md-scrollfix>
443
+
444
+
445
+
446
+
447
+
448
+
449
+
450
+ <li class="md-nav__item">
451
+ <a href="../../authentication/" class="md-nav__link">
452
+ Getting Started
453
+ </a>
454
+ </li>
455
+
456
+
457
+
458
+
459
+
460
+
461
+
462
+ <li class="md-nav__item">
463
+ <a href="../../authentication/client-spfx/" class="md-nav__link">
464
+ SPFx Auth
465
+ </a>
466
+ </li>
467
+
468
+
469
+
470
+
471
+
472
+
473
+
474
+ <li class="md-nav__item">
475
+ <a href="../../authentication/msaljsclient/" class="md-nav__link">
476
+ MSAL Client
477
+ </a>
478
+ </li>
479
+
480
+
481
+
482
+
483
+
484
+
485
+
486
+ <li class="md-nav__item">
487
+ <a href="../../authentication/adaljsclient/" class="md-nav__link">
488
+ ADAL Client
489
+ </a>
490
+ </li>
491
+
492
+
493
+
494
+
495
+
496
+
497
+
498
+ <li class="md-nav__item">
499
+ <a href="../../authentication/client-spa/" class="md-nav__link">
500
+ SPA Auth
501
+ </a>
502
+ </li>
503
+
504
+
505
+
506
+
507
+
508
+
509
+
510
+ <li class="md-nav__item">
511
+ <a href="../../authentication/server-nodejs/" class="md-nav__link">
512
+ NodeJS Auth
513
+ </a>
514
+ </li>
515
+
516
+
517
+
518
+
519
+
520
+
521
+
522
+ <li class="md-nav__item">
523
+ <a href="../../authentication/sp-app-registration/" class="md-nav__link">
524
+ SP App Reg
525
+ </a>
526
+ </li>
527
+
528
+
529
+
530
+
531
+
532
+
533
+
534
+ <li class="md-nav__item">
535
+ <a href="../../authentication/bearertokenclient/" class="md-nav__link">
536
+ Bearer Token Client
537
+ </a>
538
+ </li>
539
+
540
+
541
+
542
+
543
+
544
+
545
+
546
+ <li class="md-nav__item">
547
+ <a href="../../authentication/lambdaclient/" class="md-nav__link">
548
+ Lambda Token Client
549
+ </a>
550
+ </li>
551
+
552
+
553
+ </ul>
554
+ </nav>
555
+ </li>
556
+
557
+
558
+ </ul>
559
+ </nav>
560
+ </li>
561
+
562
+
563
+
564
+
565
+
566
+
567
+
568
+ <li class="md-nav__item md-nav__item--nested">
569
+
570
+ <input class="md-nav__toggle md-toggle" data-md-toggle="nav-6" type="checkbox" id="nav-6">
571
+
572
+ <label class="md-nav__link" for="nav-6">
573
+ Packages
574
+ <span class="md-nav__icon md-icon"></span>
575
+ </label>
576
+ <nav class="md-nav" aria-label="Packages" data-md-level="1">
577
+ <label class="md-nav__title" for="nav-6">
578
+ <span class="md-nav__icon md-icon"></span>
579
+ Packages
580
+ </label>
581
+ <ul class="md-nav__list" data-md-scrollfix>
582
+
583
+
584
+
585
+
586
+
587
+
588
+
589
+ <li class="md-nav__item">
590
+ <a href="../../packages/" class="md-nav__link">
591
+ Packages
592
+ </a>
593
+ </li>
594
+
595
+
596
+
597
+
598
+
599
+
600
+
601
+ <li class="md-nav__item md-nav__item--nested">
602
+
603
+ <input class="md-nav__toggle md-toggle" data-md-toggle="nav-6-2" type="checkbox" id="nav-6-2">
604
+
605
+ <label class="md-nav__link" for="nav-6-2">
606
+ common
607
+ <span class="md-nav__icon md-icon"></span>
608
+ </label>
609
+ <nav class="md-nav" aria-label="common" data-md-level="2">
610
+ <label class="md-nav__title" for="nav-6-2">
611
+ <span class="md-nav__icon md-icon"></span>
612
+ common
613
+ </label>
614
+ <ul class="md-nav__list" data-md-scrollfix>
615
+
616
+
617
+
618
+
619
+
620
+
621
+
622
+ <li class="md-nav__item">
623
+ <a href="../../common/" class="md-nav__link">
624
+ common
625
+ </a>
626
+ </li>
627
+
628
+
629
+
630
+
631
+
632
+
633
+
634
+ <li class="md-nav__item">
635
+ <a href="../../common/collections/" class="md-nav__link">
636
+ collections
637
+ </a>
638
+ </li>
639
+
640
+
641
+
642
+
643
+
644
+
645
+
646
+ <li class="md-nav__item">
647
+ <a href="../../common/custom-httpclientimpl/" class="md-nav__link">
648
+ Custom HttpClientImpl
649
+ </a>
650
+ </li>
651
+
652
+
653
+
654
+
655
+
656
+
657
+
658
+ <li class="md-nav__item">
659
+ <a href="../../common/libconfig/" class="md-nav__link">
660
+ libconfig
661
+ </a>
662
+ </li>
663
+
664
+
665
+
666
+
667
+
668
+
669
+
670
+ <li class="md-nav__item">
671
+ <a href="../../common/netutil/" class="md-nav__link">
672
+ netutil
673
+ </a>
674
+ </li>
675
+
676
+
677
+
678
+
679
+
680
+
681
+
682
+ <li class="md-nav__item">
683
+ <a href="../../common/storage/" class="md-nav__link">
684
+ storage
685
+ </a>
686
+ </li>
687
+
688
+
689
+
690
+
691
+
692
+
693
+
694
+ <li class="md-nav__item">
695
+ <a href="../../common/util/" class="md-nav__link">
696
+ util
697
+ </a>
698
+ </li>
699
+
700
+
701
+ </ul>
702
+ </nav>
703
+ </li>
704
+
705
+
706
+
707
+
708
+
709
+
710
+
711
+ <li class="md-nav__item md-nav__item--nested">
712
+
713
+ <input class="md-nav__toggle md-toggle" data-md-toggle="nav-6-3" type="checkbox" id="nav-6-3">
714
+
715
+ <label class="md-nav__link" for="nav-6-3">
716
+ config-store
717
+ <span class="md-nav__icon md-icon"></span>
718
+ </label>
719
+ <nav class="md-nav" aria-label="config-store" data-md-level="2">
720
+ <label class="md-nav__title" for="nav-6-3">
721
+ <span class="md-nav__icon md-icon"></span>
722
+ config-store
723
+ </label>
724
+ <ul class="md-nav__list" data-md-scrollfix>
725
+
726
+
727
+
728
+
729
+
730
+
731
+
732
+ <li class="md-nav__item">
733
+ <a href="../../config-store/" class="md-nav__link">
734
+ config-store
735
+ </a>
736
+ </li>
737
+
738
+
739
+
740
+
741
+
742
+
743
+
744
+ <li class="md-nav__item">
745
+ <a href="../../config-store/configuration/" class="md-nav__link">
746
+ configuration
747
+ </a>
748
+ </li>
749
+
750
+
751
+
752
+
753
+
754
+
755
+
756
+ <li class="md-nav__item">
757
+ <a href="../../config-store/providers/" class="md-nav__link">
758
+ providers
759
+ </a>
760
+ </li>
761
+
762
+
763
+ </ul>
764
+ </nav>
765
+ </li>
766
+
767
+
768
+
769
+
770
+
771
+
772
+
773
+ <li class="md-nav__item md-nav__item--nested">
774
+
775
+ <input class="md-nav__toggle md-toggle" data-md-toggle="nav-6-4" type="checkbox" id="nav-6-4">
776
+
777
+ <label class="md-nav__link" for="nav-6-4">
778
+ graph
779
+ <span class="md-nav__icon md-icon"></span>
780
+ </label>
781
+ <nav class="md-nav" aria-label="graph" data-md-level="2">
782
+ <label class="md-nav__title" for="nav-6-4">
783
+ <span class="md-nav__icon md-icon"></span>
784
+ graph
785
+ </label>
786
+ <ul class="md-nav__list" data-md-scrollfix>
787
+
788
+
789
+
790
+
791
+
792
+
793
+
794
+ <li class="md-nav__item">
795
+ <a href="../../graph/" class="md-nav__link">
796
+ graph
797
+ </a>
798
+ </li>
799
+
800
+
801
+
802
+
803
+
804
+
805
+
806
+ <li class="md-nav__item">
807
+ <a href="../../graph/groups/" class="md-nav__link">
808
+ groups
809
+ </a>
810
+ </li>
811
+
812
+
813
+
814
+
815
+
816
+
817
+
818
+ <li class="md-nav__item">
819
+ <a href="../../graph/insights/" class="md-nav__link">
820
+ insights
821
+ </a>
822
+ </li>
823
+
824
+
825
+
826
+
827
+
828
+
829
+
830
+ <li class="md-nav__item">
831
+ <a href="../../graph/contacts/" class="md-nav__link">
832
+ contacts
833
+ </a>
834
+ </li>
835
+
836
+
837
+
838
+
839
+
840
+
841
+
842
+ <li class="md-nav__item">
843
+ <a href="../../graph/calendars/" class="md-nav__link">
844
+ calendars
845
+ </a>
846
+ </li>
847
+
848
+
849
+
850
+
851
+
852
+
853
+
854
+ <li class="md-nav__item">
855
+ <a href="../../graph/directoryobjects/" class="md-nav__link">
856
+ directory objects
857
+ </a>
858
+ </li>
859
+
860
+
861
+
862
+
863
+
864
+
865
+
866
+ <li class="md-nav__item">
867
+ <a href="../../graph/invitations/" class="md-nav__link">
868
+ invitations
869
+ </a>
870
+ </li>
871
+
872
+
873
+
874
+
875
+
876
+
877
+
878
+ <li class="md-nav__item">
879
+ <a href="../../graph/onedrive/" class="md-nav__link">
880
+ onedrive
881
+ </a>
882
+ </li>
883
+
884
+
885
+
886
+
887
+
888
+
889
+
890
+ <li class="md-nav__item">
891
+ <a href="../../graph/outlook/" class="md-nav__link">
892
+ outlook
893
+ </a>
894
+ </li>
895
+
896
+
897
+
898
+
899
+
900
+
901
+
902
+ <li class="md-nav__item">
903
+ <a href="../../graph/photos/" class="md-nav__link">
904
+ photos
905
+ </a>
906
+ </li>
907
+
908
+
909
+
910
+
911
+
912
+
913
+
914
+ <li class="md-nav__item">
915
+ <a href="../../graph/planner/" class="md-nav__link">
916
+ planner
917
+ </a>
918
+ </li>
919
+
920
+
921
+
922
+
923
+
924
+
925
+
926
+ <li class="md-nav__item">
927
+ <a href="../../graph/search/" class="md-nav__link">
928
+ search
929
+ </a>
930
+ </li>
931
+
932
+
933
+
934
+
935
+
936
+
937
+
938
+ <li class="md-nav__item">
939
+ <a href="../../graph/subscriptions/" class="md-nav__link">
940
+ subscriptions
941
+ </a>
942
+ </li>
943
+
944
+
945
+
946
+
947
+
948
+
949
+
950
+ <li class="md-nav__item">
951
+ <a href="../../graph/teams/" class="md-nav__link">
952
+ teams
953
+ </a>
954
+ </li>
955
+
956
+
957
+
958
+
959
+
960
+
961
+
962
+ <li class="md-nav__item">
963
+ <a href="../../graph/users/" class="md-nav__link">
964
+ users
965
+ </a>
966
+ </li>
967
+
968
+
969
+ </ul>
970
+ </nav>
971
+ </li>
972
+
973
+
974
+
975
+
976
+
977
+
978
+
979
+ <li class="md-nav__item">
980
+ <a href="../../logging/" class="md-nav__link">
981
+ logging
982
+ </a>
983
+ </li>
984
+
985
+
986
+
987
+
988
+
989
+
990
+
991
+ <li class="md-nav__item md-nav__item--nested">
992
+
993
+ <input class="md-nav__toggle md-toggle" data-md-toggle="nav-6-6" type="checkbox" id="nav-6-6">
994
+
995
+ <label class="md-nav__link" for="nav-6-6">
996
+ nodejs
997
+ <span class="md-nav__icon md-icon"></span>
998
+ </label>
999
+ <nav class="md-nav" aria-label="nodejs" data-md-level="2">
1000
+ <label class="md-nav__title" for="nav-6-6">
1001
+ <span class="md-nav__icon md-icon"></span>
1002
+ nodejs
1003
+ </label>
1004
+ <ul class="md-nav__list" data-md-scrollfix>
1005
+
1006
+
1007
+
1008
+
1009
+
1010
+
1011
+
1012
+ <li class="md-nav__item">
1013
+ <a href="../../nodejs/" class="md-nav__link">
1014
+ nodejs
1015
+ </a>
1016
+ </li>
1017
+
1018
+
1019
+
1020
+
1021
+
1022
+
1023
+
1024
+ <li class="md-nav__item">
1025
+ <a href="../../nodejs/sp-fetch-client/" class="md-nav__link">
1026
+ SPFetchClient
1027
+ </a>
1028
+ </li>
1029
+
1030
+
1031
+
1032
+
1033
+
1034
+
1035
+
1036
+ <li class="md-nav__item">
1037
+ <a href="../../nodejs/adal-fetch-client/" class="md-nav__link">
1038
+ AdalFetchClient
1039
+ </a>
1040
+ </li>
1041
+
1042
+
1043
+
1044
+
1045
+
1046
+
1047
+
1048
+ <li class="md-nav__item">
1049
+ <a href="../../nodejs/bearer-token-fetch-client/" class="md-nav__link">
1050
+ BearerTokenFetchClient
1051
+ </a>
1052
+ </li>
1053
+
1054
+
1055
+
1056
+
1057
+
1058
+
1059
+
1060
+ <li class="md-nav__item">
1061
+ <a href="../../nodejs/provider-hosted-app/" class="md-nav__link">
1062
+ ProviderHostedRequestContext
1063
+ </a>
1064
+ </li>
1065
+
1066
+
1067
+
1068
+
1069
+
1070
+
1071
+
1072
+ <li class="md-nav__item">
1073
+ <a href="../../nodejs/sp-extensions/" class="md-nav__link">
1074
+ sp Extensions
1075
+ </a>
1076
+ </li>
1077
+
1078
+
1079
+
1080
+
1081
+
1082
+
1083
+
1084
+ <li class="md-nav__item">
1085
+ <a href="../../nodejs/proxy/" class="md-nav__link">
1086
+ proxy
1087
+ </a>
1088
+ </li>
1089
+
1090
+
1091
+ </ul>
1092
+ </nav>
1093
+ </li>
1094
+
1095
+
1096
+
1097
+
1098
+
1099
+
1100
+
1101
+ <li class="md-nav__item md-nav__item--nested">
1102
+
1103
+ <input class="md-nav__toggle md-toggle" data-md-toggle="nav-6-7" type="checkbox" id="nav-6-7">
1104
+
1105
+ <label class="md-nav__link" for="nav-6-7">
1106
+ odata
1107
+ <span class="md-nav__icon md-icon"></span>
1108
+ </label>
1109
+ <nav class="md-nav" aria-label="odata" data-md-level="2">
1110
+ <label class="md-nav__title" for="nav-6-7">
1111
+ <span class="md-nav__icon md-icon"></span>
1112
+ odata
1113
+ </label>
1114
+ <ul class="md-nav__list" data-md-scrollfix>
1115
+
1116
+
1117
+
1118
+
1119
+
1120
+
1121
+
1122
+ <li class="md-nav__item">
1123
+ <a href="../../odata/" class="md-nav__link">
1124
+ odata
1125
+ </a>
1126
+ </li>
1127
+
1128
+
1129
+
1130
+
1131
+
1132
+
1133
+
1134
+ <li class="md-nav__item">
1135
+ <a href="../../odata/caching/" class="md-nav__link">
1136
+ caching
1137
+ </a>
1138
+ </li>
1139
+
1140
+
1141
+
1142
+
1143
+
1144
+
1145
+
1146
+ <li class="md-nav__item">
1147
+ <a href="../../odata/core/" class="md-nav__link">
1148
+ core
1149
+ </a>
1150
+ </li>
1151
+
1152
+
1153
+
1154
+
1155
+
1156
+
1157
+
1158
+ <li class="md-nav__item">
1159
+ <a href="../../odata/odata-batch/" class="md-nav__link">
1160
+ OData Batching
1161
+ </a>
1162
+ </li>
1163
+
1164
+
1165
+
1166
+
1167
+
1168
+
1169
+
1170
+ <li class="md-nav__item">
1171
+ <a href="../../odata/extensions/" class="md-nav__link">
1172
+ Extending an OData library
1173
+ </a>
1174
+ </li>
1175
+
1176
+
1177
+
1178
+
1179
+
1180
+
1181
+
1182
+ <li class="md-nav__item">
1183
+ <a href="../../odata/debug/" class="md-nav__link">
1184
+ Debugging Proxy Objects
1185
+ </a>
1186
+ </li>
1187
+
1188
+
1189
+
1190
+
1191
+
1192
+
1193
+
1194
+ <li class="md-nav__item">
1195
+ <a href="../../odata/parsers/" class="md-nav__link">
1196
+ Parsers
1197
+ </a>
1198
+ </li>
1199
+
1200
+
1201
+
1202
+
1203
+
1204
+
1205
+
1206
+ <li class="md-nav__item">
1207
+ <a href="../../odata/pipeline/" class="md-nav__link">
1208
+ Pipeline
1209
+ </a>
1210
+ </li>
1211
+
1212
+
1213
+
1214
+
1215
+
1216
+
1217
+
1218
+ <li class="md-nav__item">
1219
+ <a href="../../odata/queryable/" class="md-nav__link">
1220
+ Queryable
1221
+ </a>
1222
+ </li>
1223
+
1224
+
1225
+ </ul>
1226
+ </nav>
1227
+ </li>
1228
+
1229
+
1230
+
1231
+
1232
+
1233
+
1234
+
1235
+ <li class="md-nav__item md-nav__item--nested">
1236
+
1237
+ <input class="md-nav__toggle md-toggle" data-md-toggle="nav-6-8" type="checkbox" id="nav-6-8">
1238
+
1239
+ <label class="md-nav__link" for="nav-6-8">
1240
+ pnpjs
1241
+ <span class="md-nav__icon md-icon"></span>
1242
+ </label>
1243
+ <nav class="md-nav" aria-label="pnpjs" data-md-level="2">
1244
+ <label class="md-nav__title" for="nav-6-8">
1245
+ <span class="md-nav__icon md-icon"></span>
1246
+ pnpjs
1247
+ </label>
1248
+ <ul class="md-nav__list" data-md-scrollfix>
1249
+
1250
+
1251
+
1252
+
1253
+
1254
+
1255
+
1256
+ <li class="md-nav__item">
1257
+ <a href="../../pnpjs/" class="md-nav__link">
1258
+ pnpjs
1259
+ </a>
1260
+ </li>
1261
+
1262
+
1263
+ </ul>
1264
+ </nav>
1265
+ </li>
1266
+
1267
+
1268
+
1269
+
1270
+
1271
+
1272
+
1273
+ <li class="md-nav__item md-nav__item--nested">
1274
+
1275
+ <input class="md-nav__toggle md-toggle" data-md-toggle="nav-6-9" type="checkbox" id="nav-6-9">
1276
+
1277
+ <label class="md-nav__link" for="nav-6-9">
1278
+ sp
1279
+ <span class="md-nav__icon md-icon"></span>
1280
+ </label>
1281
+ <nav class="md-nav" aria-label="sp" data-md-level="2">
1282
+ <label class="md-nav__title" for="nav-6-9">
1283
+ <span class="md-nav__icon md-icon"></span>
1284
+ sp
1285
+ </label>
1286
+ <ul class="md-nav__list" data-md-scrollfix>
1287
+
1288
+
1289
+
1290
+
1291
+
1292
+
1293
+
1294
+ <li class="md-nav__item">
1295
+ <a href="../../sp/" class="md-nav__link">
1296
+ sp
1297
+ </a>
1298
+ </li>
1299
+
1300
+
1301
+
1302
+
1303
+
1304
+
1305
+
1306
+ <li class="md-nav__item">
1307
+ <a href="../../sp/alias-parameters/" class="md-nav__link">
1308
+ Alias Parameters
1309
+ </a>
1310
+ </li>
1311
+
1312
+
1313
+
1314
+
1315
+
1316
+
1317
+
1318
+ <li class="md-nav__item">
1319
+ <a href="../../sp/alm/" class="md-nav__link">
1320
+ ALM api
1321
+ </a>
1322
+ </li>
1323
+
1324
+
1325
+
1326
+
1327
+
1328
+
1329
+
1330
+ <li class="md-nav__item">
1331
+ <a href="../../sp/attachments/" class="md-nav__link">
1332
+ Attachments
1333
+ </a>
1334
+ </li>
1335
+
1336
+
1337
+
1338
+
1339
+
1340
+
1341
+
1342
+ <li class="md-nav__item">
1343
+ <a href="../../sp/clientside-pages/" class="md-nav__link">
1344
+ Client-side Pages
1345
+ </a>
1346
+ </li>
1347
+
1348
+
1349
+
1350
+
1351
+
1352
+
1353
+
1354
+ <li class="md-nav__item">
1355
+ <a href="../../sp/column-defaults/" class="md-nav__link">
1356
+ Column Defaults
1357
+ </a>
1358
+ </li>
1359
+
1360
+
1361
+
1362
+
1363
+
1364
+
1365
+
1366
+ <li class="md-nav__item">
1367
+ <a href="../../sp/comments-likes/" class="md-nav__link">
1368
+ Comments and Likes
1369
+ </a>
1370
+ </li>
1371
+
1372
+
1373
+
1374
+
1375
+
1376
+
1377
+
1378
+ <li class="md-nav__item">
1379
+ <a href="../../sp/content-types/" class="md-nav__link">
1380
+ Content Types
1381
+ </a>
1382
+ </li>
1383
+
1384
+
1385
+
1386
+
1387
+
1388
+
1389
+
1390
+ <li class="md-nav__item">
1391
+ <a href="../../sp/entity-merging/" class="md-nav__link">
1392
+ Entity Merging
1393
+ </a>
1394
+ </li>
1395
+
1396
+
1397
+
1398
+
1399
+
1400
+
1401
+
1402
+ <li class="md-nav__item">
1403
+ <a href="../../sp/features/" class="md-nav__link">
1404
+ Features
1405
+ </a>
1406
+ </li>
1407
+
1408
+
1409
+
1410
+
1411
+
1412
+
1413
+
1414
+ <li class="md-nav__item">
1415
+ <a href="../../sp/fields/" class="md-nav__link">
1416
+ Fields
1417
+ </a>
1418
+ </li>
1419
+
1420
+
1421
+
1422
+
1423
+
1424
+
1425
+
1426
+ <li class="md-nav__item">
1427
+ <a href="../../sp/files/" class="md-nav__link">
1428
+ Files
1429
+ </a>
1430
+ </li>
1431
+
1432
+
1433
+
1434
+
1435
+
1436
+
1437
+
1438
+ <li class="md-nav__item">
1439
+ <a href="../../sp/folders/" class="md-nav__link">
1440
+ Folders
1441
+ </a>
1442
+ </li>
1443
+
1444
+
1445
+
1446
+
1447
+
1448
+
1449
+
1450
+ <li class="md-nav__item">
1451
+ <a href="../../sp/forms/" class="md-nav__link">
1452
+ Forms
1453
+ </a>
1454
+ </li>
1455
+
1456
+
1457
+
1458
+
1459
+
1460
+
1461
+
1462
+ <li class="md-nav__item">
1463
+ <a href="../../sp/hubsites/" class="md-nav__link">
1464
+ Hubsites
1465
+ </a>
1466
+ </li>
1467
+
1468
+
1469
+
1470
+
1471
+
1472
+
1473
+
1474
+ <li class="md-nav__item">
1475
+ <a href="../../sp/items/" class="md-nav__link">
1476
+ List Items
1477
+ </a>
1478
+ </li>
1479
+
1480
+
1481
+
1482
+
1483
+
1484
+
1485
+
1486
+ <li class="md-nav__item">
1487
+ <a href="../../sp/lists/" class="md-nav__link">
1488
+ Lists
1489
+ </a>
1490
+ </li>
1491
+
1492
+
1493
+
1494
+
1495
+
1496
+
1497
+
1498
+ <li class="md-nav__item">
1499
+ <a href="../../sp/navigation/" class="md-nav__link">
1500
+ Navigation
1501
+ </a>
1502
+ </li>
1503
+
1504
+
1505
+
1506
+
1507
+
1508
+
1509
+
1510
+ <li class="md-nav__item">
1511
+ <a href="../../sp/permissions/" class="md-nav__link">
1512
+ Permissions
1513
+ </a>
1514
+ </li>
1515
+
1516
+
1517
+
1518
+
1519
+
1520
+
1521
+
1522
+ <li class="md-nav__item">
1523
+ <a href="../../sp/profiles/" class="md-nav__link">
1524
+ Profiles
1525
+ </a>
1526
+ </li>
1527
+
1528
+
1529
+
1530
+
1531
+
1532
+
1533
+
1534
+ <li class="md-nav__item">
1535
+ <a href="../../sp/regional-settings/" class="md-nav__link">
1536
+ Regional Settings
1537
+ </a>
1538
+ </li>
1539
+
1540
+
1541
+
1542
+
1543
+
1544
+
1545
+
1546
+ <li class="md-nav__item">
1547
+ <a href="../../sp/related-items/" class="md-nav__link">
1548
+ Related Items
1549
+ </a>
1550
+ </li>
1551
+
1552
+
1553
+
1554
+
1555
+
1556
+
1557
+
1558
+ <li class="md-nav__item">
1559
+ <a href="../../sp/search/" class="md-nav__link">
1560
+ Search
1561
+ </a>
1562
+ </li>
1563
+
1564
+
1565
+
1566
+
1567
+
1568
+
1569
+
1570
+ <li class="md-nav__item">
1571
+ <a href="../../sp/security/" class="md-nav__link">
1572
+ Security
1573
+ </a>
1574
+ </li>
1575
+
1576
+
1577
+
1578
+
1579
+
1580
+
1581
+
1582
+ <li class="md-nav__item">
1583
+ <a href="../../sp/sharing/" class="md-nav__link">
1584
+ Sharing
1585
+ </a>
1586
+ </li>
1587
+
1588
+
1589
+
1590
+
1591
+
1592
+
1593
+
1594
+ <li class="md-nav__item">
1595
+ <a href="../../sp/site-designs/" class="md-nav__link">
1596
+ Site Designs
1597
+ </a>
1598
+ </li>
1599
+
1600
+
1601
+
1602
+
1603
+
1604
+
1605
+
1606
+ <li class="md-nav__item">
1607
+ <a href="../../sp/site-groups/" class="md-nav__link">
1608
+ Site Groups
1609
+ </a>
1610
+ </li>
1611
+
1612
+
1613
+
1614
+
1615
+
1616
+
1617
+
1618
+ <li class="md-nav__item">
1619
+ <a href="../../sp/site-scripts/" class="md-nav__link">
1620
+ Site Scripts
1621
+ </a>
1622
+ </li>
1623
+
1624
+
1625
+
1626
+
1627
+
1628
+
1629
+
1630
+ <li class="md-nav__item">
1631
+ <a href="../../sp/site-users/" class="md-nav__link">
1632
+ Site Users
1633
+ </a>
1634
+ </li>
1635
+
1636
+
1637
+
1638
+
1639
+
1640
+
1641
+
1642
+ <li class="md-nav__item">
1643
+ <a href="../../sp/sites/" class="md-nav__link">
1644
+ Sites
1645
+ </a>
1646
+ </li>
1647
+
1648
+
1649
+
1650
+
1651
+
1652
+
1653
+
1654
+ <li class="md-nav__item">
1655
+ <a href="../../sp/social/" class="md-nav__link">
1656
+ Social
1657
+ </a>
1658
+ </li>
1659
+
1660
+
1661
+
1662
+
1663
+
1664
+
1665
+
1666
+ <li class="md-nav__item">
1667
+ <a href="../../sp/sp-utilities-utility/" class="md-nav__link">
1668
+ SP.Utilities.Utility
1669
+ </a>
1670
+ </li>
1671
+
1672
+
1673
+
1674
+
1675
+
1676
+
1677
+
1678
+ <li class="md-nav__item">
1679
+ <a href="../../sp/subscriptions/" class="md-nav__link">
1680
+ Subscriptions
1681
+ </a>
1682
+ </li>
1683
+
1684
+
1685
+
1686
+
1687
+
1688
+
1689
+
1690
+ <li class="md-nav__item">
1691
+ <a href="../../sp/taxonomy/" class="md-nav__link">
1692
+ Taxonomy
1693
+ </a>
1694
+ </li>
1695
+
1696
+
1697
+
1698
+
1699
+
1700
+
1701
+
1702
+ <li class="md-nav__item">
1703
+ <a href="../../sp/tenant-properties/" class="md-nav__link">
1704
+ Tenant Properties
1705
+ </a>
1706
+ </li>
1707
+
1708
+
1709
+
1710
+
1711
+
1712
+
1713
+
1714
+ <li class="md-nav__item">
1715
+ <a href="../../sp/user-custom-actions/" class="md-nav__link">
1716
+ User custom actions
1717
+ </a>
1718
+ </li>
1719
+
1720
+
1721
+
1722
+
1723
+
1724
+
1725
+
1726
+ <li class="md-nav__item">
1727
+ <a href="../../sp/views/" class="md-nav__link">
1728
+ Views
1729
+ </a>
1730
+ </li>
1731
+
1732
+
1733
+
1734
+
1735
+
1736
+
1737
+
1738
+ <li class="md-nav__item">
1739
+ <a href="../../sp/webs/" class="md-nav__link">
1740
+ Webs
1741
+ </a>
1742
+ </li>
1743
+
1744
+
1745
+
1746
+
1747
+
1748
+
1749
+
1750
+ <li class="md-nav__item">
1751
+ <a href="../../sp/custom-irequestclient/" class="md-nav__link">
1752
+ Custom Request Client
1753
+ </a>
1754
+ </li>
1755
+
1756
+
1757
+ </ul>
1758
+ </nav>
1759
+ </li>
1760
+
1761
+
1762
+
1763
+
1764
+
1765
+
1766
+
1767
+ <li class="md-nav__item md-nav__item--nested">
1768
+
1769
+ <input class="md-nav__toggle md-toggle" data-md-toggle="nav-6-10" type="checkbox" id="nav-6-10">
1770
+
1771
+ <label class="md-nav__link" for="nav-6-10">
1772
+ sp-addinhelpers
1773
+ <span class="md-nav__icon md-icon"></span>
1774
+ </label>
1775
+ <nav class="md-nav" aria-label="sp-addinhelpers" data-md-level="2">
1776
+ <label class="md-nav__title" for="nav-6-10">
1777
+ <span class="md-nav__icon md-icon"></span>
1778
+ sp-addinhelpers
1779
+ </label>
1780
+ <ul class="md-nav__list" data-md-scrollfix>
1781
+
1782
+
1783
+
1784
+
1785
+
1786
+
1787
+
1788
+ <li class="md-nav__item">
1789
+ <a href="../../sp-addinhelpers/" class="md-nav__link">
1790
+ sp-addinhelpers
1791
+ </a>
1792
+ </li>
1793
+
1794
+
1795
+
1796
+
1797
+
1798
+
1799
+
1800
+ <li class="md-nav__item">
1801
+ <a href="../../sp-addinhelpers/sp-request-executor-client/" class="md-nav__link">
1802
+ SPRequestExecutorClient
1803
+ </a>
1804
+ </li>
1805
+
1806
+
1807
+
1808
+
1809
+
1810
+
1811
+
1812
+ <li class="md-nav__item">
1813
+ <a href="../../sp-addinhelpers/sp-rest-addin/" class="md-nav__link">
1814
+ SPRestAddIn
1815
+ </a>
1816
+ </li>
1817
+
1818
+
1819
+ </ul>
1820
+ </nav>
1821
+ </li>
1822
+
1823
+
1824
+ </ul>
1825
+ </nav>
1826
+ </li>
1827
+
1828
+
1829
+
1830
+
1831
+
1832
+
1833
+
1834
+
1835
+
1836
+ <li class="md-nav__item md-nav__item--active md-nav__item--nested">
1837
+
1838
+ <input class="md-nav__toggle md-toggle" data-md-toggle="nav-7" type="checkbox" id="nav-7" checked>
1839
+
1840
+ <label class="md-nav__link" for="nav-7">
1841
+ Contributing
1842
+ <span class="md-nav__icon md-icon"></span>
1843
+ </label>
1844
+ <nav class="md-nav" aria-label="Contributing" data-md-level="1">
1845
+ <label class="md-nav__title" for="nav-7">
1846
+ <span class="md-nav__icon md-icon"></span>
1847
+ Contributing
1848
+ </label>
1849
+ <ul class="md-nav__list" data-md-scrollfix>
1850
+
1851
+
1852
+
1853
+
1854
+
1855
+
1856
+
1857
+ <li class="md-nav__item">
1858
+ <a href="../" class="md-nav__link">
1859
+ Contributing
1860
+ </a>
1861
+ </li>
1862
+
1863
+
1864
+
1865
+
1866
+
1867
+
1868
+
1869
+ <li class="md-nav__item">
1870
+ <a href="../setup-dev-machine/" class="md-nav__link">
1871
+ Setup Dev Machine
1872
+ </a>
1873
+ </li>
1874
+
1875
+
1876
+
1877
+
1878
+
1879
+
1880
+
1881
+ <li class="md-nav__item">
1882
+ <a href="../local-debug-configuration/" class="md-nav__link">
1883
+ Local Debug Configuration
1884
+ </a>
1885
+ </li>
1886
+
1887
+
1888
+
1889
+
1890
+
1891
+
1892
+
1893
+ <li class="md-nav__item">
1894
+ <a href="../debugging/" class="md-nav__link">
1895
+ Debugging
1896
+ </a>
1897
+ </li>
1898
+
1899
+
1900
+
1901
+
1902
+
1903
+
1904
+
1905
+
1906
+
1907
+ <li class="md-nav__item md-nav__item--active">
1908
+
1909
+ <input class="md-nav__toggle md-toggle" data-md-toggle="toc" type="checkbox" id="__toc">
1910
+
1911
+
1912
+
1913
+
1914
+ <label class="md-nav__link md-nav__link--active" for="__toc">
1915
+ Extending the library
1916
+ <span class="md-nav__icon md-icon"></span>
1917
+ </label>
1918
+
1919
+ <a href="./" class="md-nav__link md-nav__link--active">
1920
+ Extending the library
1921
+ </a>
1922
+
1923
+
1924
+ <nav class="md-nav md-nav--secondary" aria-label="Table of contents">
1925
+
1926
+
1927
+
1928
+
1929
+
1930
+ <label class="md-nav__title" for="__toc">
1931
+ <span class="md-nav__icon md-icon"></span>
1932
+ Table of contents
1933
+ </label>
1934
+ <ul class="md-nav__list" data-md-scrollfix>
1935
+
1936
+ <li class="md-nav__item">
1937
+ <a href="#understanding-factory-functions" class="md-nav__link">
1938
+ Understanding Factory Functions
1939
+ </a>
1940
+
1941
+ </li>
1942
+
1943
+ <li class="md-nav__item">
1944
+ <a href="#class-structure" class="md-nav__link">
1945
+ Class structure
1946
+ </a>
1947
+
1948
+ </li>
1949
+
1950
+ <li class="md-nav__item">
1951
+ <a href="#add-a-property" class="md-nav__link">
1952
+ Add a Property
1953
+ </a>
1954
+
1955
+ </li>
1956
+
1957
+ <li class="md-nav__item">
1958
+ <a href="#add-a-method" class="md-nav__link">
1959
+ Add a Method
1960
+ </a>
1961
+
1962
+ <nav class="md-nav" aria-label="Add a Method">
1963
+ <ul class="md-nav__list">
1964
+
1965
+ <li class="md-nav__item">
1966
+ <a href="#web-request-method" class="md-nav__link">
1967
+ Web Request Method
1968
+ </a>
1969
+
1970
+ </li>
1971
+
1972
+ </ul>
1973
+ </nav>
1974
+
1975
+ </li>
1976
+
1977
+ <li class="md-nav__item">
1978
+ <a href="#augment-using-selective-imports" class="md-nav__link">
1979
+ Augment Using Selective Imports
1980
+ </a>
1981
+
1982
+ </li>
1983
+
1984
+ <li class="md-nav__item">
1985
+ <a href="#general-rules-for-extending-pnpjs" class="md-nav__link">
1986
+ General Rules for Extending PnPjs
1987
+ </a>
1988
+
1989
+ </li>
1990
+
1991
+ <li class="md-nav__item">
1992
+ <a href="#next-steps" class="md-nav__link">
1993
+ Next Steps
1994
+ </a>
1995
+
1996
+ </li>
1997
+
1998
+ </ul>
1999
+
2000
+ </nav>
2001
+
2002
+ </li>
2003
+
2004
+
2005
+
2006
+
2007
+
2008
+
2009
+
2010
+ <li class="md-nav__item">
2011
+ <a href="../debug-tests/" class="md-nav__link">
2012
+ Writing Tests
2013
+ </a>
2014
+ </li>
2015
+
2016
+
2017
+
2018
+
2019
+
2020
+
2021
+
2022
+ <li class="md-nav__item">
2023
+ <a href="../documentation/" class="md-nav__link">
2024
+ Update Documentation
2025
+ </a>
2026
+ </li>
2027
+
2028
+
2029
+
2030
+
2031
+
2032
+
2033
+
2034
+ <li class="md-nav__item">
2035
+ <a href="../pull-requests/" class="md-nav__link">
2036
+ Submit a Pull Request
2037
+ </a>
2038
+ </li>
2039
+
2040
+
2041
+ </ul>
2042
+ </nav>
2043
+ </li>
2044
+
2045
+
2046
+
2047
+
2048
+
2049
+
2050
+
2051
+ <li class="md-nav__item md-nav__item--nested">
2052
+
2053
+ <input class="md-nav__toggle md-toggle" data-md-toggle="nav-8" type="checkbox" id="nav-8">
2054
+
2055
+ <label class="md-nav__link" for="nav-8">
2056
+ Version 1 Docs
2057
+ <span class="md-nav__icon md-icon"></span>
2058
+ </label>
2059
+ <nav class="md-nav" aria-label="Version 1 Docs" data-md-level="1">
2060
+ <label class="md-nav__title" for="nav-8">
2061
+ <span class="md-nav__icon md-icon"></span>
2062
+ Version 1 Docs
2063
+ </label>
2064
+ <ul class="md-nav__list" data-md-scrollfix>
2065
+
2066
+
2067
+
2068
+
2069
+
2070
+
2071
+
2072
+ <li class="md-nav__item">
2073
+ <a href="../../v1/" class="md-nav__link">
2074
+ Home
2075
+ </a>
2076
+ </li>
2077
+
2078
+
2079
+ </ul>
2080
+ </nav>
2081
+ </li>
2082
+
2083
+
2084
+
2085
+
2086
+
2087
+
2088
+
2089
+ <li class="md-nav__item md-nav__item--nested">
2090
+
2091
+ <input class="md-nav__toggle md-toggle" data-md-toggle="nav-9" type="checkbox" id="nav-9">
2092
+
2093
+ <label class="md-nav__link" for="nav-9">
2094
+ Version 2 Docs
2095
+ <span class="md-nav__icon md-icon"></span>
2096
+ </label>
2097
+ <nav class="md-nav" aria-label="Version 2 Docs" data-md-level="1">
2098
+ <label class="md-nav__title" for="nav-9">
2099
+ <span class="md-nav__icon md-icon"></span>
2100
+ Version 2 Docs
2101
+ </label>
2102
+ <ul class="md-nav__list" data-md-scrollfix>
2103
+
2104
+
2105
+
2106
+
2107
+
2108
+
2109
+
2110
+ <li class="md-nav__item">
2111
+ <a href="../../v2/index.html" class="md-nav__link">
2112
+ Home
2113
+ </a>
2114
+ </li>
2115
+
2116
+
2117
+ </ul>
2118
+ </nav>
2119
+ </li>
2120
+
2121
+
2122
+ </ul>
2123
+ </nav>
2124
+ </div>
2125
+ </div>
2126
+ </div>
2127
+
2128
+
2129
+ <div class="md-sidebar md-sidebar--secondary" data-md-component="toc">
2130
+ <div class="md-sidebar__scrollwrap">
2131
+ <div class="md-sidebar__inner">
2132
+
2133
+ <nav class="md-nav md-nav--secondary" aria-label="Table of contents">
2134
+
2135
+
2136
+
2137
+
2138
+
2139
+ <label class="md-nav__title" for="__toc">
2140
+ <span class="md-nav__icon md-icon"></span>
2141
+ Table of contents
2142
+ </label>
2143
+ <ul class="md-nav__list" data-md-scrollfix>
2144
+
2145
+ <li class="md-nav__item">
2146
+ <a href="#understanding-factory-functions" class="md-nav__link">
2147
+ Understanding Factory Functions
2148
+ </a>
2149
+
2150
+ </li>
2151
+
2152
+ <li class="md-nav__item">
2153
+ <a href="#class-structure" class="md-nav__link">
2154
+ Class structure
2155
+ </a>
2156
+
2157
+ </li>
2158
+
2159
+ <li class="md-nav__item">
2160
+ <a href="#add-a-property" class="md-nav__link">
2161
+ Add a Property
2162
+ </a>
2163
+
2164
+ </li>
2165
+
2166
+ <li class="md-nav__item">
2167
+ <a href="#add-a-method" class="md-nav__link">
2168
+ Add a Method
2169
+ </a>
2170
+
2171
+ <nav class="md-nav" aria-label="Add a Method">
2172
+ <ul class="md-nav__list">
2173
+
2174
+ <li class="md-nav__item">
2175
+ <a href="#web-request-method" class="md-nav__link">
2176
+ Web Request Method
2177
+ </a>
2178
+
2179
+ </li>
2180
+
2181
+ </ul>
2182
+ </nav>
2183
+
2184
+ </li>
2185
+
2186
+ <li class="md-nav__item">
2187
+ <a href="#augment-using-selective-imports" class="md-nav__link">
2188
+ Augment Using Selective Imports
2189
+ </a>
2190
+
2191
+ </li>
2192
+
2193
+ <li class="md-nav__item">
2194
+ <a href="#general-rules-for-extending-pnpjs" class="md-nav__link">
2195
+ General Rules for Extending PnPjs
2196
+ </a>
2197
+
2198
+ </li>
2199
+
2200
+ <li class="md-nav__item">
2201
+ <a href="#next-steps" class="md-nav__link">
2202
+ Next Steps
2203
+ </a>
2204
+
2205
+ </li>
2206
+
2207
+ </ul>
2208
+
2209
+ </nav>
2210
+ </div>
2211
+ </div>
2212
+ </div>
2213
+
2214
+
2215
+ <div class="md-content">
2216
+ <article class="md-content__inner md-typeset">
2217
+
2218
+
2219
+ <a href="https://github.com/pnp/pnpjs/tree/version-2/docs/contributing/extending-the-library.md" title="Edit this page" class="md-content__button md-icon">
2220
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M20.71 7.04c.39-.39.39-1.04 0-1.41l-2.34-2.34c-.37-.39-1.02-.39-1.41 0l-1.84 1.83 3.75 3.75M3 17.25V21h3.75L17.81 9.93l-3.75-3.75L3 17.25z"/></svg>
2221
+ </a>
2222
+
2223
+
2224
+ <h1 id="extending-pnpjs">Extending PnPjs<a class="headerlink" href="#extending-pnpjs" title="Permanent link">&para;</a></h1>
2225
+ <blockquote>
2226
+ <p>This article is targeted at people wishing to extend PnPjs itself, usually by adding a method or property.</p>
2227
+ </blockquote>
2228
+ <p>At the most basic level PnPjs is a set of libraries used to build and execute a web request and handle the response from that request. Conceptually each object in the fluent chain serves as input when creating the next object in the chain. This is how configuration, url, query, and other values are passed along. To get a sense for what this looks like see the code below. This is taken from inside the <a href="https://github.com/pnp/pnpjs/blob/version-2/packages/sp/webs/types.ts#L77">webs submodule</a> and shows how the "webs" property is added to the web class.</p>
2229
+ <pre><code class="language-ts">// TypeScript property, returning an interface
2230
+ public get webs(): IWebs {
2231
+ // using the Webs factory function and providing &quot;this&quot; as the first parameter
2232
+ return Webs(this);
2233
+ }
2234
+ </code></pre>
2235
+ <h2 id="understanding-factory-functions">Understanding Factory Functions<a class="headerlink" href="#understanding-factory-functions" title="Permanent link">&para;</a></h2>
2236
+ <p>PnPjs v2 is designed to only expose interfaces and factory functions. Let's look at the Webs factory function, used above as an example. All factory functions in sp and graph have a similar form.</p>
2237
+ <pre><code class="language-ts">// create a constant which is a function of type ISPInvokableFactory having the name Webs
2238
+ // this is bound by the generic type param to return an IWebs instance
2239
+ // and it will use the _Webs concrete class to form the internal type of the invocable
2240
+ export const Webs = spInvokableFactory&lt;IWebs&gt;(_Webs);
2241
+ </code></pre>
2242
+ <p>The ISPInvokableFactory type looks like:</p>
2243
+ <pre><code class="language-ts">export type ISPInvokableFactory&lt;R = any&gt; = (baseUrl: string | ISharePointQueryable, path?: string) =&gt; R;
2244
+ </code></pre>
2245
+ <p>And the matching graph type:</p>
2246
+ <pre><code class="language-ts">&lt;R&gt;(f: any): (baseUrl: string | IGraphQueryable, path?: string) =&gt; R
2247
+ </code></pre>
2248
+ <p>The general idea of a factory function is that it takes two parameters. The first is either a string or Queryable derivative which forms base for the new object. The second is the next part of the url. In some cases (like the webs property example above) you will note there is no second parameter. Some classes are decorated with defaultPath, which automatically fills the second param. Don't worry too much right now about the deep internals of the library, let's instead focus on some concrete examples.</p>
2249
+ <pre><code class="language-ts">import { Web } from &quot;@pnp/sp/webs&quot;;
2250
+
2251
+ // create a web from an absolute url
2252
+ const web = Web(&quot;https://tenant.sharepoint.com&quot;);
2253
+
2254
+ // as an example, create a new web using the first as a base
2255
+ // targets: https://tenant.sharepoint.com/sites/dev
2256
+ const web2 = Web(web, &quot;sites/dev&quot;);
2257
+
2258
+ // or you can add any path components you want, here as an example we access the current user property
2259
+ const cu = Web(web, &quot;currentuser&quot;);
2260
+ const currentUserInfo = cu();
2261
+ </code></pre>
2262
+ <p>Now hey you might say - you can't create a request to current user using the Web factory. Well you can, since everything is just based on urls under the covers the actual factory names don't mean anything other than they have the appropriate properties and method hung off them. This is brought up as you will see in many cases objects being used to create queries <em>within</em> methods and properties that don't match their "type". It is an important concept when working with the library to always remember we are just building strings.</p>
2263
+ <h2 id="class-structure">Class structure<a class="headerlink" href="#class-structure" title="Permanent link">&para;</a></h2>
2264
+ <p>Internally to the library we have a bit of complexity to make the whole invocable proxy architecture work and provide the typings folks expect. Here is an example implementation with extra comments explaining what is happening. You don't need to understand the entire stack to <a href="#add-a-property">add a property</a> or <a href="#add-a-method">method</a></p>
2265
+ <pre><code class="language-ts">/*
2266
+ The concrete class implementation. This is never exported or shown directly
2267
+ to consumers of the library. It is wrapped by the Proxy we do expose.
2268
+
2269
+ It extends the _SharePointQueryableInstance class for which there is a matching
2270
+ _SharePointQueryableCollection. The generic parameter defines the return type
2271
+ of a get operation and the invoked result.
2272
+
2273
+ Classes can have methods and properties as normal. This one has a single property as a simple example
2274
+ */
2275
+ export class _HubSite extends _SharePointQueryableInstance&lt;IHubSiteInfo&gt; {
2276
+
2277
+ /**
2278
+ * Gets the ISite instance associated with this hub site
2279
+ */
2280
+ // the tag decorator is used to provide some additional telemetry on what methods are
2281
+ // being called.
2282
+ @tag(&quot;hs.getSite&quot;)
2283
+ public async getSite(): Promise&lt;ISite&gt; {
2284
+
2285
+ // we execute a request using this instance, selecting the SiteUrl property, and invoking it immediately and awaiting the result
2286
+ const d = await this.select(&quot;SiteUrl&quot;)();
2287
+
2288
+ // we then return a new ISite instance created from the Site factory using the returned SiteUrl property as the baseUrl
2289
+ return Site(d.SiteUrl);
2290
+ }
2291
+ }
2292
+
2293
+ /*
2294
+ This defines the interface we export and expose to consumers.
2295
+ In most cases this extends the concrete object but may add or remove some methods/properties
2296
+ in special cases
2297
+ */
2298
+ export interface IHubSite extends _HubSite { }
2299
+
2300
+ /*
2301
+ This defines the HubSite factory function as discussed above
2302
+ binding the spInvokableFactory to a generic param of IHubSite and a param of _HubSite.
2303
+
2304
+ This is understood to mean that HubSite is a factory function that returns a types of IHubSite
2305
+ which the spInvokableFactory will create using _HubSite as the concrete underlying type.
2306
+ */
2307
+ export const HubSite = spInvokableFactory&lt;IHubSite&gt;(_HubSite);
2308
+ </code></pre>
2309
+ <h2 id="add-a-property">Add a Property<a class="headerlink" href="#add-a-property" title="Permanent link">&para;</a></h2>
2310
+ <p>In most cases you won't need to create the class, interface, or factory - you just want to add a property or method. An example of this is sp.web.lists. web is a property of sp and lists is a property of web. You can have a look at those classes as examples. Let's have a look at the fields on the _View class.</p>
2311
+ <pre><code class="language-ts">export class _View extends _SharePointQueryableInstance&lt;IViewInfo&gt; {
2312
+
2313
+ // ... other code removed
2314
+
2315
+ // add the property, and provide a return type
2316
+ // return types should be interfaces
2317
+ public get fields(): IViewFields {
2318
+ // we use the ViewFields factory function supplying &quot;this&quot; as the first parameter
2319
+ // this will create a url like &quot;.../fields/viewfields&quot; due to the defaultPath decorator
2320
+ // on the _ViewFields class. This is equivalent to: ViewFields(this, &quot;viewfields&quot;)
2321
+ return ViewFields(this);
2322
+ }
2323
+
2324
+ // ... other code removed
2325
+ }
2326
+ </code></pre>
2327
+ <blockquote>
2328
+ <p>There are many examples throughout the library that follow this pattern.</p>
2329
+ </blockquote>
2330
+ <h2 id="add-a-method">Add a Method<a class="headerlink" href="#add-a-method" title="Permanent link">&para;</a></h2>
2331
+ <p>Adding a method is just like adding a property with the key difference that a method usually <em>does</em> something like make a web request or act like a property but take parameters. Let's look at the _Items getById method:</p>
2332
+ <pre><code class="language-ts">@defaultPath(&quot;items&quot;)
2333
+ export class _Items extends _SharePointQueryableCollection {
2334
+
2335
+ /**
2336
+ * Gets an Item by id
2337
+ *
2338
+ * @param id The integer id of the item to retrieve
2339
+ */
2340
+ // we declare a method and set the return type to an interface
2341
+ public getById(id: number): IItem {
2342
+ // here we use the tag helper to add some telemetry to our request
2343
+ // we create a new IItem using the factory and appending the id value to the end
2344
+ // this gives us a valid url path to a single item .../items/getById(2)
2345
+ // we can then use the returned IItem to extend our chain or execute a request
2346
+ return tag.configure(Item(this).concat(`(${id})`), &quot;is.getById&quot;);
2347
+ }
2348
+
2349
+ // ... other code removed
2350
+ }
2351
+ </code></pre>
2352
+ <h3 id="web-request-method">Web Request Method<a class="headerlink" href="#web-request-method" title="Permanent link">&para;</a></h3>
2353
+ <p>A second example is a method that performs a request. Here we use the _Item recycle method as an example:</p>
2354
+ <pre><code class="language-ts">/**
2355
+ * Moves the list item to the Recycle Bin and returns the identifier of the new Recycle Bin item.
2356
+ */
2357
+ // we use the tag decorator to add telemetry
2358
+ @tag(&quot;i.recycle&quot;)
2359
+ // we return a promise
2360
+ public recycle(): Promise&lt;string&gt; {
2361
+ // we use the spPost method to post the request created by cloning our current instance IItem using
2362
+ // the Item factory and adding the path &quot;recycle&quot; to the end. Url will look like .../items/getById(2)/recycle
2363
+ return spPost&lt;string&gt;(this.clone(Item, &quot;recycle&quot;));
2364
+ }
2365
+ </code></pre>
2366
+ <h2 id="augment-using-selective-imports">Augment Using Selective Imports<a class="headerlink" href="#augment-using-selective-imports" title="Permanent link">&para;</a></h2>
2367
+ <p>To understand is how to extend functionality within the selective imports structures look at <a href="https://github.com/pnp/pnpjs/blob/main/packages/sp/items/list.ts">list.ts</a> file in the items submodule. Here you can see the code below, with extra comments to explain what is happening. Again, you will see this pattern repeated throughout the library so there are many examples available.</p>
2368
+ <pre><code class="language-ts">// import the addProp helper
2369
+ import { addProp } from &quot;@pnp/queryable&quot;;
2370
+ // import the _List concrete class from the types module (not the index!)
2371
+ import { _List } from &quot;../lists/types&quot;;
2372
+ // import the interface and factory we are going to add to the List
2373
+ import { Items, IItems } from &quot;./types&quot;;
2374
+
2375
+ // This module declaration fixes up the types, allowing .items to appear in intellisense
2376
+ // when you import &quot;@pnp/sp/items/list&quot;;
2377
+ declare module &quot;../lists/types&quot; {
2378
+ // we need to extend the concrete type
2379
+ interface _List {
2380
+ readonly items: IItems;
2381
+ }
2382
+ // we need to extend the interface
2383
+ // this may not be strictly necessary as the IList interface extends _List so it
2384
+ // should pick up the same additions, but we have seen in some cases this does seem
2385
+ // to be required. So we include it for safety as it will all be removed during
2386
+ // transpilation we don't need to care about the extra code
2387
+ interface IList {
2388
+ readonly items: IItems;
2389
+ }
2390
+ }
2391
+
2392
+ // finally we add the property to the _List class
2393
+ // this method call says add a property to _List named &quot;items&quot; and that property returns a result using the Items factory
2394
+ // The factory will be called with &quot;this&quot; when the property is accessed. If needed there is a fourth parameter to append additional path
2395
+ // information to the property url
2396
+ addProp(_List, &quot;items&quot;, Items);
2397
+ </code></pre>
2398
+ <h2 id="general-rules-for-extending-pnpjs">General Rules for Extending PnPjs<a class="headerlink" href="#general-rules-for-extending-pnpjs" title="Permanent link">&para;</a></h2>
2399
+ <ul>
2400
+ <li>Only expose interfaces to consumers</li>
2401
+ <li>Use the factory functions except in very special cases</li>
2402
+ <li>Look for other properties and methods as examples</li>
2403
+ <li>Simple is always preferable, but not always possible - use your best judgement</li>
2404
+ <li>If you find yourself writing a ton of code to solve a problem you think should be easy, ask</li>
2405
+ <li>If you find yourself deep within the core classes or odata library trying to make a change, ask - changes to the core classes are rarely needed</li>
2406
+ </ul>
2407
+ <h2 id="next-steps">Next Steps<a class="headerlink" href="#next-steps" title="Permanent link">&para;</a></h2>
2408
+ <p>Now that you have extended the library you need to <a href="../debug-tests/">write a test</a> to cover it!</p>
2409
+
2410
+
2411
+
2412
+
2413
+
2414
+
2415
+
2416
+ </article>
2417
+ </div>
2418
+ </div>
2419
+ </main>
2420
+
2421
+
2422
+ <footer class="md-footer">
2423
+
2424
+ <div class="md-footer-nav">
2425
+ <nav class="md-footer-nav__inner md-grid" aria-label="Footer">
2426
+
2427
+ <a href="../debugging/" class="md-footer-nav__link md-footer-nav__link--prev" rel="prev">
2428
+ <div class="md-footer-nav__button md-icon">
2429
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11h12z"/></svg>
2430
+ </div>
2431
+ <div class="md-footer-nav__title">
2432
+ <div class="md-ellipsis">
2433
+ <span class="md-footer-nav__direction">
2434
+ Previous
2435
+ </span>
2436
+ Debugging
2437
+ </div>
2438
+ </div>
2439
+ </a>
2440
+
2441
+
2442
+ <a href="../debug-tests/" class="md-footer-nav__link md-footer-nav__link--next" rel="next">
2443
+ <div class="md-footer-nav__title">
2444
+ <div class="md-ellipsis">
2445
+ <span class="md-footer-nav__direction">
2446
+ Next
2447
+ </span>
2448
+ Writing Tests
2449
+ </div>
2450
+ </div>
2451
+ <div class="md-footer-nav__button md-icon">
2452
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M4 11v2h12l-5.5 5.5 1.42 1.42L19.84 12l-7.92-7.92L10.5 5.5 16 11H4z"/></svg>
2453
+ </div>
2454
+ </a>
2455
+
2456
+ </nav>
2457
+ </div>
2458
+
2459
+ <div class="md-footer-meta md-typeset">
2460
+ <div class="md-footer-meta__inner md-grid">
2461
+ <div class="md-footer-copyright">
2462
+
2463
+ Made with
2464
+ <a href="https://squidfunk.github.io/mkdocs-material/" target="_blank" rel="noopener">
2465
+ Material for MkDocs
2466
+ </a>
2467
+ </div>
2468
+
2469
+ <div class="md-footer-social">
2470
+
2471
+
2472
+
2473
+
2474
+
2475
+
2476
+ <a href="https://twitter.com/m365pnpjs" target="_blank" rel="noopener" title="twitter.com" class="md-footer-social__link">
2477
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M459.37 151.716c.325 4.548.325 9.097.325 13.645 0 138.72-105.583 298.558-298.558 298.558-59.452 0-114.68-17.219-161.137-47.106 8.447.974 16.568 1.299 25.34 1.299 49.055 0 94.213-16.568 130.274-44.832-46.132-.975-84.792-31.188-98.112-72.772 6.498.974 12.995 1.624 19.818 1.624 9.421 0 18.843-1.3 27.614-3.573-48.081-9.747-84.143-51.98-84.143-102.985v-1.299c13.969 7.797 30.214 12.67 47.431 13.319-28.264-18.843-46.781-51.005-46.781-87.391 0-19.492 5.197-37.36 14.294-52.954 51.655 63.675 129.3 105.258 216.365 109.807-1.624-7.797-2.599-15.918-2.599-24.04 0-57.828 46.782-104.934 104.934-104.934 30.213 0 57.502 12.67 76.67 33.137 23.715-4.548 46.456-13.32 66.599-25.34-7.798 24.366-24.366 44.833-46.132 57.827 21.117-2.273 41.584-8.122 60.426-16.243-14.292 20.791-32.161 39.308-52.628 54.253z"/></svg>
2478
+ </a>
2479
+
2480
+
2481
+
2482
+
2483
+
2484
+
2485
+ <a href="http://aka.ms/sppnp-videos" target="_blank" rel="noopener" title="aka.ms" class="md-footer-social__link">
2486
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><path d="M549.655 124.083c-6.281-23.65-24.787-42.276-48.284-48.597C458.781 64 288 64 288 64S117.22 64 74.629 75.486c-23.497 6.322-42.003 24.947-48.284 48.597-11.412 42.867-11.412 132.305-11.412 132.305s0 89.438 11.412 132.305c6.281 23.65 24.787 41.5 48.284 47.821C117.22 448 288 448 288 448s170.78 0 213.371-11.486c23.497-6.321 42.003-24.171 48.284-47.821 11.412-42.867 11.412-132.305 11.412-132.305s0-89.438-11.412-132.305zm-317.51 213.508V175.185l142.739 81.205-142.739 81.201z"/></svg>
2487
+ </a>
2488
+
2489
+
2490
+
2491
+
2492
+
2493
+
2494
+ <a href="https://aka.ms/sppnp" target="_blank" rel="noopener" title="aka.ms" class="md-footer-social__link">
2495
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M0 32h214.6v214.6H0V32zm233.4 0H448v214.6H233.4V32zM0 265.4h214.6V480H0V265.4zm233.4 0H448V480H233.4V265.4z"/></svg>
2496
+ </a>
2497
+
2498
+ </div>
2499
+
2500
+ </div>
2501
+ </div>
2502
+ </footer>
2503
+
2504
+ </div>
2505
+
2506
+ <script src="../../assets/javascripts/vendor.77e55a48.min.js"></script>
2507
+ <script src="../../assets/javascripts/bundle.9554a270.min.js"></script><script id="__lang" type="application/json">{"clipboard.copy": "Copy to clipboard", "clipboard.copied": "Copied to clipboard", "search.config.lang": "en", "search.config.pipeline": "trimmer, stopWordFilter", "search.config.separator": "[\\s\\-]+", "search.result.placeholder": "Type to start searching", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.term.missing": "Missing"}</script>
2508
+
2509
+ <script>
2510
+ app = initialize({
2511
+ base: "../..",
2512
+ features: [],
2513
+ search: Object.assign({
2514
+ worker: "../../assets/javascripts/worker/search.4ac00218.min.js"
2515
+ }, typeof search !== "undefined" && search)
2516
+ })
2517
+ </script>
2518
+
2519
+
2520
+ </body>
2521
+ </html>