@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
@@ -0,0 +1,174 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.urlUtil = void 0;
4
+ const url = require("url");
5
+ exports.urlUtil = {
6
+ /**
7
+ * Returns server relative path.
8
+ * @param webUrl web full or web relative url e.g. https://contoso.sharepoint.com/sites/team1
9
+ * @param folderRelativePath folder relative path e.g. /Shared Documents
10
+ * @example
11
+ * // returns "/sites/team1"
12
+ * urlUtil.getServerRelativePath("https://contoso.sharepoint.com/sites/team1", "");
13
+ * @example
14
+ * // returns "/sites/team1/Shared Documents"
15
+ * urlUtil.getServerRelativePath("https://contoso.sharepoint.com/sites/team1", "/Shared Documents");
16
+ * @example
17
+ * // returns "/sites/team1/Shared Documents"
18
+ * urlUtil.getServerRelativePath("/sites/team1/", "/Shared Documents");
19
+ */
20
+ getServerRelativePath(webUrl, folderRelativePath) {
21
+ const tenantUrl = `${url.parse(webUrl).protocol}//${url.parse(webUrl).hostname}`;
22
+ // if webUrl is a server-relative URL then tenantUrl will resolve to null//null
23
+ // in which case we should keep webUrl
24
+ let webRelativePath = tenantUrl !== 'null//null' ? webUrl.substr(tenantUrl.length) : webUrl;
25
+ // will be used to remove relative path from the folderRelativePath
26
+ // in case the web relative url is included
27
+ let relativePathToRemove = webRelativePath;
28
+ // add '/' at 0
29
+ if (webRelativePath[0] !== '/') {
30
+ webRelativePath = `/${webRelativePath}`;
31
+ }
32
+ else {
33
+ relativePathToRemove = webRelativePath.substring(1);
34
+ }
35
+ // remove last '/' of webRelativePath
36
+ const webPathLastCharPos = webRelativePath.length - 1;
37
+ if (webRelativePath.length > 1 &&
38
+ webRelativePath[webPathLastCharPos] === '/') {
39
+ webRelativePath = webRelativePath.substring(0, webPathLastCharPos);
40
+ }
41
+ // remove the web relative path if it is contained in the folder relative path
42
+ const relativePathToRemoveIdx = folderRelativePath.toLowerCase().indexOf(relativePathToRemove.toLowerCase());
43
+ if (relativePathToRemoveIdx > -1) {
44
+ const pos = relativePathToRemoveIdx + relativePathToRemove.length;
45
+ folderRelativePath = folderRelativePath.substring(pos, folderRelativePath.length);
46
+ }
47
+ if (folderRelativePath !== '') {
48
+ // add '/' at 0 for siteRelativePath
49
+ if (folderRelativePath[0] !== '/') {
50
+ folderRelativePath = `/${folderRelativePath}`;
51
+ }
52
+ // remove last '/' of siteRelativePath
53
+ const folderPathLastCharPos = folderRelativePath.length - 1;
54
+ if (folderRelativePath[folderPathLastCharPos] === '/') {
55
+ folderRelativePath = folderRelativePath.substring(0, folderPathLastCharPos);
56
+ }
57
+ if (webRelativePath === '/' && folderRelativePath !== '') {
58
+ webRelativePath = folderRelativePath;
59
+ }
60
+ else {
61
+ webRelativePath = `${webRelativePath}${folderRelativePath}`;
62
+ }
63
+ }
64
+ return webRelativePath.replace('//', '/');
65
+ },
66
+ /**
67
+ * Returns server relative site url.
68
+ * @param webUrl web full or web relative url e.g. https://contoso.sharepoint.com/sites/team1
69
+ * @example
70
+ * // returns "/sites/team1"
71
+ * urlUtil.getServerRelativeSiteUrl("https://contoso.sharepoint.com/sites/team1";
72
+ * @example
73
+ * // returns ""
74
+ * urlUtil.getServerRelativeSiteUrl("https://contoso.sharepoint.com");
75
+ * @example
76
+ * // returns "/sites/team1/Shared Documents"
77
+ * urlUtil.getServerRelativePath("/sites/team1/", "/Shared Documents");
78
+ */
79
+ getServerRelativeSiteUrl(webUrl) {
80
+ const serverRelativeSiteUrl = exports.urlUtil.getServerRelativePath(webUrl, '');
81
+ // return an empty string instead of / to prevent // replies
82
+ return serverRelativeSiteUrl === '/' ? "" : serverRelativeSiteUrl;
83
+ },
84
+ /**
85
+ * Returns web relative path from webUrl and folderUrl.
86
+ * @param webUrl web full or web relative url e.g. https://contoso.sharepoint.com/sites/team1/
87
+ * @param folderUrl folder server relative url e.g. /sites/team1/Lists/MyList
88
+ * @example
89
+ * // returns "/Lists/MyList"
90
+ * Utils.getWebRelativePath("https://contoso.sharepoint.com/sites/team1/", "/sites/team1/Lists/MyList");
91
+ * @example
92
+ * // returns "/Shared Documents"
93
+ * Utils.getWebRelativePath("/sites/team1/", "/sites/team1/Shared Documents");
94
+ */
95
+ getWebRelativePath(webUrl, folderUrl) {
96
+ let folderWebRelativePath = '';
97
+ const tenantUrl = `${url.parse(webUrl).protocol}//${url.parse(webUrl).hostname}`;
98
+ // if webUrl is a server-relative URL then tenantUrl will resolve to null//null
99
+ // in which case we should keep webUrl
100
+ let webRelativePath = tenantUrl !== 'null//null' ? webUrl.substr(tenantUrl.length) : webUrl;
101
+ // will be used to remove relative path from the folderRelativePath
102
+ // in case the web relative url is included
103
+ let relativePathToRemove = webRelativePath;
104
+ // add '/' at 0
105
+ if (webRelativePath[0] !== '/') {
106
+ webRelativePath = `/${webRelativePath}`;
107
+ }
108
+ else {
109
+ relativePathToRemove = webRelativePath.substring(1);
110
+ }
111
+ // remove last '/' of webRelativePath
112
+ const webPathLastCharPos = webRelativePath.length - 1;
113
+ if (webRelativePath.length > 1 &&
114
+ webRelativePath[webPathLastCharPos] === '/') {
115
+ webRelativePath = webRelativePath.substring(0, webPathLastCharPos);
116
+ }
117
+ // remove the web relative path if it is contained in the folder relative path
118
+ const relativePathToRemoveIdx = folderUrl.toLowerCase().indexOf(relativePathToRemove.toLowerCase());
119
+ if (relativePathToRemoveIdx > -1) {
120
+ const pos = relativePathToRemoveIdx + relativePathToRemove.length;
121
+ folderWebRelativePath = folderUrl.substring(pos, folderUrl.length);
122
+ }
123
+ else {
124
+ folderWebRelativePath = folderUrl;
125
+ }
126
+ // add '/' at 0 for folderWebRelativePath
127
+ if (folderWebRelativePath[0] !== '/') {
128
+ folderWebRelativePath = `/${folderWebRelativePath}`;
129
+ }
130
+ // remove last '/' of folderWebRelativePath
131
+ const folderPathLastCharPos = folderWebRelativePath.length - 1;
132
+ if (folderWebRelativePath.length > 1 && folderWebRelativePath[folderPathLastCharPos] === '/') {
133
+ folderWebRelativePath = folderWebRelativePath.substring(0, folderPathLastCharPos);
134
+ }
135
+ return folderWebRelativePath.replace('//', '/');
136
+ },
137
+ /**
138
+ * Returns the absolute URL according to a Web URL and the server relative URL of a folder
139
+ * @param webUrl The full URL of a web
140
+ * @param serverRelativeUrl The server relative URL of a folder
141
+ * @example
142
+ * // returns "https://contoso.sharepoint.com/sites/team1/Lists/MyList"
143
+ * urlUtil.getAbsoluteUrl("https://contoso.sharepoint.com/sites/team1/", "/sites/team1/Lists/MyList");
144
+ */
145
+ getAbsoluteUrl(webUrl, serverRelativeUrl) {
146
+ const uri = url.parse(webUrl);
147
+ const tenantUrl = `${uri.protocol}//${uri.hostname}`;
148
+ if (serverRelativeUrl[0] !== '/') {
149
+ serverRelativeUrl = `/${serverRelativeUrl}`;
150
+ }
151
+ return `${tenantUrl}${serverRelativeUrl}`;
152
+ },
153
+ /**
154
+ * Combines base and relative url considering any missing slashes
155
+ * @param baseUrl https://contoso.com
156
+ * @param relativeUrl sites/abc
157
+ */
158
+ urlCombine(baseUrl, relativeUrl) {
159
+ // remove last '/' of base if exists
160
+ if (baseUrl.lastIndexOf('/') === baseUrl.length - 1) {
161
+ baseUrl = baseUrl.substring(0, baseUrl.length - 1);
162
+ }
163
+ // remove '/' at 0
164
+ if (relativeUrl.charAt(0) === '/') {
165
+ relativeUrl = relativeUrl.substring(1, relativeUrl.length);
166
+ }
167
+ // remove last '/' of next if exists
168
+ if (relativeUrl.lastIndexOf('/') === relativeUrl.length - 1) {
169
+ relativeUrl = relativeUrl.substring(0, relativeUrl.length - 1);
170
+ }
171
+ return `${baseUrl}/${relativeUrl}`;
172
+ }
173
+ };
174
+ //# sourceMappingURL=urlUtil.js.map
@@ -0,0 +1,310 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.validation = void 0;
4
+ exports.validation = {
5
+ isValidGuidArray(guids) {
6
+ return guids.every(guid => this.isValidGuid(guid));
7
+ },
8
+ isValidGuid(guid) {
9
+ const guidRegEx = new RegExp(/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i);
10
+ return guidRegEx.test(guid);
11
+ },
12
+ isValidTeamsChannelId(guid) {
13
+ const guidRegEx = new RegExp(/^19:[0-9a-zA-Z-_]+@thread\.(skype|tacv2)$/i);
14
+ return guidRegEx.test(guid);
15
+ },
16
+ isValidTeamsChatId(guid) {
17
+ const guidRegEx = new RegExp(/^19:[0-9a-zA-Z-_]+(@thread\.v2|@unq\.gbl\.spaces)$/i);
18
+ return guidRegEx.test(guid);
19
+ },
20
+ isValidUserPrincipalName(upn) {
21
+ const upnRegEx = new RegExp(/^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/i);
22
+ return upnRegEx.test(upn);
23
+ },
24
+ isDateInRange(date, monthOffset) {
25
+ const d = new Date(date);
26
+ const cutoffDate = new Date();
27
+ cutoffDate.setMonth(cutoffDate.getMonth() - monthOffset);
28
+ return d > cutoffDate;
29
+ },
30
+ isValidISODate(date) {
31
+ const dateRegEx = new RegExp(/^(19|20)\d\d[- /.](0[1-9]|1[012])[- /.](0[1-9]|[12][0-9]|3[01])$/i);
32
+ return dateRegEx.test(date);
33
+ },
34
+ isValidISODateDashOnly(date) {
35
+ const dateTimeRegEx = new RegExp(/^(\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+([+-][0-2]\d:[0-5]\d|Z))|(\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d([+-][0-2]\d:[0-5]\d|Z))|(\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d([+-][0-2]\d:[0-5]\d|Z))$/i);
36
+ const dateOnlyRegEx = new RegExp(/^(19|20)\d\d[-](0[1-9]|1[012])[-](0[1-9]|[12][0-9]|3[01])$/i);
37
+ return dateTimeRegEx.test(date) ? true : dateOnlyRegEx.test(date);
38
+ },
39
+ isValidISODateTime(dateTime) {
40
+ const withMilliSecsPattern = new RegExp(/^[0-9]{4}-((0[13578]|1[02])-(0[1-9]|[12][0-9]|3[01])|(0[469]|11)-(0[1-9]|[12][0-9]|30)|(02)-(0[1-9]|[12][0-9]))T(0[0-9]|1[0-9]|2[0-3]):(0[0-9]|[1-5][0-9]):(0[0-9]|[1-5][0-9])\.[0-9]{3}Z$/);
41
+ if (withMilliSecsPattern.test(dateTime)) {
42
+ return true;
43
+ }
44
+ const withSecsPattern = new RegExp(/^[0-9]{4}-((0[13578]|1[02])-(0[1-9]|[12][0-9]|3[01])|(0[469]|11)-(0[1-9]|[12][0-9]|30)|(02)-(0[1-9]|[12][0-9]))T(0[0-9]|1[0-9]|2[0-3]):(0[0-9]|[1-5][0-9]):(0[0-9]|[1-5][0-9])Z$/);
45
+ if (withSecsPattern.test(dateTime)) {
46
+ return true;
47
+ }
48
+ const withMinutesPattern = new RegExp(/^[0-9]{4}-((0[13578]|1[02])-(0[1-9]|[12][0-9]|3[01])|(0[469]|11)-(0[1-9]|[12][0-9]|30)|(02)-(0[1-9]|[12][0-9]))T(0[0-9]|1[0-9]|2[0-3]):(0[0-9]|[1-5][0-9])Z$/);
49
+ if (withMinutesPattern.test(dateTime)) {
50
+ return true;
51
+ }
52
+ const withHoursPattern = new RegExp(/^[0-9]{4}-((0[13578]|1[02])-(0[1-9]|[12][0-9]|3[01])|(0[469]|11)-(0[1-9]|[12][0-9]|30)|(02)-(0[1-9]|[12][0-9]))T(0[0-9]|1[0-9]|2[0-3])Z$/);
53
+ if (withHoursPattern.test(dateTime)) {
54
+ return true;
55
+ }
56
+ const withoutTimePattern = new RegExp(/^[0-9]{4}-((0[13578]|1[02])-(0[1-9]|[12][0-9]|3[01])|(0[469]|11)-(0[1-9]|[12][0-9]|30)|(02)-(0[1-9]|[12][0-9]))$/);
57
+ if (withoutTimePattern.test(dateTime)) {
58
+ return true;
59
+ }
60
+ return false;
61
+ },
62
+ isValidBoolean(value) {
63
+ return value.toLowerCase() === 'true' || value.toLowerCase() === 'false';
64
+ },
65
+ isJavaScriptReservedWord(input) {
66
+ const javascriptReservedWords = [
67
+ "arguments",
68
+ "await",
69
+ "break",
70
+ "case",
71
+ "catch",
72
+ "class",
73
+ "const",
74
+ "continue",
75
+ "debugger",
76
+ "default",
77
+ "delete",
78
+ "do",
79
+ "else",
80
+ "enum",
81
+ "eval",
82
+ "export",
83
+ "extends",
84
+ "false",
85
+ "finally",
86
+ "for",
87
+ "function",
88
+ "if",
89
+ "implements",
90
+ "import",
91
+ "in",
92
+ "instanceof",
93
+ "interface",
94
+ "let",
95
+ "new",
96
+ "null",
97
+ "package",
98
+ "private",
99
+ "protected",
100
+ "public",
101
+ "return",
102
+ "static",
103
+ "super",
104
+ "switch",
105
+ "this",
106
+ "throw",
107
+ "true",
108
+ "try",
109
+ "typeof",
110
+ "var",
111
+ "void",
112
+ "while",
113
+ "with",
114
+ "yield",
115
+ "Array",
116
+ "Date",
117
+ "eval",
118
+ "function",
119
+ "hasOwnProperty",
120
+ "Infinity",
121
+ "isFinite",
122
+ "isNaN",
123
+ "isPrototypeOf",
124
+ "length",
125
+ "Math",
126
+ "NaN",
127
+ "name",
128
+ "Number",
129
+ "Object",
130
+ "prototype",
131
+ "String",
132
+ "toString",
133
+ "undefined",
134
+ "valueOf",
135
+ "alert",
136
+ "all",
137
+ "anchor",
138
+ "anchors",
139
+ "area",
140
+ "assign",
141
+ "blur",
142
+ "button",
143
+ "checkbox",
144
+ "clearInterval",
145
+ "clearTimeout",
146
+ "clientInformation",
147
+ "close",
148
+ "closed",
149
+ "confirm",
150
+ "constructor",
151
+ "crypto",
152
+ "decodeURI",
153
+ "decodeURIComponent",
154
+ "defaultStatus",
155
+ "document",
156
+ "element",
157
+ "elements",
158
+ "embed",
159
+ "embeds",
160
+ "encodeURI",
161
+ "encodeURIComponent",
162
+ "escape",
163
+ "event",
164
+ "fileUpload",
165
+ "focus",
166
+ "form",
167
+ "forms",
168
+ "frame",
169
+ "innerHeight",
170
+ "innerWidth",
171
+ "layer",
172
+ "layers",
173
+ "link",
174
+ "location",
175
+ "mimeTypes",
176
+ "navigate",
177
+ "navigator",
178
+ "frames",
179
+ "frameRate",
180
+ "hidden",
181
+ "history",
182
+ "image",
183
+ "images",
184
+ "offscreenBuffering",
185
+ "open",
186
+ "opener",
187
+ "option",
188
+ "outerHeight",
189
+ "outerWidth",
190
+ "packages",
191
+ "pageXOffset",
192
+ "pageYOffset",
193
+ "parent",
194
+ "parseFloat",
195
+ "parseInt",
196
+ "password",
197
+ "pkcs11",
198
+ "plugin",
199
+ "prompt",
200
+ "propertyIsEnum",
201
+ "radio",
202
+ "reset",
203
+ "screenX",
204
+ "screenY",
205
+ "scroll",
206
+ "secure",
207
+ "select",
208
+ "self",
209
+ "setInterval",
210
+ "setTimeout",
211
+ "status",
212
+ "submit",
213
+ "taint",
214
+ "text",
215
+ "textarea",
216
+ "top",
217
+ "unescape",
218
+ "untaint",
219
+ "window",
220
+ "onblur",
221
+ "onclick",
222
+ "onerror",
223
+ "onfocus",
224
+ "onkeydown",
225
+ "onkeypress",
226
+ "onkeyup",
227
+ "onmouseover",
228
+ "onload",
229
+ "onmouseup",
230
+ "onmousedown",
231
+ "onsubmit"
232
+ ];
233
+ return !!input && !input.split('.').every(value => !~javascriptReservedWords.indexOf(value));
234
+ },
235
+ isValidFileName(input) {
236
+ return !!input && !/^((\..*)|COM\d|CLOCK\$|LPT\d|AUX|NUL|CON|PRN|(.*[\u{d800}-\u{dfff}]+.*))$/iu.test(input) && !/^(.*\.\..*)$/i.test(input);
237
+ },
238
+ isValidTheme(input) {
239
+ const validThemeProperties = [
240
+ "themePrimary",
241
+ "themeLighterAlt",
242
+ "themeLighter",
243
+ "themeLight",
244
+ "themeTertiary",
245
+ "themeSecondary",
246
+ "themeDarkAlt",
247
+ "themeDark",
248
+ "themeDarker",
249
+ "neutralLighterAlt",
250
+ "neutralLighter",
251
+ "neutralLight",
252
+ "neutralQuaternaryAlt",
253
+ "neutralQuaternary",
254
+ "neutralTertiaryAlt",
255
+ "neutralTertiary",
256
+ "neutralSecondary",
257
+ "neutralPrimaryAlt",
258
+ "neutralPrimary",
259
+ "neutralDark",
260
+ "black",
261
+ "white"
262
+ ];
263
+ let theme;
264
+ try {
265
+ theme = JSON.parse(input);
266
+ }
267
+ catch (_a) {
268
+ return false;
269
+ }
270
+ if (Array.isArray(theme)) {
271
+ return false;
272
+ }
273
+ const hasInvalidProperties = validThemeProperties.map((property) => {
274
+ return theme.hasOwnProperty(property);
275
+ }).includes(false);
276
+ if (hasInvalidProperties) {
277
+ return false;
278
+ }
279
+ const regex = new RegExp(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/);
280
+ const hasInvalidValues = validThemeProperties.map((property) => {
281
+ return regex.test(theme[property]);
282
+ }).includes(false);
283
+ if (hasInvalidValues) {
284
+ return false;
285
+ }
286
+ return true;
287
+ },
288
+ isValidSharePointUrl(url) {
289
+ if (!url) {
290
+ return false;
291
+ }
292
+ if (url.indexOf('https://') !== 0) {
293
+ return `${url} is not a valid SharePoint Online site URL`;
294
+ }
295
+ else {
296
+ return true;
297
+ }
298
+ },
299
+ isValidFormDigest(contextInfo) {
300
+ if (!contextInfo) {
301
+ return false;
302
+ }
303
+ const now = new Date();
304
+ if (contextInfo.FormDigestValue && now < contextInfo.FormDigestExpiresAt) {
305
+ return true;
306
+ }
307
+ return false;
308
+ }
309
+ };
310
+ //# sourceMappingURL=validation.js.map
@@ -5,10 +5,10 @@
5
5
  : JMESPath query string. See [http://jmespath.org/](http://jmespath.org/) for more information and examples
6
6
 
7
7
  `-o, --output [output]`
8
- : Output type. `json,text`. Default `text`
8
+ : Output type. `json,text,csv`. Default `json`
9
9
 
10
10
  `--verbose`
11
11
  : Runs command with verbose logging
12
12
 
13
13
  `--debug`
14
- : Runs command with debug logging
14
+ : Runs command with debug logging
@@ -0,0 +1,51 @@
1
+ # aad app delete
2
+
3
+ Removes an Azure AD app registration
4
+
5
+ ## Usage
6
+
7
+ ```sh
8
+ m365 aad app delete [options]
9
+ ```
10
+
11
+ ## Options
12
+
13
+ `--appId [appId]`
14
+ : Application (client) ID of the Azure AD application registration to remove. Specify either `appId`, `objectId` or `name`
15
+
16
+ `--objectId [objectId]`
17
+ : Object ID of the Azure AD application registration to remove. Specify either `appId`, `objectId` or `name`
18
+
19
+ `--name [name]`
20
+ : Name of the Azure AD application registration to remove. Specify either `appId`, `objectId` or `name`
21
+
22
+ `--confirm`:
23
+ : Don't prompt for confirmation to delete the app
24
+
25
+ --8<-- "docs/cmd/_global.md"
26
+
27
+ ## Remarks
28
+
29
+ For best performance use the `objectId` option to reference the Azure AD application registration to delete. If you use `appId` or `name`, this command will first need to find the corresponding object ID for that application.
30
+
31
+ If the command finds multiple Azure AD application registrations with the specified app name, it will prompt you to disambiguate which app it should use, listing the discovered object IDs.
32
+
33
+ ## Examples
34
+
35
+ Delete the Azure AD application registration by its app (client) ID
36
+
37
+ ```sh
38
+ m365 aad app delete --appId d75be2e1-0204-4f95-857d-51a37cf40be8
39
+ ```
40
+
41
+ Delete the Azure AD application registration by its object ID
42
+
43
+ ```sh
44
+ m365 aad app delete --objectId d75be2e1-0204-4f95-857d-51a37cf40be8
45
+ ```
46
+
47
+ Delete the Azure AD application registration by its name. Will NOT prompt for confirmation before deleting.
48
+
49
+ ```sh
50
+ m365 aad app delete --name "My app" --confirm
51
+ ```
@@ -0,0 +1,59 @@
1
+ # aad app get
2
+
3
+ Gets an Azure AD app registration
4
+
5
+ ## Usage
6
+
7
+ ```sh
8
+ m365 aad app get [options]
9
+ ```
10
+
11
+ ## Options
12
+
13
+ `--appId [appId]`
14
+ : Application (client) ID of the Azure AD application registration to get. Specify either `appId`, `objectId` or `name`
15
+
16
+ `--objectId [objectId]`
17
+ : Object ID of the Azure AD application registration to get. Specify either `appId`, `objectId` or `name`
18
+
19
+ `--name [name]`
20
+ : Name of the Azure AD application registration to get. Specify either `appId`, `objectId` or `name`
21
+
22
+ `--save`
23
+ : Use to store the information about the created app in a local file
24
+
25
+ --8<-- "docs/cmd/_global.md"
26
+
27
+ ## Remarks
28
+
29
+ For best performance use the `objectId` option to reference the Azure AD application registration to get. If you use `appId` or `name`, this command will first need to find the corresponding object ID for that application.
30
+
31
+ If the command finds multiple Azure AD application registrations with the specified app name, it will prompt you to disambiguate which app it should use, listing the discovered object IDs.
32
+
33
+ If you want to store the information about the Azure AD app registration, use the `--save` option. This is useful when you build solutions connected to Microsoft 365 and want to easily manage app registrations used with your solution. When you use the `--save` option, after you get the app registration, the command will write its ID and name to the `.m365rc.json` file in the current directory. If the file already exists, it will add the information about the App registration to it if it's not already present, allowing you to track multiple apps. If the file doesn't exist, the command will create it.
34
+
35
+ ## Examples
36
+
37
+ Get the Azure AD application registration by its app (client) ID
38
+
39
+ ```sh
40
+ m365 aad app get --appId d75be2e1-0204-4f95-857d-51a37cf40be8
41
+ ```
42
+
43
+ Get the Azure AD application registration by its object ID
44
+
45
+ ```sh
46
+ m365 aad app get --objectId d75be2e1-0204-4f95-857d-51a37cf40be8
47
+ ```
48
+
49
+ Get the Azure AD application registration by its name
50
+
51
+ ```sh
52
+ m365 aad app get --name "My app"
53
+ ```
54
+
55
+ Get the Azure AD application registration by its name. Store information about the retrieved app registration in the _.m365rc.json_ file in the current directory.
56
+
57
+ ```sh
58
+ m365 aad app get --name "My app" --save
59
+ ```
@@ -22,6 +22,15 @@ m365 aad app set [options]
22
22
  `-u, --uri [uri]`
23
23
  : Application ID URI to update
24
24
 
25
+ `-r, --redirectUris [redirectUris]`
26
+ : Comma-separated list of redirect URIs to add to the app registration. Requires `platform` to be specified
27
+
28
+ `-p, --platform [platform]`
29
+ : Platform for which the `redirectUri` should be configured. Allowed values `spa,web,publicClient`
30
+
31
+ `--redirectUrisToRemove [redirectUrisToRemove]`
32
+ : Comma-separated list of existing redirect URIs to remove. Specify, when you want to replace existing redirect URIs with another
33
+
25
34
  --8<-- "docs/cmd/_global.md"
26
35
 
27
36
  ## Remarks
@@ -49,3 +58,15 @@ Update the app URI of the Azure AD application registration specified by its nam
49
58
  ```sh
50
59
  m365 aad app set --name "My app" --uri https://contoso.com/e75be2e1-0204-4f95-857d-51a37cf40be8
51
60
  ```
61
+
62
+ Add a new redirect URI for SPA authentication
63
+
64
+ ```sh
65
+ m365 aad app set --objectId 95cfe30d-ed44-4f9d-b73d-c66560f72e83 --redirectUris https://contoso.com/auth --platform spa
66
+ ```
67
+
68
+ Replace one redirect URI with another for SPA authentication
69
+
70
+ ```sh
71
+ m365 aad app set --objectId 95cfe30d-ed44-4f9d-b73d-c66560f72e83 --redirectUris https://contoso.com/auth --platform spa --redirectUrisToRemove https://contoso.com/old-auth
72
+ ```
@@ -0,0 +1,30 @@
1
+ # aad group list
2
+
3
+ Lists Azure AD groups
4
+
5
+ ## Usage
6
+
7
+ ```sh
8
+ m365 aad group list [options]
9
+ ```
10
+
11
+ ## Options
12
+
13
+ `-d, --deleted`
14
+ : Use to retrieve deleted groups
15
+
16
+ --8<-- "docs/cmd/_global.md"
17
+
18
+ ## Examples
19
+
20
+ Lists all groups defined in Azure Active Directory.
21
+
22
+ ```sh
23
+ m365 aad group list
24
+ ```
25
+
26
+ List all recently deleted groups in the tenant
27
+
28
+ ```sh
29
+ m365 aad group list --deleted
30
+ ```