@pnp/cli-microsoft365 7.6.0-beta.443bfd8 → 7.6.0-beta.480812d

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 (194) hide show
  1. package/README.md +1 -1
  2. package/allCommands.json +1 -1
  3. package/allCommandsFull.json +1 -1
  4. package/dist/Auth.js +2 -2
  5. package/dist/AuthServer.js +1 -1
  6. package/dist/config.js +2 -2
  7. package/dist/m365/app/commands/app-get.js +1 -1
  8. package/dist/m365/app/commands/app-open.js +1 -1
  9. package/dist/m365/app/commands/permission/permission-add.js +2 -2
  10. package/dist/m365/app/commands/permission/permission-list.js +2 -2
  11. package/dist/m365/cli/commands/cli-consent.js +2 -2
  12. package/dist/m365/cli/commands/cli-reconsent.js +3 -3
  13. package/dist/m365/commands/login.js +1 -1
  14. package/dist/m365/entra/commands/administrativeunit/administrativeunit-add.js +1 -0
  15. package/dist/m365/entra/commands/administrativeunit/administrativeunit-get.js +1 -0
  16. package/dist/m365/entra/commands/administrativeunit/administrativeunit-list.js +1 -0
  17. package/dist/m365/entra/commands/administrativeunit/administrativeunit-member-add.js +1 -0
  18. package/dist/m365/entra/commands/administrativeunit/administrativeunit-member-get.js +1 -0
  19. package/dist/m365/entra/commands/administrativeunit/administrativeunit-member-list.js +1 -0
  20. package/dist/m365/entra/commands/administrativeunit/administrativeunit-remove.js +1 -0
  21. package/dist/m365/entra/commands/app/app-add.js +7 -6
  22. package/dist/m365/entra/commands/app/app-get.js +4 -3
  23. package/dist/m365/entra/commands/app/app-list.js +1 -0
  24. package/dist/m365/entra/commands/app/app-permission-add.js +3 -2
  25. package/dist/m365/entra/commands/app/app-permission-list.js +1 -1
  26. package/dist/m365/entra/commands/app/app-remove.js +5 -4
  27. package/dist/m365/entra/commands/app/app-role-add.js +6 -5
  28. package/dist/m365/entra/commands/app/app-role-list.js +4 -3
  29. package/dist/m365/entra/commands/app/app-role-remove.js +6 -5
  30. package/dist/m365/entra/commands/app/app-set.js +8 -7
  31. package/dist/m365/entra/commands/approleassignment/approleassignment-add.js +2 -1
  32. package/dist/m365/entra/commands/approleassignment/approleassignment-list.js +1 -0
  33. package/dist/m365/entra/commands/approleassignment/approleassignment-remove.js +1 -0
  34. package/dist/m365/entra/commands/enterpriseapp/enterpriseapp-add.js +1 -0
  35. package/dist/m365/entra/commands/enterpriseapp/enterpriseapp-get.js +1 -0
  36. package/dist/m365/entra/commands/enterpriseapp/enterpriseapp-list.js +1 -0
  37. package/dist/m365/entra/commands/group/group-get.js +1 -0
  38. package/dist/m365/entra/commands/group/group-list.js +1 -0
  39. package/dist/m365/entra/commands/group/group-remove.js +1 -0
  40. package/dist/m365/entra/commands/group/group-user-list.js +1 -0
  41. package/dist/m365/entra/commands/groupsetting/groupsetting-add.js +1 -0
  42. package/dist/m365/entra/commands/groupsetting/groupsetting-get.js +1 -0
  43. package/dist/m365/entra/commands/groupsetting/groupsetting-list.js +1 -0
  44. package/dist/m365/entra/commands/groupsetting/groupsetting-remove.js +1 -0
  45. package/dist/m365/entra/commands/groupsetting/groupsetting-set.js +1 -0
  46. package/dist/m365/entra/commands/groupsettingtemplate/groupsettingtemplate-get.js +1 -0
  47. package/dist/m365/entra/commands/groupsettingtemplate/groupsettingtemplate-list.js +1 -0
  48. package/dist/m365/entra/commands/license/license-list.js +1 -0
  49. package/dist/m365/entra/commands/m365group/m365group-add.js +1 -0
  50. package/dist/m365/entra/commands/m365group/m365group-conversation-list.js +1 -0
  51. package/dist/m365/entra/commands/m365group/m365group-conversation-post-list.js +1 -0
  52. package/dist/m365/entra/commands/m365group/m365group-get.js +1 -0
  53. package/dist/m365/entra/commands/m365group/m365group-list.js +1 -0
  54. package/dist/m365/entra/commands/m365group/m365group-recyclebinitem-clear.js +1 -0
  55. package/dist/m365/entra/commands/m365group/m365group-recyclebinitem-list.js +1 -0
  56. package/dist/m365/entra/commands/m365group/m365group-recyclebinitem-remove.js +1 -0
  57. package/dist/m365/entra/commands/m365group/m365group-recyclebinitem-restore.js +1 -0
  58. package/dist/m365/entra/commands/m365group/m365group-remove.js +1 -0
  59. package/dist/m365/entra/commands/m365group/m365group-renew.js +1 -0
  60. package/dist/m365/entra/commands/m365group/m365group-set.js +1 -0
  61. package/dist/m365/entra/commands/m365group/m365group-teamify.js +1 -0
  62. package/dist/m365/entra/commands/m365group/m365group-user-add.js +1 -0
  63. package/dist/m365/entra/commands/m365group/m365group-user-list.js +1 -0
  64. package/dist/m365/entra/commands/m365group/m365group-user-remove.js +1 -0
  65. package/dist/m365/entra/commands/m365group/m365group-user-set.js +1 -0
  66. package/dist/m365/entra/commands/oauth2grant/oauth2grant-add.js +1 -0
  67. package/dist/m365/entra/commands/oauth2grant/oauth2grant-list.js +1 -0
  68. package/dist/m365/entra/commands/oauth2grant/oauth2grant-remove.js +1 -0
  69. package/dist/m365/entra/commands/oauth2grant/oauth2grant-set.js +1 -0
  70. package/dist/m365/entra/commands/policy/policy-list.js +1 -0
  71. package/dist/m365/entra/commands/siteclassification/siteclassification-disable.js +1 -0
  72. package/dist/m365/entra/commands/siteclassification/siteclassification-enable.js +1 -0
  73. package/dist/m365/entra/commands/siteclassification/siteclassification-get.js +1 -0
  74. package/dist/m365/entra/commands/siteclassification/siteclassification-set.js +1 -0
  75. package/dist/m365/entra/commands/user/user-add.js +1 -0
  76. package/dist/m365/entra/commands/user/user-get.js +1 -0
  77. package/dist/m365/entra/commands/user/user-guest-add.js +1 -0
  78. package/dist/m365/entra/commands/user/user-hibp.js +1 -0
  79. package/dist/m365/entra/commands/user/user-license-add.js +1 -0
  80. package/dist/m365/entra/commands/user/user-license-list.js +1 -0
  81. package/dist/m365/entra/commands/user/user-license-remove.js +1 -0
  82. package/dist/m365/entra/commands/user/user-list.js +1 -0
  83. package/dist/m365/entra/commands/user/user-password-validate.js +1 -0
  84. package/dist/m365/entra/commands/user/user-recyclebinitem-clear.js +1 -0
  85. package/dist/m365/entra/commands/user/user-recyclebinitem-list.js +1 -0
  86. package/dist/m365/entra/commands/user/user-recyclebinitem-remove.js +2 -1
  87. package/dist/m365/entra/commands/user/user-recyclebinitem-restore.js +1 -0
  88. package/dist/m365/entra/commands/user/user-remove.js +1 -0
  89. package/dist/m365/entra/commands/user/user-set.js +1 -0
  90. package/dist/m365/entra/commands/user/user-signin-list.js +1 -0
  91. package/dist/m365/outlook/commands/message/message-remove.js +113 -0
  92. package/dist/m365/outlook/commands.js +1 -0
  93. package/dist/m365/pp/commands/managementapp/managementapp-add.js +7 -7
  94. package/dist/m365/spo/commands/folder/FolderColor.js +19 -0
  95. package/dist/m365/spo/commands/folder/folder-add.js +46 -17
  96. package/dist/m365/spo/commands/folder/folder-set.js +118 -0
  97. package/dist/m365/spo/commands/group/group-member-add.js +2 -2
  98. package/dist/m365/spo/commands/group/group-member-remove.js +1 -1
  99. package/dist/m365/spo/commands/site/site-apppermission-add.js +2 -2
  100. package/dist/m365/spo/commands/site/site-recyclebinitem-restore.js +66 -27
  101. package/dist/m365/spo/commands/tenant/tenant-settings-set.js +1 -1
  102. package/dist/m365/spo/commands.js +1 -0
  103. package/dist/m365/teams/commands/tab/tab-get.js +1 -1
  104. package/dist/utils/spo.js +1 -1
  105. package/docs/docs/cmd/app/app-get.mdx +10 -10
  106. package/docs/docs/cmd/app/app-open.mdx +6 -6
  107. package/docs/docs/cmd/app/permission/permission-add.mdx +2 -2
  108. package/docs/docs/cmd/app/permission/permission-list.mdx +5 -5
  109. package/docs/docs/cmd/cli/cli-consent.mdx +2 -2
  110. package/docs/docs/cmd/cli/cli-reconsent.mdx +6 -6
  111. package/docs/docs/cmd/entra/app/app-permission-add.mdx +6 -6
  112. package/docs/docs/cmd/entra/approleassignment/approleassignment-add.mdx +1 -1
  113. package/docs/docs/cmd/entra/approleassignment/approleassignment-list.mdx +4 -4
  114. package/docs/docs/cmd/entra/enterpriseapp/enterpriseapp-add.mdx +1 -1
  115. package/docs/docs/cmd/entra/enterpriseapp/enterpriseapp-get.mdx +1 -1
  116. package/docs/docs/cmd/entra/group/group-user-add.mdx +7 -7
  117. package/docs/docs/cmd/entra/oauth2grant/oauth2grant-add.mdx +1 -1
  118. package/docs/docs/cmd/entra/oauth2grant/oauth2grant-list.mdx +1 -1
  119. package/docs/docs/cmd/entra/oauth2grant/oauth2grant-remove.mdx +1 -1
  120. package/docs/docs/cmd/entra/oauth2grant/oauth2grant-set.mdx +1 -1
  121. package/docs/docs/cmd/external/connection/connection-add.mdx +2 -2
  122. package/docs/docs/cmd/file/file-add.mdx +1 -1
  123. package/docs/docs/cmd/graph/schemaextension/schemaextension-add.mdx +2 -2
  124. package/docs/docs/cmd/graph/schemaextension/schemaextension-set.mdx +1 -1
  125. package/docs/docs/cmd/login.mdx +18 -18
  126. package/docs/docs/cmd/outlook/message/message-remove.mdx +67 -0
  127. package/docs/docs/cmd/pa/app/app-owner-set.mdx +1 -1
  128. package/docs/docs/cmd/pa/app/app-permission-ensure.mdx +3 -3
  129. package/docs/docs/cmd/pa/app/app-permission-remove.mdx +3 -3
  130. package/docs/docs/cmd/planner/plan/plan-add.mdx +1 -1
  131. package/docs/docs/cmd/planner/roster/roster-add.mdx +5 -5
  132. package/docs/docs/cmd/planner/roster/roster-get.mdx +7 -7
  133. package/docs/docs/cmd/planner/roster/roster-member-add.mdx +4 -4
  134. package/docs/docs/cmd/planner/roster/roster-member-get.mdx +4 -4
  135. package/docs/docs/cmd/planner/roster/roster-member-list.mdx +2 -2
  136. package/docs/docs/cmd/planner/roster/roster-member-remove.mdx +5 -5
  137. package/docs/docs/cmd/planner/roster/roster-plan-list.mdx +1 -1
  138. package/docs/docs/cmd/planner/roster/roster-remove.mdx +2 -2
  139. package/docs/docs/cmd/planner/task/task-add.mdx +1 -1
  140. package/docs/docs/cmd/planner/task/task-get.mdx +1 -1
  141. package/docs/docs/cmd/planner/task/task-list.mdx +1 -1
  142. package/docs/docs/cmd/planner/task/task-remove.mdx +1 -1
  143. package/docs/docs/cmd/planner/task/task-set.mdx +1 -1
  144. package/docs/docs/cmd/pp/environment/environment-get.mdx +1 -1
  145. package/docs/docs/cmd/pp/environment/environment-list.mdx +1 -1
  146. package/docs/docs/cmd/pp/managementapp/managementapp-add.mdx +9 -9
  147. package/docs/docs/cmd/purview/auditlog/auditlog-list.mdx +1 -1
  148. package/docs/docs/cmd/purview/sensitivitylabel/sensitivitylabel-get.mdx +1 -1
  149. package/docs/docs/cmd/purview/sensitivitylabel/sensitivitylabel-list.mdx +1 -1
  150. package/docs/docs/cmd/purview/sensitivitylabel/sensitivitylabel-policysettings-list.mdx +1 -1
  151. package/docs/docs/cmd/request.mdx +1 -1
  152. package/docs/docs/cmd/spfx/project/project-github-workflow-add.mdx +2 -2
  153. package/docs/docs/cmd/spo/file/file-roleassignment-add.mdx +3 -3
  154. package/docs/docs/cmd/spo/file/file-roleassignment-remove.mdx +2 -2
  155. package/docs/docs/cmd/spo/folder/folder-add.mdx +38 -0
  156. package/docs/docs/cmd/spo/folder/folder-roleassignment-add.mdx +1 -1
  157. package/docs/docs/cmd/spo/folder/folder-roleassignment-remove.mdx +1 -1
  158. package/docs/docs/cmd/spo/folder/folder-set.mdx +88 -0
  159. package/docs/docs/cmd/spo/group/group-member-add.mdx +2 -2
  160. package/docs/docs/cmd/spo/group/group-member-remove.mdx +3 -3
  161. package/docs/docs/cmd/spo/list/list-roleassignment-add.mdx +3 -3
  162. package/docs/docs/cmd/spo/list/list-roleassignment-remove.mdx +2 -2
  163. package/docs/docs/cmd/spo/listitem/listitem-roleassignment-add.mdx +8 -8
  164. package/docs/docs/cmd/spo/listitem/listitem-roleassignment-remove.mdx +2 -2
  165. package/docs/docs/cmd/spo/site/site-apppermission-add.mdx +2 -2
  166. package/docs/docs/cmd/spo/site/site-apppermission-set.mdx +2 -2
  167. package/docs/docs/cmd/spo/site/site-recyclebinitem-restore.mdx +29 -5
  168. package/docs/docs/cmd/spo/tenant/tenant-settings-set.mdx +89 -89
  169. package/docs/docs/cmd/spo/user/user-ensure.mdx +1 -1
  170. package/docs/docs/cmd/spo/web/web-roleassignment-add.mdx +3 -3
  171. package/docs/docs/cmd/spo/web/web-roleassignment-remove.mdx +2 -2
  172. package/docs/docs/cmd/teams/channel/channel-member-remove.mdx +1 -1
  173. package/docs/docs/cmd/teams/channel/channel-member-set.mdx +1 -1
  174. package/docs/docs/cmd/teams/chat/chat-member-remove.mdx +3 -3
  175. package/docs/docs/cmd/teams/report/report-directroutingcalls.mdx +1 -1
  176. package/docs/docs/cmd/teams/report/report-pstncalls.mdx +1 -1
  177. package/docs/docs/cmd/teams/tab/tab-get.mdx +19 -12
  178. package/docs/docs/cmd/tenant/security/security-alerts-list.mdx +1 -1
  179. package/docs/docs/cmd/viva/engage/engage-group-list.mdx +1 -1
  180. package/docs/docs/cmd/viva/engage/engage-group-user-add.mdx +1 -1
  181. package/docs/docs/cmd/viva/engage/engage-group-user-remove.mdx +1 -1
  182. package/docs/docs/cmd/viva/engage/engage-message-add.mdx +1 -1
  183. package/docs/docs/cmd/viva/engage/engage-message-get.mdx +1 -1
  184. package/docs/docs/cmd/viva/engage/engage-message-like-set.mdx +1 -1
  185. package/docs/docs/cmd/viva/engage/engage-message-list.mdx +1 -1
  186. package/docs/docs/cmd/viva/engage/engage-message-remove.mdx +1 -1
  187. package/docs/docs/cmd/viva/engage/engage-network-list.mdx +1 -1
  188. package/docs/docs/cmd/viva/engage/engage-search.mdx +1 -1
  189. package/docs/docs/cmd/viva/engage/engage-user-get.mdx +1 -1
  190. package/docs/docs/cmd/viva/engage/engage-user-list.mdx +1 -1
  191. package/npm-shrinkwrap.json +62 -58
  192. package/package.json +11 -11
  193. package/dist/m365/spo/commands/folder/folder-rename.js +0 -72
  194. package/docs/docs/cmd/spo/folder/folder-rename.mdx +0 -44
