@pnp/cli-microsoft365 5.4.0-beta.fdd7cb1 → 5.5.0-beta.5a6c547

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 (38) hide show
  1. package/dist/Auth.js +1 -1
  2. package/dist/m365/aad/commands/app/app-set.js +4 -1
  3. package/dist/m365/aad/commands/o365group/o365group-recyclebinitem-remove.js +129 -0
  4. package/dist/m365/aad/commands.js +1 -0
  5. package/dist/m365/planner/commands/plan/plan-get.js +57 -16
  6. package/dist/m365/planner/commands/task/task-add.js +57 -8
  7. package/dist/m365/planner/commands/task/task-checklistitem-list.js +53 -0
  8. package/dist/m365/planner/commands/task/task-checklistitem-remove.js +85 -0
  9. package/dist/m365/planner/commands/task/task-reference-remove.js +125 -0
  10. package/dist/m365/planner/commands/task/task-set.js +17 -1
  11. package/dist/m365/planner/commands/tenant/tenant-settings-set.js +95 -0
  12. package/dist/m365/planner/commands.js +5 -1
  13. package/dist/m365/planner/taskPriority.js +27 -0
  14. package/dist/m365/spfx/commands/project/project-upgrade/{upgrade-1.15.0-rc.0.js → upgrade-1.15.0.js} +28 -28
  15. package/dist/m365/spfx/commands/project/project-upgrade.js +13 -15
  16. package/dist/m365/spo/commands/hubsite/hubsite-list.js +1 -1
  17. package/dist/m365/spo/commands/list/ListPrincipalType.js +13 -0
  18. package/dist/m365/spo/commands/list/list-get.js +6 -0
  19. package/dist/m365/spo/commands/list/list-list.js +10 -1
  20. package/docs/docs/cmd/aad/app/app-set.md +1 -1
  21. package/docs/docs/cmd/aad/o365group/o365group-recyclebinitem-remove.md +45 -0
  22. package/docs/docs/cmd/planner/plan/plan-get.md +14 -2
  23. package/docs/docs/cmd/planner/task/task-add.md +40 -4
  24. package/docs/docs/cmd/planner/task/task-checklistitem-list.md +24 -0
  25. package/docs/docs/cmd/planner/task/task-checklistitem-remove.md +36 -0
  26. package/docs/docs/cmd/planner/task/task-reference-remove.md +39 -0
  27. package/docs/docs/cmd/planner/task/task-set.md +11 -1
  28. package/docs/docs/cmd/planner/tenant/tenant-settings-set.md +56 -0
  29. package/docs/docs/cmd/spfx/project/project-upgrade.md +1 -1
  30. package/docs/docs/cmd/spo/hubsite/hubsite-list.md +1 -4
  31. package/docs/docs/cmd/spo/list/list-list.md +3 -0
  32. package/docs/docs/cmd/tenant/serviceannouncement/serviceannouncement-health-get.md +1 -1
  33. package/docs/docs/cmd/tenant/serviceannouncement/serviceannouncement-healthissue-list.md +1 -1
  34. package/docs/docs/cmd/tenant/serviceannouncement/serviceannouncement-message-list.md +1 -1
  35. package/npm-shrinkwrap.json +2 -2
  36. package/package.json +1 -1
  37. package/dist/m365/planner/commands/plan/plan-details-get.js +0 -116
  38. package/docs/docs/cmd/planner/plan/plan-details-get.md +0 -45
