@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
@@ -0,0 +1,142 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const fs = require("fs");
4
+ const request_1 = require("../../../../request");
5
+ const utils_1 = require("../../../../utils");
6
+ const GraphCommand_1 = require("../../../base/GraphCommand");
7
+ const commands_1 = require("../../commands");
8
+ class AadAppGetCommand extends GraphCommand_1.default {
9
+ get name() {
10
+ return commands_1.default.APP_GET;
11
+ }
12
+ get description() {
13
+ return 'Gets an Azure AD app registration';
14
+ }
15
+ getTelemetryProperties(args) {
16
+ const telemetryProps = super.getTelemetryProperties(args);
17
+ telemetryProps.appId = typeof args.options.appId !== 'undefined';
18
+ telemetryProps.objectId = typeof args.options.objectId !== 'undefined';
19
+ telemetryProps.name = typeof args.options.name !== 'undefined';
20
+ return telemetryProps;
21
+ }
22
+ commandAction(logger, args, cb) {
23
+ this
24
+ .getAppObjectId(args)
25
+ .then(appObjectId => this.getAppInfo(appObjectId))
26
+ .then(appInfo => this.saveAppInfo(args, appInfo, logger))
27
+ .then((res) => {
28
+ logger.log(res);
29
+ cb();
30
+ }, (err) => this.handleRejectedODataJsonPromise(err, logger, cb));
31
+ }
32
+ getAppObjectId(args) {
33
+ if (args.options.objectId) {
34
+ return Promise.resolve(args.options.objectId);
35
+ }
36
+ const { appId, name } = args.options;
37
+ const filter = appId ?
38
+ `appId eq '${encodeURIComponent(appId)}'` :
39
+ `displayName eq '${encodeURIComponent(name)}'`;
40
+ const requestOptions = {
41
+ url: `${this.resource}/v1.0/myorganization/applications?$filter=${filter}&$select=id`,
42
+ headers: {
43
+ accept: 'application/json;odata.metadata=none'
44
+ },
45
+ responseType: 'json'
46
+ };
47
+ return request_1.default
48
+ .get(requestOptions)
49
+ .then((res) => {
50
+ if (res.value.length === 1) {
51
+ return Promise.resolve(res.value[0].id);
52
+ }
53
+ if (res.value.length === 0) {
54
+ const applicationIdentifier = appId ? `ID ${appId}` : `name ${name}`;
55
+ return Promise.reject(`No Azure AD application registration with ${applicationIdentifier} found`);
56
+ }
57
+ return Promise.reject(`Multiple Azure AD application registration with name ${name} found. Please disambiguate (app object IDs): ${res.value.map(a => a.id).join(', ')}`);
58
+ });
59
+ }
60
+ getAppInfo(appObjectId) {
61
+ const requestOptions = {
62
+ url: `${this.resource}/v1.0/myorganization/applications/${appObjectId}`,
63
+ headers: {
64
+ accept: 'application/json;odata.metadata=none'
65
+ },
66
+ responseType: 'json'
67
+ };
68
+ return request_1.default.get(requestOptions);
69
+ }
70
+ saveAppInfo(args, appInfo, logger) {
71
+ if (!args.options.save) {
72
+ return Promise.resolve(appInfo);
73
+ }
74
+ const filePath = '.m365rc.json';
75
+ if (this.verbose) {
76
+ logger.logToStderr(`Saving Azure AD app registration information to the ${filePath} file...`);
77
+ }
78
+ let m365rc = {};
79
+ if (fs.existsSync(filePath)) {
80
+ if (this.debug) {
81
+ logger.logToStderr(`Reading existing ${filePath}...`);
82
+ }
83
+ try {
84
+ const fileContents = fs.readFileSync(filePath, 'utf8');
85
+ if (fileContents) {
86
+ m365rc = JSON.parse(fileContents);
87
+ }
88
+ }
89
+ catch (e) {
90
+ logger.logToStderr(`Error reading ${filePath}: ${e}. Please add app info to ${filePath} manually.`);
91
+ return Promise.resolve(appInfo);
92
+ }
93
+ }
94
+ if (!m365rc.apps) {
95
+ m365rc.apps = [];
96
+ }
97
+ if (!m365rc.apps.some(a => a.appId === appInfo.appId)) {
98
+ m365rc.apps.push({
99
+ appId: appInfo.appId,
100
+ name: appInfo.displayName
101
+ });
102
+ try {
103
+ fs.writeFileSync(filePath, JSON.stringify(m365rc, null, 2));
104
+ }
105
+ catch (e) {
106
+ logger.logToStderr(`Error writing ${filePath}: ${e}. Please add app info to ${filePath} manually.`);
107
+ }
108
+ }
109
+ return Promise.resolve(appInfo);
110
+ }
111
+ options() {
112
+ const options = [
113
+ { option: '--appId [appId]' },
114
+ { option: '--objectId [objectId]' },
115
+ { option: '--name [name]' },
116
+ { option: '--save' }
117
+ ];
118
+ const parentOptions = super.options();
119
+ return options.concat(parentOptions);
120
+ }
121
+ validate(args) {
122
+ if (!args.options.appId &&
123
+ !args.options.objectId &&
124
+ !args.options.name) {
125
+ return 'Specify either appId, objectId, or name';
126
+ }
127
+ if ((args.options.appId && args.options.objectId) ||
128
+ (args.options.appId && args.options.name) ||
129
+ (args.options.objectId && args.options.name)) {
130
+ return 'Specify either appId, objectId, or name but not both';
131
+ }
132
+ if (args.options.appId && !utils_1.validation.isValidGuid(args.options.appId)) {
133
+ return `${args.options.appId} is not a valid GUID`;
134
+ }
135
+ if (args.options.objectId && !utils_1.validation.isValidGuid(args.options.objectId)) {
136
+ return `${args.options.objectId} is not a valid GUID`;
137
+ }
138
+ return true;
139
+ }
140
+ }
141
+ module.exports = new AadAppGetCommand();
142
+ //# sourceMappingURL=app-get.js.map
@@ -2,7 +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
+ const utils_1 = require("../../../../utils");
6
6
  const GraphCommand_1 = require("../../../base/GraphCommand");
