@pnp/cli-microsoft365 7.2.0-beta.f440e15 → 7.3.0-beta.73848f3

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 (306) hide show
  1. package/.devcontainer/Dockerfile +0 -1
  2. package/.eslintrc.cjs +2 -0
  3. package/Dockerfile +0 -1
  4. package/allCommands.json +1 -0
  5. package/allCommandsFull.json +1 -0
  6. package/dist/Auth.js +1 -1
  7. package/dist/Command.js +18 -28
  8. package/dist/api.js +5 -7
  9. package/dist/chili/chili.js +40 -51
  10. package/dist/cli/Cli.js +121 -131
  11. package/dist/cli/timings.js +9 -0
  12. package/dist/index.js +8 -14
  13. package/dist/m365/aad/commands/administrativeunit/administrativeunit-add.js +3 -3
  14. package/dist/m365/aad/commands/administrativeunit/administrativeunit-get.js +2 -15
  15. package/dist/m365/aad/commands/administrativeunit/administrativeunit-remove.js +5 -22
  16. package/dist/m365/aad/commands/app/app-remove.js +2 -7
  17. package/dist/m365/aad/commands/app/app-role-remove.js +2 -7
  18. package/dist/m365/aad/commands/approleassignment/approleassignment-remove.js +2 -7
  19. package/dist/m365/aad/commands/group/group-remove.js +2 -7
  20. package/dist/m365/aad/commands/groupsetting/groupsetting-remove.js +2 -7
  21. package/dist/m365/aad/commands/m365group/m365group-recyclebinitem-clear.js +2 -7
  22. package/dist/m365/aad/commands/m365group/m365group-recyclebinitem-remove.js +2 -7
  23. package/dist/m365/aad/commands/m365group/m365group-remove.js +2 -7
  24. package/dist/m365/aad/commands/m365group/m365group-user-remove.js +2 -7
  25. package/dist/m365/aad/commands/oauth2grant/oauth2grant-remove.js +2 -7
  26. package/dist/m365/aad/commands/siteclassification/siteclassification-disable.js +2 -7
  27. package/dist/m365/aad/commands/user/user-license-remove.js +2 -7
  28. package/dist/m365/aad/commands/user/user-recyclebinitem-clear.js +2 -7
  29. package/dist/m365/aad/commands/user/user-recyclebinitem-remove.js +2 -7
  30. package/dist/m365/aad/commands/user/user-remove.js +2 -7
  31. package/dist/m365/cli/commands/config/config-set.js +13 -0
  32. package/dist/m365/commands/login.js +12 -8
  33. package/dist/m365/commands/setup.js +31 -37
  34. package/dist/m365/context/commands/context-remove.js +2 -7
  35. package/dist/m365/context/commands/option/option-remove.js +2 -7
  36. package/dist/m365/{search/commands/externalconnection/externalconnection-add.js → external/commands/connection/connection-add.js} +16 -13
  37. package/dist/m365/{search/commands/externalconnection/externalconnection-get.js → external/commands/connection/connection-get.js} +16 -13
  38. package/dist/m365/{search/commands/externalconnection/externalconnection-list.js → external/commands/connection/connection-list.js} +7 -4
  39. package/dist/m365/{search/commands/externalconnection/externalconnection-remove.js → external/commands/connection/connection-remove.js} +19 -21
  40. package/dist/m365/{search/commands/externalconnection/externalconnection-schema-add.js → external/commands/connection/connection-schema-add.js} +14 -11
  41. package/dist/m365/external/commands.js +15 -0
  42. package/dist/m365/flow/commands/environment/environment-list.js +6 -4
  43. package/dist/m365/flow/commands/flow-remove.js +2 -7
  44. package/dist/m365/flow/commands/owner/owner-remove.js +2 -7
  45. package/dist/m365/flow/commands/run/run-cancel.js +2 -7
  46. package/dist/m365/flow/commands/run/run-resubmit.js +2 -7
  47. package/dist/m365/graph/commands/schemaextension/schemaextension-remove.js +2 -7
  48. package/dist/m365/pa/commands/app/app-consent-set.js +2 -7
  49. package/dist/m365/pa/commands/app/app-permission-remove.js +2 -7
  50. package/dist/m365/pa/commands/app/app-remove.js +2 -7
  51. package/dist/m365/planner/commands/bucket/bucket-remove.js +2 -7
  52. package/dist/m365/planner/commands/plan/plan-remove.js +2 -7
  53. package/dist/m365/planner/commands/roster/roster-member-remove.js +4 -14
  54. package/dist/m365/planner/commands/roster/roster-remove.js +2 -7
  55. package/dist/m365/planner/commands/task/task-checklistitem-remove.js +2 -7
  56. package/dist/m365/planner/commands/task/task-reference-remove.js +2 -7
  57. package/dist/m365/planner/commands/task/task-remove.js +2 -7
  58. package/dist/m365/pp/commands/aibuildermodel/aibuildermodel-remove.js +2 -7
  59. package/dist/m365/pp/commands/card/card-remove.js +2 -7
  60. package/dist/m365/pp/commands/chatbot/chatbot-remove.js +2 -7
  61. package/dist/m365/pp/commands/dataverse/dataverse-table-remove.js +2 -7
  62. package/dist/m365/pp/commands/dataverse/dataverse-table-row-remove.js +2 -7
  63. package/dist/m365/pp/commands/solution/solution-publisher-remove.js +2 -7
  64. package/dist/m365/pp/commands/solution/solution-remove.js +2 -7
  65. package/dist/m365/purview/commands/retentionevent/retentionevent-remove.js +2 -7
  66. package/dist/m365/purview/commands/retentioneventtype/retentioneventtype-remove.js +2 -7
  67. package/dist/m365/purview/commands/retentionlabel/retentionlabel-remove.js +2 -7
  68. package/dist/m365/spfx/commands/project/DeployWorkflow.js +4 -4
  69. package/dist/m365/spfx/commands/project/project-doctor/{doctor-1.18.1-rc.0.js → doctor-1.18.1.js} +1 -1
  70. package/dist/m365/spfx/commands/project/project-doctor/doctor-1.18.2.js +21 -0
  71. package/dist/m365/spfx/commands/project/project-doctor.js +6 -3
  72. package/dist/m365/spfx/commands/project/project-github-workflow-add.js +17 -0
  73. package/dist/m365/spfx/commands/project/project-upgrade/{upgrade-1.18.1-rc.0.js → upgrade-1.18.1.js} +26 -26
  74. package/dist/m365/spfx/commands/project/project-upgrade/upgrade-1.18.2.js +53 -0
  75. package/dist/m365/spfx/commands/project/project-upgrade.js +18 -17
  76. package/dist/m365/spfx/commands/spfx-doctor.js +16 -1
  77. package/dist/m365/spo/commands/app/app-remove.js +2 -7
  78. package/dist/m365/spo/commands/app/app-retract.js +2 -7
  79. package/dist/m365/spo/commands/app/app-uninstall.js +2 -7
  80. package/dist/m365/spo/commands/applicationcustomizer/applicationcustomizer-remove.js +2 -7
  81. package/dist/m365/spo/commands/cdn/cdn-origin-remove.js +2 -7
  82. package/dist/m365/spo/commands/commandset/commandset-remove.js +2 -7
  83. package/dist/m365/spo/commands/contenttype/contenttype-field-remove.js +2 -7
  84. package/dist/m365/spo/commands/contenttype/contenttype-remove.js +2 -2
  85. package/dist/m365/spo/commands/customaction/customaction-clear.js +2 -7
  86. package/dist/m365/spo/commands/customaction/customaction-remove.js +2 -7
  87. package/dist/m365/spo/commands/eventreceiver/eventreceiver-remove.js +2 -7
  88. package/dist/m365/spo/commands/field/field-remove.js +2 -7
  89. package/dist/m365/spo/commands/file/file-checkout-undo.js +2 -7
  90. package/dist/m365/spo/commands/file/file-remove.js +2 -7
  91. package/dist/m365/spo/commands/file/file-retentionlabel-ensure.js +14 -23
  92. package/dist/m365/spo/commands/file/file-retentionlabel-remove.js +21 -34
  93. package/dist/m365/spo/commands/file/file-roleassignment-remove.js +2 -7
  94. package/dist/m365/spo/commands/file/file-roleinheritance-break.js +2 -7
  95. package/dist/m365/spo/commands/file/file-roleinheritance-reset.js +2 -7
  96. package/dist/m365/spo/commands/file/file-sharinglink-clear.js +2 -7
  97. package/dist/m365/spo/commands/file/file-sharinglink-remove.js +2 -7
  98. package/dist/m365/spo/commands/file/file-version-clear.js +2 -7
  99. package/dist/m365/spo/commands/file/file-version-remove.js +2 -7
  100. package/dist/m365/spo/commands/file/file-version-restore.js +2 -7
  101. package/dist/m365/spo/commands/folder/folder-remove.js +2 -7
  102. package/dist/m365/spo/commands/folder/folder-retentionlabel-ensure.js +9 -29
  103. package/dist/m365/spo/commands/folder/folder-retentionlabel-remove.js +11 -35
  104. package/dist/m365/spo/commands/folder/folder-roleassignment-remove.js +2 -7
  105. package/dist/m365/spo/commands/folder/folder-roleinheritance-break.js +2 -7
  106. package/dist/m365/spo/commands/folder/folder-roleinheritance-reset.js +2 -7
  107. package/dist/m365/spo/commands/group/group-member-remove.js +2 -7
  108. package/dist/m365/spo/commands/group/group-remove.js +2 -7
  109. package/dist/m365/spo/commands/homesite/homesite-remove.js +2 -7
  110. package/dist/m365/spo/commands/hubsite/hubsite-disconnect.js +2 -7
  111. package/dist/m365/spo/commands/hubsite/hubsite-rights-revoke.js +2 -7
  112. package/dist/m365/spo/commands/hubsite/hubsite-unregister.js +2 -7
  113. package/dist/m365/spo/commands/knowledgehub/knowledgehub-remove.js +2 -7
  114. package/dist/m365/spo/commands/list/list-contenttype-remove.js +2 -7
  115. package/dist/m365/spo/commands/list/list-remove.js +2 -7
  116. package/dist/m365/spo/commands/list/list-retentionlabel-ensure.js +27 -37
  117. package/dist/m365/spo/commands/list/list-retentionlabel-remove.js +8 -26
  118. package/dist/m365/spo/commands/list/list-roleassignment-remove.js +2 -7
  119. package/dist/m365/spo/commands/list/list-roleinheritance-break.js +2 -7
  120. package/dist/m365/spo/commands/list/list-roleinheritance-reset.js +2 -7
  121. package/dist/m365/spo/commands/list/list-view-field-remove.js +2 -7
  122. package/dist/m365/spo/commands/list/list-view-remove.js +2 -7
  123. package/dist/m365/spo/commands/list/list-webhook-remove.js +2 -7
  124. package/dist/m365/spo/commands/listitem/listitem-attachment-remove.js +2 -7
  125. package/dist/m365/spo/commands/listitem/listitem-batch-add.js +5 -0
  126. package/dist/m365/spo/commands/listitem/listitem-remove.js +2 -7
  127. package/dist/m365/spo/commands/listitem/listitem-retentionlabel-ensure.js +36 -37
  128. package/dist/m365/spo/commands/listitem/listitem-retentionlabel-remove.js +38 -39
  129. package/dist/m365/spo/commands/listitem/listitem-roleassignment-remove.js +2 -7
  130. package/dist/m365/spo/commands/listitem/listitem-roleinheritance-break.js +2 -7
  131. package/dist/m365/spo/commands/listitem/listitem-roleinheritance-reset.js +2 -7
  132. package/dist/m365/spo/commands/navigation/navigation-node-remove.js +2 -7
  133. package/dist/m365/spo/commands/orgassetslibrary/orgassetslibrary-remove.js +2 -7
  134. package/dist/m365/spo/commands/orgnewssite/orgnewssite-remove.js +2 -7
  135. package/dist/m365/spo/commands/page/page-remove.js +2 -7
  136. package/dist/m365/spo/commands/propertybag/propertybag-remove.js +2 -7
  137. package/dist/m365/spo/commands/roledefinition/roledefinition-remove.js +2 -7
  138. package/dist/m365/spo/commands/serviceprincipal/serviceprincipal-grant-revoke.js +49 -12
  139. package/dist/m365/spo/commands/serviceprincipal/serviceprincipal-set.js +2 -7
  140. package/dist/m365/spo/commands/site/site-add.js +45 -12
  141. package/dist/m365/spo/commands/site/site-apppermission-remove.js +2 -7
  142. package/dist/m365/spo/commands/site/site-hubsite-disconnect.js +2 -7
  143. package/dist/m365/spo/commands/site/site-recyclebinitem-clear.js +2 -7
  144. package/dist/m365/spo/commands/site/site-recyclebinitem-move.js +2 -7
  145. package/dist/m365/spo/commands/site/site-recyclebinitem-remove.js +2 -7
  146. package/dist/m365/spo/commands/site/site-remove.js +2 -7
  147. package/dist/m365/spo/commands/site/site-set.js +33 -1
  148. package/dist/m365/spo/commands/sitedesign/sitedesign-remove.js +2 -7
  149. package/dist/m365/spo/commands/sitedesign/sitedesign-rights-revoke.js +2 -7
  150. package/dist/m365/spo/commands/sitedesign/sitedesign-task-remove.js +2 -7
  151. package/dist/m365/spo/commands/sitescript/sitescript-get.js +8 -2
  152. package/dist/m365/spo/commands/sitescript/sitescript-remove.js +2 -7
  153. package/dist/m365/spo/commands/storageentity/storageentity-remove.js +2 -7
  154. package/dist/m365/spo/commands/tenant/tenant-applicationcustomizer-remove.js +2 -7
  155. package/dist/m365/spo/commands/tenant/tenant-commandset-remove.js +2 -7
  156. package/dist/m365/spo/commands/tenant/tenant-recyclebinitem-remove.js +2 -7
  157. package/dist/m365/spo/commands/tenant/tenant-recyclebinitem-restore.js +19 -2
  158. package/dist/m365/spo/commands/theme/theme-remove.js +2 -7
  159. package/dist/m365/spo/commands/user/user-remove.js +2 -7
  160. package/dist/m365/spo/commands/web/web-remove.js +2 -7
  161. package/dist/m365/spo/commands/web/web-roleassignment-remove.js +2 -7
  162. package/dist/m365/spo/commands/web/web-roleinheritance-break.js +2 -7
  163. package/dist/m365/spo/commands/web/web-roleinheritance-reset.js +2 -7
  164. package/dist/m365/teams/commands/app/app-remove.js +2 -7
  165. package/dist/m365/teams/commands/app/app-uninstall.js +2 -7
  166. package/dist/m365/teams/commands/cache/cache-remove.js +2 -7
  167. package/dist/m365/teams/commands/channel/channel-member-remove.js +2 -7
  168. package/dist/m365/teams/commands/channel/channel-remove.js +2 -7
  169. package/dist/m365/teams/commands/chat/chat-member-remove.js +2 -7
  170. package/dist/m365/teams/commands/tab/tab-remove.js +2 -7
  171. package/dist/m365/teams/commands/team/team-remove.js +2 -7
  172. package/dist/m365/teams/commands/user/user-app-remove.js +19 -11
  173. package/dist/m365/tenant/commands/people/people-profilecardproperty-add.js +131 -0
  174. package/dist/m365/tenant/commands/people/people-profilecardproperty-get.js +75 -0
  175. package/dist/m365/tenant/commands/people/people-profilecardproperty-list.js +53 -0
  176. package/dist/m365/tenant/commands/people/people-profilecardproperty-remove.js +79 -0
  177. package/dist/m365/tenant/commands/people/people-profilecardproperty-set.js +118 -0
  178. package/dist/m365/tenant/commands/people/profileCardProperties.js +24 -0
  179. package/dist/m365/tenant/commands.js +5 -0
  180. package/dist/m365/todo/commands/list/list-remove.js +2 -7
  181. package/dist/m365/todo/commands/task/task-remove.js +2 -7
  182. package/dist/m365/yammer/commands/group/group-user-remove.js +2 -7
  183. package/dist/m365/yammer/commands/message/message-like-set.js +3 -8
  184. package/dist/m365/yammer/commands/message/message-remove.js +2 -7
  185. package/dist/request.js +6 -0
  186. package/dist/settingsNames.js +2 -0
  187. package/dist/utils/aadAdministrativeUnit.js +25 -0
  188. package/dist/utils/prompt.js +30 -7
  189. package/dist/utils/spo.js +109 -0
  190. package/docs/docs/_clisettings.mdx +2 -0
  191. package/docs/docs/cmd/aad/administrativeunit/administrativeunit-add.mdx +6 -2
  192. package/docs/docs/cmd/aad/administrativeunit/administrativeunit-get.mdx +5 -1
  193. package/docs/docs/cmd/aad/administrativeunit/administrativeunit-list.mdx +5 -1
  194. package/docs/docs/cmd/aad/administrativeunit/administrativeunit-remove.mdx +6 -2
  195. package/docs/docs/cmd/aad/approleassignment/approleassignment-add.mdx +1 -1
  196. package/docs/docs/cmd/aad/approleassignment/approleassignment-list.mdx +2 -2
  197. package/docs/docs/cmd/aad/approleassignment/approleassignment-remove.mdx +1 -1
  198. package/docs/docs/cmd/aad/oauth2grant/oauth2grant-add.mdx +1 -1
  199. package/docs/docs/cmd/aad/oauth2grant/oauth2grant-list.mdx +2 -2
  200. package/docs/docs/cmd/aad/oauth2grant/oauth2grant-remove.mdx +2 -2
  201. package/docs/docs/cmd/aad/oauth2grant/oauth2grant-set.mdx +2 -2
  202. package/docs/docs/cmd/aad/policy/policy-list.mdx +1 -1
  203. package/docs/docs/cmd/aad/siteclassification/siteclassification-disable.mdx +1 -1
  204. package/docs/docs/cmd/aad/siteclassification/siteclassification-enable.mdx +1 -1
  205. package/docs/docs/cmd/aad/siteclassification/siteclassification-get.mdx +1 -1
  206. package/docs/docs/cmd/aad/siteclassification/siteclassification-set.mdx +1 -1
  207. package/docs/docs/cmd/aad/sp/sp-add.mdx +2 -2
  208. package/docs/docs/cmd/aad/sp/sp-get.mdx +2 -2
  209. package/docs/docs/cmd/aad/user/user-add.mdx +3 -3
  210. package/docs/docs/cmd/aad/user/user-guest-add.mdx +1 -1
  211. package/docs/docs/cmd/aad/user/user-set.mdx +3 -3
  212. package/docs/docs/cmd/{search/externalconnection/externalconnection-add.mdx → external/connection/connection-add.mdx} +16 -10
  213. package/docs/docs/cmd/{search/externalconnection/externalconnection-get.mdx → external/connection/connection-get.mdx} +16 -11
  214. package/docs/docs/cmd/{search/externalconnection/externalconnection-list.mdx → external/connection/connection-list.mdx} +12 -7
  215. package/docs/docs/cmd/external/connection/connection-remove.mdx +54 -0
  216. package/docs/docs/cmd/external/connection/connection-schema-add.mdx +41 -0
  217. package/docs/docs/cmd/flow/run/run-cancel.mdx +3 -0
  218. package/docs/docs/cmd/graph/changelog/changelog-list.mdx +5 -5
  219. package/docs/docs/cmd/login.mdx +1 -1
  220. package/docs/docs/cmd/onenote/notebook/notebook-list.mdx +1 -1
  221. package/docs/docs/cmd/outlook/message/message-list.mdx +1 -1
  222. package/docs/docs/cmd/outlook/message/message-move.mdx +1 -1
  223. package/docs/docs/cmd/planner/bucket/bucket-add.mdx +1 -1
  224. package/docs/docs/cmd/planner/bucket/bucket-set.mdx +1 -1
  225. package/docs/docs/cmd/planner/plan/plan-set.mdx +3 -3
  226. package/docs/docs/cmd/planner/task/task-set.mdx +1 -1
  227. package/docs/docs/cmd/purview/auditlog/auditlog-list.mdx +3 -3
  228. package/docs/docs/cmd/purview/retentionevent/retentionevent-add.mdx +1 -1
  229. package/docs/docs/cmd/purview/retentionevent/retentionevent-get.mdx +1 -1
  230. package/docs/docs/cmd/purview/retentioneventtype/retentioneventtype-add.mdx +1 -1
  231. package/docs/docs/cmd/purview/retentioneventtype/retentioneventtype-get.mdx +1 -1
  232. package/docs/docs/cmd/purview/retentioneventtype/retentioneventtype-remove.mdx +1 -1
  233. package/docs/docs/cmd/purview/retentioneventtype/retentioneventtype-set.mdx +1 -1
  234. package/docs/docs/cmd/purview/retentionlabel/retentionlabel-add.mdx +1 -1
  235. package/docs/docs/cmd/purview/sensitivitylabel/sensitivitylabel-policysettings-list.mdx +4 -4
  236. package/docs/docs/cmd/spfx/project/project-upgrade.mdx +1 -1
  237. package/docs/docs/cmd/spo/app/app-add.mdx +1 -1
  238. package/docs/docs/cmd/spo/app/app-deploy.mdx +1 -1
  239. package/docs/docs/cmd/spo/app/app-get.mdx +1 -1
  240. package/docs/docs/cmd/spo/app/app-install.mdx +1 -1
  241. package/docs/docs/cmd/spo/app/app-list.mdx +1 -1
  242. package/docs/docs/cmd/spo/app/app-remove.mdx +1 -1
  243. package/docs/docs/cmd/spo/app/app-retract.mdx +1 -1
  244. package/docs/docs/cmd/spo/app/app-uninstall.mdx +1 -1
  245. package/docs/docs/cmd/spo/app/app-upgrade.mdx +1 -1
  246. package/docs/docs/cmd/spo/contenttype/contenttype-add.mdx +1 -1
  247. package/docs/docs/cmd/spo/contenttype/contenttype-set.mdx +1 -1
  248. package/docs/docs/cmd/spo/file/file-rename.mdx +2 -0
  249. package/docs/docs/cmd/spo/hidedefaultthemes/hidedefaultthemes-get.mdx +1 -1
  250. package/docs/docs/cmd/spo/hidedefaultthemes/hidedefaultthemes-set.mdx +1 -1
  251. package/docs/docs/cmd/spo/serviceprincipal/serviceprincipal-grant-revoke.mdx +10 -1
  252. package/docs/docs/cmd/spo/site/site-add.mdx +25 -4
  253. package/docs/docs/cmd/spo/site/site-appcatalog-add.mdx +1 -1
  254. package/docs/docs/cmd/spo/site/site-appcatalog-remove.mdx +1 -1
  255. package/docs/docs/cmd/spo/site/site-groupify.mdx +1 -1
  256. package/docs/docs/cmd/spo/site/site-set.mdx +15 -0
  257. package/docs/docs/cmd/spo/sitedesign/sitedesign-add.mdx +3 -3
  258. package/docs/docs/cmd/spo/sitedesign/sitedesign-apply.mdx +1 -1
  259. package/docs/docs/cmd/spo/sitedesign/sitedesign-get.mdx +1 -1
  260. package/docs/docs/cmd/spo/sitedesign/sitedesign-list.mdx +1 -1
  261. package/docs/docs/cmd/spo/sitedesign/sitedesign-remove.mdx +1 -1
  262. package/docs/docs/cmd/spo/sitedesign/sitedesign-rights-grant.mdx +1 -1
  263. package/docs/docs/cmd/spo/sitedesign/sitedesign-rights-list.mdx +1 -1
  264. package/docs/docs/cmd/spo/sitedesign/sitedesign-rights-revoke.mdx +1 -1
  265. package/docs/docs/cmd/spo/sitedesign/sitedesign-run-list.mdx +1 -1
  266. package/docs/docs/cmd/spo/sitedesign/sitedesign-run-status-get.mdx +1 -1
  267. package/docs/docs/cmd/spo/sitedesign/sitedesign-set.mdx +3 -3
  268. package/docs/docs/cmd/spo/sitedesign/sitedesign-task-get.mdx +1 -1
  269. package/docs/docs/cmd/spo/sitedesign/sitedesign-task-list.mdx +1 -1
  270. package/docs/docs/cmd/spo/sitedesign/sitedesign-task-remove.mdx +1 -1
  271. package/docs/docs/cmd/spo/sitescript/sitescript-add.mdx +1 -1
  272. package/docs/docs/cmd/spo/sitescript/sitescript-get.mdx +73 -3
  273. package/docs/docs/cmd/spo/sitescript/sitescript-list.mdx +1 -1
  274. package/docs/docs/cmd/spo/sitescript/sitescript-remove.mdx +1 -1
  275. package/docs/docs/cmd/spo/sitescript/sitescript-set.mdx +1 -1
  276. package/docs/docs/cmd/spo/storageentity/storageentity-get.mdx +1 -1
  277. package/docs/docs/cmd/spo/storageentity/storageentity-list.mdx +1 -1
  278. package/docs/docs/cmd/spo/storageentity/storageentity-remove.mdx +1 -1
  279. package/docs/docs/cmd/spo/storageentity/storageentity-set.mdx +1 -1
  280. package/docs/docs/cmd/spo/theme/theme-apply.mdx +1 -1
  281. package/docs/docs/cmd/spo/theme/theme-get.mdx +1 -1
  282. package/docs/docs/cmd/spo/theme/theme-list.mdx +1 -1
  283. package/docs/docs/cmd/spo/theme/theme-remove.mdx +1 -1
  284. package/docs/docs/cmd/spo/user/user-remove.mdx +1 -1
  285. package/docs/docs/cmd/spo/web/web-set.mdx +1 -1
  286. package/docs/docs/cmd/teams/channel/channel-remove.mdx +1 -1
  287. package/docs/docs/cmd/teams/meeting/meeting-get.mdx +1 -1
  288. package/docs/docs/cmd/teams/meeting/meeting-transcript-list.mdx +1 -1
  289. package/docs/docs/cmd/teams/report/report-pstncalls.mdx +1 -1
  290. package/docs/docs/cmd/teams/tab/tab-remove.mdx +1 -1
  291. package/docs/docs/cmd/teams/team/team-remove.mdx +1 -1
  292. package/docs/docs/cmd/teams/user/user-app-remove.mdx +11 -2
  293. package/docs/docs/cmd/tenant/people/people-profilecardproperty-add.mdx +126 -0
  294. package/docs/docs/cmd/tenant/people/people-profilecardproperty-get.mdx +101 -0
  295. package/docs/docs/cmd/tenant/people/people-profilecardproperty-list.mdx +98 -0
  296. package/docs/docs/cmd/tenant/people/people-profilecardproperty-remove.mdx +61 -0
  297. package/docs/docs/cmd/tenant/people/people-profilecardproperty-set.mdx +120 -0
  298. package/docs/docs/cmd/tenant/serviceannouncement/serviceannouncement-healthissue-list.mdx +1 -1
  299. package/docs/docs/cmd/tenant/serviceannouncement/serviceannouncement-message-get.mdx +1 -1
  300. package/docs/docs/cmd/tenant/serviceannouncement/serviceannouncement-message-list.mdx +1 -1
  301. package/docs/docs/cmd/todo/task/task-set.mdx +1 -1
  302. package/npm-shrinkwrap.json +605 -565
  303. package/package.json +35 -36
  304. package/dist/m365/search/commands.js +0 -9
  305. package/docs/docs/cmd/search/externalconnection/externalconnection-remove.mdx +0 -48
  306. package/docs/docs/cmd/search/externalconnection/externalconnection-schema-add.mdx +0 -35
