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

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 (494) 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/cli/index.js +5 -1
  12. package/dist/m365/aad/commands/app/app-add.js +54 -18
  13. package/dist/m365/aad/commands/app/app-delete.js +123 -0
  14. package/dist/m365/aad/commands/app/app-get.js +142 -0
  15. package/dist/m365/aad/commands/app/app-role-delete.js +2 -2
  16. package/dist/m365/aad/commands/app/app-role-list.js +6 -5
  17. package/dist/m365/aad/commands/app/app-set.js +98 -3
  18. package/dist/m365/aad/commands/approleassignment/approleassignment-add.js +4 -4
  19. package/dist/m365/aad/commands/approleassignment/approleassignment-list.js +3 -3
  20. package/dist/m365/aad/commands/approleassignment/approleassignment-remove.js +4 -4
  21. package/dist/m365/aad/commands/group/group-list.js +55 -0
  22. package/dist/m365/aad/commands/groupsetting/groupsetting-add.js +2 -2
  23. package/dist/m365/aad/commands/groupsetting/groupsetting-get.js +2 -2
  24. package/dist/m365/aad/commands/groupsetting/groupsetting-list.js +7 -6
  25. package/dist/m365/aad/commands/groupsetting/groupsetting-remove.js +2 -2
  26. package/dist/m365/aad/commands/groupsetting/groupsetting-set.js +2 -2
  27. package/dist/m365/aad/commands/groupsettingtemplate/groupsettingtemplate-get.js +8 -8
  28. package/dist/m365/aad/commands/groupsettingtemplate/groupsettingtemplate-list.js +7 -6
  29. package/dist/m365/{spo/commands/site/SpoOperation.js → aad/commands/o365group/GroupExtended.js} +1 -1
  30. package/dist/m365/aad/commands/o365group/o365group-add.js +41 -3
  31. package/dist/m365/aad/commands/o365group/o365group-conversation-list.js +41 -0
  32. package/dist/m365/aad/commands/o365group/o365group-conversation-post-list.js +87 -0
  33. package/dist/m365/aad/commands/o365group/o365group-get.js +2 -2
  34. package/dist/m365/aad/commands/o365group/o365group-list.js +15 -12
  35. package/dist/m365/aad/commands/o365group/o365group-recyclebinitem-clear.js +8 -7
  36. package/dist/m365/aad/commands/o365group/o365group-recyclebinitem-list.js +7 -6
  37. package/dist/m365/aad/commands/o365group/o365group-recyclebinitem-restore.js +2 -2
  38. package/dist/m365/aad/commands/o365group/o365group-remove.js +2 -2
  39. package/dist/m365/aad/commands/o365group/o365group-renew.js +2 -2
  40. package/dist/m365/aad/commands/o365group/o365group-set.js +2 -2
  41. package/dist/m365/aad/commands/o365group/o365group-teamify.js +2 -2
  42. package/dist/m365/aad/commands/o365group/o365group-user-add.js +3 -3
  43. package/dist/m365/aad/commands/o365group/o365group-user-list.js +21 -15
  44. package/dist/m365/aad/commands/o365group/o365group-user-remove.js +3 -3
  45. package/dist/m365/aad/commands/o365group/o365group-user-set.js +23 -17
  46. package/dist/m365/aad/commands/oauth2grant/oauth2grant-add.js +3 -3
  47. package/dist/m365/aad/commands/oauth2grant/oauth2grant-list.js +2 -2
  48. package/dist/m365/aad/commands/sp/sp-add.js +3 -3
  49. package/dist/m365/aad/commands/sp/sp-get.js +3 -3
  50. package/dist/m365/aad/commands/user/user-get.js +35 -8
  51. package/dist/m365/aad/commands/user/user-hibp.js +67 -0
  52. package/dist/m365/aad/commands/user/user-list.js +14 -10
  53. package/dist/m365/aad/commands/user/user-password-validate.js +42 -0
  54. package/dist/m365/aad/commands/user/user-set.js +2 -2
  55. package/dist/m365/aad/commands.js +7 -0
  56. package/dist/m365/app/commands/permission/permission-list.js +266 -0
  57. package/dist/m365/app/commands.js +7 -0
  58. package/dist/m365/base/AppCommand.js +76 -0
  59. package/dist/m365/base/SpoCommand.js +0 -260
  60. package/dist/m365/cli/commands/cli-doctor.js +4 -2
  61. package/dist/m365/cli/commands/config/config-set.js +5 -1
  62. package/dist/m365/commands/status.js +3 -3
  63. package/dist/m365/file/commands/file-add.js +3 -3
  64. package/dist/m365/file/commands/file-list.js +14 -12
  65. package/dist/m365/flow/commands/flow-export.js +2 -2
  66. package/dist/m365/flow/commands/flow-get.js +2 -2
  67. package/dist/m365/flow/commands/flow-remove.js +2 -2
  68. package/dist/m365/flow/commands/run/run-cancel.js +2 -2
  69. package/dist/m365/flow/commands/run/run-resubmit.js +2 -2
  70. package/dist/m365/graph/commands/schemaextension/schemaextension-add.js +2 -2
  71. package/dist/m365/graph/commands/schemaextension/schemaextension-list.js +2 -2
  72. package/dist/m365/graph/commands/schemaextension/schemaextension-set.js +2 -2
  73. package/dist/m365/graph/commands/subscription/subscription-add.js +2 -2
  74. package/dist/m365/onedrive/commands/onedrive-list.js +3 -2
  75. package/dist/m365/outlook/commands/message/message-list.js +6 -5
  76. package/dist/m365/outlook/commands/room/room-list.js +44 -0
  77. package/dist/m365/outlook/commands/roomlist/roomlist-list.js +26 -0
  78. package/dist/m365/outlook/commands.js +2 -0
  79. package/dist/m365/pa/cds-project-mutator.js +1 -1
  80. package/dist/m365/pa/commands/app/app-get.js +2 -2
  81. package/dist/m365/pa/commands/app/app-list.js +28 -1
  82. package/dist/m365/pa/commands/app/app-remove.js +2 -2
  83. package/dist/m365/pa/commands/pcf/pcf-init.js +4 -4
  84. package/dist/m365/pa/commands/solution/solution-init.js +2 -2
  85. package/dist/m365/{base/AzmgmtResponse.js → planner/AppliedCategories.js} +1 -1
  86. package/dist/m365/planner/commands/bucket/bucket-add.js +2 -2
  87. package/dist/m365/planner/commands/bucket/bucket-list.js +7 -7
  88. package/dist/m365/planner/commands/plan/plan-add.js +2 -2
  89. package/dist/m365/planner/commands/plan/plan-details-get.js +134 -0
  90. package/dist/m365/planner/commands/plan/plan-get.js +7 -7
  91. package/dist/m365/planner/commands/plan/plan-list.js +2 -2
  92. package/dist/m365/planner/commands/task/task-add.js +288 -0
  93. package/dist/m365/planner/commands/task/task-details-get.js +39 -0
  94. package/dist/m365/planner/commands/task/task-get.js +37 -0
  95. package/dist/m365/planner/commands/task/task-list.js +46 -16
  96. package/dist/m365/planner/commands/task/task-set.js +357 -0
  97. package/dist/m365/planner/commands.js +6 -1
  98. package/dist/m365/search/commands/externalconnection/externalconnection-add.js +99 -0
  99. package/dist/m365/search/commands.js +7 -0
  100. package/dist/m365/spfx/commands/package/package-generate.js +4 -4
  101. package/dist/m365/spfx/commands/project/base-project-command.js +18 -19
  102. package/dist/m365/spfx/commands/project/model/index.js +5 -1
  103. package/dist/m365/spfx/commands/project/project-externalize/index.js +5 -1
  104. package/dist/m365/spfx/commands/project/project-externalize/rules/index.js +5 -1
  105. package/dist/m365/spfx/commands/project/project-upgrade/index.js +5 -2
  106. package/dist/m365/spfx/commands/project/project-upgrade/rules/FN001005_DEP_types_react.js +2 -2
  107. package/dist/m365/spfx/commands/project/project-upgrade/rules/FN001006_DEP_types_react_dom.js +2 -2
  108. package/dist/m365/spfx/commands/project/project-upgrade/rules/FN001008_DEP_react.js +2 -2
  109. package/dist/m365/spfx/commands/project/project-upgrade/rules/FN001009_DEP_react_dom.js +2 -2
  110. package/dist/m365/spfx/commands/project/project-upgrade/rules/FN001015_DEP_types_react_addons_shallow_compare.js +2 -2
  111. package/dist/m365/spfx/commands/project/project-upgrade/rules/FN001016_DEP_types_react_addons_update.js +2 -2
  112. package/dist/m365/spfx/commands/project/project-upgrade/rules/FN001017_DEP_types_react_addons_update.js +2 -2
  113. package/dist/m365/spfx/commands/project/project-upgrade/rules/FN001019_DEP_knockout.js +2 -2
  114. package/dist/m365/spfx/commands/project/project-upgrade/rules/FN001020_DEP_types_knockout.js +2 -2
  115. package/dist/m365/spfx/commands/project/project-upgrade/rules/FN001022_DEP_office_ui_fabric_react.js +2 -2
  116. package/dist/m365/spfx/commands/project/project-upgrade/rules/FN002015_DEVDEP_types_react.js +2 -2
  117. package/dist/m365/spfx/commands/project/project-upgrade/rules/FN002016_DEVDEP_types_react_dom.js +2 -2
  118. package/dist/m365/spfx/commands/project/project-upgrade/rules/FN006005_CFG_PS_metadata.js +63 -0
  119. package/dist/m365/spfx/commands/project/project-upgrade/rules/FN006006_CFG_PS_features.js +60 -0
  120. package/dist/m365/spfx/commands/project/project-upgrade/rules/FN014008_CODE_launch_hostedWorkbench_type.js +62 -0
  121. package/dist/m365/spfx/commands/project/project-upgrade/rules/FN020001_RES_types_react.js +2 -2
  122. package/dist/m365/spfx/commands/project/project-upgrade/rules/FN022001_SCSS_remove_fabric_react.js +2 -2
  123. package/dist/m365/spfx/commands/project/project-upgrade/rules/FN022002_SCSS_add_fabric_react.js +2 -2
  124. package/dist/m365/spfx/commands/project/project-upgrade/upgrade-1.14.0.js +59 -0
  125. package/dist/m365/spfx/commands/project/project-upgrade.js +2 -1
  126. package/dist/m365/spfx/commands/spfx-doctor.js +25 -6
  127. package/dist/m365/spo/commands/app/app-add.js +3 -2
  128. package/dist/m365/spo/commands/app/app-deploy.js +4 -4
  129. package/dist/m365/spo/commands/app/app-get.js +4 -4
  130. package/dist/m365/spo/commands/app/app-install.js +3 -3
  131. package/dist/m365/spo/commands/app/app-instance-list.js +2 -1
  132. package/dist/m365/spo/commands/app/app-list.js +3 -2
  133. package/dist/m365/spo/commands/app/app-remove.js +4 -5
  134. package/dist/m365/spo/commands/app/app-retract.js +4 -5
  135. package/dist/m365/spo/commands/app/app-uninstall.js +3 -3
  136. package/dist/m365/spo/commands/app/app-upgrade.js +3 -3
  137. package/dist/m365/spo/commands/apppage/apppage-add.js +2 -2
  138. package/dist/m365/spo/commands/apppage/apppage-set.js +2 -2
  139. package/dist/m365/spo/commands/cdn/cdn-get.js +4 -3
  140. package/dist/m365/spo/commands/cdn/cdn-origin-add.js +5 -5
  141. package/dist/m365/spo/commands/cdn/cdn-origin-list.js +4 -3
  142. package/dist/m365/spo/commands/cdn/cdn-origin-remove.js +5 -5
  143. package/dist/m365/spo/commands/cdn/cdn-policy-list.js +4 -3
  144. package/dist/m365/spo/commands/cdn/cdn-policy-set.js +5 -5
  145. package/dist/m365/spo/commands/cdn/cdn-set.js +3 -2
  146. package/dist/m365/spo/commands/contenttype/contenttype-add.js +6 -6
  147. package/dist/m365/spo/commands/contenttype/contenttype-field-remove.js +6 -6
  148. package/dist/m365/spo/commands/contenttype/contenttype-field-set.js +6 -6
  149. package/dist/m365/spo/commands/contenttype/contenttype-get.js +2 -1
  150. package/dist/m365/spo/commands/contenttype/contenttype-list.js +2 -1
  151. package/dist/m365/spo/commands/contenttype/contenttype-remove.js +2 -1
  152. package/dist/m365/spo/commands/contenttypehub/contenttypehub-get.js +3 -2
  153. package/dist/m365/spo/commands/customaction/customaction-add.js +3 -3
  154. package/dist/m365/spo/commands/customaction/customaction-clear.js +2 -1
  155. package/dist/m365/spo/commands/customaction/customaction-get.js +3 -3
  156. package/dist/m365/spo/commands/customaction/customaction-list.js +2 -1
  157. package/dist/m365/spo/commands/customaction/customaction-remove.js +3 -3
  158. package/dist/m365/spo/commands/customaction/customaction-set.js +4 -4
  159. package/dist/m365/spo/commands/externaluser/externaluser-list.js +6 -6
  160. package/dist/m365/spo/commands/feature/feature-enable.js +2 -1
  161. package/dist/m365/spo/commands/feature/feature-list.js +2 -1
  162. package/dist/m365/spo/commands/field/field-add.js +3 -2
  163. package/dist/m365/spo/commands/field/field-get.js +5 -5
  164. package/dist/m365/spo/commands/field/field-remove.js +5 -5
  165. package/dist/m365/spo/commands/field/field-set.js +10 -10
  166. package/dist/m365/spo/commands/file/file-add.js +5 -7
  167. package/dist/m365/spo/commands/file/file-checkin.js +3 -3
  168. package/dist/m365/spo/commands/file/file-checkout.js +3 -3
  169. package/dist/m365/spo/commands/file/file-copy.js +18 -7
  170. package/dist/m365/spo/commands/file/file-get.js +3 -3
  171. package/dist/m365/spo/commands/file/file-list.js +3 -3
  172. package/dist/m365/spo/commands/file/file-move.js +18 -7
  173. package/dist/m365/spo/commands/file/file-remove.js +3 -3
  174. package/dist/m365/spo/commands/file/file-sharinginfo-get.js +3 -3
  175. package/dist/m365/spo/commands/folder/folder-add.js +3 -3
  176. package/dist/m365/spo/commands/folder/folder-copy.js +16 -5
  177. package/dist/m365/spo/commands/folder/folder-get.js +3 -3
  178. package/dist/m365/spo/commands/folder/folder-list.js +3 -3
  179. package/dist/m365/spo/commands/folder/folder-move.js +16 -5
  180. package/dist/m365/spo/commands/folder/folder-remove.js +3 -3
  181. package/dist/m365/spo/commands/folder/folder-rename.js +6 -8
  182. package/dist/m365/spo/commands/group/group-get.js +2 -1
  183. package/dist/m365/spo/commands/group/group-list.js +2 -1
  184. package/dist/m365/spo/commands/group/group-remove.js +2 -1
  185. package/dist/m365/spo/commands/group/group-user-add.js +76 -17
  186. package/dist/m365/spo/commands/group/group-user-list.js +2 -1
  187. package/dist/m365/spo/commands/group/group-user-remove.js +101 -0
  188. package/dist/m365/spo/commands/hidedefaultthemes/hidedefaultthemes-get.js +2 -1
  189. package/dist/m365/spo/commands/hidedefaultthemes/hidedefaultthemes-set.js +2 -1
  190. package/dist/m365/spo/commands/homesite/homesite-get.js +2 -1
  191. package/dist/m365/spo/commands/homesite/homesite-remove.js +3 -2
  192. package/dist/m365/spo/commands/homesite/homesite-set.js +5 -5
  193. package/dist/m365/spo/commands/hubsite/hubsite-connect.js +4 -4
  194. package/dist/m365/spo/commands/hubsite/hubsite-data-get.js +2 -1
  195. package/dist/m365/spo/commands/hubsite/hubsite-disconnect.js +3 -2
  196. package/dist/m365/spo/commands/hubsite/hubsite-get.js +3 -3
  197. package/dist/m365/spo/commands/hubsite/hubsite-list.js +2 -1
  198. package/dist/m365/spo/commands/hubsite/hubsite-register.js +3 -2
  199. package/dist/m365/spo/commands/hubsite/hubsite-rights-grant.js +6 -6
  200. package/dist/m365/spo/commands/hubsite/hubsite-rights-revoke.js +6 -6
  201. package/dist/m365/spo/commands/hubsite/hubsite-set.js +8 -8
  202. package/dist/m365/spo/commands/hubsite/hubsite-theme-sync.js +2 -1
  203. package/dist/m365/spo/commands/hubsite/hubsite-unregister.js +3 -2
  204. package/dist/m365/spo/commands/knowledgehub/knowledgehub-get.js +3 -2
  205. package/dist/m365/spo/commands/knowledgehub/knowledgehub-remove.js +3 -2
  206. package/dist/m365/spo/commands/knowledgehub/knowledgehub-set.js +5 -5
  207. package/dist/m365/spo/commands/list/list-add.js +5 -5
  208. package/dist/m365/spo/commands/list/list-contenttype-add.js +3 -3
  209. package/dist/m365/spo/commands/list/list-contenttype-default-set.js +3 -3
  210. package/dist/m365/spo/commands/list/list-contenttype-list.js +3 -3
  211. package/dist/m365/spo/commands/list/list-contenttype-remove.js +3 -3
  212. package/dist/m365/spo/commands/list/list-get.js +3 -3
  213. package/dist/m365/spo/commands/list/list-label-get.js +4 -4
  214. package/dist/m365/spo/commands/list/list-label-set.js +5 -5
  215. package/dist/m365/spo/commands/list/list-list.js +2 -1
  216. package/dist/m365/spo/commands/list/list-remove.js +3 -3
  217. package/dist/m365/spo/commands/list/list-set.js +6 -6
  218. package/dist/m365/spo/commands/list/list-sitescript-get.js +4 -4
  219. package/dist/m365/spo/commands/list/list-view-field-add.js +5 -5
  220. package/dist/m365/spo/commands/list/list-view-field-remove.js +5 -5
  221. package/dist/m365/spo/commands/list/list-view-field-set.js +5 -5
  222. package/dist/m365/spo/commands/list/list-view-get.js +5 -5
  223. package/dist/m365/spo/commands/list/list-view-list.js +3 -3
  224. package/dist/m365/spo/commands/list/list-view-remove.js +4 -4
  225. package/dist/m365/spo/commands/list/list-view-set.js +5 -5
  226. package/dist/m365/spo/commands/list/list-webhook-add.js +3 -3
  227. package/dist/m365/spo/commands/list/list-webhook-get.js +4 -4
  228. package/dist/m365/spo/commands/list/list-webhook-list.js +4 -4
  229. package/dist/m365/spo/commands/list/list-webhook-remove.js +4 -4
  230. package/dist/m365/spo/commands/list/list-webhook-set.js +4 -4
  231. package/dist/m365/spo/commands/listitem/listitem-add.js +5 -7
  232. package/dist/m365/spo/commands/listitem/listitem-attachment-list.js +3 -3
  233. package/dist/m365/spo/commands/listitem/listitem-get.js +3 -3
  234. package/dist/m365/spo/commands/listitem/listitem-isrecord.js +5 -7
  235. package/dist/m365/spo/commands/listitem/listitem-list.js +4 -4
  236. package/dist/m365/spo/commands/listitem/listitem-record-declare.js +6 -8
  237. package/dist/m365/spo/commands/listitem/listitem-record-undeclare.js +5 -7
  238. package/dist/m365/spo/commands/listitem/listitem-remove.js +3 -3
  239. package/dist/m365/spo/commands/listitem/listitem-set.js +4 -4
  240. package/dist/m365/spo/commands/mail/mail-send.js +2 -1
  241. package/dist/m365/spo/commands/navigation/navigation-node-add.js +2 -1
  242. package/dist/m365/spo/commands/navigation/navigation-node-list.js +2 -1
  243. package/dist/m365/spo/commands/navigation/navigation-node-remove.js +3 -2
  244. package/dist/m365/spo/commands/orgassetslibrary/orgassetslibrary-add.js +5 -4
  245. package/dist/m365/spo/commands/orgassetslibrary/orgassetslibrary-list.js +3 -2
  246. package/dist/m365/spo/commands/orgassetslibrary/orgassetslibrary-remove.js +3 -2
  247. package/dist/m365/spo/commands/orgnewssite/orgnewssite-list.js +3 -2
  248. package/dist/m365/spo/commands/orgnewssite/orgnewssite-remove.js +5 -5
  249. package/dist/m365/spo/commands/orgnewssite/orgnewssite-set.js +5 -5
  250. package/dist/m365/spo/commands/page/Page.js +2 -2
  251. package/dist/m365/spo/commands/page/page-add.js +4 -4
  252. package/dist/m365/spo/commands/page/page-clientsidewebpart-add.js +3 -3
  253. package/dist/m365/spo/commands/page/page-column-get.js +2 -1
  254. package/dist/m365/spo/commands/page/page-column-list.js +2 -1
  255. package/dist/m365/spo/commands/page/page-control-get.js +3 -3
  256. package/dist/m365/spo/commands/page/page-control-list.js +2 -1
  257. package/dist/m365/spo/commands/page/page-control-set.js +3 -3
  258. package/dist/m365/spo/commands/page/page-copy.js +2 -1
  259. package/dist/m365/spo/commands/page/page-get.js +3 -3
  260. package/dist/m365/spo/commands/page/page-header-set.js +2 -1
  261. package/dist/m365/spo/commands/page/page-list.js +2 -1
  262. package/dist/m365/spo/commands/page/page-remove.js +4 -4
  263. package/dist/m365/spo/commands/page/page-section-add.js +2 -1
  264. package/dist/m365/spo/commands/page/page-section-get.js +2 -1
  265. package/dist/m365/spo/commands/page/page-section-list.js +2 -1
  266. package/dist/m365/spo/commands/page/page-set.js +4 -4
  267. package/dist/m365/spo/commands/page/page-template-list.js +2 -1
  268. package/dist/m365/spo/commands/page/page-text-add.js +4 -4
  269. package/dist/m365/spo/commands/propertybag/propertybag-base.js +4 -4
  270. package/dist/m365/spo/commands/propertybag/propertybag-get.js +4 -6
  271. package/dist/m365/spo/commands/propertybag/propertybag-list.js +4 -6
  272. package/dist/m365/spo/commands/propertybag/propertybag-remove.js +6 -9
  273. package/dist/m365/spo/commands/propertybag/propertybag-set.js +8 -10
  274. package/dist/m365/spo/commands/serviceprincipal/serviceprincipal-grant-add.js +4 -4
  275. package/dist/m365/spo/commands/serviceprincipal/serviceprincipal-grant-list.js +3 -2
  276. package/dist/m365/spo/commands/serviceprincipal/serviceprincipal-grant-revoke.js +4 -4
  277. package/dist/m365/spo/commands/serviceprincipal/serviceprincipal-permissionrequest-approve.js +5 -5
  278. package/dist/m365/spo/commands/serviceprincipal/serviceprincipal-permissionrequest-deny.js +5 -5
  279. package/dist/m365/spo/commands/serviceprincipal/serviceprincipal-permissionrequest-list.js +3 -2
  280. package/dist/m365/spo/commands/serviceprincipal/serviceprincipal-set.js +3 -2
  281. package/dist/m365/spo/commands/site/site-add.js +36 -16
  282. package/dist/m365/spo/commands/site/site-appcatalog-add.js +5 -5
  283. package/dist/m365/spo/commands/site/site-appcatalog-remove.js +5 -5
  284. package/dist/m365/spo/commands/site/site-apppermission-add.js +3 -4
  285. package/dist/m365/spo/commands/site/site-apppermission-get.js +2 -2
  286. package/dist/m365/spo/commands/site/site-apppermission-list.js +2 -2
  287. package/dist/m365/spo/commands/site/site-apppermission-remove.js +3 -4
  288. package/dist/m365/spo/commands/site/site-apppermission-set.js +3 -4
  289. package/dist/m365/spo/commands/site/site-chrome-set.js +2 -1
  290. package/dist/m365/spo/commands/site/site-classic-add.js +33 -13
  291. package/dist/m365/spo/commands/site/site-classic-list.js +4 -4
  292. package/dist/m365/spo/commands/site/site-classic-set.js +33 -13
  293. package/dist/m365/spo/commands/site/site-commsite-enable.js +6 -6
  294. package/dist/m365/spo/commands/site/site-ensure.js +3 -2
  295. package/dist/m365/spo/commands/site/site-get.js +2 -1
  296. package/dist/m365/spo/commands/site/site-groupify.js +2 -1
  297. package/dist/m365/spo/commands/site/site-inplacerecordsmanagement-set.js +3 -3
  298. package/dist/m365/spo/commands/site/site-list.js +4 -4
  299. package/dist/m365/spo/commands/site/site-recyclebinitem-list.js +77 -0
  300. package/dist/m365/spo/commands/site/site-remove.js +34 -14
  301. package/dist/m365/spo/commands/site/site-rename.js +3 -2
  302. package/dist/m365/spo/commands/site/site-set.js +12 -12
  303. package/dist/m365/spo/commands/sitedesign/sitedesign-add.js +4 -4
  304. package/dist/m365/spo/commands/sitedesign/sitedesign-apply.js +4 -4
  305. package/dist/m365/spo/commands/sitedesign/sitedesign-get.js +3 -3
  306. package/dist/m365/spo/commands/sitedesign/sitedesign-list.js +2 -1
  307. package/dist/m365/spo/commands/sitedesign/sitedesign-remove.js +4 -4
  308. package/dist/m365/spo/commands/sitedesign/sitedesign-rights-grant.js +4 -4
  309. package/dist/m365/spo/commands/sitedesign/sitedesign-rights-list.js +4 -4
  310. package/dist/m365/spo/commands/sitedesign/sitedesign-rights-revoke.js +4 -4
  311. package/dist/m365/spo/commands/sitedesign/sitedesign-run-list.js +3 -3
  312. package/dist/m365/spo/commands/sitedesign/sitedesign-run-status-get.js +3 -3
  313. package/dist/m365/spo/commands/sitedesign/sitedesign-set.js +4 -4
  314. package/dist/m365/spo/commands/sitedesign/sitedesign-task-get.js +3 -3
  315. package/dist/m365/spo/commands/sitedesign/sitedesign-task-list.js +2 -1
  316. package/dist/m365/spo/commands/sitedesign/sitedesign-task-remove.js +3 -3
  317. package/dist/m365/spo/commands/sitescript/sitescript-add.js +3 -2
  318. package/dist/m365/spo/commands/sitescript/sitescript-get.js +4 -4
  319. package/dist/m365/spo/commands/sitescript/sitescript-list.js +3 -2
  320. package/dist/m365/spo/commands/sitescript/sitescript-remove.js +4 -4
  321. package/dist/m365/spo/commands/sitescript/sitescript-set.js +4 -4
  322. package/dist/m365/spo/commands/spo-search.js +4 -4
  323. package/dist/m365/spo/commands/spo-set.js +2 -1
  324. package/dist/m365/spo/commands/storageentity/storageentity-get.js +2 -1
  325. package/dist/m365/spo/commands/storageentity/storageentity-list.js +2 -1
  326. package/dist/m365/spo/commands/storageentity/storageentity-remove.js +5 -5
  327. package/dist/m365/spo/commands/storageentity/storageentity-set.js +5 -5
  328. package/dist/m365/spo/commands/tenant/tenant-appcatalog-add.js +2 -1
  329. package/dist/m365/spo/commands/tenant/tenant-appcatalogurl-get.js +2 -1
  330. package/dist/m365/spo/commands/tenant/tenant-recyclebinitem-list.js +3 -2
  331. package/dist/m365/spo/commands/tenant/tenant-recyclebinitem-remove.js +16 -6
  332. package/dist/m365/spo/commands/tenant/tenant-recyclebinitem-restore.js +16 -6
  333. package/dist/m365/spo/commands/tenant/tenant-settings-list.js +3 -2
  334. package/dist/m365/spo/commands/tenant/tenant-settings-set.js +5 -5
  335. package/dist/m365/spo/commands/term/term-add.js +13 -13
  336. package/dist/m365/spo/commands/term/term-get.js +9 -9
  337. package/dist/m365/spo/commands/term/term-group-add.js +6 -6
  338. package/dist/m365/spo/commands/term/term-group-get.js +5 -5
  339. package/dist/m365/spo/commands/term/term-group-list.js +3 -2
  340. package/dist/m365/spo/commands/term/term-list.js +7 -7
  341. package/dist/m365/spo/commands/term/term-set-add.js +9 -9
  342. package/dist/m365/spo/commands/term/term-set-get.js +7 -7
  343. package/dist/m365/spo/commands/term/term-set-list.js +5 -5
  344. package/dist/m365/spo/commands/theme/theme-apply.js +5 -5
  345. package/dist/m365/spo/commands/theme/theme-get.js +4 -4
  346. package/dist/m365/spo/commands/theme/theme-list.js +2 -1
  347. package/dist/m365/spo/commands/theme/theme-remove.js +2 -1
  348. package/dist/m365/spo/commands/theme/theme-set.js +5 -5
  349. package/dist/m365/spo/commands/user/user-get.js +2 -1
  350. package/dist/m365/spo/commands/user/user-list.js +2 -1
  351. package/dist/m365/spo/commands/user/user-remove.js +2 -1
  352. package/dist/m365/spo/commands/userprofile/userprofile-get.js +3 -3
  353. package/dist/m365/spo/commands/userprofile/userprofile-set.js +3 -2
  354. package/dist/m365/spo/commands/web/web-add.js +4 -3
  355. package/dist/m365/spo/commands/web/web-clientsidewebpart-list.js +2 -1
  356. package/dist/m365/spo/commands/web/web-get.js +2 -1
  357. package/dist/m365/spo/commands/web/web-installedlanguage-list.js +49 -0
  358. package/dist/m365/spo/commands/web/web-list.js +2 -1
  359. package/dist/m365/spo/commands/web/web-reindex.js +10 -11
  360. package/dist/m365/spo/commands/web/web-remove.js +2 -1
  361. package/dist/m365/spo/commands/web/web-set.js +2 -1
  362. package/dist/m365/spo/commands.js +3 -0
  363. package/dist/m365/teams/commands/app/app-install.js +77 -23
  364. package/dist/m365/teams/commands/app/app-list.js +17 -14
  365. package/dist/m365/teams/commands/app/app-remove.js +2 -2
  366. package/dist/m365/teams/commands/app/app-uninstall.js +2 -2
  367. package/dist/m365/teams/commands/app/app-update.js +55 -13
  368. package/dist/m365/teams/commands/channel/channel-add.js +2 -2
  369. package/dist/m365/teams/commands/channel/channel-get.js +32 -10
  370. package/dist/m365/teams/commands/channel/channel-list.js +7 -8
  371. package/dist/m365/teams/commands/channel/channel-remove.js +3 -3
  372. package/dist/m365/teams/commands/channel/channel-set.js +2 -2
  373. package/dist/m365/teams/commands/chat/chat-list.js +44 -0
  374. package/dist/m365/teams/commands/chat/chat-member-list.js +42 -0
  375. package/dist/m365/teams/commands/chat/chat-message-list.js +60 -0
  376. package/dist/m365/teams/commands/chat/chat-message-send.js +217 -0
  377. package/dist/m365/teams/commands/conversationmember/conversationmember-add.js +3 -3
  378. package/dist/m365/teams/commands/conversationmember/conversationmember-list.js +9 -9
  379. package/dist/m365/teams/commands/funsettings/funsettings-list.js +2 -2
  380. package/dist/m365/teams/commands/funsettings/funsettings-set.js +2 -2
  381. package/dist/m365/teams/commands/guestsettings/guestsettings-list.js +2 -2
  382. package/dist/m365/teams/commands/guestsettings/guestsettings-set.js +2 -2
  383. package/dist/m365/teams/commands/membersettings/membersettings-list.js +2 -2
  384. package/dist/m365/teams/commands/membersettings/membersettings-set.js +2 -2
  385. package/dist/m365/teams/commands/message/message-get.js +4 -4
  386. package/dist/m365/teams/commands/message/message-list.js +12 -12
  387. package/dist/m365/teams/commands/message/message-reply-list.js +10 -10
  388. package/dist/m365/teams/commands/messagingsettings/messagingsettings-list.js +2 -2
  389. package/dist/m365/teams/commands/messagingsettings/messagingsettings-set.js +3 -3
  390. package/dist/m365/teams/commands/report/report-directroutingcalls.js +3 -3
  391. package/dist/m365/teams/commands/report/report-pstncalls.js +3 -3
  392. package/dist/m365/teams/commands/tab/tab-add.js +5 -5
  393. package/dist/m365/teams/commands/tab/tab-get.js +13 -10
  394. package/dist/m365/teams/commands/tab/tab-list.js +10 -10
  395. package/dist/m365/teams/commands/tab/tab-remove.js +4 -4
  396. package/dist/m365/teams/commands/team/team-archive.js +2 -2
  397. package/dist/m365/teams/commands/team/team-clone.js +2 -2
  398. package/dist/m365/teams/commands/team/team-get.js +2 -2
  399. package/dist/m365/teams/commands/team/team-list.js +10 -12
  400. package/dist/m365/teams/commands/team/team-remove.js +2 -2
  401. package/dist/m365/teams/commands/team/team-set.js +2 -2
  402. package/dist/m365/teams/commands/team/team-unarchive.js +2 -2
  403. package/dist/m365/teams/commands/user/user-app-add.js +3 -3
  404. package/dist/m365/teams/commands/user/user-app-list.js +10 -10
  405. package/dist/m365/teams/commands/user/user-app-remove.js +2 -2
  406. package/dist/m365/teams/commands/user/user-list.js +14 -8
  407. package/dist/m365/teams/commands.js +4 -0
  408. package/dist/m365/tenant/commands/auditlog/auditlog-report.js +2 -2
  409. package/dist/m365/tenant/commands/id/id-get.js +2 -2
  410. package/dist/m365/tenant/commands/report/report-office365activationcounts.js +2 -2
  411. package/dist/m365/tenant/commands/report/report-office365activationsusercounts.js +2 -2
  412. package/dist/m365/tenant/commands/report/report-office365activationsuserdetail.js +2 -2
  413. package/dist/m365/tenant/commands/service/service-list.js +2 -2
  414. package/dist/m365/tenant/commands/service/service-message-list.js +2 -2
  415. package/dist/m365/tenant/commands/service/service-report-historicalservicestatus.js +2 -2
  416. package/dist/m365/tenant/commands/serviceannouncement/serviceannouncement-health-get.js +57 -0
  417. package/dist/m365/tenant/commands/serviceannouncement/serviceannouncement-health-list.js +56 -0
  418. package/dist/m365/tenant/commands/serviceannouncement/serviceannouncement-healthissue-get.js +39 -0
  419. package/dist/m365/tenant/commands/serviceannouncement/serviceannouncement-healthissue-list.js +39 -0
  420. package/dist/m365/tenant/commands/serviceannouncement/serviceannouncement-message-get.js +51 -0
  421. package/dist/m365/tenant/commands/serviceannouncement/serviceannouncement-message-list.js +39 -0
  422. package/dist/m365/tenant/commands/status/status-list.js +2 -2
  423. package/dist/m365/tenant/commands.js +6 -0
  424. package/dist/m365/todo/commands/list/list-list.js +7 -6
  425. package/dist/m365/todo/commands/task/task-list.js +7 -6
  426. package/dist/request.js +11 -6
  427. package/dist/settingsNames.js +7 -0
  428. package/dist/utils/accessToken.js +44 -0
  429. package/dist/utils/formatting.js +66 -0
  430. package/dist/utils/fsUtil.js +36 -0
  431. package/dist/utils/index.js +26 -0
  432. package/dist/utils/odata.js +37 -0
  433. package/dist/utils/sinonUtil.js +19 -0
  434. package/dist/{m365/spfx/commands/project/project-upgrade/Utils.js → utils/spfx.js} +7 -19
  435. package/dist/utils/spo.js +432 -0
  436. package/dist/utils/urlUtil.js +174 -0
  437. package/dist/utils/validation.js +310 -0
  438. package/docs/docs/cmd/_global.md +2 -2
  439. package/docs/docs/cmd/aad/app/app-delete.md +51 -0
  440. package/docs/docs/cmd/aad/app/app-get.md +59 -0
  441. package/docs/docs/cmd/aad/app/app-set.md +21 -0
  442. package/docs/docs/cmd/aad/group/group-list.md +30 -0
  443. package/docs/docs/cmd/aad/o365group/o365group-add.md +42 -6
  444. package/docs/docs/cmd/aad/o365group/o365group-conversation-list.md +24 -0
  445. package/docs/docs/cmd/aad/o365group/o365group-conversation-post-list.md +36 -0
  446. package/docs/docs/cmd/aad/user/user-get.md +13 -4
  447. package/docs/docs/cmd/aad/user/user-hibp.md +46 -0
  448. package/docs/docs/cmd/aad/user/user-list.md +9 -0
  449. package/docs/docs/cmd/aad/user/user-password-validate.md +29 -0
  450. package/docs/docs/cmd/app/permission/permission-list.md +36 -0
  451. package/docs/docs/cmd/outlook/room/room-list.md +30 -0
  452. package/docs/docs/cmd/outlook/roomlist/roomlist-list.md +21 -0
  453. package/docs/docs/cmd/pa/app/app-list.md +17 -1
  454. package/docs/docs/cmd/planner/plan/plan-details-get.md +45 -0
  455. package/docs/docs/cmd/planner/task/task-add.md +78 -0
  456. package/docs/docs/cmd/planner/task/task-details-get.md +24 -0
  457. package/docs/docs/cmd/planner/task/task-get.md +29 -0
  458. package/docs/docs/cmd/planner/task/task-list.md +5 -0
  459. package/docs/docs/cmd/planner/task/task-set.md +99 -0
  460. package/docs/docs/cmd/search/externalconnection/externalconnection-add.md +43 -0
  461. package/docs/docs/cmd/spfx/project/project-externalize.md +1 -1
  462. package/docs/docs/cmd/spfx/project/project-rename.md +1 -1
  463. package/docs/docs/cmd/spfx/project/project-upgrade.md +8 -8
  464. package/docs/docs/cmd/spfx/spfx-doctor.md +1 -1
  465. package/docs/docs/cmd/spo/group/group-user-add.md +28 -6
  466. package/docs/docs/cmd/spo/group/group-user-remove.md +39 -0
  467. package/docs/docs/cmd/spo/site/site-recyclebinitem-list.md +40 -0
  468. package/docs/docs/cmd/spo/web/web-installedlanguage-list.md +24 -0
  469. package/docs/docs/cmd/teams/app/app-install.md +22 -4
  470. package/docs/docs/cmd/teams/app/app-update.md +12 -3
  471. package/docs/docs/cmd/teams/channel/channel-get.md +11 -2
  472. package/docs/docs/cmd/teams/chat/chat-list.md +30 -0
  473. package/docs/docs/cmd/teams/chat/chat-member-list.md +24 -0
  474. package/docs/docs/cmd/teams/chat/chat-message-list.md +24 -0
  475. package/docs/docs/cmd/teams/chat/chat-message-send.md +55 -0
  476. package/docs/docs/cmd/teams/message/message-get.md +0 -3
  477. package/docs/docs/cmd/tenant/serviceannouncement/serviceannouncement-health-get.md +33 -0
  478. package/docs/docs/cmd/tenant/serviceannouncement/serviceannouncement-health-list.md +30 -0
  479. package/docs/docs/cmd/tenant/serviceannouncement/serviceannouncement-healthissue-get.md +24 -0
  480. package/docs/docs/cmd/tenant/serviceannouncement/serviceannouncement-healthissue-list.md +34 -0
  481. package/docs/docs/cmd/tenant/serviceannouncement/serviceannouncement-message-get.md +28 -0
  482. package/docs/docs/cmd/tenant/serviceannouncement/serviceannouncement-message-list.md +34 -0
  483. package/npm-shrinkwrap.json +1313 -1498
  484. package/package.json +39 -27
  485. package/dist/Utils.js +0 -568
  486. package/dist/m365/aad/commands/o365group/Group.js +0 -3
  487. package/dist/m365/aad/commands/o365group/GroupUser.js +0 -3
  488. package/dist/m365/base/AadCommand.js +0 -10
  489. package/dist/m365/base/GraphItemsListCommand.js +0 -46
  490. package/dist/m365/base/GraphResponse.js +0 -3
  491. package/dist/m365/base/GraphResponseError.js +0 -3
  492. package/dist/m365/spo/ClientSvc.js +0 -128
  493. package/dist/m365/spo/FolderExtensions.js +0 -101
  494. package/dist/m365/spo/spo.js +0 -3
