@pnp/cli-microsoft365 6.9.0-beta.f6054b4 → 6.10.0-beta.05cab2f

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (389) hide show
  1. package/.devcontainer/Dockerfile +12 -19
  2. package/.devcontainer/devcontainer.json +24 -17
  3. package/Dockerfile +3 -1
  4. package/README.md +7 -5
  5. package/dist/Auth.js +2 -8
  6. package/dist/AuthServer.js +2 -4
  7. package/dist/Command.js +1 -1
  8. package/dist/cli/Cli.js +25 -10
  9. package/dist/m365/aad/commands/app/app-add.js +258 -249
  10. package/dist/m365/aad/commands/app/app-get.js +65 -62
  11. package/dist/m365/aad/commands/app/app-remove.js +22 -23
  12. package/dist/m365/aad/commands/app/app-role-add.js +35 -34
  13. package/dist/m365/aad/commands/app/app-role-list.js +22 -23
  14. package/dist/m365/aad/commands/app/app-role-remove.js +76 -73
  15. package/dist/m365/aad/commands/app/app-set.js +103 -103
  16. package/dist/m365/aad/commands/approleassignment/approleassignment-add.js +16 -14
  17. package/dist/m365/aad/commands/approleassignment/approleassignment-list.js +43 -52
  18. package/dist/m365/aad/commands/approleassignment/approleassignment-remove.js +20 -16
  19. package/dist/m365/aad/commands/o365group/o365group-add.js +40 -37
  20. package/dist/m365/aad/commands/o365group/o365group-conversation-post-list.js +7 -6
  21. package/dist/m365/aad/commands/o365group/o365group-list.js +6 -11
  22. package/dist/m365/aad/commands/o365group/o365group-recyclebinitem-clear.js +7 -8
  23. package/dist/m365/aad/commands/o365group/o365group-recyclebinitem-restore.js +23 -24
  24. package/dist/m365/aad/commands/o365group/o365group-set.js +15 -20
  25. package/dist/m365/aad/commands/o365group/o365group-teamify.js +15 -16
  26. package/dist/m365/aad/commands/o365group/o365group-user-list.js +17 -10
  27. package/dist/m365/aad/commands/o365group/o365group-user-set.js +17 -10
  28. package/dist/m365/aad/commands/policy/policy-list.js +12 -13
  29. package/dist/m365/aad/commands/siteclassification/siteclassification-enable.js +1 -3
  30. package/dist/m365/aad/commands/siteclassification/siteclassification-set.js +19 -20
  31. package/dist/m365/aad/commands/sp/sp-add.js +22 -23
  32. package/dist/m365/aad/commands/sp/sp-get.js +22 -23
  33. package/dist/m365/aad/commands/sp/sp-list.js +78 -0
  34. package/dist/m365/aad/commands.js +1 -0
  35. package/dist/m365/app/commands/app-open.js +4 -14
  36. package/dist/m365/base/AzmgmtItemsListCommand.js +31 -33
  37. package/dist/m365/booking/commands/business/business-get.js +14 -15
  38. package/dist/m365/cli/commands/cli-issue.js +4 -10
  39. package/dist/m365/cli/commands/cli-reconsent.js +2 -8
  40. package/dist/m365/cli/commands/config/config-set.js +1 -2
  41. package/dist/m365/commands/docs.js +2 -8
  42. package/dist/m365/commands/login.js +20 -0
  43. package/dist/m365/file/commands/convert/convert-pdf.js +147 -143
  44. package/dist/m365/file/commands/file-add.js +87 -93
  45. package/dist/m365/file/commands/file-list.js +49 -55
  46. package/dist/m365/flow/commands/flow-list.js +30 -12
  47. package/dist/m365/flow/commands/flow-remove.js +2 -3
  48. package/dist/m365/flow/commands/run/run-resubmit.js +11 -10
  49. package/dist/m365/onedrive/commands/onedrive-list.js +21 -32
  50. package/dist/m365/outlook/commands/message/message-list.js +18 -23
  51. package/dist/m365/outlook/commands/message/message-move.js +15 -20
  52. package/dist/m365/pa/commands/app/app-export.js +3 -4
  53. package/dist/m365/pa/commands/app/app-get.js +11 -9
  54. package/dist/m365/pa/commands/app/app-remove.js +1 -1
  55. package/dist/m365/pa/commands/pcf/pcf-init.js +1 -2
  56. package/dist/m365/pa/commands/solution/solution-init.js +1 -2
  57. package/dist/m365/pa/commands/solution/solution-reference-add.js +1 -2
  58. package/dist/m365/planner/commands/bucket/bucket-add.js +15 -13
  59. package/dist/m365/planner/commands/bucket/bucket-get.js +27 -28
  60. package/dist/m365/planner/commands/bucket/bucket-list.js +15 -13
  61. package/dist/m365/planner/commands/bucket/bucket-remove.js +33 -34
  62. package/dist/m365/planner/commands/bucket/bucket-set.js +33 -34
  63. package/dist/m365/planner/commands/plan/plan-add.js +49 -52
  64. package/dist/m365/planner/commands/plan/plan-set.js +19 -20
  65. package/dist/m365/planner/commands/task/task-add.js +75 -78
  66. package/dist/m365/planner/commands/task/task-checklistitem-add.js +11 -10
  67. package/dist/m365/planner/commands/task/task-checklistitem-remove.js +10 -8
  68. package/dist/m365/planner/commands/task/task-get.js +53 -56
  69. package/dist/m365/planner/commands/task/task-list.js +23 -24
  70. package/dist/m365/planner/commands/task/task-reference-add.js +11 -10
  71. package/dist/m365/planner/commands/task/task-reference-remove.js +13 -14
  72. package/dist/m365/planner/commands/task/task-remove.js +44 -48
  73. package/dist/m365/planner/commands/task/task-set.js +83 -87
  74. package/dist/m365/pp/commands/managementapp/managementapp-add.js +19 -20
  75. package/dist/m365/purview/commands/retentionevent/retentionevent-add.js +3 -8
  76. package/dist/m365/purview/commands/retentionevent/retentionevent-get.js +1 -6
  77. package/dist/m365/purview/commands/retentionevent/retentionevent-list.js +1 -6
  78. package/dist/m365/purview/commands/retentionevent/retentionevent-remove.js +1 -6
  79. package/dist/m365/purview/commands/retentioneventtype/retentioneventtype-add.js +1 -6
  80. package/dist/m365/purview/commands/retentioneventtype/retentioneventtype-get.js +1 -6
  81. package/dist/m365/purview/commands/retentioneventtype/retentioneventtype-list.js +1 -6
  82. package/dist/m365/purview/commands/retentioneventtype/retentioneventtype-remove.js +1 -6
  83. package/dist/m365/purview/commands/retentioneventtype/retentioneventtype-set.js +1 -6
  84. package/dist/m365/purview/commands/retentionlabel/retentionlabel-add.js +0 -5
  85. package/dist/m365/purview/commands/retentionlabel/retentionlabel-get.js +0 -5
  86. package/dist/m365/purview/commands/retentionlabel/retentionlabel-list.js +0 -5
  87. package/dist/m365/purview/commands/retentionlabel/retentionlabel-remove.js +19 -22
  88. package/dist/m365/purview/commands/retentionlabel/retentionlabel-set.js +0 -5
  89. package/dist/m365/search/commands/externalconnection/externalconnection-remove.js +35 -34
  90. package/dist/m365/spfx/commands/project/JsonRule.js +1 -1
  91. package/dist/m365/spfx/commands/project/project-doctor/doctor-1.17.3.js +25 -0
  92. package/dist/m365/spfx/commands/project/project-doctor/doctor-1.17.4.js +25 -0
  93. package/dist/m365/spfx/commands/project/project-doctor/doctor-1.18.0-beta.1.js +23 -0
  94. package/dist/m365/spfx/commands/project/project-doctor.js +4 -1
  95. package/dist/m365/spfx/commands/project/project-externalize/rules/DynamicRule.js +59 -51
  96. package/dist/m365/spfx/commands/project/project-upgrade/rules/FN001022_DEP_office_ui_fabric_react.js +2 -2
  97. package/dist/m365/spfx/commands/project/project-upgrade/rules/FN002027_DEVDEP_fluentui_react.js +14 -0
  98. package/dist/m365/spfx/commands/project/project-upgrade/rules/FN021003_PKG_engines_node.js +1 -0
  99. package/dist/m365/spfx/commands/project/project-upgrade/upgrade-1.17.3.js +59 -0
  100. package/dist/m365/spfx/commands/project/project-upgrade/upgrade-1.17.4.js +55 -0
  101. package/dist/m365/spfx/commands/project/project-upgrade/upgrade-1.18.0-beta.1.js +61 -0
  102. package/dist/m365/spfx/commands/project/project-upgrade.js +18 -13
  103. package/dist/m365/spfx/commands/spfx-doctor.js +45 -0
  104. package/dist/m365/spo/commands/app/app-teamspackage-download.js +17 -24
  105. package/dist/m365/spo/commands/applicationcustomizer/applicationcustomizer-set.js +154 -0
  106. package/dist/m365/spo/commands/apppage/apppage-set.js +1 -1
  107. package/dist/m365/spo/commands/commandset/commandset-set.js +11 -2
  108. package/dist/m365/spo/commands/contenttype/contenttype-field-set.js +65 -94
  109. package/dist/m365/spo/commands/customaction/customaction-clear.js +4 -12
  110. package/dist/m365/spo/commands/customaction/customaction-remove.js +12 -23
  111. package/dist/m365/spo/commands/customaction/customaction-set.js +21 -29
  112. package/dist/m365/spo/commands/file/file-add.js +133 -133
  113. package/dist/m365/spo/commands/file/file-checkout-undo.js +119 -0
  114. package/dist/m365/spo/commands/file/file-rename.js +11 -9
  115. package/dist/m365/spo/commands/file/file-retentionlabel-ensure.js +2 -2
  116. package/dist/m365/spo/commands/file/file-roleassignment-add.js +41 -61
  117. package/dist/m365/spo/commands/file/file-roleassignment-remove.js +3 -0
  118. package/dist/m365/spo/commands/file/file-roleinheritance-break.js +3 -0
  119. package/dist/m365/spo/commands/file/file-roleinheritance-reset.js +3 -0
  120. package/dist/m365/spo/commands/file/file-sharinginfo-get.js +23 -21
  121. package/dist/m365/spo/commands/file/file-version-clear.js +1 -1
  122. package/dist/m365/spo/commands/file/file-version-remove.js +1 -1
  123. package/dist/m365/spo/commands/file/file-version-restore.js +1 -1
  124. package/dist/m365/spo/commands/folder/folder-remove.js +30 -28
  125. package/dist/m365/spo/commands/folder/folder-roleassignment-add.js +3 -3
  126. package/dist/m365/spo/commands/folder/folder-roleassignment-remove.js +1 -1
  127. package/dist/m365/spo/commands/group/group-member-add.js +17 -16
  128. package/dist/m365/spo/commands/group/group-set.js +20 -20
  129. package/dist/m365/spo/commands/homesite/homesite-remove.js +1 -1
  130. package/dist/m365/spo/commands/hubsite/hubsite-get.js +33 -31
  131. package/dist/m365/spo/commands/hubsite/hubsite-list.js +18 -29
  132. package/dist/m365/spo/commands/hubsite/hubsite-unregister.js +3 -0
  133. package/dist/m365/spo/commands/list/list-add.js +1 -1
  134. package/dist/m365/spo/commands/list/list-contenttype-default-set.js +1 -1
  135. package/dist/m365/spo/commands/list/list-roleassignment-add.js +24 -69
  136. package/dist/m365/spo/commands/list/list-roleassignment-remove.js +33 -38
  137. package/dist/m365/spo/commands/list/list-sensitivitylabel-ensure.js +137 -0
  138. package/dist/m365/spo/commands/list/list-view-field-add.js +12 -10
  139. package/dist/m365/spo/commands/list/list-view-field-remove.js +12 -10
  140. package/dist/m365/spo/commands/list/list-view-field-set.js +12 -10
  141. package/dist/m365/spo/commands/list/list-view-remove.js +3 -0
  142. package/dist/m365/spo/commands/listitem/listitem-roleassignment-add.js +41 -61
  143. package/dist/m365/spo/commands/listitem/listitem-roleassignment-remove.js +71 -74
  144. package/dist/m365/spo/commands/listitem/listitem-roleinheritance-break.js +36 -34
  145. package/dist/m365/spo/commands/listitem/listitem-roleinheritance-reset.js +32 -30
  146. package/dist/m365/spo/commands/navigation/navigation-node-remove.js +24 -22
  147. package/dist/m365/spo/commands/orgassetslibrary/orgassetslibrary-remove.js +29 -27
  148. package/dist/m365/spo/commands/orgnewssite/orgnewssite-remove.js +26 -24
  149. package/dist/m365/spo/commands/page/page-clientsidewebpart-add.js +34 -40
  150. package/dist/m365/spo/commands/page/page-remove.js +33 -31
  151. package/dist/m365/spo/commands/roledefinition/roledefinition-remove.js +25 -23
  152. package/dist/m365/spo/commands/site/site-apppermission-add.js +3 -3
  153. package/dist/m365/spo/commands/site/site-set.js +10 -2
  154. package/dist/m365/spo/commands/sitedesign/sitedesign-task-remove.js +23 -21
  155. package/dist/m365/spo/commands/sitescript/sitescript-remove.js +24 -22
  156. package/dist/m365/spo/commands/spo-search.js +7 -15
  157. package/dist/m365/spo/commands/storageentity/storageentity-remove.js +29 -27
  158. package/dist/m365/spo/commands/tenant/tenant-appcatalog-add.js +12 -15
  159. package/dist/m365/spo/commands/tenant/tenant-applicationcustomizer-set.js +234 -0
  160. package/dist/m365/spo/commands/tenant/tenant-commandset-list.js +50 -0
  161. package/dist/m365/spo/commands/tenant/tenant-commandset-set.js +1 -1
  162. package/dist/m365/spo/commands/tenant/tenant-recyclebinitem-remove.js +48 -48
  163. package/dist/m365/spo/commands.js +5 -0
  164. package/dist/m365/teams/commands/app/app-install.js +23 -21
  165. package/dist/m365/teams/commands/app/app-remove.js +3 -0
  166. package/dist/m365/teams/commands/app/app-uninstall.js +3 -0
  167. package/dist/m365/teams/commands/app/app-update.js +15 -16
  168. package/dist/m365/teams/commands/channel/channel-add.js +40 -39
  169. package/dist/m365/teams/commands/channel/channel-get.js +23 -25
  170. package/dist/m365/teams/commands/channel/channel-list.js +6 -7
  171. package/dist/m365/teams/commands/channel/channel-member-add.js +61 -60
  172. package/dist/m365/teams/commands/channel/channel-member-list.js +20 -22
  173. package/dist/m365/teams/commands/channel/channel-member-remove.js +43 -48
  174. package/dist/m365/teams/commands/channel/channel-member-set.js +36 -39
  175. package/dist/m365/teams/commands/channel/channel-remove.js +4 -1
  176. package/dist/m365/teams/commands/chat/chat-get.js +4 -4
  177. package/dist/m365/teams/commands/chat/chat-message-send.js +4 -4
  178. package/dist/m365/teams/commands/funsettings/funsettings-list.js +3 -0
  179. package/dist/m365/teams/commands/funsettings/funsettings-set.js +3 -0
  180. package/dist/m365/teams/commands/tab/tab-get.js +34 -37
  181. package/dist/m365/teams/commands/team/team-archive.js +6 -7
  182. package/dist/m365/teams/commands/team/team-get.js +6 -7
  183. package/dist/m365/teams/commands/team/team-list.js +9 -11
  184. package/dist/m365/teams/commands/team/team-remove.js +6 -7
  185. package/dist/m365/teams/commands/team/team-unarchive.js +6 -7
  186. package/dist/m365/teams/commands/user/user-app-list.js +13 -11
  187. package/dist/m365/teams/commands/user/user-list.js +7 -4
  188. package/dist/m365/tenant/commands/security/security-alerts-list.js +25 -26
  189. package/dist/m365/tenant/commands/serviceannouncement/serviceannouncement-health-list.js +13 -14
  190. package/dist/m365/todo/commands/list/list-remove.js +39 -36
  191. package/dist/m365/todo/commands/list/list-set.js +16 -14
  192. package/dist/m365/todo/commands/task/task-add.js +14 -14
  193. package/dist/m365/util/commands/accesstoken/accesstoken-get.js +10 -7
  194. package/dist/settingsNames.js +0 -1
  195. package/dist/utils/browserUtil.js +23 -0
  196. package/dist/utils/md.js +1 -3
  197. package/dist/utils/spo.js +74 -0
  198. package/docs/docs/_clisettings.mdx +17 -0
  199. package/docs/docs/cmd/_global.mdx +1 -1
  200. package/docs/docs/cmd/aad/app/app-add.mdx +113 -0
  201. package/docs/docs/cmd/aad/app/app-get.mdx +217 -0
  202. package/docs/docs/cmd/aad/app/app-list.mdx +21 -0
  203. package/docs/docs/cmd/aad/app/app-role-add.mdx +4 -0
  204. package/docs/docs/cmd/aad/app/app-role-list.mdx +63 -0
  205. package/docs/docs/cmd/aad/app/app-role-remove.mdx +4 -0
  206. package/docs/docs/cmd/aad/app/app-set.mdx +4 -0
  207. package/docs/docs/cmd/aad/approleassignment/approleassignment-add.mdx +61 -0
  208. package/docs/docs/cmd/aad/approleassignment/approleassignment-list.mdx +59 -0
  209. package/docs/docs/cmd/aad/approleassignment/approleassignment-remove.mdx +4 -0
  210. package/docs/docs/cmd/aad/group/group-get.mdx +24 -0
  211. package/docs/docs/cmd/aad/group/group-list.mdx +98 -0
  212. package/docs/docs/cmd/aad/groupsetting/groupsetting-add.mdx +114 -0
  213. package/docs/docs/cmd/aad/groupsetting/groupsetting-get.mdx +115 -0
  214. package/docs/docs/cmd/aad/groupsetting/groupsetting-list.mdx +115 -0
  215. package/docs/docs/cmd/aad/groupsetting/groupsetting-remove.mdx +4 -0
  216. package/docs/docs/cmd/aad/groupsetting/groupsetting-set.mdx +4 -0
  217. package/docs/docs/cmd/aad/groupsettingtemplate/groupsettingtemplate-get.mdx +63 -0
  218. package/docs/docs/cmd/aad/groupsettingtemplate/groupsettingtemplate-list.mdx +63 -0
  219. package/docs/docs/cmd/aad/o365group/o365group-add.mdx +122 -0
  220. package/docs/docs/cmd/aad/o365group/o365group-conversation-list.mdx +68 -0
  221. package/docs/docs/cmd/aad/o365group/o365group-conversation-post-list.mdx +77 -0
  222. package/docs/docs/cmd/aad/o365group/o365group-get.mdx +122 -0
  223. package/docs/docs/cmd/aad/o365group/o365group-list.mdx +99 -0
  224. package/docs/docs/cmd/aad/o365group/o365group-recyclebinitem-clear.mdx +4 -0
  225. package/docs/docs/cmd/aad/o365group/o365group-recyclebinitem-list.mdx +96 -0
  226. package/docs/docs/cmd/aad/o365group/o365group-recyclebinitem-remove.mdx +4 -0
  227. package/docs/docs/cmd/aad/o365group/o365group-recyclebinitem-restore.mdx +4 -0
  228. package/docs/docs/cmd/aad/o365group/o365group-remove.mdx +4 -0
  229. package/docs/docs/cmd/aad/o365group/o365group-renew.mdx +4 -0
  230. package/docs/docs/cmd/aad/o365group/o365group-report-activitycounts.mdx +48 -0
  231. package/docs/docs/cmd/aad/o365group/o365group-report-activitydetail.mdx +60 -0
  232. package/docs/docs/cmd/aad/o365group/o365group-report-activityfilecounts.mdx +46 -0
  233. package/docs/docs/cmd/aad/o365group/o365group-report-activitygroupcounts.mdx +46 -0
  234. package/docs/docs/cmd/aad/o365group/o365group-report-activitystorage.mdx +46 -0
  235. package/docs/docs/cmd/aad/o365group/o365group-set.mdx +4 -0
  236. package/docs/docs/cmd/aad/o365group/o365group-teamify.mdx +4 -0
  237. package/docs/docs/cmd/aad/o365group/o365group-user-add.mdx +4 -0
  238. package/docs/docs/cmd/aad/o365group/o365group-user-list.mdx +56 -0
  239. package/docs/docs/cmd/aad/o365group/o365group-user-remove.mdx +4 -0
  240. package/docs/docs/cmd/aad/o365group/o365group-user-set.mdx +8 -4
  241. package/docs/docs/cmd/aad/oauth2grant/oauth2grant-add.mdx +4 -0
  242. package/docs/docs/cmd/aad/oauth2grant/oauth2grant-list.mdx +59 -0
  243. package/docs/docs/cmd/aad/oauth2grant/oauth2grant-remove.mdx +4 -0
  244. package/docs/docs/cmd/aad/oauth2grant/oauth2grant-set.mdx +4 -0
  245. package/docs/docs/cmd/aad/policy/policy-list.mdx +77 -0
  246. package/docs/docs/cmd/aad/siteclassification/siteclassification-disable.mdx +4 -0
  247. package/docs/docs/cmd/aad/siteclassification/siteclassification-enable.mdx +4 -0
  248. package/docs/docs/cmd/aad/siteclassification/siteclassification-get.mdx +57 -0
  249. package/docs/docs/cmd/aad/siteclassification/siteclassification-set.mdx +4 -0
  250. package/docs/docs/cmd/aad/sp/sp-add.mdx +136 -0
  251. package/docs/docs/cmd/aad/sp/sp-get.mdx +166 -0
  252. package/docs/docs/cmd/aad/sp/sp-list.mdx +162 -0
  253. package/docs/docs/cmd/aad/user/user-get.mdx +75 -0
  254. package/docs/docs/cmd/aad/user/user-guest-add.mdx +23 -0
  255. package/docs/docs/cmd/aad/user/user-hibp.mdx +82 -0
  256. package/docs/docs/cmd/aad/user/user-license-add.mdx +2 -2
  257. package/docs/docs/cmd/aad/user/user-license-remove.mdx +2 -2
  258. package/docs/docs/cmd/aad/user/user-list.mdx +52 -0
  259. package/docs/docs/cmd/aad/user/user-password-validate.mdx +67 -0
  260. package/docs/docs/cmd/aad/user/user-signin-list.mdx +131 -0
  261. package/docs/docs/cmd/flow/flow-list.mdx +15 -0
  262. package/docs/docs/cmd/login.mdx +39 -0
  263. package/docs/docs/cmd/pa/app/app-get.mdx +1 -1
  264. package/docs/docs/cmd/pa/app/app-list.mdx +1 -1
  265. package/docs/docs/cmd/pp/aibuildermodel/aibuildermodel-get.mdx +1 -1
  266. package/docs/docs/cmd/pp/aibuildermodel/aibuildermodel-list.mdx +1 -1
  267. package/docs/docs/cmd/pp/card/card-clone.mdx +1 -1
  268. package/docs/docs/cmd/pp/card/card-get.mdx +1 -1
  269. package/docs/docs/cmd/pp/card/card-list.mdx +1 -1
  270. package/docs/docs/cmd/pp/chatbot/chatbot-get.mdx +1 -1
  271. package/docs/docs/cmd/pp/chatbot/chatbot-list.mdx +1 -1
  272. package/docs/docs/cmd/pp/dataverse/dataverse-table-get.mdx +1 -1
  273. package/docs/docs/cmd/pp/dataverse/dataverse-table-list.mdx +1 -1
  274. package/docs/docs/cmd/pp/dataverse/dataverse-table-remove.mdx +1 -1
  275. package/docs/docs/cmd/pp/dataverse/dataverse-table-row-list.mdx +1 -1
  276. package/docs/docs/cmd/pp/dataverse/dataverse-table-row-remove.mdx +1 -1
  277. package/docs/docs/cmd/purview/retentionevent/retentionevent-add.mdx +0 -6
  278. package/docs/docs/cmd/purview/retentionevent/retentionevent-get.mdx +0 -6
  279. package/docs/docs/cmd/purview/retentionevent/retentionevent-list.mdx +0 -7
  280. package/docs/docs/cmd/purview/retentionevent/retentionevent-remove.mdx +0 -6
  281. package/docs/docs/cmd/purview/retentioneventtype/retentioneventtype-add.mdx +0 -6
  282. package/docs/docs/cmd/purview/retentioneventtype/retentioneventtype-get.mdx +0 -6
  283. package/docs/docs/cmd/purview/retentioneventtype/retentioneventtype-list.mdx +0 -6
  284. package/docs/docs/cmd/purview/retentioneventtype/retentioneventtype-remove.mdx +0 -6
  285. package/docs/docs/cmd/purview/retentioneventtype/retentioneventtype-set.mdx +0 -6
  286. package/docs/docs/cmd/purview/retentionlabel/retentionlabel-add.mdx +0 -6
  287. package/docs/docs/cmd/purview/retentionlabel/retentionlabel-get.mdx +0 -6
  288. package/docs/docs/cmd/purview/retentionlabel/retentionlabel-list.mdx +0 -6
  289. package/docs/docs/cmd/purview/retentionlabel/retentionlabel-remove.mdx +0 -6
  290. package/docs/docs/cmd/purview/retentionlabel/retentionlabel-set.mdx +0 -6
  291. package/docs/docs/cmd/setup.mdx +2 -0
  292. package/docs/docs/cmd/spfx/project/project-upgrade.mdx +1 -1
  293. package/docs/docs/cmd/spo/applicationcustomizer/applicationcustomizer-set.mdx +72 -0
  294. package/docs/docs/cmd/spo/commandset/commandset-set.mdx +12 -3
  295. package/docs/docs/cmd/spo/file/file-checkout-undo.mdx +55 -0
  296. package/docs/docs/cmd/spo/file/file-retentionlabel-ensure.mdx +1 -1
  297. package/docs/docs/cmd/spo/folder/folder-retentionlabel-ensure.mdx +1 -1
  298. package/docs/docs/cmd/spo/list/list-sensitivitylabel-ensure.mdx +73 -0
  299. package/docs/docs/cmd/spo/site/site-add.mdx +35 -0
  300. package/docs/docs/cmd/spo/site/site-appcatalog-add.mdx +5 -1
  301. package/docs/docs/cmd/spo/site/site-appcatalog-list.mdx +14 -0
  302. package/docs/docs/cmd/spo/site/site-appcatalog-remove.mdx +4 -0
  303. package/docs/docs/cmd/spo/site/site-apppermission-add.mdx +68 -0
  304. package/docs/docs/cmd/spo/site/site-apppermission-get.mdx +55 -0
  305. package/docs/docs/cmd/spo/site/site-apppermission-list.mdx +55 -0
  306. package/docs/docs/cmd/spo/site/site-apppermission-remove.mdx +4 -0
  307. package/docs/docs/cmd/spo/site/site-apppermission-set.mdx +66 -0
  308. package/docs/docs/cmd/spo/site/site-chrome-set.mdx +4 -0
  309. package/docs/docs/cmd/spo/site/site-ensure.mdx +70 -0
  310. package/docs/docs/cmd/spo/site/site-get.mdx +179 -0
  311. package/docs/docs/cmd/spo/site/site-groupify.mdx +54 -0
  312. package/docs/docs/cmd/spo/site/site-hubsite-connect.mdx +4 -0
  313. package/docs/docs/cmd/spo/site/site-hubsite-disconnect.mdx +4 -0
  314. package/docs/docs/cmd/spo/site/site-hubsite-theme-sync.mdx +5 -1
  315. package/docs/docs/cmd/spo/site/site-inplacerecordsmanagement-set.mdx +4 -0
  316. package/docs/docs/cmd/spo/site/site-list.mdx +303 -0
  317. package/docs/docs/cmd/spo/site/site-recyclebinitem-list.mdx +80 -0
  318. package/docs/docs/cmd/spo/site/site-recyclebinitem-restore.mdx +4 -0
  319. package/docs/docs/cmd/spo/site/site-remove.mdx +4 -0
  320. package/docs/docs/cmd/spo/site/site-rename.mdx +92 -0
  321. package/docs/docs/cmd/spo/site/site-set.mdx +13 -0
  322. package/docs/docs/cmd/spo/sitedesign/sitedesign-add.mdx +116 -0
  323. package/docs/docs/cmd/spo/sitedesign/sitedesign-apply.mdx +125 -0
  324. package/docs/docs/cmd/spo/sitedesign/sitedesign-get.mdx +117 -0
  325. package/docs/docs/cmd/spo/sitedesign/sitedesign-list.mdx +94 -0
  326. package/docs/docs/cmd/spo/sitedesign/sitedesign-remove.mdx +4 -0
  327. package/docs/docs/cmd/spo/sitedesign/sitedesign-rights-grant.mdx +4 -0
  328. package/docs/docs/cmd/spo/sitedesign/sitedesign-rights-list.mdx +54 -0
  329. package/docs/docs/cmd/spo/sitedesign/sitedesign-rights-revoke.mdx +4 -0
  330. package/docs/docs/cmd/spo/sitedesign/sitedesign-run-list.mdx +66 -0
  331. package/docs/docs/cmd/spo/sitedesign/sitedesign-run-status-get.mdx +65 -0
  332. package/docs/docs/cmd/spo/sitedesign/sitedesign-set.mdx +117 -0
  333. package/docs/docs/cmd/spo/sitedesign/sitedesign-task-get.mdx +61 -0
  334. package/docs/docs/cmd/spo/sitedesign/sitedesign-task-list.mdx +60 -0
  335. package/docs/docs/cmd/spo/sitedesign/sitedesign-task-remove.mdx +4 -0
  336. package/docs/docs/cmd/spo/sitescript/sitescript-add.mdx +75 -0
  337. package/docs/docs/cmd/spo/sitescript/sitescript-get.mdx +62 -0
  338. package/docs/docs/cmd/spo/sitescript/sitescript-list.mdx +60 -0
  339. package/docs/docs/cmd/spo/sitescript/sitescript-remove.mdx +4 -0
  340. package/docs/docs/cmd/spo/sitescript/sitescript-set.mdx +63 -0
  341. package/docs/docs/cmd/spo/storageentity/storageentity-get.mdx +53 -0
  342. package/docs/docs/cmd/spo/storageentity/storageentity-list.mdx +54 -0
  343. package/docs/docs/cmd/spo/storageentity/storageentity-remove.mdx +4 -0
  344. package/docs/docs/cmd/spo/storageentity/storageentity-set.mdx +4 -0
  345. package/docs/docs/cmd/spo/tenant/tenant-appcatalog-add.mdx +4 -0
  346. package/docs/docs/cmd/spo/tenant/tenant-appcatalogurl-get.mdx +35 -0
  347. package/docs/docs/cmd/spo/tenant/tenant-applicationcustomizer-get.mdx +1 -1
  348. package/docs/docs/cmd/spo/tenant/tenant-applicationcustomizer-list.mdx +1 -1
  349. package/docs/docs/cmd/spo/tenant/tenant-applicationcustomizer-remove.mdx +1 -1
  350. package/docs/docs/cmd/spo/tenant/tenant-applicationcustomizer-set.mdx +90 -0
  351. package/docs/docs/cmd/spo/tenant/tenant-commandset-add.mdx +1 -1
  352. package/docs/docs/cmd/spo/tenant/tenant-commandset-get.mdx +2 -2
  353. package/docs/docs/cmd/spo/tenant/tenant-commandset-list.mdx +114 -0
  354. package/docs/docs/cmd/spo/tenant/tenant-commandset-remove.mdx +1 -1
  355. package/docs/docs/cmd/spo/tenant/tenant-commandset-set.mdx +2 -2
  356. package/docs/docs/cmd/spo/tenant/tenant-recyclebinitem-list.mdx +67 -0
  357. package/docs/docs/cmd/spo/tenant/tenant-recyclebinitem-remove.mdx +4 -0
  358. package/docs/docs/cmd/spo/tenant/tenant-recyclebinitem-restore.mdx +50 -0
  359. package/docs/docs/cmd/spo/tenant/tenant-settings-list.mdx +729 -0
  360. package/docs/docs/cmd/spo/tenant/tenant-settings-set.mdx +11 -0
  361. package/docs/docs/cmd/spo/theme/theme-apply.mdx +35 -0
  362. package/docs/docs/cmd/spo/theme/theme-get.mdx +74 -0
  363. package/docs/docs/cmd/spo/theme/theme-list.mdx +52 -0
  364. package/docs/docs/cmd/spo/theme/theme-remove.mdx +4 -0
  365. package/docs/docs/cmd/spo/theme/theme-set.mdx +4 -0
  366. package/docs/docs/cmd/spo/userprofile/userprofile-get.mdx +1 -1
  367. package/docs/docs/cmd/status.mdx +6 -3
  368. package/docs/docs/cmd/util/accesstoken/accesstoken-get.mdx +12 -2
  369. package/npm-shrinkwrap.json +362 -335
  370. package/package.json +20 -19
  371. package/dist/m365/aad/commands/approleassignment/AppRoleAssignment.js +0 -3
  372. package/dist/m365/aad/commands/approleassignment/ServicePrincipal.js +0 -3
  373. package/dist/m365/aad/commands/groupsetting/GroupSetting.js +0 -3
  374. package/dist/m365/aad/commands/groupsettingtemplate/GroupSettingTemplate.js +0 -3
  375. package/dist/m365/aad/commands/siteclassification/DirectorySetting.js +0 -10
  376. package/dist/m365/aad/commands/siteclassification/DirectorySettingTemplatesRsp.js +0 -3
  377. package/dist/m365/aad/commands/siteclassification/DirectorySettingValue.js +0 -3
  378. package/dist/m365/outlook/Message.js +0 -3
  379. package/dist/m365/spo/commands/site/SitePermission.js +0 -3
  380. package/dist/m365/teams/Channel.js +0 -3
  381. package/dist/m365/teams/ConversationMember.js +0 -3
  382. package/dist/m365/teams/Message.js +0 -3
  383. package/dist/m365/teams/Reply.js +0 -3
  384. package/dist/m365/teams/Tab.js +0 -3
  385. package/dist/m365/teams/Team.js +0 -3
  386. package/dist/m365/teams/TeamsApp.js +0 -3
  387. package/dist/m365/teams/TeamsAppInstallation.js +0 -3
  388. package/dist/m365/teams/TeamsTabConfiguration.js +0 -3
  389. package/dist/m365/teams/commands/Meeting.js +0 -3
