@pnp/cli-microsoft365 6.3.0-beta.1140b31 → 6.3.0-beta.64eb7da

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 (70) hide show
  1. package/.eslintrc.js +4 -0
  2. package/dist/Command.js +12 -1
  3. package/dist/cli/Cli.js +4 -1
  4. package/dist/m365/aad/commands/group/group-list.js +2 -1
  5. package/dist/m365/base/O365MgmtCommand.js +10 -0
  6. package/dist/m365/flow/commands/run/run-list.js +55 -3
  7. package/dist/m365/graph/commands/changelog/changelog-list.js +3 -2
  8. package/dist/m365/onenote/commands/notebook/notebook-list.js +51 -40
  9. package/dist/m365/planner/commands/plan/plan-add.js +20 -6
  10. package/dist/m365/planner/commands/plan/plan-get.js +34 -27
  11. package/dist/m365/planner/commands/plan/plan-list.js +24 -14
  12. package/dist/m365/planner/commands/plan/plan-remove.js +1 -1
  13. package/dist/m365/planner/commands/roster/roster-add.js +47 -0
  14. package/dist/m365/planner/commands/roster/roster-remove.js +88 -0
  15. package/dist/m365/planner/commands/task/task-checklistitem-add.js +2 -1
  16. package/dist/m365/planner/commands/task/task-checklistitem-list.js +2 -1
  17. package/dist/m365/planner/commands.js +2 -0
  18. package/dist/m365/pp/commands/solution/solution-get.js +2 -1
  19. package/dist/m365/pp/commands/solution/solution-list.js +2 -1
  20. package/dist/m365/purview/commands/auditlog/auditlog-list.js +205 -0
  21. package/dist/m365/purview/commands/retentioneventtype/retentioneventtype-get.js +70 -0
  22. package/dist/m365/purview/commands.js +2 -0
  23. package/dist/m365/spfx/commands/project/WebApiPermissionRequests.js +3 -0
  24. package/dist/m365/spfx/commands/project/project-permissions-grant.js +81 -0
  25. package/dist/m365/spfx/commands.js +3 -2
  26. package/dist/m365/spo/commands/app/app-add.js +2 -1
  27. package/dist/m365/spo/commands/file/file-sharinginfo-get.js +2 -1
  28. package/dist/m365/spo/commands/file/file-sharinglink-list.js +2 -1
  29. package/dist/m365/spo/commands/group/group-list.js +2 -1
  30. package/dist/m365/spo/commands/hubsite/hubsite-get.js +1 -1
  31. package/dist/m365/spo/commands/listitem/listitem-list.js +2 -1
  32. package/dist/m365/spo/commands/navigation/navigation-node-add.js +17 -3
  33. package/dist/m365/spo/commands/navigation/navigation-node-list.js +4 -7
  34. package/dist/m365/spo/commands/navigation/navigation-node-set.js +118 -0
  35. package/dist/m365/spo/commands/page/page-column-get.js +2 -1
  36. package/dist/m365/spo/commands/page/page-column-list.js +2 -1
  37. package/dist/m365/spo/commands/page/page-section-get.js +2 -1
  38. package/dist/m365/spo/commands/page/page-section-list.js +2 -1
  39. package/dist/m365/spo/commands/spo-search.js +2 -1
  40. package/dist/m365/spo/commands/term/term-list.js +2 -1
  41. package/dist/m365/spo/commands/userprofile/userprofile-get.js +2 -2
  42. package/dist/m365/spo/commands/web/web-set.js +11 -4
  43. package/dist/m365/spo/commands.js +1 -0
  44. package/dist/m365/teams/commands/meeting/meeting-list.js +1 -1
  45. package/dist/m365/teams/commands/team/team-app-list.js +1 -1
  46. package/dist/m365/teams/commands/user/user-app-list.js +2 -1
  47. package/dist/m365/todo/commands/task/task-get.js +2 -1
  48. package/dist/m365/todo/commands/task/task-list.js +2 -1
  49. package/dist/m365/yammer/commands/yammer-search.js +2 -1
  50. package/dist/utils/planner.js +19 -5
  51. package/docs/docs/cmd/aad/app/app-list.md +3 -0
  52. package/docs/docs/cmd/aad/user/user-set.md +1 -1
  53. package/docs/docs/cmd/flow/run/run-list.md +21 -0
  54. package/docs/docs/cmd/planner/plan/plan-add.md +17 -6
  55. package/docs/docs/cmd/planner/plan/plan-get.md +16 -2
  56. package/docs/docs/cmd/planner/plan/plan-list.md +16 -2
  57. package/docs/docs/cmd/planner/plan/plan-remove.md +4 -0
  58. package/docs/docs/cmd/planner/roster/roster-add.md +60 -0
  59. package/docs/docs/cmd/planner/roster/roster-remove.md +48 -0
  60. package/docs/docs/cmd/purview/auditlog/auditlog-list.md +123 -0
  61. package/docs/docs/cmd/purview/retentioneventtype/retentioneventtype-get.md +100 -0
  62. package/docs/docs/cmd/spfx/project/project-permissions-grant.md +65 -0
  63. package/docs/docs/cmd/spo/listitem/listitem-attachment-list.md +2 -2
  64. package/docs/docs/cmd/spo/listitem/listitem-isrecord.md +2 -2
  65. package/docs/docs/cmd/spo/navigation/navigation-node-add.md +18 -3
  66. package/docs/docs/cmd/spo/navigation/navigation-node-list.md +30 -0
  67. package/docs/docs/cmd/spo/navigation/navigation-node-remove.md +1 -1
  68. package/docs/docs/cmd/spo/navigation/navigation-node-set.md +59 -0
  69. package/docs/docs/cmd/spo/web/web-set.md +9 -0
  70. package/package.json +1 -1