@@ -0,0 +1,113 @@
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 _OutlookMessageRemoveCommand_instances, _OutlookMessageRemoveCommand_initTelemetry, _OutlookMessageRemoveCommand_initOptions, _OutlookMessageRemoveCommand_initValidators, _OutlookMessageRemoveCommand_initTypes;
7
+ import auth from '../../../../Auth.js';
8
+ import request from '../../../../request.js';
9
+ import { accessToken } from '../../../../utils/accessToken.js';
10
+ import GraphCommand from '../../../base/GraphCommand.js';
11
+ import commands from '../../commands.js';
12
+ import { cli } from '../../../../cli/cli.js';
13
+ import { validation } from '../../../../utils/validation.js';
14
+ import { formatting } from '../../../../utils/formatting.js';
15
+ class OutlookMessageRemoveCommand extends GraphCommand {
16
+ get name() {
17
+ return commands.MESSAGE_REMOVE;
18
+ }
19
+ get description() {
20
+ return 'Permanently removes a specific message from a mailbox';
21
+ }
22
+ constructor() {
23
+ super();
24
+ _OutlookMessageRemoveCommand_instances.add(this);
25
+ __classPrivateFieldGet(this, _OutlookMessageRemoveCommand_instances, "m", _OutlookMessageRemoveCommand_initTelemetry).call(this);
26
+ __classPrivateFieldGet(this, _OutlookMessageRemoveCommand_instances, "m", _OutlookMessageRemoveCommand_initOptions).call(this);
27
+ __classPrivateFieldGet(this, _OutlookMessageRemoveCommand_instances, "m", _OutlookMessageRemoveCommand_initValidators).call(this);
28
+ __classPrivateFieldGet(this, _OutlookMessageRemoveCommand_instances, "m", _OutlookMessageRemoveCommand_initTypes).call(this);
29
+ }
30
+ async commandAction(logger, args) {
31
+ const isAppOnlyAccessToken = accessToken.isAppOnlyAccessToken(auth.connection.accessTokens[auth.defaultResource].accessToken);
32
+ let principalUrl = '';
33
+ if (isAppOnlyAccessToken) {
34
+ if (!args.options.userId && !args.options.userName) {
35
+ throw `The option 'userId' or 'userName' is required when removing a message using application permissions.`;
36
+ }
37
+ if (args.options.userId && args.options.userName) {
38
+ throw `Both options 'userId' and 'userName' cannot be used together when removing a message using application permissions.`;
39
+ }
40
+ }
41
+ else {
42
+ if (args.options.userId && args.options.userName) {
43
+ throw `Both options 'userId' and 'userName' cannot be used together when removing a message using delegated permissions.`;
44
+ }
45
+ }
46
+ if (args.options.userId || args.options.userName) {
47
+ principalUrl += `users/${args.options.userId || formatting.encodeQueryParameter(args.options.userName)}`;
48
+ }
49
+ else {
50
+ principalUrl += 'me';
51
+ }
52
+ const removeMessage = async () => {
53
+ try {
54
+ if (this.verbose) {
55
+ await logger.logToStderr(`Removing message with id '${args.options.id}' using ${isAppOnlyAccessToken ? 'application' : 'delegated'} permissions.`);
56
+ }
57
+ const requestOptions = {
58
+ url: `${this.resource}/v1.0/${principalUrl}/messages/${args.options.id}`,
59
+ headers: {
60
+ accept: 'application/json;odata.metadata=none'
61
+ }
62
+ };
63
+ await request.delete(requestOptions);
64
+ }
65
+ catch (err) {
66
+ this.handleRejectedODataJsonPromise(err);
67
+ }
68
+ };
69
+ if (args.options.force) {
70
+ await removeMessage();
71
+ }
72
+ else {
73
+ const result = await cli.promptForConfirmation({ message: `Are you sure you want to remove message with id '${args.options.id}'?` });
74
+ if (result) {
75
+ await removeMessage();
76
+ }
77
+ }
78
+ }
79
+ }
80
+ _OutlookMessageRemoveCommand_instances = new WeakSet(), _OutlookMessageRemoveCommand_initTelemetry = function _OutlookMessageRemoveCommand_initTelemetry() {
81
+ this.telemetry.push((args) => {
82
+ Object.assign(this.telemetryProperties, {
83
+ userId: typeof args.options.userId !== 'undefined',
84
+ userName: typeof args.options.userName !== 'undefined',
85
+ force: !!args.options.force
86
+ });
87
+ });
88
+ }, _OutlookMessageRemoveCommand_initOptions = function _OutlookMessageRemoveCommand_initOptions() {
89
+ this.options.unshift({
90
+ option: '-i, --id <id>'
91
+ }, {
92
+ option: '--userId [userId]'
93
+ }, {
94
+ option: '--userName [userName]'
95
+ }, {
96
+ option: '-f, --force'
97
+ });
98
+ }, _OutlookMessageRemoveCommand_initValidators = function _OutlookMessageRemoveCommand_initValidators() {
99
+ this.validators.push(async (args) => {
100
+ if (args.options.userId && !validation.isValidGuid(args.options.userId)) {
101
+ return `Value '${args.options.userId}' is not a valid GUID for option 'userId'.`;
102
+ }
103
+ if (args.options.userName && !validation.isValidUserPrincipalName(args.options.userName)) {
104
+ return `Value '${args.options.userName}' is not a valid user principal name for option 'userName'.`;
105
+ }
106
+ return true;
107
+ });
108
+ }, _OutlookMessageRemoveCommand_initTypes = function _OutlookMessageRemoveCommand_initTypes() {
109
+ this.types.string.push('id', 'userId', 'userName');
110
+ this.types.boolean.push('force');
111
+ };
112
+ export default new OutlookMessageRemoveCommand();
113
+ //# sourceMappingURL=message-remove.js.map
@@ -4,6 +4,7 @@ export default {
4
4
  MESSAGE_GET: `${prefix} message get`,
5
5
  MESSAGE_LIST: `${prefix} message list`,
6
6
  MESSAGE_MOVE: `${prefix} message move`,
7
+ MESSAGE_REMOVE: `${prefix} message remove`,
7
8
  REPORT_MAILACTIVITYCOUNTS: `${prefix} report mailactivitycounts`,
8
9
  REPORT_MAILACTIVITYUSERCOUNTS: `${prefix} report mailactivityusercounts`,
9
10
  REPORT_MAILACTIVITYUSERDETAIL: `${prefix} report mailactivityuserdetail`,
@@ -58,16 +58,16 @@ class PpManagementAppAddCommand extends PowerPlatformCommand {
58
58
  },
59
59
  responseType: 'json'
60
60
  };
