@pnp/cli-microsoft365 12.0.0-beta.feb621e → 12.1.0-beta.0c2915d

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 (359) hide show
  1. package/allCommands.json +1 -1
  2. package/allCommandsFull.json +1 -1
  3. package/dist/Auth.js +19 -2
  4. package/dist/Command.js +11 -8
  5. package/dist/cli/cli.js +34 -18
  6. package/dist/config.js +2 -0
  7. package/dist/m365/cli/commands/cli-consent.js +9 -2
  8. package/dist/m365/entra/commands/agent/agent-blueprint-list.js +52 -0
  9. package/dist/m365/entra/commands/agent/agent-blueprintprincipal-list.js +56 -0
  10. package/dist/m365/entra/commands/m365group/m365group-add.js +52 -97
  11. package/dist/m365/entra/commands/m365group/m365group-conversation-list.js +20 -33
  12. package/dist/m365/entra/commands/m365group/m365group-conversation-post-list.js +20 -39
  13. package/dist/m365/entra/commands/m365group/m365group-get.js +20 -41
  14. package/dist/m365/entra/commands/m365group/m365group-list.js +11 -31
  15. package/dist/m365/entra/commands/m365group/m365group-recyclebinitem-clear.js +8 -22
  16. package/dist/m365/entra/commands/m365group/m365group-recyclebinitem-list.js +9 -25
  17. package/dist/m365/entra/commands/m365group/m365group-recyclebinitem-remove.js +21 -43
  18. package/dist/m365/entra/commands/m365group/m365group-recyclebinitem-restore.js +21 -41
  19. package/dist/m365/entra/commands/m365group/m365group-remove.js +25 -46
  20. package/dist/m365/entra/commands/m365group/m365group-renew.js +19 -32
  21. package/dist/m365/entra/commands/m365group/m365group-set.js +86 -141
  22. package/dist/m365/entra/commands/m365group/m365group-teamify.js +20 -43
  23. package/dist/m365/entra/commands/m365group/m365group-user-add.js +44 -77
  24. package/dist/m365/entra/commands/m365group/m365group-user-list.js +28 -55
  25. package/dist/m365/entra/commands/m365group/m365group-user-remove.js +37 -74
  26. package/dist/m365/entra/commands/m365group/m365group-user-set.js +45 -77
  27. package/dist/m365/entra/commands.js +2 -0
  28. package/dist/m365/graph/commands/schemaextension/schemaextension-list.js +14 -16
  29. package/dist/m365/outlook/commands/calendargroup/calendargroup-add.js +97 -0
  30. package/dist/m365/outlook/commands/event/event-add.js +324 -0
  31. package/dist/m365/outlook/commands.js +2 -0
  32. package/dist/m365/spe/commands/container/container-activate.js +8 -16
  33. package/dist/m365/spe/commands/container/container-list.js +21 -42
  34. package/dist/m365/spe/commands/container/container-permission-add.js +114 -0
  35. package/dist/m365/spe/commands/container/container-permission-remove.js +94 -0
  36. package/dist/m365/spe/commands/container/container-permission-set.js +90 -0
  37. package/dist/m365/spe/commands/containertype/containertype-list.js +5 -0
  38. package/dist/m365/spe/commands.js +3 -0
  39. package/dist/m365/spfx/commands/SpfxCompatibilityMatrix.js +16 -1
  40. package/dist/m365/spfx/commands/project/project-doctor/{doctor-1.24.0-rc.0.js → doctor-1.24.0.js} +1 -1
  41. package/dist/m365/spfx/commands/project/project-doctor/doctor-1.24.1.js +19 -0
  42. package/dist/m365/spfx/commands/project/project-doctor.js +2 -1
  43. package/dist/m365/spfx/commands/project/project-upgrade/rules/FN027004_OVERRIDES_serialize_javascript.js +34 -0
  44. package/dist/m365/spfx/commands/project/project-upgrade/{upgrade-1.24.0-rc.0.js → upgrade-1.24.0.js} +27 -27
  45. package/dist/m365/spfx/commands/project/project-upgrade/upgrade-1.24.1.js +57 -0
  46. package/dist/m365/spfx/commands/project/project-upgrade.js +12 -11
  47. package/dist/m365/spo/commands/applicationcustomizer/applicationcustomizer-add.js +38 -71
  48. package/dist/m365/spo/commands/applicationcustomizer/applicationcustomizer-get.js +25 -59
  49. package/dist/m365/spo/commands/applicationcustomizer/applicationcustomizer-list.js +11 -34
  50. package/dist/m365/spo/commands/applicationcustomizer/applicationcustomizer-remove.js +25 -54
  51. package/dist/m365/spo/commands/applicationcustomizer/applicationcustomizer-set.js +52 -83
  52. package/dist/m365/spo/commands/apppage/apppage-add.js +21 -39
  53. package/dist/m365/spo/commands/apppage/apppage-set.js +20 -30
  54. package/dist/m365/spo/commands/commandset/commandset-add.js +17 -59
  55. package/dist/m365/spo/commands/commandset/commandset-get.js +24 -62
  56. package/dist/m365/spo/commands/commandset/commandset-list.js +11 -34
  57. package/dist/m365/spo/commands/commandset/commandset-remove.js +21 -54
  58. package/dist/m365/spo/commands/commandset/commandset-set.js +30 -83
  59. package/dist/m365/spo/commands/contenttype/contenttype-add.js +22 -51
  60. package/dist/m365/spo/commands/contenttype/contenttype-field-list.js +38 -62
  61. package/dist/m365/spo/commands/contenttype/contenttype-field-remove.js +25 -54
  62. package/dist/m365/spo/commands/contenttype/contenttype-field-set.js +20 -43
  63. package/dist/m365/spo/commands/contenttype/contenttype-get.js +29 -54
  64. package/dist/m365/spo/commands/contenttype/contenttype-list.js +13 -30
  65. package/dist/m365/spo/commands/contenttype/contenttype-remove.js +24 -39
  66. package/dist/m365/spo/commands/contenttype/contenttype-set.js +42 -63
  67. package/dist/m365/spo/commands/contenttype/contenttype-sync.js +37 -59
  68. package/dist/m365/spo/commands/contenttypehub/contenttypehub-get.js +5 -0
  69. package/dist/m365/spo/commands/customaction/customaction-add.js +124 -145
  70. package/dist/m365/spo/commands/customaction/customaction-clear.js +12 -43
  71. package/dist/m365/spo/commands/customaction/customaction-get.js +28 -59
  72. package/dist/m365/spo/commands/customaction/customaction-list.js +12 -42
  73. package/dist/m365/spo/commands/customaction/customaction-remove.js +26 -54
  74. package/dist/m365/spo/commands/customaction/customaction-set.js +75 -132
  75. package/dist/m365/spo/commands/eventreceiver/eventreceiver-get.js +39 -65
  76. package/dist/m365/spo/commands/eventreceiver/eventreceiver-list.js +28 -56
  77. package/dist/m365/spo/commands/eventreceiver/eventreceiver-remove.js +40 -68
  78. package/dist/m365/spo/commands/externaluser/externaluser-list.js +29 -80
  79. package/dist/m365/spo/commands/file/file-add.js +51 -77
  80. package/dist/m365/spo/commands/file/file-archive.js +1 -1
  81. package/dist/m365/spo/commands/file/file-checkin.js +35 -64
  82. package/dist/m365/spo/commands/file/file-checkout-undo.js +25 -49
  83. package/dist/m365/spo/commands/file/file-checkout.js +24 -47
  84. package/dist/m365/spo/commands/file/file-copy.js +37 -68
  85. package/dist/m365/spo/commands/file/file-get.js +44 -79
  86. package/dist/m365/spo/commands/file/file-list.js +16 -39
  87. package/dist/m365/spo/commands/file/file-move.js +30 -68
  88. package/dist/m365/spo/commands/file/file-remove.js +27 -56
  89. package/dist/m365/spo/commands/file/file-rename.js +15 -36
  90. package/dist/m365/spo/commands/file/file-retentionlabel-ensure.js +26 -51
  91. package/dist/m365/spo/commands/file/file-retentionlabel-remove.js +25 -50
  92. package/dist/m365/spo/commands/file/file-roleassignment-add.js +47 -75
  93. package/dist/m365/spo/commands/file/file-roleassignment-remove.js +39 -70
  94. package/dist/m365/spo/commands/file/file-roleinheritance-break.js +26 -52
  95. package/dist/m365/spo/commands/file/file-roleinheritance-reset.js +25 -49
  96. package/dist/m365/spo/commands/file/file-sharinginfo-get.js +24 -47
  97. package/dist/m365/spo/commands/file/file-sharinglink-add.js +46 -70
  98. package/dist/m365/spo/commands/file/file-sharinglink-clear.js +33 -57
  99. package/dist/m365/spo/commands/file/file-sharinglink-get.js +25 -47
  100. package/dist/m365/spo/commands/file/file-sharinglink-list.js +32 -53
  101. package/dist/m365/spo/commands/file/file-sharinglink-remove.js +26 -51
  102. package/dist/m365/spo/commands/file/file-sharinglink-set.js +29 -55
  103. package/dist/m365/spo/commands/file/file-unarchive.js +1 -1
  104. package/dist/m365/spo/commands/file/file-version-clear.js +25 -45
  105. package/dist/m365/spo/commands/file/file-version-get.js +25 -43
  106. package/dist/m365/spo/commands/file/file-version-keep.js +1 -1
  107. package/dist/m365/spo/commands/file/file-version-list.js +24 -41
  108. package/dist/m365/spo/commands/file/file-version-remove.js +26 -47
  109. package/dist/m365/spo/commands/file/file-version-restore.js +26 -47
  110. package/dist/m365/spo/commands/folder/folder-add.js +19 -48
  111. package/dist/m365/spo/commands/folder/folder-copy.js +36 -62
  112. package/dist/m365/spo/commands/folder/folder-get.js +30 -51
  113. package/dist/m365/spo/commands/folder/folder-list.js +16 -39
  114. package/dist/m365/spo/commands/folder/folder-move.js +36 -62
  115. package/dist/m365/spo/commands/folder/folder-remove.js +15 -36
  116. package/dist/m365/spo/commands/folder/folder-retentionlabel-ensure.js +30 -48
  117. package/dist/m365/spo/commands/folder/folder-retentionlabel-remove.js +30 -50
  118. package/dist/m365/spo/commands/folder/folder-roleassignment-add.js +49 -79
  119. package/dist/m365/spo/commands/folder/folder-roleassignment-remove.js +37 -67
  120. package/dist/m365/spo/commands/folder/folder-roleinheritance-break.js +15 -36
  121. package/dist/m365/spo/commands/folder/folder-roleinheritance-reset.js +14 -33
  122. package/dist/m365/spo/commands/folder/folder-set.js +28 -48
  123. package/dist/m365/spo/commands/folder/folder-sharinglink-add.js +58 -86
  124. package/dist/m365/spo/commands/folder/folder-sharinglink-clear.js +33 -50
  125. package/dist/m365/spo/commands/folder/folder-sharinglink-get.js +33 -42
  126. package/dist/m365/spo/commands/folder/folder-sharinglink-list.js +32 -47
  127. package/dist/m365/spo/commands/folder/folder-sharinglink-remove.js +34 -41
  128. package/dist/m365/spo/commands/folder/folder-sharinglink-set.js +38 -43
  129. package/dist/m365/spo/commands/group/group-add.js +19 -60
  130. package/dist/m365/spo/commands/group/group-get.js +32 -45
  131. package/dist/m365/spo/commands/group/group-list.js +13 -27
  132. package/dist/m365/spo/commands/group/group-member-add.js +52 -84
  133. package/dist/m365/spo/commands/group/group-member-list.js +24 -38
  134. package/dist/m365/spo/commands/group/group-member-remove.js +49 -68
  135. package/dist/m365/spo/commands/group/group-remove.js +25 -45
  136. package/dist/m365/spo/commands/group/group-set.js +36 -79
  137. package/dist/m365/spo/commands/knowledgehub/knowledgehub-get.js +5 -0
  138. package/dist/m365/spo/commands/knowledgehub/knowledgehub-remove.js +8 -22
  139. package/dist/m365/spo/commands/knowledgehub/knowledgehub-set.js +10 -18
  140. package/dist/m365/spo/commands/listitem/listitem-add.js +27 -55
  141. package/dist/m365/spo/commands/listitem/listitem-attachment-add.js +30 -58
  142. package/dist/m365/spo/commands/listitem/listitem-attachment-get.js +27 -52
  143. package/dist/m365/spo/commands/listitem/listitem-attachment-list.js +26 -50
  144. package/dist/m365/spo/commands/listitem/listitem-attachment-remove.js +28 -55
  145. package/dist/m365/spo/commands/listitem/listitem-attachment-set.js +30 -57
  146. package/dist/m365/spo/commands/listitem/listitem-batch-add.js +36 -58
  147. package/dist/m365/spo/commands/listitem/listitem-batch-remove.js +68 -92
  148. package/dist/m365/spo/commands/listitem/listitem-batch-set.js +37 -57
  149. package/dist/m365/spo/commands/listitem/listitem-get.js +45 -68
  150. package/dist/m365/spo/commands/listitem/listitem-isrecord.js +31 -55
  151. package/dist/m365/spo/commands/listitem/listitem-list.js +47 -81
  152. package/dist/m365/spo/commands/listitem/listitem-record-declare.js +37 -60
  153. package/dist/m365/spo/commands/listitem/listitem-record-lock.js +30 -52
  154. package/dist/m365/spo/commands/listitem/listitem-record-undeclare.js +31 -52
  155. package/dist/m365/spo/commands/listitem/listitem-record-unlock.js +30 -52
  156. package/dist/m365/spo/commands/listitem/listitem-remove.js +33 -61
  157. package/dist/m365/spo/commands/listitem/listitem-retentionlabel-ensure.js +46 -67
  158. package/dist/m365/spo/commands/listitem/listitem-retentionlabel-remove.js +33 -56
  159. package/dist/m365/spo/commands/listitem/listitem-roleassignment-add.js +55 -98
  160. package/dist/m365/spo/commands/listitem/listitem-roleassignment-remove.js +48 -74
  161. package/dist/m365/spo/commands/listitem/listitem-roleinheritance-break.js +33 -56
  162. package/dist/m365/spo/commands/listitem/listitem-roleinheritance-reset.js +31 -53
  163. package/dist/m365/spo/commands/listitem/listitem-set.js +33 -58
  164. package/dist/m365/spo/commands/navigation/navigation-node-add.js +74 -120
  165. package/dist/m365/spo/commands/navigation/navigation-node-get.js +4 -13
  166. package/dist/m365/spo/commands/navigation/navigation-node-list.js +1 -1
  167. package/dist/m365/spo/commands/navigation/navigation-node-remove.js +13 -47
  168. package/dist/m365/spo/commands/navigation/navigation-node-set.js +53 -114
  169. package/dist/m365/spo/commands/orgassetslibrary/orgassetslibrary-add.js +15 -49
  170. package/dist/m365/spo/commands/orgassetslibrary/orgassetslibrary-list.js +6 -1
  171. package/dist/m365/spo/commands/orgassetslibrary/orgassetslibrary-remove.js +9 -17
  172. package/dist/m365/spo/commands/orgnewssite/orgnewssite-list.js +5 -0
  173. package/dist/m365/spo/commands/orgnewssite/orgnewssite-remove.js +11 -27
  174. package/dist/m365/spo/commands/orgnewssite/orgnewssite-set.js +10 -18
  175. package/dist/m365/spo/commands/page/page-column-list.js +7 -8
  176. package/dist/m365/spo/commands/page/page-section-list.js +15 -17
  177. package/dist/m365/spo/commands/page/page-unpublish.js +53 -0
  178. package/dist/m365/spo/commands/propertybag/propertybag-get.js +14 -29
  179. package/dist/m365/spo/commands/propertybag/propertybag-list.js +13 -27
  180. package/dist/m365/spo/commands/propertybag/propertybag-remove.js +15 -32
  181. package/dist/m365/spo/commands/propertybag/propertybag-set.js +15 -31
  182. package/dist/m365/spo/commands/roledefinition/roledefinition-add.js +45 -44
  183. package/dist/m365/spo/commands/roledefinition/roledefinition-get.js +14 -25
  184. package/dist/m365/spo/commands/roledefinition/roledefinition-list.js +12 -18
  185. package/dist/m365/spo/commands/roledefinition/roledefinition-remove.js +15 -35
  186. package/dist/m365/spo/commands/serviceprincipal/serviceprincipal-grant-add.js +9 -17
  187. package/dist/m365/spo/commands/serviceprincipal/serviceprincipal-grant-list.js +5 -0
  188. package/dist/m365/spo/commands/serviceprincipal/serviceprincipal-grant-revoke.js +9 -17
  189. package/dist/m365/spo/commands/serviceprincipal/serviceprincipal-permissionrequest-approve.js +29 -39
  190. package/dist/m365/spo/commands/serviceprincipal/serviceprincipal-permissionrequest-deny.js +10 -23
  191. package/dist/m365/spo/commands/serviceprincipal/serviceprincipal-permissionrequest-list.js +5 -0
  192. package/dist/m365/spo/commands/serviceprincipal/serviceprincipal-set.js +19 -28
  193. package/dist/m365/spo/commands/sitedesign/sitedesign-add.js +24 -59
  194. package/dist/m365/spo/commands/sitedesign/sitedesign-apply.js +10 -34
  195. package/dist/m365/spo/commands/sitedesign/sitedesign-get.js +19 -36
  196. package/dist/m365/spo/commands/sitedesign/sitedesign-list.js +8 -0
  197. package/dist/m365/spo/commands/sitedesign/sitedesign-remove.js +9 -32
  198. package/dist/m365/spo/commands/sitedesign/sitedesign-rights-grant.js +10 -31
  199. package/dist/m365/spo/commands/sitedesign/sitedesign-rights-list.js +8 -23
  200. package/dist/m365/spo/commands/sitedesign/sitedesign-rights-revoke.js +10 -34
  201. package/dist/m365/spo/commands/sitedesign/sitedesign-run-list.js +9 -38
  202. package/dist/m365/spo/commands/sitedesign/sitedesign-run-status-get.js +9 -29
  203. package/dist/m365/spo/commands/sitedesign/sitedesign-set.js +27 -80
  204. package/dist/m365/spo/commands/sitedesign/sitedesign-task-get.js +8 -23
  205. package/dist/m365/spo/commands/sitedesign/sitedesign-task-list.js +8 -18
  206. package/dist/m365/spo/commands/sitedesign/sitedesign-task-remove.js +9 -32
  207. package/dist/m365/spo/commands/sitescript/sitescript-add.js +22 -37
  208. package/dist/m365/spo/commands/sitescript/sitescript-get.js +9 -26
  209. package/dist/m365/spo/commands/sitescript/sitescript-list.js +5 -0
  210. package/dist/m365/spo/commands/sitescript/sitescript-remove.js +9 -33
  211. package/dist/m365/spo/commands/sitescript/sitescript-set.js +29 -56
  212. package/dist/m365/spo/commands/spo-search.js +43 -116
  213. package/dist/m365/spo/commands/tenant/tenant-appcatalog-add.js +15 -46
  214. package/dist/m365/spo/commands/tenant/tenant-appcatalogurl-get.js +5 -0
  215. package/dist/m365/spo/commands/tenant/tenant-applicationcustomizer-add.js +20 -57
  216. package/dist/m365/spo/commands/tenant/tenant-applicationcustomizer-get.js +25 -49
  217. package/dist/m365/spo/commands/tenant/tenant-applicationcustomizer-list.js +5 -1
  218. package/dist/m365/spo/commands/tenant/tenant-applicationcustomizer-remove.js +25 -49
  219. package/dist/m365/spo/commands/tenant/tenant-applicationcustomizer-set.js +47 -79
  220. package/dist/m365/spo/commands/tenant/tenant-commandset-add.js +23 -54
  221. package/dist/m365/spo/commands/tenant/tenant-commandset-get.js +25 -50
  222. package/dist/m365/spo/commands/tenant/tenant-commandset-list.js +5 -1
  223. package/dist/m365/spo/commands/tenant/tenant-commandset-remove.js +25 -49
  224. package/dist/m365/spo/commands/tenant/tenant-commandset-set.js +41 -65
  225. package/dist/m365/spo/commands/tenant/tenant-recyclebinitem-list.js +5 -0
  226. package/dist/m365/spo/commands/tenant/tenant-recyclebinitem-remove.js +10 -30
  227. package/dist/m365/spo/commands/tenant/tenant-recyclebinitem-restore.js +8 -21
  228. package/dist/m365/spo/commands/tenant/tenant-settings-list.js +5 -0
  229. package/dist/m365/spo/commands/tenant/tenant-settings-set.js +104 -386
  230. package/dist/m365/spo/commands/term/term-add.js +95 -110
  231. package/dist/m365/spo/commands/term/term-get.js +63 -75
  232. package/dist/m365/spo/commands/term/term-group-add.js +11 -41
  233. package/dist/m365/spo/commands/term/term-group-get.js +16 -47
  234. package/dist/m365/spo/commands/term/term-group-list.js +16 -42
  235. package/dist/m365/spo/commands/term/term-list.js +42 -57
  236. package/dist/m365/spo/commands/term/term-set-add.js +50 -71
  237. package/dist/m365/spo/commands/term/term-set-get.js +41 -58
  238. package/dist/m365/spo/commands/term/term-set-list.js +22 -56
  239. package/dist/m365/spo/commands/theme/theme-apply.js +27 -43
  240. package/dist/m365/spo/commands/theme/theme-get.js +8 -15
  241. package/dist/m365/spo/commands/theme/theme-list.js +5 -0
  242. package/dist/m365/spo/commands/theme/theme-remove.js +9 -24
  243. package/dist/m365/spo/commands/theme/theme-set.js +12 -34
  244. package/dist/m365/spo/commands.js +1 -0
  245. package/dist/m365/spp/commands/contentcenter/contentcenter-list.js +5 -0
  246. package/dist/m365/spp/commands/model/model-get.js +25 -45
  247. package/dist/m365/spp/commands/model/model-list.js +12 -23
  248. package/dist/m365/spp/commands/model/model-remove.js +25 -45
  249. package/dist/m365/teams/commands/app/app-install.js +35 -44
  250. package/dist/m365/teams/commands/app/app-list.js +8 -33
  251. package/dist/m365/teams/commands/app/app-publish.js +21 -27
  252. package/dist/m365/teams/commands/app/app-remove.js +22 -39
  253. package/dist/m365/teams/commands/app/app-uninstall.js +12 -34
  254. package/dist/m365/teams/commands/app/app-update.js +35 -45
  255. package/dist/m365/teams/commands/funsettings/funsettings-list.js +12 -23
  256. package/dist/m365/teams/commands/funsettings/funsettings-set.js +18 -54
  257. package/dist/m365/teams/commands/guestsettings/guestsettings-list.js +12 -23
  258. package/dist/m365/teams/commands/guestsettings/guestsettings-set.js +15 -40
  259. package/dist/m365/teams/commands/meeting/meeting-add.js +57 -68
  260. package/dist/m365/teams/commands/meeting/meeting-attendancereport-get.js +33 -58
  261. package/dist/m365/teams/commands/meeting/meeting-attendancereport-list.js +14 -38
  262. package/dist/m365/teams/commands/meeting/meeting-get.js +14 -38
  263. package/dist/m365/teams/commands/meeting/meeting-list.js +34 -59
  264. package/dist/m365/teams/commands/meeting/meeting-transcript-get.js +34 -58
  265. package/dist/m365/teams/commands/meeting/meeting-transcript-list.js +29 -50
  266. package/dist/m365/teams/commands/membersettings/membersettings-list.js +12 -23
  267. package/dist/m365/teams/commands/membersettings/membersettings-set.js +18 -49
  268. package/dist/m365/teams/commands/message/message-get.js +19 -30
  269. package/dist/m365/teams/commands/message/message-list.js +26 -43
  270. package/dist/m365/teams/commands/message/message-remove.js +43 -58
  271. package/dist/m365/teams/commands/message/message-reply-list.js +19 -30
  272. package/dist/m365/teams/commands/message/message-restore.js +40 -50
  273. package/dist/m365/teams/commands/message/message-send.js +19 -30
  274. package/dist/m365/teams/commands/messagingsettings/messagingsettings-list.js +12 -23
  275. package/dist/m365/teams/commands/messagingsettings/messagingsettings-set.js +18 -60
  276. package/dist/m365/teams/commands/report/report-deviceusagedistributionusercounts.js +10 -0
  277. package/dist/m365/teams/commands/report/report-deviceusageusercounts.js +10 -0
  278. package/dist/m365/teams/commands/report/report-deviceusageuserdetail.js +22 -0
  279. package/dist/m365/teams/commands/report/report-directroutingcalls.js +19 -39
  280. package/dist/m365/teams/commands/report/report-pstncalls.js +19 -39
  281. package/dist/m365/teams/commands/report/report-useractivitycounts.js +10 -0
  282. package/dist/m365/teams/commands/report/report-useractivityusercounts.js +10 -0
  283. package/dist/m365/teams/commands/report/report-useractivityuserdetail.js +22 -0
  284. package/dist/m365/teams/commands/tab/tab-add.js +23 -49
  285. package/dist/m365/teams/commands/tab/tab-get.js +55 -56
  286. package/dist/m365/teams/commands/tab/tab-list.js +17 -28
  287. package/dist/m365/teams/commands/tab/tab-remove.js +23 -42
  288. package/dist/m365/teams/commands/team/team-add.js +76 -114
  289. package/dist/m365/teams/commands/team/team-app-list.js +23 -36
  290. package/dist/m365/teams/commands/team/team-archive.js +24 -39
  291. package/dist/m365/teams/commands/team/team-clone.js +28 -62
  292. package/dist/m365/teams/commands/team/team-get.js +23 -36
  293. package/dist/m365/teams/commands/team/team-list.js +43 -57
  294. package/dist/m365/teams/commands/team/team-remove.js +24 -37
  295. package/dist/m365/teams/commands/team/team-set.js +23 -52
  296. package/dist/m365/teams/commands/team/team-unarchive.js +23 -28
  297. package/dist/m365/teams/commands/user/user-app-add.js +40 -49
  298. package/dist/m365/teams/commands/user/user-app-list.js +26 -39
  299. package/dist/m365/teams/commands/user/user-app-remove.js +37 -49
  300. package/dist/m365/teams/commands/user/user-app-upgrade.js +36 -52
  301. package/dist/m365/teams/commands/user/user-list.js +17 -39
  302. package/dist/m365/tenant/commands/id/id-get.js +8 -22
  303. package/dist/m365/tenant/commands/info/info-get.js +23 -36
  304. package/dist/m365/tenant/commands/people/people-profilecardproperty-add.js +67 -55
  305. package/dist/m365/tenant/commands/people/people-profilecardproperty-get.js +11 -24
  306. package/dist/m365/tenant/commands/people/people-profilecardproperty-list.js +5 -0
  307. package/dist/m365/tenant/commands/people/people-profilecardproperty-remove.js +12 -33
  308. package/dist/m365/tenant/commands/people/people-profilecardproperty-set.js +31 -51
  309. package/dist/m365/tenant/commands/people/people-pronouns-get.js +5 -0
  310. package/dist/m365/tenant/commands/people/profileCardProperties.js +10 -7
  311. package/dist/m365/tenant/commands/report/report-activeusercounts.js +2 -1
  312. package/dist/m365/tenant/commands/report/report-activeuserdetail.js +2 -1
  313. package/dist/m365/tenant/commands/report/report-office365activationcounts.js +9 -0
  314. package/dist/m365/tenant/commands/report/report-office365activationsusercounts.js +9 -0
  315. package/dist/m365/tenant/commands/report/report-office365activationsuserdetail.js +9 -0
  316. package/dist/m365/tenant/commands/report/report-servicesusercounts.js +2 -1
  317. package/dist/m365/tenant/commands/report/report-settings-get.js +5 -0
  318. package/dist/m365/tenant/commands/security/security-alerts-list.js +8 -20
  319. package/dist/m365/tenant/commands/serviceannouncement/serviceannouncement-health-get.js +9 -20
  320. package/dist/m365/tenant/commands/serviceannouncement/serviceannouncement-health-list.js +8 -20
  321. package/dist/m365/tenant/commands/serviceannouncement/serviceannouncement-healthissue-get.js +8 -15
  322. package/dist/m365/tenant/commands/serviceannouncement/serviceannouncement-healthissue-list.js +8 -15
  323. package/dist/m365/tenant/commands/serviceannouncement/serviceannouncement-message-get.js +12 -26
  324. package/dist/m365/tenant/commands/serviceannouncement/serviceannouncement-message-list.js +8 -22
  325. package/dist/utils/calendar.js +1 -1
  326. package/dist/utils/formatting.js +16 -0
  327. package/dist/utils/pid.js +7 -16
  328. package/dist/utils/spe.js +1 -1
  329. package/dist/utils/spo.js +39 -0
  330. package/dist/utils/validation.js +36 -0
  331. package/dist/utils/zod.js +18 -7
  332. package/docs/docs/cmd/entra/agent/agent-blueprint-list.mdx +175 -0
  333. package/docs/docs/cmd/entra/agent/agent-blueprintprincipal-list.mdx +156 -0
  334. package/docs/docs/cmd/login.mdx +15 -2
  335. package/docs/docs/cmd/outlook/calendargroup/calendargroup-add.mdx +126 -0
  336. package/docs/docs/cmd/outlook/event/event-add.mdx +390 -0
  337. package/docs/docs/cmd/spe/container/container-add.mdx +0 -8
  338. package/docs/docs/cmd/spe/container/container-list.mdx +0 -8
  339. package/docs/docs/cmd/spe/container/container-permission-add.mdx +140 -0
  340. package/docs/docs/cmd/spe/container/container-permission-remove.mdx +78 -0
  341. package/docs/docs/cmd/spe/container/container-permission-set.mdx +78 -0
  342. package/docs/docs/cmd/spe/container/container-recyclebinitem-list.mdx +0 -8
  343. package/docs/docs/cmd/spe/container/container-recyclebinitem-restore.mdx +0 -8
  344. package/docs/docs/cmd/spe/container/container-remove.mdx +0 -8
  345. package/docs/docs/cmd/spe/containertype/containertype-add.mdx +1 -1
  346. package/docs/docs/cmd/spfx/project/project-upgrade.mdx +1 -1
  347. package/docs/docs/cmd/spo/applicationcustomizer/applicationcustomizer-set.mdx +1 -1
  348. package/docs/docs/cmd/spo/externaluser/externaluser-list.mdx +17 -30
  349. package/docs/docs/cmd/spo/navigation/navigation-node-add.mdx +45 -30
  350. package/docs/docs/cmd/spo/navigation/navigation-node-get.mdx +64 -42
  351. package/docs/docs/cmd/spo/navigation/navigation-node-set.mdx +10 -8
  352. package/docs/docs/cmd/spo/orgassetslibrary/orgassetslibrary-list.mdx +0 -21
  353. package/docs/docs/cmd/spo/page/page-unpublish.mdx +63 -0
  354. package/docs/docs/cmd/teams/tab/tab-add.mdx +19 -0
  355. package/docs/docs/cmd/teams/tab/tab-get.mdx +19 -0
  356. package/docs/docs/cmd/teams/tab/tab-list.mdx +19 -0
  357. package/docs/docs/cmd/teams/tab/tab-remove.mdx +21 -0
  358. package/npm-shrinkwrap.json +57 -57
  359. package/package.json +3 -1
