@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,217 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ const os = require("os");
13
+ const Auth_1 = require("../../../../Auth");
14
+ const request_1 = require("../../../../request");
15
+ const utils_1 = require("../../../../utils");
16
+ const GraphCommand_1 = require("../../../base/GraphCommand");
17
+ const commands_1 = require("../../commands");
18
+ class TeamsChatMessageSendCommand extends GraphCommand_1.default {
19
+ get name() {
20
+ return commands_1.default.CHAT_MESSAGE_SEND;
21
+ }
22
+ get description() {
23
+ return 'Sends a chat message to a Microsoft Teams chat conversation.';
24
+ }
25
+ getTelemetryProperties(args) {
26
+ const telemetryProps = super.getTelemetryProperties(args);
27
+ telemetryProps.chatId = typeof args.options.chatId !== 'undefined';
28
+ telemetryProps.userEmails = typeof args.options.userEmails !== 'undefined';
29
+ telemetryProps.chatName = typeof args.options.chatName !== 'undefined';
30
+ return telemetryProps;
31
+ }
32
+ commandAction(logger, args, cb) {
33
+ this
34
+ .getChatId(logger, args)
35
+ .then(chatId => this.sendChatMessage(chatId, args))
36
+ .then(_ => {
37
+ cb();
38
+ }, (err) => this.handleRejectedODataJsonPromise(err, logger, cb));
39
+ }
40
+ options() {
41
+ const options = [
42
+ {
43
+ option: '--chatId [chatId]'
44
+ },
45
+ {
46
+ option: '-e, --userEmails [userEmails]'
47
+ },
48
+ {
49
+ option: '--chatName [chatName]'
50
+ },
51
+ {
52
+ option: '-m, --message <message>'
53
+ }
54
+ ];
55
+ const parentOptions = super.options();
56
+ return options.concat(parentOptions);
57
+ }
58
+ validate(args) {
59
+ if (!args.options.chatId && !args.options.userEmails && !args.options.chatName) {
60
+ return 'Specify chatId or userEmails or chatName, one is required.';
61
+ }
62
+ let nrOfMutuallyExclusiveOptionsInUse = 0;
63
+ if (args.options.chatId) {
64
+ nrOfMutuallyExclusiveOptionsInUse++;
65
+ }
66
+ if (args.options.userEmails) {
67
+ nrOfMutuallyExclusiveOptionsInUse++;
68
+ }
69
+ if (args.options.chatName) {
70
+ nrOfMutuallyExclusiveOptionsInUse++;
71
+ }
72
+ if (nrOfMutuallyExclusiveOptionsInUse > 1) {
73
+ return 'Specify either chatId or userEmails or chatName, but not multiple.';
74
+ }
75
+ if (!args.options.message) {
76
+ return 'Specify a message to send.';
77
+ }
78
+ if (args.options.chatId && !utils_1.validation.isValidTeamsChatId(args.options.chatId)) {
79
+ return `${args.options.chatId} is not a valid Teams ChatId.`;
80
+ }
81
+ if (args.options.userEmails) {
82
+ const userEmails = this.convertCommaSeparatedListToArray(args.options.userEmails);
83
+ if (!userEmails || userEmails.length === 0 || userEmails.some(e => !utils_1.validation.isValidUserPrincipalName(e))) {
84
+ return `${args.options.userEmails} contains one or more invalid email addresses.`;
85
+ }
86
+ }
87
+ return true;
88
+ }
89
+ getChatId(logger, args) {
90
+ return __awaiter(this, void 0, void 0, function* () {
91
+ if (args.options.chatId) {
92
+ return args.options.chatId;
93
+ }
94
+ return args.options.userEmails
95
+ ? this.ensureChatIdByUserEmails(args.options.userEmails, logger)
96
+ : this.getChatIdByName(args.options.chatName, logger);
97
+ });
98
+ }
99
+ ensureChatIdByUserEmails(userEmailsOption, logger) {
100
+ return __awaiter(this, void 0, void 0, function* () {
101
+ const userEmails = this.convertCommaSeparatedListToArray(userEmailsOption);
102
+ const currentUserEmail = utils_1.accessToken.getUserNameFromAccessToken(Auth_1.default.service.accessTokens[this.resource].accessToken).toLowerCase();
103
+ const existingChats = yield this.findExistingGroupChatsByMembers([currentUserEmail, ...userEmails], logger);
104
+ if (!existingChats || existingChats.length === 0) {
105
+ const chat = yield this.createConversation([currentUserEmail, ...userEmails]);
106
+ return chat.id;
107
+ }
108
+ if (existingChats.length === 1) {
109
+ return existingChats[0].id;
110
+ }
111
+ const disambiguationText = existingChats.map(c => {
112
+ return `- ${c.id}${c.topic && ' - '}${c.topic} - ${c.createdDateTime && new Date(c.createdDateTime).toLocaleString()}`;
113
+ }).join(os.EOL);
114
+ throw new Error(`Multiple chat conversations with this name found. Please disambiguate:${os.EOL}${disambiguationText}`);
115
+ });
116
+ }
117
+ getChatIdByName(chatName, logger) {
118
+ return __awaiter(this, void 0, void 0, function* () {
119
+ const existingChats = yield this.findExistingGroupChatsByName(chatName, logger);
120
+ if (!existingChats || existingChats.length === 0) {
121
+ throw new Error('No chat conversation was found with this name.');
122
+ }
123
+ if (existingChats.length === 1) {
124
+ return existingChats[0].id;
125
+ }
126
+ const disambiguationText = existingChats.map(c => {
127
+ const memberstring = c.members.map(m => m.email).join(', ');
128
+ return `- ${c.id} - ${c.createdDateTime && new Date(c.createdDateTime).toLocaleString()} - ${memberstring}`;
129
+ }).join(os.EOL);
130
+ throw new Error(`Multiple chat conversations with this name found. Please disambiguate:${os.EOL}${disambiguationText}`);
131
+ });
132
+ }
133
+ // This Microsoft Graph API request throws an intermittent 404 exception, saying that it cannot find the principal.
134
+ // The same behavior occurs when creating the conversation through the Graph Explorer.
135
+ // It seems to happen when the userEmail casing does not match the casing of the actual UPN.
136
+ // When the first request throws an error, the second request does succeed.
137
+ // Therefore a retry-mechanism is implemented here.
138
+ createConversation(memberEmails, retried = 0) {
139
+ var _a;
140
+ return __awaiter(this, void 0, void 0, function* () {
141
+ try {
142
+ const jsonBody = {
143
+ chatType: memberEmails.length > 2 ? 'group' : 'oneOnOne',
144
+ members: memberEmails.map(email => {
145
+ return {
146
+ '@odata.type': '#microsoft.graph.aadUserConversationMember',
147
+ roles: ['owner'],
148
+ 'user@odata.bind': `https://graph.microsoft.com/v1.0/users/${email}`
149
+ };
150
+ })
151
+ };
152
+ const requestOptions = {
153
+ url: `${this.resource}/v1.0/chats`,
154
+ headers: {
155
+ accept: 'application/json;odata.metadata=none',
156
+ 'content-type': 'application/json;odata=nometadata'
157
+ },
158
+ responseType: 'json',
159
+ data: jsonBody
160
+ };
161
+ return yield request_1.default.post(requestOptions);
162
+ }
163
+ catch (err) {
164
+ if (((_a = err.message) === null || _a === void 0 ? void 0 : _a.indexOf('404')) > -1 && retried < 4) {
165
+ return yield this.createConversation(memberEmails, retried + 1);
166
+ }
167
+ throw err;
168
+ }
169
+ });
170
+ }
171
+ sendChatMessage(chatId, args) {
172
+ return __awaiter(this, void 0, void 0, function* () {
173
+ const requestOptions = {
174
+ url: `${this.resource}/v1.0/chats/${chatId}/messages`,
175
+ headers: {
176
+ accept: 'application/json;odata.metadata=none',
177
+ 'content-type': 'application/json;odata=nometadata'
178
+ },
179
+ responseType: 'json',
180
+ data: {
181
+ body: {
182
+ content: args.options.message
183
+ }
184
+ }
185
+ };
186
+ yield request_1.default.post(requestOptions);
187
+ });
188
+ }
189
+ findExistingGroupChatsByMembers(expectedMemberEmails, logger) {
190
+ return __awaiter(this, void 0, void 0, function* () {
191
+ const endpoint = `${this.resource}/v1.0/chats?$filter=chatType eq 'group'&$expand=members&$select=id,topic,createdDateTime,members`;
192
+ const foundChats = [];
193
+ const chats = yield utils_1.odata.getAllItems(endpoint, logger);
194
+ for (const chat of chats) {
195
+ const chatMembers = chat.members;
196
+ if (chatMembers.length === expectedMemberEmails.length) {
197
+ const chatMemberEmails = chatMembers.map(member => { var _a; return (_a = member.email) === null || _a === void 0 ? void 0 : _a.toLowerCase(); });
198
+ if (expectedMemberEmails.every(email => chatMemberEmails.some(memberEmail => memberEmail === email))) {
199
+ foundChats.push(chat);
200
+ }
201
+ }
202
+ }
203
+ return foundChats;
204
+ });
205
+ }
206
+ findExistingGroupChatsByName(name, logger) {
207
+ return __awaiter(this, void 0, void 0, function* () {
208
+ const endpoint = `${this.resource}/v1.0/chats?$filter=topic eq '${encodeURIComponent(name)}'&$expand=members&$select=id,topic,createdDateTime,chatType`;
209
+ return utils_1.odata.getAllItems(endpoint, logger);
210
+ });
211
+ }
212
+ convertCommaSeparatedListToArray(userEmailsString) {
213
+ return userEmailsString.toLowerCase().replace(/\s/g, '').split(',').filter(e => e && e !== '');
214
+ }
215
+ }
216
+ module.exports = new TeamsChatMessageSendCommand();
217
+ //# sourceMappingURL=chat-message-send.js.map
@@ -2,7 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const os = require("os");
4
4
  const request_1 = require("../../../../request");
