@pnp/cli-microsoft365 7.0.0-beta.c2db9df → 7.0.0-beta.e15bb2d

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 (73) hide show
  1. package/dist/m365/aad/commands/app/app-set.js +4 -4
  2. package/dist/m365/aad/commands/approleassignment/approleassignment-add.js +4 -4
  3. package/dist/m365/aad/commands/approleassignment/approleassignment-remove.js +4 -4
  4. package/dist/m365/aad/commands/group/group-remove.js +98 -0
  5. package/dist/m365/aad/commands/m365group/m365group-add.js +9 -3
  6. package/dist/m365/aad/commands.js +1 -0
  7. package/dist/m365/graph/commands/subscription/subscription-add.js +5 -5
  8. package/dist/m365/planner/commands/bucket/bucket-add.js +4 -1
  9. package/dist/m365/planner/commands/bucket/bucket-get.js +4 -1
  10. package/dist/m365/planner/commands/bucket/bucket-list.js +4 -1
  11. package/dist/m365/planner/commands/bucket/bucket-remove.js +4 -1
  12. package/dist/m365/planner/commands/bucket/bucket-set.js +4 -1
  13. package/dist/m365/planner/commands/plan/plan-add.js +4 -1
  14. package/dist/m365/planner/commands/plan/plan-get.js +4 -1
  15. package/dist/m365/planner/commands/plan/plan-list.js +4 -1
  16. package/dist/m365/planner/commands/plan/plan-remove.js +4 -1
  17. package/dist/m365/planner/commands/plan/plan-set.js +4 -1
  18. package/dist/m365/planner/commands/roster/roster-get.js +4 -1
  19. package/dist/m365/planner/commands/roster/roster-member-add.js +4 -1
  20. package/dist/m365/planner/commands/roster/roster-member-get.js +4 -1
  21. package/dist/m365/planner/commands/roster/roster-member-list.js +4 -1
  22. package/dist/m365/planner/commands/roster/roster-member-remove.js +4 -1
  23. package/dist/m365/planner/commands/roster/roster-plan-list.js +4 -1
  24. package/dist/m365/planner/commands/roster/roster-remove.js +4 -1
  25. package/dist/m365/planner/commands/task/task-add.js +4 -1
  26. package/dist/m365/planner/commands/task/task-checklistitem-add.js +4 -1
  27. package/dist/m365/planner/commands/task/task-checklistitem-list.js +4 -1
  28. package/dist/m365/planner/commands/task/task-checklistitem-remove.js +4 -1
  29. package/dist/m365/planner/commands/task/task-get.js +4 -1
  30. package/dist/m365/planner/commands/task/task-list.js +4 -1
  31. package/dist/m365/planner/commands/task/task-reference-add.js +4 -1
  32. package/dist/m365/planner/commands/task/task-reference-list.js +4 -1
  33. package/dist/m365/planner/commands/task/task-reference-remove.js +4 -1
  34. package/dist/m365/planner/commands/task/task-remove.js +4 -1
  35. package/dist/m365/planner/commands/task/task-set.js +4 -1
  36. package/dist/m365/spfx/commands/project/project-doctor/{doctor-1.18.0-rc.1.js → doctor-1.18.0.js} +1 -1
  37. package/dist/m365/spfx/commands/project/project-doctor.js +1 -1
  38. package/dist/m365/spfx/commands/project/project-upgrade/{upgrade-1.18.0-rc.1.js → upgrade-1.18.0.js} +26 -26
  39. package/dist/m365/spfx/commands/project/project-upgrade.js +13 -15
  40. package/dist/m365/spfx/commands/spfx-doctor.js +1 -1
  41. package/dist/m365/spo/commands/file/file-get.js +2 -2
  42. package/dist/m365/spo/commands/file/file-remove.js +2 -2
  43. package/dist/m365/spo/commands/file/file-version-clear.js +2 -2
  44. package/dist/m365/spo/commands/file/file-version-get.js +2 -2
  45. package/dist/m365/spo/commands/file/file-version-list.js +2 -2
  46. package/dist/m365/spo/commands/file/file-version-remove.js +2 -2
  47. package/dist/m365/spo/commands/file/file-version-restore.js +2 -2
  48. package/dist/m365/spo/commands/group/group-member-add.js +24 -24
  49. package/dist/m365/spo/commands/page/page-set.js +13 -2
  50. package/dist/m365/spo/commands/site/site-commsite-enable.js +34 -5
  51. package/dist/m365/teams/commands/app/app-remove.js +49 -15
  52. package/dist/m365/teams/commands/channel/channel-member-add.js +8 -8
  53. package/docs/docs/cmd/aad/app/app-set.mdx +15 -15
  54. package/docs/docs/cmd/aad/approleassignment/approleassignment-add.mdx +9 -9
  55. package/docs/docs/cmd/aad/approleassignment/approleassignment-remove.mdx +10 -10
  56. package/docs/docs/cmd/aad/group/group-remove.mdx +44 -0
  57. package/docs/docs/cmd/aad/m365group/m365group-add.mdx +13 -3
  58. package/docs/docs/cmd/graph/subscription/subscription-add.mdx +10 -10
  59. package/docs/docs/cmd/spfx/project/project-upgrade.mdx +1 -1
  60. package/docs/docs/cmd/spo/file/file-get.mdx +2 -2
  61. package/docs/docs/cmd/spo/file/file-remove.mdx +2 -2
  62. package/docs/docs/cmd/spo/file/file-version-clear.mdx +2 -2
  63. package/docs/docs/cmd/spo/file/file-version-get.mdx +2 -2
  64. package/docs/docs/cmd/spo/file/file-version-list.mdx +2 -2
  65. package/docs/docs/cmd/spo/file/file-version-remove.mdx +2 -2
  66. package/docs/docs/cmd/spo/file/file-version-restore.mdx +2 -2
  67. package/docs/docs/cmd/spo/group/group-member-add.mdx +27 -27
  68. package/docs/docs/cmd/spo/list/list-contenttype-remove.mdx +1 -1
  69. package/docs/docs/cmd/spo/page/page-set.mdx +23 -0
  70. package/docs/docs/cmd/spo/site/site-commsite-enable.mdx +11 -2
  71. package/docs/docs/cmd/teams/app/app-remove.mdx +9 -6
  72. package/docs/docs/cmd/teams/channel/channel-member-add.mdx +4 -4
  73. package/package.json +2 -1
