@pnp/cli-microsoft365 7.0.0-beta.7f98bac → 7.0.0-beta.8726fe8

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 (405) hide show
  1. package/.eslintrc.cjs +1 -3
  2. package/README.md +4 -4
  3. package/dist/Auth.js +12 -2
  4. package/dist/Command.js +3 -3
  5. package/dist/GlobalOptions.js +1 -7
  6. package/dist/cli/Cli.js +24 -7
  7. package/dist/m365/aad/commands/app/app-add.js +8 -8
  8. package/dist/m365/aad/commands/app/app-get.js +4 -1
  9. package/dist/m365/aad/commands/app/app-remove.js +3 -1
  10. package/dist/m365/aad/commands/app/app-role-add.js +9 -6
  11. package/dist/m365/aad/commands/app/app-role-list.js +4 -1
  12. package/dist/m365/aad/commands/app/app-role-remove.js +5 -2
  13. package/dist/m365/aad/commands/app/app-set.js +13 -10
  14. package/dist/m365/aad/commands/approleassignment/approleassignment-add.js +11 -6
  15. package/dist/m365/aad/commands/approleassignment/approleassignment-remove.js +4 -4
  16. package/dist/m365/aad/commands/group/group-get.js +4 -4
  17. package/dist/m365/aad/commands/group/group-list.js +1 -23
  18. package/dist/m365/aad/commands/group/group-remove.js +98 -0
  19. package/dist/m365/aad/commands/{o365group/o365group-add.js → m365group/m365group-add.js} +38 -29
  20. package/dist/m365/aad/commands/{o365group/o365group-conversation-list.js → m365group/m365group-conversation-list.js} +10 -10
  21. package/dist/m365/aad/commands/{o365group/o365group-conversation-post-list.js → m365group/m365group-conversation-post-list.js} +14 -14
  22. package/dist/m365/aad/commands/{o365group/o365group-get.js → m365group/m365group-get.js} +13 -10
  23. package/dist/m365/aad/commands/{o365group/o365group-list.js → m365group/m365group-list.js} +13 -28
  24. package/dist/m365/aad/commands/{o365group/o365group-recyclebinitem-clear.js → m365group/m365group-recyclebinitem-clear.js} +15 -15
  25. package/dist/m365/aad/commands/{o365group/o365group-recyclebinitem-list.js → m365group/m365group-recyclebinitem-list.js} +10 -10
  26. package/dist/m365/aad/commands/{o365group/o365group-recyclebinitem-remove.js → m365group/m365group-recyclebinitem-remove.js} +17 -15
  27. package/dist/m365/aad/commands/{o365group/o365group-recyclebinitem-restore.js → m365group/m365group-recyclebinitem-restore.js} +18 -15
  28. package/dist/m365/aad/commands/{o365group/o365group-remove.js → m365group/m365group-remove.js} +12 -12
  29. package/dist/m365/aad/commands/{o365group/o365group-renew.js → m365group/m365group-renew.js} +10 -10
  30. package/dist/m365/aad/commands/{o365group/o365group-report-activitycounts.js → m365group/m365group-report-activitycounts.js} +4 -4
  31. package/dist/m365/aad/commands/{o365group/o365group-report-activitydetail.js → m365group/m365group-report-activitydetail.js} +4 -4
  32. package/dist/m365/aad/commands/{o365group/o365group-report-activityfilecounts.js → m365group/m365group-report-activityfilecounts.js} +4 -4
  33. package/dist/m365/aad/commands/{o365group/o365group-report-activitygroupcounts.js → m365group/m365group-report-activitygroupcounts.js} +4 -4
  34. package/dist/m365/aad/commands/{o365group/o365group-report-activitystorage.js → m365group/m365group-report-activitystorage.js} +4 -4
  35. package/dist/m365/aad/commands/{o365group/o365group-set.js → m365group/m365group-set.js} +17 -17
  36. package/dist/m365/aad/commands/{o365group/o365group-teamify.js → m365group/m365group-teamify.js} +18 -15
  37. package/dist/m365/aad/commands/{o365group/o365group-user-add.js → m365group/m365group-user-add.js} +14 -14
  38. package/dist/m365/aad/commands/{o365group/o365group-user-list.js → m365group/m365group-user-list.js} +12 -12
  39. package/dist/m365/aad/commands/{o365group/o365group-user-remove.js → m365group/m365group-user-remove.js} +14 -14
  40. package/dist/m365/aad/commands/{o365group/o365group-user-set.js → m365group/m365group-user-set.js} +15 -15
  41. package/dist/m365/aad/commands/policy/policy-list.js +5 -5
  42. package/dist/m365/aad/commands/sp/sp-add.js +4 -1
  43. package/dist/m365/aad/commands/sp/sp-get.js +4 -1
  44. package/dist/m365/aad/commands/user/user-get.js +7 -2
  45. package/dist/m365/aad/commands.js +23 -22
  46. package/dist/m365/booking/commands/business/business-get.js +4 -1
  47. package/dist/m365/cli/commands/cli-issue.js +5 -5
  48. package/dist/m365/cli/commands/config/config-get.js +5 -5
  49. package/dist/m365/cli/commands/config/config-list.js +16 -0
  50. package/dist/m365/cli/commands/config/config-reset.js +5 -5
  51. package/dist/m365/cli/commands/config/config-set.js +5 -5
  52. package/dist/m365/cli/commands.js +1 -0
  53. package/dist/m365/commands/login.js +7 -7
  54. package/dist/m365/commands/request.js +1 -1
  55. package/dist/m365/flow/commands/owner/owner-ensure.js +5 -5
  56. package/dist/m365/graph/commands/subscription/subscription-add.js +5 -5
  57. package/dist/m365/outlook/commands/message/message-list.js +4 -2
  58. package/dist/m365/outlook/commands/message/message-move.js +4 -2
  59. package/dist/m365/pa/commands/app/app-export.js +7 -7
  60. package/dist/m365/pa/commands/app/app-owner-set.js +5 -5
  61. package/dist/m365/pa/commands/app/app-permission-ensure.js +162 -0
  62. package/dist/m365/pa/commands/app/app-permission-list.js +2 -2
  63. package/dist/m365/pa/commands/app/app-permission-remove.js +153 -0
  64. package/dist/m365/pa/commands.js +3 -4
  65. package/dist/m365/planner/commands/bucket/bucket-add.js +6 -3
  66. package/dist/m365/planner/commands/bucket/bucket-get.js +11 -4
  67. package/dist/m365/planner/commands/bucket/bucket-list.js +6 -3
  68. package/dist/m365/planner/commands/bucket/bucket-remove.js +9 -4
  69. package/dist/m365/planner/commands/bucket/bucket-set.js +10 -4
  70. package/dist/m365/planner/commands/plan/plan-add.js +4 -1
  71. package/dist/m365/planner/commands/plan/plan-get.js +5 -3
  72. package/dist/m365/planner/commands/plan/plan-list.js +8 -6
  73. package/dist/m365/planner/commands/plan/plan-remove.js +4 -1
  74. package/dist/m365/planner/commands/plan/plan-set.js +6 -3
  75. package/dist/m365/planner/commands/roster/roster-get.js +4 -1
  76. package/dist/m365/planner/commands/roster/roster-member-add.js +4 -1
  77. package/dist/m365/planner/commands/roster/roster-member-get.js +4 -1
  78. package/dist/m365/planner/commands/roster/roster-member-list.js +4 -1
  79. package/dist/m365/planner/commands/roster/roster-member-remove.js +4 -1
  80. package/dist/m365/planner/commands/roster/roster-plan-list.js +4 -1
  81. package/dist/m365/planner/commands/roster/roster-remove.js +4 -1
  82. package/dist/m365/planner/commands/task/task-add.js +21 -12
  83. package/dist/m365/planner/commands/task/task-checklistitem-add.js +4 -1
  84. package/dist/m365/planner/commands/task/task-checklistitem-list.js +4 -1
  85. package/dist/m365/planner/commands/task/task-checklistitem-remove.js +4 -1
  86. package/dist/m365/planner/commands/task/task-get.js +46 -28
  87. package/dist/m365/planner/commands/task/task-list.js +34 -19
  88. package/dist/m365/planner/commands/task/task-reference-add.js +4 -1
  89. package/dist/m365/planner/commands/task/task-reference-list.js +4 -1
  90. package/dist/m365/planner/commands/task/task-reference-remove.js +4 -1
  91. package/dist/m365/planner/commands/task/task-remove.js +49 -38
  92. package/dist/m365/planner/commands/task/task-set.js +38 -23
  93. package/dist/m365/pp/commands/aibuildermodel/aibuildermodel-get.js +4 -1
  94. package/dist/m365/pp/commands/card/card-get.js +3 -5
  95. package/dist/m365/pp/commands/chatbot/chatbot-get.js +3 -1
  96. package/dist/m365/pp/commands/managementapp/managementapp-add.js +4 -1
  97. package/dist/m365/purview/commands/retentionlabel/retentionlabel-add.js +14 -14
  98. package/dist/m365/search/commands/externalconnection/externalconnection-remove.js +3 -1
  99. package/dist/m365/spfx/commands/package/package-generate.js +15 -15
  100. package/dist/m365/spfx/commands/project/DeployWorkflow.js +55 -0
  101. package/dist/m365/spfx/commands/project/project-doctor/{doctor-1.18.0-beta.1.js → doctor-1.18.0.js} +2 -2
  102. package/dist/m365/spfx/commands/project/project-doctor.js +9 -9
  103. package/dist/m365/spfx/commands/project/project-externalize/rules/PnPJsRule.js +2 -2
  104. package/dist/m365/spfx/commands/project/project-github-workflow-add.js +157 -0
  105. package/dist/m365/spfx/commands/project/project-github-workflow-model.js +2 -0
  106. package/dist/m365/spfx/commands/project/project-upgrade/rules/FN001022_DEP_office_ui_fabric_react.js +1 -1
  107. package/dist/m365/spfx/commands/project/project-upgrade/rules/FN002028_DEVDEP_microsoft_rush_stack_compiler_4_7.js +13 -0
  108. package/dist/m365/spfx/commands/project/project-upgrade/upgrade-1.15.2.js +1 -1
  109. package/dist/m365/spfx/commands/project/project-upgrade/{upgrade-1.18.0-beta.1.js → upgrade-1.18.0.js} +35 -27
  110. package/dist/m365/spfx/commands/project/project-upgrade.js +26 -28
  111. package/dist/m365/spfx/commands/spfx-doctor.js +76 -106
  112. package/dist/m365/spfx/commands.js +1 -0
  113. package/dist/m365/spo/commands/app/SpoAppBaseCommand.js +27 -26
  114. package/dist/m365/spo/commands/app/app-add.js +9 -9
  115. package/dist/m365/spo/commands/applicationcustomizer/applicationcustomizer-add.js +5 -5
  116. package/dist/m365/spo/commands/applicationcustomizer/applicationcustomizer-get.js +5 -3
  117. package/dist/m365/spo/commands/applicationcustomizer/applicationcustomizer-list.js +5 -5
  118. package/dist/m365/spo/commands/applicationcustomizer/applicationcustomizer-remove.js +2 -2
  119. package/dist/m365/spo/commands/applicationcustomizer/applicationcustomizer-set.js +3 -2
  120. package/dist/m365/spo/commands/commandset/commandset-add.js +11 -11
  121. package/dist/m365/spo/commands/commandset/commandset-get.js +12 -10
  122. package/dist/m365/spo/commands/commandset/commandset-list.js +5 -5
  123. package/dist/m365/spo/commands/commandset/commandset-remove.js +7 -6
  124. package/dist/m365/spo/commands/commandset/commandset-set.js +14 -12
  125. package/dist/m365/spo/commands/customaction/customaction-get.js +5 -2
  126. package/dist/m365/spo/commands/customaction/customaction-remove.js +3 -1
  127. package/dist/m365/spo/commands/eventreceiver/eventreceiver-get.js +3 -1
  128. package/dist/m365/spo/commands/file/file-add.js +13 -13
  129. package/dist/m365/spo/commands/file/file-checkin.js +1 -1
  130. package/dist/m365/spo/commands/file/file-checkout.js +1 -1
  131. package/dist/m365/spo/commands/file/file-copy.js +36 -4
  132. package/dist/m365/spo/commands/file/file-get.js +11 -8
  133. package/dist/m365/spo/commands/file/file-list.js +4 -4
  134. package/dist/m365/spo/commands/file/file-move.js +74 -98
  135. package/dist/m365/spo/commands/file/file-remove.js +8 -8
  136. package/dist/m365/spo/commands/file/file-rename.js +2 -2
  137. package/dist/m365/spo/commands/file/file-retentionlabel-ensure.js +1 -1
  138. package/dist/m365/spo/commands/file/file-retentionlabel-remove.js +1 -1
  139. package/dist/m365/spo/commands/file/file-roleassignment-add.js +1 -1
  140. package/dist/m365/spo/commands/file/file-roleassignment-remove.js +1 -1
  141. package/dist/m365/spo/commands/file/file-roleinheritance-break.js +1 -1
  142. package/dist/m365/spo/commands/file/file-roleinheritance-reset.js +1 -1
  143. package/dist/m365/spo/commands/file/file-sharinglink-add.js +8 -8
  144. package/dist/m365/spo/commands/file/file-sharinglink-list.js +5 -5
  145. package/dist/m365/spo/commands/file/file-version-clear.js +3 -3
  146. package/dist/m365/spo/commands/file/file-version-get.js +3 -3
  147. package/dist/m365/spo/commands/file/file-version-list.js +3 -3
  148. package/dist/m365/spo/commands/file/file-version-remove.js +3 -3
  149. package/dist/m365/spo/commands/file/file-version-restore.js +3 -3
  150. package/dist/m365/spo/commands/folder/folder-add.js +2 -4
  151. package/dist/m365/spo/commands/folder/folder-copy.js +89 -45
  152. package/dist/m365/spo/commands/folder/folder-get.js +1 -1
  153. package/dist/m365/spo/commands/folder/folder-list.js +2 -2
  154. package/dist/m365/spo/commands/folder/folder-move.js +89 -47
  155. package/dist/m365/spo/commands/folder/folder-remove.js +7 -4
  156. package/dist/m365/spo/commands/folder/folder-rename.js +13 -17
  157. package/dist/m365/spo/commands/folder/folder-retentionlabel-ensure.js +1 -1
  158. package/dist/m365/spo/commands/folder/folder-retentionlabel-remove.js +1 -1
  159. package/dist/m365/spo/commands/folder/folder-roleassignment-add.js +1 -1
  160. package/dist/m365/spo/commands/folder/folder-roleassignment-remove.js +1 -1
  161. package/dist/m365/spo/commands/folder/folder-roleinheritance-break.js +1 -1
  162. package/dist/m365/spo/commands/folder/folder-roleinheritance-reset.js +1 -1
  163. package/dist/m365/spo/commands/group/group-list.js +0 -1
  164. package/dist/m365/spo/commands/group/group-member-add.js +24 -24
  165. package/dist/m365/spo/commands/hubsite/hubsite-connect.js +7 -4
  166. package/dist/m365/spo/commands/hubsite/hubsite-disconnect.js +4 -1
  167. package/dist/m365/spo/commands/hubsite/hubsite-get.js +3 -1
  168. package/dist/m365/spo/commands/list/list-add.js +4 -4
  169. package/dist/m365/spo/commands/list/list-retentionlabel-ensure.js +2 -24
  170. package/dist/m365/spo/commands/list/list-set.js +4 -4
  171. package/dist/m365/spo/commands/listitem/listitem-add.js +1 -0
  172. package/dist/m365/spo/commands/listitem/listitem-set.js +3 -2
  173. package/dist/m365/spo/commands/navigation/navigation-node-set.js +2 -2
  174. package/dist/m365/spo/commands/orgassetslibrary/orgassetslibrary-add.js +34 -5
  175. package/dist/m365/spo/commands/page/clientsidepages.js +19 -81
  176. package/dist/m365/spo/commands/page/page-get.js +1 -0
  177. package/dist/m365/spo/commands/page/page-list.js +4 -3
  178. package/dist/m365/spo/commands/page/page-section-add.js +56 -21
  179. package/dist/m365/spo/commands/page/page-set.js +13 -2
  180. package/dist/m365/spo/commands/propertybag/propertybag-base.js +63 -59
  181. package/dist/m365/spo/commands/propertybag/propertybag-remove.js +28 -31
  182. package/dist/m365/spo/commands/serviceprincipal/serviceprincipal-set.js +30 -32
  183. package/dist/m365/spo/commands/site/FlowsPolicy.js +7 -0
  184. package/dist/m365/spo/commands/site/site-add.js +114 -161
  185. package/dist/m365/spo/commands/site/site-apppermission-add.js +15 -18
  186. package/dist/m365/spo/commands/site/site-apppermission-remove.js +34 -38
  187. package/dist/m365/spo/commands/site/site-apppermission-set.js +11 -14
  188. package/dist/m365/spo/commands/site/site-commsite-enable.js +34 -5
  189. package/dist/m365/spo/commands/site/site-ensure.js +14 -67
  190. package/dist/m365/spo/commands/site/site-hubsite-disconnect.js +22 -22
  191. package/dist/m365/spo/commands/site/site-list.js +25 -43
  192. package/dist/m365/spo/commands/site/site-recyclebinitem-list.js +6 -6
  193. package/dist/m365/spo/commands/site/site-remove.js +166 -210
  194. package/dist/m365/spo/commands/site/site-set.js +178 -199
  195. package/dist/m365/spo/commands/tenant/tenant-appcatalog-add.js +1 -1
  196. package/dist/m365/spo/commands/tenant/tenant-applicationcustomizer-get.js +12 -7
  197. package/dist/m365/spo/commands/tenant/tenant-applicationcustomizer-list.js +3 -2
  198. package/dist/m365/spo/commands/tenant/tenant-applicationcustomizer-remove.js +2 -1
  199. package/dist/m365/spo/commands/tenant/tenant-applicationcustomizer-set.js +3 -2
  200. package/dist/m365/spo/commands/tenant/tenant-commandset-add.js +8 -8
  201. package/dist/m365/spo/commands/tenant/tenant-commandset-get.js +8 -3
  202. package/dist/m365/spo/commands/tenant/tenant-commandset-list.js +3 -2
  203. package/dist/m365/spo/commands/tenant/tenant-commandset-remove.js +3 -1
  204. package/dist/m365/spo/commands/tenant/tenant-commandset-set.js +8 -8
  205. package/dist/m365/spo/commands/tenant/tenant-settings-set.js +4 -4
  206. package/dist/m365/spo/commands/term/term-get.js +6 -6
  207. package/dist/m365/spo/commands/theme/theme-list.js +1 -9
  208. package/dist/m365/spo/commands/theme/theme-remove.js +24 -24
  209. package/dist/m365/spo/commands/theme/theme-set.js +0 -1
  210. package/dist/m365/spo/commands/user/user-remove.js +27 -27
  211. package/dist/m365/spo/commands/web/web-reindex.js +35 -42
  212. package/dist/m365/spo/commands/web/web-remove.js +21 -21
  213. package/dist/m365/spo/commands/web/web-roleassignment-add.js +16 -31
  214. package/dist/m365/spo/commands/web/web-roleassignment-remove.js +33 -44
  215. package/dist/m365/spo/commands/web/web-roleinheritance-break.js +18 -18
  216. package/dist/m365/spo/commands/web/web-roleinheritance-reset.js +19 -19
  217. package/dist/m365/spo/commands/web/web-set.js +5 -5
  218. package/dist/m365/teams/commands/app/app-list.js +5 -5
  219. package/dist/m365/teams/commands/app/app-remove.js +49 -15
  220. package/dist/m365/teams/commands/channel/channel-add.js +5 -1
  221. package/dist/m365/teams/commands/channel/channel-member-add.js +12 -10
  222. package/dist/m365/teams/commands/channel/channel-member-remove.js +3 -1
  223. package/dist/m365/teams/commands/channel/channel-member-set.js +4 -1
  224. package/dist/m365/teams/commands/chat/chat-get.js +7 -10
  225. package/dist/m365/teams/commands/chat/chat-member-add.js +5 -5
  226. package/dist/m365/teams/commands/chat/chat-message-send.js +8 -10
  227. package/dist/m365/teams/commands/funsettings/funsettings-set.js +4 -4
  228. package/dist/m365/teams/commands/guestsettings/guestsettings-set.js +4 -4
  229. package/dist/m365/teams/commands/meeting/meeting-list.js +101 -51
  230. package/dist/m365/teams/commands/membersettings/membersettings-set.js +4 -4
  231. package/dist/m365/teams/commands/messagingsettings/messagingsettings-set.js +5 -5
  232. package/dist/m365/teams/commands/team/team-clone.js +5 -10
  233. package/dist/m365/teams/commands/team/team-list.js +94 -30
  234. package/dist/m365/teams/commands/team/team-set.js +3 -3
  235. package/dist/m365/tenant/commands/info/info-get.js +83 -0
  236. package/dist/m365/tenant/commands.js +1 -0
  237. package/dist/m365/todo/commands/task/task-add.js +6 -6
  238. package/dist/m365/yammer/commands/message/message-like-set.js +27 -28
  239. package/dist/m365/yammer/commands/message/message-list.js +67 -86
  240. package/dist/m365/yammer/commands/message/message-remove.js +18 -18
  241. package/dist/m365/yammer/commands/yammer-search.js +58 -74
  242. package/dist/utils/aadGroup.js +23 -3
  243. package/dist/utils/formatting.js +7 -0
  244. package/dist/utils/fsUtil.js +5 -0
  245. package/dist/utils/planner.js +4 -3
  246. package/dist/utils/powerPlatform.js +1 -1
  247. package/dist/utils/spo.js +595 -54
  248. package/dist/utils/validation.js +0 -3
  249. package/docs/docs/_clisettings.mdx +2 -2
  250. package/docs/docs/cmd/_global.mdx +1 -1
  251. package/docs/docs/cmd/aad/app/app-set.mdx +15 -15
  252. package/docs/docs/cmd/aad/approleassignment/approleassignment-add.mdx +9 -9
  253. package/docs/docs/cmd/aad/approleassignment/approleassignment-remove.mdx +10 -10
  254. package/docs/docs/cmd/aad/group/group-get.mdx +5 -5
  255. package/docs/docs/cmd/aad/group/group-list.mdx +0 -11
  256. package/docs/docs/cmd/aad/group/group-remove.mdx +44 -0
  257. package/docs/docs/cmd/aad/{o365group/o365group-add.mdx → m365group/m365group-add.mdx} +25 -15
  258. package/docs/docs/cmd/aad/{o365group/o365group-conversation-list.mdx → m365group/m365group-conversation-list.mdx} +4 -4
  259. package/docs/docs/cmd/aad/{o365group/o365group-conversation-post-list.mdx → m365group/m365group-conversation-post-list.mdx} +8 -8
  260. package/docs/docs/cmd/aad/{o365group/o365group-get.mdx → m365group/m365group-get.mdx} +6 -6
  261. package/docs/docs/cmd/aad/{o365group/o365group-list.mdx → m365group/m365group-list.mdx} +12 -29
  262. package/docs/docs/cmd/aad/{o365group/o365group-recyclebinitem-clear.mdx → m365group/m365group-recyclebinitem-clear.mdx} +5 -5
  263. package/docs/docs/cmd/aad/{o365group/o365group-recyclebinitem-list.mdx → m365group/m365group-recyclebinitem-list.mdx} +8 -8
  264. package/docs/docs/cmd/aad/{o365group/o365group-recyclebinitem-remove.mdx → m365group/m365group-recyclebinitem-remove.mdx} +6 -6
  265. package/docs/docs/cmd/aad/{o365group/o365group-recyclebinitem-restore.mdx → m365group/m365group-recyclebinitem-restore.mdx} +6 -6
  266. package/docs/docs/cmd/aad/{o365group/o365group-remove.mdx → m365group/m365group-remove.mdx} +6 -6
  267. package/docs/docs/cmd/aad/{o365group/o365group-renew.mdx → m365group/m365group-renew.mdx} +4 -4
  268. package/docs/docs/cmd/aad/{o365group/o365group-report-activitycounts.mdx → m365group/m365group-report-activitycounts.mdx} +6 -6
  269. package/docs/docs/cmd/aad/{o365group/o365group-report-activitydetail.mdx → m365group/m365group-report-activitydetail.mdx} +7 -7
  270. package/docs/docs/cmd/aad/{o365group/o365group-report-activityfilecounts.mdx → m365group/m365group-report-activityfilecounts.mdx} +6 -6
  271. package/docs/docs/cmd/aad/{o365group/o365group-report-activitygroupcounts.mdx → m365group/m365group-report-activitygroupcounts.mdx} +6 -6
  272. package/docs/docs/cmd/aad/{o365group/o365group-report-activitystorage.mdx → m365group/m365group-report-activitystorage.mdx} +6 -6
  273. package/docs/docs/cmd/aad/{o365group/o365group-set.mdx → m365group/m365group-set.mdx} +8 -8
  274. package/docs/docs/cmd/aad/{o365group/o365group-teamify.mdx → m365group/m365group-teamify.mdx} +5 -5
  275. package/docs/docs/cmd/aad/{o365group/o365group-user-add.mdx → m365group/m365group-user-add.mdx} +5 -5
  276. package/docs/docs/cmd/aad/{o365group/o365group-user-list.mdx → m365group/m365group-user-list.mdx} +7 -7
  277. package/docs/docs/cmd/aad/{o365group/o365group-user-remove.mdx → m365group/m365group-user-remove.mdx} +5 -5
  278. package/docs/docs/cmd/aad/{o365group/o365group-user-set.mdx → m365group/m365group-user-set.mdx} +5 -5
  279. package/docs/docs/cmd/aad/policy/policy-list.mdx +5 -5
  280. package/docs/docs/cmd/aad/user/user-set.mdx +1 -1
  281. package/docs/docs/cmd/cli/config/config-list.mdx +78 -0
  282. package/docs/docs/cmd/flow/flow-enable.mdx +2 -2
  283. package/docs/docs/cmd/graph/subscription/subscription-add.mdx +10 -10
  284. package/docs/docs/cmd/login.mdx +6 -0
  285. package/docs/docs/cmd/pa/app/app-export.mdx +5 -5
  286. package/docs/docs/cmd/pa/app/app-permission-ensure.mdx +85 -0
  287. package/docs/docs/cmd/pa/app/app-permission-remove.mdx +74 -0
  288. package/docs/docs/cmd/planner/plan/plan-add.mdx +1 -1
  289. package/docs/docs/cmd/planner/task/task-add.mdx +22 -7
  290. package/docs/docs/cmd/planner/task/task-get.mdx +13 -4
  291. package/docs/docs/cmd/planner/task/task-list.mdx +22 -7
  292. package/docs/docs/cmd/planner/task/task-remove.mdx +25 -8
  293. package/docs/docs/cmd/planner/task/task-set.mdx +22 -7
  294. package/docs/docs/cmd/pp/dataverse/dataverse-table-get.mdx +2 -2
  295. package/docs/docs/cmd/pp/dataverse/dataverse-table-list.mdx +2 -2
  296. package/docs/docs/cmd/pp/dataverse/dataverse-table-remove.mdx +3 -3
  297. package/docs/docs/cmd/pp/solution/solution-publisher-get.mdx +2 -2
  298. package/docs/docs/cmd/pp/solution/solution-publisher-remove.mdx +2 -2
  299. package/docs/docs/cmd/spfx/project/project-github-workflow-add.mdx +94 -0
  300. package/docs/docs/cmd/spfx/project/project-upgrade.mdx +1 -1
  301. package/docs/docs/cmd/spo/file/file-add.mdx +1 -1
  302. package/docs/docs/cmd/spo/file/file-checkin.mdx +1 -1
  303. package/docs/docs/cmd/spo/file/file-checkout-undo.mdx +1 -9
  304. package/docs/docs/cmd/spo/file/file-checkout.mdx +1 -1
  305. package/docs/docs/cmd/spo/file/file-copy.mdx +20 -16
  306. package/docs/docs/cmd/spo/file/file-get.mdx +3 -3
  307. package/docs/docs/cmd/spo/file/file-list.mdx +2 -2
  308. package/docs/docs/cmd/spo/file/file-move.mdx +36 -18
  309. package/docs/docs/cmd/spo/file/file-remove.mdx +10 -10
  310. package/docs/docs/cmd/spo/file/file-rename.mdx +3 -3
  311. package/docs/docs/cmd/spo/file/file-retentionlabel-ensure.mdx +2 -2
  312. package/docs/docs/cmd/spo/file/file-retentionlabel-remove.mdx +3 -3
  313. package/docs/docs/cmd/spo/file/file-roleassignment-add.mdx +1 -1
  314. package/docs/docs/cmd/spo/file/file-roleassignment-remove.mdx +1 -1
  315. package/docs/docs/cmd/spo/file/file-roleinheritance-break.mdx +1 -1
  316. package/docs/docs/cmd/spo/file/file-roleinheritance-reset.mdx +1 -1
  317. package/docs/docs/cmd/spo/file/file-sharinginfo-get.mdx +1 -1
  318. package/docs/docs/cmd/spo/file/file-sharinglink-add.mdx +1 -1
  319. package/docs/docs/cmd/spo/file/file-sharinglink-clear.mdx +1 -1
  320. package/docs/docs/cmd/spo/file/file-sharinglink-get.mdx +1 -1
  321. package/docs/docs/cmd/spo/file/file-sharinglink-list.mdx +1 -1
  322. package/docs/docs/cmd/spo/file/file-sharinglink-remove.mdx +1 -1
  323. package/docs/docs/cmd/spo/file/file-sharinglink-set.mdx +1 -1
  324. package/docs/docs/cmd/spo/file/file-version-clear.mdx +3 -3
  325. package/docs/docs/cmd/spo/file/file-version-get.mdx +3 -3
  326. package/docs/docs/cmd/spo/file/file-version-list.mdx +3 -3
  327. package/docs/docs/cmd/spo/file/file-version-remove.mdx +3 -3
  328. package/docs/docs/cmd/spo/file/file-version-restore.mdx +3 -3
  329. package/docs/docs/cmd/spo/folder/folder-add.mdx +76 -1
  330. package/docs/docs/cmd/spo/folder/folder-copy.mdx +39 -12
  331. package/docs/docs/cmd/spo/folder/folder-get.mdx +1 -1
  332. package/docs/docs/cmd/spo/folder/folder-list.mdx +1 -1
  333. package/docs/docs/cmd/spo/folder/folder-move.mdx +40 -13
  334. package/docs/docs/cmd/spo/folder/folder-remove.mdx +1 -1
  335. package/docs/docs/cmd/spo/folder/folder-rename.mdx +5 -1
  336. package/docs/docs/cmd/spo/folder/folder-retentionlabel-ensure.mdx +1 -1
  337. package/docs/docs/cmd/spo/folder/folder-retentionlabel-remove.mdx +1 -1
  338. package/docs/docs/cmd/spo/folder/folder-roleassignment-add.mdx +2 -2
  339. package/docs/docs/cmd/spo/folder/folder-roleassignment-remove.mdx +1 -1
  340. package/docs/docs/cmd/spo/folder/folder-roleinheritance-break.mdx +1 -1
  341. package/docs/docs/cmd/spo/folder/folder-roleinheritance-reset.mdx +1 -1
  342. package/docs/docs/cmd/spo/group/group-member-add.mdx +27 -27
  343. package/docs/docs/cmd/spo/list/list-contenttype-remove.mdx +1 -1
  344. package/docs/docs/cmd/spo/list/list-retentionlabel-ensure.mdx +2 -11
  345. package/docs/docs/cmd/spo/listitem/listitem-add.mdx +2 -5
  346. package/docs/docs/cmd/spo/listitem/listitem-attachment-list.mdx +1 -1
  347. package/docs/docs/cmd/spo/listitem/listitem-set.mdx +2 -5
  348. package/docs/docs/cmd/spo/orgassetslibrary/orgassetslibrary-add.mdx +14 -1
  349. package/docs/docs/cmd/spo/page/page-get.mdx +0 -1
  350. package/docs/docs/cmd/spo/page/page-list.mdx +0 -1
  351. package/docs/docs/cmd/spo/page/page-section-add.mdx +25 -1
  352. package/docs/docs/cmd/spo/page/page-set.mdx +23 -0
  353. package/docs/docs/cmd/spo/site/site-add.mdx +1 -1
  354. package/docs/docs/cmd/spo/site/site-commsite-enable.mdx +11 -2
  355. package/docs/docs/cmd/spo/site/site-ensure.mdx +1 -1
  356. package/docs/docs/cmd/spo/site/site-list.mdx +3 -78
  357. package/docs/docs/cmd/spo/tenant/tenant-applicationcustomizer-add.mdx +1 -1
  358. package/docs/docs/cmd/spo/tenant/tenant-applicationcustomizer-get.mdx +2 -2
  359. package/docs/docs/cmd/spo/tenant/tenant-applicationcustomizer-list.mdx +3 -5
  360. package/docs/docs/cmd/spo/tenant/tenant-applicationcustomizer-remove.mdx +1 -1
  361. package/docs/docs/cmd/spo/tenant/tenant-commandset-add.mdx +1 -1
  362. package/docs/docs/cmd/spo/tenant/tenant-commandset-list.mdx +2 -4
  363. package/docs/docs/cmd/spo/tenant/tenant-commandset-remove.mdx +1 -1
  364. package/docs/docs/cmd/spo/tenant/tenant-commandset-set.mdx +1 -1
  365. package/docs/docs/cmd/teams/app/app-remove.mdx +9 -6
  366. package/docs/docs/cmd/teams/channel/channel-member-add.mdx +4 -4
  367. package/docs/docs/cmd/teams/meeting/meeting-list.mdx +135 -92
  368. package/docs/docs/cmd/teams/team/team-add.mdx +1 -1
  369. package/docs/docs/cmd/teams/team/team-clone.mdx +3 -3
  370. package/docs/docs/cmd/teams/team/team-list.mdx +47 -22
  371. package/docs/docs/cmd/tenant/info/info-get.mdx +101 -0
  372. package/docs/docs/cmd/yammer/network/network-list.mdx +1 -1
  373. package/npm-shrinkwrap.json +310 -1433
  374. package/package.json +22 -27
  375. package/dist/m365/pa/cds-project-mutator.js +0 -91
  376. package/dist/m365/pa/commands/pcf/pcf-init/assets/control/dataset-template/generated/ManifestTypes.d.ts +0 -11
  377. package/dist/m365/pa/commands/pcf/pcf-init/assets/control/dataset-template/template_ControlManifest.Input.xml +0 -31
  378. package/dist/m365/pa/commands/pcf/pcf-init/assets/control/dataset-template/template_index.ts +0 -51
  379. package/dist/m365/pa/commands/pcf/pcf-init/assets/control/field-template/generated/ManifestTypes.d.ts +0 -12
  380. package/dist/m365/pa/commands/pcf/pcf-init/assets/control/field-template/template_ControlManifest.Input.xml +0 -37
  381. package/dist/m365/pa/commands/pcf/pcf-init/assets/control/field-template/template_index.ts +0 -48
  382. package/dist/m365/pa/commands/pcf/pcf-init/assets/control/index.ts +0 -0
  383. package/dist/m365/pa/commands/pcf/pcf-init/assets/control/virtual-dataset-template/template_ControlManifest.Input.xml +0 -31
  384. package/dist/m365/pa/commands/pcf/pcf-init/assets/control/virtual-dataset-template/template_index.tsx +0 -58
  385. package/dist/m365/pa/commands/pcf/pcf-init/assets/control/virtual-field-template/template_ControlManifest.Input.xml +0 -37
  386. package/dist/m365/pa/commands/pcf/pcf-init/assets/control/virtual-field-template/template_index.tsx +0 -55
  387. package/dist/m365/pa/commands/pcf/pcf-init/assets/package.json +0 -19
  388. package/dist/m365/pa/commands/pcf/pcf-init/assets/pcfconfig.json +0 -3
  389. package/dist/m365/pa/commands/pcf/pcf-init/assets/template_.gitignore +0 -14
  390. package/dist/m365/pa/commands/pcf/pcf-init/assets/template_pcfprojecttype.pcfproj +0 -45
  391. package/dist/m365/pa/commands/pcf/pcf-init/pcf-init-variables.js +0 -2
  392. package/dist/m365/pa/commands/pcf/pcf-init.js +0 -120
  393. package/dist/m365/pa/commands/solution/solution-init/assets/Other/Customizations.xml +0 -18
  394. package/dist/m365/pa/commands/solution/solution-init/assets/Other/Relationships.xml +0 -2
  395. package/dist/m365/pa/commands/solution/solution-init/assets/Other/template_Solution.xml +0 -94
  396. package/dist/m365/pa/commands/solution/solution-init/assets/template_.gitignore +0 -2
  397. package/dist/m365/pa/commands/solution/solution-init/assets/template_solutionprojecttype.cdsproj +0 -44
  398. package/dist/m365/pa/commands/solution/solution-init/solution-init-variables.js +0 -2
  399. package/dist/m365/pa/commands/solution/solution-init.js +0 -126
  400. package/dist/m365/pa/commands/solution/solution-reference-add.js +0 -88
  401. package/dist/m365/pa/template-instantiator.js +0 -57
  402. package/docs/docs/cmd/pa/pcf/pcf-init.mdx +0 -56
  403. package/docs/docs/cmd/pa/solution/solution-init.mdx +0 -46
  404. package/docs/docs/cmd/pa/solution/solution-reference-add.mdx +0 -42
  405. /package/dist/m365/aad/commands/{o365group → m365group}/GroupExtended.js +0 -0
