@pnp/cli-microsoft365 6.3.0-beta.c3dc921 → 6.3.0-beta.e46ffee

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 (51) hide show
  1. package/dist/Auth.js +0 -18
  2. package/dist/m365/file/commands/convert/convert-pdf.js +7 -6
  3. package/dist/m365/flow/commands/run/run-list.js +55 -3
  4. package/dist/m365/onenote/commands/notebook/notebook-list.js +2 -16
  5. package/dist/m365/onenote/commands/page/page-list.js +2 -16
  6. package/dist/m365/outlook/commands/mail/mail-send.js +3 -2
  7. package/dist/m365/outlook/commands/message/message-get.js +4 -3
  8. package/dist/m365/planner/commands/plan/plan-add.js +20 -6
  9. package/dist/m365/planner/commands/plan/plan-remove.js +1 -1
  10. package/dist/m365/planner/commands/roster/roster-add.js +47 -0
  11. package/dist/m365/planner/commands/roster/roster-remove.js +88 -0
  12. package/dist/m365/planner/commands.js +2 -0
  13. package/dist/m365/purview/commands/retentioneventtype/retentioneventtype-get.js +70 -0
  14. package/dist/m365/purview/commands.js +1 -0
  15. package/dist/m365/spfx/commands/project/WebApiPermissionRequests.js +3 -0
  16. package/dist/m365/spfx/commands/project/project-permissions-grant.js +81 -0
  17. package/dist/m365/spfx/commands.js +3 -2
  18. package/dist/m365/spo/commands/navigation/navigation-node-add.js +17 -3
  19. package/dist/m365/spo/commands/navigation/navigation-node-list.js +4 -7
  20. package/dist/m365/spo/commands/navigation/navigation-node-set.js +118 -0
  21. package/dist/m365/spo/commands/site/site-apppermission-add.js +2 -14
  22. package/dist/m365/spo/commands/site/site-apppermission-get.js +2 -14
  23. package/dist/m365/spo/commands/site/site-apppermission-list.js +2 -14
  24. package/dist/m365/spo/commands/site/site-apppermission-remove.js +2 -14
  25. package/dist/m365/spo/commands/site/site-apppermission-set.js +2 -14
  26. package/dist/m365/spo/commands/web/web-set.js +11 -4
  27. package/dist/m365/spo/commands.js +1 -0
  28. package/dist/m365/teams/commands/chat/chat-list.js +4 -4
  29. package/dist/m365/teams/commands/meeting/meeting-attendancereport-list.js +5 -5
  30. package/dist/m365/teams/commands/meeting/meeting-get.js +5 -5
  31. package/dist/m365/teams/commands/meeting/meeting-list.js +4 -3
  32. package/dist/utils/accessToken.js +1 -1
  33. package/dist/utils/planner.js +4 -4
  34. package/dist/utils/spo.js +27 -0
  35. package/docs/docs/cmd/aad/app/app-list.md +3 -0
  36. package/docs/docs/cmd/aad/user/user-set.md +1 -1
  37. package/docs/docs/cmd/flow/run/run-list.md +21 -0
  38. package/docs/docs/cmd/planner/plan/plan-add.md +17 -6
  39. package/docs/docs/cmd/planner/plan/plan-remove.md +4 -0
  40. package/docs/docs/cmd/planner/roster/roster-add.md +60 -0
  41. package/docs/docs/cmd/planner/roster/roster-remove.md +48 -0
  42. package/docs/docs/cmd/purview/retentioneventtype/retentioneventtype-get.md +100 -0
  43. package/docs/docs/cmd/spfx/project/project-permissions-grant.md +65 -0
  44. package/docs/docs/cmd/spo/listitem/listitem-attachment-list.md +2 -2
  45. package/docs/docs/cmd/spo/listitem/listitem-isrecord.md +2 -2
  46. package/docs/docs/cmd/spo/navigation/navigation-node-add.md +18 -3
  47. package/docs/docs/cmd/spo/navigation/navigation-node-list.md +30 -0
  48. package/docs/docs/cmd/spo/navigation/navigation-node-remove.md +1 -1
  49. package/docs/docs/cmd/spo/navigation/navigation-node-set.md +59 -0
  50. package/docs/docs/cmd/spo/web/web-set.md +9 -0
  51. package/package.json +1 -1