@@ -79,9 +79,9 @@ _SpoFileVersionClearCommand_instances = new WeakSet(), _SpoFileVersionClearComma
79
79
  });
80
80
  }, _SpoFileVersionClearCommand_initOptions = function _SpoFileVersionClearCommand_initOptions() {
81
81
  this.options.unshift({
82
- option: '-w, --webUrl <webUrl>'
82
+ option: '-u, --webUrl <webUrl>'
83
83
  }, {
84
- option: '-u, --fileUrl [fileUrl]'
84
+ option: '--fileUrl [fileUrl]'
85
85
  }, {
86
86
  option: '-i, --fileId [fileId]'
87
87
  }, {
@@ -67,11 +67,11 @@ _SpoFileVersionGetCommand_instances = new WeakSet(), _SpoFileVersionGetCommand_i
67
67
  });
68
68
  }, _SpoFileVersionGetCommand_initOptions = function _SpoFileVersionGetCommand_initOptions() {
69
69
  this.options.unshift({
70
- option: '-w, --webUrl <webUrl>'
70
+ option: '-u, --webUrl <webUrl>'
71
71
  }, {
72
72
  option: '--label <label>'
73
73
  }, {
74
- option: '-u, --fileUrl [fileUrl]'
74
+ option: '--fileUrl [fileUrl]'
75
75
  }, {
76
76
  option: '-i, --fileId [fileId]'
77
77
  });
@@ -59,9 +59,9 @@ _SpoFileVersionListCommand_instances = new WeakSet(), _SpoFileVersionListCommand
59
59
  });
60
60
  }, _SpoFileVersionListCommand_initOptions = function _SpoFileVersionListCommand_initOptions() {
61
61
  this.options.unshift({
62
- option: '-w, --webUrl <webUrl>'
62
+ option: '-u, --webUrl <webUrl>'
63
63
  }, {
64
- option: '-u, --fileUrl [fileUrl]'
64
+ option: '--fileUrl [fileUrl]'
65
65
  }, {
66
66
  option: '-i, --fileId [fileId]'
67
67
  });
@@ -80,11 +80,11 @@ _SpoFileVersionRemoveCommand_instances = new WeakSet(), _SpoFileVersionRemoveCom
80
80
  });