@@ -3,10 +3,8 @@ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (
3
3
  if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
4
4
  return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
5
5
  };
6
- var _SpoFolderCopyCommand_instances, _SpoFolderCopyCommand_initTelemetry, _SpoFolderCopyCommand_initOptions, _SpoFolderCopyCommand_initValidators;
7
- import url from 'url';
6
+ var _SpoFolderCopyCommand_instances, _SpoFolderCopyCommand_initTelemetry, _SpoFolderCopyCommand_initOptions, _SpoFolderCopyCommand_initValidators, _SpoFolderCopyCommand_initOptionSets;
8
7
  import request from '../../../../request.js';
9
- import { spo } from '../../../../utils/spo.js';
10
8
  import { urlUtil } from '../../../../utils/urlUtil.js';
11
9
  import { validation } from '../../../../utils/validation.js';
12
10
  import SpoCommand from '../../../base/SpoCommand.js';
@@ -21,77 +19,123 @@ class SpoFolderCopyCommand extends SpoCommand {
21
19
  constructor() {
22
20
  super();
23
21
  _SpoFolderCopyCommand_instances.add(this);
22
+ this.nameConflictBehaviorOptions = ['fail', 'rename'];
24
23
  __classPrivateFieldGet(this, _SpoFolderCopyCommand_instances, "m", _SpoFolderCopyCommand_initTelemetry).call(this);
25
24
  __classPrivateFieldGet(this, _SpoFolderCopyCommand_instances, "m", _SpoFolderCopyCommand_initOptions).call(this);
26
25
  __classPrivateFieldGet(this, _SpoFolderCopyCommand_instances, "m", _SpoFolderCopyCommand_initValidators).call(this);
26
+ __classPrivateFieldGet(this, _SpoFolderCopyCommand_instances, "m", _SpoFolderCopyCommand_initOptionSets).call(this);
27
27
  }
28
28
  getExcludedOptionsWithUrls() {
29
29
  return ['targetUrl', 'sourceUrl'];
30
30
  }
31
31
  async commandAction(logger, args) {
32
- const webUrl = args.options.webUrl;
33
- const parsedUrl = url.parse(webUrl);
34
- const tenantUrl = `${parsedUrl.protocol}//${parsedUrl.hostname}`;
35
- const serverRelativePath = urlUtil.getServerRelativePath(webUrl, args.options.sourceUrl);
36
- const sourceAbsoluteUrl = urlUtil.urlCombine(tenantUrl, serverRelativePath);
37
- const allowSchemaMismatch = args.options.allowSchemaMismatch || false;
38
- const requestOptions = {
39
- url: urlUtil.urlCombine(webUrl, '/_api/site/CreateCopyJobs'),
40
- headers: {
41
- 'accept': 'application/json;odata=nometadata'
42
- },
43
- data: {
44
- exportObjectUris: [sourceAbsoluteUrl],
45
- destinationUri: urlUtil.urlCombine(tenantUrl, args.options.targetUrl),
46
- options: {
47
- "AllowSchemaMismatch": allowSchemaMismatch,
48
- "IgnoreVersionHistory": true
49
- }
50
- },
51
- responseType: 'json'
52
- };
53
32
  try {
54
- const jobInfo = await request.post(requestOptions);
55
- const copyJobInfo = jobInfo.value[0];
56
- const progressPollInterval = 30 * 60; //used previously implemented interval. The API does not provide guidance on what value should be used.
57
- await new Promise((resolve, reject) => {
58
- setTimeout(() => {
59
- spo.waitUntilCopyJobFinished({
60
- copyJobInfo,
61
- siteUrl: webUrl,
62
- pollingInterval: progressPollInterval,
63
- resolve,
64
- reject,
65
- logger,
66
- debug: this.debug,
67
- verbose: this.verbose
68
- });
69
- }, progressPollInterval);
70
- });
33
+ const sourcePath = await this.getSourcePath(logger, args.options);
34
+ if (this.verbose) {
35
+ await logger.logToStderr(`Copying folder ${sourcePath} to ${args.options.targetUrl}...`);
36
+ }
37
+ const absoluteSourcePath = this.getAbsoluteUrl(args.options.webUrl, sourcePath);
38
+ let absoluteTargetPath = this.getAbsoluteUrl(args.options.webUrl, args.options.targetUrl) + '/';
39
+ if (args.options.newName) {
40
+ absoluteTargetPath += args.options.newName;
41
+ }
42
+ else {
43
+ // Keep the original folder name
44
+ absoluteTargetPath += sourcePath.substring(sourcePath.lastIndexOf('/') + 1);
45
+ }
46
+ const requestOptions = {
47
+ url: `${args.options.webUrl}/_api/SP.MoveCopyUtil.CopyFolderByPath`,
48
+ headers: {
49
+ accept: 'application/json;odata=nometadata'
50
+ },
51
+ responseType: 'json',
52
+ data: {
53
+ srcPath: {
54
+ DecodedUrl: absoluteSourcePath
55
+ },
56
+ destPath: {
57
+ DecodedUrl: absoluteTargetPath
58
+ },
59
+ options: {
60
+ KeepBoth: args.options.nameConflictBehavior === 'rename',
61
+ ShouldBypassSharedLocks: !!args.options.bypassSharedLock,
62
+ ResetAuthorAndCreatedOnCopy: !!args.options.resetAuthorAndCreated
63
+ }
64
+ }
65
+ };
66
+ await request.post(requestOptions);
71
67
  }
72
68
  catch (err) {
73
69
  this.handleRejectedODataJsonPromise(err);
74
70
  }
75
71
  }
72
+ async getSourcePath(logger, options) {
73
+ if (options.sourceUrl) {
74
+ return urlUtil.getServerRelativePath(options.webUrl, options.sourceUrl);
75
+ }
76
+ if (this.verbose) {
77
+ await logger.logToStderr(`Retrieving server-relative path for folder with ID '${options.sourceId}'...`);
78
+ }
79
+ const requestOptions = {
80
+ url: `${options.webUrl}/_api/Web/GetFolderById('${options.sourceId}')?$select=ServerRelativePath`,
81
+ headers: {
82
+ accept: 'application/json;odata=nometadata'
83
+ },
84
+ responseType: 'json'
85
+ };
86
+ const file = await request.get(requestOptions);
87
+ return file.ServerRelativePath.DecodedUrl;
88
+ }
89
+ getAbsoluteUrl(webUrl, url) {
90
+ return url.startsWith('https://') ? url : urlUtil.getAbsoluteUrl(webUrl, url);
91
+ }
76
92
  }