@@ -0,0 +1,125 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const cli_1 = require("../../../../cli");
4
+ const request_1 = require("../../../../request");
5
+ const utils_1 = require("../../../../utils");
6
+ const GraphCommand_1 = require("../../../base/GraphCommand");
7
+ const commands_1 = require("../../commands");
8
+ class PlannerTaskReferenceRemoveCommand extends GraphCommand_1.default {
9
+ get name() {
10
+ return commands_1.default.TASK_REFERENCE_REMOVE;
11
+ }
12
+ get description() {
13
+ return 'Removes the reference from the Planner task';
14
+ }
15
+ getTelemetryProperties(args) {
16
+ const telemetryProps = super.getTelemetryProperties(args);
17
+ telemetryProps.url = typeof args.options.url !== 'undefined';
18
+ telemetryProps.alias = typeof args.options.alias !== 'undefined';
19
+ telemetryProps.confirm = (!(!args.options.confirm)).toString();
20
+ return telemetryProps;
21
+ }
22
+ commandAction(logger, args, cb) {
23
+ if (args.options.confirm) {
24
+ this.removeReference(logger, args, cb);
25
+ }
26
+ else {
27
+ cli_1.Cli.prompt({
28
+ type: 'confirm',
29
+ name: 'continue',
30
+ default: false,
31
+ message: `Are you sure you want to remove the reference from the Planner task?`
32
+ }, (result) => {
33
+ if (!result.continue) {
34
+ cb();
35
+ }
36
+ else {
37
+ this.removeReference(logger, args, cb);
38
+ }
39
+ });
40
+ }
41
+ }
42
+ removeReference(logger, args, cb) {
43
+ this
44
+ .getTaskDetailsEtagAndUrl(args.options)
45
+ .then(({ etag, url }) => {
46
+ const requestOptionsTaskDetails = {
47
+ url: `${this.resource}/v1.0/planner/tasks/${args.options.taskId}/details`,
48
+ headers: {
49
+ 'accept': 'application/json;odata.metadata=none',
50
+ 'If-Match': etag,
51
+ 'Prefer': 'return=representation'
52
+ },
53
+ responseType: 'json',
54
+ data: {
55
+ references: {
56
+ [utils_1.formatting.openTypesEncoder(url)]: null
57
+ }
58
+ }
59
+ };
60
+ return request_1.default.patch(requestOptionsTaskDetails);
61
+ })
62
+ .then(() => {
63
+ cb();
64
+ }, (err) => this.handleRejectedODataJsonPromise(err, logger, cb));
65
+ }
66
+ getTaskDetailsEtagAndUrl(options) {
67
+ const requestOptions = {
68
+ url: `${this.resource}/v1.0/planner/tasks/${encodeURIComponent(options.taskId)}/details`,
69
+ headers: {
70
+ accept: 'application/json'
71
+ },
72
+ responseType: 'json'
73
+ };
74
+ let url = options.url;
75
+ return request_1.default
76
+ .get(requestOptions)
77
+ .then((response) => {
78
+ const etag = response ? response['@odata.etag'] : undefined;
79
+ if (!etag) {
80
+ return Promise.reject(`Error fetching task details`);
81
+ }
82
+ if (options.alias) {
83
+ const alias = options.alias;
84
+ const urls = [];
85
+ Object.entries(response.references).forEach((ref) => {
86
+ var _a;
87
+ if (((_a = ref[1].alias) === null || _a === void 0 ? void 0 : _a.toLocaleLowerCase()) === alias.toLocaleLowerCase()) {
88
+ urls.push(decodeURIComponent(ref[0]));
89
+ }
90
+ });
91
+ if (!urls.length) {
92
+ return Promise.reject(`The specified reference with alias ${options.alias} does not exist`);
93
+ }
94
+ if (urls.length > 1) {
95
+ return Promise.reject(`Multiple references with alias ${options.alias} found. Pass one of the following urls within the "--url" option : ${urls}`);
96
+ }
97
+ url = urls[0];
98
+ }
99
+ return Promise.resolve({ etag, url });
100
+ });
101
+ }
102
+ options() {
103
+ const options = [
104
+ { option: '-u, --url [url]' },
105
+ { option: '--alias [alias]' },
106
+ { option: '-i, --taskId <taskId>' },
107
+ { option: '--confirm' }
108
+ ];
109
+ const parentOptions = super.options();
110
+ return options.concat(parentOptions);
111
+ }
112
+ optionSets() {
113
+ return [
114
+ ['url', 'alias']
115
+ ];
116
+ }
117
+ validate(args) {
118
+ if (args.options.url && args.options.url.indexOf('https://') !== 0 && args.options.url.indexOf('http://') !== 0) {
119
+ return 'The url option should contain a valid URL. A valid URL starts with http(s)://';
120
+ }
121
+ return true;
122
+ }
123
+ }
124
+ module.exports = new PlannerTaskReferenceRemoveCommand();
125
+ //# sourceMappingURL=task-reference-remove.js.map
@@ -7,6 +7,7 @@ const planner_1 = require("../../../../utils/planner");
7
7
  const GraphCommand_1 = require("../../../base/GraphCommand");
8
8
  const commands_1 = require("../../commands");
9
9
  const aadGroup_1 = require("../../../../utils/aadGroup");