81
81
  }, _SpoFileVersionRemoveCommand_initOptions = function _SpoFileVersionRemoveCommand_initOptions() {
82
82
  this.options.unshift({
83
- option: '-w, --webUrl <webUrl>'
83
+ option: '-u, --webUrl <webUrl>'
84
84
  }, {
85
85
  option: '--label <label>'
86
86
  }, {
87
- option: '-u, --fileUrl [fileUrl]'
87
+ option: '--fileUrl [fileUrl]'
88
88
  }, {
89
89
  option: '-i, --fileId [fileId]'
90
90
  }, {
@@ -80,11 +80,11 @@ _SpoFileVersionRestoreCommand_instances = new WeakSet(), _SpoFileVersionRestoreC
80
80
  });
81
81
  }, _SpoFileVersionRestoreCommand_initOptions = function _SpoFileVersionRestoreCommand_initOptions() {
82
82
  this.options.unshift({
83
- option: '-w, --webUrl <webUrl>'
83
+ option: '-u, --webUrl <webUrl>'
84
84
  }, {
85
85
  option: '--label <label>'
86
86
  }, {
87
- option: '-u, --fileUrl [fileUrl]'
87
+ option: '--fileUrl [fileUrl]'
88
88
  }, {
89
89
  option: '-i, --fileId [fileId]'
90
90
  }, {
@@ -82,24 +82,24 @@ class SpoGroupMemberAddCommand extends SpoCommand {
82
82
  await logger.logToStderr('Checking if the specified users and groups exist');
83
83
  }
84
84
  const validUserNames = [];
85
- const identifiers = args.options.userName ?? args.options.email ?? args.options.aadGroupId ?? args.options.aadGroupName ?? args.options.userId.toString();
85
+ const identifiers = args.options.userNames ?? args.options.emails ?? args.options.aadGroupIds ?? args.options.aadGroupNames ?? args.options.userIds.toString();
86
86
  await Promise.all(identifiers.split(',').map(async (identifier) => {
87
87
  const trimmedIdentifier = identifier.trim();
88
88
  try {
89
- if (args.options.userId) {
89
+ if (args.options.userIds) {
90
90
  if (this.verbose) {
91
91
  await logger.logToStderr(`Getting AAD ID of user with ID ${trimmedIdentifier}`);
92
92
  }
93
93
  const spoUserAzureId = await spo.getUserAzureIdBySpoId(args.options.webUrl, trimmedIdentifier);
94
94
  validUserNames.push(spoUserAzureId);
95
95
  }
96
- else if (args.options.userName) {
96
+ else if (args.options.userNames) {
97
97
  validUserNames.push(trimmedIdentifier);
98
98
  }
99
- else if (args.options.aadGroupId) {
99
+ else if (args.options.aadGroupIds) {
100
100
  validUserNames.push(trimmedIdentifier);
101
101
  }
102
- else if (args.options.aadGroupName) {
102
+ else if (args.options.aadGroupNames) {
103
103
  if (this.verbose) {
104
104
  await logger.logToStderr(`Getting ID of Azure AD group ${trimmedIdentifier}`);
105
105
  }
@@ -132,11 +132,11 @@ _SpoGroupMemberAddCommand_instances = new WeakSet(), _SpoGroupMemberAddCommand_i
132
132
  Object.assign(this.telemetryProperties, {
133
133
  groupId: typeof args.options.groupId !== 'undefined',
134
134
  groupName: typeof args.options.groupName !== 'undefined',
135
- userName: typeof args.options.userName !== 'undefined',
136
- email: typeof args.options.email !== 'undefined',
137
- userId: typeof args.options.userId !== 'undefined',
138
- aadGroupId: typeof args.options.aadGroupId !== 'undefined',
139
- aadGroupName: typeof args.options.aadGroupName !== 'undefined'
135
+ userNames: typeof args.options.userNames !== 'undefined',
136
+ emails: typeof args.options.emails !== 'undefined',
137
+ userIds: typeof args.options.userIds !== 'undefined',
138
+ aadGroupIds: typeof args.options.aadGroupIds !== 'undefined',
139
+ aadGroupNames: typeof args.options.aadGroupNames !== 'undefined'
140
140
  });
141
141
  });
142
142
  }, _SpoGroupMemberAddCommand_initOptions = function _SpoGroupMemberAddCommand_initOptions() {
@@ -147,15 +147,15 @@ _SpoGroupMemberAddCommand_instances = new WeakSet(), _SpoGroupMemberAddCommand_i
147
147
  }, {
148
148
  option: '--groupName [groupName]'
149
149
  }, {
150
- option: '--userName [userName]'
150
+ option: '--userNames [userNames]'
151
151
  }, {
152
- option: '--email [email]'
152
+ option: '--emails [emails]'
153
153
  }, {
154
- option: '--userId [userId]'
154
+ option: '--userIds [userIds]'
155
155
  }, {
156
- option: '--aadGroupId [aadGroupId]'
156
+ option: '--aadGroupIds [aadGroupIds]'
157
157
  }, {
158
- option: '--aadGroupName [aadGroupName]'
158
+ option: '--aadGroupNames [aadGroupNames]'
159
159
  });
160
160
  }, _SpoGroupMemberAddCommand_initValidators = function _SpoGroupMemberAddCommand_initValidators() {
161
161
  this.validators.push(async (args) => {
@@ -167,22 +167,22 @@ _SpoGroupMemberAddCommand_instances = new WeakSet(), _SpoGroupMemberAddCommand_i
167
167
  return `Specified groupId ${args.options.groupId} is not a number`;
168
168
  }
169
169
  const userIdReg = new RegExp(/^[0-9,]*$/);
170
- if (args.options.userId && !userIdReg.test(args.options.userId)) {
171
- return `${args.options.userId} is not a number or a comma seperated value`;
170
+ if (args.options.userIds && !userIdReg.test(args.options.userIds)) {
171
+ return `${args.options.userIds} is not a number or a comma separated value`;
172
172
  }
173
- if (args.options.userName && args.options.userName.split(',').some(e => !validation.isValidUserPrincipalName(e))) {
174
- return `${args.options.userName} contains one or more invalid usernames`;
173
+ if (args.options.userNames && args.options.userNames.split(',').some(e => !validation.isValidUserPrincipalName(e))) {
174
+ return `${args.options.userNames} contains one or more invalid usernames`;
175
175
  }
176
- if (args.options.email && args.options.email.split(',').some(e => !validation.isValidUserPrincipalName(e))) {
177
- return `${args.options.email} contains one or more invalid email addresses`;
176
+ if (args.options.emails && args.options.emails.split(',').some(e => !validation.isValidUserPrincipalName(e))) {
177
+ return `${args.options.emails} contains one or more invalid email addresses`;
178
178
  }
179
- if (args.options.aadGroupId && args.options.aadGroupId.split(',').some(e => !validation.isValidGuid(e))) {
180
- return `${args.options.aadGroupId} contains one or more invalid GUIDs`;
179
+ if (args.options.aadGroupIds && args.options.aadGroupIds.split(',').some(e => !validation.isValidGuid(e))) {
180
+ return `${args.options.aadGroupIds} contains one or more invalid GUIDs`;
181
181
  }
182
182
  return true;
183
183
  });
184
184
  }, _SpoGroupMemberAddCommand_initOptionSets = function _SpoGroupMemberAddCommand_initOptionSets() {
185
- this.optionSets.push({ options: ['groupId', 'groupName'] }, { options: ['userName', 'email', 'userId', 'aadGroupId', 'aadGroupName'] });
185
+ this.optionSets.push({ options: ['groupId', 'groupName'] }, { options: ['userNames', 'emails', 'userIds', 'aadGroupIds', 'aadGroupNames'] });
186
186
  };
187
187
  export default new SpoGroupMemberAddCommand();
188
188
  //# sourceMappingURL=group-member-add.js.map
@@ -58,7 +58,7 @@ class SpoPageSetCommand extends SpoCommand {
58
58
  pageTitle = pageTitle || page.Title;
59
59
  pageId = page.Id;
60
60
  bannerImageUrl = page.BannerImageUrl;
61
- canvasContent1 = page.CanvasContent1;
61
+ canvasContent1 = args.options.content || page.CanvasContent1;
62
62
  layoutWebpartsContent = page.LayoutWebpartsContent;
63
63
  pageDescription = pageDescription || page.Description;
64
64
  topicHeader = page.TopicHeader;
@@ -277,7 +277,8 @@ _SpoPageSetCommand_instances = new WeakSet(), _SpoPageSetCommand_initTelemetry =
277
277
  publish: args.options.publish || false,
278
278
  publishMessage: typeof args.options.publishMessage !== 'undefined',
279
279
  description: typeof args.options.description !== 'undefined',
280
- title: typeof args.options.title !== 'undefined'
280
+ title: typeof args.options.title !== 'undefined',
281
+ content: typeof args.options.content !== 'undefined'
281
282
  });
282
283
  });
283
284
  }, _SpoPageSetCommand_initOptions = function _SpoPageSetCommand_initOptions() {
@@ -305,6 +306,8 @@ _SpoPageSetCommand_instances = new WeakSet(), _SpoPageSetCommand_initTelemetry =
305
306
  option: '--description [description]'
306
307
  }, {
307
308
  option: '--title [title]'
309
+ }, {
310
+ option: '--content [content]'
308
311
  });
309
312
  }, _SpoPageSetCommand_initTypes = function _SpoPageSetCommand_initTypes() {
310
313
  this.types.boolean.push('commentsEnabled');
@@ -332,6 +335,14 @@ _SpoPageSetCommand_instances = new WeakSet(), _SpoPageSetCommand_initTelemetry =
332
335
  if (args.options.promoteAs === 'NewsPage' && args.options.layoutType && args.options.layoutType !== 'Article') {
333
336
  return 'You can only promote article pages as news article';
334
337
  }
338
+ if (args.options.content) {
339
+ try {
340
+ JSON.parse(args.options.content);
341
+ }
342
+ catch (e) {
343
+ return `Specified content is not a valid JSON string. Input: ${args.options.content}. Error: ${e}`;
344
+ }
345
+ }
335
346
  return true;
336
347
  });
337
348
  };
@@ -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 _SpoSiteCommSiteEnableCommand_instances, _SpoSiteCommSiteEnableCommand_initTelemetry, _SpoSiteCommSiteEnableCommand_initOptions, _SpoSiteCommSiteEnableCommand_initValidators;
6
+ var _SpoSiteCommSiteEnableCommand_instances, _SpoSiteCommSiteEnableCommand_initTelemetry, _SpoSiteCommSiteEnableCommand_initOptions, _SpoSiteCommSiteEnableCommand_initOptionSets, _SpoSiteCommSiteEnableCommand_initValidators;
7
7
  import request from '../../../../request.js';
8
8
  import { validation } from '../../../../utils/validation.js';
9
9
  import SpoCommand from '../../../base/SpoCommand.js';
@@ -21,11 +21,12 @@ class SpoSiteCommSiteEnableCommand extends SpoCommand {
21
21
  __classPrivateFieldGet(this, _SpoSiteCommSiteEnableCommand_instances, "m", _SpoSiteCommSiteEnableCommand_initTelemetry).call(this);
22
22
  __classPrivateFieldGet(this, _SpoSiteCommSiteEnableCommand_instances, "m", _SpoSiteCommSiteEnableCommand_initOptions).call(this);
23
23
  __classPrivateFieldGet(this, _SpoSiteCommSiteEnableCommand_instances, "m", _SpoSiteCommSiteEnableCommand_initValidators).call(this);
24
+ __classPrivateFieldGet(this, _SpoSiteCommSiteEnableCommand_instances, "m", _SpoSiteCommSiteEnableCommand_initOptionSets).call(this);
24
25
  }
25
26
  async commandAction(logger, args) {
26
- const designPackageId = args.options.designPackageId || '96c933ac-3698-44c7-9f4a-5fd17d71af9e';
27
+ const designPackageId = this.getDesignPackageId(args.options);
27
28
  if (this.verbose) {
28
- logger.logToStderr(`Enabling communication site at ${args.options.url}...`);
29
+ logger.logToStderr(`Enabling communication site with design package '${designPackageId}' at '${args.options.url}'...`);
29
30
  }
30
31
  try {
31
32
  const requestOptions = {
@@ -42,11 +43,26 @@ class SpoSiteCommSiteEnableCommand extends SpoCommand {
42
43
  this.handleRejectedODataJsonPromise(err);
43
44
  }
44
45
  }
46
+ getDesignPackageId(options) {
47
+ if (options.designPackageId) {
48
+ return options.designPackageId;
49
+ }
50
+ switch (options.designPackage) {
51
+ case 'Blank':
52
+ return 'f6cc5403-0d63-442e-96c0-285923709ffc';
53
+ case 'Showcase':
54
+ return '6142d2a0-63a5-4ba0-aede-d9fefca2c767';
55
+ case 'Topic':
56
+ default:
57
+ return '96c933ac-3698-44c7-9f4a-5fd17d71af9e';
58
+ }
59
+ }
45
60
  }
46
61
  _SpoSiteCommSiteEnableCommand_instances = new WeakSet(), _SpoSiteCommSiteEnableCommand_initTelemetry = function _SpoSiteCommSiteEnableCommand_initTelemetry() {
47
62
  this.telemetry.push((args) => {
48
63
  Object.assign(this.telemetryProperties, {
49
- designPackageId: typeof args.options.designPackageId !== 'undefined'
64
+ designPackageId: typeof args.options.designPackageId !== 'undefined',
65
+ designPackage: typeof args.options.designPackage !== 'undefined'
50
66
  });
51
67
  });
52
68
  }, _SpoSiteCommSiteEnableCommand_initOptions = function _SpoSiteCommSiteEnableCommand_initOptions() {
@@ -54,12 +70,25 @@ _SpoSiteCommSiteEnableCommand_instances = new WeakSet(), _SpoSiteCommSiteEnableC
54
70
  option: '-u, --url <url>'
55
71
  }, {
56
72
  option: '-i, --designPackageId [designPackageId]'
73
+ }, {
74
+ option: '-p, --designPackage [designPackage]',
75
+ autocomplete: ["Topic", "Showcase", "Blank"]
76
+ });
77
+ }, _SpoSiteCommSiteEnableCommand_initOptionSets = function _SpoSiteCommSiteEnableCommand_initOptionSets() {
78
+ this.optionSets.push({
79
+ options: ['designPackageId', 'designPackage'],
80
+ runsWhen: (args) => args.options.designPackageId || args.options.designPackage
57
81
  });
58
82
  }, _SpoSiteCommSiteEnableCommand_initValidators = function _SpoSiteCommSiteEnableCommand_initValidators() {
59
83
  this.validators.push(async (args) => {
60
84
  if (args.options.designPackageId &&
61
85
  !validation.isValidGuid(args.options.designPackageId)) {
62
- return `${args.options.designPackageId} is not a valid GUID`;
86
+ return `${args.options.designPackageId} is not a valid GUID.`;
87
+ }
88
+ if (args.options.designPackage) {
89
+ if (['Topic', 'Showcase', 'Blank'].indexOf(args.options.designPackage) === -1) {
90
+ return `${args.options.designPackage} is not a valid designPackage. Allowed values are Topic|Showcase|Blank`;
91
+ }
63
92
  }
64
93
  return validation.isValidSharePointUrl(args.options.url);
65
94
  });
@@ -3,9 +3,10 @@ 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 _TeamsAppRemoveCommand_instances, _TeamsAppRemoveCommand_initTelemetry, _TeamsAppRemoveCommand_initOptions, _TeamsAppRemoveCommand_initValidators;
6
+ var _TeamsAppRemoveCommand_instances, _TeamsAppRemoveCommand_initTelemetry, _TeamsAppRemoveCommand_initOptions, _TeamsAppRemoveCommand_initValidators, _TeamsAppRemoveCommand_initOptionSets;
7
7
  import { Cli } from '../../../../cli/Cli.js';
8
8
  import request from '../../../../request.js';
9
+ import { formatting } from '../../../../utils/formatting.js';
9
10
  import { validation } from '../../../../utils/validation.js';
10
11
  import GraphCommand from '../../../base/GraphCommand.js';
11
12
  import commands from '../../commands.js';
@@ -22,20 +23,21 @@ class TeamsAppRemoveCommand extends GraphCommand {
22
23
  __classPrivateFieldGet(this, _TeamsAppRemoveCommand_instances, "m", _TeamsAppRemoveCommand_initTelemetry).call(this);
23
24
  __classPrivateFieldGet(this, _TeamsAppRemoveCommand_instances, "m", _TeamsAppRemoveCommand_initOptions).call(this);
24
25
  __classPrivateFieldGet(this, _TeamsAppRemoveCommand_instances, "m", _TeamsAppRemoveCommand_initValidators).call(this);
26
+ __classPrivateFieldGet(this, _TeamsAppRemoveCommand_instances, "m", _TeamsAppRemoveCommand_initOptionSets).call(this);
25
27
  }
26
28
  async commandAction(logger, args) {
27
- const { id: appId } = args.options;
28
29
  const removeApp = async () => {
29
- if (this.verbose) {
30
- await logger.logToStderr(`Removing app with ID ${args.options.id}`);
31
- }
32
- const requestOptions = {
33
- url: `${this.resource}/v1.0/appCatalogs/teamsApps/${appId}`,
34
- headers: {
35
- accept: 'application/json;odata.metadata=none'
36
- }
37
- };
38
30
  try {
31
+ const appId = await this.getAppId(args.options, logger);
32
+ if (this.verbose) {
33
+ await logger.logToStderr(`Removing app with ID ${appId}`);
34
+ }
35
+ const requestOptions = {
36
+ url: `${this.resource}/v1.0/appCatalogs/teamsApps/${appId}`,
37
+ headers: {
38
+ accept: 'application/json;odata.metadata=none'
39
+ }
40
+ };
39
41
  await request.delete(requestOptions);
40
42
  }
41
43
  catch (err) {
@@ -50,33 +52,65 @@ class TeamsAppRemoveCommand extends GraphCommand {
50
52
  type: 'confirm',
51
53
  name: 'continue',
52
54
  default: false,
53
- message: `Are you sure you want to remove the Teams app ${appId} from the app catalog?`
55
+ message: `Are you sure you want to remove the Teams app ${args.options.id || args.options.name} from the app catalog?`
54
56
  });
55
57
  if (result.continue) {
56
58
  await removeApp();
57
59
  }
58
60
  }
59
61
  }
62
+ async getAppId(options, logger) {
63
+ if (options.id) {
64
+ return options.id;
65
+ }
66
+ if (this.verbose) {
67
+ await logger.logToStderr(`Retrieving app Id...`);
68
+ }
69
+ const requestOptions = {
70
+ url: `${this.resource}/v1.0/appCatalogs/teamsApps?$filter=displayName eq '${formatting.encodeQueryParameter(options.name)}'&$select=id`,
71
+ headers: {
72
+ accept: 'application/json;odata.metadata=none'
73
+ },
74
+ responseType: 'json'
75
+ };
76
+ const response = await request.get(requestOptions);
77
+ const app = response.value[0];
78
+ if (!app) {
79
+ throw `The specified Teams app does not exist`;
80
+ }
81
+ if (response.value.length > 1) {
82
+ const resultAsKeyValuePair = formatting.convertArrayToHashTable('id', response.value);
83
+ const result = await Cli.handleMultipleResultsFound(`Multiple Teams apps with name '${options.name}' found.`, resultAsKeyValuePair);
84
+ return result.id;
85
+ }
86
+ return app.id;
87
+ }
60
88
  }
61
89
  _TeamsAppRemoveCommand_instances = new WeakSet(), _TeamsAppRemoveCommand_initTelemetry = function _TeamsAppRemoveCommand_initTelemetry() {
62
90
  this.telemetry.push((args) => {
63
91
  Object.assign(this.telemetryProperties, {
64
- force: (!(!args.options.force)).toString()
92
+ force: (!(!args.options.force)).toString(),
93
+ id: typeof args.options.id !== 'undefined',
94
+ name: typeof args.options.name !== 'undefined'
65
95
  });
66
96
  });
67
97
  }, _TeamsAppRemoveCommand_initOptions = function _TeamsAppRemoveCommand_initOptions() {
68
98
  this.options.unshift({
69
- option: '-i, --id <id>'
99
+ option: '-i, --id [id]'
100
+ }, {
101
+ option: '-n, --name [name]'
70
102
  }, {
71
103
  option: '-f, --force'
72
104
  });
73
105
  }, _TeamsAppRemoveCommand_initValidators = function _TeamsAppRemoveCommand_initValidators() {
74
106
  this.validators.push(async (args) => {
75
- if (!validation.isValidGuid(args.options.id)) {
107
+ if (args.options.id && !validation.isValidGuid(args.options.id)) {
76
108
  return `${args.options.id} is not a valid GUID`;
77
109
  }
78
110
  return true;
79
111
  });
112
+ }, _TeamsAppRemoveCommand_initOptionSets = function _TeamsAppRemoveCommand_initOptionSets() {
113
+ this.optionSets.push({ options: ['id', 'name'] });
80
114
  };
81
115
  export default new TeamsAppRemoveCommand();
82
116
  //# sourceMappingURL=app-remove.js.map
@@ -91,11 +91,11 @@ class TeamsChannelMemberAddCommand extends GraphCommand {
91
91
  return channelItem.id;
92
92
  }
93
93
  async getUserId(args) {
94
- if (args.options.userId) {
95
- return args.options.userId.split(',').map(u => u.trim());
94
+ if (args.options.userIds) {
95
+ return args.options.userIds.split(',').map(u => u.trim());
96
96
  }
97
97
  const tasks = [];
98
- const userDisplayNames = args.options.userDisplayName && args.options.userDisplayName.split(',').map(u => u.trim());
98
+ const userDisplayNames = args.options.userDisplayNames && args.options.userDisplayNames.split(',').map(u => u.trim());
99
99
  for (const userName of userDisplayNames) {
100
100
  tasks.push(this.getSingleUser(userName));
101
101
  }
@@ -129,8 +129,8 @@ _TeamsChannelMemberAddCommand_instances = new WeakSet(), _TeamsChannelMemberAddC
129
129
  teamName: typeof args.options.teamName !== 'undefined',
130
130
  channelId: typeof args.options.channelId !== 'undefined',
131
131
  channelName: typeof args.options.channelName !== 'undefined',
132
- userId: typeof args.options.userId !== 'undefined',
133
- userDisplayName: typeof args.options.userDisplayName !== 'undefined',
132
+ userIds: typeof args.options.userIds !== 'undefined',
133
+ userDisplayNames: typeof args.options.userDisplayNames !== 'undefined',
134
134
  owner: args.options.owner
135
135
  });
136
136
  });