5
- const Utils_1 = require("../../../../Utils");
5
+ const utils_1 = require("../../../../utils");
6
6
  const GraphCommand_1 = require("../../../base/GraphCommand");
7
7
  const commands_1 = require("../../commands");
8
8
  class TeamsConversationMemberAddCommand extends GraphCommand_1.default {
@@ -81,7 +81,7 @@ class TeamsConversationMemberAddCommand extends GraphCommand_1.default {
81
81
  if (!args.options.teamId && !args.options.teamName) {
82
82
  return 'Specify teamId or teamName, one is required';
83
83
  }
84
- if (args.options.teamId && !Utils_1.default.isValidGuid(args.options.teamId)) {
84
+ if (args.options.teamId && !utils_1.validation.isValidGuid(args.options.teamId)) {
85
85
  return `${args.options.teamId} is not a valid GUID`;
86
86
  }
87
87
  if (args.options.channelId && args.options.channelName) {
@@ -90,7 +90,7 @@ class TeamsConversationMemberAddCommand extends GraphCommand_1.default {
90
90
  if (!args.options.channelId && !args.options.channelName) {
91
91
  return 'Specify channelId or channelName, one is required';
92
92
  }
93
- if (args.options.channelId && !Utils_1.default.isValidTeamsChannelId(args.options.channelId)) {
93
+ if (args.options.channelId && !utils_1.validation.isValidTeamsChannelId(args.options.channelId)) {
94
94
  return `${args.options.channelId} is not a valid Teams ChannelId`;
95
95
  }
96
96
  if (args.options.userId && args.options.userDisplayName) {
@@ -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 TeamsConversationMemberListCommand extends GraphItemsListCommand_1.GraphItemsListCommand {
7
+ class TeamsConversationMemberListCommand extends GraphCommand_1.default {
8
8
  constructor() {
9
9
  super(...arguments);
10
10
  this.teamId = "";
@@ -31,13 +31,13 @@ class TeamsConversationMemberListCommand extends GraphItemsListCommand_1.GraphIt
31
31
  return this.getChannelId(teamId, args);
32
32
  }).then((channelId) => {
33
33
  const endpoint = `${this.resource}/v1.0/teams/${encodeURIComponent(this.teamId)}/channels/${encodeURIComponent(channelId)}/members`;
34
- return this.getAllItems(endpoint, logger, true);
35
- }).then(() => {
34
+ return utils_1.odata.getAllItems(endpoint, logger);
35
+ }).then((items) => {
36
36
  if (args.options.output === 'json') {
37
- logger.log(this.items);
37
+ logger.log(items);
38
38
  }
39
39
  else {
40
- logger.log(this.items.map((c) => {
40
+ logger.log(items.map((c) => {
41
41
  return {
42
42
  id: c.id,
43
43
  displayName: c.displayName,
@@ -74,7 +74,7 @@ class TeamsConversationMemberListCommand extends GraphItemsListCommand_1.GraphIt
74
74
  if (!args.options.teamId && !args.options.teamName) {
75
75
  return 'Specify teamId or teamName, one is required';
76
76
  }
77
- if (args.options.teamId && !Utils_1.default.isValidGuid(args.options.teamId)) {
77
+ if (args.options.teamId && !utils_1.validation.isValidGuid(args.options.teamId)) {
78
78
  return `${args.options.teamId} is not a valid GUID`;
79
79
  }
80
80
  if (args.options.channelId && args.options.channelName) {
@@ -83,7 +83,7 @@ class TeamsConversationMemberListCommand extends GraphItemsListCommand_1.GraphIt
83
83
  if (!args.options.channelId && !args.options.channelName) {
84
84
  return 'Specify channelId or channelName, one is required';
85
85
  }
86
- if (args.options.channelId && !Utils_1.default.isValidTeamsChannelId(args.options.channelId)) {
86
+ if (args.options.channelId && !utils_1.validation.isValidTeamsChannelId(args.options.channelId)) {
87
87
  return `${args.options.channelId} is not a valid Teams ChannelId`;
88
88
  }
89
89
  return true;
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const request_1 = require("../../../../request");
4
- const Utils_1 = require("../../../../Utils");
4
+ const utils_1 = require("../../../../utils");
5
5
  const GraphCommand_1 = require("../../../base/GraphCommand");
6
6
  const commands_1 = require("../../commands");
7
7
  class TeamsFunSettingsListCommand extends GraphCommand_1.default {
@@ -36,7 +36,7 @@ class TeamsFunSettingsListCommand extends GraphCommand_1.default {
36
36
  return options.concat(parentOptions);
37
37
  }
38
38
  validate(args) {
39
- if (!Utils_1.default.isValidGuid(args.options.teamId)) {
39
+ if (!utils_1.validation.isValidGuid(args.options.teamId)) {
40
40
  return `${args.options.teamId} is not a valid GUID`;
41
41
  }
42
42
  return true;
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const request_1 = require("../../../../request");
4
- const Utils_1 = require("../../../../Utils");
4
+ const utils_1 = require("../../../../utils");
5
5
  const GraphCommand_1 = require("../../../base/GraphCommand");
6
6
  const commands_1 = require("../../commands");
7
7
  class TeamsFunSettingsSetCommand extends GraphCommand_1.default {
@@ -65,7 +65,7 @@ class TeamsFunSettingsSetCommand extends GraphCommand_1.default {
65
65
  return options.concat(parentOptions);
66
66
  }
67
67
  validate(args) {
68
- if (!Utils_1.default.isValidGuid(args.options.teamId)) {
68
+ if (!utils_1.validation.isValidGuid(args.options.teamId)) {
69
69
  return `${args.options.teamId} is not a valid GUID`;
70
70
  }
71
71
  let isValid = true;
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const request_1 = require("../../../../request");
4
- const Utils_1 = require("../../../../Utils");
4
+ const utils_1 = require("../../../../utils");
5
5
  const GraphCommand_1 = require("../../../base/GraphCommand");
6
6
  const commands_1 = require("../../commands");
7
7
  class TeamsGuestSettingsListCommand extends GraphCommand_1.default {
@@ -36,7 +36,7 @@ class TeamsGuestSettingsListCommand extends GraphCommand_1.default {
36
36
  return options.concat(parentOptions);
37
37
  }
38
38
  validate(args) {
39
- if (!Utils_1.default.isValidGuid(args.options.teamId)) {
39
+ if (!utils_1.validation.isValidGuid(args.options.teamId)) {
40
40
  return `${args.options.teamId} is not a valid GUID`;
41
41
  }
42
42
  return true;
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const request_1 = require("../../../../request");
4
- const Utils_1 = require("../../../../Utils");
4
+ const utils_1 = require("../../../../utils");
5
5
  const GraphCommand_1 = require("../../../base/GraphCommand");
6
6
  const commands_1 = require("../../commands");
7
7
  class TeamsGuestSettingsSetCommand extends GraphCommand_1.default {
@@ -55,7 +55,7 @@ class TeamsGuestSettingsSetCommand extends GraphCommand_1.default {
55
55
  return options.concat(parentOptions);
56
56
  }
57
57
  validate(args) {
58
- if (!Utils_1.default.isValidGuid(args.options.teamId)) {
58
+ if (!utils_1.validation.isValidGuid(args.options.teamId)) {
59
59
  return `${args.options.teamId} is not a valid GUID`;
60
60
  }
61
61
  let isValid = true;
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const request_1 = require("../../../../request");
4
- const Utils_1 = require("../../../../Utils");
4
+ const utils_1 = require("../../../../utils");
5
5
  const GraphCommand_1 = require("../../../base/GraphCommand");
6
6
  const commands_1 = require("../../commands");
7
7
  class TeamsMemberSettingsListCommand extends GraphCommand_1.default {
@@ -36,7 +36,7 @@ class TeamsMemberSettingsListCommand extends GraphCommand_1.default {
36
36
  return options.concat(parentOptions);
37
37
  }
38
38
  validate(args) {
39
- if (!Utils_1.default.isValidGuid(args.options.teamId)) {
39
+ if (!utils_1.validation.isValidGuid(args.options.teamId)) {
40
40
  return `${args.options.teamId} is not a valid GUID`;
41
41
  }
42
42
  return true;
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const request_1 = require("../../../../request");
4
- const Utils_1 = require("../../../../Utils");
4
+ const utils_1 = require("../../../../utils");
5
5
  const GraphCommand_1 = require("../../../base/GraphCommand");
6
6
  const commands_1 = require("../../commands");
7
7
  class TeamsMemberSettingsSetCommand extends GraphCommand_1.default {
@@ -64,7 +64,7 @@ class TeamsMemberSettingsSetCommand extends GraphCommand_1.default {
64
64
  return options.concat(parentOptions);
65
65
  }
66
66
  validate(args) {
67
- if (!Utils_1.default.isValidGuid(args.options.teamId)) {
67
+ if (!utils_1.validation.isValidGuid(args.options.teamId)) {
68
68
  return `${args.options.teamId} is not a valid GUID`;
69
69
  }
70
70
  let isValid = true;
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const request_1 = require("../../../../request");
4
- const Utils_1 = require("../../../../Utils");
4
+ const utils_1 = require("../../../../utils");
5
5
  const GraphCommand_1 = require("../../../base/GraphCommand");
6
6
  const commands_1 = require("../../commands");
7
7
  class TeamsMessageGetCommand extends GraphCommand_1.default {
@@ -13,7 +13,7 @@ class TeamsMessageGetCommand extends GraphCommand_1.default {
13
13
  }
14
14
  commandAction(logger, args, cb) {
15
15
  const requestOptions = {
16
- url: `${this.resource}/beta/teams/${args.options.teamId}/channels/${args.options.channelId}/messages/${args.options.messageId}`,
16
+ url: `${this.resource}/v1.0/teams/${args.options.teamId}/channels/${args.options.channelId}/messages/${args.options.messageId}`,
17
17
  headers: {
18
18
  accept: 'application/json;odata.metadata=none'
19
19
  },
@@ -42,10 +42,10 @@ class TeamsMessageGetCommand extends GraphCommand_1.default {
42
42
  return options.concat(parentOptions);
43
43
  }
44
44
  validate(args) {
45
- if (!Utils_1.default.isValidGuid(args.options.teamId)) {
45
+ if (!utils_1.validation.isValidGuid(args.options.teamId)) {
46
46
  return `${args.options.teamId} is not a valid GUID`;
47
47
  }
48
- if (!Utils_1.default.isValidTeamsChannelId(args.options.channelId)) {
48
+ if (!utils_1.validation.isValidTeamsChannelId(args.options.channelId)) {
49
49
  return `${args.options.channelId} is not a valid Teams ChannelId`;
50
50
  }
51
51
  return true;
@@ -1,9 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- const Utils_1 = require("../../../../Utils");
4
- const GraphItemsListCommand_1 = require("../../../base/GraphItemsListCommand");
3
+ const utils_1 = require("../../../../utils");
4
+ const GraphCommand_1 = require("../../../base/GraphCommand");
5
5
  const commands_1 = require("../../commands");
6
- class TeamsMessageListCommand extends GraphItemsListCommand_1.GraphItemsListCommand {
6
+ class TeamsMessageListCommand extends GraphCommand_1.default {
7
7
  get name() {
8
8
  return commands_1.default.MESSAGE_LIST;
9
9
  }
@@ -16,15 +16,15 @@ class TeamsMessageListCommand extends GraphItemsListCommand_1.GraphItemsListComm
16
16
  commandAction(logger, args, cb) {
17
17
  const deltaExtension = args.options.since !== undefined ? `/delta?$filter=lastModifiedDateTime gt ${args.options.since}` : '';
18
18
  const endpoint = `${this.resource}/v1.0/teams/${args.options.teamId}/channels/${args.options.channelId}/messages${deltaExtension}`;
19
- this
20
- .getAllItems(endpoint, logger, true)
21
- .then(() => {
19
+ utils_1.odata
20
+ .getAllItems(endpoint, logger)
21
+ .then((items) => {
22
22
  if (args.options.output !== 'json') {
23
- this.items.forEach(i => {
23
+ items.forEach(i => {
24
24
  i.body = i.body.content;
25
25
  });
26
26
  }
27
- logger.log(this.items);
27
+ logger.log(items);
28
28
  cb();
29
29
  }, (err) => this.handleRejectedODataJsonPromise(err, logger, cb));
30
30
  }
@@ -44,16 +44,16 @@ class TeamsMessageListCommand extends GraphItemsListCommand_1.GraphItemsListComm
44
44
  return options.concat(parentOptions);
45
45
  }
46
46
  validate(args) {
47
- if (!Utils_1.default.isValidGuid(args.options.teamId)) {
47
+ if (!utils_1.validation.isValidGuid(args.options.teamId)) {
48
48
  return `${args.options.teamId} is not a valid GUID`;
49
49
  }
50
- if (!Utils_1.default.isValidTeamsChannelId(args.options.channelId)) {
50
+ if (!utils_1.validation.isValidTeamsChannelId(args.options.channelId)) {
51
51
  return `${args.options.channelId} is not a valid Teams ChannelId`;
52
52
  }
53
- if (args.options.since && !Utils_1.default.isValidISODateDashOnly(args.options.since)) {
53
+ if (args.options.since && !utils_1.validation.isValidISODateDashOnly(args.options.since)) {
54
54
  return `${args.options.since} is not a valid ISO Date (with dash separator)`;
55
55
  }
56
- if (args.options.since && !Utils_1.default.isDateInRange(args.options.since, 8)) {
56
+ if (args.options.since && !utils_1.validation.isDateInRange(args.options.since, 8)) {
57
57
  return `${args.options.since} is not in the last 8 months (for delta messages)`;
58
58
  }
59
59
  return true;
@@ -1,9 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- const Utils_1 = require("../../../../Utils");
4
- const GraphItemsListCommand_1 = require("../../../base/GraphItemsListCommand");
3
+ const utils_1 = require("../../../../utils");
4
+ const GraphCommand_1 = require("../../../base/GraphCommand");
5
5
  const commands_1 = require("../../commands");
6
- class TeamsMessageReplyListCommand extends GraphItemsListCommand_1.GraphItemsListCommand {
6
+ class TeamsMessageReplyListCommand extends GraphCommand_1.default {
7
7
  get name() {
8
8
  return commands_1.default.MESSAGE_REPLY_LIST;
9
9
  }
@@ -15,15 +15,15 @@ class TeamsMessageReplyListCommand extends GraphItemsListCommand_1.GraphItemsLis
15
15
  }
16
16
  commandAction(logger, args, cb) {
17
17
  const endpoint = `${this.resource}/v1.0/teams/${args.options.teamId}/channels/${args.options.channelId}/messages/${args.options.messageId}/replies`;
18
- this
19
- .getAllItems(endpoint, logger, true)
20
- .then(() => {
18
+ utils_1.odata
19
+ .getAllItems(endpoint, logger)
20
+ .then((items) => {
21
21
  if (args.options.output !== 'json') {
22
- this.items.forEach(i => {
22
+ items.forEach(i => {
23
23
  i.body = i.body.content;
24
24
  });
25
25
  }
26
- logger.log(this.items);
26
+ logger.log(items);
27
27
  cb();
28
28
  }, (err) => this.handleRejectedODataJsonPromise(err, logger, cb));
29
29
  }
@@ -43,10 +43,10 @@ class TeamsMessageReplyListCommand extends GraphItemsListCommand_1.GraphItemsLis
43
43
  return options.concat(parentOptions);
44
44
  }
45
45
  validate(args) {
46
- if (!Utils_1.default.isValidGuid(args.options.teamId)) {
46
+ if (!utils_1.validation.isValidGuid(args.options.teamId)) {
47
47
  return `${args.options.teamId} is not a valid GUID`;
48
48
  }
49
- if (!Utils_1.default.isValidTeamsChannelId(args.options.channelId)) {
49
+ if (!utils_1.validation.isValidTeamsChannelId(args.options.channelId)) {
50
50
  return `${args.options.channelId} is not a valid Teams ChannelId`;
51
51
  }
52
52
  return true;
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const request_1 = require("../../../../request");
4
- const Utils_1 = require("../../../../Utils");
4
+ const utils_1 = require("../../../../utils");
5
5
  const GraphCommand_1 = require("../../../base/GraphCommand");
6
6
  const commands_1 = require("../../commands");
7
7
  class TeamsMessagingSettingsListCommand extends GraphCommand_1.default {
@@ -36,7 +36,7 @@ class TeamsMessagingSettingsListCommand extends GraphCommand_1.default {
36
36
  return options.concat(parentOptions);
37
37
  }
38
38
  validate(args) {
39
- if (!Utils_1.default.isValidGuid(args.options.teamId)) {
39
+ if (!utils_1.validation.isValidGuid(args.options.teamId)) {
40
40
  return `${args.options.teamId} is not a valid GUID`;
41
41
  }
42
42
  return true;
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const request_1 = require("../../../../request");
4
- const Utils_1 = require("../../../../Utils");
4
+ const utils_1 = require("../../../../utils");
5
5
  const GraphCommand_1 = require("../../../base/GraphCommand");
6
6
  const commands_1 = require("../../commands");
7
7
  class TeamsMessagingSettingsSetCommand extends GraphCommand_1.default {
@@ -64,7 +64,7 @@ class TeamsMessagingSettingsSetCommand extends GraphCommand_1.default {
64
64
  return options.concat(parentOptions);
65
65
  }
66
66
  validate(args) {
67
- if (!Utils_1.default.isValidGuid(args.options.teamId)) {
67
+ if (!utils_1.validation.isValidGuid(args.options.teamId)) {
68
68
  return `${args.options.teamId} is not a valid GUID`;
69
69
  }
70
70
  let hasDuplicate = false;
@@ -83,7 +83,7 @@ class TeamsMessagingSettingsSetCommand extends GraphCommand_1.default {
83
83
  TeamsMessagingSettingsSetCommand.props.every((p) => {
84
84
  property = p;
85
85
  value = args.options[p];
86
- isValid = typeof value === 'undefined' || Utils_1.default.isValidBoolean(value);
86
+ isValid = typeof value === 'undefined' || utils_1.validation.isValidBoolean(value);
87
87
  return isValid;
88
88
  });
89
89
  if (!isValid) {
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const request_1 = require("../../../../request");
4
- const Utils_1 = require("../../../../Utils");
4
+ const utils_1 = require("../../../../utils");
5
5
  const GraphCommand_1 = require("../../../base/GraphCommand");
6
6
  const commands_1 = require("../../commands");
7
7
  class TeamsReportDirectroutingcallsCommand extends GraphCommand_1.default {
@@ -48,11 +48,11 @@ class TeamsReportDirectroutingcallsCommand extends GraphCommand_1.default {
48
48
  return options.concat(parentOptions);
49
49
  }
50
50
  validate(args) {
51
- if (!Utils_1.default.isValidISODateDashOnly(args.options.fromDateTime)) {
51
+ if (!utils_1.validation.isValidISODateDashOnly(args.options.fromDateTime)) {
52
52
  return 'The fromDateTime is not a valid ISO date string (YYYY-MM-DD)';
53
53
  }
54
54
  if (args.options.toDateTime &&
55
- !Utils_1.default.isValidISODateDashOnly(args.options.toDateTime)) {
55
+ !utils_1.validation.isValidISODateDashOnly(args.options.toDateTime)) {
56
56
  return 'The toDateTime is not a valid ISO date string (YYYY-MM-DD)';
57
57
  }
58
58
  if (Math.ceil((new Date(args.options.toDateTime || new Date().toISOString()).getTime() - new Date(args.options.fromDateTime).getTime()) / (1000 * 3600 * 24)) > 90) {
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const request_1 = require("../../../../request");
4
- const Utils_1 = require("../../../../Utils");
4
+ const utils_1 = require("../../../../utils");
5
5
  const GraphCommand_1 = require("../../../base/GraphCommand");
6
6
  const commands_1 = require("../../commands");
7
7
  class TeamsReportPstncallsCommand extends GraphCommand_1.default {
@@ -48,11 +48,11 @@ class TeamsReportPstncallsCommand extends GraphCommand_1.default {
48
48
  return options.concat(parentOptions);
49
49
  }
50
50
  validate(args) {
51
- if (!Utils_1.default.isValidISODateDashOnly(args.options.fromDateTime)) {
51
+ if (!utils_1.validation.isValidISODateDashOnly(args.options.fromDateTime)) {
52
52
  return 'The fromDateTime is not a valid ISO date string (YYYY-MM-DD)';
53
53
  }
54
54
  if (args.options.toDateTime &&
55
- !Utils_1.default.isValidISODateDashOnly(args.options.toDateTime)) {
55
+ !utils_1.validation.isValidISODateDashOnly(args.options.toDateTime)) {
56
56
  return 'The toDateTime is not a valid ISO date string (YYYY-MM-DD)';
57
57
  }
58
58
  if (Math.ceil((new Date(args.options.toDateTime || new Date().toISOString()).getTime() - new Date(args.options.fromDateTime).getTime()) / (1000 * 3600 * 24)) > 90) {