@pnp/cli-microsoft365 5.9.0-beta.1672f8f → 5.9.0-beta.174dde9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (41) hide show
  1. package/.eslintrc.js +11 -0
  2. package/README.md +5 -0
  3. package/dist/m365/pp/commands/card/card-list.js +68 -0
  4. package/dist/m365/pp/commands/dataverse/dataverse-table-list.js +6 -12
  5. package/dist/m365/pp/commands/solution/Solution.js +3 -0
  6. package/dist/m365/pp/commands/solution/solution-list.js +87 -0
  7. package/dist/m365/pp/commands.js +2 -0
  8. package/dist/m365/spfx/commands/project/project-upgrade/upgrade-1.14.0.js +0 -2
  9. package/dist/m365/spfx/commands/spfx-doctor.js +37 -7
  10. package/dist/m365/spo/commands/eventreceiver/EventReceiver.js +3 -0
  11. package/dist/m365/spo/commands/eventreceiver/eventreceiver-remove.js +182 -0
  12. package/dist/m365/spo/commands/file/file-copy.js +25 -39
  13. package/dist/m365/spo/commands/file/file-move.js +24 -37
  14. package/dist/m365/spo/commands/file/file-rename.js +19 -16
  15. package/dist/m365/spo/commands/file/file-roleassignment-add.js +231 -0
  16. package/dist/m365/spo/commands/file/file-roleinheritance-break.js +129 -0
  17. package/dist/m365/spo/commands/file/file-roleinheritance-reset.js +1 -1
  18. package/dist/m365/spo/commands/folder/folder-roleinheritance-break.js +94 -0
  19. package/dist/m365/spo/commands/folder/folder-roleinheritance-reset.js +1 -1
  20. package/dist/m365/spo/commands/group/AssociatedGroupPropertiesCollection.js +3 -0
  21. package/dist/m365/spo/commands/group/group-list.js +49 -10
  22. package/dist/m365/spo/commands/list/list-roleassignment-add.js +10 -10
  23. package/dist/m365/spo/commands/list/list-roleassignment-remove.js +8 -8
  24. package/dist/m365/spo/commands/listitem/listitem-roleassignment-remove.js +8 -8
  25. package/dist/m365/spo/commands/web/web-roleassignment-add.js +10 -10
  26. package/dist/m365/spo/commands/web/web-roleassignment-remove.js +8 -8
  27. package/dist/m365/spo/commands.js +4 -0
  28. package/dist/m365/teams/commands/channel/channel-add.js +9 -9
  29. package/docs/docs/cmd/pp/card/card-list.md +33 -0
  30. package/docs/docs/cmd/pp/dataverse/dataverse-table-list.md +2 -2
  31. package/docs/docs/cmd/pp/environment/environment-list.md +1 -1
  32. package/docs/docs/cmd/pp/solution/solution-list.md +33 -0
  33. package/docs/docs/cmd/spfx/spfx-doctor.md +10 -1
  34. package/docs/docs/cmd/spo/eventreceiver/eventreceiver-remove.md +69 -0
  35. package/docs/docs/cmd/spo/file/file-roleassignment-add.md +57 -0
  36. package/docs/docs/cmd/spo/file/file-roleinheritance-break.md +54 -0
  37. package/docs/docs/cmd/spo/folder/folder-roleinheritance-break.md +39 -0
  38. package/docs/docs/cmd/spo/group/group-list.md +10 -1
  39. package/docs/docs/cmd/teams/channel/channel-add.md +4 -4
  40. package/package.json +2 -1
  41. package/dist/m365/spfx/commands/project/project-upgrade/rules/FN006006_CFG_PS_features.js +0 -60
@@ -13,7 +13,7 @@ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (
13
13
  if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
14
14
  return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
15
15
  };
16
- var _SpoGroupListCommand_instances, _SpoGroupListCommand_initOptions, _SpoGroupListCommand_initValidators;
16
+ var _SpoGroupListCommand_instances, _SpoGroupListCommand_initTelemetry, _SpoGroupListCommand_initOptions, _SpoGroupListCommand_initValidators;
17
17
  Object.defineProperty(exports, "__esModule", { value: true });
18
18
  const request_1 = require("../../../../request");
19
19
  const validation_1 = require("../../../../utils/validation");