@@ -144,9 +144,9 @@ _TeamsChannelMemberAddCommand_instances = new WeakSet(), _TeamsChannelMemberAddC
144
144
  }, {
145
145
  option: '--channelName [channelName]'
146
146
  }, {
147
- option: '--userId [userId]'
147
+ option: '--userIds [userIds]'
148
148
  }, {
149
- option: '--userDisplayName [userDisplayName]'
149
+ option: '--userDisplayNames [userDisplayNames]'
150
150
  }, {
151
151
  option: '--owner'
152
152
  });
@@ -161,7 +161,7 @@ _TeamsChannelMemberAddCommand_instances = new WeakSet(), _TeamsChannelMemberAddC
161
161
  return true;
162
162
  });
163
163
  }, _TeamsChannelMemberAddCommand_initOptionSets = function _TeamsChannelMemberAddCommand_initOptionSets() {
164
- this.optionSets.push({ options: ['teamId', 'teamName'] }, { options: ['channelId', 'channelName'] }, { options: ['userId', 'userDisplayName'] });
164
+ this.optionSets.push({ options: ['teamId', 'teamName'] }, { options: ['channelId', 'channelName'] }, { options: ['userIds', 'userDisplayNames'] });
165
165
  };
166
166
  export default new TeamsChannelMemberAddCommand();
