@pnp/cli-microsoft365 5.8.0-beta.57eff68 → 5.8.0-beta.7cba720
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/graph/Changelog.js +3 -0
- package/dist/m365/graph/commands/changelog/changelog-list.js +160 -0
- package/dist/m365/graph/commands.js +1 -0
- package/dist/m365/pp/commands/environment/environment-list.js +1 -1
- package/dist/m365/spfx/commands/project/project-doctor/doctor-1.16.0-beta.1.js +23 -0
- package/dist/m365/spfx/commands/project/project-doctor.js +2 -1
- package/dist/m365/spfx/commands/spfx-doctor.js +90 -79
- package/docs/docs/cmd/graph/changelog/changelog-list.md +53 -0
- package/docs/docs/cmd/pp/environment/environment-list.md +1 -1
- package/docs/docs/cmd/spfx/spfx-doctor.md +3 -3
- package/docs/docs/cmd/spo/list/list-roleassignment-add.md +2 -2
- package/docs/docs/cmd/spo/list/list-roleassignment-remove.md +2 -2
- package/docs/docs/cmd/spo/listitem/listitem-roleassignment-remove.md +2 -2
- package/docs/docs/cmd/spo/web/web-roleassignment-add.md +2 -2
- package/package.json +2 -1
|
@@ -0,0 +1,160 @@
|
|
|
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
|
+
var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
|
|
12
|
+
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
|
|
13
|
+
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
|
|
14
|
+
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
15
|
+
};
|
|
16
|
+
var _GraphChangelogListCommand_instances, _GraphChangelogListCommand_initTelemetry, _GraphChangelogListCommand_initOptions, _GraphChangelogListCommand_initValidators;
|
|
17
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
|
+
const utils_1 = require("../../../../utils");
|
|
19
|
+
const AnonymousCommand_1 = require("../../../base/AnonymousCommand");
|
|
20
|
+
const commands_1 = require("../../commands");
|
|
21
|
+
const request_1 = require("../../../../request");
|
|
22
|
+
const xmldom_1 = require("@xmldom/xmldom");
|
|
23
|
+
class GraphChangelogListCommand extends AnonymousCommand_1.default {
|
|
24
|
+
constructor() {
|
|
25
|
+
super();
|
|
26
|
+
_GraphChangelogListCommand_instances.add(this);
|
|
27
|
+
this.allowedVersions = ['beta', 'v1.0'];
|
|
28
|
+
this.allowedChangeTypes = ['Addition', 'Change', 'Deletion', 'Deprecation'];
|
|
29
|
+
this.allowedServices = [
|
|
30
|
+
'Applications', 'Calendar', 'Change notifications', 'Cloud communications',
|
|
31
|
+
'Compliance', 'Cross-device experiences', 'Customer booking', 'Device and app management',
|
|
32
|
+
'Education', 'Files', 'Financials', 'Groups',
|
|
33
|
+
'Identity and access', 'Mail', 'Notes', 'Notifications',
|
|
34
|
+
'People and workplace intelligence', 'Personal contacts', 'Reports', 'Search',
|
|
35
|
+
'Security', 'Sites and lists', 'Tasks and plans', 'Teamwork',
|
|
36
|
+
'To-do tasks', 'Users', 'Workbooks and charts'
|
|
37
|
+
];
|
|
38
|
+
__classPrivateFieldGet(this, _GraphChangelogListCommand_instances, "m", _GraphChangelogListCommand_initTelemetry).call(this);
|
|
39
|
+
__classPrivateFieldGet(this, _GraphChangelogListCommand_instances, "m", _GraphChangelogListCommand_initOptions).call(this);
|
|
40
|
+
__classPrivateFieldGet(this, _GraphChangelogListCommand_instances, "m", _GraphChangelogListCommand_initValidators).call(this);
|
|
41
|
+
}
|
|
42
|
+
get name() {
|
|
43
|
+
return commands_1.default.CHANGELOG_LIST;
|
|
44
|
+
}
|
|
45
|
+
get description() {
|
|
46
|
+
return 'Gets an overview of specific API-level changes in Microsoft Graph v1.0 and beta';
|
|
47
|
+
}
|
|
48
|
+
defaultProperties() {
|
|
49
|
+
return ['category', 'title', 'description'];
|
|
50
|
+
}
|
|
51
|
+
commandAction(logger, args, cb) {
|
|
52
|
+
const allowedChangeType = args.options.changeType && this.allowedChangeTypes.find(x => x.toLocaleLowerCase() === args.options.changeType.toLocaleLowerCase());
|
|
53
|
+
const searchParam = args.options.changeType ? `/?filterBy=${allowedChangeType}` : '';
|
|
54
|
+
const requestOptions = {
|
|
55
|
+
url: `https://developer.microsoft.com/en-us/graph/changelog/rss${searchParam}`,
|
|
56
|
+
headers: {
|
|
57
|
+
'accept': 'text/xml',
|
|
58
|
+
'x-anonymous': 'true'
|
|
59
|
+
}
|
|
60
|
+
};
|
|
61
|
+
request_1.default
|
|
62
|
+
.get(requestOptions)
|
|
63
|
+
.then((output) => {
|
|
64
|
+
const parser = new xmldom_1.DOMParser();
|
|
65
|
+
const xmlDoc = parser.parseFromString(output.toString(), "text/xml");
|
|
66
|
+
const changelog = this.filterThroughOptions(args.options, this.mapChangelog(xmlDoc, args));
|
|
67
|
+
logger.log(changelog.items);
|
|
68
|
+
cb();
|
|
69
|
+
}, (err) => this.handleRejectedODataJsonPromise(err, logger, cb));
|
|
70
|
+
}
|
|
71
|
+
filterThroughOptions(options, changelog) {
|
|
72
|
+
let items = changelog.items;
|
|
73
|
+
if (options.services) {
|
|
74
|
+
const allowedServices = this.allowedServices
|
|
75
|
+
.filter(allowedService => options.services.toLocaleLowerCase().split(',').includes(allowedService.toLocaleLowerCase()));
|
|
76
|
+
items = changelog.items.filter(item => allowedServices.includes(item.title));
|
|
77
|
+
}
|
|
78
|
+
if (options.versions) {
|
|
79
|
+
const allowedVersions = this.allowedVersions
|
|
80
|
+
.filter(allowedVersion => options.versions.toLocaleLowerCase().split(',').includes(allowedVersion.toLocaleLowerCase()));
|
|
81
|
+
items = items.filter(item => allowedVersions.includes(item.category));
|
|
82
|
+
}
|
|
83
|
+
if (options.startDate) {
|
|
84
|
+
const startDate = new Date(options.startDate);
|
|
85
|
+
items = items.filter(item => item.pubDate >= startDate);
|
|
86
|
+
}
|
|
87
|
+
if (options.endDate) {
|
|
88
|
+
const endDate = new Date(options.endDate);
|
|
89
|
+
items = items.filter(item => item.pubDate <= endDate);
|
|
90
|
+
}
|
|
91
|
+
// Make sure everything is unique based on the item guid
|
|
92
|
+
items = [...new Map(items.map((item) => [item.guid, item])).values()];
|
|
93
|
+
changelog.items = items.sort((itemA, itemB) => Number(itemB.pubDate) - Number(itemA.pubDate));
|
|
94
|
+
return changelog;
|
|
95
|
+
}
|
|
96
|
+
mapChangelog(xmlDoc, args) {
|
|
97
|
+
const channel = xmlDoc.getElementsByTagName('channel').item(0);
|
|
98
|
+
const changelog = {
|
|
99
|
+
title: channel.getElementsByTagName('title').item(0).textContent,
|
|
100
|
+
description: channel.getElementsByTagName('description').item(0).textContent,
|
|
101
|
+
url: channel.getElementsByTagName('link').item(0).textContent,
|
|
102
|
+
items: []
|
|
103
|
+
};
|
|
104
|
+
Array.from(xmlDoc.getElementsByTagName('item')).forEach((item) => {
|
|
105
|
+
const description = args.options.output === 'text' ?
|
|
106
|
+
utils_1.md.md2plain(item.getElementsByTagName('description').item(0).textContent, '') :
|
|
107
|
+
item.getElementsByTagName('description').item(0).textContent;
|
|
108
|
+
changelog.items.push({
|
|
109
|
+
guid: item.getElementsByTagName('guid').item(0).textContent,
|
|
110
|
+
category: item.getElementsByTagName('category').item(1).textContent,
|
|
111
|
+
title: item.getElementsByTagName('title').item(0).textContent,
|
|
112
|
+
description: args.options.output === 'text' ?
|
|
113
|
+
description.length > 50 ? `${description.substring(0, 47)}...` : description :
|
|
114
|
+
description,
|
|
115
|
+
pubDate: new Date(item.getElementsByTagName('pubDate').item(0).textContent)
|
|
116
|
+
});
|
|
117
|
+
});
|
|
118
|
+
return changelog;
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
_GraphChangelogListCommand_instances = new WeakSet(), _GraphChangelogListCommand_initTelemetry = function _GraphChangelogListCommand_initTelemetry() {
|
|
122
|
+
this.telemetry.push((args) => {
|
|
123
|
+
Object.assign(this.telemetryProperties, {
|
|
124
|
+
versions: typeof args.options.versions !== 'undefined',
|
|
125
|
+
changeType: typeof args.options.changeType !== 'undefined',
|
|
126
|
+
services: typeof args.options.services !== 'undefined',
|
|
127
|
+
startDate: typeof args.options.startDate !== 'undefined',
|
|
128
|
+
endDate: typeof args.options.endDate !== 'undefined'
|
|
129
|
+
});
|
|
130
|
+
});
|
|
131
|
+
}, _GraphChangelogListCommand_initOptions = function _GraphChangelogListCommand_initOptions() {
|
|
132
|
+
this.options.unshift({ option: '-v, --versions [versions]', autocomplete: this.allowedVersions }, { option: "-c, --changeType [changeType]", autocomplete: this.allowedChangeTypes }, { option: "-s, --services [services]", autocomplete: this.allowedServices }, { option: "--startDate [startDate]" }, { option: "--endDate [endDate]" });
|
|
133
|
+
}, _GraphChangelogListCommand_initValidators = function _GraphChangelogListCommand_initValidators() {
|
|
134
|
+
this.validators.push((args) => __awaiter(this, void 0, void 0, function* () {
|
|
135
|
+
if (args.options.versions &&
|
|
136
|
+
args.options.versions.toLocaleLowerCase().split(',').some(x => !this.allowedVersions.map(y => y.toLocaleLowerCase()).includes(x))) {
|
|
137
|
+
return `The verions contains an invalid value. Specify either ${this.allowedVersions.join(', ')} as properties`;
|
|
138
|
+
}
|
|
139
|
+
if (args.options.changeType &&
|
|
140
|
+
!this.allowedChangeTypes.map(x => x.toLocaleLowerCase()).includes(args.options.changeType.toLocaleLowerCase())) {
|
|
141
|
+
return `The change type contain an invalid value. Specify either ${this.allowedChangeTypes.join(', ')} as properties`;
|
|
142
|
+
}
|
|
143
|
+
if (args.options.services &&
|
|
144
|
+
args.options.services.toLocaleLowerCase().split(',').some(x => !this.allowedServices.map(y => y.toLocaleLowerCase()).includes(x))) {
|
|
145
|
+
return `The services contains invalid value. Specify either ${this.allowedServices.join(', ')} as properties`;
|
|
146
|
+
}
|
|
147
|
+
if (args.options.startDate && !utils_1.validation.isValidISODate(args.options.startDate)) {
|
|
148
|
+
return 'The startDate is not a valid ISO date string';
|
|
149
|
+
}
|
|
150
|
+
if (args.options.endDate && !utils_1.validation.isValidISODate(args.options.endDate)) {
|
|
151
|
+
return 'The endDate is not a valid ISO date string';
|
|
152
|
+
}
|
|
153
|
+
if (args.options.endDate && args.options.startDate && new Date(args.options.endDate) < new Date(args.options.startDate)) {
|
|
154
|
+
return 'The endDate should be later than startDate';
|
|
155
|
+
}
|
|
156
|
+
return true;
|
|
157
|
+
}));
|
|
158
|
+
};
|
|
159
|
+
module.exports = new GraphChangelogListCommand();
|
|
160
|
+
//# sourceMappingURL=changelog-list.js.map
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
const prefix = 'graph';
|
|
4
4
|
exports.default = {
|
|
5
|
+
CHANGELOG_LIST: `${prefix} changelog list`,
|
|
5
6
|
SCHEMAEXTENSION_ADD: `${prefix} schemaextension add`,
|
|
6
7
|
SCHEMAEXTENSION_GET: `${prefix} schemaextension get`,
|
|
7
8
|
SCHEMAEXTENSION_LIST: `${prefix} schemaextension list`,
|
|
@@ -64,7 +64,7 @@ _PpEnvironmentListCommand_instances = new WeakSet(), _PpEnvironmentListCommand_i
|
|
|
64
64
|
});
|
|
65
65
|
}, _PpEnvironmentListCommand_initOptions = function _PpEnvironmentListCommand_initOptions() {
|
|
66
66
|
this.options.unshift({
|
|
67
|
-
option: '-a, --asAdmin
|
|
67
|
+
option: '-a, --asAdmin'
|
|
68
68
|
});
|
|
69
69
|
};
|
|
70
70
|
module.exports = new PpEnvironmentListCommand();
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const FN001008_DEP_react_1 = require("./rules/FN001008_DEP_react");
|
|
4
|
+
const FN001009_DEP_react_dom_1 = require("./rules/FN001009_DEP_react_dom");
|
|
5
|
+
const FN001022_DEP_office_ui_fabric_react_1 = require("./rules/FN001022_DEP_office_ui_fabric_react");
|
|
6
|
+
const FN002004_DEVDEP_gulp_1 = require("./rules/FN002004_DEVDEP_gulp");
|
|
7
|
+
const FN002007_DEVDEP_ajv_1 = require("./rules/FN002007_DEVDEP_ajv");
|
|
8
|
+
const FN002013_DEVDEP_types_webpack_env_1 = require("./rules/FN002013_DEVDEP_types_webpack_env");
|
|
9
|
+
const FN002015_DEVDEP_types_react_1 = require("./rules/FN002015_DEVDEP_types_react");
|
|
10
|
+
const FN002016_DEVDEP_types_react_dom_1 = require("./rules/FN002016_DEVDEP_types_react_dom");
|
|
11
|
+
const FN002019_DEVDEP_microsoft_rush_stack_compiler_1 = require("./rules/FN002019_DEVDEP_microsoft_rush_stack_compiler");
|
|
12
|
+
module.exports = [
|
|
13
|
+
new FN001008_DEP_react_1.FN001008_DEP_react('16'),
|
|
14
|
+
new FN001009_DEP_react_dom_1.FN001009_DEP_react_dom('16'),
|
|
15
|
+
new FN001022_DEP_office_ui_fabric_react_1.FN001022_DEP_office_ui_fabric_react('7.192.0'),
|
|
16
|
+
new FN002004_DEVDEP_gulp_1.FN002004_DEVDEP_gulp('4.0.2'),
|
|
17
|
+
new FN002007_DEVDEP_ajv_1.FN002007_DEVDEP_ajv('^6.12.5'),
|
|
18
|
+
new FN002013_DEVDEP_types_webpack_env_1.FN002013_DEVDEP_types_webpack_env('~1.15.2'),
|
|
19
|
+
new FN002015_DEVDEP_types_react_1.FN002015_DEVDEP_types_react('16'),
|
|
20
|
+
new FN002016_DEVDEP_types_react_dom_1.FN002016_DEVDEP_types_react_dom('16'),
|
|
21
|
+
new FN002019_DEVDEP_microsoft_rush_stack_compiler_1.FN002019_DEVDEP_microsoft_rush_stack_compiler(['4.5'])
|
|
22
|
+
];
|
|
23
|
+
//# sourceMappingURL=doctor-1.16.0-beta.1.js.map
|
|
@@ -61,7 +61,8 @@ class SpfxProjectDoctorCommand extends base_project_command_1.BaseProjectCommand
|
|
|
61
61
|
'1.13.1',
|
|
62
62
|
'1.14.0',
|
|
63
63
|
'1.15.0',
|
|
64
|
-
'1.15.2'
|
|
64
|
+
'1.15.2',
|
|
65
|
+
'1.16.0-beta.1'
|
|
65
66
|
];
|
|
66
67
|
__classPrivateFieldGet(this, _SpfxProjectDoctorCommand_instances, "m", _SpfxProjectDoctorCommand_initTelemetry).call(this);
|
|
67
68
|
__classPrivateFieldGet(this, _SpfxProjectDoctorCommand_instances, "m", _SpfxProjectDoctorCommand_initOptions).call(this);
|
|
@@ -71,9 +71,9 @@ class SpfxDoctorCommand extends AnonymousCommand_1.default {
|
|
|
71
71
|
_SpfxDoctorCommand_instances.add(this);
|
|
72
72
|
this.versions = {
|
|
73
73
|
'1.0.0': {
|
|
74
|
-
|
|
75
|
-
range: '^
|
|
76
|
-
fix: 'npm i -g gulp@
|
|
74
|
+
gulpCli: {
|
|
75
|
+
range: '^1 || ^2',
|
|
76
|
+
fix: 'npm i -g gulp-cli@2'
|
|
77
77
|
},
|
|
78
78
|
node: {
|
|
79
79
|
range: '^6',
|
|
@@ -86,9 +86,9 @@ class SpfxDoctorCommand extends AnonymousCommand_1.default {
|
|
|
86
86
|
}
|
|
87
87
|
},
|
|
88
88
|
'1.1.0': {
|
|
89
|
-
|
|
90
|
-
range: '^
|
|
91
|
-
fix: 'npm i -g gulp@
|
|
89
|
+
gulpCli: {
|
|
90
|
+
range: '^1 || ^2',
|
|
91
|
+
fix: 'npm i -g gulp-cli@2'
|
|
92
92
|
},
|
|
93
93
|
node: {
|
|
94
94
|
range: '^6',
|
|
@@ -101,9 +101,9 @@ class SpfxDoctorCommand extends AnonymousCommand_1.default {
|
|
|
101
101
|
}
|
|
102
102
|
},
|
|
103
103
|
'1.2.0': {
|
|
104
|
-
|
|
105
|
-
range: '^
|
|
106
|
-
fix: 'npm i -g gulp@
|
|
104
|
+
gulpCli: {
|
|
105
|
+
range: '^1 || ^2',
|
|
106
|
+
fix: 'npm i -g gulp-cli@2'
|
|
107
107
|
},
|
|
108
108
|
node: {
|
|
109
109
|
range: '^6',
|
|
@@ -116,9 +116,9 @@ class SpfxDoctorCommand extends AnonymousCommand_1.default {
|
|
|
116
116
|
}
|
|
117
117
|
},
|
|
118
118
|
'1.4.0': {
|
|
119
|
-
|
|
120
|
-
range: '^
|
|
121
|
-
fix: 'npm i -g gulp@
|
|
119
|
+
gulpCli: {
|
|
120
|
+
range: '^1 || ^2',
|
|
121
|
+
fix: 'npm i -g gulp-cli@2'
|
|
122
122
|
},
|
|
123
123
|
node: {
|
|
124
124
|
range: '^6',
|
|
@@ -131,9 +131,9 @@ class SpfxDoctorCommand extends AnonymousCommand_1.default {
|
|
|
131
131
|
}
|
|
132
132
|
},
|
|
133
133
|
'1.4.1': {
|
|
134
|
-
|
|
135
|
-
range: '^
|
|
136
|
-
fix: 'npm i -g gulp@
|
|
134
|
+
gulpCli: {
|
|
135
|
+
range: '^1 || ^2',
|
|
136
|
+
fix: 'npm i -g gulp-cli@2'
|
|
137
137
|
},
|
|
138
138
|
node: {
|
|
139
139
|
range: '^6 || ^8',
|
|
@@ -146,9 +146,9 @@ class SpfxDoctorCommand extends AnonymousCommand_1.default {
|
|
|
146
146
|
}
|
|
147
147
|
},
|
|
148
148
|
'1.5.0': {
|
|
149
|
-
|
|
150
|
-
range: '^
|
|
151
|
-
fix: 'npm i -g gulp@
|
|
149
|
+
gulpCli: {
|
|
150
|
+
range: '^1 || ^2',
|
|
151
|
+
fix: 'npm i -g gulp-cli@2'
|
|
152
152
|
},
|
|
153
153
|
node: {
|
|
154
154
|
range: '^6 || ^8',
|
|
@@ -161,9 +161,9 @@ class SpfxDoctorCommand extends AnonymousCommand_1.default {
|
|
|
161
161
|
}
|
|
162
162
|
},
|
|
163
163
|
'1.5.1': {
|
|
164
|
-
|
|
165
|
-
range: '^
|
|
166
|
-
fix: 'npm i -g gulp@
|
|
164
|
+
gulpCli: {
|
|
165
|
+
range: '^1 || ^2',
|
|
166
|
+
fix: 'npm i -g gulp-cli@2'
|
|
167
167
|
},
|
|
168
168
|
node: {
|
|
169
169
|
range: '^6 || ^8',
|
|
@@ -176,9 +176,9 @@ class SpfxDoctorCommand extends AnonymousCommand_1.default {
|
|
|
176
176
|
}
|
|
177
177
|
},
|
|
178
178
|
'1.6.0': {
|
|
179
|
-
|
|
180
|
-
range: '^
|
|
181
|
-
fix: 'npm i -g gulp@
|
|
179
|
+
gulpCli: {
|
|
180
|
+
range: '^1 || ^2',
|
|
181
|
+
fix: 'npm i -g gulp-cli@2'
|
|
182
182
|
},
|
|
183
183
|
node: {
|
|
184
184
|
range: '^6 || ^8',
|
|
@@ -191,9 +191,9 @@ class SpfxDoctorCommand extends AnonymousCommand_1.default {
|
|
|
191
191
|
}
|
|
192
192
|
},
|
|
193
193
|
'1.7.0': {
|
|
194
|
-
|
|
195
|
-
range: '^
|
|
196
|
-
fix: 'npm i -g gulp@
|
|
194
|
+
gulpCli: {
|
|
195
|
+
range: '^1 || ^2',
|
|
196
|
+
fix: 'npm i -g gulp-cli@2'
|
|
197
197
|
},
|
|
198
198
|
node: {
|
|
199
199
|
range: '^8',
|
|
@@ -206,9 +206,9 @@ class SpfxDoctorCommand extends AnonymousCommand_1.default {
|
|
|
206
206
|
}
|
|
207
207
|
},
|
|
208
208
|
'1.7.1': {
|
|
209
|
-
|
|
210
|
-
range: '^
|
|
211
|
-
fix: 'npm i -g gulp@
|
|
209
|
+
gulpCli: {
|
|
210
|
+
range: '^1 || ^2',
|
|
211
|
+
fix: 'npm i -g gulp-cli@2'
|
|
212
212
|
},
|
|
213
213
|
node: {
|
|
214
214
|
range: '^8',
|
|
@@ -221,9 +221,9 @@ class SpfxDoctorCommand extends AnonymousCommand_1.default {
|
|
|
221
221
|
}
|
|
222
222
|
},
|
|
223
223
|
'1.8.0': {
|
|
224
|
-
|
|
225
|
-
range: '^
|
|
226
|
-
fix: 'npm i -g gulp@
|
|
224
|
+
gulpCli: {
|
|
225
|
+
range: '^1 || ^2',
|
|
226
|
+
fix: 'npm i -g gulp-cli@2'
|
|
227
227
|
},
|
|
228
228
|
node: {
|
|
229
229
|
range: '^8',
|
|
@@ -236,9 +236,9 @@ class SpfxDoctorCommand extends AnonymousCommand_1.default {
|
|
|
236
236
|
}
|
|
237
237
|
},
|
|
238
238
|
'1.8.1': {
|
|
239
|
-
|
|
240
|
-
range: '^
|
|
241
|
-
fix: 'npm i -g gulp@
|
|
239
|
+
gulpCli: {
|
|
240
|
+
range: '^1 || ^2',
|
|
241
|
+
fix: 'npm i -g gulp-cli@2'
|
|
242
242
|
},
|
|
243
243
|
node: {
|
|
244
244
|
range: '^8',
|
|
@@ -251,9 +251,9 @@ class SpfxDoctorCommand extends AnonymousCommand_1.default {
|
|
|
251
251
|
}
|
|
252
252
|
},
|
|
253
253
|
'1.8.2': {
|
|
254
|
-
|
|
255
|
-
range: '^
|
|
256
|
-
fix: 'npm i -g gulp@
|
|
254
|
+
gulpCli: {
|
|
255
|
+
range: '^1 || ^2',
|
|
256
|
+
fix: 'npm i -g gulp-cli@2'
|
|
257
257
|
},
|
|
258
258
|
node: {
|
|
259
259
|
range: '^8 || ^10',
|
|
@@ -266,9 +266,9 @@ class SpfxDoctorCommand extends AnonymousCommand_1.default {
|
|
|
266
266
|
}
|
|
267
267
|
},
|
|
268
268
|
'1.9.0': {
|
|
269
|
-
|
|
270
|
-
range: '^
|
|
271
|
-
fix: 'npm i -g gulp@
|
|
269
|
+
gulpCli: {
|
|
270
|
+
range: '^1 || ^2',
|
|
271
|
+
fix: 'npm i -g gulp-cli@2'
|
|
272
272
|
},
|
|
273
273
|
node: {
|
|
274
274
|
range: '^8 || ^10',
|
|
@@ -281,9 +281,9 @@ class SpfxDoctorCommand extends AnonymousCommand_1.default {
|
|
|
281
281
|
}
|
|
282
282
|
},
|
|
283
283
|
'1.9.1': {
|
|
284
|
-
|
|
285
|
-
range: '^
|
|
286
|
-
fix: 'npm i -g gulp@
|
|
284
|
+
gulpCli: {
|
|
285
|
+
range: '^1 || ^2',
|
|
286
|
+
fix: 'npm i -g gulp-cli@2'
|
|
287
287
|
},
|
|
288
288
|
node: {
|
|
289
289
|
range: '^10',
|
|
@@ -296,9 +296,9 @@ class SpfxDoctorCommand extends AnonymousCommand_1.default {
|
|
|
296
296
|
}
|
|
297
297
|
},
|
|
298
298
|
'1.10.0': {
|
|
299
|
-
|
|
300
|
-
range: '^
|
|
301
|
-
fix: 'npm i -g gulp@
|
|
299
|
+
gulpCli: {
|
|
300
|
+
range: '^1 || ^2',
|
|
301
|
+
fix: 'npm i -g gulp-cli@2'
|
|
302
302
|
},
|
|
303
303
|
node: {
|
|
304
304
|
range: '^10',
|
|
@@ -311,9 +311,9 @@ class SpfxDoctorCommand extends AnonymousCommand_1.default {
|
|
|
311
311
|
}
|
|
312
312
|
},
|
|
313
313
|
'1.11.0': {
|
|
314
|
-
|
|
315
|
-
range: '^
|
|
316
|
-
fix: 'npm i -g gulp@
|
|
314
|
+
gulpCli: {
|
|
315
|
+
range: '^1 || ^2',
|
|
316
|
+
fix: 'npm i -g gulp-cli@2'
|
|
317
317
|
},
|
|
318
318
|
node: {
|
|
319
319
|
range: '^10',
|
|
@@ -326,9 +326,9 @@ class SpfxDoctorCommand extends AnonymousCommand_1.default {
|
|
|
326
326
|
}
|
|
327
327
|
},
|
|
328
328
|
'1.12.0': {
|
|
329
|
-
|
|
330
|
-
range: '^
|
|
331
|
-
fix: 'npm i -g gulp@
|
|
329
|
+
gulpCli: {
|
|
330
|
+
range: '^1 || ^2',
|
|
331
|
+
fix: 'npm i -g gulp-cli@2'
|
|
332
332
|
},
|
|
333
333
|
node: {
|
|
334
334
|
range: '^12',
|
|
@@ -341,9 +341,9 @@ class SpfxDoctorCommand extends AnonymousCommand_1.default {
|
|
|
341
341
|
}
|
|
342
342
|
},
|
|
343
343
|
'1.12.1': {
|
|
344
|
-
|
|
345
|
-
range: '^
|
|
346
|
-
fix: 'npm i -g gulp@
|
|
344
|
+
gulpCli: {
|
|
345
|
+
range: '^1 || ^2',
|
|
346
|
+
fix: 'npm i -g gulp-cli@2'
|
|
347
347
|
},
|
|
348
348
|
node: {
|
|
349
349
|
range: '^12 || ^14',
|
|
@@ -356,9 +356,9 @@ class SpfxDoctorCommand extends AnonymousCommand_1.default {
|
|
|
356
356
|
}
|
|
357
357
|
},
|
|
358
358
|
'1.13.0': {
|
|
359
|
-
|
|
360
|
-
range: '^
|
|
361
|
-
fix: 'npm i -g gulp@
|
|
359
|
+
gulpCli: {
|
|
360
|
+
range: '^1 || ^2',
|
|
361
|
+
fix: 'npm i -g gulp-cli@2'
|
|
362
362
|
},
|
|
363
363
|
node: {
|
|
364
364
|
range: '^12 || ^14',
|
|
@@ -371,9 +371,9 @@ class SpfxDoctorCommand extends AnonymousCommand_1.default {
|
|
|
371
371
|
}
|
|
372
372
|
},
|
|
373
373
|
'1.13.1': {
|
|
374
|
-
|
|
375
|
-
range: '^
|
|
376
|
-
fix: 'npm i -g gulp@
|
|
374
|
+
gulpCli: {
|
|
375
|
+
range: '^1 || ^2',
|
|
376
|
+
fix: 'npm i -g gulp-cli@2'
|
|
377
377
|
},
|
|
378
378
|
node: {
|
|
379
379
|
range: '^12 || ^14',
|
|
@@ -386,9 +386,9 @@ class SpfxDoctorCommand extends AnonymousCommand_1.default {
|
|
|
386
386
|
}
|
|
387
387
|
},
|
|
388
388
|
'1.14.0': {
|
|
389
|
-
|
|
390
|
-
range: '^
|
|
391
|
-
fix: 'npm i -g gulp@
|
|
389
|
+
gulpCli: {
|
|
390
|
+
range: '^1 || ^2',
|
|
391
|
+
fix: 'npm i -g gulp-cli@2'
|
|
392
392
|
},
|
|
393
393
|
node: {
|
|
394
394
|
range: '^12 || ^14',
|
|
@@ -401,9 +401,9 @@ class SpfxDoctorCommand extends AnonymousCommand_1.default {
|
|
|
401
401
|
}
|
|
402
402
|
},
|
|
403
403
|
'1.15.0': {
|
|
404
|
-
|
|
405
|
-
range: '^
|
|
406
|
-
fix: 'npm i -g gulp@
|
|
404
|
+
gulpCli: {
|
|
405
|
+
range: '^1 || ^2',
|
|
406
|
+
fix: 'npm i -g gulp-cli@2'
|
|
407
407
|
},
|
|
408
408
|
node: {
|
|
409
409
|
range: '^12.13 || ^14.15 || ^16.13',
|
|
@@ -416,9 +416,9 @@ class SpfxDoctorCommand extends AnonymousCommand_1.default {
|
|
|
416
416
|
}
|
|
417
417
|
},
|
|
418
418
|
'1.15.2': {
|
|
419
|
-
|
|
420
|
-
range: '^
|
|
421
|
-
fix: 'npm i -g gulp@
|
|
419
|
+
gulpCli: {
|
|
420
|
+
range: '^1 || ^2',
|
|
421
|
+
fix: 'npm i -g gulp-cli@2'
|
|
422
422
|
},
|
|
423
423
|
node: {
|
|
424
424
|
range: '^12.13 || ^14.15 || ^16.13',
|
|
@@ -472,7 +472,8 @@ class SpfxDoctorCommand extends AnonymousCommand_1.default {
|
|
|
472
472
|
.then(_ => this.checkSharePointCompatibility(spfxVersion, prerequisites, args, fixes, logger))
|
|
473
473
|
.then(_ => this.checkNodeVersion(prerequisites, fixes, logger))
|
|
474
474
|
.then(_ => this.checkYo(prerequisites, fixes, logger))
|
|
475
|
-
.then(_ => this.checkGulp(
|
|
475
|
+
.then(_ => this.checkGulp(fixes, logger))
|
|
476
|
+
.then(_ => this.checkGulpCli(prerequisites, fixes, logger))
|
|
476
477
|
.then(_ => this.checkTypeScript(fixes, logger))
|
|
477
478
|
.then(_ => {
|
|
478
479
|
if (fixes.length > 0) {
|
|
@@ -534,16 +535,26 @@ class SpfxDoctorCommand extends AnonymousCommand_1.default {
|
|
|
534
535
|
}
|
|
535
536
|
});
|
|
536
537
|
}
|
|
537
|
-
|
|
538
|
+
checkGulpCli(prerequisites, fixes, logger) {
|
|
539
|
+
return this
|
|
540
|
+
.getPackageVersion('gulp-cli', PackageSearchMode.GlobalOnly, HandlePromise.Continue, logger)
|
|
541
|
+
.then((gulpCliVersion) => {
|
|
542
|
+
if (gulpCliVersion) {
|
|
543
|
+
this.checkStatus('gulp-cli', gulpCliVersion, prerequisites.gulpCli, OptionalOrRequired.Required, fixes, logger);
|
|
544
|
+
}
|
|
545
|
+
else {
|
|
546
|
+
logger.log(this.getStatus(CheckStatus.Failure, `gulp-cli not found`));
|
|
547
|
+
fixes.push(prerequisites.gulpCli.fix);
|
|
548
|
+
}
|
|
549
|
+
});
|
|
550
|
+
}
|
|
551
|
+
checkGulp(fixes, logger) {
|
|
538
552
|
return this
|
|
539
553
|
.getPackageVersion('gulp', PackageSearchMode.GlobalOnly, HandlePromise.Continue, logger)
|
|
540
554
|
.then((gulpVersion) => {
|
|
541
555
|
if (gulpVersion) {
|
|
542
|
-
this.
|
|
543
|
-
|
|
544
|
-
else {
|
|
545
|
-
logger.log(this.getStatus(CheckStatus.Failure, `gulp not found`));
|
|
546
|
-
fixes.push(prerequisites.gulp.fix);
|
|
556
|
+
logger.log(this.getStatus(CheckStatus.Failure, `gulp should be removed`));
|
|
557
|
+
fixes.push('npm un -g gulp');
|
|
547
558
|
}
|
|
548
559
|
});
|
|
549
560
|
}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
# graph changelog list
|
|
2
|
+
|
|
3
|
+
Gets an overview of specific API-level changes in Microsoft Graph v1.0 and beta
|
|
4
|
+
|
|
5
|
+
## Usage
|
|
6
|
+
|
|
7
|
+
```sh
|
|
8
|
+
m365 graph changelog list [options]
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
## Options
|
|
12
|
+
|
|
13
|
+
`-v, --versions [versions]`
|
|
14
|
+
: Comma-separated list of versions to show changes for. `Beta, v1.0`. When no version is selected all versions are returned.
|
|
15
|
+
|
|
16
|
+
`-c, --changeType [changeType]`
|
|
17
|
+
: Change type to show changes for. `Addition, Change, Deletion`. When no changeType is selected all change types are returned.
|
|
18
|
+
|
|
19
|
+
`-s, --services [services]`
|
|
20
|
+
: Comma-separated list of services to show changes for. `Applications, Calendar, Change notifications, Cloud communications, Compliance, Cross-device experiences, Customer booking, Device and app management, Education, Files, Financials, Groups, Identity and access, Mail, Notes, Notifications, People and workplace intelligence, Personal contacts, Reports, Search, Security, Sites and lists, Tasks and plans, Teamwork, To-do tasks, Users, Workbooks and charts`. When no service is selected all services are returned.
|
|
21
|
+
|
|
22
|
+
`--startDate [startDate]`
|
|
23
|
+
: The startdate used to query for changes. Supported date format is `YYYY-MM-DD`. When no date is specified all changes are returned.
|
|
24
|
+
|
|
25
|
+
`--endDate [endDate]`
|
|
26
|
+
: The enddate used to query for changes. Supported date format is `YYYY-MM-DD`. When no date is specified all changes are returned.
|
|
27
|
+
|
|
28
|
+
--8<-- "docs/cmd/_global.md"
|
|
29
|
+
|
|
30
|
+
## Remarks
|
|
31
|
+
|
|
32
|
+
!!! attention
|
|
33
|
+
This command is based on an API that is currently in preview and is subject to change once the API reached general availability.
|
|
34
|
+
|
|
35
|
+
## Examples
|
|
36
|
+
|
|
37
|
+
Get all changes within Microsoft Graph.
|
|
38
|
+
|
|
39
|
+
```sh
|
|
40
|
+
m365 graph changelog list
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
Get all changes within Microsoft Graph for the services _Groups_ and _Users_.
|
|
44
|
+
|
|
45
|
+
```sh
|
|
46
|
+
m365 graph changelog list --services 'Groups,Users'
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
Get all changes within Microsoft Graph that happend between _2021-01-01_ and _2021-05-01_.
|
|
50
|
+
|
|
51
|
+
```sh
|
|
52
|
+
m365 graph changelog list --startDate '2021-01-01' --endDate '2021-05-01'
|
|
53
|
+
```
|
|
@@ -10,7 +10,7 @@ m365 pp environment list [options]
|
|
|
10
10
|
|
|
11
11
|
## Options
|
|
12
12
|
|
|
13
|
-
`-a, --asAdmin
|
|
13
|
+
`-a, --asAdmin`
|
|
14
14
|
Run the command as admin and retrieve all environments. Lists only environments you have explicitly are assigned permissions to by default.
|
|
15
15
|
|
|
16
16
|
--8<-- "docs/cmd/_global.md"
|
|
@@ -37,7 +37,7 @@ This commands helps you to verify if your environment meets all prerequisites fo
|
|
|
37
37
|
|
|
38
38
|
The command starts by detecting the version of SharePoint Framework that you want to use. First, it looks at the current project. If you didn't run the command in the context of a SharePoint Framework project, the command will try to determine the SharePoint Framework version based on the SharePoint Framework Yeoman generator that you have installed either in the current directory or globally.
|
|
39
39
|
|
|
40
|
-
Based on the determined version of the SharePoint Framework, the command will look at other dependencies such as Node.js, npm, Yeoman, Gulp and TypeScript to verify if their meet the requirements of that particular version of the SharePoint Framework.
|
|
40
|
+
Based on the determined version of the SharePoint Framework, the command will look at other dependencies such as Node.js, npm, Yeoman, Gulp CLI and TypeScript to verify if their meet the requirements of that particular version of the SharePoint Framework.
|
|
41
41
|
|
|
42
42
|
If you miss any required tools or use a version that doesn't meet the SharePoint Framework requirements, the command will give you a list of recommendation how to address these issues.
|
|
43
43
|
|
|
@@ -51,11 +51,11 @@ Next to verifying the readiness of your environment to use a particular version
|
|
|
51
51
|
Verify if your environment meets the requirements to work with the SharePoint Framework
|
|
52
52
|
|
|
53
53
|
```sh
|
|
54
|
-
m365 spfx doctor
|
|
54
|
+
m365 spfx doctor --output text
|
|
55
55
|
```
|
|
56
56
|
|
|
57
57
|
Verify if your environment meets the requirements to work with the SharePoint Framework and also if the version of the SharePoint Framework that you're using is compatible with SharePoint 2019
|
|
58
58
|
|
|
59
59
|
```sh
|
|
60
|
-
m365 spfx doctor --env sp2019
|
|
60
|
+
m365 spfx doctor --env sp2019 --output text
|
|
61
61
|
```
|
|
@@ -26,10 +26,10 @@ m365 spo list roleassignment add [options]
|
|
|
26
26
|
: SharePoint ID of principal it may be either user id or group id we want to add permissions to. Specify principalId only when upn or groupName are not used.
|
|
27
27
|
|
|
28
28
|
`--upn [upn]`
|
|
29
|
-
: Upn/email of user to assign role to. Specify either upn or
|
|
29
|
+
: Upn/email of user to assign role to. Specify either upn or principalId
|
|
30
30
|
|
|
31
31
|
`--groupName [groupName]`
|
|
32
|
-
: Enter group name of Azure AD or SharePoint group.. Specify either groupName or
|
|
32
|
+
: Enter group name of Azure AD or SharePoint group.. Specify either groupName or principalId
|
|
33
33
|
|
|
34
34
|
`--roleDefinitionId [roleDefinitionId]`
|
|
35
35
|
: ID of role definition. Specify either roleDefinitionId or roleDefinitionName but not both
|
|
@@ -26,10 +26,10 @@ m365 spo list roleassignment remove [options]
|
|
|
26
26
|
: SharePoint ID of principal it may be either user id or group id we want to remove permissions Specify principalId only when upn or groupName are not used.
|
|
27
27
|
|
|
28
28
|
`--upn [upn]`
|
|
29
|
-
: upn/email of user. Specify either upn or
|
|
29
|
+
: upn/email of user. Specify either upn or principalId.
|
|
30
30
|
|
|
31
31
|
`--groupName [groupName]`
|
|
32
|
-
: enter group name of Azure AD or SharePoint group. Specify either groupName or
|
|
32
|
+
: enter group name of Azure AD or SharePoint group. Specify either groupName or principalId.
|
|
33
33
|
|
|
34
34
|
`--confirm`
|
|
35
35
|
: Don't prompt for confirming removing the role assignment
|
|
@@ -29,10 +29,10 @@ m365 spo listitem roleassignment remove [options]
|
|
|
29
29
|
: SharePoint ID of principal it may be either user id or group id we want to remove permissions Specify principalId only when upn or groupName are not used.
|
|
30
30
|
|
|
31
31
|
`--upn [upn]`
|
|
32
|
-
: upn/email of user. Specify either upn or
|
|
32
|
+
: upn/email of user. Specify either upn or principalId.
|
|
33
33
|
|
|
34
34
|
`--groupName [groupName]`
|
|
35
|
-
: enter group name of Azure AD or SharePoint group. Specify either groupName or
|
|
35
|
+
: enter group name of Azure AD or SharePoint group. Specify either groupName or principalId.
|
|
36
36
|
|
|
37
37
|
`--confirm`
|
|
38
38
|
: Don't prompt for confirming removing the role assignment
|
|
@@ -17,10 +17,10 @@ m365 spo web roleassignment add [options]
|
|
|
17
17
|
: SharePoint ID of principal it may be either user id or group id we want to add permissions to. Specify principalId only when upn or groupName are not used.
|
|
18
18
|
|
|
19
19
|
`--upn [upn]`
|
|
20
|
-
: upn/email of user to assign role to. Specify either upn or
|
|
20
|
+
: upn/email of user to assign role to. Specify either upn or principalId
|
|
21
21
|
|
|
22
22
|
`--groupName [groupName]`
|
|
23
|
-
: enter group name of Azure AD or SharePoint group.. Specify either groupName or
|
|
23
|
+
: enter group name of Azure AD or SharePoint group.. Specify either groupName or principalId
|
|
24
24
|
|
|
25
25
|
`--roleDefinitionId [roleDefinitionId]`
|
|
26
26
|
: ID of role definition. Specify either roleDefinitionId or roleDefinitionName but not both
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pnp/cli-microsoft365",
|
|
3
|
-
"version": "5.8.0-beta.
|
|
3
|
+
"version": "5.8.0-beta.7cba720",
|
|
4
4
|
"description": "Manage Microsoft 365 and SharePoint Framework projects on any platform",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"main": "./dist/api.js",
|
|
@@ -138,6 +138,7 @@
|
|
|
138
138
|
"Kelkar, Vipul <vipul.kelkar@outlook.com>",
|
|
139
139
|
"Kesavanarayanan, Sudharsan <10280385+sudharsank@users.noreply.github.com>",
|
|
140
140
|
"Khalil, Bassem <bk@bassems-air.home>",
|
|
141
|
+
"Kirkham, Don <donkirkham@live.com>",
|
|
141
142
|
"Kumar, Shantha <34408892+ktskumar@users.noreply.github.com>",
|
|
142
143
|
"Lamber, Patrick <patrick@nubo.eu>",
|
|
143
144
|
"Laskewitz, Daniel <daniel@laskewitz.nl>",
|