@pnp/cli-microsoft365 7.5.0-beta.494c631 → 7.5.0-beta.940b241

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 (204) hide show
  1. package/.devcontainer/Dockerfile +2 -2
  2. package/.eslintrc.cjs +6 -2
  3. package/.mocharc.json +3 -5
  4. package/Dockerfile +2 -5
  5. package/README.md +2 -2
  6. package/allCommands.json +1 -1
  7. package/allCommandsFull.json +1 -1
  8. package/dist/Command.js +1 -1
  9. package/dist/m365/app/commands/app-get.js +2 -2
  10. package/dist/m365/base/AppCommand.js +2 -2
  11. package/dist/m365/base/{YammerCommand.js → VivaEngageCommand.js} +2 -2
  12. package/dist/m365/cli/commands/cli-consent.js +5 -3
  13. package/dist/m365/entra/aadCommands.js +3 -0
  14. package/dist/m365/entra/commands/administrativeunit/administrativeunit-get.js +2 -2
  15. package/dist/m365/entra/commands/administrativeunit/administrativeunit-member-add.js +8 -8
  16. package/dist/m365/entra/commands/administrativeunit/administrativeunit-member-get.js +2 -2
  17. package/dist/m365/entra/commands/administrativeunit/administrativeunit-member-list.js +2 -2
  18. package/dist/m365/entra/commands/administrativeunit/administrativeunit-member-remove.js +153 -0
  19. package/dist/m365/entra/commands/administrativeunit/administrativeunit-remove.js +2 -2
  20. package/dist/m365/entra/commands/administrativeunit/administrativeunit-roleassignment-add.js +4 -4
  21. package/dist/m365/entra/commands/app/app-add.js +1 -1
  22. package/dist/m365/entra/commands/app/app-get.js +1 -1
  23. package/dist/m365/entra/commands/app/app-list.js +1 -1
  24. package/dist/m365/entra/commands/app/app-permission-add.js +4 -8
  25. package/dist/m365/entra/commands/app/app-permission-list.js +182 -0
  26. package/dist/m365/entra/commands/app/app-remove.js +1 -1
  27. package/dist/m365/entra/commands/app/app-role-add.js +1 -1
  28. package/dist/m365/entra/commands/app/app-role-list.js +1 -1
  29. package/dist/m365/entra/commands/app/app-role-remove.js +1 -1
  30. package/dist/m365/entra/commands/app/app-set.js +1 -1
  31. package/dist/m365/entra/commands/{sp/sp-add.js → enterpriseapp/enterpriseapp-add.js} +18 -18
  32. package/dist/m365/entra/commands/{sp/sp-get.js → enterpriseapp/enterpriseapp-get.js} +19 -19
  33. package/dist/m365/entra/commands/{sp/sp-list.js → enterpriseapp/enterpriseapp-list.js} +13 -13
  34. package/dist/m365/entra/commands/group/group-add.js +224 -0
  35. package/dist/m365/entra/commands/group/group-get.js +3 -3
  36. package/dist/m365/entra/commands/group/group-remove.js +2 -2
  37. package/dist/m365/entra/commands/group/group-user-add.js +145 -0
  38. package/dist/m365/entra/commands/group/group-user-list.js +2 -2
  39. package/dist/m365/entra/commands/m365group/m365group-conversation-list.js +2 -2
  40. package/dist/m365/entra/commands/m365group/m365group-conversation-post-list.js +3 -3
  41. package/dist/m365/entra/commands/m365group/m365group-get.js +3 -3
  42. package/dist/m365/entra/commands/m365group/m365group-remove.js +2 -2
  43. package/dist/m365/entra/commands/m365group/m365group-renew.js +2 -2
  44. package/dist/m365/entra/commands/m365group/m365group-report-activitygroupcounts.js +1 -1
  45. package/dist/m365/entra/commands/m365group/m365group-set.js +2 -2
  46. package/dist/m365/entra/commands/m365group/m365group-teamify.js +2 -2
  47. package/dist/m365/entra/commands/m365group/m365group-user-add.js +2 -2
  48. package/dist/m365/entra/commands/m365group/m365group-user-list.js +3 -3
  49. package/dist/m365/entra/commands/m365group/m365group-user-remove.js +2 -2
  50. package/dist/m365/entra/commands/m365group/m365group-user-set.js +2 -2
  51. package/dist/m365/entra/commands/user/user-get.js +38 -38
  52. package/dist/m365/entra/commands/user/user-registrationdetails-list.js +224 -0
  53. package/dist/m365/entra/commands.js +17 -0
  54. package/dist/m365/external/commands/connection/connection-doctor.js +2 -1
  55. package/dist/m365/file/commands/file-copy.js +151 -0
  56. package/dist/m365/file/commands.js +1 -0
  57. package/dist/m365/flow/commands/owner/owner-ensure.js +4 -4
  58. package/dist/m365/flow/commands/owner/owner-remove.js +4 -4
  59. package/dist/m365/onenote/commands/notebook/notebook-list.js +2 -2
  60. package/dist/m365/onenote/commands/page/page-list.js +2 -2
  61. package/dist/m365/pa/commands/app/app-owner-set.js +2 -2
  62. package/dist/m365/pa/commands/app/app-permission-ensure.js +4 -4
  63. package/dist/m365/pa/commands/app/app-permission-remove.js +4 -4
  64. package/dist/m365/planner/commands/bucket/bucket-add.js +2 -2
  65. package/dist/m365/planner/commands/bucket/bucket-get.js +2 -2
  66. package/dist/m365/planner/commands/bucket/bucket-list.js +2 -2
  67. package/dist/m365/planner/commands/bucket/bucket-remove.js +2 -2
  68. package/dist/m365/planner/commands/bucket/bucket-set.js +2 -2
  69. package/dist/m365/planner/commands/plan/plan-add.js +2 -2
  70. package/dist/m365/planner/commands/plan/plan-get.js +2 -2
  71. package/dist/m365/planner/commands/plan/plan-list.js +2 -2
  72. package/dist/m365/planner/commands/plan/plan-remove.js +2 -2
  73. package/dist/m365/planner/commands/plan/plan-set.js +2 -2
  74. package/dist/m365/planner/commands/roster/roster-member-add.js +2 -2
  75. package/dist/m365/planner/commands/roster/roster-member-get.js +2 -2
  76. package/dist/m365/planner/commands/roster/roster-member-remove.js +2 -2
  77. package/dist/m365/planner/commands/task/task-add.js +2 -2
  78. package/dist/m365/planner/commands/task/task-get.js +2 -2
  79. package/dist/m365/planner/commands/task/task-list.js +2 -2
  80. package/dist/m365/planner/commands/task/task-remove.js +2 -2
  81. package/dist/m365/planner/commands/task/task-set.js +2 -2
  82. package/dist/m365/spfx/commands/project/DeployWorkflow.js +4 -3
  83. package/dist/m365/spfx/commands/project/project-github-workflow-add.js +1 -1
  84. package/dist/m365/spo/commands/group/group-member-add.js +4 -4
  85. package/dist/m365/spo/commands/group/group-member-remove.js +2 -2
  86. package/dist/m365/spo/commands/group/group-set.js +2 -2
  87. package/dist/m365/spo/commands/site/site-remove.js +2 -2
  88. package/dist/m365/spo/commands/site/site-set.js +2 -2
  89. package/dist/m365/spo/commands/user/user-ensure.js +2 -2
  90. package/dist/m365/teams/commands/app/app-install.js +2 -2
  91. package/dist/m365/teams/commands/channel/channel-get.js +2 -2
  92. package/dist/m365/teams/commands/channel/channel-list.js +2 -2
  93. package/dist/m365/teams/commands/channel/channel-member-add.js +2 -2
  94. package/dist/m365/teams/commands/channel/channel-member-list.js +2 -2
  95. package/dist/m365/teams/commands/channel/channel-member-remove.js +2 -2
  96. package/dist/m365/teams/commands/channel/channel-member-set.js +2 -2
  97. package/dist/m365/teams/commands/channel/channel-remove.js +2 -2
  98. package/dist/m365/teams/commands/channel/channel-set.js +2 -2
  99. package/dist/m365/teams/commands/meeting/meeting-add.js +2 -2
  100. package/dist/m365/teams/commands/meeting/meeting-attendancereport-list.js +2 -2
  101. package/dist/m365/teams/commands/meeting/meeting-get.js +3 -3
  102. package/dist/m365/teams/commands/meeting/meeting-list.js +2 -2
  103. package/dist/m365/teams/commands/meeting/meeting-transcript-list.js +2 -2
  104. package/dist/m365/teams/commands/tab/tab-get.js +2 -2
  105. package/dist/m365/teams/commands/team/team-add.js +6 -6
  106. package/dist/m365/teams/commands/team/team-archive.js +2 -2
  107. package/dist/m365/teams/commands/team/team-get.js +2 -2
  108. package/dist/m365/teams/commands/team/team-remove.js +2 -2
  109. package/dist/m365/teams/commands/team/team-unarchive.js +2 -2
  110. package/dist/m365/{yammer/commands/group/group-list.js → viva/commands/engage/engage-group-list.js} +19 -14
  111. package/dist/m365/{yammer/commands/group/group-user-add.js → viva/commands/engage/engage-group-user-add.js} +19 -14
  112. package/dist/m365/{yammer/commands/group/group-user-remove.js → viva/commands/engage/engage-group-user-remove.js} +19 -14
  113. package/dist/m365/{yammer/commands/message/message-add.js → viva/commands/engage/engage-message-add.js} +19 -14
  114. package/dist/m365/{yammer/commands/message/message-get.js → viva/commands/engage/engage-message-get.js} +17 -12
  115. package/dist/m365/{yammer/commands/message/message-like-set.js → viva/commands/engage/engage-message-like-set.js} +21 -16
  116. package/dist/m365/{yammer/commands/message/message-list.js → viva/commands/engage/engage-message-list.js} +21 -16
  117. package/dist/m365/{yammer/commands/message/message-remove.js → viva/commands/engage/engage-message-remove.js} +20 -15
  118. package/dist/m365/{yammer/commands/network/network-list.js → viva/commands/engage/engage-network-list.js} +16 -11
  119. package/dist/m365/viva/commands/engage/engage-report-activitycounts.js +23 -0
  120. package/dist/m365/viva/commands/engage/engage-report-activityusercounts.js +23 -0
  121. package/dist/m365/viva/commands/engage/engage-report-activityuserdetail.js +23 -0
  122. package/dist/m365/viva/commands/engage/engage-report-deviceusagedistributionusercounts.js +23 -0
  123. package/dist/m365/viva/commands/engage/engage-report-deviceusageusercounts.js +23 -0
  124. package/dist/m365/viva/commands/engage/engage-report-deviceusageuserdetail.js +23 -0
  125. package/dist/m365/viva/commands/engage/engage-report-groupsactivitycounts.js +23 -0
  126. package/dist/m365/viva/commands/engage/engage-report-groupsactivitydetail.js +23 -0
  127. package/dist/m365/viva/commands/engage/engage-report-groupsactivitygroupcounts.js +23 -0
  128. package/dist/m365/{yammer/commands/yammer-search.js → viva/commands/engage/engage-search.js} +23 -18
  129. package/dist/m365/{yammer/commands/user/user-get.js → viva/commands/engage/engage-user-get.js} +18 -13
  130. package/dist/m365/{yammer/commands/user/user-list.js → viva/commands/engage/engage-user-list.js} +18 -13
  131. package/dist/m365/{yammer/commands.js → viva/commands/engage/yammerCommands.js} +1 -1
  132. package/dist/m365/viva/commands.js +22 -1
  133. package/dist/utils/{aadAdministrativeUnit.js → entraAdministrativeUnit.js} +2 -2
  134. package/dist/utils/{aadDevice.js → entraDevice.js} +2 -2
  135. package/dist/utils/{aadGroup.js → entraGroup.js} +2 -2
  136. package/dist/utils/{aadUser.js → entraUser.js} +38 -2
  137. package/dist/utils/spo.js +24 -2
  138. package/dist/utils/urlUtil.js +31 -0
  139. package/dist/utils/validation.js +8 -0
  140. package/docs/docs/cmd/cli/cli-consent.mdx +9 -9
  141. package/docs/docs/cmd/entra/administrativeunit/administrativeunit-member-add.mdx +5 -3
  142. package/docs/docs/cmd/entra/administrativeunit/administrativeunit-member-remove.mdx +107 -0
  143. package/docs/docs/cmd/entra/app/app-add.mdx +2 -1
  144. package/docs/docs/cmd/entra/app/app-get.mdx +1 -0
  145. package/docs/docs/cmd/entra/app/app-list.mdx +1 -0
  146. package/docs/docs/cmd/entra/app/app-permission-add.mdx +3 -2
  147. package/docs/docs/cmd/entra/app/app-permission-list.mdx +105 -0
  148. package/docs/docs/cmd/entra/app/app-remove.mdx +1 -0
  149. package/docs/docs/cmd/entra/app/app-role-add.mdx +1 -0
  150. package/docs/docs/cmd/entra/app/app-role-list.mdx +1 -0
  151. package/docs/docs/cmd/entra/app/app-role-remove.mdx +1 -0
  152. package/docs/docs/cmd/entra/app/app-set.mdx +1 -0
  153. package/docs/docs/cmd/entra/{sp/sp-add.mdx → enterpriseapp/enterpriseapp-add.mdx} +16 -15
  154. package/docs/docs/cmd/entra/{sp/sp-get.mdx → enterpriseapp/enterpriseapp-get.mdx} +15 -14
  155. package/docs/docs/cmd/entra/{sp/sp-list.mdx → enterpriseapp/enterpriseapp-list.mdx} +22 -21
  156. package/docs/docs/cmd/entra/group/group-add.mdx +231 -0
  157. package/docs/docs/cmd/entra/group/group-user-add.mdx +62 -0
  158. package/docs/docs/cmd/entra/m365group/m365group-report-activitygroupcounts.mdx +1 -1
  159. package/docs/docs/cmd/entra/oauth2grant/oauth2grant-add.mdx +3 -3
  160. package/docs/docs/cmd/entra/oauth2grant/oauth2grant-list.mdx +1 -1
  161. package/docs/docs/cmd/entra/user/user-registrationdetails-list.mdx +246 -0
  162. package/docs/docs/cmd/external/item/item-add.mdx +1 -1
  163. package/docs/docs/cmd/file/convert/convert-pdf.mdx +4 -0
  164. package/docs/docs/cmd/file/file-add.mdx +4 -0
  165. package/docs/docs/cmd/file/file-copy.mdx +68 -0
  166. package/docs/docs/cmd/file/file-list.mdx +100 -0
  167. package/docs/docs/cmd/setup.mdx +4 -0
  168. package/docs/docs/cmd/spo/list/list-webhook-set.mdx +1 -1
  169. package/docs/docs/cmd/spo/listitem/listitem-list.mdx +1 -1
  170. package/docs/docs/cmd/spo/theme/theme-set.mdx +14 -2
  171. package/docs/docs/cmd/{yammer/group/group-list.mdx → viva/engage/engage-group-list.mdx} +13 -13
  172. package/docs/docs/cmd/{yammer/group/group-user-add.mdx → viva/engage/engage-group-user-add.mdx} +7 -7
  173. package/docs/docs/cmd/{yammer/group/group-user-remove.mdx → viva/engage/engage-group-user-remove.mdx} +10 -10
  174. package/docs/docs/cmd/{yammer/message/message-add.mdx → viva/engage/engage-message-add.mdx} +12 -13
  175. package/docs/docs/cmd/{yammer/message/message-get.mdx → viva/engage/engage-message-get.mdx} +10 -10
  176. package/docs/docs/cmd/{yammer/message/message-like-set.mdx → viva/engage/engage-message-like-set.mdx} +10 -10
  177. package/docs/docs/cmd/{yammer/message/message-list.mdx → viva/engage/engage-message-list.mdx} +21 -21
  178. package/docs/docs/cmd/{yammer/message/message-remove.mdx → viva/engage/engage-message-remove.mdx} +10 -10
  179. package/docs/docs/cmd/{yammer/network/network-list.mdx → viva/engage/engage-network-list.mdx} +6 -6
  180. package/docs/docs/cmd/{yammer/report/report-activitycounts.mdx → viva/engage/engage-report-activitycounts.mdx} +9 -9
  181. package/docs/docs/cmd/{yammer/report/report-activityusercounts.mdx → viva/engage/engage-report-activityusercounts.mdx} +9 -9
  182. package/docs/docs/cmd/{yammer/report/report-activityuserdetail.mdx → viva/engage/engage-report-activityuserdetail.mdx} +11 -12
  183. package/docs/docs/cmd/{yammer/report/report-deviceusagedistributionusercounts.mdx → viva/engage/engage-report-deviceusagedistributionusercounts.mdx} +5 -5
  184. package/docs/docs/cmd/{yammer/report/report-deviceusageusercounts.mdx → viva/engage/engage-report-deviceusageusercounts.mdx} +5 -5
  185. package/docs/docs/cmd/{yammer/report/report-deviceusageuserdetail.mdx → viva/engage/engage-report-deviceusageuserdetail.mdx} +11 -11
  186. package/docs/docs/cmd/{yammer/report/report-groupsactivitycounts.mdx → viva/engage/engage-report-groupsactivitycounts.mdx} +9 -9
  187. package/docs/docs/cmd/{yammer/report/report-groupsactivitydetail.mdx → viva/engage/engage-report-groupsactivitydetail.mdx} +11 -11
  188. package/docs/docs/cmd/{yammer/report/report-groupsactivitygroupcounts.mdx → viva/engage/engage-report-groupsactivitygroupcounts.mdx} +5 -5
  189. package/docs/docs/cmd/{yammer/yammer-search.mdx → viva/engage/engage-search.mdx} +10 -10
  190. package/docs/docs/cmd/{yammer/user/user-get.mdx → viva/engage/engage-user-get.mdx} +8 -8
  191. package/docs/docs/cmd/{yammer/user/user-list.mdx → viva/engage/engage-user-list.mdx} +11 -11
  192. package/npm-shrinkwrap.json +228 -166
  193. package/package.json +20 -19
  194. package/dist/m365/base/AzmgmtCommand.js +0 -18
  195. package/dist/m365/base/AzmgmtItemsListCommand.js +0 -41
  196. package/dist/m365/yammer/commands/report/report-activitycounts.js +0 -15
  197. package/dist/m365/yammer/commands/report/report-activityusercounts.js +0 -15
  198. package/dist/m365/yammer/commands/report/report-activityuserdetail.js +0 -15
  199. package/dist/m365/yammer/commands/report/report-deviceusagedistributionusercounts.js +0 -15
  200. package/dist/m365/yammer/commands/report/report-deviceusageusercounts.js +0 -15
  201. package/dist/m365/yammer/commands/report/report-deviceusageuserdetail.js +0 -15
  202. package/dist/m365/yammer/commands/report/report-groupsactivitycounts.js +0 -15
  203. package/dist/m365/yammer/commands/report/report-groupsactivitydetail.js +0 -15
  204. package/dist/m365/yammer/commands/report/report-groupsactivitygroupcounts.js +0 -15
