@pnp/cli-microsoft365 5.0.0-beta.fe151d6 → 5.1.0-beta.c8f5fd7

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 (490) hide show
  1. package/.devcontainer/devcontainer.json +13 -2
  2. package/.eslintrc.js +3 -0
  3. package/.mocharc.json +9 -0
  4. package/README.md +3 -3
  5. package/dist/Auth.js +22 -9
  6. package/dist/Command.js +1 -1
  7. package/dist/api.d.ts +13 -0
  8. package/dist/api.js +17 -0
  9. package/dist/appInsights.js +3 -2
  10. package/dist/cli/Cli.js +59 -12
  11. package/dist/m365/aad/commands/app/app-add.js +54 -18
  12. package/dist/m365/aad/commands/app/app-delete.js +123 -0
  13. package/dist/m365/aad/commands/app/app-get.js +142 -0
  14. package/dist/m365/aad/commands/app/app-role-delete.js +2 -2
  15. package/dist/m365/aad/commands/app/app-role-list.js +6 -5
  16. package/dist/m365/aad/commands/app/app-set.js +98 -3
  17. package/dist/m365/aad/commands/approleassignment/approleassignment-add.js +4 -4
  18. package/dist/m365/aad/commands/approleassignment/approleassignment-list.js +3 -3
  19. package/dist/m365/aad/commands/approleassignment/approleassignment-remove.js +4 -4
  20. package/dist/m365/aad/commands/group/group-list.js +55 -0
  21. package/dist/m365/aad/commands/groupsetting/groupsetting-add.js +2 -2
  22. package/dist/m365/aad/commands/groupsetting/groupsetting-get.js +2 -2
  23. package/dist/m365/aad/commands/groupsetting/groupsetting-list.js +7 -6
  24. package/dist/m365/aad/commands/groupsetting/groupsetting-remove.js +2 -2
  25. package/dist/m365/aad/commands/groupsetting/groupsetting-set.js +2 -2
  26. package/dist/m365/aad/commands/groupsettingtemplate/groupsettingtemplate-get.js +8 -8
  27. package/dist/m365/aad/commands/groupsettingtemplate/groupsettingtemplate-list.js +7 -6
  28. package/dist/m365/{spo/commands/site/SpoOperation.js → aad/commands/o365group/GroupExtended.js} +1 -1
  29. package/dist/m365/aad/commands/o365group/o365group-add.js +41 -3
  30. package/dist/m365/aad/commands/o365group/o365group-conversation-list.js +41 -0
  31. package/dist/m365/aad/commands/o365group/o365group-conversation-post-list.js +87 -0
  32. package/dist/m365/aad/commands/o365group/o365group-get.js +2 -2
  33. package/dist/m365/aad/commands/o365group/o365group-list.js +15 -12
  34. package/dist/m365/aad/commands/o365group/o365group-recyclebinitem-clear.js +8 -7
  35. package/dist/m365/aad/commands/o365group/o365group-recyclebinitem-list.js +7 -6
  36. package/dist/m365/aad/commands/o365group/o365group-recyclebinitem-restore.js +2 -2
  37. package/dist/m365/aad/commands/o365group/o365group-remove.js +2 -2
  38. package/dist/m365/aad/commands/o365group/o365group-renew.js +2 -2
  39. package/dist/m365/aad/commands/o365group/o365group-set.js +2 -2
  40. package/dist/m365/aad/commands/o365group/o365group-teamify.js +2 -2
  41. package/dist/m365/aad/commands/o365group/o365group-user-add.js +3 -3
  42. package/dist/m365/aad/commands/o365group/o365group-user-list.js +21 -15
  43. package/dist/m365/aad/commands/o365group/o365group-user-remove.js +3 -3
  44. package/dist/m365/aad/commands/o365group/o365group-user-set.js +23 -17
  45. package/dist/m365/aad/commands/oauth2grant/oauth2grant-add.js +3 -3
  46. package/dist/m365/aad/commands/oauth2grant/oauth2grant-list.js +2 -2
  47. package/dist/m365/aad/commands/sp/sp-add.js +3 -3
  48. package/dist/m365/aad/commands/sp/sp-get.js +3 -3
  49. package/dist/m365/aad/commands/user/user-get.js +35 -8
  50. package/dist/m365/aad/commands/user/user-hibp.js +67 -0
  51. package/dist/m365/aad/commands/user/user-list.js +14 -10
  52. package/dist/m365/aad/commands/user/user-password-validate.js +42 -0
  53. package/dist/m365/aad/commands/user/user-set.js +2 -2
  54. package/dist/m365/aad/commands.js +7 -0
  55. package/dist/m365/app/commands/permission/permission-list.js +266 -0
  56. package/dist/m365/app/commands.js +7 -0
  57. package/dist/m365/base/AppCommand.js +76 -0
  58. package/dist/m365/base/SpoCommand.js +0 -260
  59. package/dist/m365/cli/commands/cli-doctor.js +4 -2
  60. package/dist/m365/cli/commands/config/config-set.js +5 -1
  61. package/dist/m365/commands/status.js +3 -3
  62. package/dist/m365/file/commands/file-add.js +3 -3
  63. package/dist/m365/file/commands/file-list.js +14 -12
  64. package/dist/m365/flow/commands/flow-export.js +2 -2
  65. package/dist/m365/flow/commands/flow-get.js +2 -2
  66. package/dist/m365/flow/commands/flow-remove.js +2 -2
  67. package/dist/m365/flow/commands/run/run-cancel.js +2 -2
  68. package/dist/m365/flow/commands/run/run-resubmit.js +2 -2
  69. package/dist/m365/graph/commands/schemaextension/schemaextension-add.js +2 -2
  70. package/dist/m365/graph/commands/schemaextension/schemaextension-list.js +2 -2
  71. package/dist/m365/graph/commands/schemaextension/schemaextension-set.js +2 -2
  72. package/dist/m365/graph/commands/subscription/subscription-add.js +2 -2
  73. package/dist/m365/onedrive/commands/onedrive-list.js +3 -2
  74. package/dist/m365/outlook/commands/message/message-list.js +6 -5
  75. package/dist/m365/outlook/commands/room/room-list.js +44 -0
  76. package/dist/m365/outlook/commands/roomlist/roomlist-list.js +26 -0
  77. package/dist/m365/outlook/commands.js +2 -0
  78. package/dist/m365/pa/cds-project-mutator.js +1 -1
  79. package/dist/m365/pa/commands/app/app-get.js +2 -2
  80. package/dist/m365/pa/commands/app/app-list.js +28 -1
  81. package/dist/m365/pa/commands/app/app-remove.js +2 -2
  82. package/dist/m365/pa/commands/pcf/pcf-init.js +4 -4
  83. package/dist/m365/pa/commands/solution/solution-init.js +2 -2
  84. package/dist/m365/{base/AzmgmtResponse.js → planner/AppliedCategories.js} +1 -1
  85. package/dist/m365/planner/commands/bucket/bucket-add.js +2 -2
  86. package/dist/m365/planner/commands/bucket/bucket-list.js +7 -7
  87. package/dist/m365/planner/commands/plan/plan-add.js +2 -2
  88. package/dist/m365/planner/commands/plan/plan-details-get.js +134 -0
  89. package/dist/m365/planner/commands/plan/plan-get.js +7 -7
  90. package/dist/m365/planner/commands/plan/plan-list.js +2 -2
  91. package/dist/m365/planner/commands/task/task-add.js +288 -0
  92. package/dist/m365/planner/commands/task/task-details-get.js +39 -0
  93. package/dist/m365/planner/commands/task/task-get.js +37 -0
  94. package/dist/m365/planner/commands/task/task-list.js +46 -16
  95. package/dist/m365/planner/commands/task/task-set.js +357 -0
  96. package/dist/m365/planner/commands.js +6 -1
  97. package/dist/m365/search/commands/externalconnection/externalconnection-add.js +99 -0
  98. package/dist/m365/search/commands.js +7 -0
  99. package/dist/m365/spfx/commands/package/package-generate.js +4 -4
  100. package/dist/m365/spfx/commands/project/base-project-command.js +18 -19
  101. package/dist/m365/spfx/commands/project/project-upgrade/index.js +0 -1
  102. package/dist/m365/spfx/commands/project/project-upgrade/rules/FN001005_DEP_types_react.js +2 -2
  103. package/dist/m365/spfx/commands/project/project-upgrade/rules/FN001006_DEP_types_react_dom.js +2 -2
  104. package/dist/m365/spfx/commands/project/project-upgrade/rules/FN001008_DEP_react.js +2 -2
  105. package/dist/m365/spfx/commands/project/project-upgrade/rules/FN001009_DEP_react_dom.js +2 -2
  106. package/dist/m365/spfx/commands/project/project-upgrade/rules/FN001015_DEP_types_react_addons_shallow_compare.js +2 -2
  107. package/dist/m365/spfx/commands/project/project-upgrade/rules/FN001016_DEP_types_react_addons_update.js +2 -2
  108. package/dist/m365/spfx/commands/project/project-upgrade/rules/FN001017_DEP_types_react_addons_update.js +2 -2
  109. package/dist/m365/spfx/commands/project/project-upgrade/rules/FN001019_DEP_knockout.js +2 -2
  110. package/dist/m365/spfx/commands/project/project-upgrade/rules/FN001020_DEP_types_knockout.js +2 -2
  111. package/dist/m365/spfx/commands/project/project-upgrade/rules/FN001022_DEP_office_ui_fabric_react.js +2 -2
  112. package/dist/m365/spfx/commands/project/project-upgrade/rules/FN002015_DEVDEP_types_react.js +2 -2
  113. package/dist/m365/spfx/commands/project/project-upgrade/rules/FN002016_DEVDEP_types_react_dom.js +2 -2
  114. package/dist/m365/spfx/commands/project/project-upgrade/rules/FN006005_CFG_PS_metadata.js +63 -0
  115. package/dist/m365/spfx/commands/project/project-upgrade/rules/FN006006_CFG_PS_features.js +60 -0
  116. package/dist/m365/spfx/commands/project/project-upgrade/rules/FN014008_CODE_launch_hostedWorkbench_type.js +62 -0
  117. package/dist/m365/spfx/commands/project/project-upgrade/rules/FN020001_RES_types_react.js +2 -2
  118. package/dist/m365/spfx/commands/project/project-upgrade/rules/FN022001_SCSS_remove_fabric_react.js +2 -2
  119. package/dist/m365/spfx/commands/project/project-upgrade/rules/FN022002_SCSS_add_fabric_react.js +2 -2
  120. package/dist/m365/spfx/commands/project/project-upgrade/upgrade-1.14.0.js +59 -0
  121. package/dist/m365/spfx/commands/project/project-upgrade.js +2 -1
  122. package/dist/m365/spfx/commands/spfx-doctor.js +25 -6
  123. package/dist/m365/spo/commands/app/app-add.js +3 -2
  124. package/dist/m365/spo/commands/app/app-deploy.js +4 -4
  125. package/dist/m365/spo/commands/app/app-get.js +4 -4
  126. package/dist/m365/spo/commands/app/app-install.js +3 -3
  127. package/dist/m365/spo/commands/app/app-instance-list.js +2 -1
  128. package/dist/m365/spo/commands/app/app-list.js +3 -2
  129. package/dist/m365/spo/commands/app/app-remove.js +4 -5
  130. package/dist/m365/spo/commands/app/app-retract.js +4 -5
  131. package/dist/m365/spo/commands/app/app-uninstall.js +3 -3
  132. package/dist/m365/spo/commands/app/app-upgrade.js +3 -3
  133. package/dist/m365/spo/commands/apppage/apppage-add.js +2 -2
  134. package/dist/m365/spo/commands/apppage/apppage-set.js +2 -2
  135. package/dist/m365/spo/commands/cdn/cdn-get.js +4 -3
  136. package/dist/m365/spo/commands/cdn/cdn-origin-add.js +5 -5
  137. package/dist/m365/spo/commands/cdn/cdn-origin-list.js +4 -3
  138. package/dist/m365/spo/commands/cdn/cdn-origin-remove.js +5 -5
  139. package/dist/m365/spo/commands/cdn/cdn-policy-list.js +4 -3
  140. package/dist/m365/spo/commands/cdn/cdn-policy-set.js +5 -5
  141. package/dist/m365/spo/commands/cdn/cdn-set.js +3 -2
  142. package/dist/m365/spo/commands/contenttype/contenttype-add.js +6 -6
  143. package/dist/m365/spo/commands/contenttype/contenttype-field-remove.js +6 -6
  144. package/dist/m365/spo/commands/contenttype/contenttype-field-set.js +6 -6
  145. package/dist/m365/spo/commands/contenttype/contenttype-get.js +2 -1
  146. package/dist/m365/spo/commands/contenttype/contenttype-list.js +2 -1
  147. package/dist/m365/spo/commands/contenttype/contenttype-remove.js +2 -1
  148. package/dist/m365/spo/commands/contenttypehub/contenttypehub-get.js +3 -2
  149. package/dist/m365/spo/commands/customaction/customaction-add.js +3 -3
  150. package/dist/m365/spo/commands/customaction/customaction-clear.js +2 -1
  151. package/dist/m365/spo/commands/customaction/customaction-get.js +3 -3
  152. package/dist/m365/spo/commands/customaction/customaction-list.js +2 -1
  153. package/dist/m365/spo/commands/customaction/customaction-remove.js +3 -3
  154. package/dist/m365/spo/commands/customaction/customaction-set.js +4 -4
  155. package/dist/m365/spo/commands/externaluser/externaluser-list.js +6 -6
  156. package/dist/m365/spo/commands/feature/feature-enable.js +2 -1
  157. package/dist/m365/spo/commands/feature/feature-list.js +2 -1
  158. package/dist/m365/spo/commands/field/field-add.js +3 -2
  159. package/dist/m365/spo/commands/field/field-get.js +5 -5
  160. package/dist/m365/spo/commands/field/field-remove.js +5 -5
  161. package/dist/m365/spo/commands/field/field-set.js +10 -10
  162. package/dist/m365/spo/commands/file/file-add.js +5 -7
  163. package/dist/m365/spo/commands/file/file-checkin.js +3 -3
  164. package/dist/m365/spo/commands/file/file-checkout.js +3 -3
  165. package/dist/m365/spo/commands/file/file-copy.js +18 -7
  166. package/dist/m365/spo/commands/file/file-get.js +3 -3
  167. package/dist/m365/spo/commands/file/file-list.js +3 -3
  168. package/dist/m365/spo/commands/file/file-move.js +18 -7
  169. package/dist/m365/spo/commands/file/file-remove.js +3 -3
  170. package/dist/m365/spo/commands/file/file-sharinginfo-get.js +3 -3
  171. package/dist/m365/spo/commands/folder/folder-add.js +3 -3
  172. package/dist/m365/spo/commands/folder/folder-copy.js +16 -5
  173. package/dist/m365/spo/commands/folder/folder-get.js +3 -3
  174. package/dist/m365/spo/commands/folder/folder-list.js +3 -3
  175. package/dist/m365/spo/commands/folder/folder-move.js +16 -5
  176. package/dist/m365/spo/commands/folder/folder-remove.js +3 -3
  177. package/dist/m365/spo/commands/folder/folder-rename.js +6 -8
  178. package/dist/m365/spo/commands/group/group-get.js +2 -1
  179. package/dist/m365/spo/commands/group/group-list.js +2 -1
  180. package/dist/m365/spo/commands/group/group-remove.js +2 -1
  181. package/dist/m365/spo/commands/group/group-user-add.js +76 -17
  182. package/dist/m365/spo/commands/group/group-user-list.js +2 -1
  183. package/dist/m365/spo/commands/group/group-user-remove.js +101 -0
  184. package/dist/m365/spo/commands/hidedefaultthemes/hidedefaultthemes-get.js +2 -1
  185. package/dist/m365/spo/commands/hidedefaultthemes/hidedefaultthemes-set.js +2 -1
  186. package/dist/m365/spo/commands/homesite/homesite-get.js +2 -1
  187. package/dist/m365/spo/commands/homesite/homesite-remove.js +3 -2
  188. package/dist/m365/spo/commands/homesite/homesite-set.js +5 -5
  189. package/dist/m365/spo/commands/hubsite/hubsite-connect.js +4 -4
  190. package/dist/m365/spo/commands/hubsite/hubsite-data-get.js +2 -1
  191. package/dist/m365/spo/commands/hubsite/hubsite-disconnect.js +3 -2
  192. package/dist/m365/spo/commands/hubsite/hubsite-get.js +3 -3
  193. package/dist/m365/spo/commands/hubsite/hubsite-list.js +2 -1
  194. package/dist/m365/spo/commands/hubsite/hubsite-register.js +3 -2
  195. package/dist/m365/spo/commands/hubsite/hubsite-rights-grant.js +6 -6
  196. package/dist/m365/spo/commands/hubsite/hubsite-rights-revoke.js +6 -6
  197. package/dist/m365/spo/commands/hubsite/hubsite-set.js +8 -8
  198. package/dist/m365/spo/commands/hubsite/hubsite-theme-sync.js +2 -1
  199. package/dist/m365/spo/commands/hubsite/hubsite-unregister.js +3 -2
  200. package/dist/m365/spo/commands/knowledgehub/knowledgehub-get.js +3 -2
  201. package/dist/m365/spo/commands/knowledgehub/knowledgehub-remove.js +3 -2
  202. package/dist/m365/spo/commands/knowledgehub/knowledgehub-set.js +5 -5
  203. package/dist/m365/spo/commands/list/list-add.js +5 -5
  204. package/dist/m365/spo/commands/list/list-contenttype-add.js +3 -3
  205. package/dist/m365/spo/commands/list/list-contenttype-default-set.js +3 -3
  206. package/dist/m365/spo/commands/list/list-contenttype-list.js +3 -3
  207. package/dist/m365/spo/commands/list/list-contenttype-remove.js +3 -3
  208. package/dist/m365/spo/commands/list/list-get.js +3 -3
  209. package/dist/m365/spo/commands/list/list-label-get.js +4 -4
  210. package/dist/m365/spo/commands/list/list-label-set.js +5 -5
  211. package/dist/m365/spo/commands/list/list-list.js +2 -1
  212. package/dist/m365/spo/commands/list/list-remove.js +3 -3
  213. package/dist/m365/spo/commands/list/list-set.js +6 -6
  214. package/dist/m365/spo/commands/list/list-sitescript-get.js +4 -4
  215. package/dist/m365/spo/commands/list/list-view-field-add.js +5 -5
  216. package/dist/m365/spo/commands/list/list-view-field-remove.js +5 -5
  217. package/dist/m365/spo/commands/list/list-view-field-set.js +5 -5
  218. package/dist/m365/spo/commands/list/list-view-get.js +5 -5
  219. package/dist/m365/spo/commands/list/list-view-list.js +3 -3
  220. package/dist/m365/spo/commands/list/list-view-remove.js +4 -4
  221. package/dist/m365/spo/commands/list/list-view-set.js +5 -5
  222. package/dist/m365/spo/commands/list/list-webhook-add.js +3 -3
  223. package/dist/m365/spo/commands/list/list-webhook-get.js +4 -4
  224. package/dist/m365/spo/commands/list/list-webhook-list.js +4 -4
  225. package/dist/m365/spo/commands/list/list-webhook-remove.js +4 -4
  226. package/dist/m365/spo/commands/list/list-webhook-set.js +4 -4
  227. package/dist/m365/spo/commands/listitem/listitem-add.js +5 -7
  228. package/dist/m365/spo/commands/listitem/listitem-attachment-list.js +3 -3
  229. package/dist/m365/spo/commands/listitem/listitem-get.js +3 -3
  230. package/dist/m365/spo/commands/listitem/listitem-isrecord.js +5 -7
  231. package/dist/m365/spo/commands/listitem/listitem-list.js +4 -4
  232. package/dist/m365/spo/commands/listitem/listitem-record-declare.js +6 -8
  233. package/dist/m365/spo/commands/listitem/listitem-record-undeclare.js +5 -7
  234. package/dist/m365/spo/commands/listitem/listitem-remove.js +3 -3
  235. package/dist/m365/spo/commands/listitem/listitem-set.js +4 -4
  236. package/dist/m365/spo/commands/mail/mail-send.js +2 -1
  237. package/dist/m365/spo/commands/navigation/navigation-node-add.js +2 -1
  238. package/dist/m365/spo/commands/navigation/navigation-node-list.js +2 -1
  239. package/dist/m365/spo/commands/navigation/navigation-node-remove.js +3 -2
  240. package/dist/m365/spo/commands/orgassetslibrary/orgassetslibrary-add.js +5 -4
  241. package/dist/m365/spo/commands/orgassetslibrary/orgassetslibrary-list.js +3 -2
  242. package/dist/m365/spo/commands/orgassetslibrary/orgassetslibrary-remove.js +3 -2
  243. package/dist/m365/spo/commands/orgnewssite/orgnewssite-list.js +3 -2
  244. package/dist/m365/spo/commands/orgnewssite/orgnewssite-remove.js +5 -5
  245. package/dist/m365/spo/commands/orgnewssite/orgnewssite-set.js +5 -5
  246. package/dist/m365/spo/commands/page/Page.js +2 -2
  247. package/dist/m365/spo/commands/page/page-add.js +4 -4
  248. package/dist/m365/spo/commands/page/page-clientsidewebpart-add.js +3 -3
  249. package/dist/m365/spo/commands/page/page-column-get.js +2 -1
  250. package/dist/m365/spo/commands/page/page-column-list.js +2 -1
  251. package/dist/m365/spo/commands/page/page-control-get.js +3 -3
  252. package/dist/m365/spo/commands/page/page-control-list.js +2 -1
  253. package/dist/m365/spo/commands/page/page-control-set.js +3 -3
  254. package/dist/m365/spo/commands/page/page-copy.js +2 -1
  255. package/dist/m365/spo/commands/page/page-get.js +3 -3
  256. package/dist/m365/spo/commands/page/page-header-set.js +2 -1
  257. package/dist/m365/spo/commands/page/page-list.js +2 -1
  258. package/dist/m365/spo/commands/page/page-remove.js +4 -4
  259. package/dist/m365/spo/commands/page/page-section-add.js +2 -1
  260. package/dist/m365/spo/commands/page/page-section-get.js +2 -1
  261. package/dist/m365/spo/commands/page/page-section-list.js +2 -1
  262. package/dist/m365/spo/commands/page/page-set.js +4 -4
  263. package/dist/m365/spo/commands/page/page-template-list.js +2 -1
  264. package/dist/m365/spo/commands/page/page-text-add.js +4 -4
  265. package/dist/m365/spo/commands/propertybag/propertybag-base.js +4 -4
  266. package/dist/m365/spo/commands/propertybag/propertybag-get.js +4 -6
  267. package/dist/m365/spo/commands/propertybag/propertybag-list.js +4 -6
  268. package/dist/m365/spo/commands/propertybag/propertybag-remove.js +6 -9
  269. package/dist/m365/spo/commands/propertybag/propertybag-set.js +8 -10
  270. package/dist/m365/spo/commands/serviceprincipal/serviceprincipal-grant-add.js +4 -4
  271. package/dist/m365/spo/commands/serviceprincipal/serviceprincipal-grant-list.js +3 -2
  272. package/dist/m365/spo/commands/serviceprincipal/serviceprincipal-grant-revoke.js +4 -4
  273. package/dist/m365/spo/commands/serviceprincipal/serviceprincipal-permissionrequest-approve.js +5 -5
  274. package/dist/m365/spo/commands/serviceprincipal/serviceprincipal-permissionrequest-deny.js +5 -5
  275. package/dist/m365/spo/commands/serviceprincipal/serviceprincipal-permissionrequest-list.js +3 -2
  276. package/dist/m365/spo/commands/serviceprincipal/serviceprincipal-set.js +3 -2
  277. package/dist/m365/spo/commands/site/site-add.js +36 -16
  278. package/dist/m365/spo/commands/site/site-appcatalog-add.js +5 -5
  279. package/dist/m365/spo/commands/site/site-appcatalog-remove.js +5 -5
  280. package/dist/m365/spo/commands/site/site-apppermission-add.js +3 -4
  281. package/dist/m365/spo/commands/site/site-apppermission-get.js +2 -2
  282. package/dist/m365/spo/commands/site/site-apppermission-list.js +2 -2
  283. package/dist/m365/spo/commands/site/site-apppermission-remove.js +3 -4
  284. package/dist/m365/spo/commands/site/site-apppermission-set.js +3 -4
  285. package/dist/m365/spo/commands/site/site-chrome-set.js +2 -1
  286. package/dist/m365/spo/commands/site/site-classic-add.js +33 -13
  287. package/dist/m365/spo/commands/site/site-classic-list.js +4 -4
  288. package/dist/m365/spo/commands/site/site-classic-set.js +33 -13
  289. package/dist/m365/spo/commands/site/site-commsite-enable.js +6 -6
  290. package/dist/m365/spo/commands/site/site-ensure.js +3 -2
  291. package/dist/m365/spo/commands/site/site-get.js +2 -1
  292. package/dist/m365/spo/commands/site/site-groupify.js +2 -1
  293. package/dist/m365/spo/commands/site/site-inplacerecordsmanagement-set.js +3 -3
  294. package/dist/m365/spo/commands/site/site-list.js +4 -4
  295. package/dist/m365/spo/commands/site/site-recyclebinitem-list.js +77 -0
  296. package/dist/m365/spo/commands/site/site-remove.js +34 -14
  297. package/dist/m365/spo/commands/site/site-rename.js +3 -2
  298. package/dist/m365/spo/commands/site/site-set.js +12 -12
  299. package/dist/m365/spo/commands/sitedesign/sitedesign-add.js +4 -4
  300. package/dist/m365/spo/commands/sitedesign/sitedesign-apply.js +4 -4
  301. package/dist/m365/spo/commands/sitedesign/sitedesign-get.js +3 -3
  302. package/dist/m365/spo/commands/sitedesign/sitedesign-list.js +2 -1
  303. package/dist/m365/spo/commands/sitedesign/sitedesign-remove.js +4 -4
  304. package/dist/m365/spo/commands/sitedesign/sitedesign-rights-grant.js +4 -4
  305. package/dist/m365/spo/commands/sitedesign/sitedesign-rights-list.js +4 -4
  306. package/dist/m365/spo/commands/sitedesign/sitedesign-rights-revoke.js +4 -4
  307. package/dist/m365/spo/commands/sitedesign/sitedesign-run-list.js +3 -3
  308. package/dist/m365/spo/commands/sitedesign/sitedesign-run-status-get.js +3 -3
  309. package/dist/m365/spo/commands/sitedesign/sitedesign-set.js +4 -4
  310. package/dist/m365/spo/commands/sitedesign/sitedesign-task-get.js +3 -3
  311. package/dist/m365/spo/commands/sitedesign/sitedesign-task-list.js +2 -1
  312. package/dist/m365/spo/commands/sitedesign/sitedesign-task-remove.js +3 -3
  313. package/dist/m365/spo/commands/sitescript/sitescript-add.js +3 -2
  314. package/dist/m365/spo/commands/sitescript/sitescript-get.js +4 -4
  315. package/dist/m365/spo/commands/sitescript/sitescript-list.js +3 -2
  316. package/dist/m365/spo/commands/sitescript/sitescript-remove.js +4 -4
  317. package/dist/m365/spo/commands/sitescript/sitescript-set.js +4 -4
  318. package/dist/m365/spo/commands/spo-search.js +4 -4
  319. package/dist/m365/spo/commands/spo-set.js +2 -1
  320. package/dist/m365/spo/commands/storageentity/storageentity-get.js +2 -1
  321. package/dist/m365/spo/commands/storageentity/storageentity-list.js +2 -1
  322. package/dist/m365/spo/commands/storageentity/storageentity-remove.js +5 -5
  323. package/dist/m365/spo/commands/storageentity/storageentity-set.js +5 -5
  324. package/dist/m365/spo/commands/tenant/tenant-appcatalog-add.js +2 -1
  325. package/dist/m365/spo/commands/tenant/tenant-appcatalogurl-get.js +2 -1
  326. package/dist/m365/spo/commands/tenant/tenant-recyclebinitem-list.js +3 -2
  327. package/dist/m365/spo/commands/tenant/tenant-recyclebinitem-remove.js +16 -6
  328. package/dist/m365/spo/commands/tenant/tenant-recyclebinitem-restore.js +16 -6
  329. package/dist/m365/spo/commands/tenant/tenant-settings-list.js +3 -2
  330. package/dist/m365/spo/commands/tenant/tenant-settings-set.js +5 -5
  331. package/dist/m365/spo/commands/term/term-add.js +13 -13
  332. package/dist/m365/spo/commands/term/term-get.js +9 -9
  333. package/dist/m365/spo/commands/term/term-group-add.js +6 -6
  334. package/dist/m365/spo/commands/term/term-group-get.js +5 -5
  335. package/dist/m365/spo/commands/term/term-group-list.js +3 -2
  336. package/dist/m365/spo/commands/term/term-list.js +7 -7
  337. package/dist/m365/spo/commands/term/term-set-add.js +9 -9
  338. package/dist/m365/spo/commands/term/term-set-get.js +7 -7
  339. package/dist/m365/spo/commands/term/term-set-list.js +5 -5
  340. package/dist/m365/spo/commands/theme/theme-apply.js +5 -5
  341. package/dist/m365/spo/commands/theme/theme-get.js +4 -4
  342. package/dist/m365/spo/commands/theme/theme-list.js +2 -1
  343. package/dist/m365/spo/commands/theme/theme-remove.js +2 -1
  344. package/dist/m365/spo/commands/theme/theme-set.js +5 -5
  345. package/dist/m365/spo/commands/user/user-get.js +2 -1
  346. package/dist/m365/spo/commands/user/user-list.js +2 -1
  347. package/dist/m365/spo/commands/user/user-remove.js +2 -1
  348. package/dist/m365/spo/commands/userprofile/userprofile-get.js +3 -3
  349. package/dist/m365/spo/commands/userprofile/userprofile-set.js +3 -2
  350. package/dist/m365/spo/commands/web/web-add.js +4 -3
  351. package/dist/m365/spo/commands/web/web-clientsidewebpart-list.js +2 -1
  352. package/dist/m365/spo/commands/web/web-get.js +2 -1
  353. package/dist/m365/spo/commands/web/web-installedlanguage-list.js +49 -0
  354. package/dist/m365/spo/commands/web/web-list.js +2 -1
  355. package/dist/m365/spo/commands/web/web-reindex.js +10 -11
  356. package/dist/m365/spo/commands/web/web-remove.js +2 -1
  357. package/dist/m365/spo/commands/web/web-set.js +2 -1
  358. package/dist/m365/spo/commands.js +3 -0
  359. package/dist/m365/teams/commands/app/app-install.js +77 -23
  360. package/dist/m365/teams/commands/app/app-list.js +17 -14
  361. package/dist/m365/teams/commands/app/app-remove.js +2 -2
  362. package/dist/m365/teams/commands/app/app-uninstall.js +2 -2
  363. package/dist/m365/teams/commands/app/app-update.js +55 -13
  364. package/dist/m365/teams/commands/channel/channel-add.js +2 -2
  365. package/dist/m365/teams/commands/channel/channel-get.js +32 -10
  366. package/dist/m365/teams/commands/channel/channel-list.js +7 -8
  367. package/dist/m365/teams/commands/channel/channel-remove.js +3 -3
  368. package/dist/m365/teams/commands/channel/channel-set.js +2 -2
  369. package/dist/m365/teams/commands/chat/chat-list.js +44 -0
  370. package/dist/m365/teams/commands/chat/chat-member-list.js +42 -0
  371. package/dist/m365/teams/commands/chat/chat-message-list.js +60 -0
  372. package/dist/m365/teams/commands/chat/chat-message-send.js +225 -0
  373. package/dist/m365/teams/commands/conversationmember/conversationmember-add.js +3 -3
  374. package/dist/m365/teams/commands/conversationmember/conversationmember-list.js +9 -9
  375. package/dist/m365/teams/commands/funsettings/funsettings-list.js +2 -2
  376. package/dist/m365/teams/commands/funsettings/funsettings-set.js +2 -2
  377. package/dist/m365/teams/commands/guestsettings/guestsettings-list.js +2 -2
  378. package/dist/m365/teams/commands/guestsettings/guestsettings-set.js +2 -2
  379. package/dist/m365/teams/commands/membersettings/membersettings-list.js +2 -2
  380. package/dist/m365/teams/commands/membersettings/membersettings-set.js +2 -2
  381. package/dist/m365/teams/commands/message/message-get.js +4 -4
  382. package/dist/m365/teams/commands/message/message-list.js +12 -12
  383. package/dist/m365/teams/commands/message/message-reply-list.js +10 -10
  384. package/dist/m365/teams/commands/messagingsettings/messagingsettings-list.js +2 -2
  385. package/dist/m365/teams/commands/messagingsettings/messagingsettings-set.js +3 -3
  386. package/dist/m365/teams/commands/report/report-directroutingcalls.js +3 -3
  387. package/dist/m365/teams/commands/report/report-pstncalls.js +3 -3
  388. package/dist/m365/teams/commands/tab/tab-add.js +5 -5
  389. package/dist/m365/teams/commands/tab/tab-get.js +13 -10
  390. package/dist/m365/teams/commands/tab/tab-list.js +10 -10
  391. package/dist/m365/teams/commands/tab/tab-remove.js +4 -4
  392. package/dist/m365/teams/commands/team/team-archive.js +2 -2
  393. package/dist/m365/teams/commands/team/team-clone.js +2 -2
  394. package/dist/m365/teams/commands/team/team-get.js +2 -2
  395. package/dist/m365/teams/commands/team/team-list.js +10 -12
  396. package/dist/m365/teams/commands/team/team-remove.js +2 -2
  397. package/dist/m365/teams/commands/team/team-set.js +2 -2
  398. package/dist/m365/teams/commands/team/team-unarchive.js +2 -2
  399. package/dist/m365/teams/commands/user/user-app-add.js +3 -3
  400. package/dist/m365/teams/commands/user/user-app-list.js +10 -10
  401. package/dist/m365/teams/commands/user/user-app-remove.js +2 -2
  402. package/dist/m365/teams/commands/user/user-list.js +14 -8
  403. package/dist/m365/teams/commands.js +4 -0
  404. package/dist/m365/tenant/commands/auditlog/auditlog-report.js +2 -2
  405. package/dist/m365/tenant/commands/id/id-get.js +2 -2
  406. package/dist/m365/tenant/commands/report/report-office365activationcounts.js +2 -2
  407. package/dist/m365/tenant/commands/report/report-office365activationsusercounts.js +2 -2
  408. package/dist/m365/tenant/commands/report/report-office365activationsuserdetail.js +2 -2
  409. package/dist/m365/tenant/commands/service/service-list.js +2 -2
  410. package/dist/m365/tenant/commands/service/service-message-list.js +2 -2
  411. package/dist/m365/tenant/commands/service/service-report-historicalservicestatus.js +2 -2
  412. package/dist/m365/tenant/commands/serviceannouncement/serviceannouncement-health-get.js +57 -0
  413. package/dist/m365/tenant/commands/serviceannouncement/serviceannouncement-health-list.js +56 -0
  414. package/dist/m365/tenant/commands/serviceannouncement/serviceannouncement-healthissue-get.js +39 -0
  415. package/dist/m365/tenant/commands/serviceannouncement/serviceannouncement-healthissue-list.js +39 -0
  416. package/dist/m365/tenant/commands/serviceannouncement/serviceannouncement-message-get.js +51 -0
  417. package/dist/m365/tenant/commands/serviceannouncement/serviceannouncement-message-list.js +39 -0
  418. package/dist/m365/tenant/commands/status/status-list.js +2 -2
  419. package/dist/m365/tenant/commands.js +6 -0
  420. package/dist/m365/todo/commands/list/list-list.js +7 -6
  421. package/dist/m365/todo/commands/task/task-list.js +7 -6
  422. package/dist/request.js +11 -6
  423. package/dist/settingsNames.js +7 -0
  424. package/dist/utils/accessToken.js +44 -0
  425. package/dist/utils/formatting.js +66 -0
  426. package/dist/utils/fsUtil.js +36 -0
  427. package/dist/utils/index.js +22 -0
  428. package/dist/utils/odata.js +37 -0
  429. package/dist/utils/sinonUtil.js +19 -0
  430. package/dist/{m365/spfx/commands/project/project-upgrade/Utils.js → utils/spfx.js} +7 -19
  431. package/dist/utils/spo.js +432 -0
  432. package/dist/utils/urlUtil.js +174 -0
  433. package/dist/utils/validation.js +310 -0
  434. package/docs/docs/cmd/_global.md +2 -2
  435. package/docs/docs/cmd/aad/app/app-delete.md +51 -0
  436. package/docs/docs/cmd/aad/app/app-get.md +59 -0
  437. package/docs/docs/cmd/aad/app/app-set.md +21 -0
  438. package/docs/docs/cmd/aad/group/group-list.md +30 -0
  439. package/docs/docs/cmd/aad/o365group/o365group-add.md +42 -6
  440. package/docs/docs/cmd/aad/o365group/o365group-conversation-list.md +24 -0
  441. package/docs/docs/cmd/aad/o365group/o365group-conversation-post-list.md +36 -0
  442. package/docs/docs/cmd/aad/user/user-get.md +13 -4
  443. package/docs/docs/cmd/aad/user/user-hibp.md +46 -0
  444. package/docs/docs/cmd/aad/user/user-list.md +9 -0
  445. package/docs/docs/cmd/aad/user/user-password-validate.md +29 -0
  446. package/docs/docs/cmd/app/permission/permission-list.md +36 -0
  447. package/docs/docs/cmd/outlook/room/room-list.md +30 -0
  448. package/docs/docs/cmd/outlook/roomlist/roomlist-list.md +21 -0
  449. package/docs/docs/cmd/pa/app/app-list.md +17 -1
  450. package/docs/docs/cmd/planner/plan/plan-details-get.md +45 -0
  451. package/docs/docs/cmd/planner/task/task-add.md +78 -0
  452. package/docs/docs/cmd/planner/task/task-details-get.md +24 -0
  453. package/docs/docs/cmd/planner/task/task-get.md +29 -0
  454. package/docs/docs/cmd/planner/task/task-list.md +5 -0
  455. package/docs/docs/cmd/planner/task/task-set.md +99 -0
  456. package/docs/docs/cmd/search/externalconnection/externalconnection-add.md +43 -0
  457. package/docs/docs/cmd/spfx/project/project-externalize.md +1 -1
  458. package/docs/docs/cmd/spfx/project/project-rename.md +1 -1
  459. package/docs/docs/cmd/spfx/project/project-upgrade.md +8 -8
  460. package/docs/docs/cmd/spfx/spfx-doctor.md +1 -1
  461. package/docs/docs/cmd/spo/group/group-user-add.md +28 -6
  462. package/docs/docs/cmd/spo/group/group-user-remove.md +39 -0
  463. package/docs/docs/cmd/spo/site/site-recyclebinitem-list.md +40 -0
  464. package/docs/docs/cmd/spo/web/web-installedlanguage-list.md +24 -0
  465. package/docs/docs/cmd/teams/app/app-install.md +22 -4
  466. package/docs/docs/cmd/teams/app/app-update.md +12 -3
  467. package/docs/docs/cmd/teams/channel/channel-get.md +11 -2
  468. package/docs/docs/cmd/teams/chat/chat-list.md +30 -0
  469. package/docs/docs/cmd/teams/chat/chat-member-list.md +24 -0
  470. package/docs/docs/cmd/teams/chat/chat-message-list.md +24 -0
  471. package/docs/docs/cmd/teams/chat/chat-message-send.md +55 -0
  472. package/docs/docs/cmd/teams/message/message-get.md +0 -3
  473. package/docs/docs/cmd/tenant/serviceannouncement/serviceannouncement-health-get.md +33 -0
  474. package/docs/docs/cmd/tenant/serviceannouncement/serviceannouncement-health-list.md +30 -0
  475. package/docs/docs/cmd/tenant/serviceannouncement/serviceannouncement-healthissue-get.md +24 -0
  476. package/docs/docs/cmd/tenant/serviceannouncement/serviceannouncement-healthissue-list.md +34 -0
  477. package/docs/docs/cmd/tenant/serviceannouncement/serviceannouncement-message-get.md +28 -0
  478. package/docs/docs/cmd/tenant/serviceannouncement/serviceannouncement-message-list.md +34 -0
  479. package/npm-shrinkwrap.json +1329 -1499
  480. package/package.json +39 -27
  481. package/dist/Utils.js +0 -568
  482. package/dist/m365/aad/commands/o365group/Group.js +0 -3
  483. package/dist/m365/aad/commands/o365group/GroupUser.js +0 -3
  484. package/dist/m365/base/AadCommand.js +0 -10
  485. package/dist/m365/base/GraphItemsListCommand.js +0 -46
  486. package/dist/m365/base/GraphResponse.js +0 -3
  487. package/dist/m365/base/GraphResponseError.js +0 -3
  488. package/dist/m365/spo/ClientSvc.js +0 -128
  489. package/dist/m365/spo/FolderExtensions.js +0 -101
  490. package/dist/m365/spo/spo.js +0 -3
