@pnp/cli-microsoft365 7.0.0-beta.68fea7b → 7.0.0-beta.86298a0

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 (84) hide show
  1. package/dist/m365/aad/commands/user/user-list.js +3 -6
  2. package/dist/m365/aad/commands/user/user-set.js +20 -20
  3. package/dist/m365/flow/commands/environment/environment-get.js +7 -5
  4. package/dist/m365/flow/commands/environment/environment-list.js +6 -13
  5. package/dist/m365/flow/commands/run/run-list.js +2 -7
  6. package/dist/m365/pa/commands/app/app-consent-set.js +2 -2
  7. package/dist/m365/pa/commands/app/app-export.js +3 -3
  8. package/dist/m365/pa/commands/app/app-list.js +5 -5
  9. package/dist/m365/planner/commands/roster/roster-member-add.js +3 -14
  10. package/dist/m365/pp/commands/aibuildermodel/aibuildermodel-get.js +2 -2
  11. package/dist/m365/pp/commands/aibuildermodel/aibuildermodel-list.js +2 -2
  12. package/dist/m365/pp/commands/aibuildermodel/aibuildermodel-remove.js +3 -3
  13. package/dist/m365/pp/commands/card/card-clone.js +3 -3
  14. package/dist/m365/pp/commands/card/card-get.js +2 -2
  15. package/dist/m365/pp/commands/card/card-list.js +2 -2
  16. package/dist/m365/pp/commands/card/card-remove.js +3 -3
  17. package/dist/m365/pp/commands/chatbot/chatbot-get.js +2 -2
  18. package/dist/m365/pp/commands/chatbot/chatbot-list.js +3 -3
  19. package/dist/m365/pp/commands/chatbot/chatbot-remove.js +3 -3
  20. package/dist/m365/pp/commands/dataverse/dataverse-table-get.js +2 -2
  21. package/dist/m365/pp/commands/dataverse/dataverse-table-list.js +2 -2
  22. package/dist/m365/pp/commands/dataverse/dataverse-table-remove.js +2 -2
  23. package/dist/m365/pp/commands/dataverse/dataverse-table-row-list.js +2 -2
  24. package/dist/m365/pp/commands/dataverse/dataverse-table-row-remove.js +2 -2
  25. package/dist/m365/pp/commands/solution/solution-get.js +2 -2
  26. package/dist/m365/pp/commands/solution/solution-list.js +2 -2
  27. package/dist/m365/pp/commands/solution/solution-publish.js +3 -3
  28. package/dist/m365/pp/commands/solution/solution-publisher-add.js +2 -2
  29. package/dist/m365/pp/commands/solution/solution-publisher-get.js +2 -2
  30. package/dist/m365/pp/commands/solution/solution-publisher-list.js +2 -2
  31. package/dist/m365/pp/commands/solution/solution-publisher-remove.js +3 -3
  32. package/dist/m365/pp/commands/solution/solution-remove.js +3 -3
  33. package/dist/m365/spo/commands/file/file-list.js +3 -14
  34. package/dist/m365/spo/commands/list/list-add.js +0 -9
  35. package/dist/m365/spo/commands/list/list-retentionlabel-ensure.js +0 -4
  36. package/dist/m365/spo/commands/list/list-retentionlabel-get.js +0 -4
  37. package/dist/m365/spo/commands/list/list-set.js +0 -9
  38. package/dist/m365/spo/commands/listitem/listitem-attachment-list.js +4 -4
  39. package/dist/m365/spo/commands/tenant/tenant-commandset-set.js +107 -24
  40. package/dist/m365/spo/commands/user/user-get.js +5 -5
  41. package/dist/m365/spo/commands.js +0 -2
  42. package/dist/m365/teams/commands/meeting/meeting-get.js +16 -24
  43. package/dist/m365/teams/commands/meeting/meeting-list.js +2 -15
  44. package/docs/docs/cmd/aad/user/user-list.mdx +0 -9
  45. package/docs/docs/cmd/aad/user/user-set.mdx +11 -11
  46. package/docs/docs/cmd/flow/environment/environment-get.mdx +1 -2
  47. package/docs/docs/cmd/flow/environment/environment-list.mdx +1 -2
  48. package/docs/docs/cmd/flow/run/run-list.mdx +1 -3
  49. package/docs/docs/cmd/pa/app/app-consent-set.mdx +3 -3
  50. package/docs/docs/cmd/pa/app/app-export.mdx +3 -3
  51. package/docs/docs/cmd/pa/app/app-list.mdx +2 -2
  52. package/docs/docs/cmd/pp/aibuildermodel/aibuildermodel-get.mdx +4 -4
  53. package/docs/docs/cmd/pp/aibuildermodel/aibuildermodel-list.mdx +4 -4
  54. package/docs/docs/cmd/pp/aibuildermodel/aibuildermodel-remove.mdx +4 -4
  55. package/docs/docs/cmd/pp/card/card-clone.mdx +6 -6
  56. package/docs/docs/cmd/pp/card/card-get.mdx +6 -6
  57. package/docs/docs/cmd/pp/card/card-list.mdx +4 -4
  58. package/docs/docs/cmd/pp/card/card-remove.mdx +9 -9
  59. package/docs/docs/cmd/pp/chatbot/chatbot-get.mdx +6 -6
  60. package/docs/docs/cmd/pp/chatbot/chatbot-list.mdx +4 -4
  61. package/docs/docs/cmd/pp/chatbot/chatbot-remove.mdx +4 -4
  62. package/docs/docs/cmd/pp/dataverse/dataverse-table-get.mdx +2 -2
  63. package/docs/docs/cmd/pp/dataverse/dataverse-table-list.mdx +2 -2
  64. package/docs/docs/cmd/pp/dataverse/dataverse-table-remove.mdx +1 -1
  65. package/docs/docs/cmd/pp/dataverse/dataverse-table-row-list.mdx +5 -5
  66. package/docs/docs/cmd/pp/dataverse/dataverse-table-row-remove.mdx +5 -5
  67. package/docs/docs/cmd/pp/solution/solution-get.mdx +6 -6
  68. package/docs/docs/cmd/pp/solution/solution-list.mdx +4 -4
  69. package/docs/docs/cmd/pp/solution/solution-publish.mdx +4 -4
  70. package/docs/docs/cmd/pp/solution/solution-publisher-add.mdx +3 -3
  71. package/docs/docs/cmd/pp/solution/solution-publisher-get.mdx +6 -6
  72. package/docs/docs/cmd/pp/solution/solution-publisher-list.mdx +4 -4
  73. package/docs/docs/cmd/pp/solution/solution-publisher-remove.mdx +5 -5
  74. package/docs/docs/cmd/pp/solution/solution-remove.mdx +9 -9
  75. package/docs/docs/cmd/spo/file/file-list.mdx +6 -10
  76. package/docs/docs/cmd/spo/file/file-retentionlabel-ensure.mdx +1 -1
  77. package/docs/docs/cmd/spo/list/list-add.mdx +0 -3
  78. package/docs/docs/cmd/spo/list/list-retentionlabel-ensure.mdx +0 -6
  79. package/docs/docs/cmd/spo/list/list-retentionlabel-get.mdx +0 -6
  80. package/docs/docs/cmd/spo/list/list-set.mdx +0 -3
  81. package/docs/docs/cmd/spo/listitem/listitem-attachment-list.mdx +7 -7
  82. package/docs/docs/cmd/spo/tenant/tenant-commandset-set.mdx +23 -11
  83. package/docs/docs/cmd/spo/user/user-get.mdx +6 -6
  84. package/package.json +1 -1