167
167
  //# sourceMappingURL=channel-member-add.js.map
@@ -14,34 +14,34 @@ m365 aad app set [options]
14
14
 
15
15
  ```md definition-list
16
16
  `--appId [appId]`
17
- : Application (client) ID of the Azure AD application registration to update. Specify either `appId`, `objectId` or `name`
17
+ : Application (client) ID of the Azure AD application registration to update. Specify either `appId`, `objectId` or `name`.
18
18
 
19
19
  `--objectId [objectId]`
20
- : Object ID of the Azure AD application registration to update. Specify either `appId`, `objectId` or `name`
20
+ : Object ID of the Azure AD application registration to update. Specify either `appId`, `objectId` or `name`.
21
21
 
22
22
  `--name [name]`
23
- : Name of the Azure AD application registration to update. Specify either `appId`, `objectId` or `name`
23
+ : Name of the Azure AD application registration to update. Specify either `appId`, `objectId` or `name`.
24
24
 
25
- `-u, --uri [uri]`
26
- : Comma-separated list of Application ID URIs to update
25
+ `-u, --uris [uris]`
26
+ : Comma-separated list of Application ID URIs to update.
27
27
 
28
28
  `-r, --redirectUris [redirectUris]`
29
- : Comma-separated list of redirect URIs to add to the app registration. Requires `platform` to be specified
29
+ : Comma-separated list of redirect URIs to add to the app registration. Requires `platform` to be specified.
30
30
 
31
31
  `-p, --platform [platform]`
32
- : Platform for which the `redirectUri` should be configured. Allowed values `spa`, `web`, `publicClient`
32
+ : Platform for which the `redirectUri` should be configured. Allowed values `spa`, `web`, `publicClient`.
33
33
 
34
34
  `--redirectUrisToRemove [redirectUrisToRemove]`
35
- : Comma-separated list of existing redirect URIs to remove. Specify, when you want to replace existing redirect URIs with another
35
+ : Comma-separated list of existing redirect URIs to remove. Specify, when you want to replace existing redirect URIs with another.
36
36
 
37
37
  `--certificateFile [certificateFile]`
38
- : Path to the file with certificate public key. Specify either `certificateFile` or `certificateBase64Encoded`
38
+ : Path to the file with certificate public key. Specify either `certificateFile` or `certificateBase64Encoded`.
39
39
 
40
40
  `--certificateBase64Encoded [certificateBase64Encoded]`
41
- : Base64-encoded string with certificate public key. Specify either `certificateFile` or `certificateBase64Encoded`
41
+ : Base64-encoded string with certificate public key. Specify either `certificateFile` or `certificateBase64Encoded`.
42
42
 
43
43
  `--certificateDisplayName [certificateDisplayName]`
44
- : Display name for the certificate. If not given, the displayName will be set to the certificate subject. When specified, also specify either `certificateFile` or `certificateBase64Encoded`
44
+ : Display name for the certificate. If not given, the displayName will be set to the certificate subject. When specified, also specify either `certificateFile` or `certificateBase64Encoded`.
45
45
  ```