@@ -1,10 +1,10 @@
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");
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 PlannerTaskListCommand extends GraphItemsListCommand_1.GraphItemsListCommand {
7
+ class PlannerTaskListCommand extends GraphCommand_1.default {
8
8
  get name() {
9
9
  return commands_1.default.TASK_LIST;
10
10
  }
@@ -25,33 +25,52 @@ class PlannerTaskListCommand extends GraphItemsListCommand_1.GraphItemsListComma
25
25
  return ['id', 'title', 'startDateTime', 'dueDateTime', 'completedDateTime'];
26
26
  }
27
27
  commandAction(logger, args, cb) {
28
- const bucketId = args.options.bucketId;
29
28
  const bucketName = args.options.bucketName;
30
- const planId = args.options.planId;
29
+ let bucketId = args.options.bucketId;
31
30
  const planName = args.options.planName;
31
+ let planId = args.options.planId;
32
+ let taskItems = [];
32
33
  if (bucketId || bucketName) {
33
34
  this
34
35
  .getBucketId(args)
35
- .then((bucketId) => this.getAllItems(`${this.resource}/v1.0/planner/buckets/${bucketId}/tasks`, logger, true))
36
- .then(() => {
37
- logger.log(this.items);
36
+ .then((retrievedBucketId) => {
37
+ bucketId = retrievedBucketId;
38
+ return utils_1.odata.getAllItems(`${this.resource}/v1.0/planner/buckets/${bucketId}/tasks`, logger);
39
+ })
40
+ .then((tasks) => {
41
+ taskItems = tasks;
42
+ return utils_1.odata.getAllItems(`${this.resource}/beta/planner/buckets/${bucketId}/tasks`, logger);
43
+ })
44
+ .then((betaTasks) => {
45
+ logger.log(this.mergeTaskPriority(taskItems, betaTasks));
38
46
  cb();
39
47
  }, (err) => this.handleRejectedODataJsonPromise(err, logger, cb));
40
48
  }
41
49
  else if (planId || planName) {
42
50
  this
43
51
  .getPlanId(args)
44
- .then((planId) => this.getAllItems(`${this.resource}/v1.0/planner/plans/${planId}/tasks`, logger, true))
45
- .then(() => {
46
- logger.log(this.items);
52
+ .then((retrievedPlanId) => {
53
+ planId = retrievedPlanId;
54
+ return utils_1.odata.getAllItems(`${this.resource}/v1.0/planner/plans/${planId}/tasks`, logger);
55
+ })
56
+ .then((tasks) => {
57
+ taskItems = tasks;
58
+ return utils_1.odata.getAllItems(`${this.resource}/beta/planner/plans/${planId}/tasks`, logger);
59
+ })
60
+ .then((betaTasks) => {
61
+ logger.log(this.mergeTaskPriority(taskItems, betaTasks));
47
62
  cb();
48
63
  }, (err) => this.handleRejectedODataJsonPromise(err, logger, cb));
49
64
  }
50
65
  else {
51
- this
52
- .getAllItems(`${this.resource}/v1.0/me/planner/tasks`, logger, true)
53
- .then(() => {
54
- logger.log(this.items);
66
+ utils_1.odata
67
+ .getAllItems(`${this.resource}/v1.0/me/planner/tasks`, logger)
68
+ .then((tasks) => {
69
+ taskItems = tasks;
70
+ return utils_1.odata.getAllItems(`${this.resource}/beta/me/planner/tasks`, logger);
71
+ })
72
+ .then((betaTasks) => {
73
+ logger.log(this.mergeTaskPriority(taskItems, betaTasks));
55
74
  cb();
56
75
  }, (err) => this.handleRejectedODataJsonPromise(err, logger, cb));
57
76
  }
@@ -125,6 +144,17 @@ class PlannerTaskListCommand extends GraphItemsListCommand_1.GraphItemsListComma
125
144
  return Promise.resolve(group.id);
126
145
  });
127
146
  }
147
+ mergeTaskPriority(taskItems, betaTaskItems) {
148
+ const findBetaTask = (id) => betaTaskItems.find(task => task.id === id);
149
+ taskItems.forEach(task => {
150
+ const betaTaskItem = findBetaTask(task.id);
151
+ if (betaTaskItem) {
152
+ const { priority } = betaTaskItem;
153
+ Object.assign(task, { priority });
154
+ }
155
+ });
156
+ return taskItems;
157
+ }
128
158
  options() {
129
159
  const options = [
130
160
  {
@@ -165,7 +195,7 @@ class PlannerTaskListCommand extends GraphItemsListCommand_1.GraphItemsListComma
165
195
  if (args.options.planName && args.options.ownerGroupId && args.options.ownerGroupName) {
166
196
  return 'Specify either ownerGroupId or ownerGroupName when using planName but not both';
167
197
  }
168
- if (args.options.ownerGroupId && !Utils_1.default.isValidGuid(args.options.ownerGroupId)) {
198
+ if (args.options.ownerGroupId && !utils_1.validation.isValidGuid(args.options.ownerGroupId)) {
169
199
  return `${args.options.ownerGroupId} is not a valid GUID`;
170
200
  }
171
201
  return true;
@@ -0,0 +1,357 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const request_1 = require("../../../../request");
4
+ const utils_1 = require("../../../../utils");
5
+ const GraphCommand_1 = require("../../../base/GraphCommand");
6
+ const commands_1 = require("../../commands");
7
+ class PlannerTaskSetCommand extends GraphCommand_1.default {
8
+ constructor() {
9
+ super(...arguments);
10
+ this.allowedAppliedCategories = ['category1', 'category2', 'category3', 'category4', 'category5', 'category6'];
11
+ }
12
+ get name() {
13
+ return commands_1.default.TASK_SET;
14
+ }
15
+ get description() {
16
+ return 'Updates a Microsoft Planner Task';
17
+ }
18
+ getTelemetryProperties(args) {
19
+ const telemetryProps = super.getTelemetryProperties(args);
20
+ telemetryProps.title = typeof args.options.title !== 'undefined';
21
+ telemetryProps.planId = typeof args.options.planId !== 'undefined';
22
+ telemetryProps.planName = typeof args.options.planName !== 'undefined';
23
+ telemetryProps.ownerGroupId = typeof args.options.ownerGroupId !== 'undefined';
24
+ telemetryProps.ownerGroupName = typeof args.options.ownerGroupName !== 'undefined';
25
+ telemetryProps.bucketId = typeof args.options.bucketId !== 'undefined';
26
+ telemetryProps.bucketName = typeof args.options.bucketName !== 'undefined';
27
+ telemetryProps.startDateTime = typeof args.options.startDateTime !== 'undefined';
28
+ telemetryProps.dueDateTime = typeof args.options.dueDateTime !== 'undefined';
29
+ telemetryProps.percentComplete = typeof args.options.percentComplete !== 'undefined';
30
+ telemetryProps.assignedToUserIds = typeof args.options.assignedToUserIds !== 'undefined';
31
+ telemetryProps.assignedToUserNames = typeof args.options.assignedToUserNames !== 'undefined';
32
+ telemetryProps.assigneePriority = typeof args.options.assigneePriority !== 'undefined';
33
+ telemetryProps.description = typeof args.options.description !== 'undefined';
34
+ telemetryProps.appliedCategories = typeof args.options.appliedCategories !== 'undefined';
35
+ telemetryProps.orderHint = typeof args.options.orderHint !== 'undefined';
36
+ return telemetryProps;
37
+ }
38
+ commandAction(logger, args, cb) {
39
+ this
40
+ .getBucketId(args.options)
41
+ .then(bucketId => {
42
+ this.bucketId = bucketId;
43
+ return this.generateUserAssignments(args.options);
44
+ })
45
+ .then(resultAssignments => {
46
+ this.assignments = resultAssignments;
47
+ return this.getTaskEtag(args.options.id);
48
+ })
49
+ .then(etag => {
50
+ const appliedCategories = this.generateAppliedCategories(args.options);
51
+ const data = this.mapRequestBody(args.options, appliedCategories);
52
+ const requestOptions = {
53
+ url: `${this.resource}/v1.0/planner/tasks/${args.options.id}`,
54
+ headers: {
55
+ 'accept': 'application/json;odata.metadata=none',
56
+ 'If-Match': etag,
57
+ 'Prefer': 'return=representation'
58
+ },
59
+ responseType: 'json',
60
+ data: data
61
+ };
62
+ return request_1.default.patch(requestOptions);
63
+ })
64
+ .then(newTask => this.updateTaskDetails(args.options, newTask))
65
+ .then((res) => {
66
+ logger.log(res);
67
+ cb();
68
+ }, (err) => this.handleRejectedODataJsonPromise(err, logger, cb));
69
+ }
70
+ updateTaskDetails(options, newTask) {
71
+ if (!options.description) {
72
+ return Promise.resolve(newTask);
73
+ }
74
+ const taskId = newTask.id;
75
+ return this
76
+ .getTaskDetailsEtag(taskId)
77
+ .then(etag => {
78
+ const requestOptionsTaskDetails = {
79
+ url: `${this.resource}/v1.0/planner/tasks/${taskId}/details`,
80
+ headers: {
81
+ 'accept': 'application/json;odata.metadata=none',
82
+ 'If-Match': etag,
83
+ 'Prefer': 'return=representation'
84
+ },
85
+ responseType: 'json',
86
+ data: {
87
+ description: options.description
88
+ }
89
+ };
90
+ return request_1.default.patch(requestOptionsTaskDetails);
91
+ })
92
+ .then(taskDetails => {
93
+ return Object.assign(Object.assign({}, newTask), taskDetails);
94
+ });
95
+ }
96
+ getTaskDetailsEtag(taskId) {
97
+ const requestOptions = {
98
+ url: `${this.resource}/v1.0/planner/tasks/${encodeURIComponent(taskId)}/details`,
99
+ headers: {
100
+ accept: 'application/json'
101
+ },
102
+ responseType: 'json'
103
+ };
104
+ return request_1.default
105
+ .get(requestOptions)
106
+ .then((response) => {
107
+ const etag = response ? response['@odata.etag'] : undefined;
108
+ if (!etag) {
109
+ return Promise.reject(`Error fetching task details`);
110
+ }
111
+ return Promise.resolve(etag);
112
+ });
113
+ }
114
+ getTaskEtag(taskId) {
115
+ const requestOptions = {
116
+ url: `${this.resource}/v1.0/planner/tasks/${encodeURIComponent(taskId)}`,
117
+ headers: {
118
+ accept: 'application/json'
119
+ },
120
+ responseType: 'json'
121
+ };
122
+ return request_1.default
123
+ .get(requestOptions)
124
+ .then((response) => {
125
+ const etag = response ? response['@odata.etag'] : undefined;
126
+ if (!etag) {
127
+ return Promise.reject(`Error fetching task`);
128
+ }
129
+ return Promise.resolve(etag);
130
+ });
131
+ }
132
+ generateAppliedCategories(options) {
133
+ if (!options.appliedCategories) {
134
+ return {};
135
+ }
136
+ const categories = {};
137
+ options.appliedCategories.toLocaleLowerCase().split(',').forEach(x => categories[x] = true);
138
+ return categories;
139
+ }
140
+ generateUserAssignments(options) {
141
+ const assignments = {};
142
+ if (!options.assignedToUserIds && !options.assignedToUserNames) {
143
+ return Promise.resolve(assignments);
144
+ }
145
+ return this
146
+ .getUserIds(options)
147
+ .then((userIds) => {
148
+ userIds.forEach(x => assignments[x] = {
149
+ '@odata.type': '#microsoft.graph.plannerAssignment',
150
+ orderHint: ' !'
151
+ });
152
+ return Promise.resolve(assignments);
153
+ });
154
+ }
155
+ getUserIds(options) {
156
+ if (options.assignedToUserIds) {
157
+ return Promise.resolve(options.assignedToUserIds.split(',').map(o => o.trim()));
158
+ }
159
+ // Hitting this section means assignedToUserNames won't be undefined
160
+ const userNames = options.assignedToUserNames;
161
+ const userArr = userNames.split(',').map(o => o.trim());
162
+ let userIds = [];
163
+ const promises = userArr.map(user => {
164
+ const requestOptions = {
165
+ url: `${this.resource}/v1.0/users?$filter=userPrincipalName eq '${utils_1.formatting.encodeQueryParameter(user)}'&$select=id,userPrincipalName`,
166
+ headers: {
167
+ 'accept ': 'application/json;odata.metadata=none'
168
+ },
169
+ responseType: 'json'
170
+ };
171
+ return request_1.default.get(requestOptions);
172
+ });
173
+ return Promise
174
+ .all(promises)
175
+ .then((usersRes) => {
176
+ let userUpns = [];
177
+ userUpns = usersRes.map(res => { var _a; return (_a = res.value[0]) === null || _a === void 0 ? void 0 : _a.userPrincipalName; });
178
+ userIds = usersRes.map(res => { var _a; return (_a = res.value[0]) === null || _a === void 0 ? void 0 : _a.id; });
179
+ // Find the members where no graph response was found
180
+ const invalidUsers = userArr.filter(user => !userUpns.some((upn) => (upn === null || upn === void 0 ? void 0 : upn.toLowerCase()) === user.toLowerCase()));
181
+ if (invalidUsers && invalidUsers.length > 0) {
182
+ return Promise.reject(`Cannot proceed with planner task update. The following users provided are invalid : ${invalidUsers.join(',')}`);
183
+ }
184
+ return Promise.resolve(userIds);
185
+ });
186
+ }
187
+ getBucketId(options) {
188
+ if (options.bucketId) {
189
+ return Promise.resolve(options.bucketId);
190
+ }
191
+ if (!options.bucketName) {
192
+ return Promise.resolve(undefined);
193
+ }
194
+ return this
195
+ .getPlanId(options)
196
+ .then(planId => {
197
+ const requestOptions = {
198
+ url: `${this.resource}/v1.0/planner/plans/${planId}/buckets?$select=id,name`,
199
+ headers: {
200
+ accept: 'application/json;odata.metadata=none'
201
+ },
202
+ responseType: 'json'
203
+ };
204
+ return request_1.default.get(requestOptions);
205
+ })
206
+ .then((response) => {
207
+ const bucket = response.value.find(val => val.name === options.bucketName);
208
+ if (!bucket) {
209
+ return Promise.reject(`The specified bucket does not exist`);
210
+ }
211
+ return Promise.resolve(bucket.id);
212
+ });
213
+ }
214
+ getPlanId(options) {
215
+ if (options.planId) {
216
+ return Promise.resolve(options.planId);
217
+ }
218
+ return this
219
+ .getGroupId(options)
220
+ .then((groupId) => {
221
+ const requestOptions = {
222
+ url: `${this.resource}/v1.0/planner/plans?$filter=(owner eq '${groupId}')&$select=id,title`,
223
+ headers: {
224
+ accept: 'application/json;odata.metadata=none'
225
+ },
226
+ responseType: 'json'
227
+ };
228
+ return request_1.default.get(requestOptions);
229
+ })
230
+ .then((response) => {
231
+ const plan = response.value.find(val => val.title === options.planName);
232
+ if (!plan) {
233
+ return Promise.reject(`The specified plan does not exist`);
234
+ }
235
+ return Promise.resolve(plan.id);
236
+ });
237
+ }
238
+ getGroupId(options) {
239
+ if (options.ownerGroupId) {
240
+ return Promise.resolve(options.ownerGroupId);
241
+ }
242
+ const requestOptions = {
243
+ url: `${this.resource}/v1.0/groups?$filter=displayName eq '${encodeURIComponent(options.ownerGroupName)}'&$select=id`,
244
+ headers: {
245
+ accept: 'application/json;odata.metadata=none'
246
+ },
247
+ responseType: 'json'
248
+ };
249
+ return request_1.default
250
+ .get(requestOptions)
251
+ .then(response => {
252
+ const group = response.value[0];
253
+ if (!group) {
254
+ return Promise.reject(`The specified owner group does not exist`);
255
+ }
256
+ return Promise.resolve(group.id);
257
+ });
258
+ }
259
+ mapRequestBody(options, appliedCategories) {
260
+ const requestBody = {};
261
+ if (options.title) {
262
+ requestBody.title = options.title;
263
+ }
264
+ if (this.bucketId) {
265
+ requestBody.bucketId = this.bucketId;
266
+ }
267
+ if (options.startDateTime) {
268
+ requestBody.startDateTime = options.startDateTime;
269
+ }
270
+ if (options.dueDateTime) {
271
+ requestBody.dueDateTime = options.dueDateTime;
272
+ }
273
+ if (options.percentComplete) {
274
+ requestBody.percentComplete = options.percentComplete;
275
+ }
276
+ if (this.assignments && Object.keys(this.assignments).length > 0) {
277
+ requestBody.assignments = this.assignments;
278
+ }
279
+ if (options.assigneePriority) {
280
+ requestBody.assigneePriority = options.assigneePriority;
281
+ }
282
+ if (appliedCategories && Object.keys(appliedCategories).length > 0) {
283
+ requestBody.appliedCategories = appliedCategories;
284
+ }
285
+ if (options.orderHint) {
286
+ requestBody.orderHint = options.orderHint;
287
+ }
288
+ return requestBody;
289
+ }
290
+ options() {
291
+ const options = [
292
+ { option: '-i, --id <id>' },
293
+ { option: '-t, --title [title]' },
294
+ { option: '--planId [planId]' },
295
+ { option: '--planName [planName]' },
296
+ { option: '--ownerGroupId [ownerGroupId]' },
297
+ { option: '--ownerGroupName [ownerGroupName]' },
298
+ { option: '--bucketId [bucketId]' },
299
+ { option: '--bucketName [bucketName]' },
300
+ { option: '--startDateTime [startDateTime]' },
301
+ { option: '--dueDateTime [dueDateTime]' },
302
+ { option: '--percentComplete [percentComplete]' },
303
+ { option: '--assignedToUserIds [assignedToUserIds]' },
304
+ { option: '--assignedToUserNames [assignedToUserNames]' },
305
+ { option: '--assigneePriority [assigneePriority]' },
306
+ { option: '--description [description]' },
307
+ { option: '--appliedCategories [appliedCategories]' },
308
+ { option: '--orderHint [orderHint]' }
309
+ ];
310
+ const parentOptions = super.options();
311
+ return options.concat(parentOptions);
312
+ }
313
+ validate(args) {
314
+ if (args.options.bucketId && args.options.bucketName) {
315
+ return 'Specify either bucketId or bucketName but not both';
316
+ }
317
+ if (args.options.bucketName && !args.options.planId && !args.options.planName) {
318
+ return 'Specify either planId or planName when using bucketName';
319
+ }
320
+ if (args.options.bucketName && args.options.planId && args.options.planName) {
321
+ return 'Specify either planId or planName when using bucketName but not both';
322
+ }
323
+ if (args.options.planName && !args.options.ownerGroupId && !args.options.ownerGroupName) {
324
+ return 'Specify either ownerGroupId or ownerGroupName when using planName';
325
+ }
326
+ if (args.options.planName && args.options.ownerGroupId && args.options.ownerGroupName) {
327
+ return 'Specify either ownerGroupId or ownerGroupName when using planName but not both';
328
+ }
329
+ if (args.options.ownerGroupId && !utils_1.validation.isValidGuid(args.options.ownerGroupId)) {
330
+ return `${args.options.ownerGroupId} is not a valid GUID`;
331
+ }
332
+ if (args.options.startDateTime && !utils_1.validation.isValidISODateTime(args.options.startDateTime)) {
333
+ return 'The startDateTime is not a valid ISO date string';
334
+ }
335
+ if (args.options.dueDateTime && !utils_1.validation.isValidISODateTime(args.options.dueDateTime)) {
336
+ return 'The dueDateTime is not a valid ISO date string';
337
+ }
338
+ if (args.options.percentComplete && isNaN(args.options.percentComplete)) {
339
+ return `percentComplete is not a number`;
340
+ }
341
+ if (args.options.percentComplete && (args.options.percentComplete < 0 || args.options.percentComplete > 100)) {
342
+ return `percentComplete should be between 0 and 100`;
343
+ }
344
+ if (args.options.assignedToUserIds && !utils_1.validation.isValidGuidArray(args.options.assignedToUserIds.split(','))) {
345
+ return 'assignedToUserIds contains invalid GUID';
346
+ }
347
+ if (args.options.assignedToUserIds && args.options.assignedToUserNames) {
348
+ return 'Specify either assignedToUserIds or assignedToUserNames but not both';
349
+ }
350
+ if (args.options.appliedCategories && args.options.appliedCategories.split(',').filter(category => this.allowedAppliedCategories.indexOf(category.toLocaleLowerCase()) < 0).length !== 0) {
351
+ return 'The appliedCategories contains invalid value. Specify either category1, category2, category3, category4, category5 and/or category6 as properties';
352
+ }
353
+ return true;
354
+ }
355
+ }
356
+ module.exports = new PlannerTaskSetCommand();
357
+ //# sourceMappingURL=task-set.js.map
@@ -6,7 +6,12 @@ exports.default = {
6
6
  BUCKET_LIST: `${prefix} bucket list`,
7
7
  PLAN_ADD: `${prefix} plan add`,
8
8
  PLAN_GET: `${prefix} plan get`,
9
+ PLAN_DETAILS_GET: `${prefix} plan details get`,
9
10
  PLAN_LIST: `${prefix} plan list`,
10
- TASK_LIST: `${prefix} task list`
11
+ TASK_ADD: `${prefix} task add`,
12
+ TASK_DETAILS_GET: `${prefix} task details get`,
13
+ TASK_GET: `${prefix} task get`,
14
+ TASK_LIST: `${prefix} task list`,
15
+ TASK_SET: `${prefix} task set`
11
16
  };
12
17
  //# sourceMappingURL=commands.js.map
@@ -0,0 +1,99 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const request_1 = require("../../../../request");
4
+ const GraphCommand_1 = require("../../../base/GraphCommand");
5
+ const commands_1 = require("../../commands");
6
+ class SearchExternalConnectionAddCommand extends GraphCommand_1.default {
7
+ get name() {
8
+ return commands_1.default.EXTERNALCONNECTION_ADD;
9
+ }
10
+ get description() {
11
+ return 'Adds a new External Connection for Microsoft Search';
12
+ }
13
+ getTelemetryProperties(args) {
14
+ const telemetryProps = super.getTelemetryProperties(args);
15
+ telemetryProps.authorizedAppIds = typeof args.options.authorizedAppIds !== undefined;
16
+ return telemetryProps;
17
+ }
18
+ commandAction(logger, args, cb) {
19
+ let appIds = [];
20
+ if (args.options.authorizedAppIds !== undefined &&
21
+ args.options.authorizedAppIds !== '') {
22
+ appIds = args.options.authorizedAppIds.split(',');
23
+ }
24
+ const commandData = {
25
+ id: args.options.id,
26
+ name: args.options.name,
27
+ description: args.options.description,
28
+ configuration: {
29
+ authorizedAppIds: appIds
30
+ }
31
+ };
32
+ const requestOptions = {
33
+ url: `${this.resource}/v1.0/external/connections`,
34
+ headers: {
35
+ accept: 'application/json;odata.metadata=none'
36
+ },
37
+ responseType: 'json',
38
+ data: commandData
39
+ };
40
+ request_1.default
41
+ .post(requestOptions)
42
+ .then(_ => cb(), err => this.handleRejectedODataJsonPromise(err, logger, cb));
43
+ }
44
+ options() {
45
+ const options = [
46
+ {
47
+ option: '-i, --id <id>'
48
+ },
49
+ {
50
+ option: '-n, --name <name>'
51
+ },
52
+ {
53
+ option: '-d, --description <description>'
54
+ },
55
+ {
56
+ option: '--authorizedAppIds [authorizedAppIds]'
57
+ }
58
+ ];
59
+ const parentOptions = super.options();
60
+ return options.concat(parentOptions);
61
+ }
62
+ validate(args) {
63
+ const id = args.options.id;
64
+ if (id.length < 3 || id.length > 32) {
65
+ return 'ID must be between 3 and 32 characters in length.';
66
+ }
67
+ const alphaNumericRegEx = /[^\w]|_/g;
68
+ if (alphaNumericRegEx.test(id)) {
69
+ return 'ID must only contain alphanumeric characters.';
70
+ }
71
+ if (id.length > 9 &&
72
+ id.startsWith('Microsoft')) {
73
+ return 'ID cannot begin with Microsoft';
74
+ }
75
+ const invalidIds = ['None',
76
+ 'Directory',
77
+ 'Exchange',
78
+ 'ExchangeArchive',
79
+ 'LinkedIn',
80
+ 'Mailbox',
81
+ 'OneDriveBusiness',
82
+ 'SharePoint',
83
+ 'Teams',
84
+ 'Yammer',
85
+ 'Connectors',
86
+ 'TaskFabric',
87
+ 'PowerBI',
88
+ 'Assistant',
89
+ 'TopicEngine',
90
+ 'MSFT_All_Connectors'
91
+ ];
92
+ if (invalidIds.indexOf(id) > -1) {
93
+ return `ID cannot be one of the following values: ${invalidIds.join(', ')}.`;
94
+ }
95
+ return true;
96
+ }
97
+ }
98
+ module.exports = new SearchExternalConnectionAddCommand();
99
+ //# sourceMappingURL=externalconnection-add.js.map
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const prefix = 'search';
4
+ exports.default = {
5
+ EXTERNALCONNECTION_ADD: `${prefix} externalconnection add`
6
+ };
7
+ //# sourceMappingURL=commands.js.map
@@ -5,7 +5,7 @@ const fs = require("fs");
5
5
  const os = require("os");
6
6
  const path = require("path");
7
7
  const uuid_1 = require("uuid");
8
- const Utils_1 = require("../../../../Utils");
8
+ const utils_1 = require("../../../../utils");
9
9
  const AnonymousCommand_1 = require("../../../base/AnonymousCommand");
10
10
  const commands_1 = require("../../commands");
11
11
  class SpfxPackageGenerateCommand extends AnonymousCommand_1.default {
@@ -73,8 +73,8 @@ class SpfxPackageGenerateCommand extends AnonymousCommand_1.default {
73
73
  logger.log('Copying files...');
74
74
  }
75
75
  const src = path.join(__dirname, 'package-generate', 'assets');
76
- Utils_1.default.copyRecursiveSync(src, tmpDir, s => SpfxPackageGenerateCommand.replaceTokens(s, tokens));
77
- const files = Utils_1.default.readdirR(tmpDir);
76
+ utils_1.fsUtil.copyRecursiveSync(src, tmpDir, s => SpfxPackageGenerateCommand.replaceTokens(s, tokens));
77
+ const files = utils_1.fsUtil.readdirR(tmpDir);
78
78
  if (this.verbose) {
79
79
  logger.log('Processing files...');
80
80
  }
@@ -112,7 +112,7 @@ class SpfxPackageGenerateCommand extends AnonymousCommand_1.default {
112
112
  if (!this.archive) {
113
113
  this.archive = new AdmZip();
114
114
  }
115
- const filesToZip = Utils_1.default.readdirR(tmpDir);
115
+ const filesToZip = utils_1.fsUtil.readdirR(tmpDir);
116
116
  filesToZip.forEach(f => {
117
117
  if (this.debug) {
118
118
  logger.log(`Adding ${f} to archive...`);