package/dist/Auth.js CHANGED
@@ -212,7 +212,10 @@ export class Auth {
212
212
  };
213
213
  this.connection.active = true;
214
214
  this.connection.identityName = accessTokenUtil.accessToken.getUserNameFromAccessToken(response.accessToken);
215
- this.connection.identityId = accessTokenUtil.accessToken.getUserIdFromAccessToken(response.accessToken);
215
+ // the oid claim is not available on app-only access tokens issued while
216
+ // the service principal hasn't been provisioned in the tenant yet. Fall
217
+ // back to the appId so that the connection still has a valid identity
218
+ this.connection.identityId = accessTokenUtil.accessToken.getUserIdFromAccessToken(response.accessToken) || this.connection.appId;
216
219
  this.connection.identityTenantId = accessTokenUtil.accessToken.getTenantIdFromAccessToken(response.accessToken);
217
220
  this.connection.name = this.connection.name || this.connection.identityId;
218
221
  try {
@@ -606,8 +609,22 @@ export class Auth {
606
609
  const federationToken = await this.getFederationTokenFromAzureDevOps(logger, debug, serviceConnectionId);
607
610
  return this.getAccessTokenWithFederatedToken(resource, federationToken, logger, debug);
608
611
  }
612
+ else if (process.env.GITLAB_CI) {
613
+ if (debug) {
614
+ await logger.logToStderr('GITLAB_CI env variable found. The context is GitLab CI/CD...');
615
+ }
616
+ if (!process.env.GITLAB_OIDC_TOKEN) {
617
+ throw new CommandError('The `GITLAB_OIDC_TOKEN` environment variable is not available. Please add an id_tokens entry named GITLAB_OIDC_TOKEN with audience `api://AzureADTokenExchange` to the job.');
618
+ }
619
+ if (!this.connection.appId || this.connection.tenant === 'common') {
620
+ throw new CommandError('The appId and tenant parameters are required when using federated identity in GitLab CI/CD.');
621
+ }
622
+ // GitLab's id_tokens feature mints the OIDC JWT directly into the configured job variable, so no
623
+ // separate request to GitLab is needed to obtain the federation token before exchanging it with Entra ID.
624
+ return this.getAccessTokenWithFederatedToken(resource, process.env.GITLAB_OIDC_TOKEN, logger, debug);
625
+ }
609
626
  else {
610
- throw new CommandError('Federated identity is currently only supported in GitHub Actions and Azure DevOps.');
627
+ throw new CommandError('Federated identity is currently only supported in GitHub Actions, Azure DevOps and GitLab.');
611
628
  }
612
629
  }