46
46
 
47
47
  <Global />
@@ -59,19 +59,19 @@ When a certificate is specified it will be added to the list of certificates of
59
59
  Update the app URI of the Azure AD application registration specified by its object ID
60
60
 
61
61
  ```sh
62
- m365 aad app set --objectId d75be2e1-0204-4f95-857d-51a37cf40be8 --uri https://contoso.com/e75be2e1-0204-4f95-857d-51a37cf40be8
62
+ m365 aad app set --objectId d75be2e1-0204-4f95-857d-51a37cf40be8 --uris https://contoso.com/e75be2e1-0204-4f95-857d-51a37cf40be8
63
63
  ```
64
64
 
65
65
  Update the app URI of the Azure AD application registration specified by its app (client) ID
66
66
 
67
67
  ```sh
68
- m365 aad app set --appId e75be2e1-0204-4f95-857d-51a37cf40be8 --uri https://contoso.com/e75be2e1-0204-4f95-857d-51a37cf40be8
68
+ m365 aad app set --appId e75be2e1-0204-4f95-857d-51a37cf40be8 --uris https://contoso.com/e75be2e1-0204-4f95-857d-51a37cf40be8
69
69
  ```
70
70
 
71
71
  Update the app URI of the Azure AD application registration specified by its name
72
72
 