@@ -0,0 +1,23 @@
1
+ import PeriodBasedReport from '../../../base/PeriodBasedReport.js';
2
+ import commands from '../../commands.js';
3
+ import yammerCommands from './yammerCommands.js';
4
+ class VivaEngageReportDeviceUsageUserCountsCommand extends PeriodBasedReport {
5
+ get name() {
6
+ return commands.ENGAGE_REPORT_DEVICEUSAGEUSERCOUNTS;
7
+ }
8
+ alias() {
9
+ return [yammerCommands.REPORT_DEVICEUSAGEUSERCOUNTS];
10
+ }
11
+ get usageEndpoint() {
12
+ return 'getYammerDeviceUsageUserCounts';
13
+ }
14
+ get description() {
15
+ return 'Gets the number of daily users by device type';
16
+ }
17
+ async commandAction(logger, args) {
18
+ await this.showDeprecationWarning(logger, this.alias()[0], this.name);
19
+ await super.commandAction(logger, args);
20
+ }
21
+ }
22
+ export default new VivaEngageReportDeviceUsageUserCountsCommand();
23
+ //# sourceMappingURL=engage-report-deviceusageusercounts.js.map
@@ -0,0 +1,23 @@
1
+ import DateAndPeriodBasedReport from '../../../base/DateAndPeriodBasedReport.js';
2
+ import commands from '../../commands.js';
3
+ import yammerCommands from './yammerCommands.js';
4
+ class VivaEngageReportDeviceUsageUserDetailCommand extends DateAndPeriodBasedReport {
5
+ get name() {
6
+ return commands.ENGAGE_REPORT_DEVICEUSAGEUSERDETAIL;
7
+ }
8
+ alias() {
9
+ return [yammerCommands.REPORT_DEVICEUSAGEUSERDETAIL];
10
+ }
11
+ get usageEndpoint() {
12
+ return 'getYammerDeviceUsageUserDetail';
13
+ }
14
+ get description() {
15
+ return 'Gets details about Viva Engage device usage by user';
16
+ }
17
+ async commandAction(logger, args) {
18
+ await this.showDeprecationWarning(logger, this.alias()[0], this.name);
19
+ await super.commandAction(logger, args);
20
+ }
21
+ }
22
+ export default new VivaEngageReportDeviceUsageUserDetailCommand();
23
+ //# sourceMappingURL=engage-report-deviceusageuserdetail.js.map
@@ -0,0 +1,23 @@
1
+ import PeriodBasedReport from '../../../base/PeriodBasedReport.js';
2
+ import commands from '../../commands.js';
3
+ import yammerCommands from './yammerCommands.js';
4
+ class VivaEngageReportGroupsActivityCountsCommand extends PeriodBasedReport {
5
+ get name() {
6
+ return commands.ENGAGE_REPORT_GROUPSACTIVITYCOUNTS;
7
+ }
8
+ alias() {
9
+ return [yammerCommands.REPORT_GROUPSACTIVITYCOUNTS];
10
+ }
11
+ get usageEndpoint() {
12
+ return 'getYammerGroupsActivityCounts';
13
+ }
14
+ get description() {
15
+ return 'Gets the number of Viva Engage messages posted, read, and liked in groups';
16
+ }
17
+ async commandAction(logger, args) {
18
+ await this.showDeprecationWarning(logger, this.alias()[0], this.name);
19
+ await super.commandAction(logger, args);
20
+ }
21
+ }
22
+ export default new VivaEngageReportGroupsActivityCountsCommand();
23
+ //# sourceMappingURL=engage-report-groupsactivitycounts.js.map
@@ -0,0 +1,23 @@
1
+ import DateAndPeriodBasedReport from '../../../base/DateAndPeriodBasedReport.js';
2
+ import commands from '../../commands.js';
3
+ import yammerCommands from './yammerCommands.js';
4
+ class VivaEngageReportGroupsActivityDetailCommand extends DateAndPeriodBasedReport {
5
+ get name() {
6
+ return commands.ENGAGE_REPORT_GROUPSACTIVITYDETAIL;
7
+ }
8
+ alias() {
9
+ return [yammerCommands.REPORT_GROUPSACTIVITYDETAIL];
10
+ }
11
+ get usageEndpoint() {
12
+ return 'getYammerGroupsActivityDetail';
13
+ }
14
+ get description() {
15
+ return 'Gets details about Viva Engage groups activity by group';
16
+ }
17
+ async commandAction(logger, args) {
18
+ await this.showDeprecationWarning(logger, this.alias()[0], this.name);
19
+ await super.commandAction(logger, args);
20
+ }
21
+ }
22
+ export default new VivaEngageReportGroupsActivityDetailCommand();
23
+ //# sourceMappingURL=engage-report-groupsactivitydetail.js.map
@@ -0,0 +1,23 @@
1
+ import PeriodBasedReport from '../../../base/PeriodBasedReport.js';
2
+ import commands from '../../commands.js';
3
+ import yammerCommands from './yammerCommands.js';
4
+ class VivaEngageReportGroupsActivityGroupCountsCommand extends PeriodBasedReport {
5
+ get name() {
6
+ return commands.ENGAGE_REPORT_GROUPSACTIVITYGROUPCOUNTS;
7
+ }
8
+ alias() {
9
+ return [yammerCommands.REPORT_GROUPSACTIVITYGROUPCOUNTS];
10
+ }
11
+ get usageEndpoint() {
12
+ return 'getYammerGroupsActivityGroupCounts';
13
+ }
14
+ get description() {
15
+ return 'Gets the total number of groups that existed and how many included group conversation activity';
16
+ }
17
+ async commandAction(logger, args) {
18
+ await this.showDeprecationWarning(logger, this.alias()[0], this.name);
19
+ await super.commandAction(logger, args);
20
+ }
21
+ }
22
+ export default new VivaEngageReportGroupsActivityGroupCountsCommand();
23
+ //# sourceMappingURL=engage-report-groupsactivitygroupcounts.js.map
@@ -3,22 +3,26 @@ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (
3
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
4
  return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
5
5
  };