@@ -13,15 +13,19 @@ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (
13
13
  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");
14
14
  return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
15
15
  };
16
- var _SpoTenantCommandSetSetCommand_instances, _SpoTenantCommandSetSetCommand_initTelemetry, _SpoTenantCommandSetSetCommand_initOptions, _SpoTenantCommandSetSetCommand_initValidators;
16
+ var _SpoTenantCommandSetSetCommand_instances, _SpoTenantCommandSetSetCommand_initTelemetry, _SpoTenantCommandSetSetCommand_initOptions, _SpoTenantCommandSetSetCommand_initValidators, _SpoTenantCommandSetSetCommand_initOptionSets;
17
17
  Object.defineProperty(exports, "__esModule", { value: true });
18
18
  const validation_1 = require("../../../../utils/validation");
19
19
  const SpoCommand_1 = require("../../../base/SpoCommand");
20
20
  const commands_1 = require("../../commands");
21
+ const os = require("os");
21
22
  const urlUtil_1 = require("../../../../utils/urlUtil");
23
+ const Cli_1 = require("../../../../cli/Cli");
24
+ const spoListItemListCommand = require("../listitem/listitem-list");
22
25
  const request_1 = require("../../../../request");
23
26
  const formatting_1 = require("../../../../utils/formatting");
24
27
  const spo_1 = require("../../../../utils/spo");
