@pnp/cli-microsoft365 6.0.0-beta.42305df → 6.0.0-beta.49b3c0a

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 (124) hide show
  1. package/.eslintrc.js +15 -2
  2. package/README.md +5 -0
  3. package/dist/Command.js +16 -2
  4. package/dist/m365/aad/commands/app/app-add.js +36 -13
  5. package/dist/m365/commands/status.js +6 -1
  6. package/dist/m365/outlook/commands/mail/mail-send.js +55 -31
  7. package/dist/m365/planner/commands/bucket/bucket-get.js +1 -1
  8. package/dist/m365/planner/commands/plan/plan-get.js +5 -20
  9. package/dist/m365/pp/commands/Environment.js +3 -0
  10. package/dist/m365/pp/commands/card/card-get.js +110 -0
  11. package/dist/m365/pp/commands/card/card-list.js +68 -0
  12. package/dist/m365/pp/commands/dataverse/dataverse-table-list.js +6 -12
  13. package/dist/m365/pp/commands/environment/environment-get.js +75 -0
  14. package/dist/m365/pp/commands/gateway/gateway-get.js +70 -0
  15. package/dist/m365/pp/commands/solution/Solution.js +3 -0
  16. package/dist/m365/pp/commands/solution/solution-get.js +117 -0
  17. package/dist/m365/pp/commands/solution/solution-list.js +87 -0
  18. package/dist/m365/pp/commands.js +6 -0
  19. package/dist/m365/spfx/commands/project/project-doctor.js +4 -1
  20. package/dist/m365/spfx/commands/project/project-externalize.js +4 -1
  21. package/dist/m365/spfx/commands/project/project-upgrade/rules/FN010001_YORC_version.js +2 -1
  22. package/dist/m365/spfx/commands/project/project-upgrade/rules/FN010002_YORC_isCreatingSolution.js +2 -1
  23. package/dist/m365/spfx/commands/project/project-upgrade/rules/FN010003_YORC_packageManager.js +2 -1
  24. package/dist/m365/spfx/commands/project/project-upgrade/rules/FN010004_YORC_componentType.js +2 -1
  25. package/dist/m365/spfx/commands/project/project-upgrade/rules/FN010005_YORC_environment.js +2 -1
  26. package/dist/m365/spfx/commands/project/project-upgrade/rules/FN010006_YORC_framework.js +3 -2
  27. package/dist/m365/spfx/commands/project/project-upgrade/rules/FN010007_YORC_isDomainIsolated.js +2 -1
  28. package/dist/m365/spfx/commands/project/project-upgrade/rules/FN010008_YORC_nodeVersion.js +2 -1
  29. package/dist/m365/spfx/commands/project/project-upgrade/rules/FN010009_YORC_sdkVersions_microsoft_graph_client.js +56 -0
  30. package/dist/m365/spfx/commands/project/project-upgrade/rules/FN010010_YORC_sdkVersions_teams_js.js +56 -0
  31. package/dist/m365/spfx/commands/project/project-upgrade/upgrade-1.14.0.js +0 -2
  32. package/dist/m365/spfx/commands/project/project-upgrade/{upgrade-1.16.0-beta.1.js → upgrade-1.16.0-beta.2.js} +44 -28
  33. package/dist/m365/spfx/commands/project/project-upgrade.js +1 -1
  34. package/dist/m365/spfx/commands/spfx-doctor.js +39 -9
  35. package/dist/m365/spo/commands/contenttype/contenttype-add.js +82 -43
  36. package/dist/m365/spo/commands/contenttype/contenttype-field-remove.js +53 -21
  37. package/dist/m365/spo/commands/contenttype/contenttype-get.js +35 -14
  38. package/dist/m365/spo/commands/eventreceiver/EventReceiver.js +3 -0
  39. package/dist/m365/spo/commands/eventreceiver/eventreceiver-remove.js +182 -0
  40. package/dist/m365/spo/commands/file/file-copy.js +25 -39
  41. package/dist/m365/spo/commands/file/file-move.js +24 -37
  42. package/dist/m365/spo/commands/file/file-rename.js +19 -16
  43. package/dist/m365/spo/commands/file/file-roleinheritance-break.js +129 -0
  44. package/dist/m365/spo/commands/folder/folder-roleassignment-remove.js +168 -0
  45. package/dist/m365/spo/commands/group/AssociatedGroupPropertiesCollection.js +3 -0
  46. package/dist/m365/spo/commands/group/group-list.js +49 -10
  47. package/dist/m365/spo/commands/list/list-contenttype-add.js +21 -18
  48. package/dist/m365/spo/commands/list/list-contenttype-default-set.js +59 -47
  49. package/dist/m365/spo/commands/list/list-contenttype-list.js +16 -8
  50. package/dist/m365/spo/commands/list/list-contenttype-remove.js +16 -8
  51. package/dist/m365/spo/commands/list/list-roleassignment-add.js +10 -10
  52. package/dist/m365/spo/commands/list/list-roleassignment-remove.js +8 -8
  53. package/dist/m365/spo/commands/list/list-roleinheritance-break.js +14 -6
  54. package/dist/m365/spo/commands/list/list-roleinheritance-reset.js +14 -6
  55. package/dist/m365/spo/commands/list/list-webhook-add.js +19 -11
  56. package/dist/m365/spo/commands/list/list-webhook-get.js +17 -10
  57. package/dist/m365/spo/commands/list/list-webhook-list.js +17 -42
  58. package/dist/m365/spo/commands/list/list-webhook-remove.js +19 -11
  59. package/dist/m365/spo/commands/list/list-webhook-set.js +18 -10
  60. package/dist/m365/spo/commands/listitem/listitem-roleassignment-add.js +239 -0
  61. package/dist/m365/spo/commands/listitem/listitem-roleassignment-remove.js +8 -8
  62. package/dist/m365/spo/commands/site/site-add.js +4 -11
  63. package/dist/m365/spo/commands/{hubsite/hubsite-connect.js → site/site-hubsite-connect.js} +10 -10
  64. package/dist/m365/spo/commands/{hubsite/hubsite-disconnect.js → site/site-hubsite-disconnect.js} +13 -13
  65. package/dist/m365/spo/commands/web/web-roleassignment-add.js +10 -10
  66. package/dist/m365/spo/commands/web/web-roleassignment-remove.js +8 -8
  67. package/dist/m365/spo/commands.js +6 -2
  68. package/dist/m365/teams/commands/channel/channel-add.js +9 -9
  69. package/dist/m365/teams/commands/team/team-set.js +0 -7
  70. package/dist/m365/todo/commands/task/task-add.js +55 -3
  71. package/dist/m365/todo/commands/task/task-set.js +53 -1
  72. package/docs/docs/_clisettings.md +18 -0
  73. package/docs/docs/cmd/outlook/mail/mail-send.md +13 -0
  74. package/docs/docs/cmd/planner/bucket/bucket-add.md +29 -0
  75. package/docs/docs/cmd/planner/bucket/bucket-get.md +29 -0
  76. package/docs/docs/cmd/planner/bucket/bucket-list.md +30 -0
  77. package/docs/docs/cmd/planner/bucket/bucket-remove.md +4 -0
  78. package/docs/docs/cmd/planner/bucket/bucket-set.md +4 -0
  79. package/docs/docs/cmd/planner/plan/plan-add.md +123 -0
  80. package/docs/docs/cmd/planner/plan/plan-get.md +75 -6
  81. package/docs/docs/cmd/planner/plan/plan-list.md +45 -0
  82. package/docs/docs/cmd/planner/plan/plan-remove.md +4 -0
  83. package/docs/docs/cmd/planner/task/task-get.md +0 -3
  84. package/docs/docs/cmd/pp/card/card-get.md +51 -0
  85. package/docs/docs/cmd/pp/card/card-list.md +33 -0
  86. package/docs/docs/cmd/pp/dataverse/dataverse-table-list.md +2 -2
  87. package/docs/docs/cmd/pp/environment/environment-get.md +38 -0
  88. package/docs/docs/cmd/pp/environment/environment-list.md +1 -1
  89. package/docs/docs/cmd/pp/gateway/gateway-get.md +24 -0
  90. package/docs/docs/cmd/pp/solution/solution-get.md +51 -0
  91. package/docs/docs/cmd/pp/solution/solution-list.md +33 -0
  92. package/docs/docs/cmd/spfx/project/project-rename.md +1 -14
  93. package/docs/docs/cmd/spfx/project/project-upgrade.md +1 -1
  94. package/docs/docs/cmd/spfx/spfx-doctor.md +10 -1
  95. package/docs/docs/cmd/spo/contenttype/contenttype-add.md +20 -2
  96. package/docs/docs/cmd/spo/contenttype/contenttype-field-remove.md +22 -4
  97. package/docs/docs/cmd/spo/contenttype/contenttype-get.md +21 -3
  98. package/docs/docs/cmd/spo/eventreceiver/eventreceiver-get.md +2 -2
  99. package/docs/docs/cmd/spo/eventreceiver/eventreceiver-remove.md +69 -0
  100. package/docs/docs/cmd/spo/file/file-roleinheritance-break.md +54 -0
  101. package/docs/docs/cmd/spo/folder/folder-roleassignment-remove.md +57 -0
  102. package/docs/docs/cmd/spo/group/group-list.md +10 -1
  103. package/docs/docs/cmd/spo/list/list-contenttype-add.md +15 -6
  104. package/docs/docs/cmd/spo/list/list-contenttype-default-set.md +16 -7
  105. package/docs/docs/cmd/spo/list/list-contenttype-list.md +15 -6
  106. package/docs/docs/cmd/spo/list/list-contenttype-remove.md +16 -7
  107. package/docs/docs/cmd/spo/list/list-roleinheritance-break.md +11 -8
  108. package/docs/docs/cmd/spo/list/list-roleinheritance-reset.md +16 -7
  109. package/docs/docs/cmd/spo/list/list-webhook-add.md +15 -16
  110. package/docs/docs/cmd/spo/list/list-webhook-get.md +17 -8
  111. package/docs/docs/cmd/spo/list/list-webhook-list.md +13 -10
  112. package/docs/docs/cmd/spo/list/list-webhook-remove.md +12 -10
  113. package/docs/docs/cmd/spo/list/list-webhook-set.md +15 -13
  114. package/docs/docs/cmd/spo/listitem/listitem-roleassignment-add.md +81 -0
  115. package/docs/docs/cmd/spo/site/site-add.md +0 -3
  116. package/docs/docs/cmd/spo/{hubsite/hubsite-connect.md → site/site-hubsite-connect.md} +4 -4
  117. package/docs/docs/cmd/spo/{hubsite/hubsite-disconnect.md → site/site-hubsite-disconnect.md} +7 -7
  118. package/docs/docs/cmd/teams/channel/channel-add.md +4 -4
  119. package/docs/docs/cmd/teams/team/team-clone.md +0 -3
  120. package/docs/docs/cmd/teams/team/team-set.md +0 -3
  121. package/docs/docs/cmd/todo/task/task-add.md +32 -5
  122. package/docs/docs/cmd/todo/task/task-set.md +29 -2
  123. package/package.json +12 -3
  124. package/dist/m365/spfx/commands/project/project-upgrade/rules/FN006006_CFG_PS_features.js +0 -60
