@pnp/cli-microsoft365 5.4.0-beta.fdd7cb1 → 5.4.0
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.
- package/dist/m365/aad/commands/app/app-set.js +4 -1
- package/dist/m365/aad/commands/o365group/o365group-recyclebinitem-remove.js +129 -0
- package/dist/m365/aad/commands.js +1 -0
- package/dist/m365/planner/commands/task/task-add.js +57 -8
- package/dist/m365/planner/commands/task/task-checklistitem-list.js +53 -0
- package/dist/m365/planner/commands/task/task-checklistitem-remove.js +85 -0
- package/dist/m365/planner/commands/task/task-reference-remove.js +125 -0
- package/dist/m365/planner/commands/task/task-set.js +17 -1
- package/dist/m365/planner/commands.js +3 -0
- package/dist/m365/planner/taskPriority.js +27 -0
- package/dist/m365/spfx/commands/project/project-upgrade/{upgrade-1.15.0-rc.0.js → upgrade-1.15.0.js} +28 -28
- package/dist/m365/spfx/commands/project/project-upgrade.js +13 -15
- package/dist/m365/spo/commands/hubsite/hubsite-list.js +1 -1
- package/dist/m365/spo/commands/list/ListPrincipalType.js +13 -0
- package/dist/m365/spo/commands/list/list-get.js +6 -0
- package/dist/m365/spo/commands/list/list-list.js +10 -1
- package/docs/docs/cmd/aad/app/app-set.md +1 -1
- package/docs/docs/cmd/aad/o365group/o365group-recyclebinitem-remove.md +45 -0
- package/docs/docs/cmd/planner/task/task-add.md +40 -4
- package/docs/docs/cmd/planner/task/task-checklistitem-list.md +24 -0
- package/docs/docs/cmd/planner/task/task-checklistitem-remove.md +36 -0
- package/docs/docs/cmd/planner/task/task-reference-remove.md +39 -0
- package/docs/docs/cmd/planner/task/task-set.md +11 -1
- package/docs/docs/cmd/spfx/project/project-upgrade.md +1 -1
- package/docs/docs/cmd/spo/hubsite/hubsite-list.md +1 -4
- package/docs/docs/cmd/spo/list/list-list.md +3 -0
- package/package.json +3 -3
|
@@ -71,8 +71,11 @@ class AadAppSetCommand extends GraphCommand_1.default {
|
|
|
71
71
|
if (this.verbose) {
|
|
72
72
|
logger.logToStderr(`Configuring Azure AD application ID URI...`);
|
|
73
73
|
}
|
|
74
|
+
const identifierUris = args.options.uri
|
|
75
|
+
.split(',')
|
|
76
|
+
.map(u => u.trim());
|
|
74
77
|
const applicationInfo = {
|
|
75
|
-
identifierUris:
|
|
78
|
+
identifierUris: identifierUris
|
|
76
79
|
};
|
|
77
80
|
const requestOptions = {
|
|
78
81
|
url: `${this.resource}/v1.0/myorganization/applications/${objectId}`,
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
const cli_1 = require("../../../../cli");
|
|
13
|
+
const request_1 = require("../../../../request");
|
|
14
|
+
const utils_1 = require("../../../../utils");
|
|
15
|
+
const GraphCommand_1 = require("../../../base/GraphCommand");
|
|
16
|
+
const commands_1 = require("../../commands");
|
|
17
|
+
class AadO365GroupRecycleBinItemRemoveCommand extends GraphCommand_1.default {
|
|
18
|
+
get name() {
|
|
19
|
+
return commands_1.default.O365GROUP_RECYCLEBINITEM_REMOVE;
|
|
20
|
+
}
|
|
21
|
+
get description() {
|
|
22
|
+
return 'Permanently deletes a Microsoft 365 Group from the recycle bin in the current tenant';
|
|
23
|
+
}
|
|
24
|
+
getTelemetryProperties(args) {
|
|
25
|
+
const telemetryProps = super.getTelemetryProperties(args);
|
|
26
|
+
telemetryProps.id = typeof args.options.id !== 'undefined';
|
|
27
|
+
telemetryProps.displayName = typeof args.options.displayName !== 'undefined';
|
|
28
|
+
telemetryProps.mailNickname = typeof args.options.mailNickname !== 'undefined';
|
|
29
|
+
telemetryProps.confirm = !!args.options.confirm;
|
|
30
|
+
return telemetryProps;
|
|
31
|
+
}
|
|
32
|
+
commandAction(logger, args, cb) {
|
|
33
|
+
const removeGroup = () => __awaiter(this, void 0, void 0, function* () {
|
|
34
|
+
try {
|
|
35
|
+
const groupId = yield this.getGroupId(args.options);
|
|
36
|
+
const requestOptions = {
|
|
37
|
+
url: `${this.resource}/v1.0/directory/deletedItems/${groupId}`,
|
|
38
|
+
headers: {
|
|
39
|
+
accept: 'application/json;odata.metadata=none'
|
|
40
|
+
},
|
|
41
|
+
responseType: 'json'
|
|
42
|
+
};
|
|
43
|
+
yield request_1.default.delete(requestOptions);
|
|
44
|
+
cb();
|
|
45
|
+
}
|
|
46
|
+
catch (err) {
|
|
47
|
+
this.handleRejectedODataJsonPromise(err, logger, cb);
|
|
48
|
+
}
|
|
49
|
+
});
|
|
50
|
+
if (args.options.confirm) {
|
|
51
|
+
removeGroup();
|
|
52
|
+
}
|
|
53
|
+
else {
|
|
54
|
+
cli_1.Cli.prompt({
|
|
55
|
+
type: 'confirm',
|
|
56
|
+
name: 'continue',
|
|
57
|
+
default: false,
|
|
58
|
+
message: `Are you sure you want to remove the group '${args.options.id || args.options.displayName || args.options.mailNickname}'?`
|
|
59
|
+
}, (result) => {
|
|
60
|
+
if (!result.continue) {
|
|
61
|
+
cb();
|
|
62
|
+
}
|
|
63
|
+
else {
|
|
64
|
+
removeGroup();
|
|
65
|
+
}
|
|
66
|
+
});
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
getGroupId(options) {
|
|
70
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
71
|
+
const { id, displayName, mailNickname } = options;
|
|
72
|
+
if (id) {
|
|
73
|
+
return id;
|
|
74
|
+
}
|
|
75
|
+
let filterValue = '';
|
|
76
|
+
if (displayName) {
|
|
77
|
+
filterValue = `displayName eq '${utils_1.formatting.encodeQueryParameter(displayName)}'`;
|
|
78
|
+
}
|
|
79
|
+
if (mailNickname) {
|
|
80
|
+
filterValue = `mailNickname eq '${utils_1.formatting.encodeQueryParameter(mailNickname)}'`;
|
|
81
|
+
}
|
|
82
|
+
const requestOptions = {
|
|
83
|
+
url: `${this.resource}/v1.0/directory/deletedItems/Microsoft.Graph.Group?$filter=${filterValue}`,
|
|
84
|
+
headers: {
|
|
85
|
+
accept: 'application/json;odata.metadata=none'
|
|
86
|
+
},
|
|
87
|
+
responseType: 'json'
|
|
88
|
+
};
|
|
89
|
+
const response = yield request_1.default.get(requestOptions);
|
|
90
|
+
const groups = response.value;
|
|
91
|
+
if (groups.length === 0) {
|
|
92
|
+
throw Error(`The specified group '${displayName || mailNickname}' does not exist.`);
|
|
93
|
+
}
|
|
94
|
+
if (groups.length > 1) {
|
|
95
|
+
throw Error(`Multiple groups with name '${displayName || mailNickname}' found: ${groups.map(x => x.id).join(',')}.`);
|
|
96
|
+
}
|
|
97
|
+
return groups[0].id;
|
|
98
|
+
});
|
|
99
|
+
}
|
|
100
|
+
optionSets() {
|
|
101
|
+
return [['id', 'displayName', 'mailNickname']];
|
|
102
|
+
}
|
|
103
|
+
options() {
|
|
104
|
+
const options = [
|
|
105
|
+
{
|
|
106
|
+
option: '-i, --id [id]'
|
|
107
|
+
},
|
|
108
|
+
{
|
|
109
|
+
option: '-d, --displayName [displayName]'
|
|
110
|
+
},
|
|
111
|
+
{
|
|
112
|
+
option: '-m, --mailNickname [mailNickname]'
|
|
113
|
+
},
|
|
114
|
+
{
|
|
115
|
+
option: '--confirm'
|
|
116
|
+
}
|
|
117
|
+
];
|
|
118
|
+
const parentOptions = super.options();
|
|
119
|
+
return options.concat(parentOptions);
|
|
120
|
+
}
|
|
121
|
+
validate(args) {
|
|
122
|
+
if (args.options.id && !utils_1.validation.isValidGuid(args.options.id)) {
|
|
123
|
+
return `${args.options.id} is not a valid GUID`;
|
|
124
|
+
}
|
|
125
|
+
return true;
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
module.exports = new AadO365GroupRecycleBinItemRemoveCommand();
|
|
129
|
+
//# sourceMappingURL=o365group-recyclebinitem-remove.js.map
|
|
@@ -29,6 +29,7 @@ exports.default = {
|
|
|
29
29
|
O365GROUP_CONVERSATION_POST_LIST: `${prefix} o365group conversation post list`,
|
|
30
30
|
O365GROUP_RECYCLEBINITEM_CLEAR: `${prefix} o365group recyclebinitem clear`,
|
|
31
31
|
O365GROUP_RECYCLEBINITEM_LIST: `${prefix} o365group recyclebinitem list`,
|
|
32
|
+
O365GROUP_RECYCLEBINITEM_REMOVE: `${prefix} o365group recyclebinitem remove`,
|
|
32
33
|
O365GROUP_RECYCLEBINITEM_RESTORE: `${prefix} o365group recyclebinitem restore`,
|
|
33
34
|
O365GROUP_SET: `${prefix} o365group set`,
|
|
34
35
|
O365GROUP_TEAMIFY: `${prefix} o365group teamify`,
|
|
@@ -2,12 +2,18 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
const Auth_1 = require("../../../../Auth");
|
|
4
4
|
const request_1 = require("../../../../request");
|
|
5
|
-
const planner_1 = require("../../../../utils/planner");
|
|
6
5
|
const utils_1 = require("../../../../utils");
|
|
6
|
+
const aadGroup_1 = require("../../../../utils/aadGroup");
|
|
7
|
+
const planner_1 = require("../../../../utils/planner");
|
|
7
8
|
const GraphCommand_1 = require("../../../base/GraphCommand");
|
|
8
9
|
const commands_1 = require("../../commands");
|
|
9
|
-
const
|
|
10
|
+
const taskPriority_1 = require("../../taskPriority");
|
|
10
11
|
class PlannerTaskAddCommand extends GraphCommand_1.default {
|
|
12
|
+
constructor() {
|
|
13
|
+
super(...arguments);
|
|
14
|
+
this.allowedAppliedCategories = ['category1', 'category2', 'category3', 'category4', 'category5', 'category6'];
|
|
15
|
+
this.allowedPreviewTypes = ['automatic', 'nopreview', 'checklist', 'description', 'reference'];
|
|
16
|
+
}
|
|
11
17
|
get name() {
|
|
12
18
|
return commands_1.default.TASK_ADD;
|
|
13
19
|
}
|
|
@@ -27,8 +33,12 @@ class PlannerTaskAddCommand extends GraphCommand_1.default {
|
|
|
27
33
|
telemetryProps.percentComplete = typeof args.options.percentComplete !== 'undefined';
|
|
28
34
|
telemetryProps.assignedToUserIds = typeof args.options.assignedToUserIds !== 'undefined';
|
|
29
35
|
telemetryProps.assignedToUserNames = typeof args.options.assignedToUserNames !== 'undefined';
|
|
36
|
+
telemetryProps.assigneePriority = typeof args.options.assigneePriority !== 'undefined';
|
|
30
37
|
telemetryProps.description = typeof args.options.description !== 'undefined';
|
|
38
|
+
telemetryProps.appliedCategories = typeof args.options.appliedCategories !== 'undefined';
|
|
39
|
+
telemetryProps.previewType = typeof args.options.previewType !== 'undefined';
|
|
31
40
|
telemetryProps.orderHint = typeof args.options.orderHint !== 'undefined';
|
|
41
|
+
telemetryProps.priority = typeof args.options.priority !== 'undefined';
|
|
32
42
|
return telemetryProps;
|
|
33
43
|
}
|
|
34
44
|
commandAction(logger, args, cb) {
|
|
@@ -47,10 +57,11 @@ class PlannerTaskAddCommand extends GraphCommand_1.default {
|
|
|
47
57
|
return this.generateUserAssignments(args);
|
|
48
58
|
})
|
|
49
59
|
.then(assignments => {
|
|
60
|
+
const appliedCategories = this.generateAppliedCategories(args.options);
|
|
50
61
|
const requestOptions = {
|
|
51
62
|
url: `${this.resource}/v1.0/planner/tasks`,
|
|
52
63
|
headers: {
|
|
53
|
-
|
|
64
|
+
accept: 'application/json;odata.metadata=none'
|
|
54
65
|
},
|
|
55
66
|
responseType: 'json',
|
|
56
67
|
data: {
|
|
@@ -61,7 +72,10 @@ class PlannerTaskAddCommand extends GraphCommand_1.default {
|
|
|
61
72
|
dueDateTime: args.options.dueDateTime,
|
|
62
73
|
percentComplete: args.options.percentComplete,
|
|
63
74
|
assignments: assignments,
|
|
64
|
-
orderHint: args.options.orderHint
|
|
75
|
+
orderHint: args.options.orderHint,
|
|
76
|
+
assigneePriority: args.options.assigneePriority,
|
|
77
|
+
appliedCategories: appliedCategories,
|
|
78
|
+
priority: taskPriority_1.taskPriority.getPriorityValue(args.options.priority)
|
|
65
79
|
}
|
|
66
80
|
};
|
|
67
81
|
return request_1.default.post(requestOptions);
|
|
@@ -90,9 +104,17 @@ class PlannerTaskAddCommand extends GraphCommand_1.default {
|
|
|
90
104
|
return Promise.resolve(etag);
|
|
91
105
|
});
|
|
92
106
|
}
|
|
107
|
+
generateAppliedCategories(options) {
|
|
108
|
+
if (!options.appliedCategories) {
|
|
109
|
+
return {};
|
|
110
|
+
}
|
|
111
|
+
const categories = {};
|
|
112
|
+
options.appliedCategories.toLocaleLowerCase().split(',').forEach(x => categories[x] = true);
|
|
113
|
+
return categories;
|
|
114
|
+
}
|
|
93
115
|
updateTaskDetails(options, newTask) {
|
|
94
116
|
const taskId = newTask.id;
|
|
95
|
-
if (!options.description) {
|
|
117
|
+
if (!options.description && !options.previewType) {
|
|
96
118
|
return Promise.resolve(newTask);
|
|
97
119
|
}
|
|
98
120
|
return this
|
|
@@ -107,7 +129,8 @@ class PlannerTaskAddCommand extends GraphCommand_1.default {
|
|
|
107
129
|
},
|
|
108
130
|
responseType: 'json',
|
|
109
131
|
data: {
|
|
110
|
-
description: options.description
|
|
132
|
+
description: options.description,
|
|
133
|
+
previewType: options.previewType
|
|
111
134
|
}
|
|
112
135
|
};
|
|
113
136
|
return request_1.default.patch(requestOptionsTaskDetails);
|
|
@@ -215,8 +238,18 @@ class PlannerTaskAddCommand extends GraphCommand_1.default {
|
|
|
215
238
|
{ option: '--percentComplete [percentComplete]' },
|
|
216
239
|
{ option: '--assignedToUserIds [assignedToUserIds]' },
|
|
217
240
|
{ option: '--assignedToUserNames [assignedToUserNames]' },
|
|
241
|
+
{ option: '--assigneePriority [assigneePriority]' },
|
|
218
242
|
{ option: '--description [description]' },
|
|
219
|
-
{
|
|
243
|
+
{
|
|
244
|
+
option: '--appliedCategories [appliedCategories]',
|
|
245
|
+
autocomplete: this.allowedAppliedCategories
|
|
246
|
+
},
|
|
247
|
+
{
|
|
248
|
+
option: '--previewType [previewType]',
|
|
249
|
+
autocomplete: this.allowedPreviewTypes
|
|
250
|
+
},
|
|
251
|
+
{ option: '--orderHint [orderHint]' },
|
|
252
|
+
{ option: '--priority [priority]', autocomplete: taskPriority_1.taskPriority.priorityValues }
|
|
220
253
|
];
|
|
221
254
|
const parentOptions = super.options();
|
|
222
255
|
return options.concat(parentOptions);
|
|
@@ -253,7 +286,7 @@ class PlannerTaskAddCommand extends GraphCommand_1.default {
|
|
|
253
286
|
return `percentComplete is not a number`;
|
|
254
287
|
}
|
|
255
288
|
if (args.options.percentComplete && (args.options.percentComplete < 0 || args.options.percentComplete > 100)) {
|
|
256
|
-
return `percentComplete should be between 0 and 100
|
|
289
|
+
return `percentComplete should be between 0 and 100`;
|
|
257
290
|
}
|
|
258
291
|
if (args.options.assignedToUserIds && !utils_1.validation.isValidGuidArray(args.options.assignedToUserIds.split(','))) {
|
|
259
292
|
return 'assignedToUserIds contains invalid GUID';
|
|
@@ -261,6 +294,22 @@ class PlannerTaskAddCommand extends GraphCommand_1.default {
|
|
|
261
294
|
if (args.options.assignedToUserIds && args.options.assignedToUserNames) {
|
|
262
295
|
return 'Specify either assignedToUserIds or assignedToUserNames but not both';
|
|
263
296
|
}
|
|
297
|
+
if (args.options.appliedCategories && args.options.appliedCategories.split(',').filter(category => this.allowedAppliedCategories.indexOf(category.toLocaleLowerCase()) < 0).length !== 0) {
|
|
298
|
+
return `The appliedCategories contains invalid value. Specify either ${this.allowedAppliedCategories.join(', ')} as properties`;
|
|
299
|
+
}
|
|
300
|
+
if (args.options.previewType && this.allowedPreviewTypes.indexOf(args.options.previewType.toLocaleLowerCase()) === -1) {
|
|
301
|
+
return `${args.options.previewType} is not a valid preview type value. Allowed values are ${this.allowedPreviewTypes.join(', ')}`;
|
|
302
|
+
}
|
|
303
|
+
if (args.options.priority !== undefined) {
|
|
304
|
+
if (typeof args.options.priority === "number") {
|
|
305
|
+
if (isNaN(args.options.priority) || args.options.priority < 0 || args.options.priority > 10 || !Number.isInteger(args.options.priority)) {
|
|
306
|
+
return 'priority should be an integer between 0 and 10.';
|
|
307
|
+
}
|
|
308
|
+
}
|
|
309
|
+
else if (taskPriority_1.taskPriority.priorityValues.map(l => l.toLowerCase()).indexOf(args.options.priority.toString().toLowerCase()) === -1) {
|
|
310
|
+
return `${args.options.priority} is not a valid priority value. Allowed values are ${taskPriority_1.taskPriority.priorityValues.join('|')}.`;
|
|
311
|
+
}
|
|
312
|
+
}
|
|
264
313
|
return true;
|
|
265
314
|
}
|
|
266
315
|
}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const utils_1 = require("../../../../utils");
|
|
4
|
+
const Auth_1 = require("../../../../Auth");
|
|
5
|
+
const request_1 = require("../../../../request");
|
|
6
|
+
const GraphCommand_1 = require("../../../base/GraphCommand");
|
|
7
|
+
const commands_1 = require("../../commands");
|
|
8
|
+
class PlannerTaskChecklistItemListCommand extends GraphCommand_1.default {
|
|
9
|
+
get name() {
|
|
10
|
+
return commands_1.default.TASK_CHECKLISTITEM_LIST;
|
|
11
|
+
}
|
|
12
|
+
get description() {
|
|
13
|
+
return "Lists the checklist items of a Planner task.";
|
|
14
|
+
}
|
|
15
|
+
defaultProperties() {
|
|
16
|
+
return ['id', 'title', 'isChecked'];
|
|
17
|
+
}
|
|
18
|
+
commandAction(logger, args, cb) {
|
|
19
|
+
if (utils_1.accessToken.isAppOnlyAccessToken(Auth_1.default.service.accessTokens[this.resource].accessToken)) {
|
|
20
|
+
this.handleError('This command does not support application permissions.', logger, cb);
|
|
21
|
+
return;
|
|
22
|
+
}
|
|
23
|
+
const requestOptions = {
|
|
24
|
+
url: `${this.resource}/v1.0/planner/tasks/${encodeURIComponent(args.options.taskId)}/details?$select=checklist`,
|
|
25
|
+
headers: {
|
|
26
|
+
accept: "application/json;odata.metadata=none"
|
|
27
|
+
},
|
|
28
|
+
responseType: "json"
|
|
29
|
+
};
|
|
30
|
+
request_1.default.get(requestOptions).then((res) => {
|
|
31
|
+
if (!args.options.output || args.options.output === 'json') {
|
|
32
|
+
logger.log(res.checklist);
|
|
33
|
+
}
|
|
34
|
+
else {
|
|
35
|
+
//converted to text friendly output
|
|
36
|
+
const output = Object.getOwnPropertyNames(res.checklist).map(prop => (Object.assign({ id: prop }, res.checklist[prop])));
|
|
37
|
+
logger.log(output);
|
|
38
|
+
}
|
|
39
|
+
cb();
|
|
40
|
+
}, (err) => this.handleRejectedODataJsonPromise(err, logger, cb));
|
|
41
|
+
}
|
|
42
|
+
options() {
|
|
43
|
+
const options = [
|
|
44
|
+
{
|
|
45
|
+
option: "-i, --taskId <taskId>"
|
|
46
|
+
}
|
|
47
|
+
];
|
|
48
|
+
const parentOptions = super.options();
|
|
49
|
+
return options.concat(parentOptions);
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
module.exports = new PlannerTaskChecklistItemListCommand();
|
|
53
|
+
//# sourceMappingURL=task-checklistitem-list.js.map
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const cli_1 = require("../../../../cli");
|
|
4
|
+
const request_1 = require("../../../../request");
|
|
5
|
+
const GraphCommand_1 = require("../../../base/GraphCommand");
|
|
6
|
+
const commands_1 = require("../../commands");
|
|
7
|
+
class PlannerTaskChecklistItemRemoveCommand extends GraphCommand_1.default {
|
|
8
|
+
get name() {
|
|
9
|
+
return commands_1.default.TASK_CHECKLISTITEM_REMOVE;
|
|
10
|
+
}
|
|
11
|
+
get description() {
|
|
12
|
+
return 'Removes the checklist item from the planner task';
|
|
13
|
+
}
|
|
14
|
+
getTelemetryProperties(args) {
|
|
15
|
+
const telemetryProps = super.getTelemetryProperties(args);
|
|
16
|
+
telemetryProps.confirm = (!(!args.options.confirm)).toString();
|
|
17
|
+
return telemetryProps;
|
|
18
|
+
}
|
|
19
|
+
commandAction(logger, args, cb) {
|
|
20
|
+
if (args.options.confirm) {
|
|
21
|
+
this.removeChecklistitem(logger, args, cb);
|
|
22
|
+
}
|
|
23
|
+
else {
|
|
24
|
+
cli_1.Cli.prompt({
|
|
25
|
+
type: 'confirm',
|
|
26
|
+
name: 'continue',
|
|
27
|
+
default: false,
|
|
28
|
+
message: `Are you sure you want to remove the checklist item with id ${args.options.id} from the planner task?`
|
|
29
|
+
}, (result) => {
|
|
30
|
+
if (!result.continue) {
|
|
31
|
+
cb();
|
|
32
|
+
}
|
|
33
|
+
else {
|
|
34
|
+
this.removeChecklistitem(logger, args, cb);
|
|
35
|
+
}
|
|
36
|
+
});
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
removeChecklistitem(logger, args, cb) {
|
|
40
|
+
this
|
|
41
|
+
.getTaskDetails(args.options.taskId)
|
|
42
|
+
.then(task => {
|
|
43
|
+
if (!task.checklist || !task.checklist[args.options.id]) {
|
|
44
|
+
return Promise.reject(`The specified checklist item with id ${args.options.id} does not exist`);
|
|
45
|
+
}
|
|
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': task['@odata.etag'],
|
|
51
|
+
'Prefer': 'return=representation'
|
|
52
|
+
},
|
|
53
|
+
responseType: 'json',
|
|
54
|
+
data: {
|
|
55
|
+
checklist: {
|
|
56
|
+
[args.options.id]: null
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
};
|
|
60
|
+
return request_1.default.patch(requestOptionsTaskDetails);
|
|
61
|
+
})
|
|
62
|
+
.then(_ => cb(), (err) => this.handleRejectedODataJsonPromise(err, logger, cb));
|
|
63
|
+
}
|
|
64
|
+
getTaskDetails(taskId) {
|
|
65
|
+
const requestOptions = {
|
|
66
|
+
url: `${this.resource}/v1.0/planner/tasks/${encodeURIComponent(taskId)}/details?$select=checklist`,
|
|
67
|
+
headers: {
|
|
68
|
+
accept: 'application/json;odata.metadata=minimal'
|
|
69
|
+
},
|
|
70
|
+
responseType: 'json'
|
|
71
|
+
};
|
|
72
|
+
return request_1.default.get(requestOptions);
|
|
73
|
+
}
|
|
74
|
+
options() {
|
|
75
|
+
const options = [
|
|
76
|
+
{ option: '-i, --id <id>' },
|
|
77
|
+
{ option: '--taskId <taskId>' },
|
|
78
|
+
{ option: '--confirm' }
|
|
79
|
+
];
|
|
80
|
+
const parentOptions = super.options();
|
|
81
|
+
return options.concat(parentOptions);
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
module.exports = new PlannerTaskChecklistItemRemoveCommand();
|
|
85
|
+
//# sourceMappingURL=task-checklistitem-remove.js.map
|
|
@@ -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
|
}
|
|
@@ -13,11 +13,14 @@ 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
26
|
TENANT_SETTINGS_LIST: `${prefix} tenant settings list`
|
|
@@ -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
|
package/dist/m365/spfx/commands/project/project-upgrade/{upgrade-1.15.0-rc.0.js → upgrade-1.15.0.js}
RENAMED
|
@@ -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
|
|
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.
|
|
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
|
|
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
|
|
65
|
-
new FN002002_DEVDEP_microsoft_sp_module_interfaces_1.FN002002_DEVDEP_microsoft_sp_module_interfaces('1.15.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.
|
|
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
|
|
73
|
-
new FN002023_DEVDEP_microsoft_eslint_config_spfx_1.FN002023_DEVDEP_microsoft_eslint_config_spfx('1.15.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
|
|
77
|
-
new FN010001_YORC_version_1.FN010001_YORC_version('1.15.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
|
|
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
|
|
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 (
|
|
64
|
-
|
|
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
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
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
|
|
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
|
+
```
|
|
@@ -39,9 +39,6 @@ m365 planner task add [options]
|
|
|
39
39
|
|
|
40
40
|
`--percentComplete [percentComplete]`
|
|
41
41
|
: Percentage of task completion. Number between 0 and 100.
|
|
42
|
-
- When set to 0, the task is considered _Not started_.
|
|
43
|
-
- When set between 1 and 99, the task is considered _In progress_.
|
|
44
|
-
- When set to 100, the task is considered _Completed_.
|
|
45
42
|
|
|
46
43
|
`--assignedToUserIds [assignedToUserIds]`
|
|
47
44
|
: The comma-separated IDs of the assignees the task is assigned to. Specify either `assignedToUserIds` or `assignedToUserNames` but not both.
|
|
@@ -49,14 +46,41 @@ m365 planner task add [options]
|
|
|
49
46
|
`--assignedToUserNames [assignedToUserNames]`
|
|
50
47
|
: The comma-separated UPNs of the assignees the task is assigned to. Specify either `assignedToUserIds` or `assignedToUserNames` but not both.
|
|
51
48
|
|
|
49
|
+
`--assigneePriority [assigneePriority]`
|
|
50
|
+
: Hint used to order items of this type in a list view. The format is defined as outlined [here](https://docs.microsoft.com/graph/api/resources/planner-order-hint-format?view=graph-rest-1.0).
|
|
51
|
+
|
|
52
52
|
`--description [description]`
|
|
53
53
|
: Description of the task
|
|
54
54
|
|
|
55
|
+
`--appliedCategories [appliedCategories]`
|
|
56
|
+
: Comma-separated categories that should be added to the task. The possible options are: `category1`, `category2`, `category3`, `category4`, `category5` and/or `category6`. Additional info defined [here](https://docs.microsoft.com/graph/api/resources/plannerappliedcategories?view=graph-rest-1.0).
|
|
57
|
+
|
|
58
|
+
`--previewType [previewType]`
|
|
59
|
+
: This sets the type of preview that shows up on the task. The possible values are: `automatic`, `noPreview`, `checklist`, `description`, `reference`. When set to automatic the displayed preview is chosen by the app viewing the task. Default `automatic`.
|
|
60
|
+
|
|
55
61
|
`--orderHint [orderHint]`
|
|
56
|
-
: Hint used to order items of this type in a list view. The format is defined as outlined [here](https://docs.microsoft.com/
|
|
62
|
+
: Hint used to order items of this type in a list view. The format is defined as outlined [here](https://docs.microsoft.com/graph/api/resources/planner-order-hint-format?view=graph-rest-1.0).
|
|
63
|
+
|
|
64
|
+
`--priority [priority]`
|
|
65
|
+
: Priority of the task: Urgent, Important, Medium, Low. Or an integer between 0 and 10 (check remarks section for more info). Default value is Medium.
|
|
57
66
|
|
|
58
67
|
--8<-- "docs/cmd/_global.md"
|
|
59
68
|
|
|
69
|
+
## Remarks
|
|
70
|
+
|
|
71
|
+
When you specify the value for `percentComplete`, consider the following:
|
|
72
|
+
|
|
73
|
+
- when set to 0, the task is considered _Not started_
|
|
74
|
+
- when set between 1 and 99, the task is considered _In progress_
|
|
75
|
+
- when set to 100, the task is considered _Completed_
|
|
76
|
+
|
|
77
|
+
When you specify an integer value for `priority`, consider the following:
|
|
78
|
+
|
|
79
|
+
- values 0 and 1 are interpreted as _Urgent_
|
|
80
|
+
- values 2, 3 and 4 are interpreted as _Important_
|
|
81
|
+
- values 5, 6 and 7 are interpreted as _Medium_
|
|
82
|
+
- values 8, 9 and 10 are interpreted as _Low_
|
|
83
|
+
|
|
60
84
|
## Examples
|
|
61
85
|
|
|
62
86
|
Adds a Microsoft Planner task with the name _My Planner Task_ for plan with the ID _8QZEH7b3wkSbGQobscsM5gADCBa_ and for the bucket with the ID _IK8tuFTwQEa5vTonM7ZMRZgAKdna_
|
|
@@ -76,3 +100,15 @@ Adds a Microsoft Planner task with the name _My Planner Task_ for plan with the
|
|
|
76
100
|
```sh
|
|
77
101
|
m365 planner task add --title "My Planner Task" --planId "8QZEH7b3wkSbGQobscsM5gADCBa" --bucketId "IK8tuFTwQEa5vTonM7ZMRZgAKdna" --assignedToUserNames "Allan.Carroll@contoso.com,Ida.Stevens@contoso.com" --dueDateTime "2021-12-16"
|
|
78
102
|
```
|
|
103
|
+
|
|
104
|
+
Adds a Microsoft Planner task with the name _My Planner Task_ for plan with the ID _8QZEH7b3wkbGQobscsM5gADCBa_ and for the bucket with the ID _IK8tuFTwQEa5vTonM7ZMRZgAKdna_. The new task will be assigned to the users _Allan.Carroll@contoso.com_ and _Ida.Stevens@contoso.com_ who will appear first with the asssignee priority _' !'_
|
|
105
|
+
|
|
106
|
+
```sh
|
|
107
|
+
m365 planner task add --title "My Planner Task" --planId "8QZEH7b3wkSbGQobscsM5gADCBa" --bucketId "IK8tuFTwQEa5vTonM7ZMRZgAKdna" --assignedToUserNames "Allan.Carroll@contoso.com,Ida.Stevens@contoso.com" --asssigneePriority ' !'
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
Adds a Microsoft Planner task with the name _My Planner Task_ for plan with the ID _8QZEH7b3wkbGQobscsM5gADCBa_ and for the bucket with the ID _IK8tuFTwQEa5vTonM7ZMRZgAKdna_. The new task will receive the categories _category1,category3_ and get a preview with the type _noPreview_
|
|
111
|
+
|
|
112
|
+
```sh
|
|
113
|
+
m365 planner task add --title "My Planner Task" --planId "8QZEH7b3wkSbGQobscsM5gADCBa" --bucketId "IK8tuFTwQEa5vTonM7ZMRZgAKdna" --appliedCategories "category1,category3" --previewType "noPreview"
|
|
114
|
+
```
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
# planner task checklistitem list
|
|
2
|
+
|
|
3
|
+
Lists the checklist items of a Planner task.
|
|
4
|
+
|
|
5
|
+
## Usage
|
|
6
|
+
|
|
7
|
+
```sh
|
|
8
|
+
m365 planner task checklistitem list [options]
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
## Options
|
|
12
|
+
|
|
13
|
+
`-i, --taskId <taskId>`
|
|
14
|
+
: ID of the task
|
|
15
|
+
|
|
16
|
+
--8<-- "docs/cmd/_global.md"
|
|
17
|
+
|
|
18
|
+
## Examples
|
|
19
|
+
|
|
20
|
+
Lists the checklist items of a Planner task.
|
|
21
|
+
|
|
22
|
+
```sh
|
|
23
|
+
m365 planner task checklistitem list --taskId 'vzCcZoOv-U27PwydxHB8opcADJo-'
|
|
24
|
+
```
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
# planner task checklistitem remove
|
|
2
|
+
|
|
3
|
+
Removes the checklist item from the Planner task.
|
|
4
|
+
|
|
5
|
+
## Usage
|
|
6
|
+
|
|
7
|
+
```sh
|
|
8
|
+
m365 planner task checklistitem remove [options]
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
## Options
|
|
12
|
+
|
|
13
|
+
`-i, --id <id>`
|
|
14
|
+
: ID of the checklist item.
|
|
15
|
+
|
|
16
|
+
`--taskId <taskId>`
|
|
17
|
+
: ID of the task.
|
|
18
|
+
|
|
19
|
+
`--confirm`
|
|
20
|
+
: Don't prompt for confirmation
|
|
21
|
+
|
|
22
|
+
--8<-- "docs/cmd/_global.md"
|
|
23
|
+
|
|
24
|
+
## Examples
|
|
25
|
+
|
|
26
|
+
Removes a checklist item with the id _40012_ from the Planner task with the id _2Vf8JHgsBUiIf-nuvBtv-ZgAAYw2_
|
|
27
|
+
|
|
28
|
+
```sh
|
|
29
|
+
m365 planner task checklistitem remove --id "40012" --taskId "2Vf8JHgsBUiIf-nuvBtv-ZgAAYw2"
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
Removes a checklist item with the id _40012_ from the Planner task with the id _2Vf8JHgsBUiIf-nuvBtv-ZgAAYw2_ without prompt
|
|
33
|
+
|
|
34
|
+
```sh
|
|
35
|
+
m365 planner task checklistitem remove --id "40012" --taskId "2Vf8JHgsBUiIf-nuvBtv-ZgAAYw2" --confirm
|
|
36
|
+
```
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
# planner task reference remove
|
|
2
|
+
|
|
3
|
+
Removes the reference from the Planner task.
|
|
4
|
+
|
|
5
|
+
## Usage
|
|
6
|
+
|
|
7
|
+
```sh
|
|
8
|
+
m365 planner task reference remove [options]
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
## Options
|
|
12
|
+
|
|
13
|
+
`-u, --url [url]`
|
|
14
|
+
: URL location of the reference. Specify either `alias` or `url` but not both.
|
|
15
|
+
|
|
16
|
+
`--alias [alias]`
|
|
17
|
+
: The alias of the reference. Specify either `alias` or `url` but not both.
|
|
18
|
+
|
|
19
|
+
`-i, --taskId <taskId>`
|
|
20
|
+
: ID of the task.
|
|
21
|
+
|
|
22
|
+
`--confirm`
|
|
23
|
+
: Don't prompt for confirmation
|
|
24
|
+
|
|
25
|
+
--8<-- "docs/cmd/_global.md"
|
|
26
|
+
|
|
27
|
+
## Examples
|
|
28
|
+
|
|
29
|
+
Removes a reference with the url _https://www.microsoft.com_ from the Planner task with the id _2Vf8JHgsBUiIf-nuvBtv-ZgAAYw2_
|
|
30
|
+
|
|
31
|
+
```sh
|
|
32
|
+
m365 planner task reference remove --url "https://www.microsoft.com" --taskId "2Vf8JHgsBUiIf-nuvBtv-ZgAAYw2"
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
Removes a reference with the alias _Parker_ from the Planner task with the id _2Vf8JHgsBUiIf-nuvBtv-ZgAAYw2_
|
|
36
|
+
|
|
37
|
+
```sh
|
|
38
|
+
m365 planner task reference remove --alias "Parker" --taskId "2Vf8JHgsBUiIf-nuvBtv-ZgAAYw2"
|
|
39
|
+
```
|
|
@@ -61,16 +61,26 @@ m365 planner task set [options]
|
|
|
61
61
|
`--appliedCategories [appliedCategories]`
|
|
62
62
|
: Comma-separated categories that should be added to the task
|
|
63
63
|
|
|
64
|
+
`--priority [priority]`
|
|
65
|
+
: Priority of the task: Urgent, Important, Medium, Low. Or an integer between 0 and 10 (check remarks section for more info).
|
|
66
|
+
|
|
64
67
|
--8<-- "docs/cmd/_global.md"
|
|
65
68
|
|
|
66
69
|
## Remarks
|
|
67
70
|
|
|
68
|
-
When you specify the value for `
|
|
71
|
+
When you specify the value for `percentComplete`, consider the following:
|
|
69
72
|
|
|
70
73
|
- when set to 0, the task is considered _Not started_
|
|
71
74
|
- when set between 1 and 99, the task is considered _In progress_
|
|
72
75
|
- when set to 100, the task is considered _Completed_
|
|
73
76
|
|
|
77
|
+
When you specify an integer value for `priority`, consider the following:
|
|
78
|
+
|
|
79
|
+
- values 0 and 1 are interpreted as _Urgent_
|
|
80
|
+
- values 2, 3 and 4 are interpreted as _Important_
|
|
81
|
+
- values 5, 6 and 7 are interpreted as _Medium_
|
|
82
|
+
- values 8, 9 and 10 are interpreted as _Low_
|
|
83
|
+
|
|
74
84
|
You can add up to 6 categories to the task. An example to add _category1_ and _category3_ would be `category1,category3`.
|
|
75
85
|
|
|
76
86
|
## Examples
|
|
@@ -32,7 +32,7 @@ m365 spfx project upgrade [options]
|
|
|
32
32
|
|
|
33
33
|
## Remarks
|
|
34
34
|
|
|
35
|
-
The `spfx project upgrade` command helps you upgrade your SharePoint Framework project to the specified version. If no version is specified, the command will upgrade to the latest version of the SharePoint Framework it supports (v1.
|
|
35
|
+
The `spfx project upgrade` command helps you upgrade your SharePoint Framework project to the specified version. If no version is specified, the command will upgrade to the latest version of the SharePoint Framework it supports (v1.15.0).
|
|
36
36
|
|
|
37
37
|
This command doesn't change your project files. Instead, it gives you a report with all steps necessary to upgrade your project to the specified version of the SharePoint Framework. Changing project files is error-prone, especially when it comes to updating your solution's code. This is why at this moment, this command produces a report that you can use yourself to perform the necessary updates and verify that everything is working as expected.
|
|
38
38
|
|
|
@@ -17,10 +17,7 @@ m365 spo hubsite list [options]
|
|
|
17
17
|
|
|
18
18
|
## Remarks
|
|
19
19
|
|
|
20
|
-
|
|
21
|
-
This command is based on a SharePoint API that is currently in preview and is subject to change once the API reached general availability.
|
|
22
|
-
|
|
23
|
-
When using the text output type (default), the command lists only the values of the `ID`, `SiteUrl` and `Title` properties of the hub site. When setting the output type to JSON, all available properties are included in the command output.
|
|
20
|
+
When using the text or csv output type, the command lists only the values of the `ID`, `SiteUrl` and `Title` properties of the hub site. With the output type as JSON, all available properties are included in the command output.
|
|
24
21
|
|
|
25
22
|
## Examples
|
|
26
23
|
|
|
@@ -13,6 +13,9 @@ m365 spo list list [options]
|
|
|
13
13
|
`-u, --webUrl <webUrl>`
|
|
14
14
|
: URL of the site where the lists to retrieve are located
|
|
15
15
|
|
|
16
|
+
`--executeWithLimitedPermissions`
|
|
17
|
+
: Use this option to execute this command with site member or visitor permissions. Not specifying this option will require site owner (or admin) permissions.
|
|
18
|
+
|
|
16
19
|
--8<-- "docs/cmd/_global.md"
|
|
17
20
|
|
|
18
21
|
## Examples
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pnp/cli-microsoft365",
|
|
3
|
-
"version": "5.4.0
|
|
3
|
+
"version": "5.4.0",
|
|
4
4
|
"description": "Manage Microsoft 365 and SharePoint Framework projects on any platform",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"main": "./dist/api.js",
|
|
@@ -51,7 +51,7 @@
|
|
|
51
51
|
"name": "Waldek Mastykarz",
|
|
52
52
|
"email": "waldek@mastykarz.nl",
|
|
53
53
|
"web": "https://blog.mastykarz.nl"
|
|
54
|
-
},
|
|
54
|
+
},
|
|
55
55
|
{
|
|
56
56
|
"name": "Garry Trinder",
|
|
57
57
|
"email": "garry.trinder@live.com",
|
|
@@ -239,4 +239,4 @@
|
|
|
239
239
|
"sinon": "^14.0.0",
|
|
240
240
|
"source-map-support": "^0.5.21"
|
|
241
241
|
}
|
|
242
|
-
}
|
|
242
|
+
}
|