@@ -119,20 +119,22 @@ class FileConvertPdfCommand extends GraphCommand_1.default {
119
119
  * @returns Web URL of the file to upload
120
120
  */
121
121
  getSourceFileUrl(logger, args, isAppOnlyAccessToken) {
122
- if (args.options.sourceFile.toLowerCase().startsWith('https://')) {
123
- return Promise.resolve(args.options.sourceFile);
124
- }
125
- if (this.verbose) {
126
- logger.logToStderr('Uploading local file temporarily for conversion...');
127
- }
128
- const driveUrl = `${this.resource}/v1.0/${isAppOnlyAccessToken ? 'drive/root' : 'me/drive/root'}`;
129
- // we need the original file extension because otherwise Graph won't be able
130
- // to convert the file to PDF
131
- this.sourceFileGraphUrl = `${driveUrl}:/${(0, uuid_1.v4)()}${path.extname(args.options.sourceFile)}`;
132
- if (this.debug) {
133
- logger.logToStderr(`Source is a local file. Uploading to ${this.sourceFileGraphUrl}...`);
134
- }
135
- return this.uploadFile(args.options.sourceFile, this.sourceFileGraphUrl);
122
+ return __awaiter(this, void 0, void 0, function* () {
123
+ if (args.options.sourceFile.toLowerCase().startsWith('https://')) {
124
+ return args.options.sourceFile;
125
+ }
126
+ if (this.verbose) {
127
+ logger.logToStderr('Uploading local file temporarily for conversion...');
128
+ }
129
+ const driveUrl = `${this.resource}/v1.0/${isAppOnlyAccessToken ? 'drive/root' : 'me/drive/root'}`;
130
+ // we need the original file extension because otherwise Graph won't be able
131
+ // to convert the file to PDF
132
+ this.sourceFileGraphUrl = `${driveUrl}:/${(0, uuid_1.v4)()}${path.extname(args.options.sourceFile)}`;
133
+ if (this.debug) {
134
+ logger.logToStderr(`Source is a local file. Uploading to ${this.sourceFileGraphUrl}...`);
135
+ }
136
+ return yield this.uploadFile(args.options.sourceFile, this.sourceFileGraphUrl);
137
+ });
136
138
  }
137
139
  /**
138
140
  * Uploads the specified local file to a document library using Microsoft Graph
@@ -141,18 +143,17 @@ class FileConvertPdfCommand extends GraphCommand_1.default {
141
143
  * @returns Absolute URL of the uploaded file
142
144
  */
143
145
  uploadFile(localFilePath, targetGraphFileUrl) {
144
- const requestOptions = {
145
- url: `${targetGraphFileUrl}:/createUploadSession`,
146
- headers: {
147
- accept: 'application/json;odata.metadata=none'
148
- },
149
- responseType: 'json'
150
- };
151
- return request_1.default
152
- .post(requestOptions)
153
- .then((res) => {
154
- const fileContents = fs.readFileSync(localFilePath);
146
+ return __awaiter(this, void 0, void 0, function* () {
155
147
  const requestOptions = {
148
+ url: `${targetGraphFileUrl}:/createUploadSession`,
149
+ headers: {
150
+ accept: 'application/json;odata.metadata=none'
151
+ },
152
+ responseType: 'json'
153
+ };
154
+ const res = yield request_1.default.post(requestOptions);
155
+ const fileContents = fs.readFileSync(localFilePath);
156
+ const requestOptionsPut = {
156
157
  url: res.uploadUrl,
157
158
  headers: {
158
159
  'x-anonymous': true,
@@ -163,9 +164,9 @@ class FileConvertPdfCommand extends GraphCommand_1.default {
163
164
  data: fileContents,
164
165
  responseType: 'json'
165
166
  };
166
- return request_1.default.put(requestOptions);
167
- })
168
- .then((res) => res.webUrl);
167
+ const resPut = yield request_1.default.put(requestOptionsPut);
168
+ return resPut.webUrl;
169
+ });
169
170
  }
170
171
  /**
171
172
  * Gets Graph's drive item URL for the specified file. If the user specified
@@ -186,21 +187,20 @@ class FileConvertPdfCommand extends GraphCommand_1.default {
186
187
  * @returns Graph's drive item URL for the specified file
187
188
  */
188
189
  getGraphFileUrl(logger, fileWebUrl, fileGraphUrl) {
189
- if (this.debug) {
190
- logger.logToStderr(`Resolving Graph drive item URL for ${fileWebUrl}`);
191
- }
192
- if (fileGraphUrl) {
190
+ return __awaiter(this, void 0, void 0, function* () {
193
191
  if (this.debug) {
194
- logger.logToStderr(`Returning previously resolved Graph drive item URL ${fileGraphUrl}`);
192
+ logger.logToStderr(`Resolving Graph drive item URL for ${fileWebUrl}`);
195
193
  }
196
- return Promise.resolve(fileGraphUrl);
197
- }
198
- const _url = url.parse(fileWebUrl);
199
- let siteId = '';
200
- let driveRelativeFileUrl = '';
201
- return this
202
- .getGraphSiteInfoFromFullUrl(_url.host, _url.path)
203
- .then(siteInfo => {
194
+ if (fileGraphUrl) {
195
+ if (this.debug) {
196
+ logger.logToStderr(`Returning previously resolved Graph drive item URL ${fileGraphUrl}`);
197
+ }
198
+ return fileGraphUrl;
199
+ }
200
+ const _url = url.parse(fileWebUrl);
201
+ let siteId = '';
202
+ let driveRelativeFileUrl = '';
203
+ const siteInfo = yield this.getGraphSiteInfoFromFullUrl(_url.host, _url.path);
204
204
  siteId = siteInfo.id;
205
205
  let siteRelativeFileUrl = _url.path.replace(siteInfo.serverRelativeUrl, '');
206
206
  // normalize site-relative URLs for root site collections and root sites
@@ -210,9 +210,7 @@ class FileConvertPdfCommand extends GraphCommand_1.default {
210
210
  const siteRelativeFileUrlChunks = siteRelativeFileUrl.split('/');
211
211
  driveRelativeFileUrl = `/${siteRelativeFileUrlChunks.slice(2).join('/')}`;
212
212
  // chunk 0 is empty because the URL starts with /
213
- return this.getDriveId(logger, siteId, siteRelativeFileUrlChunks[1]);
214
- })
215
- .then(driveId => {
213
+ const driveId = yield this.getDriveId(logger, siteId, siteRelativeFileUrlChunks[1]);
216
214
  const graphUrl = `${this.resource}/v1.0/sites/${siteId}/drives/${driveId}/root:${driveRelativeFileUrl}`;
217
215
  if (this.debug) {
218
216
  logger.logToStderr(`Resolved URL ${graphUrl}`);
@@ -228,10 +226,10 @@ class FileConvertPdfCommand extends GraphCommand_1.default {
228
226
  * @returns ID and server-relative URL of the site denoted by urlPath
229
227
  */
230
228
  getGraphSiteInfoFromFullUrl(hostName, urlPath) {
231
- const siteId = '';
232
- const urlChunks = urlPath.split('/');
233
- return new Promise((resolve, reject) => {
234
- this.getGraphSiteInfo(hostName, urlChunks, 0, siteId, resolve, reject);
229
+ return __awaiter(this, void 0, void 0, function* () {
230
+ const siteId = '';
231
+ const urlChunks = urlPath.split('/');
232
+ return yield this.getGraphSiteInfo(hostName, urlChunks, 0, siteId);
235
233
  });
236
234
  }
237
235
  /**
@@ -248,40 +246,45 @@ class FileConvertPdfCommand extends GraphCommand_1.default {
248
246
  * @param reject Callback method to call when resolving site info failed
249
247
  * @returns Graph site ID and server-relative URL of the site specified through chunks
250
248
  */
251
- getGraphSiteInfo(hostName, urlChunks, currentChunk, lastSiteId, resolve, reject) {
252
- let currentPath = urlChunks.slice(0, currentChunk + 1).join('/');
253
- if (currentPath.endsWith('/sites') ||
254
- currentPath.endsWith('/teams') ||
255
- currentPath.endsWith('/personal')) {
256
- return this.getGraphSiteInfo(hostName, urlChunks, ++currentChunk, '', resolve, reject);
257
- }
258
- if (!currentPath.startsWith('/')) {
259
- currentPath = '/' + currentPath;
260
- }
261
- const requestOptions = {
262
- url: `${this.resource}/v1.0/sites/${hostName}:${currentPath}?$select=id`,
263
- headers: {
264
- accept: 'application/json;odata.metadata=none'
265
- },
266
- responseType: 'json'
267
- };
268
- request_1.default
269
- .get(requestOptions)
270
- .then((res) => {
271
- this.getGraphSiteInfo(hostName, urlChunks, ++currentChunk, res.id, resolve, reject);
272
- }, err => {
273
- if (lastSiteId) {
274
- let serverRelativeUrl = `${urlChunks.slice(0, currentChunk).join('/')}`;
275
- if (!serverRelativeUrl.startsWith('/')) {
276
- serverRelativeUrl = '/' + serverRelativeUrl;
277
- }
278
- resolve({
279
- id: lastSiteId,
280
- serverRelativeUrl: serverRelativeUrl
281
- });
249
+ getGraphSiteInfo(hostName, urlChunks, currentChunk, lastSiteId) {
250
+ return __awaiter(this, void 0, void 0, function* () {
251
+ let currentPath = urlChunks.slice(0, currentChunk + 1).join('/');
252
+ if (currentPath.endsWith('/sites') ||
253
+ currentPath.endsWith('/teams') ||
254
+ currentPath.endsWith('/personal')) {
255
+ return yield this.getGraphSiteInfo(hostName, urlChunks, ++currentChunk, '');
256
+ }
257
+ if (!currentPath.startsWith('/')) {
258
+ currentPath = '/' + currentPath;
282
259
  }
283
- else {
284
- reject(err);
260
+ const requestOptions = {
261
+ url: `${this.resource}/v1.0/sites/${hostName}:${currentPath}?$select=id`,
262
+ headers: {
263
+ accept: 'application/json;odata.metadata=none'
264
+ },
265
+ responseType: 'json'
266
+ };
267
+ const getResult = (id, serverRelativeUrl) => {
268
+ return {
269
+ id,
270
+ serverRelativeUrl
271
+ };
272
+ };
273
+ try {
274
+ const res = yield request_1.default.get(requestOptions);
275
+ return yield this.getGraphSiteInfo(hostName, urlChunks, ++currentChunk, res.id);
276
+ }
277
+ catch (err) {
278
+ if (lastSiteId) {
279
+ let serverRelativeUrl = `${urlChunks.slice(0, currentChunk).join('/')}`;
280
+ if (!serverRelativeUrl.startsWith('/')) {
281
+ serverRelativeUrl = '/' + serverRelativeUrl;
282
+ }
283
+ return getResult(lastSiteId, serverRelativeUrl);
284
+ }
285
+ else {
286
+ throw err;
287
+ }
285
288
  }
286
289
  });
287
290
  }
@@ -292,24 +295,23 @@ class FileConvertPdfCommand extends GraphCommand_1.default {
292
295
  * @returns Graph drive ID of the specified document library
293
296
  */
294
297
  getDriveId(logger, graphSiteId, siteRelativeListUrl) {
295
- const requestOptions = {
296
- url: `${this.resource}/v1.0/sites/${graphSiteId}/drives?$select=webUrl,id`,
297
- headers: {
298
- accept: 'application/json;odata.metadata=none'
299
- },
300
- responseType: 'json'
301
- };
302
- return request_1.default
303
- .get(requestOptions)
304
- .then((res) => {
298
+ return __awaiter(this, void 0, void 0, function* () {
299
+ const requestOptions = {
300
+ url: `${this.resource}/v1.0/sites/${graphSiteId}/drives?$select=webUrl,id`,
301
+ headers: {
302
+ accept: 'application/json;odata.metadata=none'
303
+ },
304
+ responseType: 'json'
305
+ };
306
+ const res = yield request_1.default.get(requestOptions);
305
307
  if (this.debug) {
306
308
  logger.logToStderr(`Searching for drive with a URL ending with /${siteRelativeListUrl}...`);
307
309
  }
308
310
  const drive = res.value.find(d => d.webUrl.endsWith(`/${siteRelativeListUrl}`));
309
311
  if (!drive) {
310
- return Promise.reject('Drive not found');
312
+ throw 'Drive not found';
311
313
  }
312
- return Promise.resolve(drive.id);
314
+ return drive.id;
313
315
  });
314
316
  }
315
317
  /**
@@ -320,17 +322,19 @@ class FileConvertPdfCommand extends GraphCommand_1.default {
320
322
  * the file converted to PDF. The URL must be called anonymously
321
323
  */
322
324
  convertFile(logger, graphFileUrl) {
323
- if (this.verbose) {
324
- logger.logToStderr('Converting file...');
325
- }
326
- const requestOptions = {
327
- url: `${graphFileUrl}:/content?format=pdf`,
328
- headers: {
329
- accept: 'application/json;odata.metadata=none'
330
- },
331
- responseType: 'stream'
332
- };
333
- return request_1.default.get(requestOptions);
325
+ return __awaiter(this, void 0, void 0, function* () {
326
+ if (this.verbose) {
327
+ logger.logToStderr('Converting file...');
328
+ }
329
+ const requestOptions = {
330
+ url: `${graphFileUrl}:/content?format=pdf`,
331
+ headers: {
332
+ accept: 'application/json;odata.metadata=none'
333
+ },
334
+ responseType: 'stream'
335
+ };
336
+ return yield request_1.default.get(requestOptions);
337
+ });
334
338
  }
335
339
  /**
336
340
  * Writes the contents of the specified file stream to a local file
@@ -339,18 +343,19 @@ class FileConvertPdfCommand extends GraphCommand_1.default {
339
343
  * @param localFilePath Local file path where to store the file
340
344
  */
341
345
  writeFileToDisk(logger, fileResponse, localFilePath) {
342
- if (this.verbose) {
343
- logger.logToStderr(`Writing converted PDF file to ${localFilePath}...`);
344
- }
345
- return new Promise((resolve, reject) => {
346
- // write the downloaded file to disk
347
- const writer = fs.createWriteStream(localFilePath);
348
- fileResponse.data.pipe(writer);
349
- writer.on('error', err => {
350
- reject(err);
351
- });
352
- writer.on('close', () => {
353
- resolve();
346
+ return __awaiter(this, void 0, void 0, function* () {
347
+ if (this.verbose) {
348
+ logger.logToStderr(`Writing converted PDF file to ${localFilePath}...`);
349
+ }
350
+ yield new Promise((resolve, reject) => {
351
+ const writer = fs.createWriteStream(localFilePath);
352
+ fileResponse.data.pipe(writer);
353
+ writer.on('error', err => {
354
+ reject(err);
355
+ });
356
+ writer.on('close', () => {
357
+ resolve();
358
+ });
354
359
  });
355
360
  });
356
361
  }
@@ -364,21 +369,21 @@ class FileConvertPdfCommand extends GraphCommand_1.default {
364
369
  * @param targetFileUrl Web URL of the file to upload
365
370
  */
366
371
  uploadConvertedFileIfNecessary(logger, targetIsLocalFile, localFilePath, targetFileUrl) {
367
- // if the target was a local path, we're done.
368
- // Otherwise, upload the file to the specified URL
369
- if (targetIsLocalFile) {
370
- if (this.debug) {
371
- logger.logToStderr('Specified target is a local file. Not uploading.');
372
+ return __awaiter(this, void 0, void 0, function* () {
373
+ // if the target was a local path, we're done.
374
+ // Otherwise, upload the file to the specified URL
375
+ if (targetIsLocalFile) {
376
+ if (this.debug) {
377
+ logger.logToStderr('Specified target is a local file. Not uploading.');
378
+ }
379
+ return;
372
380
  }
373
- return Promise.resolve();
374
- }
375
- if (this.verbose) {
376
- logger.logToStderr(`Uploading converted PDF file to ${targetFileUrl}...`);
377
- }
378
- return this
379
- .getGraphFileUrl(logger, targetFileUrl, undefined)
380
- .then(targetGraphFileUrl => this.uploadFile(localFilePath, targetGraphFileUrl))
381
- .then(_ => Promise.resolve());
381
+ if (this.verbose) {
382
+ logger.logToStderr(`Uploading converted PDF file to ${targetFileUrl}...`);
383
+ }
384
+ const targetGraphFileUrl = yield this.getGraphFileUrl(logger, targetFileUrl, undefined);
385
+ yield this.uploadFile(localFilePath, targetGraphFileUrl);
386
+ });
382
387
  }
383
388
  /**
384
389
  * If the user specified local file to be converted to PDF, removes the file
@@ -389,20 +394,19 @@ class FileConvertPdfCommand extends GraphCommand_1.default {
389
394
  * @param sourceFileUrl Web URL of the temporary source file to delete
390
395
  */
391
396
  deleteRemoteSourceFileIfNecessary(logger, sourceIsLocalFile, sourceFileUrl) {
392
- // if the source was a remote file, we're done,
393
- // otherwise delete the temporary uploaded file
394
- if (!sourceIsLocalFile) {
395
- if (this.debug) {
396
- logger.logToStderr('Source file was URL. Not removing.');
397
+ return __awaiter(this, void 0, void 0, function* () {
398
+ // if the source was a remote file, we're done,
399
+ // otherwise delete the temporary uploaded file
400
+ if (!sourceIsLocalFile) {
401
+ if (this.debug) {
402
+ logger.logToStderr('Source file was URL. Not removing.');
403
+ }
404
+ return;
397
405
  }
398
- return Promise.resolve();
399
- }
400
- if (this.verbose) {
401
- logger.logToStderr(`Deleting the temporary file at ${sourceFileUrl}...`);
402
- }
403
- return this
404
- .getGraphFileUrl(logger, sourceFileUrl, this.sourceFileGraphUrl)
405
- .then((graphFileUrl) => {
406
+ if (this.verbose) {
407
+ logger.logToStderr(`Deleting the temporary file at ${sourceFileUrl}...`);
408
+ }
409
+ const graphFileUrl = yield this.getGraphFileUrl(logger, sourceFileUrl, this.sourceFileGraphUrl);
406
410
  const requestOptions = {
407
411
  url: graphFileUrl,
408
412
  headers: {
@@ -58,25 +58,23 @@ class FileAddCommand extends GraphCommand_1.default {
58
58
  * @returns Absolute URL of the uploaded file
59
59
  */
60
60
  uploadFile(localFilePath, targetGraphFileUrl) {
61
- const fileContents = fs.readFileSync(localFilePath);
62
- const isEmptyFile = fileContents.length === 0;
63
- const requestOptions = {
64
- url: isEmptyFile ? `${targetGraphFileUrl}:/content` : `${targetGraphFileUrl}:/createUploadSession`,
65
- headers: {
66
- accept: 'application/json;odata.metadata=none'
67
- },
68
- responseType: 'json'
69
- };
70
- if (isEmptyFile) {
71
- return request_1.default
72
- .put(requestOptions)
73
- .then((res) => res.webUrl);
74
- }
75
- else {
76
- return request_1.default
77
- .post(requestOptions)
78
- .then((res) => {
79
- const requestOptions = {
61
+ return __awaiter(this, void 0, void 0, function* () {
62
+ const fileContents = fs.readFileSync(localFilePath);
63
+ const isEmptyFile = fileContents.length === 0;
64
+ const requestOptions = {
65
+ url: isEmptyFile ? `${targetGraphFileUrl}:/content` : `${targetGraphFileUrl}:/createUploadSession`,
66
+ headers: {
67
+ accept: 'application/json;odata.metadata=none'
68
+ },
69
+ responseType: 'json'
70
+ };
71
+ if (isEmptyFile) {
72
+ const res = yield request_1.default.put(requestOptions);
73
+ return res.webUrl;
74
+ }
75
+ else {
76
+ const res = yield request_1.default.post(requestOptions);
77
+ const requestOptionsPut = {
80
78
  url: res.uploadUrl,
81
79
  headers: {
82
80
  'x-anonymous': true,
@@ -87,10 +85,10 @@ class FileAddCommand extends GraphCommand_1.default {
87
85
  data: fileContents,
88
86
  responseType: 'json'
89
87
  };
90
- return request_1.default.put(requestOptions);
91
- })
92
- .then((res) => res.webUrl);
93
- }
88
+ const resPut = yield request_1.default.put(requestOptionsPut);
89
+ return resPut.webUrl;
90
+ }
91
+ });
94
92
  }
95
93
  /**
96
94
  * Gets Graph's drive item URL for the specified file. If the user specified
@@ -111,17 +109,16 @@ class FileAddCommand extends GraphCommand_1.default {
111
109
  * @returns Graph's drive item URL for the specified file
112
110
  */
113
111
  getGraphFileUrl(logger, fileWebUrl, siteUrl) {
114
- if (this.debug) {
115
- logger.logToStderr(`Resolving Graph drive item URL for ${fileWebUrl}`);
116
- }
117
- const _fileWebUrl = url.parse(fileWebUrl);
118
- const _siteUrl = url.parse(siteUrl || fileWebUrl);
119
- const isSiteUrl = typeof siteUrl !== 'undefined';
120
- let siteId = '';
121
- let driveRelativeFileUrl = '';
122
- return this
123
- .getGraphSiteInfoFromFullUrl(_siteUrl.host, _siteUrl.path, isSiteUrl)
124
- .then(siteInfo => {
112
+ return __awaiter(this, void 0, void 0, function* () {
113
+ if (this.debug) {
114
+ logger.logToStderr(`Resolving Graph drive item URL for ${fileWebUrl}`);
115
+ }
116
+ const _fileWebUrl = url.parse(fileWebUrl);
117
+ const _siteUrl = url.parse(siteUrl || fileWebUrl);
118
+ const isSiteUrl = typeof siteUrl !== 'undefined';
119
+ let siteId = '';
120
+ let driveRelativeFileUrl = '';
121
+ const siteInfo = yield this.getGraphSiteInfoFromFullUrl(_siteUrl.host, _siteUrl.path, isSiteUrl);
125
122
  siteId = siteInfo.id;
126
123
  let siteRelativeFileUrl = _fileWebUrl.path.replace(siteInfo.serverRelativeUrl, '');
127
124
  // normalize site-relative URLs for root site collections and root sites
@@ -131,9 +128,7 @@ class FileAddCommand extends GraphCommand_1.default {
131
128
  const siteRelativeFileUrlChunks = siteRelativeFileUrl.split('/');
132
129
  driveRelativeFileUrl = `/${siteRelativeFileUrlChunks.slice(2).join('/')}`;
133
130
  // chunk 0 is empty because the URL starts with /
134
- return this.getDriveId(logger, siteId, siteRelativeFileUrlChunks[1]);
135
- })
136
- .then(driveId => {
131
+ const driveId = yield this.getDriveId(logger, siteId, siteRelativeFileUrlChunks[1]);
137
132
  const graphUrl = `${this.resource}/v1.0/sites/${siteId}/drives/${driveId}/root:${driveRelativeFileUrl}`;
138
133
  if (this.debug) {
139
134
  logger.logToStderr(`Resolved URL ${graphUrl}`);
@@ -150,10 +145,10 @@ class FileAddCommand extends GraphCommand_1.default {
150
145
  * @returns ID and server-relative URL of the site denoted by urlPath
151
146
  */
152
147
  getGraphSiteInfoFromFullUrl(hostName, urlPath, isSiteUrl) {
153
- const siteId = '';
154
- const urlChunks = urlPath.split('/');
155
- return new Promise((resolve, reject) => {
156
- this.getGraphSiteInfo(hostName, urlChunks, isSiteUrl ? urlChunks.length - 1 : 0, siteId, resolve, reject);
148
+ return __awaiter(this, void 0, void 0, function* () {
149
+ const siteId = '';
150
+ const urlChunks = urlPath.split('/');
151
+ return yield this.getGraphSiteInfo(hostName, urlChunks, isSiteUrl ? urlChunks.length - 1 : 0, siteId);
157
152
  });
158
153
  }
159
154
  /**
@@ -166,52 +161,52 @@ class FileAddCommand extends GraphCommand_1.default {
166
161
  * @param urlChunks Array of chunks from server-relative URL, eg. ['sites', 'site', 'subsite', 'docs', 'file1.aspx']
167
162
  * @param currentChunk Current chunk that's being tested, eg. sites
168
163
  * @param lastSiteId Last correctly resolved Graph site ID
169
- * @param resolve Callback method to call when resolving site info succeeded
170
- * @param reject Callback method to call when resolving site info failed
171
164
  * @returns Graph site ID and server-relative URL of the site specified through chunks
172
165
  */
173
- getGraphSiteInfo(hostName, urlChunks, currentChunk, lastSiteId, resolve, reject) {
174
- let currentPath = urlChunks.slice(0, currentChunk + 1).join('/');
175
- if (currentPath.endsWith('/sites') ||
176
- currentPath.endsWith('/teams') ||
177
- currentPath.endsWith('/personal')) {
178
- return this.getGraphSiteInfo(hostName, urlChunks, ++currentChunk, '', resolve, reject);
179
- }
180
- if (!currentPath.startsWith('/')) {
181
- currentPath = '/' + currentPath;
182
- }
183
- const requestOptions = {
184
- url: `${this.resource}/v1.0/sites/${hostName}:${currentPath}?$select=id`,
185
- headers: {
186
- accept: 'application/json;odata.metadata=none'
187
- },
188
- responseType: 'json'
189
- };
190
- const getResult = (id, serverRelativeUrl) => {
191
- return {
192
- id,
193
- serverRelativeUrl
194
- };
195
- };
196
- request_1.default
197
- .get(requestOptions)
198
- .then((res) => {
199
- if (currentChunk === urlChunks.length - 1) {
200
- resolve(getResult(res.id, currentPath));
166
+ getGraphSiteInfo(hostName, urlChunks, currentChunk, lastSiteId) {
167
+ return __awaiter(this, void 0, void 0, function* () {
168
+ let currentPath = urlChunks.slice(0, currentChunk + 1).join('/');
169
+ if (currentPath.endsWith('/sites') ||
170
+ currentPath.endsWith('/teams') ||
171
+ currentPath.endsWith('/personal')) {
172
+ return yield this.getGraphSiteInfo(hostName, urlChunks, ++currentChunk, '');
201
173
  }
202
- else {
203
- this.getGraphSiteInfo(hostName, urlChunks, ++currentChunk, res.id, resolve, reject);
174
+ if (!currentPath.startsWith('/')) {
175
+ currentPath = '/' + currentPath;
204
176
  }
205
- }, err => {
206
- if (lastSiteId) {
207
- let serverRelativeUrl = `${urlChunks.slice(0, currentChunk).join('/')}`;
208
- if (!serverRelativeUrl.startsWith('/')) {
209
- serverRelativeUrl = '/' + serverRelativeUrl;
177
+ const requestOptions = {
178
+ url: `${this.resource}/v1.0/sites/${hostName}:${currentPath}?$select=id`,
179
+ headers: {
180
+ accept: 'application/json;odata.metadata=none'
181
+ },
182
+ responseType: 'json'
183
+ };
184
+ const getResult = (id, serverRelativeUrl) => {
185
+ return {
186
+ id,
187
+ serverRelativeUrl
188
+ };
189
+ };
190
+ try {
191
+ const res = yield request_1.default.get(requestOptions);
192
+ if (currentChunk === urlChunks.length - 1) {
193
+ return getResult(res.id, currentPath);
194
+ }
195
+ else {
196
+ return yield this.getGraphSiteInfo(hostName, urlChunks, ++currentChunk, res.id);
210
197
  }
211
- resolve(getResult(lastSiteId, serverRelativeUrl));
212
198
  }
213
- else {
214
- reject(err);
199
+ catch (err) {
200
+ if (lastSiteId) {
201
+ let serverRelativeUrl = `${urlChunks.slice(0, currentChunk).join('/')}`;
202
+ if (!serverRelativeUrl.startsWith('/')) {
203
+ serverRelativeUrl = '/' + serverRelativeUrl;
204
+ }
205
+ return getResult(lastSiteId, serverRelativeUrl);
206
+ }
207
+ else {
208
+ throw err;
209
+ }
215
210
  }
216
211
  });
217
212
  }
@@ -222,24 +217,23 @@ class FileAddCommand extends GraphCommand_1.default {
222
217
  * @returns Graph drive ID of the specified document library
223
218
  */
224
219
  getDriveId(logger, graphSiteId, siteRelativeListUrl) {
225
- const requestOptions = {
226
- url: `${this.resource}/v1.0/sites/${graphSiteId}/drives?$select=webUrl,id`,
227
- headers: {
228
- accept: 'application/json;odata.metadata=none'
229
- },
230
- responseType: 'json'
231
- };
232
- return request_1.default
233
- .get(requestOptions)
234
- .then((res) => {
220
+ return __awaiter(this, void 0, void 0, function* () {
221
+ const requestOptions = {
222
+ url: `${this.resource}/v1.0/sites/${graphSiteId}/drives?$select=webUrl,id`,
223
+ headers: {
224
+ accept: 'application/json;odata.metadata=none'
225
+ },
226
+ responseType: 'json'
227
+ };
228
+ const res = yield request_1.default.get(requestOptions);
235
229
  if (this.debug) {
236
230
  logger.logToStderr(`Searching for drive with a URL ending with /${siteRelativeListUrl}...`);
237
231
  }
238
232
  const drive = res.value.find(d => d.webUrl.endsWith(`/${siteRelativeListUrl}`));
239
233
  if (!drive) {
240
- return Promise.reject('Drive not found');
234
+ throw 'Drive not found';
241
235
  }
242
- return Promise.resolve(drive.id);
236
+ return drive.id;
243
237
  });
244
238
  }
245
239
  }