@pnp/cli-microsoft365 6.3.0-beta.c3dc921 → 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 (181) hide show
  1. package/.eslintrc.js +8 -0
  2. package/dist/Auth.js +0 -18
  3. package/dist/Command.js +12 -1
  4. package/dist/cli/Cli.js +4 -1
  5. package/dist/m365/aad/commands/group/group-list.js +2 -1
  6. package/dist/m365/aad/commands/user/user-recyclebinitem-clear.js +103 -0
  7. package/dist/m365/aad/commands.js +1 -0
  8. package/dist/m365/base/O365MgmtCommand.js +10 -0
  9. package/dist/m365/context/commands/option/option-list.js +54 -0
  10. package/dist/m365/context/commands.js +1 -0
  11. package/dist/m365/file/commands/convert/convert-pdf.js +7 -6
  12. package/dist/m365/flow/commands/run/run-list.js +55 -3
  13. package/dist/m365/graph/commands/changelog/changelog-list.js +3 -2
  14. package/dist/m365/onenote/commands/notebook/notebook-list.js +50 -53
  15. package/dist/m365/onenote/commands/page/page-list.js +2 -16
  16. package/dist/m365/outlook/commands/mail/mail-send.js +3 -2
  17. package/dist/m365/outlook/commands/message/message-get.js +4 -3
  18. package/dist/m365/pa/commands/environment/environment-get.js +13 -5
  19. package/dist/m365/planner/commands/plan/plan-add.js +20 -6
  20. package/dist/m365/planner/commands/plan/plan-get.js +40 -26
  21. package/dist/m365/planner/commands/plan/plan-list.js +24 -14
  22. package/dist/m365/planner/commands/plan/plan-remove.js +1 -1
  23. package/dist/m365/planner/commands/plan/plan-set.js +21 -10
  24. package/dist/m365/planner/commands/roster/roster-add.js +47 -0
  25. package/dist/m365/planner/commands/roster/roster-get.js +61 -0
  26. package/dist/m365/planner/commands/roster/roster-member-add.js +113 -0
  27. package/dist/m365/planner/commands/roster/roster-member-list.js +54 -0
  28. package/dist/m365/planner/commands/roster/roster-member-remove.js +140 -0
  29. package/dist/m365/planner/commands/roster/roster-remove.js +88 -0
  30. package/dist/m365/planner/commands/task/task-add.js +3 -0
  31. package/dist/m365/planner/commands/task/task-checklistitem-add.js +2 -1
  32. package/dist/m365/planner/commands/task/task-checklistitem-list.js +2 -1
  33. package/dist/m365/planner/commands.js +6 -0
  34. package/dist/m365/pp/commands/solution/solution-get.js +2 -1
  35. package/dist/m365/pp/commands/solution/solution-list.js +2 -1
  36. package/dist/m365/purview/commands/auditlog/auditlog-list.js +205 -0
  37. package/dist/m365/purview/commands/retentionevent/retentionevent-get.js +75 -0
  38. package/dist/m365/purview/commands/retentionevent/retentionevent-list.js +46 -0
  39. package/dist/m365/purview/commands/retentionevent/retentionevent-remove.js +97 -0
  40. package/dist/m365/purview/commands/retentioneventtype/retentioneventtype-add.js +77 -0
  41. package/dist/m365/purview/commands/retentioneventtype/retentioneventtype-get.js +75 -0
  42. package/dist/m365/purview/commands/retentioneventtype/retentioneventtype-list.js +43 -0
  43. package/dist/m365/purview/commands/retentioneventtype/retentioneventtype-remove.js +97 -0
  44. package/dist/m365/purview/commands/retentioneventtype/retentioneventtype-set.js +90 -0
  45. package/dist/m365/purview/commands/retentionlabel/retentionlabel-add.js +5 -0
  46. package/dist/m365/purview/commands/retentionlabel/retentionlabel-get.js +5 -0
  47. package/dist/m365/purview/commands/retentionlabel/retentionlabel-list.js +5 -0
  48. package/dist/m365/purview/commands/retentionlabel/retentionlabel-remove.js +5 -0
  49. package/dist/m365/purview/commands/retentionlabel/retentionlabel-set.js +11 -1
  50. package/dist/m365/purview/commands.js +9 -0
  51. package/dist/m365/spfx/commands/project/WebApiPermissionRequests.js +3 -0
  52. package/dist/m365/spfx/commands/project/project-permissions-grant.js +81 -0
  53. package/dist/m365/spfx/commands.js +3 -2
  54. package/dist/m365/spo/commands/app/app-add.js +2 -1
  55. package/dist/m365/spo/commands/applicationcustomizer/applicationcustomizer-add.js +95 -0
  56. package/dist/m365/spo/commands/customaction/customaction-get.js +17 -66
  57. package/dist/m365/spo/commands/customaction/customaction-list.js +2 -36
  58. package/dist/m365/spo/commands/customaction/customaction-remove.js +11 -18
  59. package/dist/m365/spo/commands/file/GraphFileDetails.js +0 -1
  60. package/dist/m365/spo/commands/file/file-sharinginfo-get.js +2 -1
  61. package/dist/m365/spo/commands/file/file-sharinglink-add.js +2 -22
  62. package/dist/m365/spo/commands/file/file-sharinglink-clear.js +137 -0
  63. package/dist/m365/spo/commands/file/file-sharinglink-get.js +2 -25
  64. package/dist/m365/spo/commands/file/file-sharinglink-list.js +9 -29
  65. package/dist/m365/spo/commands/file/file-sharinglink-remove.js +2 -25
  66. package/dist/m365/spo/commands/file/file-sharinglink-set.js +104 -0
  67. package/dist/m365/spo/commands/group/group-list.js +2 -1
  68. package/dist/m365/spo/commands/hubsite/hubsite-get.js +1 -1
  69. package/dist/m365/spo/commands/listitem/listitem-add.js +2 -1
  70. package/dist/m365/spo/commands/listitem/listitem-list.js +2 -1
  71. package/dist/m365/spo/commands/navigation/navigation-node-add.js +17 -3
  72. package/dist/m365/spo/commands/navigation/navigation-node-get.js +73 -0
  73. package/dist/m365/spo/commands/navigation/navigation-node-list.js +4 -7
  74. package/dist/m365/spo/commands/navigation/navigation-node-set.js +118 -0
  75. package/dist/m365/spo/commands/page/page-column-get.js +2 -1
  76. package/dist/m365/spo/commands/page/page-column-list.js +2 -1
  77. package/dist/m365/spo/commands/page/page-section-get.js +2 -1
  78. package/dist/m365/spo/commands/page/page-section-list.js +2 -1
  79. package/dist/m365/spo/commands/site/site-apppermission-add.js +2 -14
  80. package/dist/m365/spo/commands/site/site-apppermission-get.js +2 -14
  81. package/dist/m365/spo/commands/site/site-apppermission-list.js +2 -14
  82. package/dist/m365/spo/commands/site/site-apppermission-remove.js +2 -14
  83. package/dist/m365/spo/commands/site/site-apppermission-set.js +2 -14
  84. package/dist/m365/spo/commands/sitedesign/sitedesign-add.js +6 -0
  85. package/dist/m365/spo/commands/spo-search.js +2 -1
  86. package/dist/m365/spo/commands/tenant/tenant-applicationcustomizer-add.js +179 -0
  87. package/dist/m365/spo/commands/term/term-list.js +2 -1
  88. package/dist/m365/spo/commands/userprofile/userprofile-get.js +2 -2
  89. package/dist/m365/spo/commands/web/web-set.js +11 -4
  90. package/dist/m365/spo/commands.js +6 -0
  91. package/dist/m365/teams/commands/chat/chat-list.js +4 -4
  92. package/dist/m365/teams/commands/meeting/meeting-attendancereport-list.js +5 -5
  93. package/dist/m365/teams/commands/meeting/meeting-get.js +5 -5
  94. package/dist/m365/teams/commands/meeting/meeting-list.js +5 -4
  95. package/dist/m365/teams/commands/team/team-app-list.js +1 -1
  96. package/dist/m365/teams/commands/user/user-app-list.js +2 -1
  97. package/dist/m365/todo/commands/task/task-get.js +2 -1
  98. package/dist/m365/todo/commands/task/task-list.js +2 -1
  99. package/dist/m365/yammer/commands/yammer-search.js +2 -1
  100. package/dist/utils/aadUser.js +38 -0
  101. package/dist/utils/accessToken.js +1 -1
  102. package/dist/utils/planner.js +16 -5
  103. package/dist/utils/spo.js +116 -0
  104. package/docs/docs/cmd/aad/app/app-list.md +3 -0
  105. package/docs/docs/cmd/aad/user/user-recyclebinitem-clear.md +42 -0
  106. package/docs/docs/cmd/aad/user/user-set.md +1 -1
  107. package/docs/docs/cmd/context/option/option-list.md +63 -0
  108. package/docs/docs/cmd/flow/run/run-list.md +21 -0
  109. package/docs/docs/cmd/login.md +26 -0
  110. package/docs/docs/cmd/logout.md +4 -0
  111. package/docs/docs/cmd/pa/app/app-get.md +24 -0
  112. package/docs/docs/cmd/pa/app/app-list.md +21 -0
  113. package/docs/docs/cmd/pa/connector/connector-list.md +17 -0
  114. package/docs/docs/cmd/pa/environment/environment-get.md +26 -2
  115. package/docs/docs/cmd/pa/environment/environment-list.md +19 -0
  116. package/docs/docs/cmd/planner/plan/plan-add.md +17 -6
  117. package/docs/docs/cmd/planner/plan/plan-get.md +21 -7
  118. package/docs/docs/cmd/planner/plan/plan-list.md +16 -2
  119. package/docs/docs/cmd/planner/plan/plan-remove.md +4 -0
  120. package/docs/docs/cmd/planner/plan/plan-set.md +10 -4
  121. package/docs/docs/cmd/planner/roster/roster-add.md +60 -0
  122. package/docs/docs/cmd/planner/roster/roster-get.md +73 -0
  123. package/docs/docs/cmd/planner/roster/roster-member-add.md +87 -0
  124. package/docs/docs/cmd/planner/roster/roster-member-list.md +76 -0
  125. package/docs/docs/cmd/planner/roster/roster-member-remove.md +51 -0
  126. package/docs/docs/cmd/planner/roster/roster-remove.md +48 -0
  127. package/docs/docs/cmd/pp/aibuildermodel/aibuildermodel-get.md +43 -0
  128. package/docs/docs/cmd/pp/aibuildermodel/aibuildermodel-list.md +43 -0
  129. package/docs/docs/cmd/pp/card/card-clone.md +12 -0
  130. package/docs/docs/cmd/pp/card/card-get.md +49 -0
  131. package/docs/docs/cmd/pp/card/card-list.md +49 -0
  132. package/docs/docs/cmd/pp/chatbot/chatbot-get.md +55 -0
  133. package/docs/docs/cmd/pp/chatbot/chatbot-list.md +36 -0
  134. package/docs/docs/cmd/pp/dataverse/dataverse-table-get.md +30 -0
  135. package/docs/docs/cmd/pp/dataverse/dataverse-table-list.md +30 -0
  136. package/docs/docs/cmd/pp/dataverse/dataverse-table-row-list.md +30 -0
  137. package/docs/docs/cmd/pp/environment/environment-get.md +19 -0
  138. package/docs/docs/cmd/pp/environment/environment-list.md +19 -0
  139. package/docs/docs/cmd/pp/gateway/gateway-get.md +19 -0
  140. package/docs/docs/cmd/pp/gateway/gateway-list.md +19 -0
  141. package/docs/docs/cmd/pp/managementapp/managementapp-add.md +12 -0
  142. package/docs/docs/cmd/pp/managementapp/managementapp-list.md +12 -0
  143. package/docs/docs/cmd/pp/solution/solution-get.md +14 -0
  144. package/docs/docs/cmd/pp/solution/solution-list.md +14 -0
  145. package/docs/docs/cmd/pp/solution/solution-publisher-get.md +20 -1
  146. package/docs/docs/cmd/pp/solution/solution-publisher-list.md +18 -0
  147. package/docs/docs/cmd/pp/tenant/tenant-settings-list.md +21 -0
  148. package/docs/docs/cmd/purview/auditlog/auditlog-list.md +123 -0
  149. package/docs/docs/cmd/purview/retentionevent/retentionevent-get.md +132 -0
  150. package/docs/docs/cmd/purview/retentionevent/retentionevent-list.md +107 -0
  151. package/docs/docs/cmd/purview/retentionevent/retentionevent-remove.md +45 -0
  152. package/docs/docs/cmd/purview/retentioneventtype/retentioneventtype-add.md +106 -0
  153. package/docs/docs/cmd/purview/retentioneventtype/retentioneventtype-get.md +103 -0
  154. package/docs/docs/cmd/purview/retentioneventtype/retentioneventtype-list.md +97 -0
  155. package/docs/docs/cmd/purview/retentioneventtype/retentioneventtype-remove.md +43 -0
  156. package/docs/docs/cmd/purview/retentioneventtype/retentioneventtype-set.md +43 -0
  157. package/docs/docs/cmd/purview/retentionlabel/retentionlabel-add.md +3 -0
  158. package/docs/docs/cmd/purview/retentionlabel/retentionlabel-get.md +3 -0
  159. package/docs/docs/cmd/purview/retentionlabel/retentionlabel-list.md +3 -0
  160. package/docs/docs/cmd/purview/retentionlabel/retentionlabel-remove.md +3 -0
  161. package/docs/docs/cmd/purview/retentionlabel/retentionlabel-set.md +3 -0
  162. package/docs/docs/cmd/request.md +74 -0
  163. package/docs/docs/cmd/spfx/project/project-permissions-grant.md +65 -0
  164. package/docs/docs/cmd/spo/applicationcustomizer/applicationcustomizer-add.md +56 -0
  165. package/docs/docs/cmd/spo/file/file-sharinglink-clear.md +46 -0
  166. package/docs/docs/cmd/spo/file/file-sharinglink-list.md +1 -1
  167. package/docs/docs/cmd/spo/file/file-sharinglink-set.md +104 -0
  168. package/docs/docs/cmd/spo/listitem/listitem-attachment-list.md +2 -2
  169. package/docs/docs/cmd/spo/listitem/listitem-isrecord.md +2 -2
  170. package/docs/docs/cmd/spo/navigation/navigation-node-add.md +18 -3
  171. package/docs/docs/cmd/spo/navigation/navigation-node-get.md +91 -0
  172. package/docs/docs/cmd/spo/navigation/navigation-node-list.md +30 -0
  173. package/docs/docs/cmd/spo/navigation/navigation-node-remove.md +1 -1
  174. package/docs/docs/cmd/spo/navigation/navigation-node-set.md +59 -0
  175. package/docs/docs/cmd/spo/sitedesign/sitedesign-add.md +3 -0
  176. package/docs/docs/cmd/spo/tenant/tenant-applicationcustomizer-add.md +59 -0
  177. package/docs/docs/cmd/spo/web/web-set.md +9 -0
  178. package/docs/docs/cmd/status.md +46 -0
  179. package/docs/docs/cmd/version.md +26 -0
  180. package/npm-shrinkwrap.json +911 -876
  181. package/package.json +12 -12