7
7
  const commands_1 = require("../../commands");
8
8
  class AadAppRoleDeleteCommand extends GraphCommand_1.default {
@@ -194,7 +194,7 @@ class AadAppRoleDeleteCommand extends GraphCommand_1.default {
194
194
  return `Specify either name, claim or id of the role`;
195
195
  }
196
196
  if (args.options.id) {
197
- if (!Utils_1.default.isValidGuid(args.options.id)) {
197
+ if (!utils_1.validation.isValidGuid(args.options.id)) {
198
198
  return `${args.options.id} is not a valid GUID`;
199
199
  }
200
200
  }
@@ -1,9 +1,10 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const request_1 = require("../../../../request");
4
- const GraphItemsListCommand_1 = require("../../../base/GraphItemsListCommand");
4
+ const utils_1 = require("../../../../utils");
5
+ const GraphCommand_1 = require("../../../base/GraphCommand");
5
6
  const commands_1 = require("../../commands");
6
- class AadAppRoleListCommand extends GraphItemsListCommand_1.GraphItemsListCommand {
7
+ class AadAppRoleListCommand extends GraphCommand_1.default {
7
8
  get name() {
8
9
  return commands_1.default.APP_ROLE_LIST;
9
10
  }
@@ -23,9 +24,9 @@ class AadAppRoleListCommand extends GraphItemsListCommand_1.GraphItemsListComman
23
24
  commandAction(logger, args, cb) {
24
25
  this
25
26
  .getAppObjectId(args, logger)
26
- .then(objectId => this.getAllItems(`${this.resource}/v1.0/myorganization/applications/${objectId}/appRoles`, logger, true))
27
- .then(_ => {
28
- logger.log(this.items);
27
+ .then(objectId => utils_1.odata.getAllItems(`${this.resource}/v1.0/myorganization/applications/${objectId}/appRoles`, logger))
28
+ .then(appRoles => {
29
+ logger.log(appRoles);
29
30
  cb();
30
31
  }, rawRes => this.handleRejectedODataJsonPromise(rawRes, logger, cb));
31
32
  }
@@ -15,6 +15,9 @@ class AadAppSetCommand extends GraphCommand_1.default {
15
15
  telemetryProps.appId = typeof args.options.appId !== 'undefined';
16
16
  telemetryProps.objectId = typeof args.options.objectId !== 'undefined';
17
17
  telemetryProps.name = typeof args.options.name !== 'undefined';
18
+ telemetryProps.platform = typeof args.options.platform !== 'undefined';
19
+ telemetryProps.redirectUris = typeof args.options.redirectUris !== 'undefined';
20
+ telemetryProps.redirectUrisToRemove = typeof args.options.redirectUrisToRemove !== 'undefined';
18
21
  telemetryProps.uri = typeof args.options.uri !== 'undefined';
19
22
  return telemetryProps;
20
23
  }
@@ -22,6 +25,7 @@ class AadAppSetCommand extends GraphCommand_1.default {
22
25
  this
23
26
  .getAppObjectId(args, logger)
24
27
  .then(objectId => this.configureUri(args, objectId, logger))
28
+ .then(objectId => this.configureRedirectUris(args, objectId, logger))
25
29
  .then(_ => cb(), (rawRes) => this.handleRejectedODataJsonPromise(rawRes, logger, cb));
26
30
  }
27
31
  getAppObjectId(args, logger) {
@@ -57,7 +61,7 @@ class AadAppSetCommand extends GraphCommand_1.default {
57
61
  }
58
62
  configureUri(args, objectId, logger) {
59
63
  if (!args.options.uri) {
60
- return Promise.resolve();
64
+ return Promise.resolve(objectId);
61
65
  }
62
66
  if (this.verbose) {
63
67
  logger.logToStderr(`Configuring Azure AD application ID URI...`);
@@ -73,14 +77,97 @@ class AadAppSetCommand extends GraphCommand_1.default {
73
77
  responseType: 'json',
74
78
  data: applicationInfo
75
79
  };
76
- return request_1.default.patch(requestOptions);
80
+ return request_1.default
81
+ .patch(requestOptions)
82
+ .then(_ => Promise.resolve(objectId));
83
+ }
84
+ configureRedirectUris(args, objectId, logger) {
85
+ if (!args.options.redirectUris && !args.options.redirectUrisToRemove) {
86
+ return Promise.resolve(objectId);
87
+ }
88
+ if (this.verbose) {
89
+ logger.logToStderr(`Configuring Azure AD application redirect URIs...`);
90
+ }
91
+ const getAppRequestOptions = {
92
+ url: `${this.resource}/v1.0/myorganization/applications/${objectId}`,
93
+ headers: {
94
+ 'content-type': 'application/json;odata.metadata=none'
95
+ },
96
+ responseType: 'json'
97
+ };
98
+ return request_1.default
99
+ .get(getAppRequestOptions)
100
+ .then((application) => {
101
+ const publicClientRedirectUris = application.publicClient.redirectUris;
102
+ const spaRedirectUris = application.spa.redirectUris;
103
+ const webRedirectUris = application.web.redirectUris;
104
+ // start with existing redirect URIs
105
+ const applicationPatch = {
106
+ publicClient: {
107
+ redirectUris: publicClientRedirectUris
108
+ },
109
+ spa: {
110
+ redirectUris: spaRedirectUris
111
+ },
112
+ web: {
113
+ redirectUris: webRedirectUris
114
+ }
115
+ };
116
+ if (args.options.redirectUrisToRemove) {
117
+ // remove redirect URIs from all platforms
118
+ const redirectUrisToRemove = args.options.redirectUrisToRemove
119
+ .split(',')
120
+ .map(u => u.trim());
121
+ applicationPatch.publicClient.redirectUris =
122
+ publicClientRedirectUris.filter(u => !redirectUrisToRemove.includes(u));
123
+ applicationPatch.spa.redirectUris =
124
+ spaRedirectUris.filter(u => !redirectUrisToRemove.includes(u));
125
+ applicationPatch.web.redirectUris =
126
+ webRedirectUris.filter(u => !redirectUrisToRemove.includes(u));
127
+ }
128
+ if (args.options.redirectUris) {
129
+ const urlsToAdd = args.options.redirectUris
130
+ .split(',')
131
+ .map(u => u.trim());
132
+ // add new redirect URIs. If the URI is already present, it will be ignored
133
+ switch (args.options.platform) {
134
+ case 'spa':
135
+ applicationPatch.spa.redirectUris
136
+ .push(...urlsToAdd.filter(u => !spaRedirectUris.includes(u)));
137
+ break;
138
+ case 'publicClient':
139
+ applicationPatch.publicClient.redirectUris
140
+ .push(...urlsToAdd.filter(u => !publicClientRedirectUris.includes(u)));
141
+ break;
142
+ case 'web':
143
+ applicationPatch.web.redirectUris
144
+ .push(...urlsToAdd.filter(u => !webRedirectUris.includes(u)));
145
+ }
146
+ }
147
+ const requestOptions = {
148
+ url: `${this.resource}/v1.0/myorganization/applications/${objectId}`,
149
+ headers: {
150
+ 'content-type': 'application/json;odata.metadata=none'
151
+ },
152
+ responseType: 'json',
153
+ data: applicationPatch
154
+ };
155
+ return request_1.default.patch(requestOptions);
156
+ })
157
+ .then(_ => Promise.resolve(objectId));
77
158
  }
78
159
  options() {
79
160
  const options = [
80
161
  { option: '--appId [appId]' },
81
162
  { option: '--objectId [objectId]' },
82
163
  { option: '-n, --name [name]' },
83
- { option: '-u, --uri [uri]' }
164
+ { option: '-u, --uri [uri]' },
165
+ { option: '-r, --redirectUris [redirectUris]' },
166
+ {
167
+ option: '--platform [platform]',
168
+ autocomplete: AadAppSetCommand.aadApplicationPlatform
169
+ },
170
+ { option: '--redirectUrisToRemove [redirectUrisToRemove]' }
84
171
  ];
85
172
  const parentOptions = super.options();
86
173
  return options.concat(parentOptions);
@@ -96,8 +183,16 @@ class AadAppSetCommand extends GraphCommand_1.default {
96
183
  (args.options.objectId && args.options.name)) {
97
184
  return 'Specify either appId, objectId or name but not both';
98
185
  }
186
+ if (args.options.redirectUris && !args.options.platform) {
187
+ return `When you specify redirectUris you also need to specify platform`;
188
+ }
189
+ if (args.options.platform &&
190
+ AadAppSetCommand.aadApplicationPlatform.indexOf(args.options.platform) < 0) {
191
+ return `${args.options.platform} is not a valid value for platform. Allowed values are ${AadAppSetCommand.aadApplicationPlatform.join(', ')}`;
192
+ }
99
193
  return true;
100
194
  }
101
195
  }
196
+ AadAppSetCommand.aadApplicationPlatform = ['spa', 'web', 'publicClient'];
102
197
  module.exports = new AadAppSetCommand();
103
198
  //# sourceMappingURL=app-set.js.map
@@ -2,7 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const os = require("os");
4
4
  const request_1 = require("../../../../request");
5
- const Utils_1 = require("../../../../Utils");
5
+ const utils_1 = require("../../../../utils");
6
6
  const GraphCommand_1 = require("../../../base/GraphCommand");
7
7
  const commands_1 = require("../../commands");
8
8
  class AadAppRoleAssignmentAddCommand extends GraphCommand_1.default {
@@ -60,7 +60,7 @@ class AadAppRoleAssignmentAddCommand extends GraphCommand_1.default {
60
60
  }
61
61
  // will perform resource name, appId or objectId search
62
62
  let filter = `$filter=(displayName eq '${resource}' or startswith(displayName,'${resource}'))`;
63
- if (Utils_1.default.isValidGuid(resource)) {
63
+ if (utils_1.validation.isValidGuid(resource)) {
64
64
  filter += ` or appId eq '${resource}' or id eq '${resource}'`;
65
65
  }
66
66
  const requestOptions = {
@@ -170,10 +170,10 @@ class AadAppRoleAssignmentAddCommand extends GraphCommand_1.default {
170
170
  if (optionsSpecified !== 1) {
171
171
  return 'Specify either appId, objectId or displayName';
172
172
  }
173
- if (args.options.appId && !Utils_1.default.isValidGuid(args.options.appId)) {
173
+ if (args.options.appId && !utils_1.validation.isValidGuid(args.options.appId)) {
174
174
  return `${args.options.appId} is not a valid GUID`;
175
175
  }
176
- if (args.options.objectId && !Utils_1.default.isValidGuid(args.options.objectId)) {
176
+ if (args.options.objectId && !utils_1.validation.isValidGuid(args.options.objectId)) {
177
177
  return `${args.options.objectId} is not a valid GUID`;
178
178
  }
179
179
  return true;
@@ -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 GraphCommand_1 = require("../../../base/GraphCommand");
6
6
  const commands_1 = require("../../commands");
7
7
  class AadAppRoleAssignmentListCommand extends GraphCommand_1.default {
@@ -113,10 +113,10 @@ class AadAppRoleAssignmentListCommand extends GraphCommand_1.default {
113
113
  if (!args.options.appId && !args.options.displayName && !args.options.objectId) {
114
114
  return 'Specify either appId, objectId or displayName';
115
115
  }
116
- if (args.options.appId && !Utils_1.default.isValidGuid(args.options.appId)) {
116
+ if (args.options.appId && !utils_1.validation.isValidGuid(args.options.appId)) {
117
117
  return `${args.options.appId} is not a valid GUID`;
118
118
  }
119
- if (args.options.objectId && !Utils_1.default.isValidGuid(args.options.objectId)) {
119
+ if (args.options.objectId && !utils_1.validation.isValidGuid(args.options.objectId)) {
120
120
  return `${args.options.objectId} is not a valid GUID`;
121
121
  }
122
122
  let optionsSpecified = 0;
@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const os = require("os");
4
4
  const cli_1 = require("../../../../cli");
5
5
  const request_1 = require("../../../../request");
6
- const Utils_1 = require("../../../../Utils");
6
+ const utils_1 = require("../../../../utils");
7
7
  const GraphCommand_1 = require("../../../base/GraphCommand");
8
8
  const commands_1 = require("../../commands");
9
9
  class AadAppRoleAssignmentRemoveCommand extends GraphCommand_1.default {
@@ -57,7 +57,7 @@ class AadAppRoleAssignmentRemoveCommand extends GraphCommand_1.default {
57
57
  }
58
58
  // will perform resource name, appId or objectId search
59
59
  let filter = `$filter=(displayName eq '${resource}' or startswith(displayName,'${resource}'))`;
60
- if (Utils_1.default.isValidGuid(resource)) {
60
+ if (utils_1.validation.isValidGuid(resource)) {
61
61
  filter += ` or appId eq '${resource}' or id eq '${resource}'`;
62
62
  }
63
63
  const requestOptions = {
@@ -174,10 +174,10 @@ class AadAppRoleAssignmentRemoveCommand extends GraphCommand_1.default {
174
174
  if (optionsSpecified !== 1) {
175
175
  return 'Specify either appId, objectId or displayName';
176
176
  }
177
- if (args.options.appId && !Utils_1.default.isValidGuid(args.options.appId)) {
177
+ if (args.options.appId && !utils_1.validation.isValidGuid(args.options.appId)) {
178
178
  return `${args.options.appId} is not a valid GUID`;
179
179
  }
180
- if (args.options.objectId && !Utils_1.default.isValidGuid(args.options.objectId)) {
180
+ if (args.options.objectId && !utils_1.validation.isValidGuid(args.options.objectId)) {
181
181
  return `${args.options.objectId} is not a valid GUID`;
182
182
  }
183
183
  return true;
@@ -0,0 +1,55 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const utils_1 = require("../../../../utils");
4
+ const GraphCommand_1 = require("../../../base/GraphCommand");
5
+ const commands_1 = require("../../commands");
6
+ class AadGroupListCommand extends GraphCommand_1.default {
7
+ get name() {
8
+ return commands_1.default.GROUP_LIST;
9
+ }
10
+ get description() {
11
+ return 'Lists all groups defined in Azure Active Directory.';
12
+ }
13
+ getTelemetryProperties(args) {
14
+ const telemetryProps = super.getTelemetryProperties(args);
15
+ telemetryProps.deleted = args.options.deleted;
16
+ return telemetryProps;
17
+ }
18
+ defaultProperties() {
19
+ return ['id', 'displayName', 'groupType'];
20
+ }
21
+ commandAction(logger, args, cb) {
22
+ const endpoint = args.options.deleted ? 'directory/deletedItems/microsoft.graph.group' : 'groups';
23
+ utils_1.odata
24
+ .getAllItems(`${this.resource}/v1.0/${endpoint}`, logger)
25
+ .then((groups) => {
26
+ if (args.options.output === 'text') {
27
+ groups.forEach((group) => {
28
+ if (group.groupTypes && group.groupTypes.length > 0 && group.groupTypes[0] === 'Unified') {
29
+ group.groupType = 'Microsoft 365';
30
+ }
31
+ else if (group.mailEnabled && group.securityEnabled) {
32
+ group.groupType = 'Mail enabled security';
33
+ }
34
+ else if (group.securityEnabled) {
35
+ group.groupType = 'Security';
36
+ }
37
+ else if (group.mailEnabled) {
38
+ group.groupType = 'Distribution';
39
+ }
40
+ });
41
+ }
42
+ logger.log(groups);
43
+ cb();
44
+ }, (err) => this.handleRejectedODataJsonPromise(err, logger, cb));
45
+ }
46
+ options() {
47
+ const options = [
48
+ { option: '-d, --deleted' }
49
+ ];
50
+ const parentOptions = super.options();
51
+ return options.concat(parentOptions);
52
+ }
53
+ }
54
+ module.exports = new AadGroupListCommand();
55
+ //# sourceMappingURL=group-list.js.map
@@ -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 GraphCommand_1 = require("../../../base/GraphCommand");
6
6
  const commands_1 = require("../../commands");
7
7
  class AadGroupSettingAddCommand extends GraphCommand_1.default {
@@ -88,7 +88,7 @@ class AadGroupSettingAddCommand extends GraphCommand_1.default {
88
88
  return options.concat(parentOptions);
89
89
  }
90
90
  validate(args) {
91
- if (!Utils_1.default.isValidGuid(args.options.templateId)) {
91
+ if (!utils_1.validation.isValidGuid(args.options.templateId)) {
92
92
  return `${args.options.templateId} is not a valid GUID`;
93
93
  }
94
94
  return true;
@@ -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 GraphCommand_1 = require("../../../base/GraphCommand");
6
6
  const commands_1 = require("../../commands");
7
7
  class AadGroupSettingGetCommand extends GraphCommand_1.default {
@@ -36,7 +36,7 @@ class AadGroupSettingGetCommand extends GraphCommand_1.default {
36
36
  return options.concat(parentOptions);
37
37
  }
38
38
  validate(args) {
39
- if (!Utils_1.default.isValidGuid(args.options.id)) {
39
+ if (!utils_1.validation.isValidGuid(args.options.id)) {
40
40
  return `${args.options.id} is not a valid GUID`;
41
41
  }
42
42
  return true;
@@ -1,8 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- const GraphItemsListCommand_1 = require("../../../base/GraphItemsListCommand");
3
+ const utils_1 = require("../../../../utils");
4
+ const GraphCommand_1 = require("../../../base/GraphCommand");
4
5
  const commands_1 = require("../../commands");
5
- class AadGroupSettingListCommand extends GraphItemsListCommand_1.GraphItemsListCommand {
6
+ class AadGroupSettingListCommand extends GraphCommand_1.default {
6
7
  get name() {
7
8
  return commands_1.default.GROUPSETTING_LIST;
8
9
  }
@@ -13,10 +14,10 @@ class AadGroupSettingListCommand extends GraphItemsListCommand_1.GraphItemsListC
13
14
  return ['id', 'displayName'];
14
15
  }
15
16
  commandAction(logger, args, cb) {
16
- this
17
- .getAllItems(`${this.resource}/v1.0/groupSettings`, logger, true)
18
- .then(() => {
19
- logger.log(this.items);
17
+ utils_1.odata
18
+ .getAllItems(`${this.resource}/v1.0/groupSettings`, logger)
19
+ .then((groupSettings) => {
20
+ logger.log(groupSettings);
20
21
  cb();
21
22
  }, (err) => this.handleRejectedODataJsonPromise(err, logger, cb));
22
23
  }
@@ -2,7 +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
+ const utils_1 = require("../../../../utils");
6
6
  const GraphCommand_1 = require("../../../base/GraphCommand");
7
7
  const commands_1 = require("../../commands");
8
8
  class AadGroupSettingRemoveCommand extends GraphCommand_1.default {
@@ -64,7 +64,7 @@ class AadGroupSettingRemoveCommand extends GraphCommand_1.default {
64
64
  return options.concat(parentOptions);
65
65
  }
66
66
  validate(args) {
67
- if (!Utils_1.default.isValidGuid(args.options.id)) {
67
+ if (!utils_1.validation.isValidGuid(args.options.id)) {
68
68
  return `${args.options.id} is not a valid GUID`;
69
69
  }
70
70
  return true;
@@ -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 GraphCommand_1 = require("../../../base/GraphCommand");
6
6
  const commands_1 = require("../../commands");
7
7
  class AadGroupSettingSetCommand extends GraphCommand_1.default {
@@ -81,7 +81,7 @@ class AadGroupSettingSetCommand extends GraphCommand_1.default {
81
81
  return options.concat(parentOptions);
82
82
  }
83
83
  validate(args) {
84
- if (!Utils_1.default.isValidGuid(args.options.id)) {
84
+ if (!utils_1.validation.isValidGuid(args.options.id)) {
85
85
  return `${args.options.id} is not a valid GUID`;
86
86
  }
87
87
  return true;
@@ -1,10 +1,10 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const Command_1 = require("../../../../Command");
4
- const Utils_1 = require("../../../../Utils");
5
- const GraphItemsListCommand_1 = require("../../../base/GraphItemsListCommand");
4
+ const utils_1 = require("../../../../utils");
5
+ const GraphCommand_1 = require("../../../base/GraphCommand");
6
6
  const commands_1 = require("../../commands");
7
- class AadGroupSettingTemplateGetCommand extends GraphItemsListCommand_1.GraphItemsListCommand {
7
+ class AadGroupSettingTemplateGetCommand extends GraphCommand_1.default {
8
8
  get name() {
9
9
  return commands_1.default.GROUPSETTINGTEMPLATE_GET;
10
10
  }
@@ -18,10 +18,10 @@ class AadGroupSettingTemplateGetCommand extends GraphItemsListCommand_1.GraphIte
18
18
  return telemetryProps;
19
19
  }
20
20
  commandAction(logger, args, cb) {
21
- this
22
- .getAllItems(`${this.resource}/v1.0/groupSettingTemplates`, logger, true)
23
- .then(() => {
24
- const groupSettingTemplate = this.items.filter(t => args.options.id ? t.id === args.options.id : t.displayName === args.options.displayName);
21
+ utils_1.odata
22
+ .getAllItems(`${this.resource}/v1.0/groupSettingTemplates`, logger)
23
+ .then((templates) => {
24
+ const groupSettingTemplate = templates.filter(t => args.options.id ? t.id === args.options.id : t.displayName === args.options.displayName);
25
25
  if (groupSettingTemplate && groupSettingTemplate.length > 0) {
26
26
  logger.log(groupSettingTemplate.pop());
27
27
  }
@@ -52,7 +52,7 @@ class AadGroupSettingTemplateGetCommand extends GraphItemsListCommand_1.GraphIte
52
52
  return 'Specify either id or displayName but not both';
53
53
  }
54
54
  if (args.options.id &&
55
- !Utils_1.default.isValidGuid(args.options.id)) {
55
+ !utils_1.validation.isValidGuid(args.options.id)) {
56
56
  return `${args.options.id} is not a valid GUID`;
57
57
  }
58
58
  return true;
@@ -1,8 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- const GraphItemsListCommand_1 = require("../../../base/GraphItemsListCommand");
3
+ const utils_1 = require("../../../../utils");
4
+ const GraphCommand_1 = require("../../../base/GraphCommand");
4
5
  const commands_1 = require("../../commands");
5
- class AadGroupSettingTemplateListCommand extends GraphItemsListCommand_1.GraphItemsListCommand {
6
+ class AadGroupSettingTemplateListCommand extends GraphCommand_1.default {
6
7
  get name() {
7
8
  return commands_1.default.GROUPSETTINGTEMPLATE_LIST;
8
9
  }
@@ -13,10 +14,10 @@ class AadGroupSettingTemplateListCommand extends GraphItemsListCommand_1.GraphIt
13
14
  return ['id', 'displayName'];
14
15
  }
15
16
  commandAction(logger, args, cb) {
16
- this
17
- .getAllItems(`${this.resource}/v1.0/groupSettingTemplates`, logger, true)
18
- .then(() => {
19
- logger.log(this.items);
17
+ utils_1.odata
18
+ .getAllItems(`${this.resource}/v1.0/groupSettingTemplates`, logger)
19
+ .then((templates) => {
20
+ logger.log(templates);
20
21
  cb();
21
22
  }, (err) => this.handleRejectedODataJsonPromise(err, logger, cb));
22
23
  }
@@ -1,3 +1,3 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=SpoOperation.js.map
3
+ //# sourceMappingURL=GroupExtended.js.map