10
+ const taskPriority_1 = require("../../taskPriority");
10
11
  class PlannerTaskSetCommand extends GraphCommand_1.default {
11
12
  constructor() {
12
13
  super(...arguments);
@@ -36,6 +37,7 @@ class PlannerTaskSetCommand extends GraphCommand_1.default {
36
37
  telemetryProps.description = typeof args.options.description !== 'undefined';
37
38
  telemetryProps.appliedCategories = typeof args.options.appliedCategories !== 'undefined';
38
39
  telemetryProps.orderHint = typeof args.options.orderHint !== 'undefined';
40
+ telemetryProps.priority = typeof args.options.priority !== 'undefined';
39
41
  return telemetryProps;
40
42
  }
41
43
  commandAction(logger, args, cb) {
@@ -264,6 +266,9 @@ class PlannerTaskSetCommand extends GraphCommand_1.default {
264
266
  if (options.orderHint) {
265
267
  requestBody.orderHint = options.orderHint;
266
268
  }
269
+ if (options.priority !== undefined) {
270
+ requestBody.priority = taskPriority_1.taskPriority.getPriorityValue(options.priority);
271
+ }
267
272
  return requestBody;
268
273
  }
269
274
  options() {
@@ -284,7 +289,8 @@ class PlannerTaskSetCommand extends GraphCommand_1.default {
284
289
  { option: '--assigneePriority [assigneePriority]' },
285
290
  { option: '--description [description]' },
286
291
  { option: '--appliedCategories [appliedCategories]' },
287
- { option: '--orderHint [orderHint]' }
292
+ { option: '--orderHint [orderHint]' },
293
+ { option: '--priority [priority]', autocomplete: taskPriority_1.taskPriority.priorityValues }
288
294
  ];
289
295
  const parentOptions = super.options();
290
296
  return options.concat(parentOptions);
@@ -329,6 +335,16 @@ class PlannerTaskSetCommand extends GraphCommand_1.default {
329
335
  if (args.options.appliedCategories && args.options.appliedCategories.split(',').filter(category => this.allowedAppliedCategories.indexOf(category.toLocaleLowerCase()) < 0).length !== 0) {
330
336
  return 'The appliedCategories contains invalid value. Specify either category1, category2, category3, category4, category5 and/or category6 as properties';
331
337
  }
338
+ if (args.options.priority !== undefined) {
339
+ if (typeof args.options.priority === "number") {
340
+ if (isNaN(args.options.priority) || args.options.priority < 0 || args.options.priority > 10 || !Number.isInteger(args.options.priority)) {
341
+ return 'priority should be an integer between 0 and 10.';
342
+ }
343
+ }
344
+ else if (taskPriority_1.taskPriority.priorityValues.map(l => l.toLowerCase()).indexOf(args.options.priority.toString().toLowerCase()) === -1) {
345
+ return `${args.options.priority} is not a valid priority value. Allowed values are ${taskPriority_1.taskPriority.priorityValues.join('|')}.`;
346
+ }
347
+ }
332
348
  return true;
333
349
  }
334
350
  }
@@ -0,0 +1,95 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const utils_1 = require("../../../../utils");
4
+ const request_1 = require("../../../../request");
5
+ const PlannerCommand_1 = require("../../../base/PlannerCommand");
6
+ const commands_1 = require("../../commands");
7
+ class PlannerTenantSettingsSetCommand extends PlannerCommand_1.default {
8
+ get name() {
9
+ return commands_1.default.TENANT_SETTINGS_SET;
10
+ }
11
+ get description() {
12
+ return 'Sets Microsoft Planner configuration of the tenant';
13
+ }
14
+ getTelemetryProperties(args) {
15
+ const telemetryProps = super.getTelemetryProperties(args);
16
+ telemetryProps.isPlannerAllowed = typeof args.options.isPlannerAllowed !== 'undefined';
17
+ telemetryProps.allowCalendarSharing = typeof args.options.allowCalendarSharing !== 'undefined';
18
+ telemetryProps.allowTenantMoveWithDataLoss = typeof args.options.allowTenantMoveWithDataLoss !== 'undefined';
19
+ telemetryProps.allowTenantMoveWithDataMigration = typeof args.options.allowTenantMoveWithDataMigration !== 'undefined';
20
+ telemetryProps.allowRosterCreation = typeof args.options.allowRosterCreation !== 'undefined';
21
+ telemetryProps.allowPlannerMobilePushNotifications = typeof args.options.allowPlannerMobilePushNotifications !== 'undefined';
22
+ return telemetryProps;
23
+ }
24
+ commandAction(logger, args, cb) {
25
+ const requestOptions = {
26
+ url: `${this.resource}/taskAPI/tenantAdminSettings/Settings`,
27
+ headers: {
28
+ accept: 'application/json;odata.metadata=none',
29
+ prefer: 'return=representation'
30
+ },
31
+ responseType: 'json',
32
+ data: {
33
+ isPlannerAllowed: args.options.isPlannerAllowed,
34
+ allowCalendarSharing: args.options.allowCalendarSharing,
35
+ allowTenantMoveWithDataLoss: args.options.allowTenantMoveWithDataLoss,
36
+ allowTenantMoveWithDataMigration: args.options.allowTenantMoveWithDataMigration,
37
+ allowRosterCreation: args.options.allowRosterCreation,
38
+ allowPlannerMobilePushNotifications: args.options.allowPlannerMobilePushNotifications
39
+ }
40
+ };
41
+ request_1.default
42
+ .patch(requestOptions)
43
+ .then((result) => {
44
+ logger.log(result);
45
+ cb();
46
+ }, (err) => this.handleRejectedODataJsonPromise(err, logger, cb));
47
+ }
48
+ options() {
49
+ const options = [
50
+ {
51
+ option: '--isPlannerAllowed [isPlannerAllowed]',
52
+ autocomplete: ['true', 'false']
53
+ },
54
+ {
55
+ option: '--allowCalendarSharing [allowCalendarSharing]',
56
+ autocomplete: ['true', 'false']
57
+ },
58
+ {
59
+ option: '--allowTenantMoveWithDataLoss [allowTenantMoveWithDataLoss]',
60
+ autocomplete: ['true', 'false']
61
+ },
62
+ {
63
+ option: '--allowTenantMoveWithDataMigration [allowTenantMoveWithDataMigration]',
64
+ autocomplete: ['true', 'false']
65
+ },
66
+ {
67
+ option: '--allowRosterCreation [allowRosterCreation]',
68
+ autocomplete: ['true', 'false']
69
+ },
70
+ {
71
+ option: '--allowPlannerMobilePushNotifications [allowPlannerMobilePushNotifications]',
72
+ autocomplete: ['true', 'false']
73
+ }
74
+ ];
75
+ const parentOptions = super.options();
76
+ return options.concat(parentOptions);
77
+ }
78
+ validate(args) {
79
+ const optionsArray = [
80
+ args.options.isPlannerAllowed, args.options.allowCalendarSharing, args.options.allowTenantMoveWithDataLoss,
81
+ args.options.allowTenantMoveWithDataMigration, args.options.allowRosterCreation, args.options.allowPlannerMobilePushNotifications
82
+ ];
83
+ if (optionsArray.every(o => typeof o === 'undefined')) {
84
+ return 'You must specify at least one option';
85
+ }
86
+ for (const option of optionsArray) {
87
+ if (typeof option !== 'undefined' && !utils_1.validation.isValidBoolean(option)) {
88
+ return `Value '${option}' is not a valid boolean`;
89
+ }
90
+ }
91
+ return true;
92
+ }
93
+ }
94
+ module.exports = new PlannerTenantSettingsSetCommand();
95
+ //# sourceMappingURL=tenant-settings-set.js.map
@@ -13,13 +13,17 @@ exports.default = {
13
13
  PLAN_LIST: `${prefix} plan list`,
14
14
  TASK_ADD: `${prefix} task add`,
15
15
  TASK_CHECKLISTITEM_ADD: `${prefix} task checklistitem add`,
16
+ TASK_CHECKLISTITEM_LIST: `${prefix} task checklistitem list`,
17
+ TASK_CHECKLISTITEM_REMOVE: `${prefix} task checklistitem remove`,
16
18
  TASK_DETAILS_GET: `${prefix} task details get`,
17
19
  TASK_GET: `${prefix} task get`,
18
20
  TASK_LIST: `${prefix} task list`,
19
21
  TASK_REFERENCE_ADD: `${prefix} task reference add`,
20
22
  TASK_REFERENCE_LIST: `${prefix} task reference list`,
23
+ TASK_REFERENCE_REMOVE: `${prefix} task reference remove`,
21
24
  TASK_REMOVE: `${prefix} task remove`,
22
25
  TASK_SET: `${prefix} task set`,
23
- TENANT_SETTINGS_LIST: `${prefix} tenant settings list`
26
+ TENANT_SETTINGS_LIST: `${prefix} tenant settings list`,
27
+ TENANT_SETTINGS_SET: `${prefix} tenant settings set`
24
28
  };
25
29
  //# sourceMappingURL=commands.js.map
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.taskPriority = void 0;
4
+ exports.taskPriority = {
5
+ /** Priority labels used in Planner. */
6
+ priorityValues: ["Urgent", "Important", "Medium", "Low"],
7
+ /**
8
+ * Transform priority label to the corresponding number value.
9
+ * @param priority Priority label or number.
10
+ */
11
+ getPriorityValue(priority) {
12
+ if (typeof priority === "string") {
13
+ switch (priority.toLowerCase()) {
14
+ case "urgent":
15
+ return 1;
16
+ case "important":
17
+ return 3;
18
+ case "medium":
19
+ return 5;
20
+ case "low":
21
+ return 9;
22
+ }
23
+ }
24
+ return priority;
25
+ }
26
+ };
27
+ //# sourceMappingURL=taskPriority.js.map
@@ -40,41 +40,41 @@ const FN015003_FILE_tslint_json_1 = require("./rules/FN015003_FILE_tslint_json")
40
40
  const FN015008_FILE_eslintrc_js_1 = require("./rules/FN015008_FILE_eslintrc_js");
41
41
  const FN023002_GITIGNORE_heft_1 = require("./rules/FN023002_GITIGNORE_heft");
42
42
  module.exports = [
43
- new FN001001_DEP_microsoft_sp_core_library_1.FN001001_DEP_microsoft_sp_core_library('1.15.0-rc.0'),
44
- new FN001002_DEP_microsoft_sp_lodash_subset_1.FN001002_DEP_microsoft_sp_lodash_subset('1.15.0-rc.0'),
45
- new FN001003_DEP_microsoft_sp_office_ui_fabric_core_1.FN001003_DEP_microsoft_sp_office_ui_fabric_core('1.15.0-rc.0'),
46
- new FN001004_DEP_microsoft_sp_webpart_base_1.FN001004_DEP_microsoft_sp_webpart_base('1.15.0-rc.0'),
47
- new FN001011_DEP_microsoft_sp_dialog_1.FN001011_DEP_microsoft_sp_dialog('1.15.0-rc.0'),
48
- new FN001012_DEP_microsoft_sp_application_base_1.FN001012_DEP_microsoft_sp_application_base('1.15.0-rc.0'),
49
- new FN001013_DEP_microsoft_decorators_1.FN001013_DEP_microsoft_decorators('1.15.0-rc.0'),
50
- new FN001014_DEP_microsoft_sp_listview_extensibility_1.FN001014_DEP_microsoft_sp_listview_extensibility('1.15.0-rc.0'),
51
- new FN001021_DEP_microsoft_sp_property_pane_1.FN001021_DEP_microsoft_sp_property_pane('1.15.0-rc.0'),
52
- new FN001022_DEP_office_ui_fabric_react_1.FN001022_DEP_office_ui_fabric_react('7.183.1'),
53
- new FN001023_DEP_microsoft_sp_component_base_1.FN001023_DEP_microsoft_sp_component_base('1.15.0-rc.0'),
54
- new FN001024_DEP_microsoft_sp_diagnostics_1.FN001024_DEP_microsoft_sp_diagnostics('1.15.0-rc.0'),
55
- new FN001025_DEP_microsoft_sp_dynamic_data_1.FN001025_DEP_microsoft_sp_dynamic_data('1.15.0-rc.0'),
56
- new FN001026_DEP_microsoft_sp_extension_base_1.FN001026_DEP_microsoft_sp_extension_base('1.15.0-rc.0'),
57
- new FN001027_DEP_microsoft_sp_http_1.FN001027_DEP_microsoft_sp_http('1.15.0-rc.0'),
58
- new FN001028_DEP_microsoft_sp_list_subscription_1.FN001028_DEP_microsoft_sp_list_subscription('1.15.0-rc.0'),
59
- new FN001029_DEP_microsoft_sp_loader_1.FN001029_DEP_microsoft_sp_loader('1.15.0-rc.0'),
60
- new FN001030_DEP_microsoft_sp_module_interfaces_1.FN001030_DEP_microsoft_sp_module_interfaces('1.15.0-rc.0'),
61
- new FN001031_DEP_microsoft_sp_odata_types_1.FN001031_DEP_microsoft_sp_odata_types('1.15.0-rc.0'),
62
- new FN001032_DEP_microsoft_sp_page_context_1.FN001032_DEP_microsoft_sp_page_context('1.15.0-rc.0'),
43
+ new FN001001_DEP_microsoft_sp_core_library_1.FN001001_DEP_microsoft_sp_core_library('1.15.0'),
44
+ new FN001002_DEP_microsoft_sp_lodash_subset_1.FN001002_DEP_microsoft_sp_lodash_subset('1.15.0'),
45
+ new FN001003_DEP_microsoft_sp_office_ui_fabric_core_1.FN001003_DEP_microsoft_sp_office_ui_fabric_core('1.15.0'),
46
+ new FN001004_DEP_microsoft_sp_webpart_base_1.FN001004_DEP_microsoft_sp_webpart_base('1.15.0'),
47
+ new FN001011_DEP_microsoft_sp_dialog_1.FN001011_DEP_microsoft_sp_dialog('1.15.0'),
48
+ new FN001012_DEP_microsoft_sp_application_base_1.FN001012_DEP_microsoft_sp_application_base('1.15.0'),
49
+ new FN001013_DEP_microsoft_decorators_1.FN001013_DEP_microsoft_decorators('1.15.0'),
50
+ new FN001014_DEP_microsoft_sp_listview_extensibility_1.FN001014_DEP_microsoft_sp_listview_extensibility('1.15.0'),
51
+ new FN001021_DEP_microsoft_sp_property_pane_1.FN001021_DEP_microsoft_sp_property_pane('1.15.0'),
52
+ new FN001022_DEP_office_ui_fabric_react_1.FN001022_DEP_office_ui_fabric_react('7.185.7'),
53
+ new FN001023_DEP_microsoft_sp_component_base_1.FN001023_DEP_microsoft_sp_component_base('1.15.0'),
54
+ new FN001024_DEP_microsoft_sp_diagnostics_1.FN001024_DEP_microsoft_sp_diagnostics('1.15.0'),
55
+ new FN001025_DEP_microsoft_sp_dynamic_data_1.FN001025_DEP_microsoft_sp_dynamic_data('1.15.0'),
56
+ new FN001026_DEP_microsoft_sp_extension_base_1.FN001026_DEP_microsoft_sp_extension_base('1.15.0'),
57
+ new FN001027_DEP_microsoft_sp_http_1.FN001027_DEP_microsoft_sp_http('1.15.0'),
58
+ new FN001028_DEP_microsoft_sp_list_subscription_1.FN001028_DEP_microsoft_sp_list_subscription('1.15.0'),
59
+ new FN001029_DEP_microsoft_sp_loader_1.FN001029_DEP_microsoft_sp_loader('1.15.0'),
60
+ new FN001030_DEP_microsoft_sp_module_interfaces_1.FN001030_DEP_microsoft_sp_module_interfaces('1.15.0'),
61
+ new FN001031_DEP_microsoft_sp_odata_types_1.FN001031_DEP_microsoft_sp_odata_types('1.15.0'),
62
+ new FN001032_DEP_microsoft_sp_page_context_1.FN001032_DEP_microsoft_sp_page_context('1.15.0'),
63
63
  new FN001033_DEP_tslib_1.FN001033_DEP_tslib('2.3.1'),
64
- new FN002001_DEVDEP_microsoft_sp_build_web_1.FN002001_DEVDEP_microsoft_sp_build_web('1.15.0-rc.0'),
65
- new FN002002_DEVDEP_microsoft_sp_module_interfaces_1.FN002002_DEVDEP_microsoft_sp_module_interfaces('1.15.0-rc.0'),
64
+ new FN002001_DEVDEP_microsoft_sp_build_web_1.FN002001_DEVDEP_microsoft_sp_build_web('1.15.0'),
65
+ new FN002002_DEVDEP_microsoft_sp_module_interfaces_1.FN002002_DEVDEP_microsoft_sp_module_interfaces('1.15.0'),
66
66
  new FN002007_DEVDEP_ajv_1.FN002007_DEVDEP_ajv('6.12.5'),
67
67
  new FN002009_DEVDEP_microsoft_sp_tslint_rules_1.FN002009_DEVDEP_microsoft_sp_tslint_rules('', false),
68
68
  new FN002013_DEVDEP_types_webpack_env_1.FN002013_DEVDEP_types_webpack_env('1.15.2'),
69
69
  new FN002018_DEVDEP_microsoft_rush_stack_compiler_3_9_1.FN002018_DEVDEP_microsoft_rush_stack_compiler_3_9('', false),
70
- new FN002020_DEVDEP_microsoft_rush_stack_compiler_4_5_1.FN002020_DEVDEP_microsoft_rush_stack_compiler_4_5('0.2.0'),
70
+ new FN002020_DEVDEP_microsoft_rush_stack_compiler_4_5_1.FN002020_DEVDEP_microsoft_rush_stack_compiler_4_5('0.2.2'),
71
71
  new FN002021_DEVDEP_rushstack_eslint_config_1.FN002021_DEVDEP_rushstack_eslint_config('2.5.1'),
72
- new FN002022_DEVDEP_microsoft_eslint_plugin_spfx_1.FN002022_DEVDEP_microsoft_eslint_plugin_spfx('1.15.0-rc.0'),
73
- new FN002023_DEVDEP_microsoft_eslint_config_spfx_1.FN002023_DEVDEP_microsoft_eslint_config_spfx('1.15.0-rc.0'),
72
+ new FN002022_DEVDEP_microsoft_eslint_plugin_spfx_1.FN002022_DEVDEP_microsoft_eslint_plugin_spfx('1.15.0'),
73
+ new FN002023_DEVDEP_microsoft_eslint_config_spfx_1.FN002023_DEVDEP_microsoft_eslint_config_spfx('1.15.0'),
74
74
  new FN002024_DEVDEP_eslint_1.FN002024_DEVDEP_eslint('8.7.0'),
75
75
  new FN002025_DEVDEP_eslint_plugin_react_hooks_1.FN002025_DEVDEP_eslint_plugin_react_hooks('4.3.0'),
76
- new FN006004_CFG_PS_developer_1.FN006004_CFG_PS_developer('1.15.0-rc.0'),
77
- new FN010001_YORC_version_1.FN010001_YORC_version('1.15.0-rc.0'),
76
+ new FN006004_CFG_PS_developer_1.FN006004_CFG_PS_developer('1.15.0'),
77
+ new FN010001_YORC_version_1.FN010001_YORC_version('1.15.0'),
78
78
  new FN012017_TSC_extends_1.FN012017_TSC_extends('./node_modules/@microsoft/rush-stack-compiler-4.5/includes/tsconfig-web.json'),
79
79
  new FN015003_FILE_tslint_json_1.FN015003_FILE_tslint_json(false, ''),
80
80
  new FN015008_FILE_eslintrc_js_1.FN015008_FILE_eslintrc_js(true, `require('@rushstack/eslint-config/patch/modern-module-resolution');
@@ -84,4 +84,4 @@ module.exports = [
84
84
  };`),
85
85
  new FN023002_GITIGNORE_heft_1.FN023002_GITIGNORE_heft()
86
86
  ];
87
- //# sourceMappingURL=upgrade-1.15.0-rc.0.js.map
87
+ //# sourceMappingURL=upgrade-1.15.0.js.map
@@ -3,8 +3,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const fs = require("fs");
4
4
  const os = require("os");
5
5
  const path = require("path");
6
- // uncomment to support upgrading to preview releases
7
- const semver_1 = require("semver");
8
6
  const Command_1 = require("../../../../Command");
9
7
  const utils_1 = require("../../../../utils");
10
8
  const commands_1 = require("../../commands");
@@ -47,7 +45,7 @@ class SpfxProjectUpgradeCommand extends base_project_command_1.BaseProjectComman
47
45
  '1.13.0',
48
46
  '1.13.1',
49
47
  '1.14.0',
50
- '1.15.0-rc.0'
48
+ '1.15.0'
51
49
  ];
52
50
  }
53
51
  get name() {
@@ -60,9 +58,9 @@ class SpfxProjectUpgradeCommand extends base_project_command_1.BaseProjectComman
60
58
  const telemetryProps = super.getTelemetryProperties(args);
61
59
  telemetryProps.toVersion = args.options.toVersion || this.supportedVersions[this.supportedVersions.length - 1];
62
60
  // uncomment to support upgrading to preview releases
63
- if ((0, semver_1.prerelease)(telemetryProps.toVersion) && !args.options.preview) {
64
- telemetryProps.toVersion = this.supportedVersions[this.supportedVersions.length - 2];
65
- }
61
+ // if (prerelease(telemetryProps.toVersion) && !args.options.preview) {
62
+ // telemetryProps.toVersion = this.supportedVersions[this.supportedVersions.length - 2];
63
+ // }
66
64
  telemetryProps.packageManager = args.options.packageManager || 'npm';
67
65
  telemetryProps.shell = args.options.shell || 'bash';
68
66
  telemetryProps.preview = args.options.preview;
@@ -76,15 +74,15 @@ class SpfxProjectUpgradeCommand extends base_project_command_1.BaseProjectComman
76
74
  }
77
75
  this.toVersion = args.options.toVersion ? args.options.toVersion : this.supportedVersions[this.supportedVersions.length - 1];
78
76
  // uncomment to support upgrading to preview releases
79
- if (!args.options.toVersion &&
80
- !args.options.preview &&
81
- (0, semver_1.prerelease)(this.toVersion)) {
82
- // no version and no preview specified while the current version to
83
- // upgrade to is a prerelease so let's grab the first non-preview version
84
- // since we're supporting only one preview version, it's sufficient for
85
- // us to take second to last version
86
- this.toVersion = this.supportedVersions[this.supportedVersions.length - 2];
87
- }
77
+ // if (!args.options.toVersion &&
78
+ // !args.options.preview &&
79
+ // prerelease(this.toVersion)) {
80
+ // // no version and no preview specified while the current version to
81
+ // // upgrade to is a prerelease so let's grab the first non-preview version
82
+ // // since we're supporting only one preview version, it's sufficient for
83
+ // // us to take second to last version
84
+ // this.toVersion = this.supportedVersions[this.supportedVersions.length - 2];
85
+ // }
88
86
  this.packageManager = args.options.packageManager || 'npm';
89
87
  this.shell = args.options.shell || 'bash';
90
88
  if (this.supportedVersions.indexOf(this.toVersion) < 0) {
@@ -42,7 +42,7 @@ class SpoHubSiteListCommand extends SpoCommand_1.default {
42
42
  })
43
43
  .then((res) => {
44
44
  hubSites = res.value;
45
- if (args.options.includeAssociatedSites !== true || args.options.output !== 'json') {
45
+ if (args.options.includeAssociatedSites !== true || args.options.output && args.options.output !== 'json') {
46
46
  return Promise.resolve();
47
47
  }
48
48
  else {
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ListPrincipalType = void 0;
4
+ var ListPrincipalType;
5
+ (function (ListPrincipalType) {
6
+ ListPrincipalType[ListPrincipalType["None"] = 0] = "None";
7
+ ListPrincipalType[ListPrincipalType["User"] = 1] = "User";
8
+ ListPrincipalType[ListPrincipalType["DistributionList"] = 2] = "DistributionList";
9
+ ListPrincipalType[ListPrincipalType["SecurityGroup"] = 4] = "SecurityGroup";
10
+ ListPrincipalType[ListPrincipalType["SharePointGroup"] = 8] = "SharePointGroup";
11
+ ListPrincipalType[ListPrincipalType["All"] = 15] = "All";
12
+ })(ListPrincipalType = exports.ListPrincipalType || (exports.ListPrincipalType = {}));
13
+ //# sourceMappingURL=ListPrincipalType.js.map
@@ -4,6 +4,7 @@ const request_1 = require("../../../../request");
4
4
  const utils_1 = require("../../../../utils");
5
5
  const SpoCommand_1 = require("../../../base/SpoCommand");
6
6
  const commands_1 = require("../../commands");
7
+ const ListPrincipalType_1 = require("./ListPrincipalType");
7
8
  class SpoListGetCommand extends SpoCommand_1.default {
8
9
  get name() {
9
10
  return commands_1.default.LIST_GET;
@@ -42,6 +43,11 @@ class SpoListGetCommand extends SpoCommand_1.default {
42
43
  request_1.default
43
44
  .get(requestOptions)
44
45
  .then((listInstance) => {
46
+ if (args.options.withPermissions) {
47
+ listInstance.RoleAssignments.forEach(r => {
48
+ r.Member.PrincipalTypeString = ListPrincipalType_1.ListPrincipalType[r.Member.PrincipalType];
49
+ });
50
+ }
45
51
  logger.log(listInstance);
46
52
  cb();
47
53
  }, (err) => this.handleRejectedODataJsonPromise(err, logger, cb));
@@ -14,12 +14,18 @@ class SpoListListCommand extends SpoCommand_1.default {
14
14
  defaultProperties() {
15
15
  return ['Title', 'Url', 'Id'];
16
16
  }
17
+ getTelemetryProperties(args) {
18
+ const telemetryProps = super.getTelemetryProperties(args);
19
+ telemetryProps.executeWithLimitedPermissions = !!args.options.executeWithLimitedPermissions;
20
+ return telemetryProps;
21
+ }
17
22
  commandAction(logger, args, cb) {
18
23
  if (this.verbose) {
19
24
  logger.logToStderr(`Retrieving all lists in site at ${args.options.webUrl}...`);
20
25
  }
26
+ const suffix = args.options.executeWithLimitedPermissions ? '&$select=RootFolder/ServerRelativeUrl,*' : '';
21
27
  const requestOptions = {
22
- url: `${args.options.webUrl}/_api/web/lists?$expand=RootFolder`,
28
+ url: `${args.options.webUrl}/_api/web/lists?$expand=RootFolder${suffix}`,
23
29
  method: 'GET',
24
30
  headers: {
25
31
  'accept': 'application/json;odata=nometadata'
@@ -40,6 +46,9 @@ class SpoListListCommand extends SpoCommand_1.default {
40
46
  const options = [
41
47
  {
42
48
  option: '-u, --webUrl <webUrl>'
49
+ },
50
+ {
51
+ option: '--executeWithLimitedPermissions'
43
52
  }
44
53
  ];
45
54
  const parentOptions = super.options();
@@ -20,7 +20,7 @@ m365 aad app set [options]
20
20
  : Name of the Azure AD application registration to update. Specify either `appId`, `objectId` or `name`
21
21
 
22
22
  `-u, --uri [uri]`
23
- : Application ID URI to update
23
+ : Comma-separated list of Application ID URIs to update
24
24
 
25
25
  `-r, --redirectUris [redirectUris]`
26
26
  : Comma-separated list of redirect URIs to add to the app registration. Requires `platform` to be specified
@@ -0,0 +1,45 @@
1
+ # aad o365group recyclebinitem remove
2
+
3
+ Permanently deletes a Microsoft 365 Group from the recycle bin in the current tenant
4
+
5
+ ## Usage
6
+
7
+ ```sh
8
+ m365 aad o365group recyclebinitem remove [options]
9
+ ```
10
+
11
+ ## Options
12
+
13
+ `-i, --id [id]`
14
+ : The ID of the Microsoft 365 Group to remove. Specify either `id`, `displayName` or `mailNickname` but not multiple.
15
+
16
+ `-d, --displayName [displayName]`
17
+ : Display name for the Microsoft 365 Group to remove. Specify either `id`, `displayName` or `mailNickname` but not multiple.
18
+
19
+ `-m, --mailNickname [mailNickname]`
20
+ : Name of the group e-mail (part before the @). Specify either `id`, `displayName` or `mailNickname` but not multiple.
21
+
22
+ `--confirm`
23
+ : Don't prompt for confirmation.
24
+
25
+ --8<-- "docs/cmd/_global.md"
26
+
27
+ ## Examples
28
+
29
+ Removes the Microsoft 365 Group with specific ID
30
+
31
+ ```sh
32
+ m365 aad o365group recyclebinitem remove --id "00000000-0000-0000-0000-000000000000"
33
+ ```
34
+
35
+ Removes the Microsoft 365 Group with specific name
36
+
37
+ ```sh
38
+ m365 aad o365group recyclebinitem remove --displayName "My Group"
39
+ ```
40
+
41
+ Remove the Microsoft 365 Group with specific mail nickname without confirmation
42
+
43
+ ```sh
44
+ m365 aad o365group recyclebinitem remove --mailNickname "Mygroup" --confirm
45
+ ```
@@ -8,6 +8,12 @@ Retrieve information about the specified plan
8
8
  m365 planner plan get [options]
9
9
  ```
10
10
 
11
+ ## Alias
12
+
13
+ ```sh
14
+ m365 planner plan details get [options]
15
+ ```
16
+
11
17
  ## Options
12
18
 
13
19
  `-i, --id [id]`
@@ -16,11 +22,17 @@ m365 planner plan get [options]
16
22
  `-t, --title [title]`
17
23
  : Title of the plan. Specify either `id` or `title` but not both.
18
24
 
25
+ `--planId [planId]`
26
+ : (deprecated. Use `id` instead) ID of the plan. Specify either `planId` or `planTitle` but not both.
27
+
28
+ `---planTitle [planTitle]`
29
+ : (deprecated. Use `title` instead) Title of the plan. Specify either `planId` or `planTitle` but not both.
30
+
19
31
  `--ownerGroupId [ownerGroupId]`
20
- : ID of the Group that owns the plan. Specify either `ownerGroupId` or `ownerGroupName` when using `title`.
32
+ : ID of the Group that owns the plan. Specify either `ownerGroupId` or `ownerGroupName` when using `title` or the deprecated `planTitle`.
21
33
 
22
34
  `--ownerGroupName [ownerGroupName]`
23
- : Name of the Group that owns the plan. Specify either `ownerGroupId` or `ownerGroupName` when using `title`.
35
+ : Name of the Group that owns the plan. Specify either `ownerGroupId` or `ownerGroupName` when using `title` or the deprecated `planTitle`.
24
36
 
25
37
  --8<-- "docs/cmd/_global.md"
26
38