77
93
  _SpoFolderCopyCommand_instances = new WeakSet(), _SpoFolderCopyCommand_initTelemetry = function _SpoFolderCopyCommand_initTelemetry() {
78
94
  this.telemetry.push((args) => {
79
95
  Object.assign(this.telemetryProperties, {
80
- allowSchemaMismatch: args.options.allowSchemaMismatch || false
96
+ sourceUrl: typeof args.options.sourceUrl !== 'undefined',
97
+ sourceId: typeof args.options.sourceId !== 'undefined',
98
+ newName: typeof args.options.newName !== 'undefined',
99
+ nameConflictBehavior: typeof args.options.nameConflictBehavior !== 'undefined',
100
+ resetAuthorAndCreated: !!args.options.resetAuthorAndCreated,
101
+ bypassSharedLock: !!args.options.bypassSharedLock
81
102
  });
82
103
  });
83
104
  }, _SpoFolderCopyCommand_initOptions = function _SpoFolderCopyCommand_initOptions() {
84
105
  this.options.unshift({
85
106
  option: '-u, --webUrl <webUrl>'
86
107
  }, {
87
- option: '-s, --sourceUrl <sourceUrl>'
108
+ option: '-s, --sourceUrl [sourceUrl]'
109
+ }, {
110
+ option: '-i, --sourceId [sourceId]'
88
111
  }, {
89
112
  option: '-t, --targetUrl <targetUrl>'
90
113
  }, {
91
- option: '--allowSchemaMismatch'
114
+ option: '--newName [newName]'
115
+ }, {
116
+ option: '--nameConflictBehavior [nameConflictBehavior]',
117
+ autocomplete: this.nameConflictBehaviorOptions
118
+ }, {
119
+ option: '--resetAuthorAndCreated'
120
+ }, {
121
+ option: '--bypassSharedLock'
92
122
  });
93
123
  }, _SpoFolderCopyCommand_initValidators = function _SpoFolderCopyCommand_initValidators() {
94
- this.validators.push(async (args) => validation.isValidSharePointUrl(args.options.webUrl));
124
+ this.validators.push(async (args) => {
125
+ const isValidSharePointUrl = validation.isValidSharePointUrl(args.options.webUrl);
126
+ if (isValidSharePointUrl !== true) {
127
+ return isValidSharePointUrl;
128
+ }
129
+ if (args.options.sourceId && !validation.isValidGuid(args.options.sourceId)) {
130
+ return `'${args.options.sourceId}' is not a valid GUID for sourceId.`;
131
+ }
132
+ if (args.options.nameConflictBehavior && this.nameConflictBehaviorOptions.indexOf(args.options.nameConflictBehavior) === -1) {
133
+ return `'${args.options.nameConflictBehavior}' is not a valid value for nameConflictBehavior. Allowed values are: ${this.nameConflictBehaviorOptions.join(', ')}.`;
134
+ }
135
+ return true;
136
+ });
137
+ }, _SpoFolderCopyCommand_initOptionSets = function _SpoFolderCopyCommand_initOptionSets() {
138
+ this.optionSets.push({ options: ['sourceUrl', 'sourceId'] });
95
139
  };