@@ -15,12 +15,12 @@ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (
15
15
  };
16
16
  var _OneNotePageListCommand_instances, _OneNotePageListCommand_initTelemetry, _OneNotePageListCommand_initOptions, _OneNotePageListCommand_initValidators, _OneNotePageListCommand_initOptionSets;
17
17
  Object.defineProperty(exports, "__esModule", { value: true });
18
- const request_1 = require("../../../../request");
19
18
  const odata_1 = require("../../../../utils/odata");
20
19
  const validation_1 = require("../../../../utils/validation");
21
20
  const aadGroup_1 = require("../../../../utils/aadGroup");
22
21
  const GraphCommand_1 = require("../../../base/GraphCommand");
23
22
  const commands_1 = require("../../commands");
23
+ const spo_1 = require("../../../../utils/spo");
24
24
  class OneNotePageListCommand extends GraphCommand_1.default {
25
25
  get name() {
26
26
  return commands_1.default.PAGE_LIST;
@@ -56,7 +56,7 @@ class OneNotePageListCommand extends GraphCommand_1.default {
56
56
  endpoint += `groups/${groupId}`;
57
57
  }
58
58
  else if (args.options.webUrl) {
59
- const siteId = yield this.getSpoSiteId(args.options.webUrl);
59
+ const siteId = yield spo_1.spo.getSpoGraphSiteId(args.options.webUrl);
60
60
  endpoint += `sites/${siteId}`;
61
61
  }
62
62
  else {
@@ -72,20 +72,6 @@ class OneNotePageListCommand extends GraphCommand_1.default {
72
72
  return group.id;
73
73
  });
74
74
  }
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
- });
88
- }
89
75
  commandAction(logger, args) {
90
76
  return __awaiter(this, void 0, void 0, function* () {
91
77
  try {
@@ -22,6 +22,7 @@ const request_1 = require("../../../../request");
22
22
  const GraphCommand_1 = require("../../../base/GraphCommand");
23
23
  const commands_1 = require("../../commands");
24
24
  const formatting_1 = require("../../../../utils/formatting");
25
+ const accessToken_1 = require("../../../../utils/accessToken");
25
26
  class OutlookMailSendCommand extends GraphCommand_1.default {
26
27
  get name() {
27
28
  return commands_1.default.MAIL_SEND;
@@ -40,8 +41,8 @@ class OutlookMailSendCommand extends GraphCommand_1.default {
40
41
  commandAction(logger, args) {
41
42
  return __awaiter(this, void 0, void 0, function* () {
42
43
  try {
43
- const isAppOnlyAuth = Auth_1.Auth.isAppOnlyAuth(Auth_1.default.service.accessTokens[this.resource].accessToken);
44
- if (isAppOnlyAuth === true && !args.options.sender) {
44
+ const isAppOnlyAccessToken = accessToken_1.accessToken.isAppOnlyAccessToken(Auth_1.default.service.accessTokens[this.resource].accessToken);
45
+ if (isAppOnlyAccessToken === true && !args.options.sender) {
45
46
  throw `Specify a upn or user id in the 'sender' option when using app only authentication.`;
46
47
  }
47
48
  const requestOptions = {
@@ -17,6 +17,7 @@ var _OutlookMessageGetCommand_instances, _OutlookMessageGetCommand_initTelemetry
17
17
  Object.defineProperty(exports, "__esModule", { value: true });
18
18
  const Auth_1 = require("../../../../Auth");
19
19
  const request_1 = require("../../../../request");
20
+ const accessToken_1 = require("../../../../utils/accessToken");
20
21
  const GraphCommand_1 = require("../../../base/GraphCommand");
21
22
  const commands_1 = require("../../commands");
22
23
  class OutlookMessageGetCommand extends GraphCommand_1.default {
@@ -35,12 +36,12 @@ class OutlookMessageGetCommand extends GraphCommand_1.default {
35
36
  commandAction(logger, args) {
36
37
  return __awaiter(this, void 0, void 0, function* () {
37
38
  try {
38
- const isAppOnlyAuth = Auth_1.Auth.isAppOnlyAuth(Auth_1.default.service.accessTokens[this.resource].accessToken);
39
+ const isAppOnlyAccessToken = accessToken_1.accessToken.isAppOnlyAccessToken(Auth_1.default.service.accessTokens[this.resource].accessToken);
39
40
  if (this.verbose) {
40
- logger.logToStderr(`Retrieving message with id ${args.options.id} using ${isAppOnlyAuth ? 'app only permissions' : 'delegated permissions'}`);
41
+ logger.logToStderr(`Retrieving message with id ${args.options.id} using ${isAppOnlyAccessToken ? 'app only permissions' : 'delegated permissions'}`);
41
42
  }
42
43
  let requestUrl = '';
43
- if (isAppOnlyAuth) {
44
+ if (isAppOnlyAccessToken) {
44
45
  if (!args.options.userId && !args.options.userPrincipalName) {
45
46
  throw `The option 'userId' or 'userPrincipalName' is required when retrieving an email using app only credentials`;
46
47
  }
@@ -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();
@@ -15,6 +15,7 @@ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (
15
15
  };
16
16
  var _PlannerPlanAddCommand_instances, _PlannerPlanAddCommand_initTelemetry, _PlannerPlanAddCommand_initOptions, _PlannerPlanAddCommand_initValidators, _PlannerPlanAddCommand_initOptionSets;
17
17
  Object.defineProperty(exports, "__esModule", { value: true });
18
+ const Command_1 = require("../../../../Command");
18
19
  const request_1 = require("../../../../request");
19
20
  const aadGroup_1 = require("../../../../utils/aadGroup");
20
21
  const formatting_1 = require("../../../../utils/formatting");
@@ -42,23 +43,34 @@ class PlannerPlanAddCommand extends GraphCommand_1.default {
42
43
  commandAction(logger, args) {
43
44
  return __awaiter(this, void 0, void 0, function* () {
44
45
  try {
45
- const groupId = yield this.getGroupId(args);
46
+ const data = {
47
+ title: args.options.title
48
+ };
49
+ if (args.options.rosterId) {
50
+ data.container = {
51
+ "url": `https://graph.microsoft.com/v1.0/planner/rosters/${args.options.rosterId}`
52
+ };
53
+ }
54
+ else {
55
+ const groupId = yield this.getGroupId(args);
56
+ data.owner = groupId;
57
+ }
46
58
  const requestOptions = {
47
59
  url: `${this.resource}/v1.0/planner/plans`,
48
60
  headers: {
49
61
  'accept': 'application/json;odata.metadata=none'
50
62
  },
51
63
  responseType: 'json',
52
- data: {
53
- owner: groupId,
54
- title: args.options.title
55
- }
64
+ data: data
56
65
  };
57
66
  const newPlan = yield request_1.default.post(requestOptions);
58
67
  const result = yield this.updatePlanDetails(args.options, newPlan);
59
68
  logger.log(result);
60
69
  }
61
70
  catch (err) {
71
+ if (err.error && err.error.error.message === "You do not have the required permissions to access this item, or the item may not exist.") {
72
+ throw new Command_1.CommandError("You can only add 1 plan to a Roster");
73
+ }
62
74
  this.handleRejectedODataJsonPromise(err);
63
75
  }
64
76
  });
@@ -167,6 +179,8 @@ _PlannerPlanAddCommand_instances = new WeakSet(), _PlannerPlanAddCommand_initTel
167
179
  option: "--ownerGroupId [ownerGroupId]"
168
180
  }, {
169
181
  option: "--ownerGroupName [ownerGroupName]"
182
+ }, {
183
+ option: "--rosterId [rosterId]"
170
184
  }, {
171
185
  option: '--shareWithUserIds [shareWithUserIds]'
172
186
  }, {
@@ -186,7 +200,7 @@ _PlannerPlanAddCommand_instances = new WeakSet(), _PlannerPlanAddCommand_initTel
186
200
  return true;
187
201
  }));
188
202
  }, _PlannerPlanAddCommand_initOptionSets = function _PlannerPlanAddCommand_initOptionSets() {
189
- this.optionSets.push({ options: ['ownerGroupId', 'ownerGroupName'] });
203
+ this.optionSets.push({ options: ['ownerGroupId', 'ownerGroupName', 'rosterId'] });
190
204
  };
191
205
  module.exports = new PlannerPlanAddCommand();
192
206
  //# sourceMappingURL=plan-add.js.map
@@ -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
@@ -16,16 +16,16 @@ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (
16
16
  var _PlannerPlanListCommand_instances, _PlannerPlanListCommand_initTelemetry, _PlannerPlanListCommand_initOptions, _PlannerPlanListCommand_initValidators, _PlannerPlanListCommand_initOptionSets;
17
17
  Object.defineProperty(exports, "__esModule", { value: true });
18
18
  const validation_1 = require("../../../../utils/validation");
19
- const aadGroup_1 = require("../../../../utils/aadGroup");
20
19
  const planner_1 = require("../../../../utils/planner");
21
20
  const GraphCommand_1 = require("../../../base/GraphCommand");
22
21
  const commands_1 = require("../../commands");
22
+ const aadGroup_1 = require("../../../../utils/aadGroup");
23
23
  class PlannerPlanListCommand extends GraphCommand_1.default {
24
24
  get name() {
25
25
  return commands_1.default.PLAN_LIST;
26
26
  }
27
27
  get description() {
28
- return 'Returns a list of plans associated with a specified group';
28
+ return 'Returns a list of plans associated with a specified group or roster';
29
29
  }
30
30
  constructor() {
31
31
  super();
@@ -41,10 +41,16 @@ class PlannerPlanListCommand extends GraphCommand_1.default {
41
41
  commandAction(logger, args) {
42
42
  return __awaiter(this, void 0, void 0, function* () {
43
43
  try {
44
- const groupId = yield this.getGroupId(args);
45
- const result = yield planner_1.planner.getPlansByGroupId(groupId);
46
- if (result && result.length > 0) {
47
- logger.log(result);
44
+ let plannerPlans = null;
45
+ if (args.options.ownerGroupId || args.options.ownerGroupName) {
46
+ const groupId = yield this.getGroupId(args);
47
+ plannerPlans = yield planner_1.planner.getPlansByGroupId(groupId);
48
+ }
49
+ else {
50
+ plannerPlans = yield planner_1.planner.getPlansByRosterId(args.options.rosterId);
51
+ }
52
+ if (plannerPlans && plannerPlans.length > 0) {
53
+ logger.log(plannerPlans);
48
54
  }
49
55
  }
50
56
  catch (err) {
@@ -53,19 +59,21 @@ class PlannerPlanListCommand extends GraphCommand_1.default {
53
59
  });
54
60
  }
55
61
  getGroupId(args) {
56
- if (args.options.ownerGroupId) {
57
- return Promise.resolve(args.options.ownerGroupId);
58
- }
59
- return aadGroup_1.aadGroup
60
- .getGroupByDisplayName(args.options.ownerGroupName)
61
- .then(group => group.id);
62
+ return __awaiter(this, void 0, void 0, function* () {
63
+ if (args.options.ownerGroupId) {
64
+ return args.options.ownerGroupId;
65
+ }
66
+ const group = yield aadGroup_1.aadGroup.getGroupByDisplayName(args.options.ownerGroupName);
67
+ return group.id;
68
+ });
62
69
  }
63
70
  }
64
71
  _PlannerPlanListCommand_instances = new WeakSet(), _PlannerPlanListCommand_initTelemetry = function _PlannerPlanListCommand_initTelemetry() {
65
72
  this.telemetry.push((args) => {
66
73
  Object.assign(this.telemetryProperties, {
67
74
  ownerGroupId: typeof args.options.ownerGroupId !== 'undefined',
68
- ownerGroupName: typeof args.options.ownerGroupName !== 'undefined'
75
+ ownerGroupName: typeof args.options.ownerGroupName !== 'undefined',
76
+ rosterId: typeof args.options.rosterId !== 'undefined'
69
77
  });
70
78
  });
71
79
  }, _PlannerPlanListCommand_initOptions = function _PlannerPlanListCommand_initOptions() {
@@ -73,6 +81,8 @@ _PlannerPlanListCommand_instances = new WeakSet(), _PlannerPlanListCommand_initT
73
81
  option: "--ownerGroupId [ownerGroupId]"
74
82
  }, {
75
83
  option: "--ownerGroupName [ownerGroupName]"
84
+ }, {
85
+ option: "--rosterId [rosterId]"
76
86
  });
77
87
  }, _PlannerPlanListCommand_initValidators = function _PlannerPlanListCommand_initValidators() {
78
88
  this.validators.push((args) => __awaiter(this, void 0, void 0, function* () {
@@ -82,7 +92,7 @@ _PlannerPlanListCommand_instances = new WeakSet(), _PlannerPlanListCommand_initT
82
92
  return true;
83
93
  }));
84
94
  }, _PlannerPlanListCommand_initOptionSets = function _PlannerPlanListCommand_initOptionSets() {
85
- this.optionSets.push({ options: ['ownerGroupId', 'ownerGroupName'] });
95
+ this.optionSets.push({ options: ['ownerGroupId', 'ownerGroupName', 'rosterId'] });
86
96
  };
87
97
  module.exports = new PlannerPlanListCommand();
88
98
  //# sourceMappingURL=plan-list.js.map
@@ -79,7 +79,7 @@ class PlannerPlanRemoveCommand extends GraphCommand_1.default {
79
79
  return planner_1.planner.getPlanById(id, 'minimal');
80
80
  }
81
81
  const groupId = yield this.getGroupId(args);
82
- return yield planner_1.planner.getPlanByTitle(title, groupId);
82
+ return yield planner_1.planner.getPlanByTitle(title, groupId, 'minimal');
83
83
  });
84
84
  }
85
85
  getGroupId(args) {
@@ -59,9 +59,16 @@ class PlannerPlanSetCommand extends GraphCommand_1.default {
59
59
  if (id) {
60
60
  return id;
61
61
  }
62
- const groupId = yield this.getGroupId(args);
63
- const plan = yield planner_1.planner.getPlanByTitle(title, groupId);
64
- return plan.id;
62
+ let groupId = '';
63
+ if (args.options.rosterId) {
64
+ const plans = yield planner_1.planner.getPlansByRosterId(args.options.rosterId);
65
+ return plans[0].id;
66
+ }
67
+ else {
68
+ groupId = yield this.getGroupId(args);
69
+ const plan = yield planner_1.planner.getPlanByTitle(title, groupId);
70
+ return plan.id;
71
+ }
65
72
  });
66
73
  }
67
74
  getUserIds(options) {
@@ -214,6 +221,7 @@ _PlannerPlanSetCommand_instances = new WeakSet(), _PlannerPlanSetCommand_initTel
214
221
  title: typeof args.options.title !== 'undefined',
215
222
  ownerGroupId: typeof args.options.ownerGroupId !== 'undefined',
216
223
  ownerGroupName: typeof args.options.ownerGroupName !== 'undefined',
224
+ rosterId: typeof args.options.rosterId !== 'undefined',
217
225
  newTitle: typeof args.options.newTitle !== 'undefined',
218
226
  shareWithUserIds: typeof args.options.shareWithUserIds !== 'undefined',
219
227
  shareWithUserNames: typeof args.options.shareWithUserNames !== 'undefined'
@@ -228,6 +236,8 @@ _PlannerPlanSetCommand_instances = new WeakSet(), _PlannerPlanSetCommand_initTel
228
236
  option: '--ownerGroupId [ownerGroupId]'
229
237
  }, {
230
238
  option: '--ownerGroupName [ownerGroupName]'
239
+ }, {
240
+ option: '--rosterId [rosterId]'
231
241
  }, {
232
242
  option: '--newTitle [newTitle]'
233
243
  }, {
@@ -241,12 +251,6 @@ _PlannerPlanSetCommand_instances = new WeakSet(), _PlannerPlanSetCommand_initTel
241
251
  if (args.options.ownerGroupId && !validation_1.validation.isValidGuid(args.options.ownerGroupId)) {
242
252
  return `${args.options.ownerGroupId} is not a valid GUID`;
243
253
  }
244
- if (!args.options.ownerGroupId && !args.options.ownerGroupName) {
245
- return 'Specify either ownerGroupId or ownerGroupName when using title';
246
- }
247
- if (args.options.ownerGroupId && args.options.ownerGroupName) {
248
- return 'Specify either ownerGroupId or ownerGroupName when using title but not both';
249
- }
250
254
  }
251
255
  if (args.options.shareWithUserIds && args.options.shareWithUserNames) {
252
256
  return 'Specify either shareWithUserIds or shareWithUserNames but not both';
@@ -293,7 +297,14 @@ _PlannerPlanSetCommand_instances = new WeakSet(), _PlannerPlanSetCommand_initTel
293
297
  return true;
294
298
  }));
295
299
  }, _PlannerPlanSetCommand_initOptionSets = function _PlannerPlanSetCommand_initOptionSets() {
296
- this.optionSets.push({ options: ['id', 'title'] });
300
+ this.optionSets.push({
301
+ options: ['id', 'title', 'rosterId']
302
+ }, {
303
+ options: ['ownerGroupId', 'ownerGroupName'],
304
+ runsWhen: (args) => {
305
+ return args.options.title !== undefined;
306
+ }
307
+ });
297
308
  };
298
309
  module.exports = new PlannerPlanSetCommand();
299
310
  //# sourceMappingURL=plan-set.js.map
@@ -0,0 +1,47 @@
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 request_1 = require("../../../../request");
13
+ const GraphCommand_1 = require("../../../base/GraphCommand");
14
+ const commands_1 = require("../../commands");
15
+ class PlannerRosterAddCommand extends GraphCommand_1.default {
16
+ get name() {
17
+ return commands_1.default.ROSTER_ADD;
18
+ }
19
+ get description() {
20
+ return 'Creates a new Microsoft Planner Roster';
21
+ }
22
+ commandAction(logger) {
23
+ return __awaiter(this, void 0, void 0, function* () {
24
+ if (this.verbose) {
25
+ logger.logToStderr('Creating a new Microsoft Planner Roster');
26
+ }
27
+ try {
28
+ const requestBody = {};
29
+ const requestOptions = {
30
+ url: `${this.resource}/beta/planner/rosters`,
31
+ headers: {
32
+ accept: 'application/json;odata.metadata=none'
33
+ },
34
+ data: requestBody,
35
+ responseType: 'json'
36
+ };
37
+ const response = yield request_1.default.post(requestOptions);
38
+ logger.log(response);
39
+ }
40
+ catch (err) {
41
+ this.handleRejectedODataJsonPromise(err);
42
+ }
43
+ });
44
+ }
45
+ }
46
+ module.exports = new PlannerRosterAddCommand();
47
+ //# sourceMappingURL=roster-add.js.map
@@ -0,0 +1,61 @@
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 _PlannerRosterGetCommand_instances, _PlannerRosterGetCommand_initOptions;
17
+ Object.defineProperty(exports, "__esModule", { value: true });
18
+ const request_1 = require("../../../../request");
19
+ const GraphCommand_1 = require("../../../base/GraphCommand");
20
+ const commands_1 = require("../../commands");
21
+ class PlannerRosterGetCommand extends GraphCommand_1.default {
22
+ get name() {
23
+ return commands_1.default.ROSTER_GET;
24
+ }
25
+ get description() {
26
+ return 'Retrieve information about a specific Microsoft Planner Roster';
27
+ }
28
+ constructor() {
29
+ super();
30
+ _PlannerRosterGetCommand_instances.add(this);
31
+ __classPrivateFieldGet(this, _PlannerRosterGetCommand_instances, "m", _PlannerRosterGetCommand_initOptions).call(this);
32
+ }
33
+ commandAction(logger, args) {
34
+ return __awaiter(this, void 0, void 0, function* () {
35
+ if (this.verbose) {
36
+ logger.logToStderr(`Retrieving information about Microsoft Planner Roster with id ${args.options.id}`);
37
+ }
38
+ const requestOptions = {
39
+ url: `${this.resource}/beta/planner/rosters/${args.options.id}`,
40
+ headers: {
41
+ 'accept': 'application/json;odata.metadata=none'
42
+ },
43
+ responseType: 'json'
44
+ };
45
+ try {
46
+ const response = yield request_1.default.get(requestOptions);
47
+ logger.log(response);
48
+ }
49
+ catch (err) {
50
+ this.handleRejectedODataJsonPromise(err);
51
+ }
52
+ });
53
+ }
54
+ }
55
+ _PlannerRosterGetCommand_instances = new WeakSet(), _PlannerRosterGetCommand_initOptions = function _PlannerRosterGetCommand_initOptions() {
56
+ this.options.unshift({
57
+ option: '--id <id>'
58
+ });
59
+ };
60
+ module.exports = new PlannerRosterGetCommand();
61
+ //# sourceMappingURL=roster-get.js.map