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

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 (142) hide show
  1. package/.eslintrc.js +8 -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/aad/commands/user/user-recyclebinitem-clear.js +103 -0
  6. package/dist/m365/aad/commands.js +1 -0
  7. package/dist/m365/base/O365MgmtCommand.js +10 -0
  8. package/dist/m365/context/commands/option/option-list.js +54 -0
  9. package/dist/m365/context/commands.js +1 -0
  10. package/dist/m365/graph/commands/changelog/changelog-list.js +3 -2
  11. package/dist/m365/onenote/commands/notebook/notebook-list.js +51 -40
  12. package/dist/m365/pa/commands/environment/environment-get.js +13 -5
  13. package/dist/m365/planner/commands/plan/plan-get.js +40 -26
  14. package/dist/m365/planner/commands/plan/plan-list.js +24 -14
  15. package/dist/m365/planner/commands/plan/plan-set.js +21 -10
  16. package/dist/m365/planner/commands/roster/roster-get.js +61 -0
  17. package/dist/m365/planner/commands/roster/roster-member-add.js +113 -0
  18. package/dist/m365/planner/commands/roster/roster-member-list.js +54 -0
  19. package/dist/m365/planner/commands/roster/roster-member-remove.js +140 -0
  20. package/dist/m365/planner/commands/task/task-add.js +3 -0
  21. package/dist/m365/planner/commands/task/task-checklistitem-add.js +2 -1
  22. package/dist/m365/planner/commands/task/task-checklistitem-list.js +2 -1
  23. package/dist/m365/planner/commands.js +4 -0
  24. package/dist/m365/pp/commands/solution/solution-get.js +2 -1
  25. package/dist/m365/pp/commands/solution/solution-list.js +2 -1
  26. package/dist/m365/purview/commands/auditlog/auditlog-list.js +205 -0
  27. package/dist/m365/purview/commands/retentionevent/retentionevent-get.js +75 -0
  28. package/dist/m365/purview/commands/retentionevent/retentionevent-list.js +46 -0
  29. package/dist/m365/purview/commands/retentionevent/retentionevent-remove.js +97 -0
  30. package/dist/m365/purview/commands/retentioneventtype/retentioneventtype-add.js +77 -0
  31. package/dist/m365/purview/commands/retentioneventtype/retentioneventtype-get.js +13 -8
  32. package/dist/m365/purview/commands/retentioneventtype/retentioneventtype-list.js +43 -0
  33. package/dist/m365/purview/commands/retentioneventtype/retentioneventtype-remove.js +97 -0
  34. package/dist/m365/purview/commands/retentioneventtype/retentioneventtype-set.js +90 -0
  35. package/dist/m365/purview/commands/retentionlabel/retentionlabel-add.js +5 -0
  36. package/dist/m365/purview/commands/retentionlabel/retentionlabel-get.js +5 -0
  37. package/dist/m365/purview/commands/retentionlabel/retentionlabel-list.js +5 -0
  38. package/dist/m365/purview/commands/retentionlabel/retentionlabel-remove.js +5 -0
  39. package/dist/m365/purview/commands/retentionlabel/retentionlabel-set.js +11 -1
  40. package/dist/m365/purview/commands.js +8 -0
  41. package/dist/m365/spo/commands/app/app-add.js +2 -1
  42. package/dist/m365/spo/commands/applicationcustomizer/applicationcustomizer-add.js +95 -0
  43. package/dist/m365/spo/commands/customaction/customaction-get.js +17 -66
  44. package/dist/m365/spo/commands/customaction/customaction-list.js +2 -36
  45. package/dist/m365/spo/commands/customaction/customaction-remove.js +11 -18
  46. package/dist/m365/spo/commands/file/GraphFileDetails.js +0 -1
  47. package/dist/m365/spo/commands/file/file-sharinginfo-get.js +2 -1
  48. package/dist/m365/spo/commands/file/file-sharinglink-add.js +2 -22
  49. package/dist/m365/spo/commands/file/file-sharinglink-clear.js +137 -0
  50. package/dist/m365/spo/commands/file/file-sharinglink-get.js +2 -25
  51. package/dist/m365/spo/commands/file/file-sharinglink-list.js +9 -29
  52. package/dist/m365/spo/commands/file/file-sharinglink-remove.js +2 -25
  53. package/dist/m365/spo/commands/file/file-sharinglink-set.js +104 -0
  54. package/dist/m365/spo/commands/group/group-list.js +2 -1
  55. package/dist/m365/spo/commands/hubsite/hubsite-get.js +1 -1
  56. package/dist/m365/spo/commands/listitem/listitem-add.js +2 -1
  57. package/dist/m365/spo/commands/listitem/listitem-list.js +2 -1
  58. package/dist/m365/spo/commands/navigation/navigation-node-get.js +73 -0
  59. package/dist/m365/spo/commands/page/page-column-get.js +2 -1
  60. package/dist/m365/spo/commands/page/page-column-list.js +2 -1
  61. package/dist/m365/spo/commands/page/page-section-get.js +2 -1
  62. package/dist/m365/spo/commands/page/page-section-list.js +2 -1
  63. package/dist/m365/spo/commands/sitedesign/sitedesign-add.js +6 -0
  64. package/dist/m365/spo/commands/spo-search.js +2 -1
  65. package/dist/m365/spo/commands/tenant/tenant-applicationcustomizer-add.js +179 -0
  66. package/dist/m365/spo/commands/term/term-list.js +2 -1
  67. package/dist/m365/spo/commands/userprofile/userprofile-get.js +2 -2
  68. package/dist/m365/spo/commands.js +5 -0
  69. package/dist/m365/teams/commands/meeting/meeting-list.js +1 -1
  70. package/dist/m365/teams/commands/team/team-app-list.js +1 -1
  71. package/dist/m365/teams/commands/user/user-app-list.js +2 -1
  72. package/dist/m365/todo/commands/task/task-get.js +2 -1
  73. package/dist/m365/todo/commands/task/task-list.js +2 -1
  74. package/dist/m365/yammer/commands/yammer-search.js +2 -1
  75. package/dist/utils/aadUser.js +38 -0
  76. package/dist/utils/planner.js +13 -2
  77. package/dist/utils/spo.js +89 -0
  78. package/docs/docs/cmd/aad/user/user-recyclebinitem-clear.md +42 -0
  79. package/docs/docs/cmd/context/option/option-list.md +63 -0
  80. package/docs/docs/cmd/login.md +26 -0
  81. package/docs/docs/cmd/logout.md +4 -0
  82. package/docs/docs/cmd/pa/app/app-get.md +24 -0
  83. package/docs/docs/cmd/pa/app/app-list.md +21 -0
  84. package/docs/docs/cmd/pa/connector/connector-list.md +17 -0
  85. package/docs/docs/cmd/pa/environment/environment-get.md +26 -2
  86. package/docs/docs/cmd/pa/environment/environment-list.md +19 -0
  87. package/docs/docs/cmd/planner/plan/plan-get.md +21 -7
  88. package/docs/docs/cmd/planner/plan/plan-list.md +16 -2
  89. package/docs/docs/cmd/planner/plan/plan-set.md +10 -4
  90. package/docs/docs/cmd/planner/roster/roster-get.md +73 -0
  91. package/docs/docs/cmd/planner/roster/roster-member-add.md +87 -0
  92. package/docs/docs/cmd/planner/roster/roster-member-list.md +76 -0
  93. package/docs/docs/cmd/planner/roster/roster-member-remove.md +51 -0
  94. package/docs/docs/cmd/pp/aibuildermodel/aibuildermodel-get.md +43 -0
  95. package/docs/docs/cmd/pp/aibuildermodel/aibuildermodel-list.md +43 -0
  96. package/docs/docs/cmd/pp/card/card-clone.md +12 -0
  97. package/docs/docs/cmd/pp/card/card-get.md +49 -0
  98. package/docs/docs/cmd/pp/card/card-list.md +49 -0
  99. package/docs/docs/cmd/pp/chatbot/chatbot-get.md +55 -0
  100. package/docs/docs/cmd/pp/chatbot/chatbot-list.md +36 -0
  101. package/docs/docs/cmd/pp/dataverse/dataverse-table-get.md +30 -0
  102. package/docs/docs/cmd/pp/dataverse/dataverse-table-list.md +30 -0
  103. package/docs/docs/cmd/pp/dataverse/dataverse-table-row-list.md +30 -0
  104. package/docs/docs/cmd/pp/environment/environment-get.md +19 -0
  105. package/docs/docs/cmd/pp/environment/environment-list.md +19 -0
  106. package/docs/docs/cmd/pp/gateway/gateway-get.md +19 -0
  107. package/docs/docs/cmd/pp/gateway/gateway-list.md +19 -0
  108. package/docs/docs/cmd/pp/managementapp/managementapp-add.md +12 -0
  109. package/docs/docs/cmd/pp/managementapp/managementapp-list.md +12 -0
  110. package/docs/docs/cmd/pp/solution/solution-get.md +14 -0
  111. package/docs/docs/cmd/pp/solution/solution-list.md +14 -0
  112. package/docs/docs/cmd/pp/solution/solution-publisher-get.md +20 -1
  113. package/docs/docs/cmd/pp/solution/solution-publisher-list.md +18 -0
  114. package/docs/docs/cmd/pp/tenant/tenant-settings-list.md +21 -0
  115. package/docs/docs/cmd/purview/auditlog/auditlog-list.md +123 -0
  116. package/docs/docs/cmd/purview/retentionevent/retentionevent-get.md +132 -0
  117. package/docs/docs/cmd/purview/retentionevent/retentionevent-list.md +107 -0
  118. package/docs/docs/cmd/purview/retentionevent/retentionevent-remove.md +45 -0
  119. package/docs/docs/cmd/purview/retentioneventtype/retentioneventtype-add.md +106 -0
  120. package/docs/docs/cmd/purview/retentioneventtype/retentioneventtype-get.md +3 -0
  121. package/docs/docs/cmd/purview/retentioneventtype/retentioneventtype-list.md +97 -0
  122. package/docs/docs/cmd/purview/retentioneventtype/retentioneventtype-remove.md +43 -0
  123. package/docs/docs/cmd/purview/retentioneventtype/retentioneventtype-set.md +43 -0
  124. package/docs/docs/cmd/purview/retentionlabel/retentionlabel-add.md +3 -0
  125. package/docs/docs/cmd/purview/retentionlabel/retentionlabel-get.md +3 -0
  126. package/docs/docs/cmd/purview/retentionlabel/retentionlabel-list.md +3 -0
  127. package/docs/docs/cmd/purview/retentionlabel/retentionlabel-remove.md +3 -0
  128. package/docs/docs/cmd/purview/retentionlabel/retentionlabel-set.md +3 -0
  129. package/docs/docs/cmd/request.md +74 -0
  130. package/docs/docs/cmd/spo/applicationcustomizer/applicationcustomizer-add.md +56 -0
  131. package/docs/docs/cmd/spo/file/file-sharinglink-clear.md +46 -0
  132. package/docs/docs/cmd/spo/file/file-sharinglink-list.md +1 -1
  133. package/docs/docs/cmd/spo/file/file-sharinglink-set.md +104 -0
  134. package/docs/docs/cmd/spo/navigation/navigation-node-add.md +1 -1
  135. package/docs/docs/cmd/spo/navigation/navigation-node-get.md +91 -0
  136. package/docs/docs/cmd/spo/navigation/navigation-node-set.md +1 -1
  137. package/docs/docs/cmd/spo/sitedesign/sitedesign-add.md +3 -0
  138. package/docs/docs/cmd/spo/tenant/tenant-applicationcustomizer-add.md +59 -0
  139. package/docs/docs/cmd/status.md +46 -0
  140. package/docs/docs/cmd/version.md +26 -0
  141. package/npm-shrinkwrap.json +911 -876
  142. package/package.json +12 -12