@@ -0,0 +1,81 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ const path = require("path");
13
+ const fs = require("fs");
14
+ const Command_1 = require("../../../../Command");
15
+ const commands_1 = require("../../commands");
16
+ const base_project_command_1 = require("./base-project-command");
17
+ const SpoServicePrincipalGrantAddCommand = require("../../../spo/commands/serviceprincipal/serviceprincipal-grant-add");
18
+ const Cli_1 = require("../../../../cli/Cli");
19
+ class SpfxProjectPermissionSGrantCommand extends base_project_command_1.BaseProjectCommand {
20
+ get name() {
21
+ return commands_1.default.PROJECT_PERMISSIONS_GRANT;
22
+ }
23
+ get description() {
24
+ return 'Grant API permissions defined in the current SPFx project';
25
+ }
26
+ constructor() {
27
+ super();
28
+ }
29
+ commandAction(logger) {
30
+ return __awaiter(this, void 0, void 0, function* () {
31
+ this.projectRootPath = this.getProjectRoot(process.cwd());
32
+ if (this.projectRootPath === null) {
33
+ throw new Command_1.CommandError(`Couldn't find project root folder`, SpfxProjectPermissionSGrantCommand.ERROR_NO_PROJECT_ROOT_FOLDER);
34
+ }
35
+ if (this.debug) {
36
+ logger.logToStderr(`Granting API permissions defined in the current SPFx project`);
37
+ }
38
+ try {
39
+ const webApiPermissionsRequest = this.getWebApiPermissionRequest(path.join(this.projectRootPath, 'config', 'package-solution.json'));
40
+ for (const permission of webApiPermissionsRequest) {
41
+ const options = {
42
+ resource: permission.resource,
43
+ scope: permission.scope,
44
+ output: 'json',
45
+ debug: this.debug,
46
+ verbose: this.verbose
47
+ };
48
+ let output = null;
49
+ try {
50
+ output = yield Cli_1.Cli.executeCommandWithOutput(SpoServicePrincipalGrantAddCommand, { options: Object.assign(Object.assign({}, options), { _: [] }) });
51
+ }
52
+ catch (err) {
53
+ if (err.error && err.error.message.indexOf('already exists') > -1) {
54
+ this.warn(logger, err.error.message);
55
+ continue;
56
+ }
57
+ else {
58
+ throw err;
59
+ }
60
+ }
61
+ const getGrantOutput = JSON.parse(output.stdout);
62
+ logger.log(getGrantOutput);
63
+ }
64
+ }
65
+ catch (error) {
66
+ throw new Command_1.CommandError(error);
67
+ }
68
+ });
69
+ }
70
+ getWebApiPermissionRequest(filePath) {
71
+ if (!fs.existsSync(filePath)) {
72
+ throw (`The package-solution.json file could not be found`);
73
+ }
74
+ const existingContent = fs.readFileSync(filePath, 'utf-8');
75
+ const solutionContent = JSON.parse(existingContent);
76
+ return solutionContent.solution.webApiPermissionRequests;
77
+ }
78
+ }
79
+ SpfxProjectPermissionSGrantCommand.ERROR_NO_PROJECT_ROOT_FOLDER = 1;
80
+ module.exports = new SpfxProjectPermissionSGrantCommand();
81
+ //# sourceMappingURL=project-permissions-grant.js.map
@@ -5,8 +5,9 @@ exports.default = {
5
5
  DOCTOR: `${prefix} doctor`,
6
6
  PACKAGE_GENERATE: `${prefix} package generate`,
7
7
  PROJECT_DOCTOR: `${prefix} project doctor`,
8
- PROJECT_UPGRADE: `${prefix} project upgrade`,
9
8
  PROJECT_EXTERNALIZE: `${prefix} project externalize`,
10
- PROJECT_RENAME: `${prefix} project rename`
9
+ PROJECT_PERMISSIONS_GRANT: `${prefix} project permissions grant`,
10
+ PROJECT_RENAME: `${prefix} project rename`,
11
+ PROJECT_UPGRADE: `${prefix} project upgrade`
11
12
  };