73
73
  ```sh
74
- m365 aad app set --name "My app" --uri https://contoso.com/e75be2e1-0204-4f95-857d-51a37cf40be8
74
+ m365 aad app set --name "My app" --uris https://contoso.com/e75be2e1-0204-4f95-857d-51a37cf40be8
75
75
  ```
76
76
 
77
77
  Add a new redirect URI for SPA authentication
@@ -94,4 +94,4 @@ m365 aad app set --appId e75be2e1-0204-4f95-857d-51a37cf40be8 --certificateDispl
94
94
 
95
95
  ## Response
96
96
 
97
- The command won't return a response on success.
97
+ The command won't return a response on success.
@@ -16,19 +16,19 @@ m365 aad approleassignment add [options]
16
16
 
17
17
  ```md definition-list
18
18
  `--appId [appId]`
19
- : Application appId also known as clientId of the App Registration to which the configured scopes (app roles) should be applied
19
+ : Application appId also known as clientId of the App Registration to which the configured scopes (app roles) should be applied.
20
20
 
21
21
  `--appObjectId [appObjectId]`
22
- : Application objectId of the App Registration to which the configured scopes (app roles) should be applied
22
+ : Application objectId of the App Registration to which the configured scopes (app roles) should be applied.
23
23
 
24
24
  `--appDisplayName [appDisplayName]`
25
- : Application name of the App Registration to which the configured scopes (app roles) should be applied
25
+ : Application name of the App Registration to which the configured scopes (app roles) should be applied.
26
26
 
27
27
  `-r, --resource <resource>`
28
28
  : Service principal name, appId or objectId that has the scopes (roles) e.g. `SharePoint`.
29
29
 
30
- `-s, --scope <scope>`
31
- : Permissions known also as scopes and roles to grant the application with. If multiple permissions have to be granted, they have to be comma-separated e.g. `Sites.Read.All`, `Sites.ReadWrite.all`
30
+ `-s, --scopes <scopes>`
31
+ : Permissions known also as scopes and roles to grant the application with. If multiple permissions have to be granted, they have to be comma-separated e.g. `Sites.Read.All`, `Sites.ReadWrite.all`.
32
32
  ```
33
33
 
34
34
  <Global />
@@ -48,19 +48,19 @@ This command can also be used to assign permissions to system or user-assigned m
48
48
  Adds SharePoint _Sites.Read.All_ application permissions to Azure AD application with app id _57907bf8-73fa-43a6-89a5-1f603e29e451_
49
49
 