6
- var _YammerSearchCommand_instances, _a, _YammerSearchCommand_initTelemetry, _YammerSearchCommand_initOptions, _YammerSearchCommand_initValidators;
7
- import { cli } from '../../../cli/cli.js';
8
- import request from '../../../request.js';
9
- import { formatting } from '../../../utils/formatting.js';
10
- import YammerCommand from '../../base/YammerCommand.js';
11
- import commands from '../commands.js';
12
- class YammerSearchCommand extends YammerCommand {
6
+ var _VivaEngageSearchCommand_instances, _a, _VivaEngageSearchCommand_initTelemetry, _VivaEngageSearchCommand_initOptions, _VivaEngageSearchCommand_initValidators;
7
+ import { cli } from '../../../../cli/cli.js';
8
+ import request from '../../../../request.js';
9
+ import { formatting } from '../../../../utils/formatting.js';
10
+ import VivaEngageCommand from '../../../base/VivaEngageCommand.js';
11
+ import commands from '../../commands.js';
12
+ import yammerCommands from './yammerCommands.js';
13
+ class VivaEngageSearchCommand extends VivaEngageCommand {
13
14
  get name() {
14
- return commands.SEARCH;
15
+ return commands.ENGAGE_SEARCH;
15
16
  }
16
17
  get description() {
17
18
  return 'Returns a list of messages, users, topics and groups that match the specified query.';
18
19
  }
20
+ alias() {
21
+ return [yammerCommands.SEARCH];
22
+ }
19
23
  constructor() {
20
24
  super();
21
- _YammerSearchCommand_instances.add(this);
25
+ _VivaEngageSearchCommand_instances.add(this);
22
26
  this.summary = {
23
27
  messages: 0,
24
28
  groups: 0,
@@ -29,9 +33,9 @@ class YammerSearchCommand extends YammerCommand {
29
33
  this.groups = [];
30
34
  this.topics = [];
31
35
  this.users = [];
32
- __classPrivateFieldGet(this, _YammerSearchCommand_instances, "m", _YammerSearchCommand_initTelemetry).call(this);
33
- __classPrivateFieldGet(this, _YammerSearchCommand_instances, "m", _YammerSearchCommand_initOptions).call(this);
34
- __classPrivateFieldGet(this, _YammerSearchCommand_instances, "m", _YammerSearchCommand_initValidators).call(this);
36
+ __classPrivateFieldGet(this, _VivaEngageSearchCommand_instances, "m", _VivaEngageSearchCommand_initTelemetry).call(this);
37
+ __classPrivateFieldGet(this, _VivaEngageSearchCommand_instances, "m", _VivaEngageSearchCommand_initOptions).call(this);
38
+ __classPrivateFieldGet(this, _VivaEngageSearchCommand_instances, "m", _VivaEngageSearchCommand_initValidators).call(this);
35
39
  }
36
40
  async getAllItems(logger, args, page) {
37
41
  const endpoint = `${this.resource}/v1/search.json?search=${formatting.encodeQueryParameter(args.options.queryText)}&page=${page}`;
@@ -89,6 +93,7 @@ class YammerSearchCommand extends YammerCommand {
89
93
  }
90
94
  }
91
95
  async commandAction(logger, args) {
96
+ await this.showDeprecationWarning(logger, this.alias()[0], this.name);
92
97
  this.summary = {
93
98
  messages: 0,
94
99
  groups: 0,
@@ -169,14 +174,14 @@ class YammerSearchCommand extends YammerCommand {
169
174
  }
170
175
  }
171
176
  }
172
- _a = YammerSearchCommand, _YammerSearchCommand_instances = new WeakSet(), _YammerSearchCommand_initTelemetry = function _YammerSearchCommand_initTelemetry() {
177
+ _a = VivaEngageSearchCommand, _VivaEngageSearchCommand_instances = new WeakSet(), _VivaEngageSearchCommand_initTelemetry = function _VivaEngageSearchCommand_initTelemetry() {
173
178
  this.telemetry.push((args) => {
174
179
  Object.assign(this.telemetryProperties, {
175
180
  show: typeof args.options.show !== 'undefined',
176
181
  limit: typeof args.options.limit !== 'undefined'
177
182
  });
178
183
  });
179
- }, _YammerSearchCommand_initOptions = function _YammerSearchCommand_initOptions() {
184
+ }, _VivaEngageSearchCommand_initOptions = function _VivaEngageSearchCommand_initOptions() {
180
185
  this.options.unshift({
181
186
  option: '--queryText <queryText>'
182
187
  }, {
@@ -185,7 +190,7 @@ _a = YammerSearchCommand, _YammerSearchCommand_instances = new WeakSet(), _Yamme
185
190
  }, {
186
191
  option: '--limit [limit]'
187
192
  });
188
- }, _YammerSearchCommand_initValidators = function _YammerSearchCommand_initValidators() {
193
+ }, _VivaEngageSearchCommand_initValidators = function _VivaEngageSearchCommand_initValidators() {
189
194
  this.validators.push(async (args) => {
190
195
  if (args.options.queryText && typeof args.options.queryText !== 'string') {
191
196
  return `${args.options.queryText} is not a string`;
@@ -209,8 +214,8 @@ _a = YammerSearchCommand, _YammerSearchCommand_instances = new WeakSet(), _Yamme
209
214
  return true;
210
215
  });
211
216
  };
212
- YammerSearchCommand.showOptions = [
217
+ VivaEngageSearchCommand.showOptions = [
213
218
  'summary', 'messages', 'users', 'topics', 'groups'
214
219
  ];
215
- export default new YammerSearchCommand();
216
- //# sourceMappingURL=yammer-search.js.map
220
+ export default new VivaEngageSearchCommand();
221
+ //# sourceMappingURL=engage-search.js.map
@@ -3,29 +3,34 @@ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (
3
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
4
  return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
5
5
  };
6
- var _YammerUserGetCommand_instances, _YammerUserGetCommand_initTelemetry, _YammerUserGetCommand_initOptions, _YammerUserGetCommand_initValidators;
6
+ var _VivaEngageUserGetCommand_instances, _VivaEngageUserGetCommand_initTelemetry, _VivaEngageUserGetCommand_initOptions, _VivaEngageUserGetCommand_initValidators;
7
7
  import request from '../../../../request.js';
8
8
  import { formatting } from '../../../../utils/formatting.js';
9
- import YammerCommand from '../../../base/YammerCommand.js';
9
+ import VivaEngageCommand from '../../../base/VivaEngageCommand.js';
10
10
  import commands from '../../commands.js';
11
- class YammerUserGetCommand extends YammerCommand {
11
+ import yammerCommands from './yammerCommands.js';
12
+ class VivaEngageUserGetCommand extends VivaEngageCommand {
12
13
  get name() {
13
- return commands.USER_GET;
14
+ return commands.ENGAGE_USER_GET;
14
15
  }
15
16
  get description() {
16
17
  return 'Retrieves the current user or searches for a user by ID or e-mail';
17
18
  }
19
+ alias() {
20
+ return [yammerCommands.USER_GET];
21
+ }
18
22
  defaultProperties() {
19
23
  return ['id', 'full_name', 'email', 'job_title', 'state', 'url'];
20
24
  }
21
25
  constructor() {
22
26
  super();
23
- _YammerUserGetCommand_instances.add(this);
24
- __classPrivateFieldGet(this, _YammerUserGetCommand_instances, "m", _YammerUserGetCommand_initTelemetry).call(this);
25
- __classPrivateFieldGet(this, _YammerUserGetCommand_instances, "m", _YammerUserGetCommand_initOptions).call(this);
26
- __classPrivateFieldGet(this, _YammerUserGetCommand_instances, "m", _YammerUserGetCommand_initValidators).call(this);
27
+ _VivaEngageUserGetCommand_instances.add(this);
28
+ __classPrivateFieldGet(this, _VivaEngageUserGetCommand_instances, "m", _VivaEngageUserGetCommand_initTelemetry).call(this);
29
+ __classPrivateFieldGet(this, _VivaEngageUserGetCommand_instances, "m", _VivaEngageUserGetCommand_initOptions).call(this);
30
+ __classPrivateFieldGet(this, _VivaEngageUserGetCommand_instances, "m", _VivaEngageUserGetCommand_initValidators).call(this);
27
31
  }
28
32
  async commandAction(logger, args) {
33
+ await this.showDeprecationWarning(logger, this.alias()[0], this.name);
29
34
  let endPoint = `${this.resource}/v1/users/current.json`;
30
35
  if (args.options.id) {
31
36
  endPoint = `${this.resource}/v1/users/${args.options.id}.json`;
@@ -50,20 +55,20 @@ class YammerUserGetCommand extends YammerCommand {
50
55
  }
51
56
  }
52
57
  }
53
- _YammerUserGetCommand_instances = new WeakSet(), _YammerUserGetCommand_initTelemetry = function _YammerUserGetCommand_initTelemetry() {
58
+ _VivaEngageUserGetCommand_instances = new WeakSet(), _VivaEngageUserGetCommand_initTelemetry = function _VivaEngageUserGetCommand_initTelemetry() {
54
59
  this.telemetry.push((args) => {
55
60
  Object.assign(this.telemetryProperties, {
56
61
  userId: args.options.id !== undefined,
57
62
  email: args.options.email !== undefined
58
63
  });
59
64
  });
60
- }, _YammerUserGetCommand_initOptions = function _YammerUserGetCommand_initOptions() {
65
+ }, _VivaEngageUserGetCommand_initOptions = function _VivaEngageUserGetCommand_initOptions() {
61
66
  this.options.unshift({
62
67
  option: '-i, --id [id]'
63
68
  }, {
64
69
  option: '--email [email]'
65
70
  });
66
- }, _YammerUserGetCommand_initValidators = function _YammerUserGetCommand_initValidators() {
71
+ }, _VivaEngageUserGetCommand_initValidators = function _VivaEngageUserGetCommand_initValidators() {
67
72
  this.validators.push(async (args) => {
68
73
  if (args.options.id !== undefined && args.options.email !== undefined) {
69
74
  return `You are only allowed to search by ID or e-mail but not both`;
@@ -71,5 +76,5 @@ _YammerUserGetCommand_instances = new WeakSet(), _YammerUserGetCommand_initTelem
71
76
  return true;
72
77
  });
73
78
  };
74
- export default new YammerUserGetCommand();
75
- //# sourceMappingURL=user-get.js.map
79
+ export default new VivaEngageUserGetCommand();
80
+ //# sourceMappingURL=engage-user-get.js.map
@@ -3,27 +3,31 @@ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (
3
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
4
  return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
5
5
  };
6
- var _YammerUserListCommand_instances, _YammerUserListCommand_initTelemetry, _YammerUserListCommand_initOptions, _YammerUserListCommand_initValidators;
6
+ var _VivaEngageUserListCommand_instances, _VivaEngageUserListCommand_initTelemetry, _VivaEngageUserListCommand_initOptions, _VivaEngageUserListCommand_initValidators;
7
7
  import request from '../../../../request.js';
8
- import YammerCommand from '../../../base/YammerCommand.js';
8
+ import VivaEngageCommand from '../../../base/VivaEngageCommand.js';
9
9
  import commands from '../../commands.js';
10
- class YammerUserListCommand extends YammerCommand {
10
+ import yammerCommands from './yammerCommands.js';
11
+ class VivaEngageUserListCommand extends VivaEngageCommand {
11
12
  get name() {
12
- return commands.USER_LIST;
13
+ return commands.ENGAGE_USER_LIST;
13
14
  }
14
15
  get description() {
15
16
  return 'Returns users from the current network';
16
17
  }
18
+ alias() {
19
+ return [yammerCommands.USER_LIST];
20
+ }
17
21
  defaultProperties() {
18
22
  return ['id', 'full_name', 'email'];
19
23
  }
20
24
  constructor() {
21
25
  super();
22
- _YammerUserListCommand_instances.add(this);
26
+ _VivaEngageUserListCommand_instances.add(this);
23
27
  this.items = [];
24
- __classPrivateFieldGet(this, _YammerUserListCommand_instances, "m", _YammerUserListCommand_initTelemetry).call(this);
25
- __classPrivateFieldGet(this, _YammerUserListCommand_instances, "m", _YammerUserListCommand_initOptions).call(this);
26
- __classPrivateFieldGet(this, _YammerUserListCommand_instances, "m", _YammerUserListCommand_initValidators).call(this);
28
+ __classPrivateFieldGet(this, _VivaEngageUserListCommand_instances, "m", _VivaEngageUserListCommand_initTelemetry).call(this);
29
+ __classPrivateFieldGet(this, _VivaEngageUserListCommand_instances, "m", _VivaEngageUserListCommand_initOptions).call(this);
30
+ __classPrivateFieldGet(this, _VivaEngageUserListCommand_instances, "m", _VivaEngageUserListCommand_initValidators).call(this);
27
31
  }
28
32
  getAllItems(logger, args, page) {
29
33
  return new Promise((resolve, reject) => {
@@ -88,6 +92,7 @@ class YammerUserListCommand extends YammerCommand {
88
92
  });
89
93
  }
90
94
  async commandAction(logger, args) {
95
+ await this.showDeprecationWarning(logger, this.alias()[0], this.name);
91
96
  this.items = []; // this will reset the items array in interactive mode
92
97
  try {
93
98
  await this.getAllItems(logger, args, 1);
@@ -98,7 +103,7 @@ class YammerUserListCommand extends YammerCommand {
98
103
  }
99
104
  }
100
105
  }
101
- _YammerUserListCommand_instances = new WeakSet(), _YammerUserListCommand_initTelemetry = function _YammerUserListCommand_initTelemetry() {
106
+ _VivaEngageUserListCommand_instances = new WeakSet(), _VivaEngageUserListCommand_initTelemetry = function _VivaEngageUserListCommand_initTelemetry() {
102
107
  this.telemetry.push((args) => {
103
108
  Object.assign(this.telemetryProperties, {
104
109
  letter: args.options.letter !== undefined,
@@ -108,7 +113,7 @@ _YammerUserListCommand_instances = new WeakSet(), _YammerUserListCommand_initTel
108
113
  groupId: args.options.groupId !== undefined
109
114
  });
110
115
  });
111
- }, _YammerUserListCommand_initOptions = function _YammerUserListCommand_initOptions() {
116
+ }, _VivaEngageUserListCommand_initOptions = function _VivaEngageUserListCommand_initOptions() {
112
117
  this.options.unshift({
113
118
  option: '-g, --groupId [groupId]'
114
119
  }, {
@@ -121,7 +126,7 @@ _YammerUserListCommand_instances = new WeakSet(), _YammerUserListCommand_initTel
121
126
  option: '--sortBy [sortBy]',
122
127
  autocomplete: ['messages', 'followers']
123
128
  });
124
- }, _YammerUserListCommand_initValidators = function _YammerUserListCommand_initValidators() {
129
+ }, _VivaEngageUserListCommand_initValidators = function _VivaEngageUserListCommand_initValidators() {
125
130
  this.validators.push(async (args) => {
126
131
  if (args.options.groupId && typeof args.options.groupId !== 'number') {
127
132
  return `${args.options.groupId} is not a number`;
@@ -141,5 +146,5 @@ _YammerUserListCommand_instances = new WeakSet(), _YammerUserListCommand_initTel
141
146
  return true;
142
147
  });
143
148
  };
144
- export default new YammerUserListCommand();
145
- //# sourceMappingURL=user-list.js.map
149
+ export default new VivaEngageUserListCommand();
150
+ //# sourceMappingURL=engage-user-list.js.map
@@ -22,4 +22,4 @@ export default {
22
22
  USER_GET: `${prefix} user get`,
23
23
  USER_LIST: `${prefix} user list`
24
24
  };
25
- //# sourceMappingURL=commands.js.map
25
+ //# sourceMappingURL=yammerCommands.js.map
@@ -1,5 +1,26 @@
1
1
  const prefix = 'viva';
2
2
  export default {
3
- CONNECTIONS_APP_CREATE: `${prefix} connections app create`
3
+ CONNECTIONS_APP_CREATE: `${prefix} connections app create`,
4
+ ENGAGE_GROUP_LIST: `${prefix} engage group list`,
5
+ ENGAGE_GROUP_USER_ADD: `${prefix} engage group user add`,
6
+ ENGAGE_GROUP_USER_REMOVE: `${prefix} engage group user remove`,
7
+ ENGAGE_MESSAGE_ADD: `${prefix} engage message add`,
8
+ ENGAGE_MESSAGE_GET: `${prefix} engage message get`,
9
+ ENGAGE_MESSAGE_LIKE_SET: `${prefix} engage message like set`,
10
+ ENGAGE_MESSAGE_LIST: `${prefix} engage message list`,
11
+ ENGAGE_MESSAGE_REMOVE: `${prefix} engage message remove`,
12
+ ENGAGE_NETWORK_LIST: `${prefix} engage network list`,
13
+ ENGAGE_REPORT_ACTIVITYCOUNTS: `${prefix} engage report activitycounts`,
14
+ ENGAGE_REPORT_ACTIVITYUSERCOUNTS: `${prefix} engage report activityusercounts`,
15
+ ENGAGE_REPORT_ACTIVITYUSERDETAIL: `${prefix} engage report activityuserdetail`,
16
+ ENGAGE_REPORT_DEVICEUSAGEDISTRIBUTIONUSERCOUNTS: `${prefix} engage report deviceusagedistributionusercounts`,
17
+ ENGAGE_REPORT_DEVICEUSAGEUSERCOUNTS: `${prefix} engage report deviceusageusercounts`,
18
+ ENGAGE_REPORT_DEVICEUSAGEUSERDETAIL: `${prefix} engage report deviceusageuserdetail`,
19
+ ENGAGE_REPORT_GROUPSACTIVITYCOUNTS: `${prefix} engage report groupsactivitycounts`,
20
+ ENGAGE_REPORT_GROUPSACTIVITYDETAIL: `${prefix} engage report groupsactivitydetail`,
21
+ ENGAGE_REPORT_GROUPSACTIVITYGROUPCOUNTS: `${prefix} engage report groupsactivitygroupcounts`,
22
+ ENGAGE_SEARCH: `${prefix} engage search`,
23
+ ENGAGE_USER_GET: `${prefix} engage user get`,
24
+ ENGAGE_USER_LIST: `${prefix} engage user list`
4
25
  };
5
26
  //# sourceMappingURL=commands.js.map
@@ -1,7 +1,7 @@
1
1
  import { odata } from './odata.js';
2
2
  import { formatting } from './formatting.js';
3
3
  import { cli } from '../cli/cli.js';
4
- export const aadAdministrativeUnit = {
4
+ export const entraAdministrativeUnit = {
5
5
  /**
6
6
  * Get an administrative unit by its display name.
7
7
  * @param displayName Administrative unit display name.
@@ -22,4 +22,4 @@ export const aadAdministrativeUnit = {
22
22
  return administrativeUnits[0];
23
23
  }
24
24
  };
25
- //# sourceMappingURL=aadAdministrativeUnit.js.map
25
+ //# sourceMappingURL=entraAdministrativeUnit.js.map
@@ -2,7 +2,7 @@ import { odata } from "./odata.js";
2
2
  import { formatting } from "./formatting.js";
3
3
  import { cli } from "../cli/cli.js";
4
4
  const graphResource = 'https://graph.microsoft.com';
5
- export const aadDevice = {
5
+ export const entraDevice = {
6
6
  /**
7
7
  * Get a device by its display name.
8
8
  * @param displayName Device display name.
@@ -22,4 +22,4 @@ export const aadDevice = {
22
22
  return devices[0];
23
23
  }
24
24
  };
25
- //# sourceMappingURL=aadDevice.js.map
25
+ //# sourceMappingURL=entraDevice.js.map
@@ -3,7 +3,7 @@ import { formatting } from "./formatting.js";
3
3
  import { odata } from "./odata.js";
4
4
  import { cli } from '../cli/cli.js';
5
5
  const graphResource = 'https://graph.microsoft.com';
6
- export const aadGroup = {
6
+ export const entraGroup = {
7
7
  /**
8
8
  * Retrieve a single group.
9
9
  * @param id Group ID.
@@ -95,4 +95,4 @@ export const aadGroup = {
95
95
  return group.groupTypes.some(type => type === 'Unified');
96
96
  }
97
97
  };
98
- //# sourceMappingURL=aadGroup.js.map
98
+ //# sourceMappingURL=entraGroup.js.map
@@ -1,7 +1,7 @@
1
1
  import request from "../request.js";
2
2
  import { formatting } from "./formatting.js";
3
3
  const graphResource = 'https://graph.microsoft.com';
4
- export const aadUser = {
4
+ export const entraUser = {
5
5
  /**
6
6
  * Retrieve the id of a user by its UPN.
7
7
  * @param upn User UPN.
@@ -20,6 +20,42 @@ export const aadUser = {
20
20
  }
21
21
  return res.value[0].id;
22
22
  },
23
+ /**
24
+ * Retrieve the IDs of users by their UPNs. There is no guarantee that the order of the returned IDs will match the order of the specified UPNs.
25
+ * @param upns Array of user UPNs.
26
+ * @returns Array of user IDs.
27
+ */
28
+ async getUserIdsByUpns(upns) {
29
+ const userIds = [];
30
+ for (let i = 0; i < upns.length; i += 20) {
31
+ const upnsChunk = upns.slice(i, i + 20);
32
+ const requestOptions = {
33
+ url: `${graphResource}/v1.0/$batch`,
34
+ headers: {
35
+ accept: 'application/json;odata.metadata=none'
36
+ },
37
+ responseType: 'json',
38
+ data: {
39
+ requests: upnsChunk.map((upn, index) => ({
40
+ id: index + 1,
41
+ method: 'GET',
42
+ url: `/users/${formatting.encodeQueryParameter(upn)}?$select=id`,
43
+ headers: {
44
+ accept: 'application/json;odata.metadata=none'
45
+ }
46
+ }))
47
+ }
48
+ };
49
+ const res = await request.post(requestOptions);
50
+ for (const response of res.responses) {
51
+ if (response.status !== 200) {
52
+ throw Error(`The specified user with user name '${upnsChunk[response.id - 1]}' does not exist.`);
53
+ }
54
+ userIds.push(response.body.id);
55
+ }
56
+ }
57
+ return userIds;
58
+ },
23
59
  /**
24
60
  * Retrieve the ID of a user by its email.
25
61
  * @param mail User email.
@@ -54,4 +90,4 @@ export const aadUser = {
54
90
  return res.userPrincipalName;
55
91
  }
56
92
  };
57
- //# sourceMappingURL=aadUser.js.map
93
+ //# sourceMappingURL=entraUser.js.map
package/dist/utils/spo.js CHANGED
@@ -8,7 +8,7 @@ import request from "../request.js";
8
8
  import { formatting } from './formatting.js';
9
9
  import { odata } from './odata.js';
10
10
  import { RoleType } from '../m365/spo/commands/roledefinition/RoleType.js';
11
- import { aadGroup } from './aadGroup.js';
11
+ import { entraGroup } from './entraGroup.js';
12
12
  import { SharingCapabilities } from '../m365/spo/commands/site/SharingCapabilities.js';
13
13
  export const spo = {
14
14
  getRequestDigest(siteUrl) {
@@ -996,7 +996,7 @@ export const spo = {
996
996
  promises.push(request.post(requestOptions));
997
997
  }
998
998
  if (typeof isPublic !== 'undefined') {
999
- promises.push(aadGroup.setGroup(groupId, (isPublic === false), logger, verbose));
999
+ promises.push(entraGroup.setGroup(groupId, (isPublic === false), logger, verbose));
1000
1000
  }
1001
1001
  if (typeof owners !== 'undefined') {
1002
1002
  promises.push(spo.setGroupifiedSiteOwners(spoAdminUrl, groupId, owners, logger, verbose));
@@ -1312,6 +1312,28 @@ export const spo = {
1312
1312
  responseType: 'json'
1313
1313
  };
1314
1314
  await request.post(requestOptions);
1315
+ },
1316
+ /**
1317
+ * Retrieves the site ID for a given web URL.
1318
+ * @param webUrl The web URL for which to retrieve the site ID.
1319
+ * @param logger The logger object.
1320
+ * @param verbose Set for verbose logging
1321
+ * @returns A promise that resolves to the site ID.
1322
+ */
1323
+ async getSiteId(webUrl, logger, verbose) {
1324
+ if (verbose && logger) {
1325
+ logger.logToStderr(`Getting site id for URL: ${webUrl}...`);
1326
+ }
1327
+ const url = new URL(webUrl);
1328
+ const requestOptions = {
1329
+ url: `https://graph.microsoft.com/v1.0/sites/${formatting.encodeQueryParameter(url.host)}:${url.pathname}?$select=id`,
1330
+ headers: {
1331
+ accept: 'application/json;odata.metadata=none'
1332
+ },
1333
+ responseType: 'json'
1334
+ };
1335
+ const site = await request.get(requestOptions);
1336
+ return site.id;
1315
1337
  }
1316
1338
  };
1317
1339
  //# sourceMappingURL=spo.js.map
@@ -166,6 +166,37 @@ export const urlUtil = {
166
166
  relativeUrl = relativeUrl.substring(0, relativeUrl.length - 1);
167
167
  }
168
168
  return `${baseUrl}/${relativeUrl}`;
169
+ },
170
+ /**
171
+ * Get the absolute URL from the target SharePoint URL.
172
+ * @param {string} webUrl - The base web URL.
173
+ * @param {string} url - The target SharePoint URL.
174
+ * @returns {string} - The target site absolute URL.
175
+ *
176
+ * Example Scenarios:
177
+ * - webUrl = "https://contoso.sharepoint.com" and targetUrl = "/teams/sales/Shared Documents/temp/123/234",
178
+ * returns "https://contoso.sharepoint.com/teams/sales".
179
+ * - webUrl = "https://contoso.sharepoint.com" and targetUrl = "https://contoso-my.sharepoint.com/personal/john_contoso_onmicrosoft_com/Documents/123",
180
+ * returns "https://contoso-my.sharepoint.com/personal/john_contoso_onmicrosoft_com".
181
+ * - webUrl = "https://contoso.sharepoint.com/teams/sales" and targetUrl = "/Shared Documents/temp",
182
+ * returns "https://contoso.sharepoint.com".
183
+ * - webUrl = "https://contoso.sharepoint.com" and targetUrl = "/teams/sales/Shared Documents/temp",
184
+ * returns "https://contoso.sharepoint.com/teams/sales".
185
+ */
186
+ getTargetSiteAbsoluteUrl(webUrl, url) {
187
+ const fullUrl = url.startsWith('https://') ? url : urlUtil.getAbsoluteUrl(webUrl, url);
188
+ // Pattern to match SharePoint URLs
189
+ const urlPattern = /https:\/\/[\w\-]+\.sharepoint\.com\/(teams|sites|personal)\/([\w\-]+)/;
190
+ const match = fullUrl.match(urlPattern);
191
+ if (match) {
192
+ // If a match is found, return the matched URL
193
+ return match[0];
194
+ }
195
+ else {
196
+ // Extract the root URL
197
+ const rootUrl = new URL(fullUrl);
198
+ return rootUrl.origin;
199
+ }
169
200
  }
170
201
  };
171
202
  //# sourceMappingURL=urlUtil.js.map
@@ -21,6 +21,10 @@ export const validation = {
21
21
  const guidRegEx = new RegExp(/^19:[0-9a-zA-Z-_]+(@thread\.v2|@unq\.gbl\.spaces)$/i);
22
22
  return guidRegEx.test(guid);
23
23
  },
24
+ isValidUserPrincipalNameArray(upns) {
25
+ const invalidGuid = upns.find(upn => !this.isValidUserPrincipalName(upn));
26
+ return invalidGuid || true;
27
+ },
24
28
  isValidUserPrincipalName(upn) {
25
29
  const upnRegEx = new RegExp(/^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/i);
26
30
  // verify if the upn is a valid upn. @meusername will be replaced in a later stage with the actual username of the logged in user
@@ -317,6 +321,10 @@ export const validation = {
317
321
  return true;
318
322
  }
319
323
  return false;
324
+ },
325
+ isValidMailNickname(mailNickname) {
326
+ const mailNicknameRegEx = new RegExp(/^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]*$/i);
327
+ return mailNicknameRegEx.test(mailNickname);
320
328
  }
321
329
  };
322
330
  //# sourceMappingURL=validation.js.map