@@ -15,6 +15,7 @@ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (
15
15
  };
16
16
  var _SpoFileSharingLinkListCommand_instances, _SpoFileSharingLinkListCommand_initTelemetry, _SpoFileSharingLinkListCommand_initOptions, _SpoFileSharingLinkListCommand_initValidators, _SpoFileSharingLinkListCommand_initOptionSets;
17
17
  Object.defineProperty(exports, "__esModule", { value: true });
18
+ const Cli_1 = require("../../../../cli/Cli");
18
19
  const request_1 = require("../../../../request");
19
20
  const formatting_1 = require("../../../../utils/formatting");
20
21
  const odata_1 = require("../../../../utils/odata");
@@ -51,7 +52,7 @@ class SpoFileSharingLinkListCommand extends SpoCommand_1.default {
51
52
  url += ` and Link/Scope eq '${args.options.scope}'`;
52
53
  }
53
54
  const sharingLinks = yield odata_1.odata.getAllItems(url);
54
- if (!args.options.output || args.options.output === 'json' || args.options.output === 'md') {
55
+ if (!args.options.output || !Cli_1.Cli.shouldTrimOutput(args.options.output)) {
55
56
  logger.log(sharingLinks);
56
57
  }
57
58
  else {
@@ -15,6 +15,7 @@ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (
15
15
  };
16
16
  var _SpoGroupListCommand_instances, _SpoGroupListCommand_initTelemetry, _SpoGroupListCommand_initOptions, _SpoGroupListCommand_initValidators;
17
17
  Object.defineProperty(exports, "__esModule", { value: true });
18
+ const Cli_1 = require("../../../../cli/Cli");
18
19
  const request_1 = require("../../../../request");
19
20
  const odata_1 = require("../../../../utils/odata");
20
21
  const validation_1 = require("../../../../utils/validation");
@@ -73,7 +74,7 @@ class SpoGroupListCommand extends SpoCommand_1.default {
73
74
  };
74
75
  const groupProperties = yield request_1.default.get(requestOptions);
75
76
  logger.log(groupProperties);
76
- if (!options.output || options.output === 'json') {
77
+ if (!options.output || !Cli_1.Cli.shouldTrimOutput(options.output)) {
77
78
  logger.log(groupProperties);
78
79
  }
79
80
  else {
@@ -45,7 +45,7 @@ class SpoHubSiteGetCommand extends SpoCommand_1.default {
45
45
  if (args.options.includeAssociatedSites && (args.options.output && args.options.output !== 'json')) {
46
46
  throw 'includeAssociatedSites option is only allowed with json output mode';
47
47
  }
48
- if (args.options.includeAssociatedSites === true && args.options.output && args.options.output === 'json') {
48
+ if (args.options.includeAssociatedSites === true && args.options.output && !Cli_1.Cli.shouldTrimOutput(args.options.output)) {
49
49
  const spoAdminUrl = yield spo_1.spo.getSpoAdminUrl(logger, this.debug);
50
50
  const associatedSitesCommandOutput = yield this.getAssociatedSites(spoAdminUrl, hubSite.SiteId, logger, args);
51
51
  const associatedSites = JSON.parse(associatedSitesCommandOutput.stdout);
@@ -15,6 +15,7 @@ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (
15
15
  };
16
16
  var _SpoListItemListCommand_instances, _SpoListItemListCommand_initTelemetry, _SpoListItemListCommand_initOptions, _SpoListItemListCommand_initValidators, _SpoListItemListCommand_initOptionSets, _SpoListItemListCommand_initTypes;
17
17
  Object.defineProperty(exports, "__esModule", { value: true });
18
+ const Cli_1 = require("../../../../cli/Cli");
18
19
  const request_1 = require("../../../../request");
19
20
  const formatting_1 = require("../../../../utils/formatting");
20
21
  const spo_1 = require("../../../../utils/spo");
@@ -53,7 +54,7 @@ class SpoListItemListCommand extends SpoCommand_1.default {
53
54
  }
54
55
  let formDigestValue = '';
55
56
  const fieldsArray = args.options.fields ? args.options.fields.split(",")
56
- : (!args.options.output || args.options.output === "text") ? ["Title", "Id"] : [];
57
+ : (!args.options.output || Cli_1.Cli.shouldTrimOutput(args.options.output)) ? ["Title", "Id"] : [];
57
58
  const fieldsWithSlash = fieldsArray.filter(item => item.includes('/'));
58
59
  const fieldsToExpand = fieldsWithSlash.map(e => e.split('/')[0]);
59
60
  const expandFieldsArray = fieldsToExpand.filter((item, pos) => fieldsToExpand.indexOf(item) === pos);
@@ -38,6 +38,7 @@ class SpoNavigationNodeAddCommand extends SpoCommand_1.default {
38
38
  return ['url'];
39
39
  }
40
40
  commandAction(logger, args) {
41
+ var _a;
41
42
  return __awaiter(this, void 0, void 0, function* () {
42
43
  if (this.verbose) {
43
44
  logger.logToStderr(`Adding navigation node...`);
@@ -51,12 +52,13 @@ class SpoNavigationNodeAddCommand extends SpoCommand_1.default {
51
52
  accept: 'application/json;odata=nometadata',
52
53
  'content-type': 'application/json;odata=nometadata'
53
54
  },
55
+ responseType: 'json',
54
56
  data: {
57
+ AudienceIds: (_a = args.options.audienceIds) === null || _a === void 0 ? void 0 : _a.split(','),
55
58
  Title: args.options.title,
56
59
  Url: args.options.url,
57
60
  IsExternal: args.options.isExternal === true
58
- },
59
- responseType: 'json'
61
+ }
60
62
  };
61
63
  try {
62
64
  const res = yield request_1.default.post(requestOptions);
@@ -73,7 +75,8 @@ _SpoNavigationNodeAddCommand_instances = new WeakSet(), _SpoNavigationNodeAddCom
73
75
  Object.assign(this.telemetryProperties, {
74
76
  isExternal: args.options.isExternal,
75
77
  location: typeof args.options.location !== 'undefined',
76
- parentNodeId: typeof args.options.parentNodeId !== 'undefined'
78
+ parentNodeId: typeof args.options.parentNodeId !== 'undefined',
79
+ audienceIds: typeof args.options.audienceIds !== 'undefined'
77
80
  });
78
81
  });
79
82
  }, _SpoNavigationNodeAddCommand_initOptions = function _SpoNavigationNodeAddCommand_initOptions() {
@@ -90,6 +93,8 @@ _SpoNavigationNodeAddCommand_instances = new WeakSet(), _SpoNavigationNodeAddCom
90
93
  option: '--parentNodeId [parentNodeId]'
91
94
  }, {
92
95
  option: '--isExternal'
96
+ }, {
97
+ option: '--audienceIds [audienceIds]'
93
98
  });
94
99
  }, _SpoNavigationNodeAddCommand_initValidators = function _SpoNavigationNodeAddCommand_initValidators() {
95
100
  this.validators.push((args) => __awaiter(this, void 0, void 0, function* () {
@@ -108,6 +113,15 @@ _SpoNavigationNodeAddCommand_instances = new WeakSet(), _SpoNavigationNodeAddCom
108
113
  return `${args.options.location} is not a valid value for the location option. Allowed values are QuickLaunch|TopNavigationBar`;
109
114
  }
110
115
  }
116
+ if (args.options.audienceIds) {
117
+ const audienceIdsSplitted = args.options.audienceIds.split(',');
118
+ if (audienceIdsSplitted.length > 10) {
119
+ return 'The maximum amount of audienceIds per navigation node exceeded. The maximum amount of auciendeIds is 10.';
120
+ }
121
+ if (!validation_1.validation.isValidGuidArray(audienceIdsSplitted)) {
122
+ return 'The option audienceIds contains one or more invalid GUIDs';
123
+ }
124
+ }
111
125
  return true;
112
126
  }));
113
127
  }, _SpoNavigationNodeAddCommand_initOptionSets = function _SpoNavigationNodeAddCommand_initOptionSets() {
@@ -26,6 +26,9 @@ class SpoNavigationNodeListCommand extends SpoCommand_1.default {
26
26
  get description() {
27
27
  return 'Lists nodes from the specified site navigation';
28
28
  }
29
+ defaultProperties() {
30
+ return ['Id', 'Title', 'Url'];
31
+ }
29
32
  constructor() {
30
33
  super();
31
34
  _SpoNavigationNodeListCommand_instances.add(this);
@@ -40,13 +43,7 @@ class SpoNavigationNodeListCommand extends SpoCommand_1.default {
40
43
  }
41
44
  try {
42
45
  const res = yield odata_1.odata.getAllItems(`${args.options.webUrl}/_api/web/navigation/${args.options.location.toLowerCase()}`);
43
- logger.log(res.map(n => {
44
- return {
45
- Id: n.Id,
46
- Title: n.Title,
47
- Url: n.Url
48
- };
49
- }));
46
+ logger.log(res);
50
47
  }
51
48
  catch (err) {
52
49
  this.handleRejectedODataJsonPromise(err);
@@ -0,0 +1,118 @@
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 _SpoNavigationNodeSetCommand_instances, _SpoNavigationNodeSetCommand_initTelemetry, _SpoNavigationNodeSetCommand_initTypes, _SpoNavigationNodeSetCommand_initOptions, _SpoNavigationNodeSetCommand_initValidators;
17
+ Object.defineProperty(exports, "__esModule", { value: true });
18
+ const request_1 = require("../../../../request");
19
+ const validation_1 = require("../../../../utils/validation");
20
+ const SpoCommand_1 = require("../../../base/SpoCommand");
21
+ const commands_1 = require("../../commands");
22
+ class SpoNavigationNodeSetCommand extends SpoCommand_1.default {
23
+ get name() {
24
+ return commands_1.default.NAVIGATION_NODE_SET;
25
+ }
26
+ get description() {
27
+ return 'Adds a navigation node to the specified site navigation';
28
+ }
29
+ constructor() {
30
+ super();
31
+ _SpoNavigationNodeSetCommand_instances.add(this);
32
+ __classPrivateFieldGet(this, _SpoNavigationNodeSetCommand_instances, "m", _SpoNavigationNodeSetCommand_initTelemetry).call(this);
33
+ __classPrivateFieldGet(this, _SpoNavigationNodeSetCommand_instances, "m", _SpoNavigationNodeSetCommand_initOptions).call(this);
34
+ __classPrivateFieldGet(this, _SpoNavigationNodeSetCommand_instances, "m", _SpoNavigationNodeSetCommand_initTypes).call(this);
35
+ __classPrivateFieldGet(this, _SpoNavigationNodeSetCommand_instances, "m", _SpoNavigationNodeSetCommand_initValidators).call(this);
36
+ }
37
+ commandAction(logger, args) {
38
+ return __awaiter(this, void 0, void 0, function* () {
39
+ try {
40
+ if (this.verbose) {
41
+ logger.logToStderr(`Setting navigation node...`);
42
+ }
43
+ const requestBody = {
44
+ Title: args.options.title,
45
+ IsExternal: args.options.isExternal,
46
+ Url: args.options.url
47
+ };
48
+ if (args.options.audienceIds !== undefined) {
49
+ requestBody.AudienceIds = args.options.audienceIds === '' ? [] : args.options.audienceIds.split(',');
50
+ }
51
+ const requestOptions = {
52
+ url: `${args.options.webUrl}/_api/web/navigation/GetNodeById(${args.options.id})`,
53
+ headers: {
54
+ accept: 'application/json;odata=nometadata',
55
+ 'content-type': 'application/json;odata=nometadata'
56
+ },
57
+ data: requestBody,
58
+ responseType: 'json'
59
+ };
60
+ const response = yield request_1.default.patch(requestOptions);
61
+ if (response['odata.null'] === true) {
62
+ throw `Navigation node does not exist.`;
63
+ }
64
+ }
65
+ catch (err) {
66
+ this.handleRejectedODataJsonPromise(err);
67
+ }
68
+ });
69
+ }
70
+ }
71
+ _SpoNavigationNodeSetCommand_instances = new WeakSet(), _SpoNavigationNodeSetCommand_initTelemetry = function _SpoNavigationNodeSetCommand_initTelemetry() {
72
+ this.telemetry.push((args) => {
73
+ Object.assign(this.telemetryProperties, {
74
+ title: typeof args.options.title !== 'undefined',
75
+ url: typeof args.options.url !== 'undefined',
76
+ isExternal: typeof args.options.isExternal !== 'undefined',
77
+ audienceIds: typeof args.options.audienceIds !== 'undefined'
78
+ });
79
+ });
80
+ }, _SpoNavigationNodeSetCommand_initTypes = function _SpoNavigationNodeSetCommand_initTypes() {
81
+ this.types.boolean.push('isExternal');
82
+ }, _SpoNavigationNodeSetCommand_initOptions = function _SpoNavigationNodeSetCommand_initOptions() {
83
+ this.options.unshift({
84
+ option: '-u, --webUrl <webUrl>'
85
+ }, {
86
+ option: '--id <id>'
87
+ }, {
88
+ option: '--title [title]'
89
+ }, {
90
+ option: '--url [url]'
91
+ }, {
92
+ option: '--audienceIds [audienceIds]'
93
+ }, {
94
+ option: '--isExternal [isExternal]'
95
+ });
96
+ }, _SpoNavigationNodeSetCommand_initValidators = function _SpoNavigationNodeSetCommand_initValidators() {
97
+ this.validators.push((args) => __awaiter(this, void 0, void 0, function* () {
98
+ const isValidSharePointUrl = validation_1.validation.isValidSharePointUrl(args.options.webUrl);
99
+ if (isValidSharePointUrl !== true) {
100
+ return isValidSharePointUrl;
101
+ }
102
+ if (args.options.audienceIds === undefined && !args.options.url && args.options.isExternal === undefined && !args.options.title) {
103
+ return `Please specify atleast one property to update.`;
104
+ }
105
+ if (args.options.audienceIds) {
106
+ const audienceIdsSplitted = args.options.audienceIds.split(',');
107
+ if (audienceIdsSplitted.length > 10) {
108
+ return 'The maximum amount of audienceIds per navigation node exceeded. The maximum amount of audienceIds is 10.';
109
+ }
110
+ if (!validation_1.validation.isValidGuidArray(audienceIdsSplitted)) {
111
+ return `The option audienceIds contains one or more invalid GUIDs`;
112
+ }
113
+ }
114
+ return true;
115
+ }));
116
+ };
117
+ module.exports = new SpoNavigationNodeSetCommand();
118
+ //# sourceMappingURL=navigation-node-set.js.map
@@ -15,6 +15,7 @@ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (
15
15
  };
16
16
  var _SpoPageColumnGetCommand_instances, _SpoPageColumnGetCommand_initOptions, _SpoPageColumnGetCommand_initValidators;
17
17
  Object.defineProperty(exports, "__esModule", { value: true });
18
+ const Cli_1 = require("../../../../cli/Cli");
18
19
  const validation_1 = require("../../../../utils/validation");
19
20
  const SpoCommand_1 = require("../../../base/SpoCommand");
20
21
  const commands_1 = require("../../commands");
@@ -39,7 +40,7 @@ class SpoPageColumnGetCommand extends SpoCommand_1.default {
39
40
  const sections = clientSidePage.sections
40
41
  .filter(section => section.order === args.options.section);
41
42
  if (sections.length) {
42
- const isJSONOutput = args.options.output === 'json';
43
+ const isJSONOutput = !Cli_1.Cli.shouldTrimOutput(args.options.output);
43
44
  const columns = sections[0].columns.filter(col => col.order === args.options.column);
44
45
  if (columns.length) {
45
46
  const column = Page_1.Page.getColumnsInformation(columns[0], isJSONOutput);
@@ -15,6 +15,7 @@ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (
15
15
  };
16
16
  var _SpoPageColumnListCommand_instances, _SpoPageColumnListCommand_initOptions, _SpoPageColumnListCommand_initValidators;
17
17
  Object.defineProperty(exports, "__esModule", { value: true });
18
+ const Cli_1 = require("../../../../cli/Cli");
18
19
  const validation_1 = require("../../../../utils/validation");
19
20
  const SpoCommand_1 = require("../../../base/SpoCommand");
20
21
  const commands_1 = require("../../commands");
@@ -39,7 +40,7 @@ class SpoPageColumnListCommand extends SpoCommand_1.default {
39
40
  const sections = clientSidePage.sections
40
41
  .filter(section => section.order === args.options.section);
41
42
  if (sections.length) {
42
- const isJSONOutput = args.options.output === 'json';
43
+ const isJSONOutput = !Cli_1.Cli.shouldTrimOutput(args.options.output);
43
44
  logger.log(sections[0].columns.map(c => {
44
45
  const column = Page_1.Page.getColumnsInformation(c, isJSONOutput);
45
46
  column.controls = c.controls.length;
@@ -15,6 +15,7 @@ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (
15
15
  };
16
16
  var _SpoPageSectionGetCommand_instances, _SpoPageSectionGetCommand_initOptions, _SpoPageSectionGetCommand_initValidators;
17
17
  Object.defineProperty(exports, "__esModule", { value: true });
18
+ const Cli_1 = require("../../../../cli/Cli");
18
19
  const validation_1 = require("../../../../utils/validation");
19
20
  const SpoCommand_1 = require("../../../base/SpoCommand");
20
21
  const commands_1 = require("../../commands");
@@ -38,7 +39,7 @@ class SpoPageSectionGetCommand extends SpoCommand_1.default {
38
39
  const clientSidePage = yield Page_1.Page.getPage(args.options.pageName, args.options.webUrl, logger, this.debug, this.verbose);
39
40
  const sections = clientSidePage.sections
40
41
  .filter(section => section.order === args.options.section);
41
- const isJSONOutput = args.options.output === 'json';
42
+ const isJSONOutput = !Cli_1.Cli.shouldTrimOutput(args.options.output);
42
43
  if (sections.length) {
43
44
  logger.log(Page_1.Page.getSectionInformation(sections[0], isJSONOutput));
44
45
  }
@@ -15,6 +15,7 @@ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (
15
15
  };
16
16
  var _SpoPageSectionListCommand_instances, _SpoPageSectionListCommand_initOptions, _SpoPageSectionListCommand_initValidators;
17
17
  Object.defineProperty(exports, "__esModule", { value: true });
18
+ const Cli_1 = require("../../../../cli/Cli");
18
19
  const validation_1 = require("../../../../utils/validation");
19
20
  const SpoCommand_1 = require("../../../base/SpoCommand");
20
21
  const commands_1 = require("../../commands");
@@ -37,7 +38,7 @@ class SpoPageSectionListCommand extends SpoCommand_1.default {
37
38
  try {
38
39
  const clientSidePage = yield Page_1.Page.getPage(args.options.pageName, args.options.webUrl, logger, this.debug, this.verbose);
39
40
  const sections = clientSidePage.sections;
40
- const isJSONOutput = args.options.output === 'json';
41
+ const isJSONOutput = !Cli_1.Cli.shouldTrimOutput(args.options.output);
41
42
  if (sections.length) {
42
43
  const output = sections.map(section => Page_1.Page.getSectionInformation(section, isJSONOutput));
43
44
  if (isJSONOutput) {
@@ -16,6 +16,7 @@ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (
16
16
  var _SpoSearchCommand_instances, _SpoSearchCommand_initTelemetry, _SpoSearchCommand_initOptions, _SpoSearchCommand_initValidators;
17
17
  Object.defineProperty(exports, "__esModule", { value: true });
18
18
  const util_1 = require("util");
19
+ const Cli_1 = require("../../../cli/Cli");
19
20
  const request_1 = require("../../../request");
20
21
  const formatting_1 = require("../../../utils/formatting");
21
22
  const spo_1 = require("../../../utils/spo");
@@ -137,7 +138,7 @@ class SpoSearchCommand extends SpoCommand_1.default {
137
138
  else {
138
139
  logger.log(this.getParsedOutput(args, results));
139
140
  }
140
- if (!args.options.output || args.options.output === 'text') {
141
+ if (!args.options.output || Cli_1.Cli.shouldTrimOutput(args.options.output)) {
141
142
  logger.log("# Rows: " + results[results.length - 1].PrimaryQueryResult.RelevantResults.TotalRows);
142
143
  logger.log("# Rows (Including duplicates): " + results[results.length - 1].PrimaryQueryResult.RelevantResults.TotalRowsIncludingDuplicates);
143
144
  logger.log("Elapsed Time: " + this.getElapsedTime(results));
@@ -15,6 +15,7 @@ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (
15
15
  };
16
16
  var _SpoTermListCommand_instances, _SpoTermListCommand_initTelemetry, _SpoTermListCommand_initOptions, _SpoTermListCommand_initValidators, _SpoTermListCommand_initOptionSets;
17
17
  Object.defineProperty(exports, "__esModule", { value: true });
18
+ const Cli_1 = require("../../../../cli/Cli");
18
19
  const config_1 = require("../../../../config");
19
20
  const request_1 = require("../../../../request");
20
21
  const formatting_1 = require("../../../../utils/formatting");
@@ -62,7 +63,7 @@ class SpoTermListCommand extends SpoCommand_1.default {
62
63
  }
63
64
  }
64
65
  }
65
- if (!args.options.output || args.options.output === 'json') {
66
+ if (!args.options.output || !Cli_1.Cli.shouldTrimOutput(args.options.output)) {
66
67
  logger.log(terms);
67
68
  }
68
69
  else if (!args.options.includeChildTerms) {
@@ -15,6 +15,7 @@ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (
15
15
  };
16
16
  var _SpoUserProfileGetCommand_instances, _SpoUserProfileGetCommand_initOptions, _SpoUserProfileGetCommand_initValidators;
17
17
  Object.defineProperty(exports, "__esModule", { value: true });
18
+ const Cli_1 = require("../../../../cli/Cli");
18
19
  const request_1 = require("../../../../request");
19
20
  const formatting_1 = require("../../../../utils/formatting");
20
21
  const spo_1 = require("../../../../utils/spo");
@@ -47,8 +48,7 @@ class SpoUserProfileGetCommand extends SpoCommand_1.default {
47
48
  responseType: 'json'
48
49
  };
49
50
  const res = yield request_1.default.get(requestOptions);
50
- if (!args.options.output ||
51
- args.options.output === 'text') {
51
+ if (!args.options.output || Cli_1.Cli.shouldTrimOutput(args.options.output)) {
52
52
  res.UserProfileProperties = JSON.stringify(res.UserProfileProperties);
53
53
  }
54
54
  logger.log(res);
@@ -62,6 +62,9 @@ class SpoWebSetCommand extends SpoCommand_1.default {
62
62
  if (typeof args.options.footerEnabled !== 'undefined') {
63
63
  payload.FooterEnabled = args.options.footerEnabled;
64
64
  }
65
+ if (typeof args.options.navAudienceTargetingEnabled !== 'undefined') {
66
+ payload.NavAudienceTargetingEnabled = args.options.navAudienceTargetingEnabled;
67
+ }
65
68
  if (typeof args.options.searchScope !== 'undefined') {
66
69
  const searchScope = args.options.searchScope.toLowerCase();
67
70
  payload.SearchScope = SpoWebSetCommand.searchScopeOptions.indexOf(searchScope);
@@ -96,11 +99,12 @@ _SpoWebSetCommand_instances = new WeakSet(), _SpoWebSetCommand_initTelemetry = f
96
99
  description: typeof args.options.description !== 'undefined',
97
100
  headerEmphasis: typeof args.options.headerEmphasis !== 'undefined',
98
101
  headerLayout: typeof args.options.headerLayout !== 'undefined',
99
- megaMenuEnabled: args.options.megaMenuEnabled,
102
+ megaMenuEnabled: typeof args.options.megaMenuEnabled !== 'undefined',
100
103
  siteLogoUrl: typeof args.options.siteLogoUrl !== 'undefined',
101
104
  title: typeof args.options.title !== 'undefined',
102
- quickLaunchEnabled: args.options.quickLaunchEnabled,
103
- footerEnabled: args.options.footerEnabled,
105
+ quickLaunchEnabled: typeof args.options.quickLaunchEnabled !== 'undefined',
106
+ footerEnabled: typeof args.options.footerEnabled !== 'undefined',
107
+ navAudienceTargetingEnabled: typeof args.options.navAudienceTargetingEnabled !== 'undefined',
104
108
  searchScope: args.options.searchScope !== 'undefined'
105
109
  });
106
110
  this.trackUnknownOptions(this.telemetryProperties, args.options);
@@ -129,12 +133,15 @@ _SpoWebSetCommand_instances = new WeakSet(), _SpoWebSetCommand_initTelemetry = f
129
133
  }, {
130
134
  option: '--footerEnabled [footerEnabled]',
131
135
  autocomplete: ['true', 'false']
136
+ }, {
137
+ option: '--navAudienceTargetingEnabled [navAudienceTargetingEnabled]',
138
+ autocomplete: ['true', 'false']
132
139
  }, {
133
140
  option: '--searchScope [searchScope]',
134
141
  autocomplete: SpoWebSetCommand.searchScopeOptions
135
142
  });
136
143
  }, _SpoWebSetCommand_initTypes = function _SpoWebSetCommand_initTypes() {
137
- this.types.boolean.push('megaMenuEnabled', 'footerEnabled', 'quickLaunchEnabled');
144
+ this.types.boolean.push('megaMenuEnabled', 'footerEnabled', 'quickLaunchEnabled', 'navAudienceTargetingEnabled');
138
145
  }, _SpoWebSetCommand_initValidators = function _SpoWebSetCommand_initValidators() {
139
146
  this.validators.push((args) => __awaiter(this, void 0, void 0, function* () {
140
147
  const isValidSharePointUrl = validation_1.validation.isValidSharePointUrl(args.options.url);
@@ -167,6 +167,7 @@ exports.default = {
167
167
  NAVIGATION_NODE_ADD: `${prefix} navigation node add`,
168
168
  NAVIGATION_NODE_LIST: `${prefix} navigation node list`,
169
169
  NAVIGATION_NODE_REMOVE: `${prefix} navigation node remove`,
170
+ NAVIGATION_NODE_SET: `${prefix} navigation node set`,
170
171
  ORGASSETSLIBRARY_ADD: `${prefix} orgassetslibrary add`,
171
172
  ORGASSETSLIBRARY_LIST: `${prefix} orgassetslibrary list`,
172
173
  ORGASSETSLIBRARY_REMOVE: `${prefix} orgassetslibrary remove`,
@@ -79,7 +79,7 @@ class TeamsMeetingListCommand extends GraphCommand_1.default {
79
79
  }
80
80
  const res = yield odata_1.odata.getAllItems(requestUrl);
81
81
  const resFiltered = res.filter(y => y.isOnlineMeeting);
82
- if (!args.options.output || args.options.output === 'json') {
82
+ if (!args.options.output || !Cli_1.Cli.shouldTrimOutput(args.options.output)) {
83
83
  logger.log(resFiltered);
84
84
  }
85
85
  else {
@@ -47,7 +47,7 @@ class TeamsTeamAppListCommand extends GraphCommand_1.default {
47
47
  }
48
48
  const teamId = yield this.getTeamId(args);
49
49
  const res = yield odata_1.odata.getAllItems(`${this.resource}/v1.0/teams/${teamId}/installedApps?$expand=teamsApp,teamsAppDefinition`);
50
- if (args.options.output === 'json') {
50
+ if (!Cli_1.Cli.shouldTrimOutput(args.options.output)) {
51
51
  logger.log(res);
52
52
  }
53
53
  else {
@@ -15,6 +15,7 @@ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (
15
15
  };
16
16
  var _TeamsUserAppListCommand_instances, _TeamsUserAppListCommand_initTelemetry, _TeamsUserAppListCommand_initOptions, _TeamsUserAppListCommand_initValidators, _TeamsUserAppListCommand_initOptionSets;
17
17
  Object.defineProperty(exports, "__esModule", { value: true });
18
+ const Cli_1 = require("../../../../cli/Cli");
18
19
  const request_1 = require("../../../../request");
19
20
  const formatting_1 = require("../../../../utils/formatting");
20
21
  const odata_1 = require("../../../../utils/odata");
@@ -47,7 +48,7 @@ class TeamsUserAppListCommand extends GraphCommand_1.default {
47
48
  const appId = userAppId.substr(userAppId.indexOf("##") + 2, userAppId.length - userId.length - 2);
48
49
  i.appId = appId;
49
50
  });
50
- if (args.options.output === 'json') {
51
+ if (!Cli_1.Cli.shouldTrimOutput(args.options.output)) {
51
52
  logger.log(items);
52
53
  }
53
54
  else {
@@ -15,6 +15,7 @@ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (
15
15
  };
16
16
  var _TodoTaskGetCommand_instances, _TodoTaskGetCommand_initTelemetry, _TodoTaskGetCommand_initOptions, _TodoTaskGetCommand_initOptionSets;
17
17
  Object.defineProperty(exports, "__esModule", { value: true });
18
+ const Cli_1 = require("../../../../cli/Cli");
18
19
  const request_1 = require("../../../../request");
19
20
  const GraphCommand_1 = require("../../../base/GraphCommand");
20
21
  const commands_1 = require("../../commands");
@@ -67,7 +68,7 @@ class TodoTaskGetCommand extends GraphCommand_1.default {
67
68
  responseType: 'json'
68
69
  };
69
70
  const item = yield request_1.default.get(requestOptions);
70
- if (args.options.output === 'json') {
71
+ if (!Cli_1.Cli.shouldTrimOutput(args.options.output)) {
71
72
  logger.log(item);
72
73
  }
73
74
  else {
@@ -15,6 +15,7 @@ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (
15
15
  };
16
16
  var _TodoTaskListCommand_instances, _TodoTaskListCommand_initTelemetry, _TodoTaskListCommand_initOptions, _TodoTaskListCommand_initOptionSets;
17
17
  Object.defineProperty(exports, "__esModule", { value: true });
18
+ const Cli_1 = require("../../../../cli/Cli");
18
19
  const request_1 = require("../../../../request");
19
20
  const odata_1 = require("../../../../utils/odata");
20
21
  const GraphCommand_1 = require("../../../base/GraphCommand");
@@ -62,7 +63,7 @@ class TodoTaskListCommand extends GraphCommand_1.default {
62
63
  const listId = yield this.getTodoListId(args);
63
64
  const endpoint = `${this.resource}/v1.0/me/todo/lists/${listId}/tasks`;
64
65
  const items = yield odata_1.odata.getAllItems(endpoint);
65
- if (args.options.output === 'json') {
66
+ if (!Cli_1.Cli.shouldTrimOutput(args.options.output)) {
66
67
  logger.log(items);
67
68
  }
68
69
  else {
@@ -15,6 +15,7 @@ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (
15
15
  };
16
16
  var _YammerSearchCommand_instances, _YammerSearchCommand_initTelemetry, _YammerSearchCommand_initOptions, _YammerSearchCommand_initValidators;
17
17
  Object.defineProperty(exports, "__esModule", { value: true });
18
+ const Cli_1 = require("../../../cli/Cli");
18
19
  const request_1 = require("../../../request");
19
20
  const formatting_1 = require("../../../utils/formatting");
20
21
  const YammerCommand_1 = require("../../base/YammerCommand");
@@ -129,7 +130,7 @@ class YammerSearchCommand extends YammerCommand_1.default {
129
130
  this.users = [];
130
131
  try {
131
132
  yield this.getAllItems(logger, args, 1);
132
- if (args.options.output === 'json') {
133
+ if (!Cli_1.Cli.shouldTrimOutput(args.options.output)) {
133
134
  logger.log({
134
135
  summary: this.summary,
135
136
  messages: this.messages,
@@ -41,17 +41,31 @@ exports.planner = {
41
41
  * Get all Planner plans for a specific group.
42
42
  * @param groupId Group ID.
43
43
  */
44
- getPlansByGroupId(groupId) {
45
- return odata_1.odata.getAllItems(`${graphResource}/v1.0/groups/${groupId}/planner/plans`, 'none');
44
+ getPlansByGroupId(groupId, metadata = 'none') {
45
+ return odata_1.odata.getAllItems(`${graphResource}/v1.0/groups/${groupId}/planner/plans`, metadata);
46
+ },
47
+ /**
48
+ * Get all Planner plans for a specific roster.
49
+ * @param rosterId Roster ID.
50
+ */
51
+ getPlansByRosterId(rosterId, metadata = 'none') {
52
+ return odata_1.odata.getAllItems(`${graphResource}/beta/planner/rosters/${rosterId}/plans`, metadata);
46
53
  },
47
54
  /**
48
55
  * Get Planner plan by title in a specific group.
49
56
  * @param title Title of the Planner plan. Case insensitive.
50
- * @param groupId Owner group ID .
57
+ * @param groupId Owner group ID.
58
+ * @param rosterId Roster ID.
51
59
  */
52
- getPlanByTitle(title, groupId) {
60
+ getPlanByTitle(title, groupId, rosterId, metadata = 'none') {
53
61
  return __awaiter(this, void 0, void 0, function* () {
54
- const plans = yield this.getPlansByGroupId(groupId);
62
+ let plans = [];
63
+ if (groupId) {
64
+ plans = yield this.getPlansByGroupId(groupId, metadata);
65
+ }
66
+ else if (rosterId) {
67
+ plans = yield this.getPlansByRosterId(rosterId, metadata);
68
+ }
55
69
  const filteredPlans = plans.filter(p => p.title && p.title.toLowerCase() === title.toLowerCase());
56
70
  if (!filteredPlans.length) {
57
71
  throw Error(`The specified plan '${title}' does not exist.`);
@@ -23,6 +23,7 @@ m365 aad app list
23
23
  ## Response
24
24
 
25
25
  === "JSON"
26
+
26
27
  ```json
27
28
  [
28
29
  {
@@ -136,6 +137,7 @@ m365 aad app list
136
137
  ```
137
138
 
138
139
  === "Text"
140
+
139
141
  ```text
140
142
  appId id displayName signInAudience
141
143
  ------------------------------------ ------------------------------------ ----------------------------------------------------------------------- ----------------------------------
@@ -143,6 +145,7 @@ m365 aad app list
143
145
  ```
144
146
 
145
147
  === "CSV"
148
+
146
149
  ```csv
147
150
  appId,id,displayName,signInAudience
148
151
  61ed4fab-a861-4307-bb87-a6a53dbe39f5,ff2798f7-1c7a-4607-8a7b-3d5e0c18c756,TestAppPermissions,AzureADMyOrg
@@ -83,6 +83,6 @@ Change password of the currently logged in user
83
83
  m365 aad user set --objectId 1caf7dcd-7e83-4c3a-94f7-932a1299c844 --currentPassword SLBF5gnRtyYc --newPassword 6NLUId79Lc24
84
84
  ```
85
85
 
86
- ### Response
86
+ ## Response
87
87
 
88
88
  The command won't return a response on success.