@@ -44,15 +44,15 @@ class SpoWebRoleAssignmentRemoveCommand extends SpoCommand_1.default {
44
44
  }
45
45
  try {
46
46
  if (args.options.upn) {
47
- args.options.principalId = yield this.GetUserPrincipalId(args.options);
48
- yield this.RemoveRoleAssignment(logger, args.options);
47
+ args.options.principalId = yield this.getUserPrincipalId(args.options);
48
+ yield this.removeRoleAssignment(logger, args.options);
49
49
  }
50
50
  else if (args.options.groupName) {
51
- args.options.principalId = yield this.GetGroupPrincipalId(args.options);
52
- yield this.RemoveRoleAssignment(logger, args.options);
51
+ args.options.principalId = yield this.getGroupPrincipalId(args.options);
52
+ yield this.removeRoleAssignment(logger, args.options);
53
53
  }
54
54
  else {
55
- yield this.RemoveRoleAssignment(logger, args.options);
55
+ yield this.removeRoleAssignment(logger, args.options);
56
56
  }
57
57
  }
58
58
  catch (err) {
@@ -75,7 +75,7 @@ class SpoWebRoleAssignmentRemoveCommand extends SpoCommand_1.default {
75
75
  }
76
76
  });
77
77
  }
78
- RemoveRoleAssignment(logger, options) {
78
+ removeRoleAssignment(logger, options) {
79
79
  const requestOptions = {
80
80
  url: `${options.webUrl}/_api/web/roleassignments/removeroleassignment(principalid='${options.principalId}')`,
81
81
  method: 'POST',
@@ -90,7 +90,7 @@ class SpoWebRoleAssignmentRemoveCommand extends SpoCommand_1.default {
90
90
  .then(_ => Promise.resolve())
91
91
  .catch((err) => Promise.reject(err));
92
92
  }
93
- GetGroupPrincipalId(options) {
93
+ getGroupPrincipalId(options) {
94
94
  const groupGetCommandOptions = {
95
95
  webUrl: options.webUrl,
96
96
  name: options.groupName,
@@ -106,7 +106,7 @@ class SpoWebRoleAssignmentRemoveCommand extends SpoCommand_1.default {
106
106
  return Promise.reject(err);
107
107
  });
108
108
  }
109
- GetUserPrincipalId(options) {
109
+ getUserPrincipalId(options) {
110
110
  const userGetCommandOptions = {
111
111
  webUrl: options.webUrl,
112
112
  email: options.upn,
@@ -38,6 +38,7 @@ exports.default = {
38
38
  CUSTOMACTION_REMOVE: `${prefix} customaction remove`,
39
39
  EVENTRECEIVER_GET: `${prefix} eventreceiver get`,
40
40
  EVENTRECEIVER_LIST: `${prefix} eventreceiver list`,
41
+ EVENTRECEIVER_REMOVE: `${prefix} eventreceiver remove`,
41
42
  EXTERNALUSER_LIST: `${prefix} externaluser list`,
42
43
  FEATURE_DISABLE: `${prefix} feature disable`,
43
44
  FEATURE_ENABLE: `${prefix} feature enable`,
@@ -58,6 +59,7 @@ exports.default = {
58
59
  FILE_RENAME: `${prefix} file rename`,
59
60
  FILE_ROLEASSIGNMENT_ADD: `${prefix} file roleassignment add`,
60
61
  FILE_ROLEASSIGNMENT_REMOVE: `${prefix} file roleassignment remove`,
62
+ FILE_ROLEINHERITANCE_BREAK: `${prefix} file roleinheritance break`,
61
63
  FILE_ROLEINHERITANCE_RESET: `${prefix} file roleinheritance reset`,
62
64
  FILE_SHARINGINFO_GET: `${prefix} file sharinginfo get`,
63
65
  FOLDER_ADD: `${prefix} folder add`,
@@ -67,6 +69,7 @@ exports.default = {
67
69
  FOLDER_MOVE: `${prefix} folder move`,
68
70
  FOLDER_REMOVE: `${prefix} folder remove`,
69
71
  FOLDER_RENAME: `${prefix} folder rename`,
72
+ FOLDER_ROLEASSIGNMENT_REMOVE: `${prefix} folder roleassignment remove`,
70
73
  FOLDER_ROLEINHERITANCE_BREAK: `${prefix} folder roleinheritance break`,
71
74
  FOLDER_ROLEINHERITANCE_RESET: `${prefix} folder roleinheritance reset`,
72
75
  GET: `${prefix} get`,
@@ -83,9 +86,7 @@ exports.default = {
83
86
  HOMESITE_GET: `${prefix} homesite get`,
84
87
  HOMESITE_REMOVE: `${prefix} homesite remove`,
85
88
  HOMESITE_SET: `${prefix} homesite set`,
86
- HUBSITE_CONNECT: `${prefix} hubsite connect`,
87
89
  HUBSITE_DATA_GET: `${prefix} hubsite data get`,
88
- HUBSITE_DISCONNECT: `${prefix} hubsite disconnect`,
89
90
  HUBSITE_GET: `${prefix} hubsite get`,
90
91
  HUBSITE_LIST: `${prefix} hubsite list`,
91
92
  HUBSITE_REGISTER: `${prefix} hubsite register`,
@@ -134,6 +135,7 @@ exports.default = {
134
135
  LISTITEM_RECORD_DECLARE: `${prefix} listitem record declare`,
135
136
  LISTITEM_RECORD_UNDECLARE: `${prefix} listitem record undeclare`,
136
137
  LISTITEM_REMOVE: `${prefix} listitem remove`,
138
+ LISTITEM_ROLEASSIGNMENT_ADD: `${prefix} listitem roleassignment add`,
137
139
  LISTITEM_ROLEASSIGNMENT_REMOVE: `${prefix} listitem roleassignment remove`,
138
140
  LISTITEM_ROLEINHERITANCE_BREAK: `${prefix} listitem roleinheritance break`,
139
141
  LISTITEM_ROLEINHERITANCE_RESET: `${prefix} listitem roleinheritance reset`,
@@ -204,6 +206,8 @@ exports.default = {
204
206
  SITE_ENSURE: `${prefix} site ensure`,
205
207
  SITE_GET: `${prefix} site get`,
206
208
  SITE_GROUPIFY: `${prefix} site groupify`,
209
+ SITE_HUBSITE_DISCONNECT: `${prefix} site hubsite disconnect`,
210
+ SITE_HUBSITE_CONNECT: `${prefix} site hubsite connect`,
207
211
  SITE_LIST: `${prefix} site list`,
208
212
  SITE_INPLACERECORDSMANAGEMENT_SET: `${prefix} site inplacerecordsmanagement set`,
209
213
  SITE_RECYCLEBINITEM_LIST: `${prefix} site recyclebinitem list`,
@@ -73,8 +73,8 @@ class TeamsChannelAddCommand extends GraphCommand_1.default {
73
73
  },
74
74
  responseType: 'json'
75
75
  };
76
- if (args.options.type === 'private') {
77
- // Private channels must have at least 1 owner
76
+ if (args.options.type === 'private' || args.options.type === 'shared') {
77
+ // Private and Shared channels must have at least 1 owner
78
78
  requestOptions.data.members = [
79
79
  {
80
80
  '@odata.type': '#microsoft.graph.aadUserConversationMember',
@@ -119,7 +119,7 @@ _TeamsChannelAddCommand_instances = new WeakSet(), _TeamsChannelAddCommand_initT
119
119
  option: '-d, --description [description]'
120
120
  }, {
121
121
  option: '--type [type]',
122
- autocomplete: ['standard', 'private']
122
+ autocomplete: ['standard', 'private', 'shared']
123
123
  }, {
124
124
  option: '--owner [owner]'
125
125
  });
@@ -128,14 +128,14 @@ _TeamsChannelAddCommand_instances = new WeakSet(), _TeamsChannelAddCommand_initT
128
128
  if (args.options.teamId && !validation_1.validation.isValidGuid(args.options.teamId)) {
129
129
  return `${args.options.teamId} is not a valid GUID`;
130
130
  }
131
- if (args.options.type && ['standard', 'private'].indexOf(args.options.type) === -1) {
132
- return `${args.options.type} is not a valid type value. Allowed values standard|private.`;
131
+ if (args.options.type && ['standard', 'private', 'shared'].indexOf(args.options.type) === -1) {
132
+ return `${args.options.type} is not a valid type value. Allowed values standard|private|shared.`;
133
133
  }
134
- if (args.options.type === 'private' && !args.options.owner) {
135
- return 'Specify owner when creating a private channel.';
134
+ if ((args.options.type === 'private' || args.options.type === 'shared') && !args.options.owner) {
135
+ return `Specify owner when creating a ${args.options.type} channel.`;
136
136
  }
137
- if (args.options.type !== 'private' && args.options.owner) {
138
- return 'Specify owner only when creating a private channel.';
137
+ if ((args.options.type !== 'private' && args.options.type !== 'shared') && args.options.owner) {
138
+ return `Specify owner only when creating a private or shared channel.`;
139
139
  }
140
140
  return true;
141
141
  }));
@@ -54,10 +54,6 @@ class TeamsTeamSetCommand extends GraphCommand_1.default {
54
54
  }
55
55
  commandAction(logger, args) {
56
56
  return __awaiter(this, void 0, void 0, function* () {
57
- if (args.options.displayName) {
58
- args.options.name = args.options.displayName;
59
- this.warn(logger, `Option 'displayName' is deprecated. Please use 'name' instead.`);
60
- }
61
57
  const data = this.mapRequestBody(args.options);
62
58
  const requestOptions = {
63
59
  url: `${this.resource}/v1.0/groups/${encodeURIComponent(args.options.id)}`,
@@ -87,8 +83,6 @@ _TeamsTeamSetCommand_instances = new WeakSet(), _TeamsTeamSetCommand_initTelemet
87
83
  option: '-i, --id [id]'
88
84
  }, {
89
85
  option: '-n, --name [name]'
90
- }, {
91
- option: '--displayName [displayName]'
92
86
  }, {
93
87
  option: '--description [description]'
94
88
  }, {
@@ -113,7 +107,6 @@ _TeamsTeamSetCommand_instances = new WeakSet(), _TeamsTeamSetCommand_initTelemet
113
107
  }));
114
108
  };
115
109
  TeamsTeamSetCommand.props = [
116
- 'displayName',
117
110
  'description',
118
111
  'mailNickName',
119
112
  'classification',
@@ -13,9 +13,10 @@ 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 _TodoTaskAddCommand_instances, _TodoTaskAddCommand_initTelemetry, _TodoTaskAddCommand_initOptions, _TodoTaskAddCommand_initOptionSets;
16
+ var _TodoTaskAddCommand_instances, _TodoTaskAddCommand_initTelemetry, _TodoTaskAddCommand_initOptions, _TodoTaskAddCommand_initValidators, _TodoTaskAddCommand_initOptionSets;
17
17
  Object.defineProperty(exports, "__esModule", { value: true });
18
18
  const request_1 = require("../../../../request");
19
+ const validation_1 = require("../../../../utils/validation");
19
20
  const GraphCommand_1 = require("../../../base/GraphCommand");
20
21
  const commands_1 = require("../../commands");
21
22
  class TodoTaskAddCommand extends GraphCommand_1.default {
@@ -24,6 +25,7 @@ class TodoTaskAddCommand extends GraphCommand_1.default {
24
25
  _TodoTaskAddCommand_instances.add(this);
25
26
  __classPrivateFieldGet(this, _TodoTaskAddCommand_instances, "m", _TodoTaskAddCommand_initTelemetry).call(this);
26
27
  __classPrivateFieldGet(this, _TodoTaskAddCommand_instances, "m", _TodoTaskAddCommand_initOptions).call(this);
28
+ __classPrivateFieldGet(this, _TodoTaskAddCommand_instances, "m", _TodoTaskAddCommand_initValidators).call(this);
27
29
  __classPrivateFieldGet(this, _TodoTaskAddCommand_instances, "m", _TodoTaskAddCommand_initOptionSets).call(this);
28
30
  }
29
31
  get name() {
@@ -33,6 +35,7 @@ class TodoTaskAddCommand extends GraphCommand_1.default {
33
35
  return 'Add a task to a Microsoft To Do task list';
34
36
  }
35
37
  commandAction(logger, args) {
38
+ var _a, _b;
36
39
  return __awaiter(this, void 0, void 0, function* () {
37
40
  const endpoint = `${this.resource}/v1.0`;
38
41
  try {
@@ -44,7 +47,14 @@ class TodoTaskAddCommand extends GraphCommand_1.default {
44
47
  'Content-Type': 'application/json'
45
48
  },
46
49
  data: {
47
- title: args.options.title
50
+ title: args.options.title,
51
+ body: {
52
+ content: args.options.bodyContent,
53
+ contentType: ((_a = args.options.bodyContentType) === null || _a === void 0 ? void 0 : _a.toLowerCase()) || 'text'
54
+ },
55
+ importance: (_b = args.options.importance) === null || _b === void 0 ? void 0 : _b.toLowerCase(),
56
+ dueDateTime: this.getDateTimeTimeZone(args.options.dueDateTime),
57
+ reminderDateTime: this.getDateTimeTimeZone(args.options.reminderDateTime)
48
58
  },
49
59
  responseType: 'json'
50
60
  };
@@ -56,6 +66,15 @@ class TodoTaskAddCommand extends GraphCommand_1.default {
56
66
  }
57
67
  });
58
68
  }
69
+ getDateTimeTimeZone(dateTime) {
70
+ if (!dateTime) {
71
+ return undefined;
72
+ }
73
+ return {
74
+ dateTime: dateTime,
75
+ timeZone: 'Etc/GMT'
76
+ };
77
+ }
59
78
  getTodoListId(args) {
60
79
  if (args.options.listId) {
61
80
  return Promise.resolve(args.options.listId);
@@ -81,7 +100,12 @@ _TodoTaskAddCommand_instances = new WeakSet(), _TodoTaskAddCommand_initTelemetry
81
100
  this.telemetry.push((args) => {
82
101
  Object.assign(this.telemetryProperties, {
83
102
  listId: typeof args.options.listId !== 'undefined',
84
- listName: typeof args.options.listName !== 'undefined'
103
+ listName: typeof args.options.listName !== 'undefined',
104
+ bodyContent: typeof args.options.bodyContent !== 'undefined',
105
+ bodyContentType: args.options.bodyContentType,
106
+ dueDateTime: typeof args.options.dueDateTime !== 'undefined',
107
+ importance: args.options.importance,
108
+ reminderDateTime: typeof args.options.reminderDateTime !== 'undefined'
85
109
  });
86
110
  });
87
111
  }, _TodoTaskAddCommand_initOptions = function _TodoTaskAddCommand_initOptions() {
@@ -91,7 +115,35 @@ _TodoTaskAddCommand_instances = new WeakSet(), _TodoTaskAddCommand_initTelemetry
91
115
  option: '--listName [listName]'
92
116
  }, {
93
117
  option: '--listId [listId]'
118
+ }, {
119
+ option: '--bodyContent [bodyContent]'
120
+ }, {
121
+ option: '--bodyContentType [bodyContentType]',
122
+ autocomplete: ['text', 'html']
123
+ }, {
124
+ option: '--dueDateTime [dueDateTime]'
125
+ }, {
126
+ option: '--importance [importance]',
127
+ autocomplete: ['low', 'normal', 'high']
128
+ }, {
129
+ option: '--reminderDateTime [reminderDateTime]'
94
130
  });
131
+ }, _TodoTaskAddCommand_initValidators = function _TodoTaskAddCommand_initValidators() {
132
+ this.validators.push((args) => __awaiter(this, void 0, void 0, function* () {
133
+ if (args.options.bodyContentType && ['text', 'html'].indexOf(args.options.bodyContentType.toLowerCase()) === -1) {
134
+ return `'${args.options.bodyContentType}' is not a valid value for the bodyContentType option. Allowed values are text|html`;
135
+ }
136
+ if (args.options.importance && ['low', 'normal', 'high'].indexOf(args.options.importance.toLowerCase()) === -1) {
137
+ return `'${args.options.importance}' is not a valid value for the importance option. Allowed values are low|normal|high`;
138
+ }
139
+ if (args.options.dueDateTime && !validation_1.validation.isValidISODateTime(args.options.dueDateTime)) {
140
+ return `'${args.options.dueDateTime}' is not a valid ISO date string`;
141
+ }
142
+ if (args.options.reminderDateTime && !validation_1.validation.isValidISODateTime(args.options.reminderDateTime)) {
143
+ return `'${args.options.reminderDateTime}' is not a valid ISO date string`;
144
+ }
145
+ return true;
146
+ }));
95
147
  }, _TodoTaskAddCommand_initOptionSets = function _TodoTaskAddCommand_initOptionSets() {
96
148
  this.optionSets.push(['listId', 'listName']);
97
149
  };
@@ -16,6 +16,7 @@ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (
16
16
  var _TodoTaskSetCommand_instances, _TodoTaskSetCommand_initTelemetry, _TodoTaskSetCommand_initOptions, _TodoTaskSetCommand_initValidators, _TodoTaskSetCommand_initOptionSets;
17
17
  Object.defineProperty(exports, "__esModule", { value: true });
18
18
  const request_1 = require("../../../../request");
19
+ const validation_1 = require("../../../../utils/validation");
19
20
  const GraphCommand_1 = require("../../../base/GraphCommand");
20
21
  const commands_1 = require("../../commands");
21
22
  class TodoTaskSetCommand extends GraphCommand_1.default {
@@ -76,7 +77,14 @@ class TodoTaskSetCommand extends GraphCommand_1.default {
76
77
  return Promise.resolve(taskList.id);
77
78
  });
78
79
  }
80
+ getDateTimeTimeZone(dateTime) {
81
+ return {
82
+ dateTime: dateTime,
83
+ timeZone: 'Etc/GMT'
84
+ };
85
+ }
79
86
  mapRequestBody(options) {
87
+ var _a;
80
88
  const requestBody = {};
81
89
  if (options.status) {
82
90
  requestBody.status = options.status;
@@ -84,6 +92,21 @@ class TodoTaskSetCommand extends GraphCommand_1.default {
84
92
  if (options.title) {
85
93
  requestBody.title = options.title;
86
94
  }
95
+ if (options.importance) {
96
+ requestBody.importance = options.importance.toLowerCase();
97
+ }
98
+ if (options.bodyContentType || options.bodyContent) {
99
+ requestBody.body = {
100
+ content: options.bodyContent,
101
+ contentType: ((_a = options.bodyContentType) === null || _a === void 0 ? void 0 : _a.toLowerCase()) || 'text'
102
+ };
103
+ }
104
+ if (options.dueDateTime) {
105
+ requestBody.dueDateTime = this.getDateTimeTimeZone(options.dueDateTime);
106
+ }
107
+ if (options.reminderDateTime) {
108
+ requestBody.reminderDateTime = this.getDateTimeTimeZone(options.reminderDateTime);
109
+ }
87
110
  return requestBody;
88
111
  }
89
112
  }
@@ -93,7 +116,12 @@ _TodoTaskSetCommand_instances = new WeakSet(), _TodoTaskSetCommand_initTelemetry
93
116
  listId: typeof args.options.listId !== 'undefined',
94
117
  listName: typeof args.options.listName !== 'undefined',
95
118
  status: typeof args.options.status !== 'undefined',
96
- title: typeof args.options.title !== 'undefined'
119
+ title: typeof args.options.title !== 'undefined',
120
+ bodyContent: typeof args.options.bodyContent !== 'undefined',
121
+ bodyContentType: args.options.bodyContentType,
122
+ dueDateTime: typeof args.options.dueDateTime !== 'undefined',
123
+ importance: args.options.importance,
124
+ reminderDateTime: typeof args.options.reminderDateTime !== 'undefined'
97
125
  });
98
126
  });
99
127
  }, _TodoTaskSetCommand_initOptions = function _TodoTaskSetCommand_initOptions() {
@@ -108,6 +136,18 @@ _TodoTaskSetCommand_instances = new WeakSet(), _TodoTaskSetCommand_initTelemetry
108
136
  option: '--listName [listName]'
109
137
  }, {
110
138
  option: '--listId [listId]'
139
+ }, {
140
+ option: '--bodyContent [bodyContent]'
141
+ }, {
142
+ option: '--bodyContentType [bodyContentType]',
143
+ autocomplete: ['text', 'html']
144
+ }, {
145
+ option: '--dueDateTime [dueDateTime]'
146
+ }, {
147
+ option: '--importance [importance]',
148
+ autocomplete: ['low', 'normal', 'high']
149
+ }, {
150
+ option: '--reminderDateTime [reminderDateTime]'
111
151
  });
112
152
  }, _TodoTaskSetCommand_initValidators = function _TodoTaskSetCommand_initValidators() {
113
153
  this.validators.push((args) => __awaiter(this, void 0, void 0, function* () {
@@ -119,6 +159,18 @@ _TodoTaskSetCommand_instances = new WeakSet(), _TodoTaskSetCommand_initTelemetry
119
159
  args.options.status !== 'deferred') {
120
160
  return `${args.options.status} is not a valid value. Allowed values are notStarted|inProgress|completed|waitingOnOthers|deferred`;
121
161
  }
162
+ if (args.options.bodyContentType && ['text', 'html'].indexOf(args.options.bodyContentType.toLowerCase()) === -1) {
163
+ return `'${args.options.bodyContentType}' is not a valid value for the bodyContentType option. Allowed values are text|html`;
164
+ }
165
+ if (args.options.importance && ['low', 'normal', 'high'].indexOf(args.options.importance.toLowerCase()) === -1) {
166
+ return `'${args.options.importance}' is not a valid value for the importance option. Allowed values are low|normal|high`;
167
+ }
168
+ if (args.options.dueDateTime && !validation_1.validation.isValidISODateTime(args.options.dueDateTime)) {
169
+ return `'${args.options.dueDateTime}' is not a valid ISO date string`;
170
+ }
171
+ if (args.options.reminderDateTime && !validation_1.validation.isValidISODateTime(args.options.reminderDateTime)) {
172
+ return `'${args.options.reminderDateTime}' is not a valid ISO date string`;
173
+ }
122
174
  return true;
123
175
  }));
124
176
  }, _TodoTaskSetCommand_initOptionSets = function _TodoTaskSetCommand_initOptionSets() {
@@ -0,0 +1,18 @@
1
+ ## Available settings
2
+
3
+ Following is the list of configuration settings available in CLI for Microsoft 365.
4
+
5
+ Setting name|Definition|Default value
6
+ ------------|----------|-------------
7
+ `autoOpenLinksInBrowser`|Automatically open the browser for all commands which return a url and expect the user to copy paste this to the browser. For example when logging in, using `m365 login` in device code mode.|`false`
8
+ `copyDeviceCodeToClipboard`|Automatically copy the device code to the clipboard when running `m365 login` command in device code mode|`false`
9
+ `csvEscape`|Single character used for escaping; only apply to characters matching the quote and the escape options|`"`
10
+ `csvHeader`|Display the column names on the first line|`true`
11
+ `csvQuote`|The quote characters surrounding a field. An empty quote value will preserve the original field, whether it contains quotation marks or not.|` `
12
+ `csvQuoted`|Quote all the non-empty fields even if not required|`false`
13
+ `csvQuotedEmpty`|Quote empty strings and overrides quoted_string on empty strings when defined|`false`
14
+ `errorOutput`|Defines if errors should be written to `stdout` or `stderr`|`stderr`
15
+ `output`|Defines the default output when issuing a command|`json`
16
+ `printErrorsAsPlainText`|When output mode is set to `json`, print error messages as plain-text rather than JSON|`true`
17
+ `prompt`|Prompts for missing values in required options|`false`
18
+ `showHelpOnFailure`|Automatically display help when executing a command failed|`true`
@@ -37,6 +37,9 @@ m365 outlook mail send [options]
37
37
  `--importance [importance]`
38
38
  : The importance of the message. Available options: `low`, `normal` or `high`. Default is `normal`.
39
39
 
40
+ `--attachment [attachment]`
41
+ : Path to the file that will be added as attachment to the email. This option can be used multiple times to attach multiple attachments.
42
+
40
43
  `--saveToSentItems [saveToSentItems]`
41
44
  : Save email in the sent items folder. Default `true`.
42
45
 
@@ -44,6 +47,10 @@ m365 outlook mail send [options]
44
47
 
45
48
  ## Remarks
46
49
 
50
+ ### Attachments
51
+
52
+ When using the `attachment` option, note that the total size of all attachment files cannot exceed 3 MB.
53
+
47
54
  ### If you are connected using app only authentication
48
55
 
49
56
  - Always specify a user id or upn in the `--sender` option. The email will be sent as if it came from the specified user, and can optionally be saved in the sent folder of that user account.
@@ -110,3 +117,9 @@ Send an email with cc and bcc recipients marked as important
110
117
  ```sh
111
118
  m365 outlook mail send --to chris@contoso.com --cc claire@contoso.com --bcc randy@contoso.com --subject "DG2000 Data Sheets" --bodyContents "The latest data sheets are in the team site" --importance high
112
119
  ```
120
+
121
+ Send an email with multiple attachments
122
+
123
+ ```sh
124
+ m365 outlook mail send --to chris@contoso.com --subject "Monthly reports" --bodyContents "Here are the reports of this month." --attachment "C:/Reports/File1.jpg" --attachment "C:/Reports/File2.docx" --attachment "C:/Reports/File3.xlsx"
125
+ ```
@@ -43,3 +43,32 @@ Adds a Microsoft Planner bucket with the name _My Planner Bucket_ for plan with
43
43
  ```sh
44
44
  m365 planner bucket add --name "My Planner Bucket" --planTitle "My Planner Plan" --ownerGroupName "My Planner Group"
45
45
  ```
46
+
47
+ ## Response
48
+
49
+ === "JSON"
50
+
51
+ ``` json
52
+ {
53
+ "name": "My Planner Bucket",
54
+ "planId": "xqQg5FS2LkCp935s-FIFm2QAFkHM",
55
+ "orderHint": "8585363889524958496",
56
+ "id": "ttEB_Uj690STdR3GC1MIDZgANq1U"
57
+ }
58
+ ```
59
+
60
+ === "Text"
61
+
62
+ ``` text
63
+ id : ttEB_Uj690STdR3GC1MIDZgANq1U
64
+ name : My Planner Bucket
65
+ orderHint: 8585363889524958496
66
+ planId : xqQg5FS2LkCp935s-FIFm2QAFkHM
67
+ ```
68
+
69
+ === "CSV"
70
+
71
+ ``` text
72
+ id,name,planId,orderHint
73
+ ttEB_Uj690STdR3GC1MIDZgANq1U,My Planner Bucket,xqQg5FS2LkCp935s-FIFm2QAFkHM,8585363889524958496
74
+ ```
@@ -55,3 +55,32 @@ Gets the Microsoft Planner bucket in the Plan _My Plan_ owned by groupId ee0f40f
55
55
  ```sh
56
56
  m365 planner bucket get --name "Planner Bucket A" --planTitle "My Plan" --ownerGroupId "ee0f40fc-b2f7-45c7-b62d-11b90dd2ea8e"
57
57
  ```
58
+
59
+ ## Response
60
+
61
+ === "JSON"
62
+
63
+ ``` json
64
+ {
65
+ "name": "My Planner Bucket",
66
+ "planId": "xqQg5FS2LkCp935s-FIFm2QAFkHM",
67
+ "orderHint": "8585363889524958496",
68
+ "id": "ttEB_Uj690STdR3GC1MIDZgANq1U"
69
+ }
70
+ ```
71
+
72
+ === "Text"
73
+
74
+ ``` text
75
+ id : ttEB_Uj690STdR3GC1MIDZgANq1U
76
+ name : My Planner Bucket
77
+ orderHint: 8585363889524958496
78
+ planId : xqQg5FS2LkCp935s-FIFm2QAFkHM
79
+ ```
80
+
81
+ === "CSV"
82
+
83
+ ``` text
84
+ id,name,planId,orderHint
85
+ ttEB_Uj690STdR3GC1MIDZgANq1U,My Planner Bucket,xqQg5FS2LkCp935s-FIFm2QAFkHM,8585363889524958496
86
+ ```
@@ -37,3 +37,33 @@ Lists the Microsoft Planner buckets in the Plan _My Plan_ owned by group _My Gro
37
37
  ```sh
38
38
  m365 planner bucket list --planTitle "My Plan" --ownerGroupName "My Group"
39
39
  ```
40
+
41
+ ## Response
42
+
43
+ === "JSON"
44
+
45
+ ``` json
46
+ [
47
+ {
48
+ "name": "My Planner Bucket",
49
+ "planId": "xqQg5FS2LkCp935s-FIFm2QAFkHM",
50
+ "orderHint": "8585363889524958496",
51
+ "id": "ttEB_Uj690STdR3GC1MIDZgANq1U"
52
+ }
53
+ ]
54
+ ```
55
+
56
+ === "Text"
57
+
58
+ ``` text
59
+ id name planId orderHint
60
+ ---------------------------- ----------------- ---------------------------- -------------------
61
+ ttEB_Uj690STdR3GC1MIDZgANq1U My Planner Bucket xqQg5FS2LkCp935s-FIFm2QAFkHM 8585363889524958496
62
+ ```
63
+
64
+ === "CSV"
65
+
66
+ ``` CSV
67
+ id,name,planId,orderHint
68
+ ttEB_Uj690STdR3GC1MIDZgANq1U,My Planner Bucket,xqQg5FS2LkCp935s-FIFm2QAFkHM,8585363889524958496
69
+ ```
@@ -58,3 +58,7 @@ Removes the Microsoft Planner bucket with name _My Bucket_ in the Plan _My Plan_
58
58
  ```sh
59
59
  m365 planner bucket remove --name "My Bucket" --planTitle "My Plan" --ownerGroupName "My Group"
60
60
  ```
61
+
62
+ ## Response
63
+
64
+ The command won't return a response on success.
@@ -55,3 +55,7 @@ Updates the Microsoft Planner bucket named _My Bucket_ in the Plan _My Plan_ own
55
55
  ```sh
56
56
  m365 planner bucket set --name "My Bucket" --planTitle "My Plan" --ownerGroupId 00000000-0000-0000-0000-000000000000 --newName "New bucket name"
57
57
  ```
58
+
59
+ ## Response
60
+
61
+ The command won't return a response on success.
@@ -50,3 +50,126 @@ Adds a Microsoft Planner plan with the name _My Planner Plan_ for Group _My Plan
50
50
  ```sh
51
51
  m365 planner plan add --title 'My Planner Plan' --ownerGroupName 'My Planner Group' --shareWithUserNames 'Allan.Carroll@contoso.com,Ida.Stevens@contoso.com'
52
52
  ```
53
+
54
+ ## Response
55
+
56
+ ### Standard response
57
+
58
+ === "JSON"
59
+
60
+ ``` json
61
+ {
62
+ "createdDateTime": "2015-03-30T18:36:49.2407981Z",
63
+ "owner": "ebf3b108-5234-4e22-b93d-656d7dae5874",
64
+ "title": "My Planner Plan",
65
+ "id": "xqQg5FS2LkCp935s-FIFm2QAFkHM",
66
+ "createdBy": {
67
+ "user": {
68
+ "displayName": null,
69
+ "id": "95e27074-6c4a-447a-aa24-9d718a0b86fa"
70
+ },
71
+ "application": {
72
+ "displayName": null,
73
+ "id": "ebf3b108-5234-4e22-b93d-656d7dae5874"
74
+ }
75
+ },
76
+ "container": {
77
+ "containerId": "ebf3b108-5234-4e22-b93d-656d7dae5874",
78
+ "type": "group",
79
+ "url": "https://graph.microsoft.com/v1.0/groups/ebf3b108-5234-4e22-b93d-656d7dae5874"
80
+ }
81
+ }
82
+ ```
83
+
84
+ === "Text"
85
+
86
+ ``` text
87
+ createdDateTime: 2015-03-30T18:36:49.2407981Z
88
+ id : xqQg5FS2LkCp935s-FIFm2QAFkHM
89
+ owner : ebf3b108-5234-4e22-b93d-656d7dae5874
90
+ title : My Planner Plan
91
+ ```
92
+
93
+ === "CSV"
94
+
95
+ ``` text
96
+ id,title,createdDateTime,owner
97
+ xqQg5FS2LkCp935s-FIFm2QAFkHM,My Planner Plan,2015-03-30T18:36:49.2407981Z,ebf3b108-5234-4e22-b93d-656d7dae5874
98
+ ```
99
+
100
+ ### `shareWithUserIds`, `shareWithUserNames` response
101
+
102
+ When we make use of the option `shareWithUserIds` or `shareWithUserNames` the response will differ.
103
+
104
+ === "JSON"
105
+
106
+ ``` json
107
+ {
108
+ "createdDateTime": "2015-03-30T18:36:49.2407981Z",
109
+ "owner": "ebf3b108-5234-4e22-b93d-656d7dae5874",
110
+ "title": "My Planner Plan",
111
+ "id": "xqQg5FS2LkCp935s-FIFm2QAFkHM",
112
+ "createdBy": {
113
+ "user": {
114
+ "displayName": null,
115
+ "id": "95e27074-6c4a-447a-aa24-9d718a0b86fa"
116
+ },
117
+ "application": {
118
+ "displayName": null,
119
+ "id": "ebf3b108-5234-4e22-b93d-656d7dae5874"
120
+ }
121
+ },
122
+ "container": {
123
+ "containerId": "ebf3b108-5234-4e22-b93d-656d7dae5874",
124
+ "type": "group",
125
+ "url": "https://graph.microsoft.com/v1.0/groups/ebf3b108-5234-4e22-b93d-656d7dae5874"
126
+ },
127
+ "sharedWith": {
128
+ "ebf3b108-5234-4e22-b93d-656d7dae5874": true,
129
+ "6463a5ce-2119-4198-9f2a-628761df4a62": true
130
+ },
131
+ "categoryDescriptions": {
132
+ "category1": null,
133
+ "category2": null,
134
+ "category3": null,
135
+ "category4": null,
136
+ "category5": null,
137
+ "category6": null,
138
+ "category7": null,
139
+ "category8": null,
140
+ "category9": null,
141
+ "category10": null,
142
+ "category11": null,
143
+ "category12": null,
144
+ "category13": null,
145
+ "category14": null,
146
+ "category15": null,
147
+ "category16": null,
148
+ "category17": null,
149
+ "category18": null,
150
+ "category19": null,
151
+ "category20": null,
152
+ "category21": null,
153
+ "category22": null,
154
+ "category23": null,
155
+ "category24": null,
156
+ "category25": null
157
+ }
158
+ }
159
+ ```
160
+
161
+ === "Text"
162
+
163
+ ``` text
164
+ createdDateTime: 2015-03-30T18:36:49.2407981Z
165
+ id : xqQg5FS2LkCp935s-FIFm2QAFkHM
166
+ owner : ebf3b108-5234-4e22-b93d-656d7dae5874
167
+ title : My Planner Plan
168
+ ```
169
+
170
+ === "CSV"
171
+
172
+ ``` text
173
+ id,title,createdDateTime,owner
174
+ xqQg5FS2LkCp935s-FIFm2QAFkHM,My Planner Plan,2015-03-30T18:36:49.2407981Z,ebf3b108-5234-4e22-b93d-656d7dae5874
175
+ ```