@@ -29,13 +29,8 @@ class SpoNavigationNodeRemoveCommand extends SpoCommand {
29
29
  await this.removeNode(logger, args.options);
30
30
  }
31
31
  else {
32
- const result = await Cli.prompt({
33
- type: 'confirm',
34
- name: 'continue',
35
- default: false,
36
- message: `Are you sure you want to remove the node ${args.options.id} from the navigation?`
37
- });
38
- if (result.continue) {
32
+ const result = await Cli.promptForConfirmation({ message: `Are you sure you want to remove the node ${args.options.id} from the navigation?` });
33
+ if (result) {
39
34
  await this.removeNode(logger, args.options);
40
35
  }
41
36
  }
@@ -27,13 +27,8 @@ class SpoOrgAssetsLibraryRemoveCommand extends SpoCommand {
27
27
  await this.removeLibrary(logger, args.options.libraryUrl);
28
28
  }
29
29
  else {
30
- const result = await Cli.prompt({
31
- type: 'confirm',
32
- name: 'continue',
33
- default: false,
34
- message: `Are you sure you want to remove the library ${args.options.libraryUrl} as a central location for organization assets?`
35
- });
36
- if (result.continue) {
30
+ const result = await Cli.promptForConfirmation({ message: `Are you sure you want to remove the library ${args.options.libraryUrl} as a central location for organization assets?` });
31
+ if (result) {
37
32
  await this.removeLibrary(logger, args.options.libraryUrl);
38
33
  }
39
34
  }
@@ -31,13 +31,8 @@ class SpoOrgNewsSiteRemoveCommand extends SpoCommand {
31
31
  await this.removeOrgNewsSite(logger, args.options.url);
32
32
  }
33
33
  else {
34
- const result = await Cli.prompt({
35
- type: 'confirm',
36
- name: 'continue',
37
- default: false,
38
- message: `Are you sure you want to remove ${args.options.url} from the list of organizational news sites?`
39
- });
40
- if (result.continue) {
34
+ const result = await Cli.promptForConfirmation({ message: `Are you sure you want to remove ${args.options.url} from the list of organizational news sites?` });
35
+ if (result) {
41
36
  await this.removeOrgNewsSite(logger, args.options.url);
42
37
  }
43
38
  }
@@ -29,13 +29,8 @@ class SpoPageRemoveCommand extends SpoCommand {
29
29
  await this.removePage(logger, args);
30
30
  }
31
31
  else {
32
- const result = await Cli.prompt({
33
- type: 'confirm',
34
- name: 'continue',
35
- default: false,
36
- message: `Are you sure you want to remove the page '${args.options.name}'?`
37
- });
38
- if (result.continue) {
32
+ const result = await Cli.promptForConfirmation({ message: `Are you sure you want to remove the page '${args.options.name}'?` });
33
+ if (result) {
39
34
  await this.removePage(logger, args);
40
35
  }
41
36
  }
@@ -31,13 +31,8 @@ class SpoPropertyBagRemoveCommand extends SpoPropertyBagBaseCommand {
31
31
  await this.removeProperty(args);
32
32
  }
33
33
  else {
34
- const result = await Cli.prompt({
35
- type: 'confirm',
36
- name: 'continue',
37
- default: false,
38
- message: `Are you sure you want to remove the ${args.options.key} property?`
39
- });
40
- if (result.continue) {
34
+ const result = await Cli.promptForConfirmation({ message: `Are you sure you want to remove the ${args.options.key} property?` });
35
+ if (result) {
41
36
  await this.removeProperty(args);
42
37
  }
43
38
  }
@@ -28,13 +28,8 @@ class SpoRoleDefinitionRemoveCommand extends SpoCommand {
28
28
  await this.removeRoleDefinition(logger, args);
29
29
  }
30
30
  else {
31
- const result = await Cli.prompt({
32
- type: 'confirm',
33
- name: 'continue',
34
- default: false,
35
- message: `Are you sure you want to remove the role definition with id ${args.options.id} from site ${args.options.webUrl}?`
36
- });
37
- if (result.continue) {
31
+ const result = await Cli.promptForConfirmation({ message: `Are you sure you want to remove the role definition with id ${args.options.id} from site ${args.options.webUrl}?` });
32
+ if (result) {
38
33
  await this.removeRoleDefinition(logger, args);
39
34
  }
40
35
  }
@@ -32,18 +32,53 @@ class SpoServicePrincipalGrantRevokeCommand extends SpoCommand {
32
32
  await logger.logToStderr(`Retrieving request digest...`);
33
33
  }
34
34
  const reqDigest = await spo.getRequestDigest(spoAdminUrl);
35
- const requestOptions = {
36
- url: `${spoAdminUrl}/_vti_bin/client.svc/ProcessQuery`,
37
- headers: {
38
- 'X-RequestDigest': reqDigest.FormDigestValue
39
- },
40
- 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><ObjectPath Id="10" ObjectPathId="9" /><ObjectPath Id="12" ObjectPathId="11" /><ObjectPath Id="14" ObjectPathId="13" /><Method Name="DeleteObject" Id="15" ObjectPathId="13" /><Query Id="16" ObjectPathId="13"><Query SelectAllProperties="true"><Properties /></Query></Query></Actions><ObjectPaths><Constructor Id="9" TypeId="{104e8f06-1e00-4675-99c6-1b9b504ed8d8}" /><Property Id="11" ParentId="9" Name="PermissionGrants" /><Method Id="13" ParentId="11" Name="GetByObjectId"><Parameters><Parameter Type="String">${formatting.escapeXml(args.options.id)}</Parameter></Parameters></Method></ObjectPaths></Request>`
41
- };
42
- const res = await request.post(requestOptions);
43
- const json = JSON.parse(res);
44
- const response = json[0];
45
- if (response.ErrorInfo) {
46
- throw response.ErrorInfo.ErrorMessage;
35
+ if (args.options.scope) {
36
+ // revoke a single scope
37
+ // #1 get the grant
38
+ const getGrantRequestOptions = {
39
+ url: `${spoAdminUrl}/_vti_bin/client.svc/ProcessQuery`,
40
+ headers: {
41
+ 'X-RequestDigest': reqDigest.FormDigestValue
42
+ },
43
+ 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><ObjectPath Id="2" ObjectPathId="1" /><ObjectPath Id="4" ObjectPathId="3" /><ObjectPath Id="6" ObjectPathId="5" /><Query Id="7" ObjectPathId="5"><Query SelectAllProperties="true"><Properties /></Query></Query></Actions><ObjectPaths><Constructor Id="1" TypeId="{104e8f06-1e00-4675-99c6-1b9b504ed8d8}" /><Property Id="3" ParentId="1" Name="PermissionGrants" /><Method Id="5" ParentId="3" Name="GetByObjectId"><Parameters><Parameter Type="String">${formatting.escapeXml(args.options.id)}</Parameter></Parameters></Method></ObjectPaths></Request>`
44
+ };
45
+ const grantRequestRes = await request.post(getGrantRequestOptions);
46
+ const grantRequestJson = JSON.parse(grantRequestRes);
47
+ const responseInfo = grantRequestJson[0];
48
+ if (responseInfo.ErrorInfo) {
49
+ throw responseInfo.ErrorInfo.ErrorMessage;
50
+ }
51
+ const grantInfo = grantRequestJson.pop();
52
+ // #2 remove the scope from the grant
53
+ const removeScopeRequestOptions = {
54
+ url: `${spoAdminUrl}/_vti_bin/client.svc/ProcessQuery`,
55
+ headers: {
56
+ 'X-RequestDigest': reqDigest.FormDigestValue
57
+ },
58
+ 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><ObjectPath Id="9" ObjectPathId="8" /><Method Name="Remove" Id="10" ObjectPathId="8"><Parameters><Parameter Type="String">${grantInfo.ClientId}</Parameter><Parameter Type="String">Microsoft Graph</Parameter><Parameter Type="String">${formatting.escapeXml(args.options.scope)}</Parameter></Parameters></Method></Actions><ObjectPaths><Property Id="8" ParentId="1" Name="GrantManager" /><Constructor Id="1" TypeId="{104e8f06-1e00-4675-99c6-1b9b504ed8d8}" /></ObjectPaths></Request>`
59
+ };
60
+ const removeScopeRes = await request.post(removeScopeRequestOptions);
61
+ const removeScopeResJson = JSON.parse(removeScopeRes);
62
+ const removeScopeResponse = removeScopeResJson[0];
63
+ if (removeScopeResponse.ErrorInfo) {
64
+ throw removeScopeResponse.ErrorInfo.ErrorMessage;
65
+ }
66
+ }
67
+ else {
68
+ // revoke the whole grant
69
+ const requestOptions = {
70
+ url: `${spoAdminUrl}/_vti_bin/client.svc/ProcessQuery`,
71
+ headers: {
72
+ 'X-RequestDigest': reqDigest.FormDigestValue
73
+ },
74
+ 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><ObjectPath Id="10" ObjectPathId="9" /><ObjectPath Id="12" ObjectPathId="11" /><ObjectPath Id="14" ObjectPathId="13" /><Method Name="DeleteObject" Id="15" ObjectPathId="13" /><Query Id="16" ObjectPathId="13"><Query SelectAllProperties="true"><Properties /></Query></Query></Actions><ObjectPaths><Constructor Id="9" TypeId="{104e8f06-1e00-4675-99c6-1b9b504ed8d8}" /><Property Id="11" ParentId="9" Name="PermissionGrants" /><Method Id="13" ParentId="11" Name="GetByObjectId"><Parameters><Parameter Type="String">${formatting.escapeXml(args.options.id)}</Parameter></Parameters></Method></ObjectPaths></Request>`
75
+ };
76
+ const res = await request.post(requestOptions);
77
+ const json = JSON.parse(res);
78
+ const response = json[0];
79
+ if (response.ErrorInfo) {
80
+ throw response.ErrorInfo.ErrorMessage;
81
+ }
47
82
  }
48
83
  }
49
84
  catch (err) {
@@ -54,6 +89,8 @@ class SpoServicePrincipalGrantRevokeCommand extends SpoCommand {
54
89
  _SpoServicePrincipalGrantRevokeCommand_instances = new WeakSet(), _SpoServicePrincipalGrantRevokeCommand_initOptions = function _SpoServicePrincipalGrantRevokeCommand_initOptions() {
55
90
  this.options.unshift({
56
91
  option: '-i, --id <id>'
92
+ }, {
93
+ option: '-s, --scope [scope]'
57
94
  });
58
95
  };
59
96
  export default new SpoServicePrincipalGrantRevokeCommand();
@@ -32,13 +32,8 @@ class SpoServicePrincipalSetCommand extends SpoCommand {
32
32
  await this.toggleServicePrincipal(logger, args);
33
33
  }
34
34
  else {
35
- const result = await Cli.prompt({
36
- type: 'confirm',
37
- name: 'continue',
38
- default: false,
39
- message: `Are you sure you want to ${args.options.enabled ? 'enable' : 'disable'} the service principal?`
40
- });
41
- if (result.continue) {
35
+ const result = await Cli.promptForConfirmation({ message: `Are you sure you want to ${args.options.enabled ? 'enable' : 'disable'} the service principal?` });
36
+ if (result) {
42
37
  await this.toggleServicePrincipal(logger, args);
43
38
  }
44
39
  }
@@ -33,12 +33,13 @@ class SpoSiteAddCommand extends SpoCommand {
33
33
  }
34
34
  async commandAction(logger, args) {
35
35
  const isClassicSite = args.options.type === 'ClassicSite';
36
- if (isClassicSite) {
37
- await this.createClassicSite(logger, args);
38
- }
39
- else {
40
- await this.createModernSite(logger, args);
36
+ const siteUrl = isClassicSite
37
+ ? await this.createClassicSite(logger, args)
38
+ : await this.createModernSite(logger, args);
39
+ if (siteUrl && args.options.withAppCatalog) {
40
+ await this.addAppCatalog(siteUrl, logger);
41
41
  }
42
+ await logger.log(siteUrl);
42
43
  }
43
44
  async createModernSite(logger, args) {
44
45
  const isTeamSite = args.options.type !== 'CommunicationSite';
@@ -132,19 +133,18 @@ class SpoSiteAddCommand extends SpoCommand {
132
133
  if (response.ErrorMessage !== null) {
133
134
  throw response.ErrorMessage;
134
135
  }
135
- await logger.log(response.SiteUrl);
136
+ return response.SiteUrl;
136
137
  }
137
138
  else {
138
- if (response.SiteStatus === 2) {
139
- await logger.log(response.SiteUrl);
140
- }
141
- else {
139
+ if (response.SiteStatus !== 2) {
142
140
  throw 'An error has occurred while creating the site';
143
141
  }
142
+ return response.SiteUrl;
144
143
  }
145
144
  }
146
145
  catch (err) {
147
146
  this.handleRejectedODataJsonPromise(err);
147
+ return;
148
148
  }
149
149
  }
150
150
  async createClassicSite(logger, args) {
@@ -195,8 +195,8 @@ class SpoSiteAddCommand extends SpoCommand {
195
195
  }
196
196
  const operation = json[json.length - 1];
197
197
  const isComplete = operation.IsComplete;
198
- if (!args.options.wait || isComplete) {
199
- return;
198
+ if ((!args.options.wait && !args.options.withAppCatalog) || isComplete) {
199
+ return args.options.url;
200
200
  }
201
201
  await new Promise((resolve, reject) => {
202
202
  setTimeout(() => {
@@ -212,9 +212,11 @@ class SpoSiteAddCommand extends SpoCommand {
212
212
  });
213
213
  }, operation.PollingInterval);
214
214
  });
215
+ return args.options.url;
215
216
  }
216
217
  catch (err) {
217
218
  this.handleRejectedPromise(err);
219
+ return;
218
220
  }
219
221
  }
220
222
  async siteExists(url, logger) {
@@ -304,6 +306,34 @@ class SpoSiteAddCommand extends SpoCommand {
304
306
  }, operation.PollingInterval);
305
307
  });
306
308
  }
309
+ async addAppCatalog(url, logger) {
310
+ try {
311
+ this.spoAdminUrl = await spo.getSpoAdminUrl(logger, this.debug);
312
+ this.context = await spo.ensureFormDigest(this.spoAdminUrl, logger, this.context, this.debug);
313
+ if (this.verbose) {
314
+ await logger.logToStderr(`Adding site collection app catalog...`);
315
+ }
316
+ const requestOptions = {
317
+ url: `${this.spoAdminUrl}/_vti_bin/client.svc/ProcessQuery`,
318
+ headers: {
319
+ 'X-RequestDigest': this.context.FormDigestValue
320
+ },
321
+ 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><ObjectPath Id="38" ObjectPathId="37" /><ObjectPath Id="40" ObjectPathId="39" /><ObjectPath Id="42" ObjectPathId="41" /><ObjectPath Id="44" ObjectPathId="43" /><ObjectPath Id="46" ObjectPathId="45" /><ObjectPath Id="48" ObjectPathId="47" /></Actions><ObjectPaths><Constructor Id="37" TypeId="{268004ae-ef6b-4e9b-8425-127220d84719}" /><Method Id="39" ParentId="37" Name="GetSiteByUrl"><Parameters><Parameter Type="String">${formatting.escapeXml(url)}</Parameter></Parameters></Method><Property Id="41" ParentId="39" Name="RootWeb" /><Property Id="43" ParentId="41" Name="TenantAppCatalog" /><Property Id="45" ParentId="43" Name="SiteCollectionAppCatalogsSites" /><Method Id="47" ParentId="45" Name="Add"><Parameters><Parameter Type="String">${formatting.escapeXml(url)}</Parameter></Parameters></Method></ObjectPaths></Request>`
322
+ };
323
+ const response = await request.post(requestOptions);
324
+ const json = JSON.parse(response);
325
+ const responseContents = json[0];
326
+ if (responseContents.ErrorInfo) {
327
+ throw responseContents.ErrorInfo.ErrorMessage;
328
+ }
329
+ if (this.verbose) {
330
+ await logger.logToStderr('Site collection app catalog created');
331
+ }
332
+ }
333
+ catch (err) {
334
+ this.handleRejectedPromise(err);
335
+ }
336
+ }
307
337
  }
308
338
  _SpoSiteAddCommand_instances = new WeakSet(), _SpoSiteAddCommand_initTelemetry = function _SpoSiteAddCommand_initTelemetry() {
309
339
  this.telemetry.push((args) => {
@@ -316,6 +346,7 @@ _SpoSiteAddCommand_instances = new WeakSet(), _SpoSiteAddCommand_initTelemetry =
316
346
  telemetryProps.isPublic = args.options.isPublic || false;
317
347
  telemetryProps.lcid = args.options.lcid;
318
348
  telemetryProps.owners = typeof args.options.owners !== 'undefined';
349
+ telemetryProps.withAppCatalog = args.options.withAppCatalog || false;
319
350
  if (isCommunicationSite) {
320
351
  telemetryProps.shareByEmailEnabled = args.options.shareByEmailEnabled || false;
321
352
  telemetryProps.siteDesign = args.options.siteDesign;
@@ -373,6 +404,8 @@ _SpoSiteAddCommand_instances = new WeakSet(), _SpoSiteAddCommand_initTelemetry =
373
404
  option: '--storageQuotaWarningLevel [storageQuotaWarningLevel]'
374
405
  }, {
375
406
  option: '--removeDeletedSite'
407
+ }, {
408
+ option: '--withAppCatalog'
376
409
  }, {
377
410
  option: '--wait'
378
411
  });
@@ -72,13 +72,8 @@ class SpoSiteAppPermissionRemoveCommand extends GraphCommand {
72
72
  await this.removeSiteAppPermission(logger, args.options);
73
73
  }
74
74
  else {
75
- const result = await Cli.prompt({
76
- type: 'confirm',
77
- name: 'continue',
78
- default: false,
79
- message: `Are you sure you want to remove the specified application permission from site ${args.options.siteUrl}?`
80
- });
81
- if (result.continue) {
75
+ const result = await Cli.promptForConfirmation({ message: `Are you sure you want to remove the specified application permission from site ${args.options.siteUrl}?` });
76
+ if (result) {
82
77
  await this.removeSiteAppPermission(logger, args.options);
83
78
  }
84
79
  }
@@ -29,13 +29,8 @@ class SpoSiteHubSiteDisconnectCommand extends SpoCommand {
29
29
  await this.disconnectHubSite(logger, args);
30
30
  }
31
31
  else {
32
- const result = await Cli.prompt({
33
- type: 'confirm',
34
- name: 'continue',
35
- default: false,
36
- message: `Are you sure you want to disconnect the site collection ${args.options.siteUrl} from its hub site?`
37
- });
38
- if (result.continue) {
32
+ const result = await Cli.promptForConfirmation({ message: `Are you sure you want to disconnect the site collection ${args.options.siteUrl} from its hub site?` });
33
+ if (result) {
39
34
  await this.disconnectHubSite(logger, args);
40
35
  }
41
36
  }
@@ -28,13 +28,8 @@ class SpoSiteRecycleBinItemClearCommand extends SpoCommand {
28
28
  await this.clearRecycleBin(args, logger);
29
29
  }
30
30
  else {
31
- const result = await Cli.prompt({
32
- type: 'confirm',
33
- name: 'continue',
34
- default: false,
35
- message: `Are you sure you want to clear the recycle bin of site ${args.options.siteUrl}?`
36
- });
37
- if (result.continue) {
31
+ const result = await Cli.promptForConfirmation({ message: `Are you sure you want to clear the recycle bin of site ${args.options.siteUrl}?` });
32
+ if (result) {
38
33
  await this.clearRecycleBin(args, logger);
39
34
  }
40
35
  }
@@ -29,13 +29,8 @@ class SpoSiteRecycleBinItemMoveCommand extends SpoCommand {
29
29
  await this.moveRecycleBinItem(args, logger);
30
30
  }
31
31
  else {
32
- const result = await Cli.prompt({
33
- type: 'confirm',
34
- name: 'continue',
35
- default: false,
36
- message: 'Are you sure you want to move these items to the second-stage recycle bin?'
37
- });
38
- if (result.continue) {
32
+ const result = await Cli.promptForConfirmation({ message: 'Are you sure you want to move these items to the second-stage recycle bin?' });
33
+ if (result) {
39
34
  await this.moveRecycleBinItem(args, logger);
40
35
  }
41
36
  }
@@ -28,13 +28,8 @@ class SpoSiteRecycleBinItemRemoveCommand extends SpoCommand {
28
28
  await this.removeRecycleBinItem(args, logger);
29
29
  }
30
30
  else {
31
- const result = await Cli.prompt({
32
- type: 'confirm',
33
- name: 'continue',
34
- default: false,
35
- message: `Are you sure you want to permanently delete ${args.options.ids.split(',').length} item(s) from the site recycle bin?`
36
- });
37
- if (result.continue) {
31
+ const result = await Cli.promptForConfirmation({ message: `Are you sure you want to permanently delete ${args.options.ids.split(',').length} item(s) from the site recycle bin?` });
32
+ if (result) {
38
33
  await this.removeRecycleBinItem(args, logger);
39
34
  }
40
35
  }
@@ -33,13 +33,8 @@ class SpoSiteRemoveCommand extends SpoCommand {
33
33
  await this.removeSite(logger, args);
34
34
  }
35
35
  else {
36
- const result = await Cli.prompt({
37
- type: 'confirm',
38
- name: 'continue',
39
- default: false,
40
- message: `Are you sure you want to remove the site ${args.options.url}?`
41
- });
42
- if (result.continue) {
36
+ const result = await Cli.promptForConfirmation({ message: `Are you sure you want to remove the site ${args.options.url}?` });
37
+ if (result) {
43
38
  await this.removeSite(logger, args);
44
39
  }
45
40
  }
@@ -49,6 +49,7 @@ class SpoSiteSetCommand extends SpoCommand {
49
49
  await this.waitForSiteUpdateCompletion(logger, args, siteProps);
50
50
  await this.applySiteDesign(logger, args);
51
51
  await this.setLogo(logger, args);
52
+ await this.setThumbnail(logger, args);
52
53
  const lockState = await this.updateSiteLockState(logger, args);
53
54
  await this.waitForSiteUpdateCompletion(logger, args, lockState);
54
55
  }
@@ -73,7 +74,31 @@ class SpoSiteSetCommand extends SpoCommand {
73
74
  accept: 'application/json;odata=nometadata'
74
75
  },
75
76
  data: {
76
- relativeLogoUrl: logoUrl
77
+ aspect: 1,
78
+ relativeLogoUrl: logoUrl,
79
+ type: 0
80
+ },
81
+ responseType: 'json'
82
+ };
83
+ return request.post(requestOptions);
84
+ }
85
+ async setThumbnail(logger, args) {
86
+ if (typeof args.options.siteThumbnailUrl === 'undefined') {
87
+ return;
88
+ }
89
+ if (this.debug) {
90
+ await logger.logToStderr(`Setting the site thumbnail...`);
91
+ }
92
+ const thumbnailUrl = args.options.siteThumbnailUrl ? urlUtil.getServerRelativePath(args.options.url, args.options.siteThumbnailUrl) : "";
93
+ const requestOptions = {
94
+ url: `${args.options.url}/_api/siteiconmanager/setsitelogo`,
95
+ headers: {
96
+ accept: 'application/json;odata=nometadata'
97
+ },
98
+ data: {
99
+ aspect: 0,
100
+ relativeLogoUrl: thumbnailUrl,
101
+ type: 0
77
102
  },
78
103
  responseType: 'json'
79
104
  };
@@ -420,6 +445,7 @@ _SpoSiteSetCommand_instances = new WeakSet(), _SpoSiteSetCommand_initTelemetry =
420
445
  siteDesignId: typeof args.options.siteDesignId !== undefined,
421
446
  sharingCapabilities: args.options.sharingCapability,
422
447
  siteLogoUrl: typeof args.options.siteLogoUrl !== 'undefined',
448
+ siteThumbnailUrl: typeof args.options.siteThumbnailUrl !== 'undefined',
423
449
  resourceQuota: args.options.resourceQuota,
424
450
  resourceQuotaWarningLevel: args.options.resourceQuotaWarningLevel,
425
451
  storageQuota: args.options.storageQuota,
@@ -459,6 +485,8 @@ _SpoSiteSetCommand_instances = new WeakSet(), _SpoSiteSetCommand_initTelemetry =
459
485
  option: '--description [description]'
460
486
  }, {
461
487
  option: '--siteLogoUrl [siteLogoUrl]'
488
+ }, {
489
+ option: '--siteThumbnailUrl [siteThumbnailUrl]'
462
490
  }, {
463
491
  option: '--sharingCapability [sharingCapability]',
464
492
  autocomplete: this.sharingCapabilities
@@ -499,6 +527,7 @@ _SpoSiteSetCommand_instances = new WeakSet(), _SpoSiteSetCommand_initTelemetry =
499
527
  typeof args.options.siteDesignId === 'undefined' &&
500
528
  typeof args.options.sharingCapability === 'undefined' &&
501
529
  typeof args.options.siteLogoUrl === 'undefined' &&
530
+ typeof args.options.siteThumbnailUrl === 'undefined' &&
502
531
  typeof args.options.resourceQuota === 'undefined' &&
503
532
  typeof args.options.resourceQuotaWarningLevel === 'undefined' &&
504
533
  typeof args.options.storageQuota === 'undefined' &&
@@ -511,6 +540,9 @@ _SpoSiteSetCommand_instances = new WeakSet(), _SpoSiteSetCommand_initTelemetry =
511
540
  if (typeof args.options.siteLogoUrl !== 'undefined' && typeof args.options.siteLogoUrl !== 'string') {
512
541
  return `${args.options.siteLogoUrl} is not a valid value for the siteLogoUrl option. Specify the logo URL or an empty string "" to unset the logo.`;
513
542
  }
543
+ if (typeof args.options.siteThumbnailUrl !== 'undefined' && typeof args.options.siteThumbnailUrl !== 'string') {
544
+ return `${args.options.siteThumbnailUrl} is not a valid value for the siteThumbnailUrl option. Specify the logo URL or an empty string "" to unset the logo.`;
545
+ }
514
546
  if (args.options.siteDesignId) {
515
547
  if (!validation.isValidGuid(args.options.siteDesignId)) {
516
548
  return `${args.options.siteDesignId} is not a valid GUID`;
@@ -29,13 +29,8 @@ class SpoSiteDesignRemoveCommand extends SpoCommand {
29
29
  await this.removeSiteDesign(logger, args.options.id);
30
30
  }
31
31
  else {
32
- const result = await Cli.prompt({
33
- type: 'confirm',
34
- name: 'continue',
35
- default: false,
36
- message: `Are you sure you want to remove the site design ${args.options.id}?`
37
- });
38
- if (result.continue) {
32
+ const result = await Cli.promptForConfirmation({ message: `Are you sure you want to remove the site design ${args.options.id}?` });
33
+ if (result) {
39
34
  await this.removeSiteDesign(logger, args.options.id);
40
35
  }
41
36
  }
@@ -52,13 +52,8 @@ class SpoSiteDesignRightsRevokeCommand extends SpoCommand {
52
52
  await revokePermissions();
53
53
  }
54
54
  else {
55
- const result = await Cli.prompt({
56
- type: 'confirm',
57
- name: 'continue',
58
- default: false,
59
- message: `Are you sure you want to revoke access to site design ${args.options.siteDesignId} from the specified users?`
60
- });
61
- if (result.continue) {
55
+ const result = await Cli.promptForConfirmation({ message: `Are you sure you want to revoke access to site design ${args.options.siteDesignId} from the specified users?` });
56
+ if (result) {
62
57
  await revokePermissions();
63
58
  }
64
59
  }
@@ -29,13 +29,8 @@ class SpoSiteDesignTaskRemoveCommand extends SpoCommand {
29
29
  await this.removeSiteDesignTask(logger, args.options.id);
30
30
  }
31
31
  else {
32
- const result = await Cli.prompt({
33
- type: 'confirm',
34
- name: 'continue',
35
- default: false,
36
- message: `Are you sure you want to remove the site design task ${args.options.id}?`
37
- });
38
- if (result.continue) {
32
+ const result = await Cli.promptForConfirmation({ message: `Are you sure you want to remove the site design task ${args.options.id}?` });
33
+ if (result) {
39
34
  await this.removeSiteDesignTask(logger, args.options.id);
40
35
  }
41
36
  }
@@ -36,8 +36,12 @@ class SpoSiteScriptGetCommand extends SpoCommand {
36
36
  data: { id: args.options.id },
37
37
  responseType: 'json'
38
38
  };
39
- const res = await request.post(requestOptions);
40
- await logger.log(res);
39
+ const response = await request.post(requestOptions);
40
+ if (args.options.content === true) {
41
+ await logger.log(JSON.parse(response.Content));
42
+ return;
43
+ }
44
+ await logger.log(response);
41
45
  }
42
46
  catch (err) {
43
47
  this.handleRejectedODataJsonPromise(err);
@@ -47,6 +51,8 @@ class SpoSiteScriptGetCommand extends SpoCommand {
47
51
  _SpoSiteScriptGetCommand_instances = new WeakSet(), _SpoSiteScriptGetCommand_initOptions = function _SpoSiteScriptGetCommand_initOptions() {
48
52
  this.options.unshift({
49
53
  option: '-i, --id <id>'
54
+ }, {
55
+ option: '-c, --content'
50
56
  });
51
57
  }, _SpoSiteScriptGetCommand_initValidators = function _SpoSiteScriptGetCommand_initValidators() {
52
58
  this.validators.push(async (args) => {
@@ -29,13 +29,8 @@ class SpoSiteScriptRemoveCommand extends SpoCommand {
29
29
  await this.removeSiteScript(logger, args.options.id);
30
30
  }
31
31
  else {
32
- const result = await Cli.prompt({
33
- type: 'confirm',
34
- name: 'continue',
35
- default: false,
36
- message: `Are you sure you want to remove the site script ${args.options.id}?`
37
- });
38
- if (result.continue) {
32
+ const result = await Cli.promptForConfirmation({ message: `Are you sure you want to remove the site script ${args.options.id}?` });
33
+ if (result) {
39
34
  await this.removeSiteScript(logger, args.options.id);
40
35
  }
41
36
  }
@@ -31,13 +31,8 @@ class SpoStorageEntityRemoveCommand extends SpoCommand {
31
31
  await this.removeTenantProperty(logger, args);
32
32
  }
33
33
  else {
34
- const result = await Cli.prompt({
35
- type: 'confirm',
36
- name: 'continue',
37
- default: false,
38
- message: `Are you sure you want to delete the ${args.options.key} tenant property?`
39
- });
40
- if (result.continue) {
34
+ const result = await Cli.promptForConfirmation({ message: `Are you sure you want to delete the ${args.options.key} tenant property?` });
35
+ if (result) {
41
36
  await this.removeTenantProperty(logger, args);
42
37
  }
43
38
  }
@@ -33,13 +33,8 @@ class SpoTenantApplicationCustomizerRemoveCommand extends SpoCommand {
33
33
  if (args.options.force) {
34
34
  return await this.removeTenantApplicationCustomizer(logger, args);
35
35
  }
36
- const result = await Cli.prompt({
37
- type: 'confirm',
38
- name: 'continue',
39
- default: false,
40
- message: `Are you sure you want to remove the tenant applicationcustomizer ${args.options.id || args.options.title || args.options.clientSideComponentId}?`
41
- });
42
- if (result.continue) {
36
+ const result = await Cli.promptForConfirmation({ message: `Are you sure you want to remove the tenant applicationcustomizer ${args.options.id || args.options.title || args.options.clientSideComponentId}?` });
37
+ if (result) {
43
38
  await this.removeTenantApplicationCustomizer(logger, args);
44
39
  }
45
40
  }
@@ -33,13 +33,8 @@ class SpoTenantCommandSetRemoveCommand extends SpoCommand {
33
33
  if (args.options.force) {
34
34
  return await this.removeTenantCommandSet(logger, args);
35
35
  }
36
- const result = await Cli.prompt({
37
- type: 'confirm',
38
- name: 'continue',
39
- default: false,
40
- message: `Are you sure you want to remove the tenant commandset ${args.options.id || args.options.title || args.options.clientSideComponentId}?`
41
- });
42
- if (result.continue) {
36
+ const result = await Cli.promptForConfirmation({ message: `Are you sure you want to remove the tenant commandset ${args.options.id || args.options.title || args.options.clientSideComponentId}?` });
37
+ if (result) {
43
38
  await this.removeTenantCommandSet(logger, args);
44
39
  }
45
40
  }