28
+ const odata_1 = require("../../../../utils/odata");
25
29
  class SpoTenantCommandSetSetCommand extends SpoCommand_1.default {
26
30
  get name() {
27
31
  return commands_1.default.TENANT_COMMANDSET_SET;
@@ -35,6 +39,7 @@ class SpoTenantCommandSetSetCommand extends SpoCommand_1.default {
35
39
  __classPrivateFieldGet(this, _SpoTenantCommandSetSetCommand_instances, "m", _SpoTenantCommandSetSetCommand_initTelemetry).call(this);
36
40
  __classPrivateFieldGet(this, _SpoTenantCommandSetSetCommand_instances, "m", _SpoTenantCommandSetSetCommand_initOptions).call(this);
37
41
  __classPrivateFieldGet(this, _SpoTenantCommandSetSetCommand_instances, "m", _SpoTenantCommandSetSetCommand_initValidators).call(this);
42
+ __classPrivateFieldGet(this, _SpoTenantCommandSetSetCommand_instances, "m", _SpoTenantCommandSetSetCommand_initOptionSets).call(this);
38
43
  }
39
44
  commandAction(logger, args) {
40
45
  return __awaiter(this, void 0, void 0, function* () {
@@ -43,34 +48,97 @@ class SpoTenantCommandSetSetCommand extends SpoCommand_1.default {
43
48
  if (!appCatalogUrl) {
44
49
  throw 'No app catalog URL found';
45
50
  }
46
- const listServerRelativeUrl = urlUtil_1.urlUtil.getServerRelativePath(appCatalogUrl, '/lists/TenantWideExtensions');
47
- const listItem = yield this.getListItemById(logger, appCatalogUrl, listServerRelativeUrl, args.options.id);
48
- if (listItem.TenantWideExtensionLocation.indexOf("ClientSideExtension.ListViewCommandSet") === -1) {
49
- throw 'The item is not a ListViewCommandSet';
51
+ if (args.options.newClientSideComponentId !== undefined) {
52
+ const componentManifest = yield this.getComponentManifest(appCatalogUrl, args.options.newClientSideComponentId, logger);
53
+ const clientComponentManifest = JSON.parse(componentManifest.ClientComponentManifest);
54
+ if (clientComponentManifest.extensionType !== "ListViewCommandSet") {
55
+ throw `The extension type of this component is not of type 'ListViewCommandSet' but of type '${clientComponentManifest.extensionType}'`;
56
+ }
57
+ const solution = yield this.getSolutionFromAppCatalog(appCatalogUrl, componentManifest.SolutionId, logger);
58
+ if (!solution.ContainsTenantWideExtension) {
59
+ throw `The solution does not contain an extension that can be deployed to all sites. Make sure that you've entered the correct component Id.`;
60
+ }
61
+ else if (!solution.SkipFeatureDeployment) {
62
+ throw 'The solution has not been deployed to all sites. Make sure to deploy this solution to all sites.';
63
+ }
50
64
  }
51
- yield this.updateTenantWideExtension(appCatalogUrl, args.options, listServerRelativeUrl, logger);
65
+ const listServerRelativeUrl = urlUtil_1.urlUtil.getServerRelativePath(appCatalogUrl, '/lists/TenantWideExtensions');
66
+ const listItemId = yield this.getListItemId(appCatalogUrl, args.options, listServerRelativeUrl, logger);
67
+ yield this.updateTenantWideExtension(logger, appCatalogUrl, args.options, listServerRelativeUrl, listItemId);
52
68
  }
53
69
  catch (err) {
54
70
  this.handleRejectedODataJsonPromise(err);
55
71
  }
56
72
  });
57
73
  }
58
- getListItemById(logger, webUrl, listServerRelativeUrl, id) {
74
+ getComponentManifest(appCatalogUrl, clientSideComponentId, logger) {
59
75
  return __awaiter(this, void 0, void 0, function* () {
60
76
  if (this.verbose) {
61
- logger.logToStderr(`Getting the list item by id ${id}`);
77
+ logger.logToStderr('Retrieving component manifest item from the ComponentManifests list on the app catalog site so that we get the solution id');
62
78
  }
63
- const reqOptions = {
64
- url: `${webUrl}/_api/web/GetList('${formatting_1.formatting.encodeQueryParameter(listServerRelativeUrl)}')/Items(${id})`,
65
- headers: {
66
- 'accept': 'application/json;odata=nometadata'
67
- },
68
- responseType: 'json'
79
+ const camlQuery = `<View><ViewFields><FieldRef Name='ClientComponentId'></FieldRef><FieldRef Name='SolutionId'></FieldRef><FieldRef Name='ClientComponentManifest'></FieldRef></ViewFields><Query><Where><Eq><FieldRef Name='ClientComponentId' /><Value Type='Guid'>${clientSideComponentId}</Value></Eq></Where></Query></View>`;
80
+ const commandOptions = {
81
+ webUrl: appCatalogUrl,
82
+ listUrl: `${urlUtil_1.urlUtil.getServerRelativeSiteUrl(appCatalogUrl)}/Lists/ComponentManifests`,
83
+ camlQuery: camlQuery,
84
+ verbose: this.verbose,
85
+ debug: this.debug,
86
+ output: 'json'
69
87
  };
70
- return yield request_1.default.get(reqOptions);
88
+ const output = yield Cli_1.Cli.executeCommandWithOutput(spoListItemListCommand, { options: Object.assign(Object.assign({}, commandOptions), { _: [] }) });
89
+ if (this.verbose) {
90
+ logger.logToStderr(output.stderr);
91
+ }
92
+ const outputParsed = JSON.parse(output.stdout);
93
+ if (outputParsed.length === 0) {
94
+ throw 'No component found with the specified clientSideComponentId found in the component manifest list. Make sure that the application is added to the application catalog';
95
+ }
96
+ return outputParsed[0];
71
97
  });
72
98
  }
73
- updateTenantWideExtension(appCatalogUrl, options, listServerRelativeUrl, logger) {
99
+ getSolutionFromAppCatalog(appCatalogUrl, solutionId, logger) {
100
+ return __awaiter(this, void 0, void 0, function* () {
101
+ if (this.verbose) {
102
+ logger.logToStderr(`Retrieving solution with id ${solutionId} from the application catalog`);
103
+ }
104
+ const camlQuery = `<View><ViewFields><FieldRef Name='SkipFeatureDeployment'></FieldRef><FieldRef Name='ContainsTenantWideExtension'></FieldRef></ViewFields><Query><Where><Eq><FieldRef Name='AppProductID' /><Value Type='Guid'>${solutionId}</Value></Eq></Where></Query></View>`;
105
+ const commandOptions = {
106
+ webUrl: appCatalogUrl,
107
+ listUrl: `${urlUtil_1.urlUtil.getServerRelativeSiteUrl(appCatalogUrl)}/AppCatalog`,
108
+ camlQuery: camlQuery,
109
+ verbose: this.verbose,
110
+ debug: this.debug,
111
+ output: 'json'
112
+ };
113
+ const output = yield Cli_1.Cli.executeCommandWithOutput(spoListItemListCommand, { options: Object.assign(Object.assign({}, commandOptions), { _: [] }) });
114
+ if (this.verbose) {
115
+ logger.logToStderr(output.stderr);
116
+ }
117
+ const outputParsed = JSON.parse(output.stdout);
118
+ if (outputParsed.length === 0) {
119
+ throw `No component found with the solution id ${solutionId}. Make sure that the solution is available in the app catalog`;
120
+ }
121
+ return outputParsed[0];
122
+ });
123
+ }
124
+ getListItemId(appCatalogUrl, options, listServerRelativeUrl, logger) {
125
+ return __awaiter(this, void 0, void 0, function* () {
126
+ const { title, id, clientSideComponentId } = options;
127
+ const filter = title ? `Title eq '${title}'` : id ? `Id eq '${id}'` : `TenantWideExtensionComponentId eq '${clientSideComponentId}'`;
128
+ if (this.verbose) {
129
+ logger.logToStderr(`Getting tenant-wide listview commandset: "${title || id || clientSideComponentId}"...`);
130
+ }
131
+ const listItemInstances = yield odata_1.odata.getAllItems(`${appCatalogUrl}/_api/web/GetList('${formatting_1.formatting.encodeQueryParameter(listServerRelativeUrl)}')/Items?$filter=startswith(TenantWideExtensionLocation, 'ClientSideExtension.ListViewCommandSet') and ${filter}`);
132
+ if (!listItemInstances || listItemInstances.length === 0) {
133
+ throw 'The specified listview commandset was not found';
134
+ }
135
+ if (listItemInstances.length > 1) {
136
+ throw `Multiple listview commandsets with ${title ? `title '${title}'` : `ClientSideComponentId '${clientSideComponentId}'`} found. Please disambiguate using IDs: ${os.EOL}${listItemInstances.map(item => `- ${item.Id}`).join(os.EOL)}`;
137
+ }
138
+ return listItemInstances[0].Id;
139
+ });
140
+ }
141
+ updateTenantWideExtension(logger, appCatalogUrl, options, listServerRelativeUrl, listItemId) {
74
142
  return __awaiter(this, void 0, void 0, function* () {
75
143
  if (this.verbose) {
76
144
  logger.logToStderr('Updating tenant wide extension to the TenantWideExtensions list');
@@ -82,10 +150,10 @@ class SpoTenantCommandSetSetCommand extends SpoCommand_1.default {
82
150
  FieldValue: options.newTitle
83
151
  });
84
152
  }
85
- if (options.clientSideComponentId !== undefined) {
153
+ if (options.newClientSideComponentId !== undefined) {
86
154
  formValues.push({
87
155
  FieldName: 'TenantWideExtensionComponentId',
88
- FieldValue: options.clientSideComponentId
156
+ FieldValue: options.newClientSideComponentId
89
157
  });
90
158
  }
91
159
  if (options.location !== undefined) {
@@ -113,7 +181,7 @@ class SpoTenantCommandSetSetCommand extends SpoCommand_1.default {
113
181
  });
114
182
  }
115
183
  const requestOptions = {
116
- url: `${appCatalogUrl}/_api/web/GetList('${formatting_1.formatting.encodeQueryParameter(listServerRelativeUrl)}')/Items(${options.id})/ValidateUpdateListItem()`,
184
+ url: `${appCatalogUrl}/_api/web/GetList('${formatting_1.formatting.encodeQueryParameter(listServerRelativeUrl)}')/Items(${listItemId})/ValidateUpdateListItem()`,
117
185
  headers: {
118
186
  'accept': 'application/json;odata=nometadata'
119
187
  },
@@ -149,9 +217,12 @@ class SpoTenantCommandSetSetCommand extends SpoCommand_1.default {
149
217
  _SpoTenantCommandSetSetCommand_instances = new WeakSet(), _SpoTenantCommandSetSetCommand_initTelemetry = function _SpoTenantCommandSetSetCommand_initTelemetry() {
150
218
  this.telemetry.push((args) => {
151
219
  Object.assign(this.telemetryProperties, {
220
+ title: typeof args.options.title !== 'undefined',
221
+ id: typeof args.options.id !== 'undefined',
222
+ clientSideComponentId: typeof args.options.clientSideComponentId !== 'undefined',
152
223
  newTitle: typeof args.options.newTitle !== 'undefined',
153
224
  listType: args.options.listType,
154
- clientSideComponentId: typeof args.options.clientSideComponentId !== 'undefined',
225
+ newClientSideComponentId: typeof args.options.newClientSideComponentId !== 'undefined',
155
226
  clientSideComponentProperties: typeof args.options.clientSideComponentProperties !== 'undefined',
156
227
  webTemplate: typeof args.options.webTemplate !== 'undefined',
157
228
  location: args.options.location
@@ -159,14 +230,18 @@ _SpoTenantCommandSetSetCommand_instances = new WeakSet(), _SpoTenantCommandSetSe
159
230
  });
160
231
  }, _SpoTenantCommandSetSetCommand_initOptions = function _SpoTenantCommandSetSetCommand_initOptions() {
161
232
  this.options.unshift({
162
- option: '-i, --id <id>'
233
+ option: '-i, --id [id]'
234
+ }, {
235
+ option: '-t, --title [title]'
236
+ }, {
237
+ option: '-c, --clientSideComponentId [clientSideComponentId]'
163
238
  }, {
164
- option: '-t, --newTitle [newTitle]'
239
+ option: '--newTitle [newTitle]'
165
240
  }, {
166
241
  option: '-l, --listType [listType]',
167
242
  autocomplete: SpoTenantCommandSetSetCommand.listTypes
168
243
  }, {
169
- option: '-c, --clientSideComponentId [clientSideComponentId]'
244
+ option: '--newClientSideComponentId [newClientSideComponentId]'
170
245
  }, {
171
246
  option: '-p, --clientSideComponentProperties [clientSideComponentProperties]'
172
247
  }, {
@@ -179,15 +254,21 @@ _SpoTenantCommandSetSetCommand_instances = new WeakSet(), _SpoTenantCommandSetSe
179
254
  this.validators.push((args) => __awaiter(this, void 0, void 0, function* () {
180
255
  if (!args.options.newTitle &&
181
256
  !args.options.listType &&
182
- !args.options.clientSideComponentId &&
257
+ !args.options.newClientSideComponentId &&
183
258
  !args.options.clientSideComponentProperties &&
184
259
  !args.options.webTemplate &&
185
260
  !args.options.location) {
186
261
  return 'Specify at least one property to update';
187
262
  }
263
+ if (args.options.id && isNaN(parseInt(args.options.id))) {
264
+ return `${args.options.id} is not a number`;
265
+ }
188
266
  if (args.options.clientSideComponentId && !validation_1.validation.isValidGuid(args.options.clientSideComponentId)) {
189
267
  return `${args.options.clientSideComponentId} is not a valid GUID`;
190
268
  }
269
+ if (args.options.newClientSideComponentId && !validation_1.validation.isValidGuid(args.options.newClientSideComponentId)) {
270
+ return `${args.options.newClientSideComponentId} is not a valid GUID`;
271
+ }
191
272
  if (args.options.listType && SpoTenantCommandSetSetCommand.listTypes.indexOf(args.options.listType) < 0) {
192
273
  return `${args.options.listType} is not a valid list type. Allowed values are ${SpoTenantCommandSetSetCommand.listTypes.join(', ')}`;
193
274
  }
@@ -196,6 +277,8 @@ _SpoTenantCommandSetSetCommand_instances = new WeakSet(), _SpoTenantCommandSetSe
196
277
  }
197
278
  return true;
198
279
  }));
280
+ }, _SpoTenantCommandSetSetCommand_initOptionSets = function _SpoTenantCommandSetSetCommand_initOptionSets() {
281
+ this.optionSets.push({ options: ['title', 'id', 'clientSideComponentId'] });
199
282
  };
200
283
  SpoTenantCommandSetSetCommand.listTypes = ['List', 'Library', 'SitePages'];
201
284
  SpoTenantCommandSetSetCommand.locations = ['ContextMenu', 'CommandBar', 'Both'];
@@ -47,8 +47,8 @@ class SpoUserGetCommand extends SpoCommand_1.default {
47
47
  else if (args.options.email) {
48
48
  requestUrl = `${args.options.webUrl}/_api/web/siteusers/GetByEmail('${formatting_1.formatting.encodeQueryParameter(args.options.email)}')`;
49
49
  }
50
- else if (args.options.loginName) {
51
- requestUrl = `${args.options.webUrl}/_api/web/siteusers/GetByLoginName('${formatting_1.formatting.encodeQueryParameter(args.options.loginName)}')`;
50
+ else if (args.options.userName) {
51
+ requestUrl = `${args.options.webUrl}/_api/web/siteusers/GetByLoginName('${formatting_1.formatting.encodeQueryParameter(args.options.userName)}')`;
52
52
  }
53
53
  const requestOptions = {
54
54
  url: requestUrl,
@@ -73,7 +73,7 @@ _SpoUserGetCommand_instances = new WeakSet(), _SpoUserGetCommand_initTelemetry =
73
73
  Object.assign(this.telemetryProperties, {
74
74
  id: (!(!args.options.id)).toString(),
75
75
  email: (!(!args.options.email)).toString(),
76
- loginName: (!(!args.options.loginName)).toString()
76
+ userName: (!(!args.options.userName)).toString()
77
77
  });
78
78
  });
79
79
  }, _SpoUserGetCommand_initOptions = function _SpoUserGetCommand_initOptions() {
@@ -84,7 +84,7 @@ _SpoUserGetCommand_instances = new WeakSet(), _SpoUserGetCommand_initTelemetry =
84
84
  }, {
85
85
  option: '--email [email]'
86
86
  }, {
87
- option: '--loginName [loginName]'
87
+ option: '--userName [userName]'
88
88
  });
89
89
  }, _SpoUserGetCommand_initValidators = function _SpoUserGetCommand_initValidators() {
90
90
  this.validators.push((args) => __awaiter(this, void 0, void 0, function* () {
@@ -95,7 +95,7 @@ _SpoUserGetCommand_instances = new WeakSet(), _SpoUserGetCommand_initTelemetry =
95
95
  return validation_1.validation.isValidSharePointUrl(args.options.webUrl);
96
96
  }));
97
97
  }, _SpoUserGetCommand_initOptionSets = function _SpoUserGetCommand_initOptionSets() {
98
- this.optionSets.push({ options: ['id', 'email', 'loginName'] });
98
+ this.optionSets.push({ options: ['id', 'email', 'userName'] });
99
99
  };
100
100
  module.exports = new SpoUserGetCommand();
101
101
  //# sourceMappingURL=user-get.js.map
@@ -132,8 +132,6 @@ exports.default = {
132
132
  LIST_CONTENTTYPE_REMOVE: `${prefix} list contenttype remove`,
133
133
  LIST_CONTENTTYPE_DEFAULT_SET: `${prefix} list contenttype default set`,
134
134
  LIST_GET: `${prefix} list get`,
135
- LIST_LABEL_GET: `${prefix} list label get`,
136
- LIST_LABEL_SET: `${prefix} list label set`,
137
135
  LIST_LIST: `${prefix} list list`,
138
136
  LIST_REMOVE: `${prefix} list remove`,
139
137
  LIST_RETENTIONLABEL_ENSURE: `${prefix} list retentionlabel ensure`,
@@ -16,13 +16,13 @@ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (
16
16
  var _TeamsMeetingGetCommand_instances, _TeamsMeetingGetCommand_initTelemetry, _TeamsMeetingGetCommand_initOptions, _TeamsMeetingGetCommand_initValidators;
17
17
  Object.defineProperty(exports, "__esModule", { value: true });
18
18
  const Auth_1 = require("../../../../Auth");
19
- const Cli_1 = require("../../../../cli/Cli");
20
19
  const request_1 = require("../../../../request");
21
20
  const GraphCommand_1 = require("../../../base/GraphCommand");
22
21
  const commands_1 = require("../../commands");
23
22
  const validation_1 = require("../../../../utils/validation");
24
23
  const accessToken_1 = require("../../../../utils/accessToken");
25
- const AadUserGetCommand = require("../../../aad/commands/user/user-get");
24
+ const aadUser_1 = require("../../../../utils/aadUser");
25
+ const formatting_1 = require("../../../../utils/formatting");
26
26
  class TeamsMeetingGetCommand extends GraphCommand_1.default {
27
27
  get name() {
28
28
  return commands_1.default.MEETING_GET;
@@ -37,20 +37,6 @@ class TeamsMeetingGetCommand extends GraphCommand_1.default {
37
37
  __classPrivateFieldGet(this, _TeamsMeetingGetCommand_instances, "m", _TeamsMeetingGetCommand_initOptions).call(this);
38
38
  __classPrivateFieldGet(this, _TeamsMeetingGetCommand_instances, "m", _TeamsMeetingGetCommand_initValidators).call(this);
39
39
  }
40
- getUserId(options) {
41
- return __awaiter(this, void 0, void 0, function* () {
42
- const commandOptions = {
43
- email: options.email,
44
- userName: options.userName,
45
- output: 'json',
46
- debug: this.debug,
47
- verbose: this.verbose
48
- };
49
- const output = yield Cli_1.Cli.executeCommandWithOutput(AadUserGetCommand, { options: Object.assign(Object.assign({}, commandOptions), { _: [] }) });
50
- const getUserOutput = JSON.parse(output.stdout);
51
- return getUserOutput.id;
52
- });
53
- }
54
40
  commandAction(logger, args) {
55
41
  return __awaiter(this, void 0, void 0, function* () {
56
42
  const isAppOnlyAccessToken = accessToken_1.accessToken.isAppOnlyAccessToken(Auth_1.default.service.accessTokens[this.resource].accessToken);
@@ -71,18 +57,13 @@ class TeamsMeetingGetCommand extends GraphCommand_1.default {
71
57
  let requestUrl = `${this.resource}/v1.0/`;
72
58
  if (isAppOnlyAccessToken) {
73
59
  requestUrl += 'users/';
74
- if (args.options.userId) {
75
- requestUrl += args.options.userId;
76
- }
77
- else {
78
- const userId = yield this.getUserId(args.options);
79
- requestUrl += userId;
80
- }
60
+ const userId = yield this.getUserId(args.options);
61
+ requestUrl += userId;
81
62
  }
82
63
  else {
83
64
  requestUrl += `me`;
84
65
  }
85
- requestUrl += `/onlineMeetings?$filter=JoinWebUrl eq '${encodeURIComponent(args.options.joinUrl)}'`;
66
+ requestUrl += `/onlineMeetings?$filter=JoinWebUrl eq '${formatting_1.formatting.encodeQueryParameter(args.options.joinUrl)}'`;
86
67
  const requestOptions = {
87
68
  url: requestUrl,
88
69
  headers: {
@@ -103,6 +84,17 @@ class TeamsMeetingGetCommand extends GraphCommand_1.default {
103
84
  }
104
85
  });
105
86
  }
87
+ getUserId(options) {
88
+ return __awaiter(this, void 0, void 0, function* () {
89
+ if (options.userId) {
90
+ return options.userId;
91
+ }
92
+ if (options.userName) {
93
+ return aadUser_1.aadUser.getUserIdByUpn(options.userName);
94
+ }
95
+ return aadUser_1.aadUser.getUserIdByEmail(options.email);
96
+ });
97
+ }
106
98
  }
107
99
  _TeamsMeetingGetCommand_instances = new WeakSet(), _TeamsMeetingGetCommand_initTelemetry = function _TeamsMeetingGetCommand_initTelemetry() {
108
100
  this.telemetry.push((args) => {
@@ -21,8 +21,8 @@ const GraphCommand_1 = require("../../../base/GraphCommand");
21
21
  const commands_1 = require("../../commands");
22
22
  const odata_1 = require("../../../../utils/odata");
23
23
  const validation_1 = require("../../../../utils/validation");
24
- const AadUserGetCommand = require("../../../aad/commands/user/user-get");
25
24
  const accessToken_1 = require("../../../../utils/accessToken");
25
+ const aadUser_1 = require("../../../../utils/aadUser");
26
26
  class TeamsMeetingListCommand extends GraphCommand_1.default {
27
27
  get name() {
28
28
  return commands_1.default.MEETING_LIST;
@@ -60,7 +60,7 @@ class TeamsMeetingListCommand extends GraphCommand_1.default {
60
60
  requestUrl += args.options.userName;
61
61
  }
62
62
  else if (args.options.email) {
63
- const userId = yield this.getUserId(args.options.email);
63
+ const userId = yield aadUser_1.aadUser.getUserIdByEmail(args.options.email);
64
64
  requestUrl += userId;
65
65
  }
66
66
  }
@@ -98,19 +98,6 @@ class TeamsMeetingListCommand extends GraphCommand_1.default {
98
98
  }
99
99
  });
100
100
  }
101
- getUserId(email) {
102
- return __awaiter(this, void 0, void 0, function* () {
103
- const options = {
104
- email: email,
105
- output: 'json',
106
- debug: this.debug,
107
- verbose: this.verbose
108
- };
109
- const output = yield Cli_1.Cli.executeCommandWithOutput(AadUserGetCommand, { options: Object.assign(Object.assign({}, options), { _: [] }) });
110
- const getUserOutput = JSON.parse(output.stdout);
111
- return getUserOutput.id;
112
- });
113
- }
114
101
  }
115
102
  _TeamsMeetingListCommand_instances = new WeakSet(), _TeamsMeetingListCommand_initTelemetry = function _TeamsMeetingListCommand_initTelemetry() {
116
103
  this.telemetry.push((args) => {
@@ -17,9 +17,6 @@ m365 aad user list [options]
17
17
  ```md definition-list
18
18
  `-p, --properties [properties]`
19
19
  : Comma-separated list of properties to retrieve
20
-
21
- `-d, --deleted`
22
- : Use to retrieve deleted users
23
20
  ```
24
21
 
25
22
  <Global />
@@ -40,12 +37,6 @@ List all users in the tenant
40
37
  m365 aad user list
41
38
  ```
42
39
 
43
- List all recently deleted users in the tenant
44
-
45
- ```sh
46
- m365 aad user list --deleted
47
- ```
48
-
49
40
  List all users in the tenant. For each one return the display name and e-mail address
50
41
 
51
42
  ```sh
@@ -13,11 +13,11 @@ m365 aad user set [options]
13
13
  ## Options
14
14
 
15
15
  ```md definition-list
16
- `-i, --objectId [objectId]`
17
- : The object ID of the user to update. Specify `objectId` or `userPrincipalName` but not both.
16
+ `-i, --id [id]`
17
+ : The object ID of the user to update. Specify `id` or `userName` but not both.
18
18
 
19
- `-n, --userPrincipalName [userPrincipalName]`
20
- : User principal name of the user to update. Specify `objectId` or `userPrincipalName` but not both.
19
+ `-n, --userName [userName]`
20
+ : User principal name of the user to update. Specify `id` or `userName` but not both.
21
21
 
22
22
  `--accountEnabled [accountEnabled]`
23
23
  : Boolean value specifying whether the account is enabled. Valid values are `true` or `false`.
@@ -87,36 +87,36 @@ If the user with the specified ID or username doesn't exist, or if the specified
87
87
  Update specific property _department_ of user with id _1caf7dcd-7e83-4c3a-94f7-932a1299c844_
88
88
 
89
89
  ```sh
90
- m365 aad user set --objectId 1caf7dcd-7e83-4c3a-94f7-932a1299c844 --Department IT
90
+ m365 aad user set --id 1caf7dcd-7e83-4c3a-94f7-932a1299c844 --Department IT
91
91
  ```
92
92
 
93
93
  Update multiple properties of user by name
94
94
  ```sh
95
- m365 aad user set --userPrincipalName steve@contoso.onmicrosoft.com --firstName John --lastName Doe --jobTitle "Sales Manager" --companyName Contoso --department Sales --officeLocation "New York"
95
+ m365 aad user set --userName steve@contoso.onmicrosoft.com --firstName John --lastName Doe --jobTitle "Sales Manager" --companyName Contoso --department Sales --officeLocation "New York"
96
96
  ```
97
97
 
98
98
  Enable user with id _1caf7dcd-7e83-4c3a-94f7-932a1299c844_
99
99
 
100
100
  ```sh
101
- m365 aad user set --objectId 1caf7dcd-7e83-4c3a-94f7-932a1299c844 --accountEnabled true
101
+ m365 aad user set --id 1caf7dcd-7e83-4c3a-94f7-932a1299c844 --accountEnabled true
102
102
  ```
103
103
 
104
104
  Disable user with id _1caf7dcd-7e83-4c3a-94f7-932a1299c844_
105
105
 
106
106
  ```sh
107
- m365 aad user set --objectId 1caf7dcd-7e83-4c3a-94f7-932a1299c844 --accountEnabled false
107
+ m365 aad user set --id 1caf7dcd-7e83-4c3a-94f7-932a1299c844 --accountEnabled false
108
108
  ```
109
109
 
110
- Reset password of a given user by userPrincipalName and require the user to change the password on the next sign in
110
+ Reset password of a given user by userName and require the user to change the password on the next sign in
111
111
 
112
112
  ```sh
113
- m365 aad user set --userPrincipalName steve@contoso.onmicrosoft.com --resetPassword --newPassword 6NLUId79Lc24 --forceChangePasswordNextSignIn
113
+ m365 aad user set --userName steve@contoso.onmicrosoft.com --resetPassword --newPassword 6NLUId79Lc24 --forceChangePasswordNextSignIn
114
114
  ```
115
115
 
116
116
  Change password of the currently logged in user
117
117
 
118
118
  ```sh
119
- m365 aad user set --objectId 1caf7dcd-7e83-4c3a-94f7-932a1299c844 --currentPassword SLBF5gnRtyYc --newPassword 6NLUId79Lc24
119
+ m365 aad user set --id 1caf7dcd-7e83-4c3a-94f7-932a1299c844 --currentPassword SLBF5gnRtyYc --newPassword 6NLUId79Lc24
120
120
  ```
121
121
 
122
122
  Updates a user with a manager
@@ -120,8 +120,7 @@ m365 flow environment get
120
120
  "governanceConfiguration": {
121
121
  "protectionLevel": "Basic"
122
122
  }
123
- },
124
- "displayName": "contoso (default)"
123
+ }
125
124
  }
126
125
  ```
127
126
 
@@ -109,8 +109,7 @@ m365 flow environment list
109
109
  "governanceConfiguration": {
110
110
  "protectionLevel": "Basic"
111
111
  }
112
- },
113
- "displayName": "Contoso Environment"
112
+ }
114
113
  }
115
114
  ]
116
115
  ```
@@ -121,9 +121,7 @@ m365 flow run list --environmentName Default-d87a7535-dd31-4437-bfe1-95340acd55c
121
121
  },
122
122
  "status": "Succeeded"
123
123
  }
124
- },
125
- "startTime": "2022-11-17T14:33:45.2763872Z",
126
- "status": "Running"
124
+ }
127
125
  }
128
126
  ]
129
127
  ```
@@ -13,7 +13,7 @@ m365 pa app consent set [options]
13
13
  ## Options
14
14
 
15
15
  ```md definition-list
16
- `-e, --environment <environment>`
16
+ `-e, --environmentName <environmentName>`
17
17
  : The name of the environment.
18
18
 
19
19
  `-n, --name <name>`
@@ -37,13 +37,13 @@ This command only works for canvas apps.
37
37
  Enables the bypass for the specified canvas app
38
38
 
39
39
  ```sh
40
- m365 pa app consent set --environment 4be50206-9576-4237-8b17-38d8aadfaa36 --name 3989cb59-ce1a-4a5c-bb78-257c5c39381d --bypass true
40
+ m365 pa app consent set --environmentName 4be50206-9576-4237-8b17-38d8aadfaa36 --name 3989cb59-ce1a-4a5c-bb78-257c5c39381d --bypass true
41
41
  ```
42
42
 
43
43
  Disables the bypass consent for the specified canvas app
44
44
 
45
45
  ```sh
46
- m365 pa app consent set --environment 4be50206-9576-4237-8b17-38d8aadfaa36 --name 3989cb59-ce1a-4a5c-bb78-257c5c39381d --bypass false --force
46
+ m365 pa app consent set --environmentName 4be50206-9576-4237-8b17-38d8aadfaa36 --name 3989cb59-ce1a-4a5c-bb78-257c5c39381d --bypass false --force
47
47
  ```
48
48
 
49
49
  ## Response
@@ -16,7 +16,7 @@ m365 pa app export [options]
16
16
  `-i, --id <id>`
17
17
  : The id of the Power App to export
18
18
 
19
- `-e, --environment <environment>`
19
+ `-e, --environmentName <environmentName>`
20
20
  : The name of the environment for which to export the app
21
21
 
22
22
  `-n, --packageDisplayName [packageDisplayName]`
@@ -42,13 +42,13 @@ m365 pa app export [options]
42
42
  Export the specified Power App as a ZIP file
43
43
 
44
44
  ```sh
45
- m365 pa app export --environment Default-d87a7535-dd31-4437-bfe1-95340acd55c5 --id 3989cb59-ce1a-4a5c-bb78-257c5c39381d
45
+ m365 pa app export --environmentName Default-d87a7535-dd31-4437-bfe1-95340acd55c5 --id 3989cb59-ce1a-4a5c-bb78-257c5c39381d --packageDisplayName "PowerApp"
46
46
  ```
47
47
 
48
48
  Export the specified Power App as a ZIP file with the package displayname, package description, the one who created it, the package source environment and the path
49
49
 
50
50
  ```sh
51
- m365 pa app export --environment Default-d87a7535-dd31-4437-bfe1-95340acd55c5 --id 3989cb59-ce1a-4a5c-bb78-257c5c39381d --packageDisplayName "PowerApp" --packageDescription "Power App Description" --packageCreatedBy "John Doe" --packageSourceEnvironment "Contoso" --path "C:/Users/John/Documents"
51
+ m365 pa app export --environmentName Default-d87a7535-dd31-4437-bfe1-95340acd55c5 --id 3989cb59-ce1a-4a5c-bb78-257c5c39381d --packageDisplayName "PowerApp" --packageDescription "Power App Description" --packageCreatedBy "John Doe" --packageSourceEnvironment "Contoso" --path "C:/Users/John/Documents"
52
52
  ```
53
53
 
54
54
  ## Response
@@ -15,7 +15,7 @@ m365 pa app list [options]
15
15
  ## Options
16
16
 
17
17
  ```md definition-list
18
- `-e, --environment [environment]`
18
+ `-e, --environmentName [environmentName]`
19
19
  : The name of the environment for which to retrieve available apps
20
20
 
21
21
  `--asAdmin`
@@ -47,7 +47,7 @@ m365 pa app list
47
47
  List all apps in a given environment
48
48
 
49
49
  ```sh
50
- m365 pa app list --environment Default-d87a7535-dd31-4437-bfe1-95340acd55c5 --asAdmin
50
+ m365 pa app list --environmentName Default-d87a7535-dd31-4437-bfe1-95340acd55c5 --asAdmin
51
51
  ```
52
52
 
53
53
  ## Response
@@ -15,7 +15,7 @@ m365 pp aibuildermodel get [options]
15
15
  ## Options
16
16
 
17
17
  ```md definition-list
18
- `-e, --environment <environment>`
18
+ `-e, --environmentName <environmentName>`
19
19
  : The name of the environment
20
20
 
21
21
  `-i, --id [id]`
@@ -35,13 +35,13 @@ m365 pp aibuildermodel get [options]
35
35
  Get an AI Builder model in a specific environment
36
36
 
37
37
  ```sh
38
- m365 pp aibuildermodel get --environment "Default-d87a7535-dd31-4437-bfe1-95340acd55c5" --name "Document Processing 11/29/2022, 12:58:43 PM"
38
+ m365 pp aibuildermodel get --environmentName "Default-d87a7535-dd31-4437-bfe1-95340acd55c5" --name "Document Processing 11/29/2022, 12:58:43 PM"
39
39
  ```
40
40
 
41
41
  Get an AI Builder models in a specific environment by id as admin
42
42
 
43
43
  ```sh
44
- m365 pp aibuildermodel get --environment "Default-d87a7535-dd31-4437-bfe1-95340acd55c5" --id "08ffffbe-ec1c-4e64-b64b-dd1db926c613" --asAdmin
44
+ m365 pp aibuildermodel get --environmentName "Default-d87a7535-dd31-4437-bfe1-95340acd55c5" --id "08ffffbe-ec1c-4e64-b64b-dd1db926c613" --asAdmin
45
45
  ```
46
46
 
47
47
  ## Response
@@ -111,7 +111,7 @@ m365 pp aibuildermodel get --environment "Default-d87a7535-dd31-4437-bfe1-95340a
111
111
  <TabItem value="Markdown">
112
112
 
113
113
  ```md
114
- # pp aibuildermodel get --environment "Default-d87a7535-dd31-4437-bfe1-95340acd55c5" --id "08ffffbe-ec1c-4e64-b64b-dd1db926c613"
114
+ # pp aibuildermodel get --environmentName "Default-d87a7535-dd31-4437-bfe1-95340acd55c5" --id "08ffffbe-ec1c-4e64-b64b-dd1db926c613"
115
115
 
116
116
  Date: 6/2/2023
117
117