613
630
  async getFederationTokenFromGithub(logger, debug) {
package/dist/Command.js CHANGED
@@ -424,7 +424,7 @@ class Command {
424
424
  if (this.schema) {
425
425
  const telemetryProperties = {};
426
426
  this.optionsInfo.forEach(o => {
427
- if (o.required) {
427
+ if (o.required && !o.autocomplete) {
428
428
  return;
429
429
  }
430
430
  if (typeof args.options[o.name] === 'undefined') {
@@ -432,23 +432,26 @@ class Command {
432
432
  }
433
433
  switch (o.type) {
434
434
  case 'string':
435
- telemetryProperties[o.name] = o.autocomplete ? args.options[o.name] : typeof args.options[o.name] !== 'undefined';
435
+ telemetryProperties[o.name] = o.autocomplete ? args.options[o.name] : true;
436
436
  break;
437
437
  case 'boolean':
438
438
  telemetryProperties[o.name] = args.options[o.name];
439
439
  break;
440
440
  case 'number':
441
- telemetryProperties[o.name] = typeof args.options[o.name] !== 'undefined';
441
+ telemetryProperties[o.name] = true;
442
442
  break;
443
443
  }
444
- ;
445
444
  });
445
+ if (this.allowUnknownOptions()) {
446
+ const unknownOptions = optionsUtils.getUnknownOptions(args.options, zod.schemaToOptions(this.schema));
447
+ Object.keys(unknownOptions).forEach(optionName => {
448
+ telemetryProperties[optionName] = true;
449
+ });
450
+ }
446
451
  return telemetryProperties;
447
452
  }
448
- else {
449
- this.telemetry.forEach(t => t(args));
450
- return this.telemetryProperties;
451
- }
453
+ this.telemetry.forEach(t => t(args));
454
+ return this.telemetryProperties;
452
455
  }
453
456
  async getTextOutput(logStatement) {
454
457
  // display object as a list of key-value pairs
package/dist/cli/cli.js CHANGED
@@ -47,6 +47,21 @@ const yargsConfiguration = {
47
47
  'boolean-negation': true,
48
48
  'camel-case-expansion': false
49
49
  };
50
+ function isMissingRequiredValueError(error, options) {
51
+ if (error.code !== 'invalid_type') {
52
+ return false;
53
+ }
54
+ let currentValue = options;
55
+ for (const pathSegment of error.path) {
56
+ if (currentValue === null ||
57
+ typeof currentValue !== 'object' ||
58
+ !Object.prototype.hasOwnProperty.call(currentValue, pathSegment)) {
59
+ return true;
60
+ }
61
+ currentValue = currentValue[pathSegment];
62
+ }
63
+ return false;
64
+ }
50
65
  function getConfig() {
51
66
  if (!_config) {
52
67
  _config = new Configstore(config.configstoreName);
@@ -159,15 +174,14 @@ async function execute(rawArgs) {
159
174
  const shouldPrompt = cli.getSettingWithDefaultValue(settingsNames.prompt, true);
160
175
  if (!shouldPrompt) {
161
176
  result.error.issues.forEach(e => {
162
- if (e.code === 'invalid_type' &&
163
- e.input === undefined) {
177
+ if (isMissingRequiredValueError(e, cli.optionsFromArgs.options)) {
164
178
  e.message = `Required option not specified`;
165
179
  }
166
180
  });
167
181
  return cli.closeWithError(result.error, cli.optionsFromArgs, true);
168
182
  }
169
183
  const missingRequiredValuesErrors = result.error.issues
170
- .filter(e => (e.code === 'invalid_type' && e.input === undefined) ||
184
+ .filter(e => isMissingRequiredValueError(e, cli.optionsFromArgs.options) ||
171
185
  (e.code === 'custom' && e.params?.customCode === 'required'));
172
186
  const optionSetErrors = result.error.issues
173
187
  .filter(e => e.code === 'custom' && e.params?.customCode === 'optionSet');
@@ -191,12 +205,24 @@ async function execute(rawArgs) {
191
205
  return cli.closeWithError(e.message, cli.optionsFromArgs, true);
192
206
  }
193
207
  }
208
+ try {
209
+ await cli.commandToExecute.command.processOptions(cli.optionsFromArgs.options);
210
+ }
211
+ catch (e) {
212
+ return cli.closeWithError(e.message, cli.optionsFromArgs, false);
213
+ }
194
214
  continue;
195
215
  }
196
216
  if (optionSetErrors.length > 0) {
197
217
  for (const error of optionSetErrors) {
198
218
  await promptForOptionSetNameAndValue(cli.optionsFromArgs, error.params?.options);
199
219
  }
220
+ try {
221
+ await cli.commandToExecute.command.processOptions(cli.optionsFromArgs.options);
222
+ }
223
+ catch (e) {
224
+ return cli.closeWithError(e.message, cli.optionsFromArgs, false);
225
+ }
200
226
  continue;
201
227
  }
202
228
  }
@@ -910,21 +936,11 @@ async function promptForOptionSetNameAndValue(args, options) {
910
936
  await cli.error(`🌶️ Please specify one of the following options:`);
911
937
  const selectedOptionName = await prompt.forSelection({ message: `Option to use:`, choices: options.map((choice) => { return { name: choice, value: choice }; }) });
912
938
  const optionValue = await prompt.forInput({ message: `${selectedOptionName}:` });
913
- let coercedValue = optionValue;
914
- // Basic type coercion to align with how CLI arguments are typically parsed
915
- if (typeof optionValue === 'string') {
916
- const trimmed = optionValue.trim();
917
- if (trimmed === 'true') {
918
- coercedValue = true;
919
- }
920
- else if (trimmed === 'false') {
921
- coercedValue = false;
922
- }
923
- else if (trimmed !== '' && !isNaN(Number(trimmed))) {
924
- coercedValue = Number(trimmed);
925
- }
926
- }
927
- args.options[selectedOptionName] = coercedValue;
939
+ const parsedOptions = getCommandOptionsFromArgs([`--${selectedOptionName}`, optionValue], cli.commandToExecute);
940
+ options
941
+ .filter(optionName => optionName !== selectedOptionName)
942
+ .forEach(optionName => args.options[optionName] = undefined);
943
+ args.options[selectedOptionName] = parsedOptions[selectedOptionName];
928
944
  await cli.error('');
929
945
  }
930
946
  export const cli = {
package/dist/config.js CHANGED
@@ -3,6 +3,8 @@ export default {
3
3
  allScopes: [
4
4
  'https://management.azure.com/user_impersonation',
5
5
  'https://admin.services.crm.dynamics.com/user_impersonation',
6
+ 'https://graph.microsoft.com/AgentIdentityBlueprint.Read.All',
7
+ 'https://graph.microsoft.com/AgentIdentityBlueprintPrincipal.Read.All',
6
8
  'https://graph.microsoft.com/AppCatalog.ReadWrite.All',
7
9
  'https://graph.microsoft.com/AuditLog.Read.All',
8
10
  'https://graph.microsoft.com/Bookings.Read.All',
@@ -1,6 +1,7 @@
1
1
  import { z } from 'zod';
2
+ import auth from '../../../Auth.js';
2
3
  import { cli } from '../../../cli/cli.js';
3
- import { globalOptionsZod } from '../../../Command.js';
4
+ import { CommandError, globalOptionsZod } from '../../../Command.js';
4
5
  import AnonymousCommand from '../../base/AnonymousCommand.js';
5
6
  import commands from '../commands.js';
6
7
  export const options = z.strictObject({
@@ -22,9 +23,15 @@ class CliConsentCommand extends AnonymousCommand {
22
23
  if (args.options.service === 'VivaEngage') {
23
24
  scope = 'https://api.yammer.com/user_impersonation';
24
25
  }
25
- await logger.log(`To consent permissions for executing ${args.options.service} commands, navigate in your web browser to https://login.microsoftonline.com/${cli.getTenant()}/oauth2/v2.0/authorize?client_id=${cli.getClientId()}&response_type=code&scope=${encodeURIComponent(scope)}`);
26
+ const appId = auth.connection.active ? auth.connection.appId : cli.getClientId();
27
+ if (!appId) {
28
+ throw new CommandError(`Unable to determine the client ID of the Microsoft Entra application used by the CLI. Log in to Microsoft 365 first or store the client ID using 'm365 cli config set --key clientId --value <appId>'.`);
29
+ }
30
+ const tenant = auth.connection.active ? auth.connection.tenant : cli.getTenant();
31
+ await logger.log(`To consent permissions for executing ${args.options.service} commands, navigate in your web browser to https://login.microsoftonline.com/${tenant}/oauth2/v2.0/authorize?client_id=${appId}&response_type=code&scope=${encodeURIComponent(scope)}`);
26
32
  }
27
33
  async action(logger, args) {
34
+ await auth.restoreAuth();
28
35
  await this.initAction(args, logger);
29
36
  await this.commandAction(logger, args);
30
37
  }
@@ -0,0 +1,52 @@
1
+ import { z } from 'zod';
2
+ import { globalOptionsZod } from '../../../../Command.js';
3
+ import { odata } from '../../../../utils/odata.js';
4
+ import GraphCommand from '../../../base/GraphCommand.js';
5
+ import commands from '../../commands.js';
6
+ import { formatting } from '../../../../utils/formatting.js';
7
+ export const options = z.strictObject({
8
+ ...globalOptionsZod.shape,
9
+ properties: z.string().optional().alias('p')
10
+ });
11
+ class EntraAgentBlueprintListCommand extends GraphCommand {
12
+ get name() {
13
+ return commands.AGENT_BLUEPRINT_LIST;
14
+ }
15
+ get description() {
16
+ return 'Retrieves a list of templates defining the agent identity type';
17
+ }
18
+ get schema() {
19
+ return options;
20
+ }
21
+ defaultProperties() {
22
+ return ['id', 'displayName', 'appId'];
23
+ }
24
+ async commandAction(logger, args) {
25
+ const queryParameters = [];
26
+ if (args.options.properties) {
27
+ const allProperties = args.options.properties
28
+ .split(',')
29
+ .map(prop => prop.trim())
30
+ .filter(prop => prop.length > 0);
31
+ const selectProperties = allProperties.filter(prop => !prop.includes('/'));
32
+ if (selectProperties.length > 0) {
33
+ queryParameters.push(`$select=${formatting.encodeQueryParameter(selectProperties.join(','))}`);
34
+ }
35
+ }
36
+ const queryString = queryParameters.length > 0
37
+ ? `?${queryParameters.join('&')}`
38
+ : '';
39
+ try {
40
+ if (this.verbose) {
41
+ await logger.logToStderr('Retrieving agent identity blueprints...');
42
+ }
43
+ const results = await odata.getAllItems(`${this.resource}/v1.0/applications/microsoft.graph.agentIdentityBlueprint${queryString}`);
44
+ await logger.log(results);
45
+ }
46
+ catch (err) {
47
+ this.handleRejectedODataJsonPromise(err);
48
+ }
49
+ }
50
+ }
51
+ export default new EntraAgentBlueprintListCommand();
52
+ //# sourceMappingURL=agent-blueprint-list.js.map
@@ -0,0 +1,56 @@
1
+ import { z } from 'zod';
2
+ import { cli } from '../../../../cli/cli.js';
3
+ import { globalOptionsZod } from '../../../../Command.js';
4
+ import { odata } from '../../../../utils/odata.js';
5
+ import GraphCommand from '../../../base/GraphCommand.js';
6
+ import commands from '../../commands.js';
7
+ import { formatting } from '../../../../utils/formatting.js';
8
+ export const options = z.strictObject({
9
+ ...globalOptionsZod.shape,
10
+ properties: z.string().optional().alias('p')
11
+ });
12
+ class EntraAgentBlueprintPrincipalListCommand extends GraphCommand {
13
+ get name() {
14
+ return commands.AGENT_BLUEPRINTPRINCIPAL_LIST;
15
+ }
16
+ get description() {
17
+ return 'Retrieves a list of agent blueprint principals';
18
+ }
19
+ get schema() {
20
+ return options;
21
+ }
22
+ defaultProperties() {
23
+ return ['id', 'appDisplayName', 'appId'];
24
+ }
25
+ async commandAction(logger, args) {
26
+ const queryParameters = [];
27
+ if (args.options.properties) {
28
+ const allProperties = args.options.properties
29
+ .split(',')
30
+ .map(prop => prop.trim())
31
+ .filter(prop => prop.length > 0);
32
+ const selectProperties = [...new Set(allProperties.map(prop => prop.split('/')[0]))];
33
+ if (selectProperties.length > 0) {
34
+ queryParameters.push(`$select=${selectProperties.map(property => formatting.encodeQueryParameter(property)).join(',')}`);
35
+ if (cli.commandToExecute) {
36
+ cli.commandToExecute.defaultProperties = selectProperties;
37
+ }
38
+ }
39
+ }
40
+ const queryString = queryParameters.length > 0
41
+ ? `?${queryParameters.join('&')}`
42
+ : '';
43
+ try {
44
+ if (this.verbose) {
45
+ await logger.logToStderr(`Retrieving a list of agent blueprint principals...`);
46
+ }
47
+ const results = await odata.getAllItems(`${this.resource}/v1.0/servicePrincipals/microsoft.graph.agentIdentityBlueprintPrincipal${queryString}`);
48
+ await logger.log(results);
49
+ }
50
+ catch (err) {
51
+ this.handleRejectedODataJsonPromise(err);
52
+ }
53
+ }
54
+ }
55
+ export default new EntraAgentBlueprintPrincipalListCommand();
56
+ //# sourceMappingURL=agent-blueprintprincipal-list.js.map
@@ -1,32 +1,69 @@
1
- var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
2
- if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
3
- if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
4
- return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
5
- };
6
- var _EntraM365GroupAddCommand_instances, _EntraM365GroupAddCommand_initTelemetry, _EntraM365GroupAddCommand_initOptions, _EntraM365GroupAddCommand_initTypes, _EntraM365GroupAddCommand_initValidators;
7
1
  import { setTimeout } from 'timers/promises';
8
2
  import fs from 'fs';
9
3
  import path from 'path';
4
+ import { z } from 'zod';
5
+ import { globalOptionsZod } from '../../../../Command.js';
10
6
  import request from '../../../../request.js';
11
7
  import { formatting } from '../../../../utils/formatting.js';
8
+ import { zod } from '../../../../utils/zod.js';
12
9
  import GraphCommand from '../../../base/GraphCommand.js';
13
10
  import commands from '../../commands.js';
11
+ const VisibilityEnum = {
12
+ Private: 'Private',
13
+ Public: 'Public',
14
+ HiddenMembership: 'HiddenMembership'
15
+ };
16
+ export const options = z.strictObject({
17
+ ...globalOptionsZod.shape,
18
+ displayName: z.string().alias('n'),
19
+ mailNickname: z.string().alias('m'),
20
+ description: z.string().optional().alias('d'),
21
+ owners: z.string()
22
+ .refine(owners => owners.split(',').map(o => o.trim()).every(o => o.indexOf('@') > -1), {
23
+ error: e => `${e.input.split(',').map(o => o.trim()).find(o => o.indexOf('@') < 0)} is not a valid userPrincipalName`
24
+ }).optional(),
25
+ members: z.string()
26
+ .refine(members => members.split(',').map(m => m.trim()).every(m => m.indexOf('@') > -1), {
27
+ error: e => `${e.input.split(',').map(m => m.trim()).find(m => m.indexOf('@') < 0)} is not a valid userPrincipalName`
28
+ }).optional(),
29
+ visibility: zod.coercedEnum(VisibilityEnum).optional(),
30
+ logoPath: z.string()
31
+ .refine(logoPath => {
32
+ const fullPath = path.resolve(logoPath);
33
+ return fs.existsSync(fullPath) && !fs.lstatSync(fullPath).isDirectory();
34
+ }, {
35
+ error: e => {
36
+ const fullPath = path.resolve(e.input);
37
+ return fs.existsSync(fullPath) ? `Path '${fullPath}' points to a directory` : `File '${fullPath}' not found`;
38
+ }
39
+ })
40
+ .optional()
41
+ .alias('l'),
42
+ allowMembersToPost: z.boolean().optional(),
43
+ hideGroupInOutlook: z.boolean().optional(),
44
+ subscribeNewGroupMembers: z.boolean().optional(),
45
+ welcomeEmailDisabled: z.boolean().optional()
46
+ });
14
47
  class EntraM365GroupAddCommand extends GraphCommand {
48
+ constructor() {
49
+ super(...arguments);
50
+ this.pollingInterval = 500;
51
+ }
15
52
  get name() {
16
53
  return commands.M365GROUP_ADD;
17
54
  }
18
55
  get description() {
19
56
  return 'Creates a Microsoft 365 Group';
20
57
  }
21
- constructor() {
22
- super();
23
- _EntraM365GroupAddCommand_instances.add(this);
24
- this.pollingInterval = 500;
25
- this.allowedVisibilities = ['Private', 'Public', 'HiddenMembership'];
26
- __classPrivateFieldGet(this, _EntraM365GroupAddCommand_instances, "m", _EntraM365GroupAddCommand_initTelemetry).call(this);
27
- __classPrivateFieldGet(this, _EntraM365GroupAddCommand_instances, "m", _EntraM365GroupAddCommand_initOptions).call(this);
28
- __classPrivateFieldGet(this, _EntraM365GroupAddCommand_instances, "m", _EntraM365GroupAddCommand_initTypes).call(this);
29
- __classPrivateFieldGet(this, _EntraM365GroupAddCommand_instances, "m", _EntraM365GroupAddCommand_initValidators).call(this);
58
+ get schema() {
59
+ return options;
60
+ }
61
+ getRefinedSchema(schema) {
62
+ return schema
63
+ .refine(opts => opts.mailNickname.indexOf(' ') === -1, {
64
+ error: 'The option mailNickname cannot contain spaces.',
65
+ path: ['mailNickname']
66
+ });
30
67
  }
31
68
  async commandAction(logger, args) {
32
69
  let group;
@@ -177,88 +214,6 @@ class EntraM365GroupAddCommand extends GraphCommand {
177
214
  }
178
215
  }
179
216
  }
180
- _EntraM365GroupAddCommand_instances = new WeakSet(), _EntraM365GroupAddCommand_initTelemetry = function _EntraM365GroupAddCommand_initTelemetry() {
181
- this.telemetry.push((args) => {
182
- Object.assign(this.telemetryProperties, {
183
- description: typeof args.options.description !== 'undefined',
184
- owners: typeof args.options.owners !== 'undefined',
185
- members: typeof args.options.members !== 'undefined',
186
- logoPath: typeof args.options.logoPath !== 'undefined',
187
- visibility: typeof args.options.visibility !== 'undefined',
188
- allowMembersToPost: !!args.options.allowMembersToPost,
189
- hideGroupInOutlook: !!args.options.hideGroupInOutlook,
190
- subscribeNewGroupMembers: !!args.options.subscribeNewGroupMembers,
191
- welcomeEmailDisabled: !!args.options.welcomeEmailDisabled
192
- });
193
- });
194
- }, _EntraM365GroupAddCommand_initOptions = function _EntraM365GroupAddCommand_initOptions() {
195
- this.options.unshift({
196
- option: '-n, --displayName <displayName>'
197
- }, {
198
- option: '-m, --mailNickname <mailNickname>'
199
- }, {
200
- option: '-d, --description [description]'
201
- }, {
202
- option: '--owners [owners]'
203
- }, {
204
- option: '--members [members]'
205
- }, {
206
- option: '--visibility [visibility]',
207
- autocomplete: this.allowedVisibilities
208
- }, {
209
- option: '--allowMembersToPost [allowMembersToPost]',
210
- autocomplete: ['true', 'false']
211
- }, {
212
- option: '--hideGroupInOutlook [hideGroupInOutlook]',
213
- autocomplete: ['true', 'false']
214
- }, {
215
- option: '--subscribeNewGroupMembers [subscribeNewGroupMembers]',
216
- autocomplete: ['true', 'false']
217
- }, {
218
- option: '--welcomeEmailDisabled [welcomeEmailDisabled]',
219
- autocomplete: ['true', 'false']
220
- }, {
221
- option: '-l, --logoPath [logoPath]'
222
- });
223
- }, _EntraM365GroupAddCommand_initTypes = function _EntraM365GroupAddCommand_initTypes() {
224
- this.types.string.push('displayName', 'mailNickname', 'description', 'owners', 'members', 'visibility', 'logoPath');
225
- this.types.boolean.push('allowMembersToPost', 'hideGroupInOutlook', 'subscribeNewGroupMembers', 'welcomeEmailDisabled');
226
- }, _EntraM365GroupAddCommand_initValidators = function _EntraM365GroupAddCommand_initValidators() {
227
- this.validators.push(async (args) => {
228
- if (args.options.owners) {
229
- const owners = args.options.owners.split(',').map(o => o.trim());
230
- for (let i = 0; i < owners.length; i++) {
231
- if (owners[i].indexOf('@') < 0) {
232
- return `${owners[i]} is not a valid userPrincipalName`;
233
- }
234
- }
235
- }
236
- if (args.options.members) {
237
- const members = args.options.members.split(',').map(m => m.trim());
238
- for (let i = 0; i < members.length; i++) {
239
- if (members[i].indexOf('@') < 0) {
240
- return `${members[i]} is not a valid userPrincipalName`;
241
- }
242
- }
243
- }
244
- if (args.options.mailNickname.indexOf(' ') !== -1) {
245
- return 'The option mailNickname cannot contain spaces.';
246
- }
247
- if (args.options.logoPath) {
248
- const fullPath = path.resolve(args.options.logoPath);
249
- if (!fs.existsSync(fullPath)) {
250
- return `File '${fullPath}' not found`;
251
- }
252
- if (fs.lstatSync(fullPath).isDirectory()) {
253
- return `Path '${fullPath}' points to a directory`;
254
- }
255
- }
256
- if (args.options.visibility && this.allowedVisibilities.map(x => x.toLowerCase()).indexOf(args.options.visibility.toLowerCase()) === -1) {
257
- return `${args.options.visibility} is not a valid visibility. Allowed values are ${this.allowedVisibilities.join(', ')}`;
258
- }
259
- return true;
260
- });
261
- };
262
217
  EntraM365GroupAddCommand.numRepeat = 15;
263
218
  export default new EntraM365GroupAddCommand();
264
219
  //# sourceMappingURL=m365group-add.js.map
@@ -1,14 +1,14 @@
1
- var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
2
- if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
3
- if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
4
- return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
5
- };
6
- var _EntraM365GroupConversationListCommand_instances, _EntraM365GroupConversationListCommand_initOptions, _EntraM365GroupConversationListCommand_initValidators, _EntraM365GroupConversationListCommand_initOptionSets, _EntraM365GroupConversationListCommand_initTypes;
1
+ import { z } from 'zod';
2
+ import { globalOptionsZod } from '../../../../Command.js';
3
+ import { entraGroup } from '../../../../utils/entraGroup.js';
7
4
  import { odata } from '../../../../utils/odata.js';
8
- import { validation } from '../../../../utils/validation.js';
9
5
  import GraphCommand from '../../../base/GraphCommand.js';
10
6
  import commands from '../../commands.js';
11
- import { entraGroup } from '../../../../utils/entraGroup.js';
7
+ export const options = z.strictObject({
8
+ ...globalOptionsZod.shape,
9
+ groupId: z.uuid().optional().alias('i'),
10
+ groupName: z.string().optional().alias('n')
11
+ });
12
12
  class EntraM365GroupConversationListCommand extends GraphCommand {
13
13
  get name() {
14
14
  return commands.M365GROUP_CONVERSATION_LIST;
@@ -19,13 +19,18 @@ class EntraM365GroupConversationListCommand extends GraphCommand {
19
19
  defaultProperties() {
20
20
  return ['topic', 'lastDeliveredDateTime', 'id'];
21
21
  }
22
- constructor() {
23
- super();
24
- _EntraM365GroupConversationListCommand_instances.add(this);
25
- __classPrivateFieldGet(this, _EntraM365GroupConversationListCommand_instances, "m", _EntraM365GroupConversationListCommand_initOptions).call(this);
26
- __classPrivateFieldGet(this, _EntraM365GroupConversationListCommand_instances, "m", _EntraM365GroupConversationListCommand_initValidators).call(this);
27
- __classPrivateFieldGet(this, _EntraM365GroupConversationListCommand_instances, "m", _EntraM365GroupConversationListCommand_initOptionSets).call(this);
28
- __classPrivateFieldGet(this, _EntraM365GroupConversationListCommand_instances, "m", _EntraM365GroupConversationListCommand_initTypes).call(this);
22
+ get schema() {
23
+ return options;
24
+ }
25
+ getRefinedSchema(schema) {
26
+ return schema
27
+ .refine(opts => [opts.groupId, opts.groupName].filter(o => o !== undefined).length === 1, {
28
+ error: 'Use one of the following options: groupId or groupName.',
29
+ params: {
30
+ customCode: 'optionSet',
31
+ options: ['groupId', 'groupName']
32
+ }
33
+ });
29
34
  }
30
35
  async commandAction(logger, args) {
31
36
  if (this.verbose) {
@@ -48,23 +53,5 @@ class EntraM365GroupConversationListCommand extends GraphCommand {
48
53
  }
49
54
  }
50
55
  }
51
- _EntraM365GroupConversationListCommand_instances = new WeakSet(), _EntraM365GroupConversationListCommand_initOptions = function _EntraM365GroupConversationListCommand_initOptions() {
52
- this.options.unshift({
53
- option: '-i, --groupId [groupId]'
54
- }, {
55
- option: '-n, --groupName [groupName]'
56
- });
57
- }, _EntraM365GroupConversationListCommand_initValidators = function _EntraM365GroupConversationListCommand_initValidators() {
58
- this.validators.push(async (args) => {
59
- if (args.options.groupId && !validation.isValidGuid(args.options.groupId)) {
60
- return `${args.options.groupId} is not a valid GUID`;
61
- }
62
- return true;
63
- });
64
- }, _EntraM365GroupConversationListCommand_initOptionSets = function _EntraM365GroupConversationListCommand_initOptionSets() {
65
- this.optionSets.push({ options: ['groupId', 'groupName'] });
66
- }, _EntraM365GroupConversationListCommand_initTypes = function _EntraM365GroupConversationListCommand_initTypes() {
67
- this.types.string.push('groupId', 'groupName');
68
- };
69
56
  export default new EntraM365GroupConversationListCommand();
70
57
  //# sourceMappingURL=m365group-conversation-list.js.map
@@ -1,15 +1,16 @@
1
- var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
2
- if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
3
- if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
4
- return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
5
- };
6
- var _EntraM365GroupConversationPostListCommand_instances, _EntraM365GroupConversationPostListCommand_initTelemetry, _EntraM365GroupConversationPostListCommand_initOptions, _EntraM365GroupConversationPostListCommand_initValidators, _EntraM365GroupConversationPostListCommand_initOptionSets;
1
+ import { z } from 'zod';
2
+ import { globalOptionsZod } from '../../../../Command.js';
7
3
  import { entraGroup } from '../../../../utils/entraGroup.js';
8
4
  import { formatting } from '../../../../utils/formatting.js';
9
5
  import { odata } from '../../../../utils/odata.js';
10
- import { validation } from '../../../../utils/validation.js';
11
6
  import GraphCommand from '../../../base/GraphCommand.js';
12
7
  import commands from '../../commands.js';
8
+ export const options = z.strictObject({
9
+ ...globalOptionsZod.shape,
10
+ groupId: z.uuid().optional().alias('i'),
11
+ groupName: z.string().optional().alias('d'),
12
+ threadId: z.string().alias('t')
13
+ });
13
14
  class EntraM365GroupConversationPostListCommand extends GraphCommand {
14
15
  get name() {
15
16
  return commands.M365GROUP_CONVERSATION_POST_LIST;
@@ -17,13 +18,18 @@ class EntraM365GroupConversationPostListCommand extends GraphCommand {
17
18
  get description() {
18
19
  return 'Lists conversation posts of a Microsoft 365 group';
19
20
  }
20
- constructor() {
21
- super();
22
- _EntraM365GroupConversationPostListCommand_instances.add(this);
23
- __classPrivateFieldGet(this, _EntraM365GroupConversationPostListCommand_instances, "m", _EntraM365GroupConversationPostListCommand_initTelemetry).call(this);
24
- __classPrivateFieldGet(this, _EntraM365GroupConversationPostListCommand_instances, "m", _EntraM365GroupConversationPostListCommand_initOptions).call(this);
25
- __classPrivateFieldGet(this, _EntraM365GroupConversationPostListCommand_instances, "m", _EntraM365GroupConversationPostListCommand_initValidators).call(this);
26
- __classPrivateFieldGet(this, _EntraM365GroupConversationPostListCommand_instances, "m", _EntraM365GroupConversationPostListCommand_initOptionSets).call(this);
21
+ get schema() {
22
+ return options;
23
+ }
24
+ getRefinedSchema(schema) {
25
+ return schema
26
+ .refine(opts => [opts.groupId, opts.groupName].filter(o => o !== undefined).length === 1, {
27
+ error: 'Use one of the following options: groupId or groupName.',
28
+ params: {
29
+ customCode: 'optionSet',
30
+ options: ['groupId', 'groupName']
31
+ }
32
+ });
27
33
  }
28
34
  defaultProperties() {
29
35
  return ['receivedDateTime', 'id'];
@@ -50,30 +56,5 @@ class EntraM365GroupConversationPostListCommand extends GraphCommand {
50
56
  return group.id;
51
57
  }
52
58
  }
53
- _EntraM365GroupConversationPostListCommand_instances = new WeakSet(), _EntraM365GroupConversationPostListCommand_initTelemetry = function _EntraM365GroupConversationPostListCommand_initTelemetry() {
54
- this.telemetry.push((args) => {
55
- Object.assign(this.telemetryProperties, {
56
- groupId: typeof args.options.groupId !== 'undefined',
57
- groupName: typeof args.options.groupName !== 'undefined'
58
- });
59
- });
60
- }, _EntraM365GroupConversationPostListCommand_initOptions = function _EntraM365GroupConversationPostListCommand_initOptions() {
61
- this.options.unshift({
62
- option: '-i, --groupId [groupId]'
63
- }, {
64
- option: '-d, --groupName [groupName]'
65
- }, {
66
- option: '-t, --threadId <threadId>'
67
- });
68
- }, _EntraM365GroupConversationPostListCommand_initValidators = function _EntraM365GroupConversationPostListCommand_initValidators() {
69
- this.validators.push(async (args) => {
70
- if (args.options.groupId && !validation.isValidGuid(args.options.groupId)) {
71
- return `${args.options.groupId} is not a valid GUID`;
72
- }
73
- return true;
74
- });
75
- }, _EntraM365GroupConversationPostListCommand_initOptionSets = function _EntraM365GroupConversationPostListCommand_initOptionSets() {
76
- this.optionSets.push({ options: ['groupId', 'groupName'] });
77
- };
78
59
  export default new EntraM365GroupConversationPostListCommand();
79
60
  //# sourceMappingURL=m365group-conversation-post-list.js.map