package/.eslintrc.js CHANGED
@@ -7,9 +7,11 @@ const dictionary = [
7
7
  'adaptive',
8
8
  'ai',
9
9
  'app',
10
+ 'application',
10
11
  'apply',
11
12
  'approve',
12
13
  'assets',
14
+ 'audit',
13
15
  'bin',
14
16
  'builder',
15
17
  'catalog',
@@ -19,8 +21,11 @@ const dictionary = [
19
21
  'content',
20
22
  'conversation',
21
23
  'custom',
24
+ 'customizer',
22
25
  'dataverse',
23
26
  'default',
27
+ 'event',
28
+ 'eventreceiver',
24
29
  'external',
25
30
  'externalize',
26
31
  'fun',
@@ -43,6 +48,9 @@ const dictionary = [
43
48
  'label',
44
49
  'list',
45
50
  'link',
51
+ 'log',
52
+ 'login',
53
+ 'logout',
46
54
  'management',
47
55
  'member',
48
56
  'messaging',
package/dist/Command.js CHANGED
@@ -481,7 +481,18 @@ class Command {
481
481
  if (!l) {
482
482
  return;
483
483
  }
484
- output.push(`## ${this.getLogItemTitle(l)} (${this.getLogItemId(l)})`, os.EOL, os.EOL, `Property | Value`, os.EOL, `---------|-------`, os.EOL);
484
+ const title = this.getLogItemTitle(l);
485
+ const id = this.getLogItemId(l);
486
+ if (title && id) {
487
+ output.push(`## ${title} (${id})`, os.EOL, os.EOL);
488
+ }
489
+ else if (title) {
490
+ output.push(`## ${title}`, os.EOL, os.EOL);
491
+ }
492
+ else if (id) {
493
+ output.push(`## ${id}`, os.EOL, os.EOL);
494
+ }
495
+ output.push(`Property | Value`, os.EOL, `---------|-------`, os.EOL);
485
496
  output.push(Object.keys(l).map(k => {
486
497
  const value = l[k];
487
498
  let stringValue = value;
package/dist/cli/Cli.js CHANGED
@@ -458,7 +458,7 @@ class Cli {
458
458
  // data so that returned objects contain only default properties specified
459
459
  // on the current command. If there is no current command or the
460
460
  // command doesn't specify default properties, return original data
461
- if (options.output === 'text' || options.output === 'csv') {
461
+ if (this.shouldTrimOutput(options.output)) {
462
462
  const cli = Cli.getInstance();
463
463
  const currentCommand = cli.commandToExecute;
464
464
  if (arrayType === 'object' &&
@@ -753,6 +753,9 @@ class Cli {
753
753
  }
754
754
  });
755
755
  }
756
+ static shouldTrimOutput(output) {
757
+ return output === 'text' || output === 'csv';
758
+ }
756
759
  }
757
760
  exports.Cli = Cli;
758
761
  Cli.defaultHelpMode = 'full';
@@ -15,6 +15,7 @@ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (
15
15
  };
16
16
  var _AadGroupListCommand_instances, _AadGroupListCommand_initTelemetry, _AadGroupListCommand_initOptions;
17
17
  Object.defineProperty(exports, "__esModule", { value: true });
18
+ const Cli_1 = require("../../../../cli/Cli");
18
19
  const odata_1 = require("../../../../utils/odata");
19
20
  const GraphCommand_1 = require("../../../base/GraphCommand");
20
21
  const commands_1 = require("../../commands");
@@ -39,7 +40,7 @@ class AadGroupListCommand extends GraphCommand_1.default {
39
40
  const endpoint = args.options.deleted ? 'directory/deletedItems/microsoft.graph.group' : 'groups';
40
41
  try {
41
42
  const groups = yield odata_1.odata.getAllItems(`${this.resource}/v1.0/${endpoint}`);
42
- if (args.options.output === 'text') {
43
+ if (Cli_1.Cli.shouldTrimOutput(args.options.output)) {
43
44
  groups.forEach((group) => {
44
45
  if (group.groupTypes && group.groupTypes.length > 0 && group.groupTypes[0] === 'Unified') {
45
46
  group.groupType = 'Microsoft 365';
@@ -0,0 +1,103 @@
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 _AadUserRecycleBinItemClearCommand_instances, _AadUserRecycleBinItemClearCommand_initTelemetry, _AadUserRecycleBinItemClearCommand_initOptions;
17
+ Object.defineProperty(exports, "__esModule", { value: true });
18
+ const Cli_1 = require("../../../../cli/Cli");
19
+ const request_1 = require("../../../../request");
20
+ const odata_1 = require("../../../../utils/odata");
21
+ const GraphCommand_1 = require("../../../base/GraphCommand");
22
+ const commands_1 = require("../../commands");
23
+ class AadUserRecycleBinItemClearCommand extends GraphCommand_1.default {
24
+ get name() {
25
+ return commands_1.default.USER_RECYCLEBINITEM_CLEAR;
26
+ }
27
+ get description() {
28
+ return 'Removes all users from the tenant recycle bin';
29
+ }
30
+ constructor() {
31
+ super();
32
+ _AadUserRecycleBinItemClearCommand_instances.add(this);
33
+ __classPrivateFieldGet(this, _AadUserRecycleBinItemClearCommand_instances, "m", _AadUserRecycleBinItemClearCommand_initTelemetry).call(this);
34
+ __classPrivateFieldGet(this, _AadUserRecycleBinItemClearCommand_instances, "m", _AadUserRecycleBinItemClearCommand_initOptions).call(this);
35
+ }
36
+ commandAction(logger, args) {
37
+ return __awaiter(this, void 0, void 0, function* () {
38
+ const clearRecycleBinUsers = () => __awaiter(this, void 0, void 0, function* () {
39
+ try {
40
+ const users = yield odata_1.odata.getAllItems(`${this.resource}/v1.0/directory/deletedItems/microsoft.graph.user?$select=id`);
41
+ if (this.verbose) {
42
+ logger.logToStderr(`Amount of users to permanently delete: ${users.length}`);
43
+ }
44
+ const batchRequests = users.map((user, index) => {
45
+ return {
46
+ id: index,
47
+ method: 'DELETE',
48
+ url: `/directory/deletedItems/${user.id}`
49
+ };
50
+ });
51
+ for (let i = 0; i < batchRequests.length; i += 20) {
52
+ const batchRequestChunk = batchRequests.slice(i, i + 20);
53
+ if (this.verbose) {
54
+ logger.logToStderr(`Deleting users: ${i + batchRequestChunk.length}/${users.length}`);
55
+ }
56
+ const requestOptions = {
57
+ url: 'https://graph.microsoft.com/v1.0/$batch',
58
+ headers: {
59
+ accept: 'application/json',
60
+ 'content-type': 'application/json'
61
+ },
62
+ responseType: 'json',
63
+ data: {
64
+ requests: batchRequestChunk
65
+ }
66
+ };
67
+ yield request_1.default.post(requestOptions);
68
+ }
69
+ }
70
+ catch (err) {
71
+ this.handleRejectedODataJsonPromise(err);
72
+ }
73
+ });
74
+ if (args.options.confirm) {
75
+ yield clearRecycleBinUsers();
76
+ }
77
+ else {
78
+ const result = yield Cli_1.Cli.prompt({
79
+ type: 'confirm',
80
+ name: 'continue',
81
+ default: false,
82
+ message: 'Are you sure you want to permanently delete all deleted users?'
83
+ });
84
+ if (result.continue) {
85
+ yield clearRecycleBinUsers();
86
+ }
87
+ }
88
+ });
89
+ }
90
+ }
91
+ _AadUserRecycleBinItemClearCommand_instances = new WeakSet(), _AadUserRecycleBinItemClearCommand_initTelemetry = function _AadUserRecycleBinItemClearCommand_initTelemetry() {
92
+ this.telemetry.push((args) => {
93
+ Object.assign(this.telemetryProperties, {
94
+ confirm: !!args.options.confirm
95
+ });
96
+ });
97
+ }, _AadUserRecycleBinItemClearCommand_initOptions = function _AadUserRecycleBinItemClearCommand_initOptions() {
98
+ this.options.unshift({
99
+ option: '--confirm'
100
+ });
101
+ };
102
+ module.exports = new AadUserRecycleBinItemClearCommand();
103
+ //# sourceMappingURL=user-recyclebinitem-clear.js.map
@@ -60,6 +60,7 @@ exports.default = {
60
60
  USER_HIBP: `${prefix} user hibp`,
61
61
  USER_LIST: `${prefix} user list`,
62
62
  USER_PASSWORD_VALIDATE: `${prefix} user password validate`,
63
+ USER_RECYCLEBINITEM_CLEAR: `${prefix} user recyclebinitem clear`,
63
64
  USER_SET: `${prefix} user set`,
64
65
  USER_SIGNIN_LIST: `${prefix} user signin list`
65
66
  };
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const Command_1 = require("../../Command");
4
+ class O365MgmtCommand extends Command_1.default {
5
+ get resource() {
6
+ return 'https://manage.office.com';
7
+ }
8
+ }
9
+ exports.default = O365MgmtCommand;
10
+ //# sourceMappingURL=O365MgmtCommand.js.map
@@ -0,0 +1,54 @@
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 fs = require("fs");
13
+ const Command_1 = require("../../../../Command");
14
+ const ContextCommand_1 = require("../../../base/ContextCommand");
15
+ const commands_1 = require("../../commands");
16
+ class ContextOptionListCommand extends ContextCommand_1.default {
17
+ get name() {
18
+ return commands_1.default.OPTION_LIST;
19
+ }
20
+ get description() {
21
+ return 'List all options added to the context';
22
+ }
23
+ commandAction(logger) {
24
+ return __awaiter(this, void 0, void 0, function* () {
25
+ if (this.verbose) {
26
+ logger.logToStderr(`Retrieving context options...`);
27
+ }
28
+ const filePath = '.m365rc.json';
29
+ let m365rc = {};
30
+ if (fs.existsSync(filePath)) {
31
+ try {
32
+ if (this.verbose) {
33
+ logger.logToStderr(`Reading context file...`);
34
+ }
35
+ const fileContents = fs.readFileSync(filePath, 'utf8');
36
+ if (fileContents) {
37
+ m365rc = JSON.parse(fileContents);
38
+ }
39
+ }
40
+ catch (e) {
41
+ throw new Command_1.CommandError(`Error reading ${filePath}: ${e}. Please retrieve context options from ${filePath} manually.`);
42
+ }
43
+ }
44
+ if (!m365rc.context) {
45
+ throw new Command_1.CommandError(`No context present`);
46
+ }
47
+ else {
48
+ logger.log(m365rc.context);
49
+ }
50
+ });
51
+ }
52
+ }
53
+ module.exports = new ContextOptionListCommand();
54
+ //# sourceMappingURL=option-list.js.map
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const prefix = 'context';
4
4
  exports.default = {
5
5
  INIT: `${prefix} init`,
6
+ OPTION_LIST: `${prefix} option list`,
6
7
  OPTION_REMOVE: `${prefix} option remove`,
7
8
  OPTION_SET: `${prefix} option set`,
8
9
  REMOVE: `${prefix} remove`
@@ -21,6 +21,7 @@ const AnonymousCommand_1 = require("../../../base/AnonymousCommand");
21
21
  const commands_1 = require("../../commands");
22
22
  const request_1 = require("../../../../request");
23
23
  const xmldom_1 = require("@xmldom/xmldom");
24
+ const Cli_1 = require("../../../../cli/Cli");
24
25
  class GraphChangelogListCommand extends AnonymousCommand_1.default {
25
26
  get name() {
26
27
  return commands_1.default.CHANGELOG_LIST;
@@ -106,14 +107,14 @@ class GraphChangelogListCommand extends AnonymousCommand_1.default {
106
107
  items: []
107
108
  };
108
109
  Array.from(xmlDoc.getElementsByTagName('item')).forEach((item) => {
109
- const description = args.options.output === 'text' ?
110
+ const description = Cli_1.Cli.shouldTrimOutput(args.options.output) ?
110
111
  md_1.md.md2plain(item.getElementsByTagName('description').item(0).textContent, '') :
111
112
  item.getElementsByTagName('description').item(0).textContent;
112
113
  changelog.items.push({
113
114
  guid: item.getElementsByTagName('guid').item(0).textContent,
114
115
  category: item.getElementsByTagName('category').item(1).textContent,
115
116
  title: item.getElementsByTagName('title').item(0).textContent,
116
- description: args.options.output === 'text' ?
117
+ description: Cli_1.Cli.shouldTrimOutput(args.options.output) ?
117
118
  description.length > 50 ? `${description.substring(0, 47)}...` : description :
118
119
  description,
119
120
  pubDate: new Date(item.getElementsByTagName('pubDate').item(0).textContent)
@@ -13,14 +13,14 @@ 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 _OneNoteNotebookListCommand_instances, _OneNoteNotebookListCommand_initTelemetry, _OneNoteNotebookListCommand_initOptions, _OneNoteNotebookListCommand_initValidators;
16
+ var _OneNoteNotebookListCommand_instances, _OneNoteNotebookListCommand_initTelemetry, _OneNoteNotebookListCommand_initOptions, _OneNoteNotebookListCommand_initValidators, _OneNoteNotebookListCommand_initOptionSets;
17
17
  Object.defineProperty(exports, "__esModule", { value: true });
18
+ const request_1 = require("../../../../request");
18
19
  const odata_1 = require("../../../../utils/odata");
19
20
  const validation_1 = require("../../../../utils/validation");
20
21
  const aadGroup_1 = require("../../../../utils/aadGroup");
21
22
  const GraphCommand_1 = require("../../../base/GraphCommand");
22
23
  const commands_1 = require("../../commands");
23
- const spo_1 = require("../../../../utils/spo");
24
24
  class OneNoteNotebookListCommand extends GraphCommand_1.default {
25
25
  get name() {
26
26
  return commands_1.default.NOTEBOOK_LIST;
@@ -28,61 +28,63 @@ class OneNoteNotebookListCommand extends GraphCommand_1.default {
28
28
  get description() {
29
29
  return 'Retrieve a list of notebooks';
30
30
  }
31
+ defaultProperties() {
32
+ return ['createdDateTime', 'displayName', 'id'];
33
+ }
31
34
  constructor() {
32
35
  super();
33
36
  _OneNoteNotebookListCommand_instances.add(this);
34
37
  __classPrivateFieldGet(this, _OneNoteNotebookListCommand_instances, "m", _OneNoteNotebookListCommand_initTelemetry).call(this);
35
38
  __classPrivateFieldGet(this, _OneNoteNotebookListCommand_instances, "m", _OneNoteNotebookListCommand_initOptions).call(this);
36
39
  __classPrivateFieldGet(this, _OneNoteNotebookListCommand_instances, "m", _OneNoteNotebookListCommand_initValidators).call(this);
40
+ __classPrivateFieldGet(this, _OneNoteNotebookListCommand_instances, "m", _OneNoteNotebookListCommand_initOptionSets).call(this);
37
41
  }
38
42
  getEndpointUrl(args) {
39
- return new Promise((resolve, reject) => {
40
- let endpoint = `${this.resource}/v1.0/me/onenote/notebooks`;
43
+ return __awaiter(this, void 0, void 0, function* () {
44
+ let endpoint = `${this.resource}/v1.0/`;
41
45
  if (args.options.userId) {
42
- endpoint = `${this.resource}/v1.0/users/${args.options.userId}/onenote/notebooks`;
43
- return resolve(endpoint);
46
+ endpoint += `users/${args.options.userId}`;
44
47
  }
45
48
  else if (args.options.userName) {
46
- endpoint = `${this.resource}/v1.0/users/${args.options.userName}/onenote/notebooks`;
47
- return resolve(endpoint);
49
+ endpoint += `users/${args.options.userName}`;
48
50
  }
49
51
  else if (args.options.groupId) {
50
- endpoint = `${this.resource}/v1.0/groups/${args.options.groupId}/onenote/notebooks`;
51
- return resolve(endpoint);
52
+ endpoint += `groups/${args.options.groupId}`;
52
53
  }
53
54
  else if (args.options.groupName) {
54
- this
55
- .getGroupId(args)
56
- .then((retrievedgroupId) => {
57
- endpoint = `${this.resource}/v1.0/groups/${retrievedgroupId}/onenote/notebooks`;
58
- return resolve(endpoint);
59
- })
60
- .catch((err) => {
61
- reject(err);
62
- });
55
+ const groupId = yield this.getGroupId(args.options.groupName);
56
+ endpoint += `groups/${groupId}`;
63
57
  }
64
58
  else if (args.options.webUrl) {
65
- spo_1.spo.getSpoGraphSiteId(args.options.webUrl)
66
- .then((siteId) => {
67
- endpoint = `${this.resource}/v1.0/sites/${siteId}/onenote/notebooks`;
68
- return resolve(endpoint);
69
- })
70
- .catch((err) => {
71
- reject(err);
72
- });
59
+ const siteId = yield this.getSpoSiteId(args.options.webUrl);
60
+ endpoint += `sites/${siteId}`;
73
61
  }
74
62
  else {
75
- return resolve(endpoint);
63
+ endpoint += 'me';
76
64
  }
65
+ endpoint += '/onenote/notebooks';
66
+ return endpoint;
77
67
  });
78
68
  }
79
- defaultProperties() {
80
- return ['createdDateTime', 'displayName', 'id'];
69
+ getGroupId(groupName) {
70
+ return __awaiter(this, void 0, void 0, function* () {
71
+ const group = yield aadGroup_1.aadGroup.getGroupByDisplayName(groupName);
72
+ return group.id;
73
+ });
81
74
  }
82
- getGroupId(args) {
83
- return aadGroup_1.aadGroup
84
- .getGroupByDisplayName(args.options.groupName)
85
- .then(group => group.id);
75
+ getSpoSiteId(webUrl) {
76
+ return __awaiter(this, void 0, void 0, function* () {
77
+ const url = new URL(webUrl);
78
+ const requestOptions = {
79
+ url: `${this.resource}/v1.0/sites/${url.hostname}:${url.pathname}`,
80
+ headers: {
81
+ accept: 'application/json;odata.metadata=none'
82
+ },
83
+ responseType: 'json'
84
+ };
85
+ const site = yield request_1.default.get(requestOptions);
86
+ return site.id;
87
+ });
86
88
  }
87
89
  commandAction(logger, args) {
88
90
  return __awaiter(this, void 0, void 0, function* () {
@@ -100,7 +102,11 @@ class OneNoteNotebookListCommand extends GraphCommand_1.default {
100
102
  _OneNoteNotebookListCommand_instances = new WeakSet(), _OneNoteNotebookListCommand_initTelemetry = function _OneNoteNotebookListCommand_initTelemetry() {
101
103
  this.telemetry.push((args) => {
102
104
  Object.assign(this.telemetryProperties, {
103
- joined: args.options.joined
105
+ userId: typeof args.options.userId !== 'undefined',
106
+ userName: typeof args.options.userName !== 'undefined',
107
+ groupId: typeof args.options.groupId !== 'undefined',
108
+ groupName: typeof args.options.groupName !== 'undefined',
109
+ webUrl: typeof args.options.webUrl !== 'undefined'
104
110
  });
105
111
  });
106
112
  }, _OneNoteNotebookListCommand_initOptions = function _OneNoteNotebookListCommand_initOptions() {
@@ -113,14 +119,19 @@ _OneNoteNotebookListCommand_instances = new WeakSet(), _OneNoteNotebookListComma
113
119
  if (args.options.groupId && !validation_1.validation.isValidGuid(args.options.groupId)) {
114
120
  return `${args.options.groupId} is not a valid GUID`;
115
121
  }
116
- if (args.options.userId && args.options.userName) {
117
- return 'Specify either userId or userName, but not both';
118
- }
119
- if (args.options.groupId && args.options.groupName) {
120
- return 'Specify either groupId or groupName, but not both';
122
+ if (args.options.webUrl) {
123
+ return validation_1.validation.isValidSharePointUrl(args.options.webUrl);
121
124
  }
122
125
  return true;
123
126
  }));
127
+ }, _OneNoteNotebookListCommand_initOptionSets = function _OneNoteNotebookListCommand_initOptionSets() {
128
+ this.optionSets.push({
129
+ options: ['userId', 'userName', 'groupId', 'groupName', 'webUrl'],
130
+ runsWhen: (args) => {
131
+ const options = [args.options.userId, args.options.userName, args.options.groupId, args.options.groupName, args.options.webUrl];
132
+ return options.some(item => item !== undefined);
133
+ }
134
+ });
124
135
  };
125
136
  module.exports = new OneNoteNotebookListCommand();
126
137
  //# sourceMappingURL=notebook-list.js.map
@@ -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 _PaEnvironmentGetCommand_instances, _PaEnvironmentGetCommand_initOptions;
16
+ var _PaEnvironmentGetCommand_instances, _PaEnvironmentGetCommand_initTelemetry, _PaEnvironmentGetCommand_initOptions;
17
17
  Object.defineProperty(exports, "__esModule", { value: true });
18
18
  const request_1 = require("../../../../request");
19
19
  const formatting_1 = require("../../../../utils/formatting");
@@ -32,15 +32,17 @@ class PaEnvironmentGetCommand extends PowerAppsCommand_1.default {
32
32
  constructor() {
33
33
  super();
34
34
  _PaEnvironmentGetCommand_instances.add(this);
35
+ __classPrivateFieldGet(this, _PaEnvironmentGetCommand_instances, "m", _PaEnvironmentGetCommand_initTelemetry).call(this);
35
36
  __classPrivateFieldGet(this, _PaEnvironmentGetCommand_instances, "m", _PaEnvironmentGetCommand_initOptions).call(this);
36
37
  }
37
38
  commandAction(logger, args) {
38
39
  return __awaiter(this, void 0, void 0, function* () {
39
40
  if (this.verbose) {
40
- logger.logToStderr(`Retrieving information about Microsoft Power Apps environment ${args.options.name}...`);
41
+ logger.logToStderr(`Retrieving information about Microsoft Power Apps environment ${args.options.name || 'default'}...`);
41
42
  }
43
+ const environmentName = args.options.name ? formatting_1.formatting.encodeQueryParameter(args.options.name) : '~default';
42
44
  const requestOptions = {
43
- url: `${this.resource}/providers/Microsoft.PowerApps/environments/${formatting_1.formatting.encodeQueryParameter(args.options.name)}?api-version=2016-11-01`,
45
+ url: `${this.resource}/providers/Microsoft.PowerApps/environments/${environmentName}?api-version=2016-11-01`,
44
46
  headers: {
45
47
  accept: 'application/json'
46
48
  },
@@ -61,9 +63,15 @@ class PaEnvironmentGetCommand extends PowerAppsCommand_1.default {
61
63
  });
62
64
  }
63
65
  }
64
- _PaEnvironmentGetCommand_instances = new WeakSet(), _PaEnvironmentGetCommand_initOptions = function _PaEnvironmentGetCommand_initOptions() {
66
+ _PaEnvironmentGetCommand_instances = new WeakSet(), _PaEnvironmentGetCommand_initTelemetry = function _PaEnvironmentGetCommand_initTelemetry() {
67
+ this.telemetry.push((args) => {
68
+ Object.assign(this.telemetryProperties, {
69
+ name: typeof args.options.name !== 'undefined'
70
+ });
71
+ });
72
+ }, _PaEnvironmentGetCommand_initOptions = function _PaEnvironmentGetCommand_initOptions() {
65
73
  this.options.unshift({
66
- option: '-n, --name <name>'
74
+ option: '-n, --name [name]'
67
75
  });
68
76
  };
69
77
  module.exports = new PaEnvironmentGetCommand();
@@ -48,8 +48,18 @@ class PlannerPlanGetCommand extends GraphCommand_1.default {
48
48
  logger.log(result);
49
49
  }
50
50
  else {
51
- const groupId = yield this.getGroupId(args);
52
- const plan = yield planner_1.planner.getPlanByTitle(args.options.title, groupId);
51
+ let plan = {};
52
+ if (args.options.rosterId) {
53
+ const plans = yield planner_1.planner.getPlansByRosterId(args.options.rosterId);
54
+ plan = plans[0];
55
+ }
56
+ else {
57
+ let groupId = undefined;
58
+ if (args.options.ownerGroupId || args.options.ownerGroupName) {
59
+ groupId = yield this.getGroupId(args);
60
+ }
61
+ plan = yield planner_1.planner.getPlanByTitle(args.options.title, groupId);
62
+ }
53
63
  const result = yield this.getPlanDetails(plan);
54
64
  if (result) {
55
65
  logger.log(result);
@@ -62,27 +72,27 @@ class PlannerPlanGetCommand extends GraphCommand_1.default {
62
72
  });
63
73
  }
64
74
  getPlanDetails(plan) {
65
- const requestOptionsTaskDetails = {
66
- url: `${this.resource}/v1.0/planner/plans/${plan.id}/details`,
67
- headers: {
68
- 'accept': 'application/json;odata.metadata=none',
69
- 'Prefer': 'return=representation'
70
- },
71
- responseType: 'json'
72
- };
73
- return request_1.default
74
- .get(requestOptionsTaskDetails)
75
- .then(planDetails => {
75
+ return __awaiter(this, void 0, void 0, function* () {
76
+ const requestOptionsTaskDetails = {
77
+ url: `${this.resource}/v1.0/planner/plans/${plan.id}/details`,
78
+ headers: {
79
+ 'accept': 'application/json;odata.metadata=none',
80
+ 'Prefer': 'return=representation'
81
+ },
82
+ responseType: 'json'
83
+ };
84
+ const planDetails = yield request_1.default.get(requestOptionsTaskDetails);
76
85
  return Object.assign(Object.assign({}, plan), planDetails);
77
86
  });
78
87
  }
79
88
  getGroupId(args) {
80
- if (args.options.ownerGroupId) {
81
- return Promise.resolve(args.options.ownerGroupId);
82
- }
83
- return aadGroup_1.aadGroup
84
- .getGroupByDisplayName(args.options.ownerGroupName)
85
- .then(group => group.id);
89
+ return __awaiter(this, void 0, void 0, function* () {
90
+ if (args.options.ownerGroupId) {
91
+ return args.options.ownerGroupId;
92
+ }
93
+ const group = yield aadGroup_1.aadGroup.getGroupByDisplayName(args.options.ownerGroupName);
94
+ return group.id;
95
+ });
86
96
  }
87
97
  }
88
98
  _PlannerPlanGetCommand_instances = new WeakSet(), _PlannerPlanGetCommand_initTelemetry = function _PlannerPlanGetCommand_initTelemetry() {
@@ -90,6 +100,7 @@ _PlannerPlanGetCommand_instances = new WeakSet(), _PlannerPlanGetCommand_initTel
90
100
  Object.assign(this.telemetryProperties, {
91
101
  id: typeof args.options.id !== 'undefined',
92
102
  title: typeof args.options.title !== 'undefined',
103
+ rosterId: typeof args.options.rosterId !== 'undefined',
93
104
  ownerGroupId: typeof args.options.ownerGroupId !== 'undefined',
94
105
  ownerGroupName: typeof args.options.ownerGroupName !== 'undefined'
95
106
  });
@@ -99,6 +110,8 @@ _PlannerPlanGetCommand_instances = new WeakSet(), _PlannerPlanGetCommand_initTel
99
110
  option: '-i, --id [id]'
100
111
  }, {
101
112
  option: '-t, --title [title]'
113
+ }, {
114
+ option: '--rosterId [rosterId]'
102
115
  }, {
103
116
  option: '--ownerGroupId [ownerGroupId]'
104
117
  }, {
@@ -106,19 +119,20 @@ _PlannerPlanGetCommand_instances = new WeakSet(), _PlannerPlanGetCommand_initTel
106
119
  });
107
120
  }, _PlannerPlanGetCommand_initValidators = function _PlannerPlanGetCommand_initValidators() {
108
121
  this.validators.push((args) => __awaiter(this, void 0, void 0, function* () {
109
- if (args.options.title && !args.options.ownerGroupId && !args.options.ownerGroupName) {
110
- return 'Specify either ownerGroupId or ownerGroupName';
111
- }
112
- if (args.options.title && args.options.ownerGroupId && args.options.ownerGroupName) {
113
- return 'Specify either ownerGroupId or ownerGroupName but not both';
114
- }
115
122
  if (args.options.ownerGroupId && !validation_1.validation.isValidGuid(args.options.ownerGroupId)) {
116
123
  return `${args.options.ownerGroupId} is not a valid GUID`;
117
124
  }
118
125
  return true;
119
126
  }));
120
127
  }, _PlannerPlanGetCommand_initOptionSets = function _PlannerPlanGetCommand_initOptionSets() {
121
- this.optionSets.push({ options: ['id', 'title'] });
128
+ this.optionSets.push({
129
+ options: ['id', 'title', 'rosterId']
130
+ }, {
131
+ options: ['ownerGroupId', 'ownerGroupName'],
132
+ runsWhen: (args) => {
133
+ return args.options.title !== undefined;
134
+ }
135
+ });
122
136
  };
123
137
  module.exports = new PlannerPlanGetCommand();
124
138
  //# sourceMappingURL=plan-get.js.map