@@ -23,6 +23,7 @@ class SpoGroupListCommand extends SpoCommand_1.default {
23
23
  constructor() {
24
24
  super();
25
25
  _SpoGroupListCommand_instances.add(this);
26
+ __classPrivateFieldGet(this, _SpoGroupListCommand_instances, "m", _SpoGroupListCommand_initTelemetry).call(this);
26
27
  __classPrivateFieldGet(this, _SpoGroupListCommand_instances, "m", _SpoGroupListCommand_initOptions).call(this);
27
28
  __classPrivateFieldGet(this, _SpoGroupListCommand_instances, "m", _SpoGroupListCommand_initValidators).call(this);
28
29
  }
@@ -33,34 +34,72 @@ class SpoGroupListCommand extends SpoCommand_1.default {
33
34
  return 'Lists all the groups within specific web';
34
35
  }
35
36
  defaultProperties() {
36
- return ['Id', 'Title', 'LoginName', 'IsHiddenInUI', 'PrincipalType'];
37
+ return ['Id', 'Title', 'LoginName', 'IsHiddenInUI', 'PrincipalType', 'Type'];
37
38
  }
38
39
  commandAction(logger, args) {
39
40
  return __awaiter(this, void 0, void 0, function* () {
40
41
  if (this.verbose) {
41
42
  logger.logToStderr(`Retrieving list of groups for specified web at ${args.options.webUrl}...`);
42
43
  }
43
- const requestUrl = `${args.options.webUrl}/_api/web/sitegroups`;
44
+ const baseUrl = `${args.options.webUrl}/_api/web`;
45
+ try {
46
+ if (!args.options.associatedGroupsOnly) {
47
+ yield this.getSiteGroups(baseUrl, logger);
48
+ }
49
+ else {
50
+ yield this.getAssociatedGroups(baseUrl, args.options, logger);
51
+ }
52
+ }
53
+ catch (err) {
54
+ this.handleRejectedODataJsonPromise(err);
55
+ }
56
+ });
57
+ }
58
+ getSiteGroups(baseUrl, logger) {
59
+ return __awaiter(this, void 0, void 0, function* () {
44
60
  const requestOptions = {
45
- url: requestUrl,
61
+ url: baseUrl + '/sitegroups',
46
62
  headers: {
47
63
  'accept': 'application/json;odata=nometadata'
48
64
  },
49
65
  responseType: 'json'
50
66
  };
51
- try {
52
- const groupProperties = yield request_1.default.get(requestOptions);
53
- logger.log(groupProperties.value);
67
+ const groupProperties = yield request_1.default.get(requestOptions);
68
+ logger.log(groupProperties.value);
69
+ });
70
+ }
71
+ getAssociatedGroups(baseUrl, options, logger) {
72
+ return __awaiter(this, void 0, void 0, function* () {
73
+ const requestOptions = {
74
+ url: baseUrl + '?$expand=AssociatedOwnerGroup,AssociatedMemberGroup,AssociatedVisitorGroup&$select=AssociatedOwnerGroup,AssociatedMemberGroup,AssociatedVisitorGroup',
75
+ headers: {
76
+ 'accept': 'application/json;odata=nometadata'
77
+ },
78
+ responseType: 'json'
79
+ };
80
+ const groupProperties = yield request_1.default.get(requestOptions);
81
+ if (!options.output || options.output === 'json') {
82
+ logger.log(groupProperties);
54
83
  }
55
- catch (err) {
56
- this.handleRejectedODataJsonPromise(err);
84
+ else {
85
+ //converted to text friendly output
86
+ const output = Object.getOwnPropertyNames(groupProperties).map(prop => (Object.assign({ Type: prop }, groupProperties[prop])));
87
+ logger.log(output);
57
88
  }
58
89
  });
59
90
  }
60
91
  }
61
- _SpoGroupListCommand_instances = new WeakSet(), _SpoGroupListCommand_initOptions = function _SpoGroupListCommand_initOptions() {
92
+ _SpoGroupListCommand_instances = new WeakSet(), _SpoGroupListCommand_initTelemetry = function _SpoGroupListCommand_initTelemetry() {
93
+ this.telemetry.push((args) => {
94
+ Object.assign(this.telemetryProperties, {
95
+ associatedGroupsOnly: (!(!args.options.associatedGroupsOnly)).toString()
96
+ });
97
+ });
98
+ }, _SpoGroupListCommand_initOptions = function _SpoGroupListCommand_initOptions() {
62
99
  this.options.unshift({
63
100
  option: '-u, --webUrl <webUrl>'
101
+ }, {
102
+ option: '--associatedGroupsOnly'
64
103
  });
65
104
  }, _SpoGroupListCommand_initValidators = function _SpoGroupListCommand_initValidators() {
66
105
  this.validators.push((args) => __awaiter(this, void 0, void 0, function* () { return validation_1.validation.isValidSharePointUrl(args.options.webUrl); }));
@@ -56,17 +56,17 @@ class SpoListRoleAssignmentAddCommand extends SpoCommand_1.default {
56
56
  const listServerRelativeUrl = urlUtil_1.urlUtil.getServerRelativePath(args.options.webUrl, args.options.listUrl);
57
57
  requestUrl += `GetList('${formatting_1.formatting.encodeQueryParameter(listServerRelativeUrl)}')/`;
58
58
  }
59
- args.options.roleDefinitionId = yield this.GetRoleDefinitionId(args.options);
59
+ args.options.roleDefinitionId = yield this.getRoleDefinitionId(args.options);
60
60
  if (args.options.upn) {
61
- args.options.principalId = yield this.GetUserPrincipalId(args.options);
62
- yield this.AddRoleAssignment(requestUrl, logger, args.options);
61
+ args.options.principalId = yield this.getUserPrincipalId(args.options);
62
+ yield this.addRoleAssignment(requestUrl, logger, args.options);
63
63
  }
64
64
  else if (args.options.groupName) {
65
- args.options.principalId = yield this.GetGroupPrincipalId(args.options);
66
- this.AddRoleAssignment(requestUrl, logger, args.options);
65
+ args.options.principalId = yield this.getGroupPrincipalId(args.options);
66
+ this.addRoleAssignment(requestUrl, logger, args.options);
67
67
  }
68
68
  else {
69
- yield this.AddRoleAssignment(requestUrl, logger, args.options);
69
+ yield this.addRoleAssignment(requestUrl, logger, args.options);
70
70
  }
71
71
  }
72
72
  catch (err) {
@@ -74,7 +74,7 @@ class SpoListRoleAssignmentAddCommand extends SpoCommand_1.default {
74
74
  }
75
75
  });
76
76
  }
77
- AddRoleAssignment(requestUrl, logger, options) {
77
+ addRoleAssignment(requestUrl, logger, options) {
78
78
  const requestOptions = {
79
79
  url: `${requestUrl}roleassignments/addroleassignment(principalid='${options.principalId}',roledefid='${options.roleDefinitionId}')`,
80
80
  method: 'POST',
@@ -89,7 +89,7 @@ class SpoListRoleAssignmentAddCommand extends SpoCommand_1.default {
89
89
  .then(_ => Promise.resolve())
90
90
  .catch((err) => Promise.reject(err));
91
91
  }
92
- GetRoleDefinitionId(options) {
92
+ getRoleDefinitionId(options) {
93
93
  if (!options.roleDefinitionName) {
94
94
  return Promise.resolve(options.roleDefinitionId);
95
95
  }
@@ -108,7 +108,7 @@ class SpoListRoleAssignmentAddCommand extends SpoCommand_1.default {
108
108
  return Promise.reject(err);
109
109
  });
110
110
  }
111
- GetGroupPrincipalId(options) {
111
+ getGroupPrincipalId(options) {
112
112
  const groupGetCommandOptions = {
113
113
  webUrl: options.webUrl,
114
114
  name: options.groupName,
@@ -124,7 +124,7 @@ class SpoListRoleAssignmentAddCommand extends SpoCommand_1.default {
124
124
  return Promise.reject(err);
125
125
  });
126
126
  }
127
- GetUserPrincipalId(options) {
127
+ getUserPrincipalId(options) {
128
128
  const userGetCommandOptions = {
129
129
  webUrl: options.webUrl,
130
130
  email: options.upn,
@@ -57,15 +57,15 @@ class SpoListRoleAssignmentRemoveCommand extends SpoCommand_1.default {
57
57
  requestUrl += `GetList('${formatting_1.formatting.encodeQueryParameter(listServerRelativeUrl)}')/`;
58
58
  }
59
59
  if (args.options.upn) {
60
- args.options.principalId = yield this.GetUserPrincipalId(args.options);
61
- yield this.RemoveRoleAssignment(requestUrl, logger, args.options);
60
+ args.options.principalId = yield this.getUserPrincipalId(args.options);
61
+ yield this.removeRoleAssignment(requestUrl, logger, args.options);
62
62
  }
63
63
  else if (args.options.groupName) {
64
- args.options.principalId = yield this.GetGroupPrincipalId(args.options);
65
- yield this.RemoveRoleAssignment(requestUrl, logger, args.options);
64
+ args.options.principalId = yield this.getGroupPrincipalId(args.options);
65
+ yield this.removeRoleAssignment(requestUrl, logger, args.options);
66
66
  }
67
67
  else {
68
- yield this.RemoveRoleAssignment(requestUrl, logger, args.options);
68
+ yield this.removeRoleAssignment(requestUrl, logger, args.options);
69
69
  }
70
70
  }
71
71
  catch (err) {
@@ -88,7 +88,7 @@ class SpoListRoleAssignmentRemoveCommand extends SpoCommand_1.default {
88
88
  }
89
89
  });
90
90
  }
91
- RemoveRoleAssignment(requestUrl, logger, options) {
91
+ removeRoleAssignment(requestUrl, logger, options) {
92
92
  const requestOptions = {
93
93
  url: `${requestUrl}roleassignments/removeroleassignment(principalid='${options.principalId}')`,
94
94
  method: 'POST',
@@ -103,7 +103,7 @@ class SpoListRoleAssignmentRemoveCommand extends SpoCommand_1.default {
103
103
  .then(_ => Promise.resolve())
104
104
  .catch((err) => Promise.reject(err));
105
105
  }
106
- GetGroupPrincipalId(options) {
106
+ getGroupPrincipalId(options) {
107
107
  const groupGetCommandOptions = {
108
108
  webUrl: options.webUrl,
109
109
  name: options.groupName,
@@ -119,7 +119,7 @@ class SpoListRoleAssignmentRemoveCommand extends SpoCommand_1.default {
119
119
  return Promise.reject(err);
120
120
  });
121
121
  }
122
- GetUserPrincipalId(options) {
122
+ getUserPrincipalId(options) {
123
123
  const userGetCommandOptions = {
124
124
  webUrl: options.webUrl,
125
125
  email: options.upn,
@@ -58,15 +58,15 @@ class SpoListItemRoleAssignmentRemoveCommand extends SpoCommand_1.default {
58
58
  }
59
59
  requestUrl += `items(${args.options.listItemId})/`;
60
60
  if (args.options.upn) {
61
- args.options.principalId = yield this.GetUserPrincipalId(args.options);
62
- yield this.RemoveRoleAssignment(requestUrl, logger, args.options);
61
+ args.options.principalId = yield this.getUserPrincipalId(args.options);
62
+ yield this.removeRoleAssignment(requestUrl, logger, args.options);
63
63
  }
64
64
  else if (args.options.groupName) {
65
- args.options.principalId = yield this.GetGroupPrincipalId(args.options);
66
- yield this.RemoveRoleAssignment(requestUrl, logger, args.options);
65
+ args.options.principalId = yield this.getGroupPrincipalId(args.options);
66
+ yield this.removeRoleAssignment(requestUrl, logger, args.options);
67
67
  }
68
68
  else {
69
- yield this.RemoveRoleAssignment(requestUrl, logger, args.options);
69
+ yield this.removeRoleAssignment(requestUrl, logger, args.options);
70
70
  }
71
71
  }
72
72
  catch (err) {
@@ -89,7 +89,7 @@ class SpoListItemRoleAssignmentRemoveCommand extends SpoCommand_1.default {
89
89
  }
90
90
  });
91
91
  }
92
- RemoveRoleAssignment(requestUrl, logger, options) {
92
+ removeRoleAssignment(requestUrl, logger, options) {
93
93
  const requestOptions = {
94
94
  url: `${requestUrl}roleassignments/removeroleassignment(principalid='${options.principalId}')`,
95
95
  method: 'POST',
@@ -104,7 +104,7 @@ class SpoListItemRoleAssignmentRemoveCommand extends SpoCommand_1.default {
104
104
  .then(_ => Promise.resolve())
105
105
  .catch((err) => Promise.reject(err));
106
106
  }
107
- GetGroupPrincipalId(options) {
107
+ getGroupPrincipalId(options) {
108
108
  const groupGetCommandOptions = {
109
109
  webUrl: options.webUrl,
110
110
  name: options.groupName,
@@ -120,7 +120,7 @@ class SpoListItemRoleAssignmentRemoveCommand extends SpoCommand_1.default {
120
120
  return Promise.reject(err);
121
121
  });
122
122
  }
123
- GetUserPrincipalId(options) {
123
+ getUserPrincipalId(options) {
124
124
  const userGetCommandOptions = {
125
125
  webUrl: options.webUrl,
126
126
  email: options.upn,
@@ -43,17 +43,17 @@ class SpoWebRoleAssignmentAddCommand extends SpoCommand_1.default {
43
43
  logger.logToStderr(`Adding role assignment to web ${args.options.webUrl}...`);
44
44
  }
45
45
  try {
46
- args.options.roleDefinitionId = yield this.GetRoleDefinitionId(args.options);
46
+ args.options.roleDefinitionId = yield this.getRoleDefinitionId(args.options);
47
47
  if (args.options.upn) {
48
- args.options.principalId = yield this.GetUserPrincipalId(args.options);
49
- yield this.AddRoleAssignment(logger, args.options);
48
+ args.options.principalId = yield this.getUserPrincipalId(args.options);
49
+ yield this.addRoleAssignment(logger, args.options);
50
50
  }
51
51
  else if (args.options.groupName) {
52
- args.options.principalId = yield this.GetGroupPrincipalId(args.options);
53
- yield this.AddRoleAssignment(logger, args.options);
52
+ args.options.principalId = yield this.getGroupPrincipalId(args.options);
53
+ yield this.addRoleAssignment(logger, args.options);
54
54
  }
55
55
  else {
56
- yield this.AddRoleAssignment(logger, args.options);
56
+ yield this.addRoleAssignment(logger, args.options);
57
57
  }
58
58
  }
59
59
  catch (err) {
@@ -61,7 +61,7 @@ class SpoWebRoleAssignmentAddCommand extends SpoCommand_1.default {
61
61
  }
62
62
  });
63
63
  }
64
- AddRoleAssignment(logger, options) {
64
+ addRoleAssignment(logger, options) {
65
65
  const requestOptions = {
66
66
  url: `${options.webUrl}/_api/web/roleassignments/addroleassignment(principalid='${options.principalId}',roledefid='${options.roleDefinitionId}')`,
67
67
  method: 'POST',
@@ -76,7 +76,7 @@ class SpoWebRoleAssignmentAddCommand extends SpoCommand_1.default {
76
76
  .then(_ => Promise.resolve())
77
77
  .catch((err) => Promise.reject(err));
78
78
  }
79
- GetRoleDefinitionId(options) {
79
+ getRoleDefinitionId(options) {
80
80
  if (!options.roleDefinitionName) {
81
81
  return Promise.resolve(options.roleDefinitionId);
82
82
  }
@@ -95,7 +95,7 @@ class SpoWebRoleAssignmentAddCommand extends SpoCommand_1.default {
95
95
  return Promise.reject(err);
96
96
  });
97
97
  }
98
- GetGroupPrincipalId(options) {
98
+ getGroupPrincipalId(options) {
99
99
  const groupGetCommandOptions = {
100
100
  webUrl: options.webUrl,
101
101
  name: options.groupName,
@@ -111,7 +111,7 @@ class SpoWebRoleAssignmentAddCommand extends SpoCommand_1.default {
111
111
  return Promise.reject(err);
112
112
  });
113
113
  }
114
- GetUserPrincipalId(options) {
114
+ getUserPrincipalId(options) {
115
115
  const userGetCommandOptions = {
116
116
  webUrl: options.webUrl,
117
117
  email: options.upn,
@@ -44,15 +44,15 @@ class SpoWebRoleAssignmentRemoveCommand extends SpoCommand_1.default {
44
44
  }
45
45
  try {
46
46
  if (args.options.upn) {
47
- args.options.principalId = yield this.GetUserPrincipalId(args.options);
48
- yield this.RemoveRoleAssignment(logger, args.options);
47
+ args.options.principalId = yield this.getUserPrincipalId(args.options);
48
+ yield this.removeRoleAssignment(logger, args.options);
49
49
  }
50
50
  else if (args.options.groupName) {
51
- args.options.principalId = yield this.GetGroupPrincipalId(args.options);
52
- yield this.RemoveRoleAssignment(logger, args.options);
51
+ args.options.principalId = yield this.getGroupPrincipalId(args.options);
52
+ yield this.removeRoleAssignment(logger, args.options);
53
53
  }
54
54
  else {
55
- yield this.RemoveRoleAssignment(logger, args.options);
55
+ yield this.removeRoleAssignment(logger, args.options);
56
56
  }
57
57
  }
58
58
  catch (err) {
@@ -75,7 +75,7 @@ class SpoWebRoleAssignmentRemoveCommand extends SpoCommand_1.default {
75
75
  }
76
76
  });
77
77
  }
78
- RemoveRoleAssignment(logger, options) {
78
+ removeRoleAssignment(logger, options) {
79
79
  const requestOptions = {
80
80
  url: `${options.webUrl}/_api/web/roleassignments/removeroleassignment(principalid='${options.principalId}')`,
81
81
  method: 'POST',
@@ -90,7 +90,7 @@ class SpoWebRoleAssignmentRemoveCommand extends SpoCommand_1.default {
90
90
  .then(_ => Promise.resolve())
91
91
  .catch((err) => Promise.reject(err));
92
92
  }
93
- GetGroupPrincipalId(options) {
93
+ getGroupPrincipalId(options) {
94
94
  const groupGetCommandOptions = {
95
95
  webUrl: options.webUrl,
96
96
  name: options.groupName,
@@ -106,7 +106,7 @@ class SpoWebRoleAssignmentRemoveCommand extends SpoCommand_1.default {
106
106
  return Promise.reject(err);
107
107
  });
108
108
  }
109
- GetUserPrincipalId(options) {
109
+ getUserPrincipalId(options) {
110
110
  const userGetCommandOptions = {
111
111
  webUrl: options.webUrl,
112
112
  email: options.upn,
@@ -38,6 +38,7 @@ exports.default = {
38
38
  CUSTOMACTION_REMOVE: `${prefix} customaction remove`,
39
39
  EVENTRECEIVER_GET: `${prefix} eventreceiver get`,
40
40
  EVENTRECEIVER_LIST: `${prefix} eventreceiver list`,
41
+ EVENTRECEIVER_REMOVE: `${prefix} eventreceiver remove`,
41
42
  EXTERNALUSER_LIST: `${prefix} externaluser list`,
42
43
  FEATURE_DISABLE: `${prefix} feature disable`,
43
44
  FEATURE_ENABLE: `${prefix} feature enable`,
@@ -56,7 +57,9 @@ exports.default = {
56
57
  FILE_MOVE: `${prefix} file move`,
57
58
  FILE_REMOVE: `${prefix} file remove`,
58
59
  FILE_RENAME: `${prefix} file rename`,
60
+ FILE_ROLEASSIGNMENT_ADD: `${prefix} file roleassignment add`,
59
61
  FILE_ROLEASSIGNMENT_REMOVE: `${prefix} file roleassignment remove`,
62
+ FILE_ROLEINHERITANCE_BREAK: `${prefix} file roleinheritance break`,
60
63
  FILE_ROLEINHERITANCE_RESET: `${prefix} file roleinheritance reset`,
61
64
  FILE_SHARINGINFO_GET: `${prefix} file sharinginfo get`,
62
65
  FOLDER_ADD: `${prefix} folder add`,
@@ -66,6 +69,7 @@ exports.default = {
66
69
  FOLDER_MOVE: `${prefix} folder move`,
67
70
  FOLDER_REMOVE: `${prefix} folder remove`,
68
71
  FOLDER_RENAME: `${prefix} folder rename`,
72
+ FOLDER_ROLEINHERITANCE_BREAK: `${prefix} folder roleinheritance break`,
69
73
  FOLDER_ROLEINHERITANCE_RESET: `${prefix} folder roleinheritance reset`,
70
74
  GET: `${prefix} get`,
71
75
  GROUP_ADD: `${prefix} group add`,
@@ -73,8 +73,8 @@ class TeamsChannelAddCommand extends GraphCommand_1.default {
73
73
  },
74
74
  responseType: 'json'
75
75
  };
76
- if (args.options.type === 'private') {
77
- // Private channels must have at least 1 owner
76
+ if (args.options.type === 'private' || args.options.type === 'shared') {
77
+ // Private and Shared channels must have at least 1 owner
78
78
  requestOptions.data.members = [
79
79
  {
80
80
  '@odata.type': '#microsoft.graph.aadUserConversationMember',
@@ -119,7 +119,7 @@ _TeamsChannelAddCommand_instances = new WeakSet(), _TeamsChannelAddCommand_initT
119
119
  option: '-d, --description [description]'
120
120
  }, {
121
121
  option: '--type [type]',
122
- autocomplete: ['standard', 'private']
122
+ autocomplete: ['standard', 'private', 'shared']
123
123
  }, {
124
124
  option: '--owner [owner]'
125
125
  });
@@ -128,14 +128,14 @@ _TeamsChannelAddCommand_instances = new WeakSet(), _TeamsChannelAddCommand_initT
128
128
  if (args.options.teamId && !validation_1.validation.isValidGuid(args.options.teamId)) {
129
129
  return `${args.options.teamId} is not a valid GUID`;
130
130
  }
131
- if (args.options.type && ['standard', 'private'].indexOf(args.options.type) === -1) {
132
- return `${args.options.type} is not a valid type value. Allowed values standard|private.`;
131
+ if (args.options.type && ['standard', 'private', 'shared'].indexOf(args.options.type) === -1) {
132
+ return `${args.options.type} is not a valid type value. Allowed values standard|private|shared.`;
133
133
  }
134
- if (args.options.type === 'private' && !args.options.owner) {
135
- return 'Specify owner when creating a private channel.';
134
+ if ((args.options.type === 'private' || args.options.type === 'shared') && !args.options.owner) {
135
+ return `Specify owner when creating a ${args.options.type} channel.`;
136
136
  }
137
- if (args.options.type !== 'private' && args.options.owner) {
138
- return 'Specify owner only when creating a private channel.';
137
+ if ((args.options.type !== 'private' && args.options.type !== 'shared') && args.options.owner) {
138
+ return `Specify owner only when creating a private or shared channel.`;
139
139
  }
140
140
  return true;
141
141
  }));
@@ -0,0 +1,33 @@
1
+ # pp card list
2
+
3
+ Lists Microsoft Power Platform cards in the specified Power Platform environment.
4
+
5
+ ## Usage
6
+
7
+ ```sh
8
+ pp card list [options]
9
+ ```
10
+
11
+ ## Options
12
+
13
+ `-e, --environment <environment>`
14
+ : The name of the environment.
15
+
16
+ `-a, --asAdmin`
17
+ : Run the command as admin for environments you do not have explicitly assigned permissions to.
18
+
19
+ --8<-- "docs/cmd/_global.md"
20
+
21
+ ## Examples
22
+
23
+ List cards in a specific environment.
24
+
25
+ ```sh
26
+ m365 pp card list --environment "Default-d87a7535-dd31-4437-bfe1-95340acd55c5"
27
+ ```
28
+
29
+ List cards in a specific environment as admin.
30
+
31
+ ```sh
32
+ m365 pp card list --environment "Default-d87a7535-dd31-4437-bfe1-95340acd55c5" --asAdmin
33
+ ```
@@ -11,10 +11,10 @@ pp dataverse table list [options]
11
11
  ## Options
12
12
 
13
13
  `-e, --environment <environment>`
14
- The name of the environment to list all tables for
14
+ : The name of the environment to list all tables for
15
15
 
16
16
  `-a, --asAdmin`
17
- Set, to retrieve the dataverse tables as admin for environments you are not a member of.
17
+ : Set, to retrieve the dataverse tables as admin for environments you are not a member of.
18
18
 
19
19
  --8<-- "docs/cmd/_global.md"
20
20
 
@@ -11,7 +11,7 @@ m365 pp environment list [options]
11
11
  ## Options
12
12
 
13
13
  `-a, --asAdmin`
14
- Run the command as admin and retrieve all environments. Lists only environments you have explicitly are assigned permissions to by default.
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"
17
17
 
@@ -0,0 +1,33 @@
1
+ # pp solution list
2
+
3
+ Lists solutions in a given environment.
4
+
5
+ ## Usage
6
+
7
+ ```sh
8
+ m365 pp solution list [options]
9
+ ```
10
+
11
+ ## Options
12
+
13
+ `-e, --environment <environment>`
14
+ : The name of the environment
15
+
16
+ `-a, --asAdmin`
17
+ : Run the command as admin for environments you do not have explicitly assigned permissions to.
18
+
19
+ --8<-- "docs/cmd/_global.md"
20
+
21
+ ## Examples
22
+
23
+ List all solutions in a specific environment
24
+
25
+ ```sh
26
+ m365 pp solution list --environment "Default-2ca3eaa5-140f-4175-8261-3272edf9f339"
27
+ ```
28
+
29
+ List all solutions in a specific environment as Admin
30
+
31
+ ```sh
32
+ m365 pp solution list --environment "Default-2ca3eaa5-140f-4175-8261-3272edf9f339" --asAdmin
33
+ ```
@@ -13,6 +13,9 @@ m365 spfx doctor [options]
13
13
  `-e, --env [env]`
14
14
  : Version of SharePoint for which to check compatibility: `sp2016|sp2019|spo`
15
15
 
16
+ `-v, --spfxVersion [spfxVersion]`
17
+ : Version of the SharePoint Framework Yeoman generator to check compatibility for without `v`, eg. `1.11.0`
18
+
16
19
  `-h, --help`
17
20
  : output usage information
18
21
 
@@ -48,7 +51,7 @@ Next to verifying the readiness of your environment to use a particular version
48
51
 
49
52
  ## Examples
50
53
 
51
- Verify if your environment meets the requirements to work with the SharePoint Framework
54
+ Verify if your environment meets the requirements to work with SharePoint Framework based on the globally installed version of the SharePoint Framework Yeoman generator or the current project
52
55
 
53
56
  ```sh
54
57
  m365 spfx doctor --output text
@@ -59,3 +62,9 @@ Verify if your environment meets the requirements to work with the SharePoint Fr
59
62
  ```sh
60
63
  m365 spfx doctor --env sp2019 --output text
61
64
  ```
65
+
66
+ Verify if your environment meets the requirements to work with SharePoint Framework v1.11.0
67
+
68
+ ```sh
69
+ m365 spfx doctor --spfxVersion 1.11.0 --output text
70
+ ```
@@ -0,0 +1,69 @@
1
+ # spo eventreceiver remove
2
+
3
+ Removes event receivers for the specified web, site, or list.
4
+
5
+ ## Usage
6
+
7
+ ```sh
8
+ m365 spo eventreceiver remove [options]
9
+ ```
10
+
11
+ ## Options
12
+
13
+ `-u, --webUrl <webUrl>`
14
+ : The URL of the web.
15
+
16
+ `--listTitle [listTitle]`
17
+ : The title of the list, _if the event receiver should be removed from a list_. Specify either `listTitle`, `listId` or `listUrl`.
18
+
19
+ `--listId [listId]`
20
+ : The id of the list, _if the event receiver should be retrieved from a list_. Specify either `listTitle`, `listId` or `listUrl`.
21
+
22
+ `--listUrl [listUrl]`
23
+ : The url of the list, _if the event receiver should be retrieved from a list_. Specify either `listTitle`, `listId` or `listUrl`.
24
+
25
+ `-n, --name [name]`
26
+ The name. Specify either `name` or `id` but not both.
27
+
28
+ `-i, --id [id]`
29
+ The id. Specify either `name` or `id` but not both.
30
+
31
+ `-s, --scope [scope]`
32
+ : The scope. Can be either "site" or "web". Defaults to "web". Only applicable when not specifying any of the list properties.
33
+
34
+ `--confirm`
35
+ : Don't prompt for confirming removing the event receiver
36
+
37
+ --8<-- "docs/cmd/_global.md"
38
+
39
+ ## Examples
40
+
41
+ Remove event receiver in a specific web by name.
42
+
43
+ ```sh
44
+ m365 spo eventreceiver remove --webUrl https://contoso.sharepoint.com/sites/contoso-sales --name 'PnP Test Receiver'
45
+ ```
46
+
47
+ Remove event receiver in a specific site by id.
48
+
49
+ ```sh
50
+ m365 spo eventreceiver remove --webUrl https://contoso.sharepoint.com/sites/contoso-sales --scope site --id c5a6444a-9c7f-4a0d-9e29-fc6fe30e34ec
51
+ ```
52
+
53
+ Remove event receiver in a specific list retrieved by title by name.
54
+
55
+ ```sh
56
+ m365 spo eventreceiver remove --webUrl https://contoso.sharepoint.com/sites/contoso-sales --listTitle Events --name 'PnP Test Receiver'
57
+ ```
58
+
59
+ Remove event receiver in a specific list retrieved by list id by id.
60
+
61
+ ```sh
62
+ m365 spo eventreceiver remove --webUrl https://contoso.sharepoint.com/sites/contoso-sales --listId '202b8199-b9de-43fd-9737-7f213f51c991' --id c5a6444a-9c7f-4a0d-9e29-fc6fe30e34ec
63
+ ```
64
+
65
+ Remove event receiver in a specific list retrieved by list url by name.
66
+
67
+ ```sh
68
+ m365 spo eventreceiver remove --webUrl https://contoso.sharepoint.com/sites/contoso-sales --listUrl '/sites/contoso-sales/lists/Events' --name 'PnP Test Receiver'
69
+ ```