@@ -2,9 +2,8 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const config_1 = require("../../../../config");
4
4
  const request_1 = require("../../../../request");
5
- const Utils_1 = require("../../../../Utils");
5
+ const utils_1 = require("../../../../utils");
6
6
  const SpoCommand_1 = require("../../../base/SpoCommand");
7
- const ClientSvc_1 = require("../../ClientSvc");
8
7
  const commands_1 = require("../../commands");
9
8
  class SpoFolderRenameCommand extends SpoCommand_1.default {
10
9
  get name() {
@@ -14,22 +13,21 @@ class SpoFolderRenameCommand extends SpoCommand_1.default {
14
13
  return 'Renames a folder';
15
14
  }
16
15
  commandAction(logger, args, cb) {
17
- const clientSvc = new ClientSvc_1.ClientSvc(logger, this.debug);
18
16
  let formDigestValue = '';
19
- this
17
+ utils_1.spo
20
18
  .getRequestDigest(args.options.webUrl)
21
19
  .then((contextResponse) => {
22
20
  formDigestValue = contextResponse.FormDigestValue;
23
- return clientSvc.getCurrentWebIdentity(args.options.webUrl, formDigestValue);
21
+ return utils_1.spo.getCurrentWebIdentity(args.options.webUrl, formDigestValue);
24
22
  })
25
23
  .then((webIdentityResp) => {
26
- return clientSvc.getFolderIdentity(webIdentityResp.objectIdentity, args.options.webUrl, args.options.folderUrl, formDigestValue);
24
+ return utils_1.spo.getFolderIdentity(webIdentityResp.objectIdentity, args.options.webUrl, args.options.folderUrl, formDigestValue);
27
25
  })
28
26
  .then((folderObjectIdentity) => {
29
27
  if (this.verbose) {
30
28
  logger.logToStderr(`Renaming folder ${args.options.folderUrl} to ${args.options.name}`);
31
29
  }
32
- const serverRelativeUrl = Utils_1.default.getServerRelativePath(args.options.webUrl, args.options.folderUrl);
30
+ const serverRelativeUrl = utils_1.urlUtil.getServerRelativePath(args.options.webUrl, args.options.folderUrl);
33
31
  const serverRelativeUrlWithoutOldFolder = serverRelativeUrl.substring(0, serverRelativeUrl.lastIndexOf('/'));
34
32
  const renamedServerRelativeUrl = `${serverRelativeUrlWithoutOldFolder}/${args.options.name}`;
35
33
  const requestOptions = {
@@ -68,7 +66,7 @@ class SpoFolderRenameCommand extends SpoCommand_1.default {
68
66
  return options.concat(parentOptions);
69
67
  }
70
68
  validate(args) {
71
- return SpoCommand_1.default.isValidSharePointUrl(args.options.webUrl);
69
+ return utils_1.validation.isValidSharePointUrl(args.options.webUrl);
72
70
  }
73
71
  }
74
72
  module.exports = new SpoFolderRenameCommand();
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const request_1 = require("../../../../request");
4
+ const utils_1 = require("../../../../utils");
4
5
  const SpoCommand_1 = require("../../../base/SpoCommand");
5
6
  const commands_1 = require("../../commands");
6
7
  class SpoGroupGetCommand extends SpoCommand_1.default {
@@ -67,7 +68,7 @@ class SpoGroupGetCommand extends SpoCommand_1.default {
67
68
  if (args.options.id && isNaN(args.options.id)) {
68
69
  return `Specified id ${args.options.id} is not a number`;
69
70
  }
70
- return SpoCommand_1.default.isValidSharePointUrl(args.options.webUrl);
71
+ return utils_1.validation.isValidSharePointUrl(args.options.webUrl);
71
72
  }
72
73
  }
73
74
  module.exports = new SpoGroupGetCommand();
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const request_1 = require("../../../../request");
4
+ const utils_1 = require("../../../../utils");
4
5
  const SpoCommand_1 = require("../../../base/SpoCommand");
5
6
  const commands_1 = require("../../commands");
6
7
  class SpoGroupListCommand extends SpoCommand_1.default {
@@ -42,7 +43,7 @@ class SpoGroupListCommand extends SpoCommand_1.default {
42
43
  return options.concat(parentOptions);
43
44
  }
44
45
  validate(args) {
45
- return SpoCommand_1.default.isValidSharePointUrl(args.options.webUrl);
46
+ return utils_1.validation.isValidSharePointUrl(args.options.webUrl);
46
47
  }
47
48
  }
48
49
  module.exports = new SpoGroupListCommand();
@@ -2,6 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const cli_1 = require("../../../../cli");
4
4
  const request_1 = require("../../../../request");
5
+ const utils_1 = require("../../../../utils");
5
6
  const SpoCommand_1 = require("../../../base/SpoCommand");
6
7
  const commands_1 = require("../../commands");
7
8
  class SpoGroupRemoveCommand extends SpoCommand_1.default {
@@ -95,7 +96,7 @@ class SpoGroupRemoveCommand extends SpoCommand_1.default {
95
96
  return options.concat(parentOptions);
96
97
  }
97
98
  validate(args) {
98
- const isValidSharePointUrl = SpoCommand_1.default.isValidSharePointUrl(args.options.webUrl);
99
+ const isValidSharePointUrl = utils_1.validation.isValidSharePointUrl(args.options.webUrl);
99
100
  if (isValidSharePointUrl !== true) {
100
101
  return isValidSharePointUrl;
101
102
  }
@@ -3,8 +3,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const cli_1 = require("../../../../cli");
4
4
  const Command_1 = require("../../../../Command");
5
5
  const request_1 = require("../../../../request");
6
- const SpoCommand_1 = require("../../../base/SpoCommand");
6
+ const utils_1 = require("../../../../utils");
7
7
  const AadUserGetCommand = require("../../../aad/commands/user/user-get");
8
+ const SpoCommand_1 = require("../../../base/SpoCommand");
8
9
  const commands_1 = require("../../commands");
9
10
  class SpoGroupUserAddCommand extends SpoCommand_1.default {
10
11
  get name() {
@@ -17,15 +18,21 @@ class SpoGroupUserAddCommand extends SpoCommand_1.default {
17
18
  return ['DisplayName', 'Email'];
18
19
  }
19
20
  commandAction(logger, args, cb) {
20
- this.getOnlyActiveUsers(args, logger)
21
+ let groupId = 0;
22
+ this
23
+ .getGroupId(args)
24
+ .then((_groupId) => {
25
+ groupId = _groupId;
26
+ return this.getValidUsers(args, logger);
27
+ })
21
28
  .then((resolvedUsernameList) => {
22
29
  if (this.verbose) {
23
- logger.logToStderr(`Start adding Active user/s to SharePoint Group ${args.options.groupId}...`);
30
+ logger.logToStderr(`Start adding Active user/s to SharePoint Group ${args.options.groupId ? args.options.groupId : args.options.groupName}`);
24
31
  }
25
32
  const data = {
26
33
  url: args.options.webUrl,
27
34
  peoplePickerInput: this.getFormattedUserList(resolvedUsernameList),
28
- roleValue: `group:${args.options.groupId}`
35
+ roleValue: `group:${groupId}`
29
36
  };
30
37
  const requestOptions = {
31
38
  url: `${args.options.webUrl}/_api/SP.Web.ShareObject`,
@@ -46,32 +53,66 @@ class SpoGroupUserAddCommand extends SpoCommand_1.default {
46
53
  cb();
47
54
  }, (err) => this.handleRejectedODataJsonPromise(err, logger, cb));
48
55
  }
49
- getOnlyActiveUsers(args, logger) {
56
+ getGroupId(args) {
57
+ const getGroupMethod = args.options.groupName ?
58
+ `GetByName('${encodeURIComponent(args.options.groupName)}')` :
59
+ `GetById('${args.options.groupId}')`;
60
+ const requestOptions = {
61
+ url: `${args.options.webUrl}/_api/web/sitegroups/${getGroupMethod}`,
62
+ headers: {
63
+ 'accept': 'application/json;odata=nometadata'
64
+ },
65
+ responseType: 'json'
66
+ };
67
+ return request_1.default
68
+ .get(requestOptions)
69
+ .then(response => {
70
+ const groupId = response.Id;
71
+ if (!groupId) {
72
+ return Promise.reject(`The specified group does not exist in the SharePoint site`);
73
+ }
74
+ return groupId;
75
+ });
76
+ }
77
+ getValidUsers(args, logger) {
50
78
  if (this.verbose) {
51
- logger.logToStderr(`Removing Users which are not active from the original list`);
79
+ logger.logToStderr(`Checking if the specified users exist`);
52
80
  }
53
- const activeUsernamelist = [];
54
- return Promise.all(args.options.userName.split(",").map(singleUsername => {
81
+ const validUserNames = [];
82
+ const invalidUserNames = [];
83
+ const userInfo = args.options.userName ? args.options.userName : args.options.email;
84
+ return Promise
85
+ .all(userInfo.split(',').map(singleUserName => {
55
86
  const options = {
56
- userName: singleUsername.trim(),
57
87
  output: 'json',
58
88
  debug: args.options.debug,
59
89
  verbose: args.options.verbose
60
90
  };
61
- return cli_1.Cli.executeCommandWithOutput(AadUserGetCommand, { options: Object.assign(Object.assign({}, options), { _: [] }) })
91
+ if (args.options.userName) {
92
+ options.userName = singleUserName.trim();
93
+ }
94
+ else {
95
+ options.email = singleUserName.trim();
96
+ }
97
+ return cli_1.Cli
98
+ .executeCommandWithOutput(AadUserGetCommand, { options: Object.assign(Object.assign({}, options), { _: [] }) })
62
99
  .then((getUserGetOutput) => {
63
100
  if (this.debug) {
64
101
  logger.logToStderr(getUserGetOutput.stderr);
65
102
  }
66
- activeUsernamelist.push(JSON.parse(getUserGetOutput.stdout).userPrincipalName);
103
+ validUserNames.push(JSON.parse(getUserGetOutput.stdout).userPrincipalName);
67
104
  }, (err) => {
68
105
  if (this.debug) {
69
106
  logger.logToStderr(err.stderr);
70
107
  }
108
+ invalidUserNames.push(singleUserName);
71
109
  });
72
110
  }))
73
111
  .then(() => {
74
- return Promise.resolve(activeUsernamelist);
112
+ if (invalidUserNames.length > 0) {
113
+ return Promise.reject(`Users not added to the group because the following users don't exist: ${invalidUserNames.join(', ')}`);
114
+ }
115
+ return Promise.resolve(validUserNames);
75
116
  });
76
117
  }
77
118
  getFormattedUserList(activeUserList) {
@@ -86,22 +127,40 @@ class SpoGroupUserAddCommand extends SpoCommand_1.default {
86
127
  option: '-u, --webUrl <webUrl>'
87
128
  },
88
129
  {
89
- option: '--groupId <groupId>'
130
+ option: '--groupId [groupId]'
131
+ },
132
+ {
133
+ option: '--groupName [groupName]'
134
+ },
135
+ {
136
+ option: '--userName [userName]'
90
137
  },
91
138
  {
92
- option: '--userName <userName>'
139
+ option: '--email [email]'
93
140
  }
94
141
  ];
95
142
  const parentOptions = super.options();
96
143
  return options.concat(parentOptions);
97
144
  }
98
145
  validate(args) {
99
- const isValidSharePointUrl = SpoCommand_1.default.isValidSharePointUrl(args.options.webUrl);
146
+ const isValidSharePointUrl = utils_1.validation.isValidSharePointUrl(args.options.webUrl);
100
147
  if (isValidSharePointUrl !== true) {
101
148
  return isValidSharePointUrl;
102
149
  }
103
- if (typeof args.options.groupId !== 'number') {
104
- return `Group Id : ${args.options.groupId} is not a number`;
150
+ if (!args.options.groupId && !args.options.groupName) {
151
+ return 'Specify either groupId or groupName';
152
+ }
153
+ if (args.options.groupId && args.options.groupName) {
154
+ return 'Specify either groupId or groupName but not both';
155
+ }
156
+ if (!args.options.userName && !args.options.email) {
157
+ return 'Specify either userName or email';
158
+ }
159
+ if (args.options.userName && args.options.email) {
160
+ return 'Specify either userName or email but not both';
161
+ }
162
+ if (args.options.groupId && isNaN(args.options.groupId)) {
163
+ return `Specified groupId ${args.options.groupId} is not a number`;
105
164
  }
106
165
  return true;
107
166
  }
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const request_1 = require("../../../../request");
4
+ const utils_1 = require("../../../../utils");
4
5
  const SpoCommand_1 = require("../../../base/SpoCommand");
5
6
  const commands_1 = require("../../commands");
6
7
  class SpoGroupUserListCommand extends SpoCommand_1.default {
@@ -59,7 +60,7 @@ class SpoGroupUserListCommand extends SpoCommand_1.default {
59
60
  if (args.options.groupId && isNaN(args.options.groupId)) {
60
61
  return `Specified "groupId" ${args.options.groupId} is not valid`;
61
62
  }
62
- return SpoCommand_1.default.isValidSharePointUrl(args.options.webUrl);
63
+ return utils_1.validation.isValidSharePointUrl(args.options.webUrl);
63
64
  }
64
65
  }
65
66
  module.exports = new SpoGroupUserListCommand();
@@ -0,0 +1,101 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const cli_1 = require("../../../../cli");
4
+ const request_1 = require("../../../../request");
5
+ const utils_1 = require("../../../../utils");
6
+ const SpoCommand_1 = require("../../../base/SpoCommand");
7
+ const commands_1 = require("../../commands");
8
+ class SpoGroupUserRemoveCommand extends SpoCommand_1.default {
9
+ get name() {
10
+ return commands_1.default.GROUP_USER_REMOVE;
11
+ }
12
+ get description() {
13
+ return 'Removes the specified user from a SharePoint group';
14
+ }
15
+ getTelemetryProperties(args) {
16
+ const telemetryProps = super.getTelemetryProperties(args);
17
+ telemetryProps.groupId = (!(!args.options.groupId)).toString();
18
+ telemetryProps.groupName = (!(!args.options.groupName)).toString();
19
+ telemetryProps.confirm = (!(!args.options.confirm)).toString();
20
+ return telemetryProps;
21
+ }
22
+ commandAction(logger, args, cb) {
23
+ const removeUserfromSPGroup = () => {
24
+ if (this.verbose) {
25
+ logger.logToStderr(`Removing User with Username ${args.options.userName} from Group: ${args.options.groupId ? args.options.groupId : args.options.groupName}`);
26
+ }
27
+ const loginName = `i:0#.f|membership|${args.options.userName}`;
28
+ const requestUrl = `${args.options.webUrl}/_api/web/sitegroups/${args.options.groupId
29
+ ? `GetById('${encodeURIComponent(args.options.groupId)}')`
30
+ : `GetByName('${encodeURIComponent(args.options.groupName)}')`}/users/removeByLoginName(@LoginName)?@LoginName='${encodeURIComponent(loginName)}'`;
31
+ const requestOptions = {
32
+ url: requestUrl,
33
+ headers: {
34
+ 'accept': 'application/json;odata=nometadata'
35
+ },
36
+ responseType: 'json'
37
+ };
38
+ request_1.default
39
+ .post(requestOptions)
40
+ .then(() => {
41
+ cb();
42
+ }, (err) => this.handleRejectedODataJsonPromise(err, logger, cb));
43
+ };
44
+ if (args.options.confirm) {
45
+ if (this.debug) {
46
+ logger.logToStderr('Confirmation bypassed by entering confirm option. Removing the user from SharePoint Group...');
47
+ }
48
+ removeUserfromSPGroup();
49
+ }
50
+ else {
51
+ cli_1.Cli.prompt({
52
+ type: 'confirm',
53
+ name: 'continue',
54
+ default: false,
55
+ message: `Are you sure you want to remove user User ${args.options.userName} from SharePoint group?`
56
+ }, (result) => {
57
+ if (!result.continue) {
58
+ cb();
59
+ }
60
+ else {
61
+ removeUserfromSPGroup();
62
+ }
63
+ });
64
+ }
65
+ }
66
+ options() {
67
+ const options = [
68
+ {
69
+ option: '-u, --webUrl <webUrl>'
70
+ },
71
+ {
72
+ option: '--groupId [groupId]'
73
+ },
74
+ {
75
+ option: '--groupName [groupName]'
76
+ },
77
+ {
78
+ option: '--userName <userName>'
79
+ },
80
+ {
81
+ option: '--confirm'
82
+ }
83
+ ];
84
+ const parentOptions = super.options();
85
+ return options.concat(parentOptions);
86
+ }
87
+ validate(args) {
88
+ if (args.options.groupId && args.options.groupName) {
89
+ return 'Use either "groupName" or "groupId", but not both';
90
+ }
91
+ if (!args.options.groupId && !args.options.groupName) {
92
+ return 'Either "groupName" or "groupId" is required';
93
+ }
94
+ if (args.options.groupId && isNaN(args.options.groupId)) {
95
+ return `Specified "groupId" ${args.options.groupId} is not valid`;
96
+ }
97
+ return utils_1.validation.isValidSharePointUrl(args.options.webUrl);
98
+ }
99
+ }
100
+ module.exports = new SpoGroupUserRemoveCommand();
101
+ //# sourceMappingURL=group-user-remove.js.map
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const request_1 = require("../../../../request");
4
+ const utils_1 = require("../../../../utils");
4
5
  const SpoCommand_1 = require("../../../base/SpoCommand");
5
6
  const commands_1 = require("../../commands");
6
7
  class SpoHideDefaultThemesGetCommand extends SpoCommand_1.default {
@@ -11,7 +12,7 @@ class SpoHideDefaultThemesGetCommand extends SpoCommand_1.default {
11
12
  return 'Gets the current value of the HideDefaultThemes setting';
12
13
  }
13
14
  commandAction(logger, args, cb) {
14
- this
15
+ utils_1.spo
15
16
  .getSpoAdminUrl(logger, this.debug)
16
17
  .then((spoAdminUrl) => {
17
18
  if (this.verbose) {
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const request_1 = require("../../../../request");
4
+ const utils_1 = require("../../../../utils");
4
5
  const SpoCommand_1 = require("../../../base/SpoCommand");
5
6
  const commands_1 = require("../../commands");
6
7
  class SpoHideDefaultThemesSetCommand extends SpoCommand_1.default {
@@ -16,7 +17,7 @@ class SpoHideDefaultThemesSetCommand extends SpoCommand_1.default {
16
17
  return telemetryProps;
17
18
  }
18
19
  commandAction(logger, args, cb) {
19
- this
20
+ utils_1.spo
20
21
  .getSpoAdminUrl(logger, this.debug)
21
22
  .then((spoAdminUrl) => {
22
23
  if (this.verbose) {
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const request_1 = require("../../../../request");
4
+ const utils_1 = require("../../../../utils");
4
5
  const SpoCommand_1 = require("../../../base/SpoCommand");
5
6
  const commands_1 = require("../../commands");
6
7
  class SpoHomeSiteGetCommand extends SpoCommand_1.default {
@@ -11,7 +12,7 @@ class SpoHomeSiteGetCommand extends SpoCommand_1.default {
11
12
  return 'Gets information about the Home Site';
12
13
  }
13
14
  commandAction(logger, args, cb) {
14
- this
15
+ utils_1.spo
15
16
  .getSpoUrl(logger, this.debug)
16
17
  .then((spoUrl) => {
17
18
  const requestOptions = {
@@ -4,6 +4,7 @@ const cli_1 = require("../../../../cli");
4
4
  const Command_1 = require("../../../../Command");
5
5
  const config_1 = require("../../../../config");
6
6
  const request_1 = require("../../../../request");
7
+ const utils_1 = require("../../../../utils");
7
8
  const SpoCommand_1 = require("../../../base/SpoCommand");
8
9
  const commands_1 = require("../../commands");
9
10
  class SpoHomeSiteRemoveCommand extends SpoCommand_1.default {
@@ -21,10 +22,10 @@ class SpoHomeSiteRemoveCommand extends SpoCommand_1.default {
21
22
  commandAction(logger, args, cb) {
22
23
  const removeHomeSite = () => {
23
24
  let spoAdminUrl = '';
24
- this.getSpoAdminUrl(logger, this.debug)
25
+ utils_1.spo.getSpoAdminUrl(logger, this.debug)
25
26
  .then((_spoAdminUrl) => {
26
27
  spoAdminUrl = _spoAdminUrl;
27
- return this.getRequestDigest(spoAdminUrl);
28
+ return utils_1.spo.getRequestDigest(spoAdminUrl);
28
29
  })
29
30
  .then((res) => {
30
31
  const requestOptions = {
@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const Command_1 = require("../../../../Command");
4
4
  const config_1 = require("../../../../config");
5
5
  const request_1 = require("../../../../request");
6
- const Utils_1 = require("../../../../Utils");
6
+ const utils_1 = require("../../../../utils");
7
7
  const SpoCommand_1 = require("../../../base/SpoCommand");
8
8
  const commands_1 = require("../../commands");
9
9
  class SpoHomeSiteSetCommand extends SpoCommand_1.default {
@@ -15,11 +15,11 @@ class SpoHomeSiteSetCommand extends SpoCommand_1.default {
15
15
  }
16
16
  commandAction(logger, args, cb) {
17
17
  let spoAdminUrl = '';
18
- this
18
+ utils_1.spo
19
19
  .getSpoAdminUrl(logger, this.debug)
20
20
  .then((_spoAdminUrl) => {
21
21
  spoAdminUrl = _spoAdminUrl;
22
- return this.getRequestDigest(spoAdminUrl);
22
+ return utils_1.spo.getRequestDigest(spoAdminUrl);
23
23
  })
24
24
  .then((res) => {
25
25
  const requestOptions = {
@@ -27,7 +27,7 @@ class SpoHomeSiteSetCommand extends SpoCommand_1.default {
27
27
  headers: {
28
28
  'X-RequestDigest': res.FormDigestValue
29
29
  },
30
- data: `<Request AddExpandoFieldTypeSuffix="true" SchemaVersion="15.0.0.0" LibraryVersion="16.0.0.0" ApplicationName="${config_1.default.applicationName}" xmlns="http://schemas.microsoft.com/sharepoint/clientquery/2009"><Actions><ObjectPath Id="57" ObjectPathId="56" /><Method Name="SetSPHSite" Id="58" ObjectPathId="56"><Parameters><Parameter Type="String">${Utils_1.default.escapeXml(args.options.siteUrl)}</Parameter></Parameters></Method></Actions><ObjectPaths><Constructor Id="56" TypeId="{268004ae-ef6b-4e9b-8425-127220d84719}" /></ObjectPaths></Request>`
30
+ data: `<Request AddExpandoFieldTypeSuffix="true" SchemaVersion="15.0.0.0" LibraryVersion="16.0.0.0" ApplicationName="${config_1.default.applicationName}" xmlns="http://schemas.microsoft.com/sharepoint/clientquery/2009"><Actions><ObjectPath Id="57" ObjectPathId="56" /><Method Name="SetSPHSite" Id="58" ObjectPathId="56"><Parameters><Parameter Type="String">${utils_1.formatting.escapeXml(args.options.siteUrl)}</Parameter></Parameters></Method></Actions><ObjectPaths><Constructor Id="56" TypeId="{268004ae-ef6b-4e9b-8425-127220d84719}" /></ObjectPaths></Request>`
31
31
  };
32
32
  return request_1.default.post(requestOptions);
33
33
  })
@@ -45,7 +45,7 @@ class SpoHomeSiteSetCommand extends SpoCommand_1.default {
45
45
  }, (err) => this.handleRejectedPromise(err, logger, cb));
46
46
  }
47
47
  validate(args) {
48
- return SpoCommand_1.default.isValidSharePointUrl(args.options.siteUrl);
48
+ return utils_1.validation.isValidSharePointUrl(args.options.siteUrl);
49
49
  }
50
50
  options() {
51
51
  const options = [
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const request_1 = require("../../../../request");
4
- const Utils_1 = require("../../../../Utils");
4
+ const utils_1 = require("../../../../utils");
5
5
  const SpoCommand_1 = require("../../../base/SpoCommand");
6
6
  const commands_1 = require("../../commands");
7
7
  class SpoHubSiteConnectCommand extends SpoCommand_1.default {
@@ -12,7 +12,7 @@ class SpoHubSiteConnectCommand extends SpoCommand_1.default {
12
12
  return 'Connects the specified site collection to the given hub site';
13
13
  }
14
14
  commandAction(logger, args, cb) {
15
- this
15
+ utils_1.spo
16
16
  .getRequestDigest(args.options.url)
17
17
  .then((res) => {
18
18
  const requestOptions = {
@@ -40,11 +40,11 @@ class SpoHubSiteConnectCommand extends SpoCommand_1.default {
40
40
  return options.concat(parentOptions);
41
41
  }
42
42
  validate(args) {
43
- const isValidSharePointUrl = SpoCommand_1.default.isValidSharePointUrl(args.options.url);
43
+ const isValidSharePointUrl = utils_1.validation.isValidSharePointUrl(args.options.url);
44
44
  if (isValidSharePointUrl !== true) {
45
45
  return isValidSharePointUrl;
46
46
  }
47
- if (!Utils_1.default.isValidGuid(args.options.hubSiteId)) {
47
+ if (!utils_1.validation.isValidGuid(args.options.hubSiteId)) {
48
48
  return `${args.options.hubSiteId} is not a valid GUID`;
49
49
  }
50
50
  return true;
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const request_1 = require("../../../../request");
4
+ const utils_1 = require("../../../../utils");
4
5
  const SpoCommand_1 = require("../../../base/SpoCommand");
5
6
  const commands_1 = require("../../commands");
6
7
  class SpoHubSiteDataGetCommand extends SpoCommand_1.default {
@@ -54,7 +55,7 @@ class SpoHubSiteDataGetCommand extends SpoCommand_1.default {
54
55
  return options.concat(parentOptions);
55
56
  }
56
57
  validate(args) {
57
- return SpoCommand_1.default.isValidSharePointUrl(args.options.webUrl);
58
+ return utils_1.validation.isValidSharePointUrl(args.options.webUrl);
58
59
  }
59
60
  }
60
61
  module.exports = new SpoHubSiteDataGetCommand();
@@ -2,6 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const cli_1 = require("../../../../cli");
4
4
  const request_1 = require("../../../../request");
5
+ const utils_1 = require("../../../../utils");
5
6
  const SpoCommand_1 = require("../../../base/SpoCommand");
6
7
  const commands_1 = require("../../commands");
7
8
  class SpoHubSiteDisconnectCommand extends SpoCommand_1.default {
@@ -18,7 +19,7 @@ class SpoHubSiteDisconnectCommand extends SpoCommand_1.default {
18
19
  }
19
20
  commandAction(logger, args, cb) {
20
21
  const disconnectHubSite = () => {
21
- this
22
+ utils_1.spo
22
23
  .getRequestDigest(args.options.url)
23
24
  .then((res) => {
24
25
  if (this.verbose) {
@@ -68,7 +69,7 @@ class SpoHubSiteDisconnectCommand extends SpoCommand_1.default {
68
69
  return options.concat(parentOptions);
69
70
  }
70
71
  validate(args) {
71
- return SpoCommand_1.default.isValidSharePointUrl(args.options.url);
72
+ return utils_1.validation.isValidSharePointUrl(args.options.url);
72
73
  }
73
74
  }
74
75
  module.exports = new SpoHubSiteDisconnectCommand();
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const request_1 = require("../../../../request");
4
- const Utils_1 = require("../../../../Utils");
4
+ const utils_1 = require("../../../../utils");
5
5
  const SpoCommand_1 = require("../../../base/SpoCommand");
6
6
  const commands_1 = require("../../commands");
7
7
  class SpoHubSiteGetCommand extends SpoCommand_1.default {
@@ -12,7 +12,7 @@ class SpoHubSiteGetCommand extends SpoCommand_1.default {
12
12
  return 'Gets information about the specified hub site';
13
13
  }
14
14
  commandAction(logger, args, cb) {
15
- this
15
+ utils_1.spo
16
16
  .getSpoUrl(logger, this.debug)
17
17
  .then((spoUrl) => {
18
18
  const requestOptions = {
@@ -39,7 +39,7 @@ class SpoHubSiteGetCommand extends SpoCommand_1.default {
39
39
  return options.concat(parentOptions);
40
40
  }
41
41
  validate(args) {
42
- if (!Utils_1.default.isValidGuid(args.options.id)) {
42
+ if (!utils_1.validation.isValidGuid(args.options.id)) {
43
43
  return `${args.options.id} is not a valid GUID`;
44
44
  }
45
45
  return true;
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const request_1 = require("../../../../request");
4
+ const utils_1 = require("../../../../utils");
4
5
  const SpoCommand_1 = require("../../../base/SpoCommand");
5
6
  const commands_1 = require("../../commands");
6
7
  class SpoHubSiteListCommand extends SpoCommand_1.default {
@@ -26,7 +27,7 @@ class SpoHubSiteListCommand extends SpoCommand_1.default {
26
27
  commandAction(logger, args, cb) {
27
28
  let hubSites;
28
29
  let spoAdminUrl = '';
29
- this
30
+ utils_1.spo
30
31
  .getSpoAdminUrl(logger, this.debug)
31
32
  .then((_spoAdminUrl) => {
32
33
  spoAdminUrl = _spoAdminUrl;
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const request_1 = require("../../../../request");
4
+ const utils_1 = require("../../../../utils");
4
5
  const SpoCommand_1 = require("../../../base/SpoCommand");
5
6
  const commands_1 = require("../../commands");
6
7
  class SpoHubSiteRegisterCommand extends SpoCommand_1.default {
@@ -11,7 +12,7 @@ class SpoHubSiteRegisterCommand extends SpoCommand_1.default {
11
12
  return 'Registers the specified site collection as a hub site';
12
13
  }
13
14
  commandAction(logger, args, cb) {
14
- this
15
+ utils_1.spo
15
16
  .getRequestDigest(args.options.url)
16
17
  .then((res) => {
17
18
  const requestOptions = {
@@ -39,7 +40,7 @@ class SpoHubSiteRegisterCommand extends SpoCommand_1.default {
39
40
  return options.concat(parentOptions);
40
41
  }
41
42
  validate(args) {
42
- return SpoCommand_1.default.isValidSharePointUrl(args.options.url);
43
+ return utils_1.validation.isValidSharePointUrl(args.options.url);
43
44
  }
44
45
  }
45
46
  module.exports = new SpoHubSiteRegisterCommand();