50
50
  ```sh
51
- m365 aad approleassignment add --appId "57907bf8-73fa-43a6-89a5-1f603e29e451" --resource "SharePoint" --scope "Sites.Read.All"
51
+ m365 aad approleassignment add --appId "57907bf8-73fa-43a6-89a5-1f603e29e451" --resource "SharePoint" --scopes "Sites.Read.All"
52
52
  ```
53
53
 
54
54
  Adds multiple Microsoft Graph application permissions to an Azure AD application with the name _MyAppName__
55
55
 
56
56
  ```sh
57
- m365 aad approleassignment add --appDisplayName "MyAppName" --resource "Microsoft Graph" --scope "Mail.Read,Mail.Send"
57
+ m365 aad approleassignment add --appDisplayName "MyAppName" --resource "Microsoft Graph" --scopes "Mail.Read,Mail.Send"
58
58
  ```
59
59
 
60
60
  Adds Microsoft Graph _Mail.Read_ application permissions to a system-managed identity app with objectId _57907bf8-73fa-43a6-89a5-1f603e29e451_
61
61
 
62
62
  ```sh
63
- m365 aad approleassignment add --appObjectId "57907bf8-73fa-43a6-89a5-1f603e29e451" --resource "Microsoft Graph" --scope "Mail.Read"
63
+ m365 aad approleassignment add --appObjectId "57907bf8-73fa-43a6-89a5-1f603e29e451" --resource "Microsoft Graph" --scopes "Mail.Read"
64
64
  ```
65
65
 
66
66
  ## Response
@@ -106,7 +106,7 @@ m365 aad approleassignment add --appObjectId "57907bf8-73fa-43a6-89a5-1f603e29e4
106
106
  <TabItem value="Markdown">
107
107
 
108
108
  ```md
109
- # aad approleassignment add --appId "e89804ac-a571-48cf-b2ba-fd57b5d49993" --resource "Microsoft Graph" --scope "Mail.Read"
109
+ # aad approleassignment add --appId "e89804ac-a571-48cf-b2ba-fd57b5d49993" --resource "Microsoft Graph" --scopes "Mail.Read"
110
110
 
111
111
  Date: 2023-06-01
112
112
 
@@ -14,22 +14,22 @@ m365 aad approleassignment remove [options]
14
14
 
15
15
  ```md definition-list
16
16
  `--appId [appId]`
17
- : Application appId also known as clientId of the App Registration for which the configured scopes (app roles) should be deleted
17
+ : Application appId also known as clientId of the App Registration for which the configured scopes (app roles) should be deleted.
18
18
 
19
19
  `--appObjectId [appObjectId]`
20
- : Application objectId of the App Registration for which the configured scopes (app roles) should be deleted
20
+ : Application objectId of the App Registration for which the configured scopes (app roles) should be deleted.
21
21
 
22
22
  `--appDisplayName [appDisplayName]`
23
- : Application name of the App Registration for which the configured scopes (app roles) should be deleted
23
+ : Application name of the App Registration for which the configured scopes (app roles) should be deleted.
24
24
 
25
25
  `-r, --resource <resource>`
26
- : Service principal name, appId or objectId that has the scopes (roles) e.g. `SharePoint`
26
+ : Service principal name, appId or objectId that has the scopes (roles) e.g. `SharePoint`.
27
27
 
28
- `-s, --scope <scope>`
29
- : Permissions known also as scopes and roles to be deleted from the application. If multiple permissions have to be deleted, they have to be comma-separated e.g. `Sites.Read.All`,`Sites.ReadWrite.All`
28
+ `-s, --scopes <scopes>`
29
+ : Permissions known also as scopes and roles to be deleted from the application. If multiple permissions have to be deleted, they have to be comma-separated e.g. `Sites.Read.All`,`Sites.ReadWrite.All`.
30
30
 
31
31
  `-f, --force`
32
- : Don't prompt for confirming removing the all role assignment
32
+ : Don't prompt for confirming removing the all role assignment.
33
33
  ```
34
34
 
35
35
  <Global />
@@ -49,19 +49,19 @@ This command can also be used to assign permissions to system- or user-assigned
49
49
  Deletes SharePoint _Sites.Read.All_ application permissions from Azure AD application with app id _57907bf8-73fa-43a6-89a5-1f603e29e451_
50
50
 
51
51
  ```sh
52
- m365 aad approleassignment remove --appId "57907bf8-73fa-43a6-89a5-1f603e29e451" --resource "SharePoint" --scope "Sites.Read.All"
52
+ m365 aad approleassignment remove --appId "57907bf8-73fa-43a6-89a5-1f603e29e451" --resource "SharePoint" --scopes "Sites.Read.All"
53
53
  ```
54
54
 
55
55
  Deletes multiple Microsoft Graph application permissions from an Azure AD application with name _MyAppName_
56
56
 
57
57
  ```sh
58
- m365 aad approleassignment remove --appDisplayName "MyAppName" --resource "Microsoft Graph" --scope "Mail.Read,Mail.Send"
58
+ m365 aad approleassignment remove --appDisplayName "MyAppName" --resource "Microsoft Graph" --scopes "Mail.Read,Mail.Send"
59
59
  ```
60
60
 
61
61
  Deletes Microsoft Graph _Mail.Read_ application permissions from a system-managed identity app with objectId _57907bf8-73fa-43a6-89a5-1f603e29e451_
62
62
 
63
63
  ```sh
64
- m365 aad approleassignment remove --appObjectId "57907bf8-73fa-43a6-89a5-1f603e29e451" --resource "Microsoft Graph" --scope "Mail.Read"
64
+ m365 aad approleassignment remove --appObjectId "57907bf8-73fa-43a6-89a5-1f603e29e451" --resource "Microsoft Graph" --scopes "Mail.Read"
65
65
  ```
66
66
 
67
67
  ## Response