61
- const aadApps = await request.get((requestOptions));
62
- if (aadApps.value.length === 0) {
61
+ const entraApps = await request.get((requestOptions));
62
+ if (entraApps.value.length === 0) {
63
63
  const applicationIdentifier = objectId ? `ID ${objectId}` : `name ${name}`;
64
- throw `No Azure AD application registration with ${applicationIdentifier} found`;
64
+ throw `No Microsoft Entra application registration with ${applicationIdentifier} found`;
65
65
  }
66
- if (aadApps.value.length === 1 && aadApps.value[0].appId) {
67
- return aadApps.value[0].appId;
66
+ if (entraApps.value.length === 1 && entraApps.value[0].appId) {
67
+ return entraApps.value[0].appId;
68
68
  }
69
- const resultAsKeyValuePair = formatting.convertArrayToHashTable('appId', aadApps.value);
70
- const result = await cli.handleMultipleResultsFound(`Multiple Azure AD application registration with name '${name}' found.`, resultAsKeyValuePair);
69
+ const resultAsKeyValuePair = formatting.convertArrayToHashTable('appId', entraApps.value);
70
+ const result = await cli.handleMultipleResultsFound(`Multiple Microsoft Entra application registrations with name '${name}' found.`, resultAsKeyValuePair);
71
71
  return result.appId;
72
72
  }
73
73
  }