12
13
  //# sourceMappingURL=commands.js.map
@@ -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
@@ -17,6 +17,7 @@ var _SpoSiteAppPermissionAddCommand_instances, _SpoSiteAppPermissionAddCommand_i
17
17
  Object.defineProperty(exports, "__esModule", { value: true });
18
18
  const request_1 = require("../../../../request");
19
19
  const formatting_1 = require("../../../../utils/formatting");
20
+ const spo_1 = require("../../../../utils/spo");
20
21
  const validation_1 = require("../../../../utils/validation");
21
22
  const GraphCommand_1 = require("../../../base/GraphCommand");
22
23
  const commands_1 = require("../../commands");
@@ -37,19 +38,6 @@ class SpoSiteAppPermissionAddCommand extends GraphCommand_1.default {
37
38
  __classPrivateFieldGet(this, _SpoSiteAppPermissionAddCommand_instances, "m", _SpoSiteAppPermissionAddCommand_initValidators).call(this);
38
39
  __classPrivateFieldGet(this, _SpoSiteAppPermissionAddCommand_instances, "m", _SpoSiteAppPermissionAddCommand_initOptionSets).call(this);
39
40
  }
40
- getSpoSiteId(args) {
41
- const url = new URL(args.options.siteUrl);
42
- const requestOptions = {
43
- url: `${this.resource}/v1.0/sites/${url.hostname}:${url.pathname}`,
44
- headers: {
45
- accept: 'application/json;odata.metadata=none'
46
- },
47
- responseType: 'json'
48
- };
49
- return request_1.default
50
- .get(requestOptions)
51
- .then((site) => site.id);
52
- }
53
41
  getAppInfo(args) {
54
42
  if (args.options.appId && args.options.appDisplayName) {
55
43
  return Promise.resolve({
@@ -136,7 +124,7 @@ class SpoSiteAppPermissionAddCommand extends GraphCommand_1.default {
136
124
  commandAction(logger, args) {
137
125
  return __awaiter(this, void 0, void 0, function* () {
138
126
  try {
139
- this.siteId = yield this.getSpoSiteId(args);
127
+ this.siteId = yield spo_1.spo.getSpoGraphSiteId(args.options.siteUrl);
140
128
  const appInfo = yield this.getAppInfo(args);
141
129
  let permission = yield this.addPermissions(args, appInfo);
142
130
  if (this.roleNeedsElevation(args.options.permission)) {
@@ -16,6 +16,7 @@ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (
16
16
  var _SpoSiteAppPermissionGetCommand_instances, _SpoSiteAppPermissionGetCommand_initOptions, _SpoSiteAppPermissionGetCommand_initValidators;
17
17
  Object.defineProperty(exports, "__esModule", { value: true });
18
18
  const request_1 = require("../../../../request");
19
+ const spo_1 = require("../../../../utils/spo");
19
20
  const validation_1 = require("../../../../utils/validation");
20
21
  const GraphCommand_1 = require("../../../base/GraphCommand");
21
22
  const commands_1 = require("../../commands");
@@ -32,19 +33,6 @@ class SpoSiteAppPermissionGetCommand extends GraphCommand_1.default {
32
33
  __classPrivateFieldGet(this, _SpoSiteAppPermissionGetCommand_instances, "m", _SpoSiteAppPermissionGetCommand_initOptions).call(this);
33
34
  __classPrivateFieldGet(this, _SpoSiteAppPermissionGetCommand_instances, "m", _SpoSiteAppPermissionGetCommand_initValidators).call(this);
34
35
  }
35
- getSpoSiteId(args) {
36
- const url = new URL(args.options.siteUrl);
37
- const requestOptions = {
38
- url: `${this.resource}/v1.0/sites/${url.hostname}:${url.pathname}`,
39
- headers: {
40
- accept: 'application/json;odata.metadata=none'
41
- },
42
- responseType: 'json'
43
- };
44
- return request_1.default
45
- .get(requestOptions)
46
- .then((site) => site.id);
47
- }
48
36
  getApplicationPermission(args, siteId) {
49
37
  const requestOptions = {
50
38
  url: `${this.resource}/v1.0/sites/${siteId}/permissions/${args.options.id}`,
@@ -58,7 +46,7 @@ class SpoSiteAppPermissionGetCommand extends GraphCommand_1.default {
58
46
  commandAction(logger, args) {
59
47
  return __awaiter(this, void 0, void 0, function* () {
60
48
  try {
61
- const siteId = yield this.getSpoSiteId(args);
49
+ const siteId = yield spo_1.spo.getSpoGraphSiteId(args.options.siteUrl);
62
50
  const permissionObject = yield this.getApplicationPermission(args, siteId);
63
51
  const transposed = [];
64
52
  permissionObject.grantedToIdentities.forEach((permissionEntity) => {
@@ -16,6 +16,7 @@ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (
16
16
  var _SpoSiteAppPermissionListCommand_instances, _SpoSiteAppPermissionListCommand_initTelemetry, _SpoSiteAppPermissionListCommand_initOptions, _SpoSiteAppPermissionListCommand_initValidators;
17
17
  Object.defineProperty(exports, "__esModule", { value: true });
18
18
  const request_1 = require("../../../../request");
19
+ const spo_1 = require("../../../../utils/spo");
19
20
  const validation_1 = require("../../../../utils/validation");
20
21
  const GraphCommand_1 = require("../../../base/GraphCommand");
21
22
  const commands_1 = require("../../commands");
@@ -34,19 +35,6 @@ class SpoSiteAppPermissionListCommand extends GraphCommand_1.default {
34
35
  __classPrivateFieldGet(this, _SpoSiteAppPermissionListCommand_instances, "m", _SpoSiteAppPermissionListCommand_initOptions).call(this);
35
36
  __classPrivateFieldGet(this, _SpoSiteAppPermissionListCommand_instances, "m", _SpoSiteAppPermissionListCommand_initValidators).call(this);
36
37
  }
37
- getSpoSiteId(args) {
38
- const url = new URL(args.options.siteUrl);
39
- const requestOptions = {
40
- url: `${this.resource}/v1.0/sites/${url.hostname}:${url.pathname}`,
41
- headers: {
42
- accept: 'application/json;odata.metadata=none'
43
- },
44
- responseType: 'json'
45
- };
46
- return request_1.default
47
- .get(requestOptions)
48
- .then((site) => site.id);
49
- }
50
38
  getFilteredPermissions(args, permissions) {
51
39
  let filterProperty = 'displayName';
52
40
  let filterValue = args.options.appDisplayName;
@@ -95,7 +83,7 @@ class SpoSiteAppPermissionListCommand extends GraphCommand_1.default {
95
83
  commandAction(logger, args) {
96
84
  return __awaiter(this, void 0, void 0, function* () {
97
85
  try {
98
- this.siteId = yield this.getSpoSiteId(args);
86
+ this.siteId = yield spo_1.spo.getSpoGraphSiteId(args.options.siteUrl);
99
87
  const permRes = yield this.getPermissions();
100
88
  let permissions = permRes.value;
101
89
  if (args.options.appId || args.options.appDisplayName) {
@@ -17,6 +17,7 @@ var _SpoSiteAppPermissionRemoveCommand_instances, _SpoSiteAppPermissionRemoveCom
17
17
  Object.defineProperty(exports, "__esModule", { value: true });
18
18
  const Cli_1 = require("../../../../cli/Cli");
19
19
  const request_1 = require("../../../../request");
20
+ const spo_1 = require("../../../../utils/spo");
20
21
  const validation_1 = require("../../../../utils/validation");
21
22
  const GraphCommand_1 = require("../../../base/GraphCommand");
22
23
  const commands_1 = require("../../commands");
@@ -36,19 +37,6 @@ class SpoSiteAppPermissionRemoveCommand extends GraphCommand_1.default {
36
37
  __classPrivateFieldGet(this, _SpoSiteAppPermissionRemoveCommand_instances, "m", _SpoSiteAppPermissionRemoveCommand_initValidators).call(this);
37
38
  __classPrivateFieldGet(this, _SpoSiteAppPermissionRemoveCommand_instances, "m", _SpoSiteAppPermissionRemoveCommand_initOptionSets).call(this);
38
39
  }
39
- getSpoSiteId(args) {
40
- const url = new URL(args.options.siteUrl);
41
- const requestOptions = {
42
- url: `${this.resource}/v1.0/sites/${url.hostname}:${url.pathname}`,
43
- headers: {
44
- accept: 'application/json;odata.metadata=none'
45
- },
46
- responseType: 'json'
47
- };
48
- return request_1.default
49
- .get(requestOptions)
50
- .then((site) => site.id);
51
- }
52
40
  getPermissions() {
53
41
  const requestOptions = {
54
42
  url: `${this.resource}/v1.0/sites/${this.siteId}/permissions`,
@@ -98,7 +86,7 @@ class SpoSiteAppPermissionRemoveCommand extends GraphCommand_1.default {
98
86
  return __awaiter(this, void 0, void 0, function* () {
99
87
  const removeSiteAppPermission = () => __awaiter(this, void 0, void 0, function* () {
100
88
  try {
101
- this.siteId = yield this.getSpoSiteId(args);
89
+ this.siteId = yield spo_1.spo.getSpoGraphSiteId(args.options.siteUrl);
102
90
  const permissionIdsToRemove = yield this.getPermissionIds(args);
103
91
  const tasks = [];
104
92
  for (const permissionId of permissionIdsToRemove) {
@@ -16,6 +16,7 @@ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (
16
16
  var _SpoSiteAppPermissionSetCommand_instances, _SpoSiteAppPermissionSetCommand_initTelemetry, _SpoSiteAppPermissionSetCommand_initOptions, _SpoSiteAppPermissionSetCommand_initValidators, _SpoSiteAppPermissionSetCommand_initOptionSets;
17
17
  Object.defineProperty(exports, "__esModule", { value: true });
18
18
  const request_1 = require("../../../../request");
19
+ const spo_1 = require("../../../../utils/spo");
19
20
  const validation_1 = require("../../../../utils/validation");
20
21
  const GraphCommand_1 = require("../../../base/GraphCommand");
21
22
  const commands_1 = require("../../commands");
@@ -36,19 +37,6 @@ class SpoSiteAppPermissionSetCommand extends GraphCommand_1.default {
36
37
  __classPrivateFieldGet(this, _SpoSiteAppPermissionSetCommand_instances, "m", _SpoSiteAppPermissionSetCommand_initValidators).call(this);
37
38
  __classPrivateFieldGet(this, _SpoSiteAppPermissionSetCommand_instances, "m", _SpoSiteAppPermissionSetCommand_initOptionSets).call(this);
38
39
  }
39
- getSpoSiteId(args) {
40
- const url = new URL(args.options.siteUrl);
41
- const siteRequestOptions = {
42
- url: `${this.resource}/v1.0/sites/${url.hostname}:${url.pathname}`,
43
- headers: {
44
- accept: 'application/json;odata.metadata=none'
45
- },
46
- responseType: 'json'
47
- };
48
- return request_1.default
49
- .get(siteRequestOptions)
50
- .then((site) => site.id);
51
- }
52
40
  getFilteredPermissions(args, permissions) {
53
41
  let filterProperty = 'displayName';
54
42
  let filterValue = args.options.appDisplayName;
@@ -85,7 +73,7 @@ class SpoSiteAppPermissionSetCommand extends GraphCommand_1.default {
85
73
  commandAction(logger, args) {
86
74
  return __awaiter(this, void 0, void 0, function* () {
87
75
  try {
88
- this.siteId = yield this.getSpoSiteId(args);
76
+ this.siteId = yield spo_1.spo.getSpoGraphSiteId(args.options.siteUrl);
89
77
  const sitePermissionId = yield this.getPermission(args);
90
78
  const requestOptions = {
91
79
  url: `${this.resource}/v1.0/sites/${this.siteId}/permissions/${sitePermissionId}`,
@@ -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`,
@@ -41,14 +41,14 @@ class TeamsChatListCommand extends GraphCommand_1.default {
41
41
  }
42
42
  commandAction(logger, args) {
43
43
  return __awaiter(this, void 0, void 0, function* () {
44
- const isAppOnlyAuth = accessToken_1.accessToken.isAppOnlyAccessToken(Auth_1.default.service.accessTokens[this.resource].accessToken);
45
- if (isAppOnlyAuth && !args.options.userId && !args.options.userName) {
44
+ const isAppOnlyAccessToken = accessToken_1.accessToken.isAppOnlyAccessToken(Auth_1.default.service.accessTokens[this.resource].accessToken);
45
+ if (isAppOnlyAccessToken && !args.options.userId && !args.options.userName) {
46
46
  throw `The option 'userId' or 'userName' is required when obtaining chats using app only permissions`;
47
47
  }
48
- else if (!isAppOnlyAuth && (args.options.userId || args.options.userName)) {
48
+ else if (!isAppOnlyAccessToken && (args.options.userId || args.options.userName)) {
49
49
  throw `The options 'userId' or 'userName' cannot be used when obtaining chats using delegated permissions`;
50
50
  }
51
- let requestUrl = `${this.resource}/v1.0/${!isAppOnlyAuth ? 'me' : `users/${args.options.userId || args.options.userName}`}/chats`;
51
+ let requestUrl = `${this.resource}/v1.0/${!isAppOnlyAccessToken ? 'me' : `users/${args.options.userId || args.options.userName}`}/chats`;
52
52
  if (args.options.type) {
53
53
  requestUrl += `?$filter=chatType eq '${args.options.type}'`;
54
54
  }
@@ -42,19 +42,19 @@ class TeamsMeetingAttendancereportListCommand extends GraphCommand_1.default {
42
42
  }
43
43
  commandAction(logger, args) {
44
44
  return __awaiter(this, void 0, void 0, function* () {
45
- const isAppOnlyAuth = accessToken_1.accessToken.isAppOnlyAccessToken(Auth_1.default.service.accessTokens[this.resource].accessToken);
46
- if (isAppOnlyAuth && !args.options.userId && !args.options.userName && !args.options.email) {
45
+ const isAppOnlyAccessToken = accessToken_1.accessToken.isAppOnlyAccessToken(Auth_1.default.service.accessTokens[this.resource].accessToken);
46
+ if (isAppOnlyAccessToken && !args.options.userId && !args.options.userName && !args.options.email) {
47
47
  this.handleError(`The option 'userId', 'userName' or 'email' is required when retrieving meeting attendance report using app only permissions`);
48
48
  }
49
- else if (!isAppOnlyAuth && (args.options.userId || args.options.userName || args.options.email)) {
49
+ else if (!isAppOnlyAccessToken && (args.options.userId || args.options.userName || args.options.email)) {
50
50
  this.handleError(`The options 'userId', 'userName' and 'email' cannot be used when retrieving meeting attendance reports using delegated permissions`);
51
51
  }
52
52
  try {
53
53
  if (this.verbose) {
54
- logger.logToStderr(`Retrieving attendance report for ${isAppOnlyAuth ? 'specific user' : 'currently logged in user'}`);
54
+ logger.logToStderr(`Retrieving attendance report for ${isAppOnlyAccessToken ? 'specific user' : 'currently logged in user'}`);
55
55
  }
56
56
  let requestUrl = `${this.resource}/v1.0/`;
57
- if (isAppOnlyAuth) {
57
+ if (isAppOnlyAccessToken) {
58
58
  requestUrl += 'users/';
59
59
  if (args.options.userId) {
60
60
  requestUrl += args.options.userId;
@@ -53,23 +53,23 @@ class TeamsMeetingGetCommand extends GraphCommand_1.default {
53
53
  }
54
54
  commandAction(logger, args) {
55
55
  return __awaiter(this, void 0, void 0, function* () {
56
- const isAppOnlyAuth = accessToken_1.accessToken.isAppOnlyAccessToken(Auth_1.default.service.accessTokens[this.resource].accessToken);
57
- if (isAppOnlyAuth) {
56
+ const isAppOnlyAccessToken = accessToken_1.accessToken.isAppOnlyAccessToken(Auth_1.default.service.accessTokens[this.resource].accessToken);
57
+ if (isAppOnlyAccessToken) {
58
58
  if (!args.options.userId && !args.options.userName && !args.options.email) {
59
59
  this.handleError(`The option 'userId', 'userName' or 'email' is required when retrieving meetings using app only permissions`);
60
60
  }
61
61
  }
62
62
  else {
63
- if (!isAppOnlyAuth && (args.options.userId || args.options.userName || args.options.email)) {
63
+ if (!isAppOnlyAccessToken && (args.options.userId || args.options.userName || args.options.email)) {
64
64
  this.handleError(`The options 'userId', 'userName' and 'email' cannot be used when retrieving meetings using delegated permissions`);
65
65
  }
66
66
  }
67
67
  if (this.verbose) {
68
- logger.logToStderr(`Retrieving meeting for ${isAppOnlyAuth ? 'specific user' : 'currently logged in user'}`);
68
+ logger.logToStderr(`Retrieving meeting for ${isAppOnlyAccessToken ? 'specific user' : 'currently logged in user'}`);
69
69
  }
70
70
  try {
71
71
  let requestUrl = `${this.resource}/v1.0/`;
72
- if (isAppOnlyAuth) {
72
+ if (isAppOnlyAccessToken) {
73
73
  requestUrl += 'users/';
74
74
  if (args.options.userId) {
75
75
  requestUrl += args.options.userId;
@@ -22,6 +22,7 @@ const commands_1 = require("../../commands");
22
22
  const odata_1 = require("../../../../utils/odata");
23
23
  const validation_1 = require("../../../../utils/validation");
24
24
  const AadUserGetCommand = require("../../../aad/commands/user/user-get");
25
+ const accessToken_1 = require("../../../../utils/accessToken");
25
26
  class TeamsMeetingListCommand extends GraphCommand_1.default {
26
27
  get name() {
27
28
  return commands_1.default.MEETING_LIST;
@@ -42,12 +43,12 @@ class TeamsMeetingListCommand extends GraphCommand_1.default {
42
43
  commandAction(logger, args) {
43
44
  return __awaiter(this, void 0, void 0, function* () {
44
45
  try {
45
- const isAppOnlyAuth = Auth_1.Auth.isAppOnlyAuth(Auth_1.default.service.accessTokens[this.resource].accessToken);
46
+ const isAppOnlyAccessToken = accessToken_1.accessToken.isAppOnlyAccessToken(Auth_1.default.service.accessTokens[this.resource].accessToken);
46
47
  if (this.verbose) {
47
- logger.logToStderr(`Retrieving meetings for ${isAppOnlyAuth ? 'specific user' : 'currently logged in user'}`);
48
+ logger.logToStderr(`Retrieving meetings for ${isAppOnlyAccessToken ? 'specific user' : 'currently logged in user'}`);
48
49
  }
49
50
  let requestUrl = `${this.resource}/v1.0/`;
50
- if (isAppOnlyAuth) {
51
+ if (isAppOnlyAccessToken) {
51
52
  if (!args.options.userId && !args.options.userName && !args.options.email) {
52
53
  throw `The option 'userId', 'userName' or 'email' is required when retrieving meetings using app only permissions`;
53
54
  }