96
140
  export default new SpoFolderCopyCommand();
97
141
  //# sourceMappingURL=folder-copy.js.map
@@ -40,7 +40,7 @@ class SpoFolderGetCommand extends SpoCommand {
40
40
  }
41
41
  else if (args.options.url) {
42
42
  const serverRelativePath = urlUtil.getServerRelativePath(args.options.webUrl, args.options.url);
43
- requestUrl += `/GetFolderByServerRelativeUrl('${formatting.encodeQueryParameter(serverRelativePath)}')`;
43
+ requestUrl += `/GetFolderByServerRelativePath(DecodedUrl='${formatting.encodeQueryParameter(serverRelativePath)}')`;
44
44
  }
45
45
  if (args.options.withPermissions) {
46
46
  requestUrl += `?$expand=ListItemAllFields/HasUniqueRoleAssignments,ListItemAllFields/RoleAssignments/Member,ListItemAllFields/RoleAssignments/RoleDefinitionBindings`;
@@ -52,7 +52,7 @@ class SpoFolderListCommand extends SpoCommand {
52
52
  }
53
53
  const allFolders = [];
54
54
  const serverRelativeUrl = urlUtil.getServerRelativePath(args.options.webUrl, parentFolderUrl);
55
- const requestUrl = `${args.options.webUrl}/_api/web/GetFolderByServerRelativeUrl(@url)/Folders?@url='${formatting.encodeQueryParameter(serverRelativeUrl)}'`;
55
+ const requestUrl = `${args.options.webUrl}/_api/web/GetFolderByServerRelativePath(DecodedUrl='${formatting.encodeQueryParameter(serverRelativeUrl)}')/Folders`;
56
56
  const queryParams = [`$skip=${skip}`, `$top=${SpoFolderListCommand.pageSize}`];
57
57
  if (fieldProperties.expandProperties.length > 0) {
58
58
  queryParams.push(`$expand=${fieldProperties.expandProperties.join(',')}`);
@@ -64,7 +64,7 @@ class SpoFolderListCommand extends SpoCommand {
64
64
  queryParams.push(`$filter=${args.options.filter}`);
65
65
  }
66
66
  const requestOptions = {
67
- url: `${requestUrl}&${queryParams.join('&')}`,
67
+ url: `${requestUrl}?${queryParams.join('&')}`,
68
68
  method: 'GET',
69
69
  headers: {
70
70
  'accept': 'application/json;odata=nometadata'
@@ -3,10 +3,8 @@ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (
3
3
  if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
4
4
  return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
5
5
  };
6
- var _SpoFolderMoveCommand_instances, _SpoFolderMoveCommand_initTelemetry, _SpoFolderMoveCommand_initOptions, _SpoFolderMoveCommand_initValidators;
7
- import url from 'url';
6
+ var _SpoFolderMoveCommand_instances, _SpoFolderMoveCommand_initTelemetry, _SpoFolderMoveCommand_initOptions, _SpoFolderMoveCommand_initValidators, _SpoFolderMoveCommand_initOptionSets;
8
7
  import request from '../../../../request.js';
9
- import { spo } from '../../../../utils/spo.js';
10
8
  import { urlUtil } from '../../../../utils/urlUtil.js';
11
9
  import { validation } from '../../../../utils/validation.js';
12
10
  import SpoCommand from '../../../base/SpoCommand.js';
@@ -21,79 +19,123 @@ class SpoFolderMoveCommand extends SpoCommand {
21
19
  constructor() {
22
20
  super();
23
21
  _SpoFolderMoveCommand_instances.add(this);
22
+ this.nameConflictBehaviorOptions = ['fail', 'rename'];
24
23
  __classPrivateFieldGet(this, _SpoFolderMoveCommand_instances, "m", _SpoFolderMoveCommand_initTelemetry).call(this);
25
24
  __classPrivateFieldGet(this, _SpoFolderMoveCommand_instances, "m", _SpoFolderMoveCommand_initOptions).call(this);
26
25
  __classPrivateFieldGet(this, _SpoFolderMoveCommand_instances, "m", _SpoFolderMoveCommand_initValidators).call(this);
26
+ __classPrivateFieldGet(this, _SpoFolderMoveCommand_instances, "m", _SpoFolderMoveCommand_initOptionSets).call(this);
27
27
  }
28
28
  getExcludedOptionsWithUrls() {
29
29
  return ['targetUrl', 'sourceUrl'];
30
30
  }
31
31
  async commandAction(logger, args) {
32
- const webUrl = args.options.webUrl;
33
- const parsedUrl = url.parse(webUrl);
34
- const tenantUrl = `${parsedUrl.protocol}//${parsedUrl.hostname}`;
35
- const sourceRelUrl = urlUtil.getServerRelativePath(webUrl, args.options.sourceUrl);
36
- const sourceAbsoluteUrl = urlUtil.urlCombine(tenantUrl, sourceRelUrl);
37
- const allowSchemaMismatch = args.options.allowSchemaMismatch || false;
38
- const requestUrl = urlUtil.urlCombine(webUrl, '/_api/site/CreateCopyJobs');
39
- const requestOptions = {
40
- url: requestUrl,
41
- headers: {
42
- 'accept': 'application/json;odata=nometadata'
43
- },
44
- data: {
45
- exportObjectUris: [sourceAbsoluteUrl],
46
- destinationUri: urlUtil.urlCombine(tenantUrl, args.options.targetUrl),
47
- options: {
48
- "AllowSchemaMismatch": allowSchemaMismatch,
49
- "IgnoreVersionHistory": true,
50
- "IsMoveMode": true
51
- }
52
- },
53
- responseType: 'json'
54
- };
55
32
  try {
56
- const jobInfo = await request.post(requestOptions);
57
- const copyJobInfo = jobInfo.value[0];
58
- const progressPollInterval = 30 * 60; //used previously implemented interval. The API does not provide guidance on what value should be used.
59
- await new Promise((resolve, reject) => {
60
- setTimeout(() => {
61
- spo.waitUntilCopyJobFinished({
62
- copyJobInfo,
63
- siteUrl: webUrl,
64
- pollingInterval: progressPollInterval,
65
- resolve,
66
- reject,
67
- logger,
68
- debug: this.debug,
69
- verbose: this.verbose
70
- });
71
- }, progressPollInterval);
72
- });
33
+ const sourcePath = await this.getSourcePath(logger, args.options);
34
+ if (this.verbose) {
35
+ await logger.logToStderr(`Moving folder '${sourcePath}' to '${args.options.targetUrl}'...`);
36
+ }
37
+ const absoluteSourcePath = this.getAbsoluteUrl(args.options.webUrl, sourcePath);
38
+ let absoluteTargetPath = this.getAbsoluteUrl(args.options.webUrl, args.options.targetUrl) + '/';
39
+ if (args.options.newName) {
40
+ absoluteTargetPath += args.options.newName;
41
+ }
42
+ else {
43
+ // Keep the original file name
44
+ absoluteTargetPath += sourcePath.substring(sourcePath.lastIndexOf('/') + 1);
45
+ }
46
+ const requestOptions = {
47
+ url: `${args.options.webUrl}/_api/SP.MoveCopyUtil.MoveFolderByPath`,
48
+ headers: {
49
+ accept: 'application/json;odata=nometadata'
50
+ },
51
+ responseType: 'json',
52
+ data: {
53
+ srcPath: {
54
+ DecodedUrl: absoluteSourcePath
55
+ },
56
+ destPath: {
57
+ DecodedUrl: absoluteTargetPath
58
+ },
59
+ options: {
60
+ KeepBoth: args.options.nameConflictBehavior === 'rename',
61
+ ShouldBypassSharedLocks: !!args.options.bypassSharedLock,
62
+ RetainEditorAndModifiedOnMove: !!args.options.retainEditorAndModified
63
+ }
64
+ }
65
+ };
66
+ await request.post(requestOptions);
73
67
  }
74
68
  catch (err) {
75
69
  this.handleRejectedODataJsonPromise(err);
76
70
  }
77
71
  }
72
+ async getSourcePath(logger, options) {
73
+ if (options.sourceUrl) {
74
+ return urlUtil.getServerRelativePath(options.webUrl, options.sourceUrl);
75
+ }
76
+ if (this.verbose) {
77
+ await logger.logToStderr(`Retrieving server-relative path for folder with ID '${options.sourceId}'...`);
78
+ }
79
+ const requestOptions = {
80
+ url: `${options.webUrl}/_api/Web/GetFolderById('${options.sourceId}')?$select=ServerRelativePath`,
81
+ headers: {
82
+ accept: 'application/json;odata=nometadata'
83
+ },
84
+ responseType: 'json'
85
+ };
86
+ const file = await request.get(requestOptions);
87
+ return file.ServerRelativePath.DecodedUrl;
88
+ }
89
+ getAbsoluteUrl(webUrl, url) {
90
+ return url.startsWith('https://') ? url : urlUtil.getAbsoluteUrl(webUrl, url);
91
+ }
78
92
  }
79
93
  _SpoFolderMoveCommand_instances = new WeakSet(), _SpoFolderMoveCommand_initTelemetry = function _SpoFolderMoveCommand_initTelemetry() {
80
94
  this.telemetry.push((args) => {
81
95
  Object.assign(this.telemetryProperties, {
82
- allowSchemaMismatch: args.options.allowSchemaMismatch || false
96
+ sourceUrl: typeof args.options.sourceUrl !== 'undefined',
97
+ sourceId: typeof args.options.sourceId !== 'undefined',
98
+ newName: typeof args.options.newName !== 'undefined',
99
+ nameConflictBehavior: typeof args.options.nameConflictBehavior !== 'undefined',
100
+ retainEditorAndModified: !!args.options.retainEditorAndModified,
101
+ bypassSharedLock: !!args.options.bypassSharedLock
83
102
  });
84
103
  });
85
104
  }, _SpoFolderMoveCommand_initOptions = function _SpoFolderMoveCommand_initOptions() {
86
105
  this.options.unshift({
87
106
  option: '-u, --webUrl <webUrl>'
88
107
  }, {
89
- option: '-s, --sourceUrl <sourceUrl>'
108
+ option: '-s, --sourceUrl [sourceUrl]'
109
+ }, {
110
+ option: '-i, --sourceId [sourceId]'
90
111
  }, {
91
112
  option: '-t, --targetUrl <targetUrl>'
92
113
  }, {
93
- option: '--allowSchemaMismatch'
114
+ option: '--newName [newName]'
115
+ }, {
116
+ option: '--nameConflictBehavior [nameConflictBehavior]',
117
+ autocomplete: this.nameConflictBehaviorOptions
118
+ }, {
119
+ option: '--retainEditorAndModified'
120
+ }, {
121
+ option: '--bypassSharedLock'
94
122
  });
95
123
  }, _SpoFolderMoveCommand_initValidators = function _SpoFolderMoveCommand_initValidators() {
96
- this.validators.push(async (args) => validation.isValidSharePointUrl(args.options.webUrl));
124
+ this.validators.push(async (args) => {
125
+ const isValidSharePointUrl = validation.isValidSharePointUrl(args.options.webUrl);
126
+ if (isValidSharePointUrl !== true) {
127
+ return isValidSharePointUrl;
128
+ }
129
+ if (args.options.sourceId && !validation.isValidGuid(args.options.sourceId)) {
130
+ return `'${args.options.sourceId}' is not a valid GUID for sourceId.`;
131
+ }
132
+ if (args.options.nameConflictBehavior && this.nameConflictBehaviorOptions.indexOf(args.options.nameConflictBehavior) === -1) {
133
+ return `'${args.options.nameConflictBehavior}' is not a valid value for nameConflictBehavior. Allowed values are: ${this.nameConflictBehaviorOptions.join(', ')}.`;
134
+ }
135
+ return true;
136
+ });
137
+ }, _SpoFolderMoveCommand_initOptionSets = function _SpoFolderMoveCommand_initOptionSets() {
138
+ this.optionSets.push({ options: ['sourceUrl', 'sourceId'] });
97
139
  };
98
140
  export default new SpoFolderMoveCommand();
99
141
  //# sourceMappingURL=folder-move.js.map
@@ -25,6 +25,9 @@ class SpoFolderRemoveCommand extends SpoCommand {
25
25
  __classPrivateFieldGet(this, _SpoFolderRemoveCommand_instances, "m", _SpoFolderRemoveCommand_initOptions).call(this);
26
26
  __classPrivateFieldGet(this, _SpoFolderRemoveCommand_instances, "m", _SpoFolderRemoveCommand_initValidators).call(this);
27
27
  }
28
+ getExcludedOptionsWithUrls() {
29
+ return ['url'];
30
+ }
28
31
  async commandAction(logger, args) {
29
32
  if (args.options.force) {
30
33
  await this.removeFolder(logger, args.options);
@@ -45,8 +48,8 @@ class SpoFolderRemoveCommand extends SpoCommand {
45
48
  if (this.verbose) {
46
49
  await logger.logToStderr(`Removing folder in site at ${options.webUrl}...`);
47
50
  }
48
- const serverRelativeUrl = urlUtil.getServerRelativePath(options.webUrl, options.url);
49
- let requestUrl = `${options.webUrl}/_api/web/GetFolderByServerRelativeUrl('${formatting.encodeQueryParameter(serverRelativeUrl)}')`;
51
+ const serverRelativePath = urlUtil.getServerRelativePath(options.webUrl, options.url);
52
+ let requestUrl = `${options.webUrl}/_api/web/GetFolderByServerRelativePath(DecodedUrl='${formatting.encodeQueryParameter(serverRelativePath)}')`;
50
53
  if (options.recycle) {
51
54
  requestUrl += `/recycle()`;
52
55
  }
@@ -71,8 +74,8 @@ class SpoFolderRemoveCommand extends SpoCommand {
71
74
  _SpoFolderRemoveCommand_instances = new WeakSet(), _SpoFolderRemoveCommand_initTelemetry = function _SpoFolderRemoveCommand_initTelemetry() {
72
75
  this.telemetry.push((args) => {
73
76
  Object.assign(this.telemetryProperties, {
74
- recycle: (!(!args.options.recycle)).toString(),
75
- force: (!(!args.options.force)).toString()
77
+ recycle: !!args.options.recycle,
78
+ force: !!args.options.force
76
79
  });
77
80
  });
78
81
  }, _SpoFolderRemoveCommand_initOptions = function _SpoFolderRemoveCommand_initOptions() {
@@ -4,9 +4,8 @@ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (
4
4
  return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
5
5
  };
6
6
  var _SpoFolderRenameCommand_instances, _SpoFolderRenameCommand_initOptions, _SpoFolderRenameCommand_initValidators;
7
- import config from '../../../../config.js';
8
7
  import request from '../../../../request.js';
9
- import { spo } from '../../../../utils/spo.js';
8
+ import { formatting } from '../../../../utils/formatting.js';
10
9
  import { urlUtil } from '../../../../utils/urlUtil.js';
11
10
  import { validation } from '../../../../utils/validation.js';
12
11
  import SpoCommand from '../../../base/SpoCommand.js';
@@ -29,32 +28,29 @@ class SpoFolderRenameCommand extends SpoCommand {
29
28
  }
30
29
  async commandAction(logger, args) {
31
30
  try {
32
- const contextResponse = await spo.getRequestDigest(args.options.webUrl);
33
- const formDigestValue = contextResponse.FormDigestValue;
34
- const webIdentityResp = await spo.getCurrentWebIdentity(args.options.webUrl, formDigestValue);
35
- const folderObjectIdentity = await spo.getFolderIdentity(webIdentityResp.objectIdentity, args.options.webUrl, args.options.url, formDigestValue);
36
31
  if (this.verbose) {
37
32
  await logger.logToStderr(`Renaming folder ${args.options.url} to ${args.options.name}`);
38
33
  }
39
34
  const serverRelativePath = urlUtil.getServerRelativePath(args.options.webUrl, args.options.url);
40
- const serverRelativeUrlWithoutOldFolder = serverRelativePath.substring(0, serverRelativePath.lastIndexOf('/'));
41
- const renamedServerRelativeUrl = `${serverRelativeUrlWithoutOldFolder}/${args.options.name}`;
42
35
  const requestOptions = {
43
- url: `${args.options.webUrl}/_vti_bin/client.svc/ProcessQuery`,
36
+ url: `${args.options.webUrl}/_api/Web/GetFolderByServerRelativePath(DecodedUrl='${formatting.encodeQueryParameter(serverRelativePath)}')/ListItemAllFields`,
44
37
  headers: {
45
- 'X-RequestDigest': formDigestValue
38
+ accept: 'application/json;odata=nometadata',
39
+ 'if-match': '*'
46
40
  },
47
- data: `<Request AddExpandoFieldTypeSuffix="true" SchemaVersion="15.0.0.0" LibraryVersion="16.0.0.0" ApplicationName="${config.applicationName}" xmlns="http://schemas.microsoft.com/sharepoint/clientquery/2009"><Actions><Method Name="MoveTo" Id="32" ObjectPathId="26"><Parameters><Parameter Type="String">${renamedServerRelativeUrl}</Parameter></Parameters></Method></Actions><ObjectPaths><Identity Id="26" Name="${folderObjectIdentity.objectIdentity}" /></ObjectPaths></Request>`
41
+ data: {
42
+ FileLeafRef: args.options.name,
43
+ Title: args.options.name
44
+ },
45
+ responseType: 'json'
48
46
  };
49
- const res = await request.post(requestOptions);
50
- const json = JSON.parse(res);
51
- const contents = json.find(x => { return x['ErrorInfo']; });
52
- if (contents && contents.ErrorInfo) {
53
- throw contents.ErrorInfo.ErrorMessage || 'ClientSvc unknown error';
47
+ const response = await request.patch(requestOptions);
48
+ if (response && response['odata.null'] === true) {
49
+ throw 'Folder not found.';
54
50
  }
55
51
  }
56
52
  catch (err) {
57
- this.handleRejectedPromise(err);
53
+ this.handleRejectedODataJsonPromise(err);
58
54
  }
59
55
  }
60
56
  }
@@ -75,7 +75,7 @@ class SpoFolderRetentionLabelEnsureCommand extends SpoCommand {
75
75
  }
76
76
  else {
77
77
  const serverRelativeUrl = urlUtil.getServerRelativePath(args.options.webUrl, args.options.folderUrl);
78
- requestUrl += `GetFolderByServerRelativeUrl('${formatting.encodeQueryParameter(serverRelativeUrl)}')`;
78
+ requestUrl += `GetFolderByServerRelativePath(DecodedUrl='${formatting.encodeQueryParameter(serverRelativeUrl)}')`;
79
79
  }
80
80
  const requestOptions = {
81
81
  url: `${requestUrl}?$expand=ListItemAllFields,ListItemAllFields/ParentList&$select=ServerRelativeUrl,ListItemAllFields/ParentList/Id,ListItemAllFields/Id`,
@@ -91,7 +91,7 @@ class SpoFolderRetentionLabelRemoveCommand extends SpoCommand {
91
91
  }
92
92
  else {
93
93
  const serverRelativeUrl = urlUtil.getServerRelativePath(args.options.webUrl, args.options.folderUrl);
94
- requestUrl += `GetFolderByServerRelativeUrl('${formatting.encodeQueryParameter(serverRelativeUrl)}')`;
94
+ requestUrl += `GetFolderByServerRelativePath(DecodedUrl='${formatting.encodeQueryParameter(serverRelativeUrl)}')`;
95
95
  }
96
96
  const requestOptions = {
97
97
  url: `${requestUrl}?$expand=ListItemAllFields,ListItemAllFields/ParentList&$select=ServerRelativeUrl,ListItemAllFields/ParentList/Id,ListItemAllFields/Id`,
@@ -41,7 +41,7 @@ class SpoFolderRoleAssignmentAddCommand extends SpoCommand {
41
41
  requestUrl += `GetList('${formatting.encodeQueryParameter(serverRelativeUrl)}')`;
42
42
  }
43
43
  else {
44
- requestUrl += `GetFolderByServerRelativeUrl('${formatting.encodeQueryParameter(serverRelativeUrl)}')/ListItemAllFields`;
44
+ requestUrl += `GetFolderByServerRelativePath(DecodedUrl='${formatting.encodeQueryParameter(serverRelativeUrl)}')/ListItemAllFields`;
45
45
  }
46
46
  const roleDefinitionId = await this.getRoleDefinitionId(args.options);
47
47
  if (args.options.upn) {
@@ -33,7 +33,7 @@ class SpoFolderRoleAssignmentRemoveCommand extends SpoCommand {
33
33
  await logger.logToStderr(`Removing role assignment from folder in site at ${args.options.webUrl}...`);
34
34
  }
35
35
  const serverRelativeUrl = urlUtil.getServerRelativePath(args.options.webUrl, args.options.folderUrl);
36
- const requestUrl = `${args.options.webUrl}/_api/web/GetFolderByServerRelativeUrl('${formatting.encodeQueryParameter(serverRelativeUrl)}')/ListItemAllFields`;
36
+ const requestUrl = `${args.options.webUrl}/_api/web/GetFolderByServerRelativePath(DecodedUrl='${formatting.encodeQueryParameter(serverRelativeUrl)}')/ListItemAllFields`;
37
37
  try {
38
38
  if (args.options.upn) {
39
39
  args.options.principalId = await this.getUserPrincipalId(args.options);
@@ -36,7 +36,7 @@ class SpoFolderRoleInheritanceBreakCommand extends SpoCommand {
36
36
  requestUrl += `GetList('${formatting.encodeQueryParameter(serverRelativeUrl)}')`;
37
37
  }
38
38
  else {
39
- requestUrl += `GetFolderByServerRelativeUrl('${formatting.encodeQueryParameter(serverRelativeUrl)}')/ListItemAllFields`;
39
+ requestUrl += `GetFolderByServerRelativePath(DecodedUrl='${formatting.encodeQueryParameter(serverRelativeUrl)}')/ListItemAllFields`;
40
40
  }
41
41
  const requestOptions = {
42
42
  url: `${requestUrl}/breakroleinheritance(${keepExistingPermissions})`,
@@ -35,7 +35,7 @@ class SpoFolderRoleInheritanceResetCommand extends SpoCommand {
35
35
  requestUrl += `GetList('${formatting.encodeQueryParameter(serverRelativeUrl)}')`;
36
36
  }
37
37
  else {
38
- requestUrl += `GetFolderByServerRelativeUrl('${formatting.encodeQueryParameter(serverRelativeUrl)}')/ListItemAllFields`;
38
+ requestUrl += `GetFolderByServerRelativePath(DecodedUrl='${formatting.encodeQueryParameter(serverRelativeUrl)}')/ListItemAllFields`;
39
39
  }
40
40
  const requestOptions = {
41
41
  url: `${requestUrl}/resetroleinheritance`,
@@ -57,7 +57,6 @@ class SpoGroupListCommand extends SpoCommand {
57
57
  responseType: 'json'
58
58
  };
59
59
  const groupProperties = await request.get(requestOptions);
60
- await logger.log(groupProperties);
61
60
  if (!options.output || !Cli.shouldTrimOutput(options.output)) {
62
61
  await logger.log(groupProperties);
63
62
  }