@@ -0,0 +1,19 @@
1
+ export const FolderColorValues = {
2
+ yellow: '0',
3
+ darkRed: '1',
4
+ darkOrange: '2',
5
+ darkGreen: '3',
6
+ darkTeal: '4',
7
+ darkBlue: '5',
8
+ darkPurple: '6',
9
+ darkPink: '7',
10
+ grey: '8',
11
+ lightRed: '9',
12
+ lightOrange: '10',
13
+ lightGreen: '11',
14
+ lightTeal: '12',
15
+ lightBlue: '13',
16
+ lightPurple: '14',
17
+ lightPink: '15'
18
+ };
19
+ //# sourceMappingURL=FolderColor.js.map
@@ -3,13 +3,14 @@ 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 _SpoFolderAddCommand_instances, _SpoFolderAddCommand_initOptions, _SpoFolderAddCommand_initValidators, _SpoFolderAddCommand_initTypes;
6
+ var _SpoFolderAddCommand_instances, _SpoFolderAddCommand_initTelemetry, _SpoFolderAddCommand_initOptions, _SpoFolderAddCommand_initValidators, _SpoFolderAddCommand_initTypes;
7
7
  import request from '../../../../request.js';
8
8
  import { formatting } from '../../../../utils/formatting.js';
9
9
  import { urlUtil } from '../../../../utils/urlUtil.js';
10
10
  import { validation } from '../../../../utils/validation.js';
11
11
  import SpoCommand from '../../../base/SpoCommand.js';
12
12
  import commands from '../../commands.js';
13
+ import { FolderColorValues } from './FolderColor.js';
13
14
  class SpoFolderAddCommand extends SpoCommand {
14
15
  get name() {
15
16
  return commands.FOLDER_ADD;
@@ -20,25 +21,35 @@ class SpoFolderAddCommand extends SpoCommand {
20
21
  constructor() {
21
22
  super();
22
23
  _SpoFolderAddCommand_instances.add(this);
24
+ __classPrivateFieldGet(this, _SpoFolderAddCommand_instances, "m", _SpoFolderAddCommand_initTelemetry).call(this);
23
25
  __classPrivateFieldGet(this, _SpoFolderAddCommand_instances, "m", _SpoFolderAddCommand_initOptions).call(this);
24
26
  __classPrivateFieldGet(this, _SpoFolderAddCommand_instances, "m", _SpoFolderAddCommand_initValidators).call(this);
25
27
  __classPrivateFieldGet(this, _SpoFolderAddCommand_instances, "m", _SpoFolderAddCommand_initTypes).call(this);
26
28
  }
27
29
  async commandAction(logger, args) {
28
- if (this.verbose) {
29
- await logger.logToStderr(`Adding folder to site ${args.options.webUrl}...`);
30
- }
31
- const parentFolderServerRelativeUrl = urlUtil.getServerRelativePath(args.options.webUrl, args.options.parentFolderUrl);
32
- const serverRelativeUrl = `${parentFolderServerRelativeUrl}/${args.options.name}`;
33
- const requestUrl = `${args.options.webUrl}/_api/web/folders/addUsingPath(decodedUrl='${formatting.encodeQueryParameter(serverRelativeUrl)}')`;
34
- const requestOptions = {
35
- url: requestUrl,
36
- headers: {
37
- 'accept': 'application/json;odata=nometadata'
38
- },
39
- responseType: 'json'
40
- };
41
30
  try {
31
+ if (this.verbose) {
32
+ await logger.logToStderr(`Adding folder to site ${args.options.webUrl}...`);
33
+ }
34
+ const parentFolderServerRelativeUrl = urlUtil.getServerRelativePath(args.options.webUrl, args.options.parentFolderUrl);
35
+ const serverRelativeUrl = `${parentFolderServerRelativeUrl}/${args.options.name}`;
36
+ const requestOptions = {
37
+ headers: {
38
+ 'accept': 'application/json;odata=nometadata'
39
+ },
40
+ responseType: 'json'
41
+ };
42
+ if (args.options.color === undefined) {
43
+ requestOptions.url = `${args.options.webUrl}/_api/web/folders/addUsingPath(decodedUrl='${formatting.encodeQueryParameter(serverRelativeUrl)}')`;
44
+ }
45
+ else {
46
+ requestOptions.url = `${args.options.webUrl}/_api/foldercoloring/createfolder(DecodedUrl='${formatting.encodeQueryParameter(serverRelativeUrl)}', overwrite=false)`;
47
+ requestOptions.data = {
48
+ coloringInformation: {
49
+ ColorHex: FolderColorValues[args.options.color] || args.options.color
50
+ }
51
+ };
52
+ }
42
53
  const folder = await request.post(requestOptions);
43
54
  await logger.log(folder);
44
55
  }
@@ -47,18 +58,36 @@ class SpoFolderAddCommand extends SpoCommand {
47
58
  }
48
59
  }
49
60
  }
50
- _SpoFolderAddCommand_instances = new WeakSet(), _SpoFolderAddCommand_initOptions = function _SpoFolderAddCommand_initOptions() {
61
+ _SpoFolderAddCommand_instances = new WeakSet(), _SpoFolderAddCommand_initTelemetry = function _SpoFolderAddCommand_initTelemetry() {
62
+ this.telemetry.push((args) => {
63
+ Object.assign(this.telemetryProperties, {
64
+ color: typeof args.options.color !== 'undefined'
65
+ });
66
+ });
67
+ }, _SpoFolderAddCommand_initOptions = function _SpoFolderAddCommand_initOptions() {
51
68
  this.options.unshift({
52
69
  option: '-u, --webUrl <webUrl>'
53
70
  }, {
54
71
  option: '-p, --parentFolderUrl <parentFolderUrl>'
55
72
  }, {
56
73
  option: '-n, --name <name>'
74
+ }, {
75
+ option: '--color [color]',
76
+ autocomplete: Object.keys(FolderColorValues)
57
77
  });
58
78
  }, _SpoFolderAddCommand_initValidators = function _SpoFolderAddCommand_initValidators() {
59
- this.validators.push(async (args) => validation.isValidSharePointUrl(args.options.webUrl));
79
+ this.validators.push(async (args) => {
80
+ const isValidSharePointUrl = validation.isValidSharePointUrl(args.options.webUrl);
81
+ if (isValidSharePointUrl !== true) {
82
+ return isValidSharePointUrl;
83
+ }
84
+ if (args.options.color && !Object.entries(FolderColorValues).flat().includes(args.options.color)) {
85
+ return `'${args.options.color}' is not a valid value for option 'color'. Allowed values are ${Object.keys(FolderColorValues).join(', ')}, ${Object.values(FolderColorValues).join(', ')}.`;
86
+ }
87
+ return true;
88
+ });
60
89
  }, _SpoFolderAddCommand_initTypes = function _SpoFolderAddCommand_initTypes() {
61
- this.types.string.push('webUrl', 'parentFolderUrl', 'name');
90
+ this.types.string.push('webUrl', 'parentFolderUrl', 'name', 'color');
62
91
  };
63
92
  export default new SpoFolderAddCommand();
64
93
  //# sourceMappingURL=folder-add.js.map
@@ -0,0 +1,118 @@
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 _SpoFolderSetCommand_instances, _SpoFolderSetCommand_initTelemetry, _SpoFolderSetCommand_initOptions, _SpoFolderSetCommand_initValidators, _SpoFolderSetCommand_initTypes;
7
+ import request from '../../../../request.js';
8
+ import { formatting } from '../../../../utils/formatting.js';
9
+ import { urlUtil } from '../../../../utils/urlUtil.js';
10
+ import { validation } from '../../../../utils/validation.js';
11
+ import SpoCommand from '../../../base/SpoCommand.js';
12
+ import commands from '../../commands.js';
13
+ import { FolderColorValues } from './FolderColor.js';
14
+ class SpoFolderSetCommand extends SpoCommand {
15
+ get name() {
16
+ return commands.FOLDER_SET;
17
+ }
18
+ get description() {
19
+ return 'Updates a folder';
20
+ }
21
+ alias() {
22
+ return [commands.FOLDER_RENAME];
23
+ }
24
+ constructor() {
25
+ super();
26
+ _SpoFolderSetCommand_instances.add(this);
27
+ __classPrivateFieldGet(this, _SpoFolderSetCommand_instances, "m", _SpoFolderSetCommand_initTelemetry).call(this);
28
+ __classPrivateFieldGet(this, _SpoFolderSetCommand_instances, "m", _SpoFolderSetCommand_initOptions).call(this);
29
+ __classPrivateFieldGet(this, _SpoFolderSetCommand_instances, "m", _SpoFolderSetCommand_initValidators).call(this);
30
+ __classPrivateFieldGet(this, _SpoFolderSetCommand_instances, "m", _SpoFolderSetCommand_initTypes).call(this);
31
+ }
32
+ getExcludedOptionsWithUrls() {
33
+ return ['url'];
34
+ }
35
+ async commandAction(logger, args) {
36
+ try {
37
+ await this.showDeprecationWarning(logger, this.alias()[0], this.name);
38
+ if (this.verbose) {
39
+ await logger.logToStderr(`Updating folder '${args.options.name}'...`);
40
+ }
41
+ const serverRelativePath = urlUtil.getServerRelativePath(args.options.webUrl, args.options.url);
42
+ if (!args.options.color) {
43
+ const requestOptions = {
44
+ url: `${args.options.webUrl}/_api/Web/GetFolderByServerRelativePath(DecodedUrl='${formatting.encodeQueryParameter(serverRelativePath)}')/ListItemAllFields`,
45
+ headers: {
46
+ accept: 'application/json;odata=nometadata',
47
+ 'if-match': '*'
48
+ },
49
+ data: {
50
+ FileLeafRef: args.options.name,
51
+ Title: args.options.name
52
+ },
53
+ responseType: 'json'
54
+ };
55
+ const response = await request.patch(requestOptions);
56
+ if (response && response['odata.null'] === true) {
57
+ throw 'Folder not found.';
58
+ }
59
+ }
60
+ else {
61
+ const requestOptions = {
62
+ url: `${args.options.webUrl}/_api/foldercoloring/${args.options.name ? 'renamefolder' : 'stampcolor'}(DecodedUrl='${formatting.encodeQueryParameter(serverRelativePath)}')`,
63
+ headers: {
64
+ accept: 'application/json;odata=nometadata'
65
+ },
66
+ responseType: 'json',
67
+ data: {
68
+ coloringInformation: {
69
+ ColorHex: FolderColorValues[args.options.color] || args.options.color
70
+ },
71
+ newName: args.options.name
72
+ }
73
+ };
74
+ await request.post(requestOptions);
75
+ }
76
+ }
77
+ catch (err) {
78
+ this.handleRejectedODataJsonPromise(err);
79
+ }
80
+ }
81
+ }
82
+ _SpoFolderSetCommand_instances = new WeakSet(), _SpoFolderSetCommand_initTelemetry = function _SpoFolderSetCommand_initTelemetry() {
83
+ this.telemetry.push((args) => {
84
+ Object.assign(this.telemetryProperties, {
85
+ name: typeof args.options.name !== 'undefined',
86
+ color: typeof args.options.color !== 'undefined'
87
+ });
88
+ });
89
+ }, _SpoFolderSetCommand_initOptions = function _SpoFolderSetCommand_initOptions() {
90
+ this.options.unshift({
91
+ option: '-u, --webUrl <webUrl>'
92
+ }, {
93
+ option: '--url <url>'
94
+ }, {
95
+ option: '-n, --name [name]'
96
+ }, {
97
+ option: '--color [color]',
98
+ autocomplete: Object.keys(FolderColorValues)
99
+ });
100
+ }, _SpoFolderSetCommand_initValidators = function _SpoFolderSetCommand_initValidators() {
101
+ this.validators.push(async (args) => {
102
+ const isValidSharePointUrl = validation.isValidSharePointUrl(args.options.webUrl);
103
+ if (isValidSharePointUrl !== true) {
104
+ return isValidSharePointUrl;
105
+ }
106
+ if (args.options.color === undefined && args.options.name === undefined) {
107
+ return `Specify at least one of the options: name or color.`;
108
+ }
109
+ if (args.options.color && !Object.entries(FolderColorValues).flat().includes(args.options.color)) {
110
+ return `'${args.options.color}' is not a valid value for option 'color'. Allowed values are ${Object.keys(FolderColorValues).join(', ')}, ${Object.values(FolderColorValues).join(', ')}.`;
111
+ }
112
+ return true;
113
+ });
114
+ }, _SpoFolderSetCommand_initTypes = function _SpoFolderSetCommand_initTypes() {
115
+ this.types.string.push('webUrl', 'url', 'name', 'color');
116
+ };
117
+ export default new SpoFolderSetCommand();
118
+ //# sourceMappingURL=folder-set.js.map
@@ -109,14 +109,14 @@ class SpoGroupMemberAddCommand extends SpoCommand {
109
109
  }
110
110
  else if (args.options.entraGroupNames) {
111
111
  if (this.verbose) {
112
- await logger.logToStderr(`Getting ID of Azure AD group ${trimmedIdentifier}`);
112
+ await logger.logToStderr(`Getting ID of Microsoft Entra group ${trimmedIdentifier}`);
113
113
  }
114
114
  const groupId = await entraGroup.getGroupIdByDisplayName(trimmedIdentifier);
115
115
  validUserNames.push(groupId);
116
116
  }
117
117
  else {
118
118
  if (this.verbose) {
119
- await logger.logToStderr(`Getting Azure AD ID for user ${trimmedIdentifier}`);
119
+ await logger.logToStderr(`Getting Microsoft Entra ID for user ${trimmedIdentifier}`);
120
120
  }
121
121
  const upn = await entraUser.getUserIdByEmail(trimmedIdentifier);
122
122
  validUserNames.push(upn);
@@ -122,7 +122,7 @@ class SpoGroupMemberRemoveCommand extends SpoCommand {
122
122
  foundGroups = getGroupMemberListOutput.filter((x) => { return x.Title === args.options.entraGroupName && (x.LoginName.indexOf("c:0o.c|federateddirectoryclaimprovider|") === 0 || x.LoginName.indexOf("c:0t.c|tenant|") === 0); });
123
123
  }
124
124
  if (foundGroups.length === 0) {
125
- throw `The Azure AD group ${args.options.entraGroupId || args.options.entraGroupName} is not found in SharePoint group ${args.options.groupId || args.options.groupName}`;
125
+ throw `The Microsoft Entra group ${args.options.entraGroupId || args.options.entraGroupName} is not found in SharePoint group ${args.options.groupId || args.options.groupName}`;
126
126
  }
127
127
  return foundGroups[0].Id;
128
128
  }
@@ -51,10 +51,10 @@ class SpoSiteAppPermissionAddCommand extends GraphCommand {
51
51
  const response = await request.get(appRequestOptions);
52
52
  const appItem = response.value[0];
53
53
  if (!appItem) {
54
- throw "The specified Azure AD app does not exist";
54
+ throw "The specified Microsoft Entra app does not exist";
55
55
  }
56
56
  if (response.value.length > 1) {
57
- throw `Multiple Azure AD app with displayName ${args.options.appDisplayName} found: ${response.value.map(x => x.appId)}`;
57
+ throw `Multiple Microsoft Entra apps with displayName ${args.options.appDisplayName} found: ${response.value.map(x => x.appId)}`;
58
58
  }
59
59
  return {
60
60
  appId: appItem.appId,
@@ -3,7 +3,7 @@ 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 _SpoSiteRecycleBinItemRestoreCommand_instances, _SpoSiteRecycleBinItemRestoreCommand_initOptions, _SpoSiteRecycleBinItemRestoreCommand_initValidators;
6
+ var _SpoSiteRecycleBinItemRestoreCommand_instances, _SpoSiteRecycleBinItemRestoreCommand_initOptions, _SpoSiteRecycleBinItemRestoreCommand_initValidators, _SpoSiteRecycleBinItemRestoreCommand_initTypes;
7
7
  import request from '../../../../request.js';
8
8
  import { formatting } from '../../../../utils/formatting.js';
9
9
  import { validation } from '../../../../utils/validation.js';
@@ -21,43 +21,73 @@ class SpoSiteRecycleBinItemRestoreCommand extends SpoCommand {
21
21
  _SpoSiteRecycleBinItemRestoreCommand_instances.add(this);
22
22
  __classPrivateFieldGet(this, _SpoSiteRecycleBinItemRestoreCommand_instances, "m", _SpoSiteRecycleBinItemRestoreCommand_initOptions).call(this);
23
23
  __classPrivateFieldGet(this, _SpoSiteRecycleBinItemRestoreCommand_instances, "m", _SpoSiteRecycleBinItemRestoreCommand_initValidators).call(this);
24
+ __classPrivateFieldGet(this, _SpoSiteRecycleBinItemRestoreCommand_instances, "m", _SpoSiteRecycleBinItemRestoreCommand_initTypes).call(this);
24
25
  }
25
26
  async commandAction(logger, args) {
26
27
  if (this.verbose) {
27
28
  await logger.logToStderr(`Restoring items from recycle bin at ${args.options.siteUrl}...`);
28
29
  }
29
- const requestUrl = `${args.options.siteUrl}/_api/site/RecycleBin/RestoreByIds`;
30
- const ids = formatting.splitAndTrim(args.options.ids);
31
- const idsChunks = [];
32
- while (ids.length) {
33
- idsChunks.push(ids.splice(0, 20));
34
- }
30
+ const baseUrl = `${args.options.siteUrl}/_api`;
35
31
  try {
36
- await Promise.all(idsChunks.map((idsChunk) => {
37
- const requestOptions = {
38
- url: requestUrl,
39
- headers: {
40
- 'accept': 'application/json;odata=nometadata',
41
- 'content-type': 'application/json'
42
- },
43
- responseType: 'json',
44
- data: {
45
- ids: idsChunk
46
- }
47
- };
48
- return request.post(requestOptions);
49
- }));
32
+ if (args.options.ids) {
33
+ const requestUrl = baseUrl + '/site/RecycleBin/RestoreByIds';
34
+ const ids = formatting.splitAndTrim(args.options.ids);
35
+ const idsChunks = [];
36
+ while (ids.length) {
37
+ idsChunks.push(ids.splice(0, 20));
38
+ }
39
+ await Promise.all(idsChunks.map((idsChunk) => {
40
+ const requestOptions = {
41
+ url: requestUrl,
42
+ headers: {
43
+ 'accept': 'application/json;odata=nometadata',
44
+ 'content-type': 'application/json'
45
+ },
46
+ responseType: 'json',
47
+ data: {
48
+ ids: idsChunk
49
+ }
50
+ };
51
+ return request.post(requestOptions);
52
+ }));
53
+ }
54
+ else {
55
+ if (args.options.allPrimary && args.options.allSecondary) {
56
+ await this.restoreRecycleBinStage(baseUrl + '/site/RecycleBin/RestoreAll');
57
+ }
58
+ else if (args.options.allPrimary) {
59
+ await this.restoreRecycleBinStage(baseUrl + '/web/RecycleBin/RestoreAll');
60
+ }
61
+ else if (args.options.allSecondary) {
62
+ await this.restoreRecycleBinStage(baseUrl + '/site/GetRecycleBinItems(rowLimit=2000000000,itemState=2)/RestoreAll');
63
+ }
64
+ }
50
65
  }
51
66
  catch (err) {
52
67
  this.handleRejectedODataJsonPromise(err);
53
68
  }
54
69
  }
70
+ async restoreRecycleBinStage(requestUrl) {
71
+ const requestOptions = {
72
+ url: requestUrl,
73
+ headers: {
74
+ accept: 'application/json;odata=nometadata',
75
+ 'content-type': 'application/json'
76
+ },
77
+ responseType: 'json'
78
+ };
79
+ return request.post(requestOptions);
80
+ }
55
81
  }
56
82
  _SpoSiteRecycleBinItemRestoreCommand_instances = new WeakSet(), _SpoSiteRecycleBinItemRestoreCommand_initOptions = function _SpoSiteRecycleBinItemRestoreCommand_initOptions() {
57
83
  this.options.unshift({
58
84
  option: '-u, --siteUrl <siteUrl>'
59
85
  }, {
60
- option: '-i, --ids <ids>'
86
+ option: '-i, --ids [ids]'
87
+ }, {
88
+ option: '--allPrimary'
89
+ }, {
90
+ option: '--allSecondary'
61
91
  });
62
92
  }, _SpoSiteRecycleBinItemRestoreCommand_initValidators = function _SpoSiteRecycleBinItemRestoreCommand_initValidators() {
63
93
  this.validators.push(async (args) => {
@@ -65,14 +95,23 @@ _SpoSiteRecycleBinItemRestoreCommand_instances = new WeakSet(), _SpoSiteRecycleB
65
95
  if (isValidSharePointUrl !== true) {
66
96
  return isValidSharePointUrl;
67
97
  }
68
- const invalidIds = formatting
69
- .splitAndTrim(args.options.ids)
70
- .filter(id => !validation.isValidGuid(id));
71
- if (invalidIds.length > 0) {
72
- return `The following IDs are invalid: ${invalidIds.join(', ')}`;
98
+ if (args.options.ids) {
99
+ const invalidIds = formatting
100
+ .splitAndTrim(args.options.ids)
101
+ .filter(id => !validation.isValidGuid(id));
102
+ if (invalidIds.length > 0) {
103
+ return `The following IDs are invalid: ${invalidIds.join(', ')}`;
104
+ }
105
+ }
106
+ if ((!args.options.ids && !args.options.allPrimary && !args.options.allSecondary)
107
+ || (args.options.ids && (args.options.allPrimary || args.options.allSecondary))) {
108
+ return `Option 'ids' cannot be used with 'allPrimary' or 'allSecondary'.`;
73
109
  }
74
110
  return true;
75
111
  });
112
+ }, _SpoSiteRecycleBinItemRestoreCommand_initTypes = function _SpoSiteRecycleBinItemRestoreCommand_initTypes() {
113
+ this.types.string.push('siteUrl', 'ids');
114
+ this.types.boolean.push('allPrimary', 'allSecondary');
76
115
  };
77
116
  export default new SpoSiteRecycleBinItemRestoreCommand();
78
117
  //# sourceMappingURL=site-recyclebinitem-restore.js.map
@@ -89,7 +89,7 @@ class SpoTenantSettingsSetCommand extends SpoCommand {
89
89
  throw response.ErrorInfo.ErrorMessage;
90
90
  }
91
91
  if (args.options.EnableAzureADB2BIntegration === true) {
92
- await this.warn(logger, 'WARNING: Make sure to also enable the Azure AD one-time passcode authentication preview. If it is not enabled then SharePoint will not use Azure AD B2B even if EnableAzureADB2BIntegration is set to true. Learn more at http://aka.ms/spo-b2b-integration.');
92
+ await this.warn(logger, 'WARNING: Make sure to also enable the Microsoft Entra one-time passcode authentication preview. If it is not enabled then SharePoint will not use Microsoft Entra B2B even if EnableAzureADB2BIntegration is set to true. Learn more at http://aka.ms/spo-b2b-integration.');
93
93
  }
94
94
  }
95
95
  catch (err) {
@@ -91,6 +91,7 @@ export default {
91
91
  FOLDER_MOVE: `${prefix} folder move`,
92
92
  FOLDER_REMOVE: `${prefix} folder remove`,
93
93
  FOLDER_RENAME: `${prefix} folder rename`,
94
+ FOLDER_SET: `${prefix} folder set`,
94
95
  FOLDER_RETENTIONLABEL_ENSURE: `${prefix} folder retentionlabel ensure`,
95
96
  FOLDER_RETENTIONLABEL_REMOVE: `${prefix} folder retentionlabel remove`,
96
97
  FOLDER_ROLEASSIGNMENT_REMOVE: `${prefix} folder roleassignment remove`,
@@ -78,7 +78,7 @@ class TeamsTabGetCommand extends GraphCommand {
78
78
  this.teamId = await this.getTeamId(args);
79
79
  this.channelId = await this.getChannelId(args);
80
80
  const tabId = await this.getTabId(args);
81
- const endpoint = `${this.resource}/v1.0/teams/${formatting.encodeQueryParameter(this.teamId)}/channels/${formatting.encodeQueryParameter(this.channelId)}/tabs/${formatting.encodeQueryParameter(tabId)}`;
81
+ const endpoint = `${this.resource}/v1.0/teams/${formatting.encodeQueryParameter(this.teamId)}/channels/${formatting.encodeQueryParameter(this.channelId)}/tabs/${formatting.encodeQueryParameter(tabId)}?$expand=teamsApp`;
82
82
  const requestOptions = {
83
83
  url: endpoint,
84
84
  headers: {
package/dist/utils/spo.js CHANGED
@@ -490,7 +490,7 @@ export const spo = {
490
490
  return result.CorporateCatalogUrl;
491
491
  },
492
492
  /**
493
- * Retrieves the Azure AD ID from a SP user.
493
+ * Retrieves the Microsoft Entra ID from a SP user.
494
494
  * @param webUrl Web url
495
495
  * @param id The Id of the user
496
496
  */