@pnp/cli-microsoft365 5.7.0 → 5.8.0-beta.29e39ab

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 (143) hide show
  1. package/dist/cli/Cli.js +1 -1
  2. package/dist/m365/aad/commands/app/app-get.js +4 -11
  3. package/dist/m365/aad/commands/app/app-remove.js +4 -11
  4. package/dist/m365/aad/commands/app/app-role-add.js +5 -10
  5. package/dist/m365/aad/commands/app/app-role-list.js +4 -24
  6. package/dist/m365/aad/commands/app/app-role-remove.js +4 -22
  7. package/dist/m365/aad/commands/app/app-set.js +4 -11
  8. package/dist/m365/aad/commands/approleassignment/approleassignment-add.js +4 -8
  9. package/dist/m365/aad/commands/approleassignment/approleassignment-list.js +4 -11
  10. package/dist/m365/aad/commands/approleassignment/approleassignment-remove.js +4 -8
  11. package/dist/m365/aad/commands/groupsettingtemplate/groupsettingtemplate-get.js +4 -7
  12. package/dist/m365/aad/commands/o365group/o365group-conversation-post-list.js +4 -8
  13. package/dist/m365/aad/commands/o365group/o365group-teamify.js +4 -7
  14. package/dist/m365/aad/commands/o365group/o365group-user-add.js +4 -7
  15. package/dist/m365/aad/commands/o365group/o365group-user-remove.js +4 -7
  16. package/dist/m365/aad/commands/o365group/o365group-user-set.js +4 -7
  17. package/dist/m365/aad/commands/sp/sp-add.js +4 -8
  18. package/dist/m365/aad/commands/sp/sp-get.js +4 -8
  19. package/dist/m365/aad/commands/user/user-get.js +4 -9
  20. package/dist/m365/aad/commands/user/user-list.js +13 -2
  21. package/dist/m365/aad/commands/user/user-set.js +4 -7
  22. package/dist/m365/commands/commands.js +1 -0
  23. package/dist/m365/commands/request.js +153 -0
  24. package/dist/m365/graph/Changelog.js +3 -0
  25. package/dist/m365/graph/commands/changelog/changelog-list.js +160 -0
  26. package/dist/m365/graph/commands.js +1 -0
  27. package/dist/m365/onenote/commands/notebook/notebook-list.js +139 -0
  28. package/dist/m365/onenote/commands.js +7 -0
  29. package/dist/m365/outlook/commands/message/message-list.js +4 -23
  30. package/dist/m365/outlook/commands/message/message-move.js +4 -31
  31. package/dist/m365/pa/commands/app/app-get.js +4 -7
  32. package/dist/m365/planner/commands/bucket/bucket-add.js +4 -7
  33. package/dist/m365/planner/commands/bucket/bucket-list.js +4 -7
  34. package/dist/m365/planner/commands/plan/plan-add.js +4 -7
  35. package/dist/m365/planner/commands/plan/plan-list.js +4 -7
  36. package/dist/m365/planner/commands/task/task-add.js +4 -13
  37. package/dist/m365/planner/commands/task/task-get.js +7 -0
  38. package/dist/m365/pp/commands/environment/environment-list.js +1 -1
  39. package/dist/m365/pp/commands/managementapp/managementapp-add.js +4 -11
  40. package/dist/m365/spfx/commands/project/project-doctor/doctor-1.16.0-beta.1.js +23 -0
  41. package/dist/m365/spfx/commands/project/project-doctor.js +2 -1
  42. package/dist/m365/spfx/commands/project/project-upgrade/rules/FN010008_YORC_nodeVersion.js +47 -0
  43. package/dist/m365/spfx/commands/project/project-upgrade/rules/FN021003_PKG_engines_node.js +48 -0
  44. package/dist/m365/spfx/commands/project/project-upgrade/upgrade-1.16.0-beta.1.js +61 -0
  45. package/dist/m365/spfx/commands/project/project-upgrade.js +16 -13
  46. package/dist/m365/spfx/commands/spfx-doctor.js +90 -79
  47. package/dist/m365/spo/commands/app/app-deploy.js +4 -7
  48. package/dist/m365/spo/commands/app/app-get.js +4 -7
  49. package/dist/m365/spo/commands/contenttype/contenttype-get.js +4 -7
  50. package/dist/m365/spo/commands/contenttype/contenttype-remove.js +5 -14
  51. package/dist/m365/spo/commands/file/file-checkin.js +4 -7
  52. package/dist/m365/spo/commands/file/file-checkout.js +4 -7
  53. package/dist/m365/spo/commands/file/file-get.js +4 -7
  54. package/dist/m365/spo/commands/file/file-remove.js +4 -7
  55. package/dist/m365/spo/commands/file/file-sharinginfo-get.js +4 -7
  56. package/dist/m365/spo/commands/group/group-remove.js +4 -7
  57. package/dist/m365/spo/commands/group/group-user-add.js +4 -13
  58. package/dist/m365/spo/commands/group/group-user-list.js +4 -7
  59. package/dist/m365/spo/commands/group/group-user-remove.js +4 -7
  60. package/dist/m365/spo/commands/hubsite/hubsite-unregister.js +1 -1
  61. package/dist/m365/spo/commands/list/list-contenttype-add.js +4 -7
  62. package/dist/m365/spo/commands/list/list-contenttype-default-set.js +4 -7
  63. package/dist/m365/spo/commands/list/list-contenttype-list.js +4 -7
  64. package/dist/m365/spo/commands/list/list-contenttype-remove.js +4 -7
  65. package/dist/m365/spo/commands/list/list-get.js +4 -7
  66. package/dist/m365/spo/commands/list/list-label-get.js +4 -7
  67. package/dist/m365/spo/commands/list/list-label-set.js +4 -4
  68. package/dist/m365/spo/commands/list/list-remove.js +4 -7
  69. package/dist/m365/spo/commands/list/list-roleassignment-add.js +9 -0
  70. package/dist/m365/spo/commands/list/list-roleassignment-remove.js +57 -28
  71. package/dist/m365/spo/commands/list/list-sitescript-get.js +4 -7
  72. package/dist/m365/spo/commands/list/list-view-field-add.js +4 -19
  73. package/dist/m365/spo/commands/list/list-view-field-remove.js +4 -19
  74. package/dist/m365/spo/commands/list/list-view-field-set.js +4 -19
  75. package/dist/m365/spo/commands/list/list-view-get.js +4 -10
  76. package/dist/m365/spo/commands/list/list-view-list.js +4 -7
  77. package/dist/m365/spo/commands/list/list-view-remove.js +4 -13
  78. package/dist/m365/spo/commands/list/list-view-set.js +4 -13
  79. package/dist/m365/spo/commands/list/list-webhook-add.js +4 -7
  80. package/dist/m365/spo/commands/list/list-webhook-get.js +4 -7
  81. package/dist/m365/spo/commands/list/list-webhook-remove.js +4 -7
  82. package/dist/m365/spo/commands/list/list-webhook-set.js +4 -7
  83. package/dist/m365/spo/commands/listitem/listitem-add.js +4 -7
  84. package/dist/m365/spo/commands/listitem/listitem-attachment-list.js +4 -7
  85. package/dist/m365/spo/commands/listitem/listitem-get.js +4 -7
  86. package/dist/m365/spo/commands/listitem/listitem-isrecord.js +4 -7
  87. package/dist/m365/spo/commands/listitem/listitem-record-declare.js +4 -7
  88. package/dist/m365/spo/commands/listitem/listitem-record-undeclare.js +4 -7
  89. package/dist/m365/spo/commands/listitem/listitem-remove.js +4 -7
  90. package/dist/m365/spo/commands/listitem/listitem-roleassignment-remove.js +206 -0
  91. package/dist/m365/spo/commands/listitem/listitem-set.js +4 -7
  92. package/dist/m365/spo/commands/site/site-apppermission-add.js +4 -4
  93. package/dist/m365/spo/commands/site/site-apppermission-remove.js +4 -9
  94. package/dist/m365/spo/commands/site/site-apppermission-set.js +4 -4
  95. package/dist/m365/spo/commands/term/term-add.js +4 -7
  96. package/dist/m365/spo/commands/term/term-get.js +4 -7
  97. package/dist/m365/spo/commands/term/term-group-get.js +4 -7
  98. package/dist/m365/spo/commands/term/term-list.js +4 -13
  99. package/dist/m365/spo/commands/term/term-set-add.js +4 -7
  100. package/dist/m365/spo/commands/term/term-set-get.js +4 -13
  101. package/dist/m365/spo/commands/term/term-set-list.js +4 -7
  102. package/dist/m365/spo/commands/user/user-get.js +4 -9
  103. package/dist/m365/spo/commands/user/user-remove.js +4 -7
  104. package/dist/m365/spo/commands/web/web-roleassignment-add.js +187 -0
  105. package/dist/m365/spo/commands/web/web-roleassignment-remove.js +170 -0
  106. package/dist/m365/spo/commands.js +3 -0
  107. package/dist/m365/teams/commands/app/app-install.js +4 -11
  108. package/dist/m365/teams/commands/app/app-update.js +4 -7
  109. package/dist/m365/teams/commands/channel/channel-add.js +4 -7
  110. package/dist/m365/teams/commands/channel/channel-get.js +4 -22
  111. package/dist/m365/teams/commands/channel/channel-list.js +4 -7
  112. package/dist/m365/teams/commands/channel/channel-member-list.js +4 -13
  113. package/dist/m365/teams/commands/channel/channel-member-set.js +4 -21
  114. package/dist/m365/teams/commands/channel/channel-remove.js +4 -7
  115. package/dist/m365/teams/commands/chat/chat-get.js +4 -17
  116. package/dist/m365/teams/commands/chat/chat-message-send.js +4 -17
  117. package/dist/m365/teams/commands/tab/tab-get.js +4 -19
  118. package/dist/m365/teams/commands/team/team-get.js +4 -7
  119. package/dist/m365/teams/commands/user/user-app-list.js +4 -7
  120. package/dist/m365/todo/commands/list/list-remove.js +4 -21
  121. package/dist/m365/todo/commands/list/list-set.js +4 -21
  122. package/dist/m365/todo/commands/task/task-add.js +4 -21
  123. package/dist/m365/todo/commands/task/task-list.js +4 -21
  124. package/dist/m365/todo/commands/task/task-remove.js +4 -21
  125. package/dist/m365/todo/commands/task/task-set.js +4 -7
  126. package/dist/request.js +6 -2
  127. package/docs/docs/cmd/adaptivecard/adaptivecard-send.md +0 -20
  128. package/docs/docs/cmd/graph/changelog/changelog-list.md +53 -0
  129. package/docs/docs/cmd/onenote/notebook/notebook-list.md +70 -0
  130. package/docs/docs/cmd/pp/environment/environment-list.md +1 -1
  131. package/docs/docs/cmd/request.md +76 -0
  132. package/docs/docs/cmd/spfx/project/project-upgrade.md +1 -1
  133. package/docs/docs/cmd/spfx/spfx-doctor.md +3 -3
  134. package/docs/docs/cmd/spo/hubsite/hubsite-unregister.md +2 -2
  135. package/docs/docs/cmd/spo/list/list-roleassignment-add.md +2 -2
  136. package/docs/docs/cmd/spo/list/list-roleassignment-remove.md +5 -2
  137. package/docs/docs/cmd/spo/listitem/listitem-roleassignment-remove.md +67 -0
  138. package/docs/docs/cmd/spo/listitem/listitem-roleinheritance-break.md +6 -6
  139. package/docs/docs/cmd/spo/web/web-roleassignment-add.md +57 -0
  140. package/docs/docs/cmd/spo/web/web-roleassignment-remove.md +54 -0
  141. package/npm-shrinkwrap.json +2 -2
  142. package/package.json +3 -2
  143. package/scripts/Register-CLIM365Completion.ps1 +1 -1
@@ -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 _AadO365GroupUserSetCommand_instances, _AadO365GroupUserSetCommand_initTelemetry, _AadO365GroupUserSetCommand_initOptions, _AadO365GroupUserSetCommand_initValidators;
16
+ var _AadO365GroupUserSetCommand_instances, _AadO365GroupUserSetCommand_initTelemetry, _AadO365GroupUserSetCommand_initOptions, _AadO365GroupUserSetCommand_initValidators, _AadO365GroupUserSetCommand_initOptionSets;
17
17
  Object.defineProperty(exports, "__esModule", { value: true });
18
18
  const request_1 = require("../../../../request");
19
19
  const utils_1 = require("../../../../utils");
@@ -27,6 +27,7 @@ class AadO365GroupUserSetCommand extends GraphCommand_1.default {
27
27
  __classPrivateFieldGet(this, _AadO365GroupUserSetCommand_instances, "m", _AadO365GroupUserSetCommand_initTelemetry).call(this);
28
28
  __classPrivateFieldGet(this, _AadO365GroupUserSetCommand_instances, "m", _AadO365GroupUserSetCommand_initOptions).call(this);
29
29
  __classPrivateFieldGet(this, _AadO365GroupUserSetCommand_instances, "m", _AadO365GroupUserSetCommand_initValidators).call(this);
30
+ __classPrivateFieldGet(this, _AadO365GroupUserSetCommand_instances, "m", _AadO365GroupUserSetCommand_initOptionSets).call(this);
30
31
  }
31
32
  get name() {
32
33
  return commands_2.default.O365GROUP_USER_SET;
@@ -143,12 +144,6 @@ _AadO365GroupUserSetCommand_instances = new WeakSet(), _AadO365GroupUserSetComma
143
144
  });
144
145
  }, _AadO365GroupUserSetCommand_initValidators = function _AadO365GroupUserSetCommand_initValidators() {
145
146
  this.validators.push((args) => __awaiter(this, void 0, void 0, function* () {
146
- if (!args.options.groupId && !args.options.teamId) {
147
- return 'Please provide one of the following parameters: groupId or teamId';
148
- }
149
- if (args.options.groupId && args.options.teamId) {
150
- return 'You cannot provide both a groupId and teamId parameter, please provide only one';
151
- }
152
147
  if (args.options.teamId && !utils_1.validation.isValidGuid(args.options.teamId)) {
153
148
  return `${args.options.teamId} is not a valid GUID`;
154
149
  }
@@ -160,6 +155,8 @@ _AadO365GroupUserSetCommand_instances = new WeakSet(), _AadO365GroupUserSetComma
160
155
  }
161
156
  return true;
162
157
  }));
158
+ }, _AadO365GroupUserSetCommand_initOptionSets = function _AadO365GroupUserSetCommand_initOptionSets() {
159
+ this.optionSets.push(['groupId', 'teamId']);
163
160
  };
164
161
  module.exports = new AadO365GroupUserSetCommand();
165
162
  //# sourceMappingURL=o365group-user-set.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 _AadSpAddCommand_instances, _AadSpAddCommand_initTelemetry, _AadSpAddCommand_initOptions, _AadSpAddCommand_initValidators;
16
+ var _AadSpAddCommand_instances, _AadSpAddCommand_initTelemetry, _AadSpAddCommand_initOptions, _AadSpAddCommand_initValidators, _AadSpAddCommand_initOptionSets;
17
17
  Object.defineProperty(exports, "__esModule", { value: true });
18
18
  const request_1 = require("../../../../request");
19
19
  const utils_1 = require("../../../../utils");
@@ -26,6 +26,7 @@ class AadSpAddCommand extends GraphCommand_1.default {
26
26
  __classPrivateFieldGet(this, _AadSpAddCommand_instances, "m", _AadSpAddCommand_initTelemetry).call(this);
27
27
  __classPrivateFieldGet(this, _AadSpAddCommand_instances, "m", _AadSpAddCommand_initOptions).call(this);
28
28
  __classPrivateFieldGet(this, _AadSpAddCommand_instances, "m", _AadSpAddCommand_initValidators).call(this);
29
+ __classPrivateFieldGet(this, _AadSpAddCommand_instances, "m", _AadSpAddCommand_initOptionSets).call(this);
29
30
  }
30
31
  get name() {
31
32
  return commands_1.default.SP_ADD;
@@ -105,13 +106,6 @@ _AadSpAddCommand_instances = new WeakSet(), _AadSpAddCommand_initTelemetry = fun
105
106
  });
106
107
  }, _AadSpAddCommand_initValidators = function _AadSpAddCommand_initValidators() {
107
108
  this.validators.push((args) => __awaiter(this, void 0, void 0, function* () {
108
- let optionsSpecified = 0;
109
- optionsSpecified += args.options.appId ? 1 : 0;
110
- optionsSpecified += args.options.appName ? 1 : 0;
111
- optionsSpecified += args.options.objectId ? 1 : 0;
112
- if (optionsSpecified !== 1) {
113
- return 'Specify either appId, appName, or objectId';
114
- }
115
109
  if (args.options.appId && !utils_1.validation.isValidGuid(args.options.appId)) {
116
110
  return `${args.options.appId} is not a valid appId GUID`;
117
111
  }
@@ -120,6 +114,8 @@ _AadSpAddCommand_instances = new WeakSet(), _AadSpAddCommand_initTelemetry = fun
120
114
  }
121
115
  return true;
122
116
  }));
117
+ }, _AadSpAddCommand_initOptionSets = function _AadSpAddCommand_initOptionSets() {
118
+ this.optionSets.push(['appId', 'appName', 'objectId']);
123
119
  };
124
120
  module.exports = new AadSpAddCommand();
125
121
  //# sourceMappingURL=sp-add.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 _AadSpGetCommand_instances, _AadSpGetCommand_initTelemetry, _AadSpGetCommand_initOptions, _AadSpGetCommand_initValidators;
16
+ var _AadSpGetCommand_instances, _AadSpGetCommand_initTelemetry, _AadSpGetCommand_initOptions, _AadSpGetCommand_initValidators, _AadSpGetCommand_initOptionSets;
17
17
  Object.defineProperty(exports, "__esModule", { value: true });
18
18
  const request_1 = require("../../../../request");
19
19
  const utils_1 = require("../../../../utils");
@@ -26,6 +26,7 @@ class AadSpGetCommand extends GraphCommand_1.default {
26
26
  __classPrivateFieldGet(this, _AadSpGetCommand_instances, "m", _AadSpGetCommand_initTelemetry).call(this);
27
27
  __classPrivateFieldGet(this, _AadSpGetCommand_instances, "m", _AadSpGetCommand_initOptions).call(this);
28
28
  __classPrivateFieldGet(this, _AadSpGetCommand_instances, "m", _AadSpGetCommand_initValidators).call(this);
29
+ __classPrivateFieldGet(this, _AadSpGetCommand_instances, "m", _AadSpGetCommand_initOptionSets).call(this);
29
30
  }
30
31
  get name() {
31
32
  return commands_1.default.SP_GET;
@@ -105,13 +106,6 @@ _AadSpGetCommand_instances = new WeakSet(), _AadSpGetCommand_initTelemetry = fun
105
106
  });
106
107
  }, _AadSpGetCommand_initValidators = function _AadSpGetCommand_initValidators() {
107
108
  this.validators.push((args) => __awaiter(this, void 0, void 0, function* () {
108
- let optionsSpecified = 0;
109
- optionsSpecified += args.options.appId ? 1 : 0;
110
- optionsSpecified += args.options.displayName ? 1 : 0;
111
- optionsSpecified += args.options.objectId ? 1 : 0;
112
- if (optionsSpecified !== 1) {
113
- return 'Specify either appId, objectId or displayName';
114
- }
115
109
  if (args.options.appId && !utils_1.validation.isValidGuid(args.options.appId)) {
116
110
  return `${args.options.appId} is not a valid appId GUID`;
117
111
  }
@@ -120,6 +114,8 @@ _AadSpGetCommand_instances = new WeakSet(), _AadSpGetCommand_initTelemetry = fun
120
114
  }
121
115
  return true;
122
116
  }));
117
+ }, _AadSpGetCommand_initOptionSets = function _AadSpGetCommand_initOptionSets() {
118
+ this.optionSets.push(['appId', 'displayName', 'objectId']);
123
119
  };
124
120
  module.exports = new AadSpGetCommand();
125
121
  //# sourceMappingURL=sp-get.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 _AadUserGetCommand_instances, _AadUserGetCommand_initTelemetry, _AadUserGetCommand_initOptions, _AadUserGetCommand_initValidators;
16
+ var _AadUserGetCommand_instances, _AadUserGetCommand_initTelemetry, _AadUserGetCommand_initOptions, _AadUserGetCommand_initValidators, _AadUserGetCommand_initOptionSets;
17
17
  Object.defineProperty(exports, "__esModule", { value: true });
18
18
  const request_1 = require("../../../../request");
19
19
  const utils_1 = require("../../../../utils");
@@ -26,6 +26,7 @@ class AadUserGetCommand extends GraphCommand_1.default {
26
26
  __classPrivateFieldGet(this, _AadUserGetCommand_instances, "m", _AadUserGetCommand_initTelemetry).call(this);
27
27
  __classPrivateFieldGet(this, _AadUserGetCommand_instances, "m", _AadUserGetCommand_initOptions).call(this);
28
28
  __classPrivateFieldGet(this, _AadUserGetCommand_instances, "m", _AadUserGetCommand_initValidators).call(this);
29
+ __classPrivateFieldGet(this, _AadUserGetCommand_instances, "m", _AadUserGetCommand_initOptionSets).call(this);
29
30
  }
30
31
  get name() {
31
32
  return commands_1.default.USER_GET;
@@ -94,20 +95,14 @@ _AadUserGetCommand_instances = new WeakSet(), _AadUserGetCommand_initTelemetry =
94
95
  });
95
96
  }, _AadUserGetCommand_initValidators = function _AadUserGetCommand_initValidators() {
96
97
  this.validators.push((args) => __awaiter(this, void 0, void 0, function* () {
97
- if (!args.options.id && !args.options.userName && !args.options.email) {
98
- return 'Specify id, userName or email, one is required';
99
- }
100
- if ((args.options.id && args.options.email) ||
101
- (args.options.id && args.options.userName) ||
102
- (args.options.userName && args.options.email)) {
103
- return 'Use either id, userName or email, but not all';
104
- }
105
98
  if (args.options.id &&
106
99
  !utils_1.validation.isValidGuid(args.options.id)) {
107
100
  return `${args.options.id} is not a valid GUID`;
108
101
  }
109
102
  return true;
110
103
  }));
104
+ }, _AadUserGetCommand_initOptionSets = function _AadUserGetCommand_initOptionSets() {
105
+ this.optionSets.push(['id', 'userName', 'email']);
111
106
  };
112
107
  module.exports = new AadUserGetCommand();
113
108
  //# sourceMappingURL=user-get.js.map
@@ -6,6 +6,7 @@ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (
6
6
  };
7
7
  var _AadUserListCommand_instances, _AadUserListCommand_initTelemetry, _AadUserListCommand_initOptions;
8
8
  Object.defineProperty(exports, "__esModule", { value: true });
9
+ const Command_1 = require("../../../../Command");
9
10
  const utils_1 = require("../../../../utils");
10
11
  const GraphCommand_1 = require("../../../base/GraphCommand");
11
12
  const commands_1 = require("../../commands");
@@ -26,10 +27,17 @@ class AadUserListCommand extends GraphCommand_1.default {
26
27
  return true;
27
28
  }
28
29
  commandAction(logger, args, cb) {
30
+ let filter = '';
29
31
  const properties = args.options.properties ?
30
32
  args.options.properties.split(',').map(p => p.trim()) :
31
33
  ['userPrincipalName', 'displayName'];
32
- const filter = this.getFilter(args.options);
34
+ try {
35
+ filter = this.getFilter(args.options);
36
+ }
37
+ catch (ex) {
38
+ cb(new Command_1.CommandError(ex));
39
+ return;
40
+ }
33
41
  const endpoint = args.options.deleted ? 'directory/deletedItems/microsoft.graph.user' : 'users';
34
42
  const url = `${this.resource}/v1.0/${endpoint}?$select=${properties.join(',')}${(filter.length > 0 ? '&' + filter : '')}&$top=100`;
35
43
  utils_1.odata
@@ -55,7 +63,10 @@ class AadUserListCommand extends GraphCommand_1.default {
55
63
  ];
56
64
  Object.keys(options).forEach(key => {
57
65
  if (excludeOptions.indexOf(key) === -1) {
58
- filters[key] = encodeURIComponent(options[key].replace(/'/g, `''`));
66
+ if (typeof options[key] === 'boolean') {
67
+ throw `Specify value for the ${key} property`;
68
+ }
69
+ filters[key] = encodeURIComponent(options[key].toString().replace(/'/g, `''`));
59
70
  }
60
71
  });
61
72
  let filter = Object.keys(filters).map(key => `startsWith(${key}, '${filters[key]}')`).join(' and ');
@@ -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 _AadUserSetCommand_instances, _AadUserSetCommand_initTelemetry, _AadUserSetCommand_initOptions, _AadUserSetCommand_initValidators;
16
+ var _AadUserSetCommand_instances, _AadUserSetCommand_initTelemetry, _AadUserSetCommand_initOptions, _AadUserSetCommand_initValidators, _AadUserSetCommand_initOptionSets;
17
17
  Object.defineProperty(exports, "__esModule", { value: true });
18
18
  const request_1 = require("../../../../request");
19
19
  const utils_1 = require("../../../../utils");
@@ -26,6 +26,7 @@ class AadUserSetCommand extends GraphCommand_1.default {
26
26
  __classPrivateFieldGet(this, _AadUserSetCommand_instances, "m", _AadUserSetCommand_initTelemetry).call(this);
27
27
  __classPrivateFieldGet(this, _AadUserSetCommand_instances, "m", _AadUserSetCommand_initOptions).call(this);
28
28
  __classPrivateFieldGet(this, _AadUserSetCommand_instances, "m", _AadUserSetCommand_initValidators).call(this);
29
+ __classPrivateFieldGet(this, _AadUserSetCommand_instances, "m", _AadUserSetCommand_initOptionSets).call(this);
29
30
  }
30
31
  get name() {
31
32
  return commands_1.default.USER_SET;
@@ -91,18 +92,14 @@ _AadUserSetCommand_instances = new WeakSet(), _AadUserSetCommand_initTelemetry =
91
92
  });
92
93
  }, _AadUserSetCommand_initValidators = function _AadUserSetCommand_initValidators() {
93
94
  this.validators.push((args) => __awaiter(this, void 0, void 0, function* () {
94
- if (!args.options.objectId && !args.options.userPrincipalName) {
95
- return 'Specify either objectId or userPrincipalName';
96
- }
97
- if (args.options.objectId && args.options.userPrincipalName) {
98
- return 'Specify either objectId or userPrincipalName but not both';
99
- }
100
95
  if (args.options.objectId &&
101
96
  !utils_1.validation.isValidGuid(args.options.objectId)) {
102
97
  return `${args.options.objectId} is not a valid GUID`;
103
98
  }
104
99
  return true;
105
100
  }));
101
+ }, _AadUserSetCommand_initOptionSets = function _AadUserSetCommand_initOptionSets() {
102
+ this.optionSets.push(['objectId', 'userPrincipalName']);
106
103
  };
107
104
  module.exports = new AadUserSetCommand();
108
105
  //# sourceMappingURL=user-set.js.map
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.default = {
4
4
  LOGIN: `login`,
5
5
  LOGOUT: `logout`,
6
+ REQUEST: `request`,
6
7
  STATUS: `status`,
7
8
  VERSION: 'version'
8
9
  };
@@ -0,0 +1,153 @@
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 _RequestCommand_instances, _RequestCommand_initTelemetry, _RequestCommand_initOptions, _RequestCommand_initValidators;
17
+ Object.defineProperty(exports, "__esModule", { value: true });
18
+ const fs = require("fs");
19
+ const Command_1 = require("../../Command");
20
+ const request_1 = require("../../request");
21
+ const commands_1 = require("./commands");
22
+ const path = require("path");
23
+ class RequestCommand extends Command_1.default {
24
+ constructor() {
25
+ super();
26
+ _RequestCommand_instances.add(this);
27
+ this.allowedMethods = ['get', 'post', 'put', 'patch', 'delete', 'head', 'options'];
28
+ __classPrivateFieldGet(this, _RequestCommand_instances, "m", _RequestCommand_initTelemetry).call(this);
29
+ __classPrivateFieldGet(this, _RequestCommand_instances, "m", _RequestCommand_initOptions).call(this);
30
+ __classPrivateFieldGet(this, _RequestCommand_instances, "m", _RequestCommand_initValidators).call(this);
31
+ }
32
+ get name() {
33
+ return commands_1.default.REQUEST;
34
+ }
35
+ get description() {
36
+ return 'Executes the specified web request using CLI for Microsoft 365';
37
+ }
38
+ allowUnknownOptions() {
39
+ return true;
40
+ }
41
+ commandAction(logger, args, cb) {
42
+ if (this.debug) {
43
+ logger.logToStderr(`Preparing request...`);
44
+ }
45
+ const method = (args.options.method || 'get').toUpperCase();
46
+ const headers = {};
47
+ const unknownOptions = this.getUnknownOptions(args.options);
48
+ const unknownOptionsNames = Object.getOwnPropertyNames(unknownOptions);
49
+ unknownOptionsNames.forEach(o => {
50
+ headers[o] = unknownOptions[o];
51
+ });
52
+ if (!headers.accept) {
53
+ headers.accept = 'application/json';
54
+ }
55
+ if (args.options.resource) {
56
+ headers['x-resource'] = args.options.resource;
57
+ }
58
+ const config = {
59
+ url: args.options.url,
60
+ headers,
61
+ method,
62
+ data: args.options.body
63
+ };
64
+ if (headers.accept.toString().startsWith('application/json')) {
65
+ config.responseType = 'json';
66
+ }
67
+ if (args.options.filePath) {
68
+ config.responseType = 'stream';
69
+ }
70
+ if (this.verbose) {
71
+ logger.logToStderr(`Executing request...`);
72
+ }
73
+ if (args.options.filePath) {
74
+ request_1.default
75
+ .execute(config)
76
+ .then((file) => {
77
+ return new Promise((resolve, reject) => {
78
+ const writer = fs.createWriteStream(args.options.filePath);
79
+ file.data.pipe(writer);
80
+ writer.on('error', err => {
81
+ reject(err);
82
+ });
83
+ writer.on('close', () => {
84
+ resolve(args.options.filePath);
85
+ });
86
+ });
87
+ })
88
+ .then((file) => {
89
+ if (this.verbose) {
90
+ logger.logToStderr(`File saved to path ${file}`);
91
+ }
92
+ cb();
93
+ }, (err) => this.handleError(err, logger, cb));
94
+ }
95
+ else {
96
+ request_1.default
97
+ .execute(config)
98
+ .then(response => {
99
+ logger.log(response);
100
+ cb();
101
+ }, (rawRes) => this.handleError(rawRes, logger, cb));
102
+ }
103
+ }
104
+ }
105
+ _RequestCommand_instances = new WeakSet(), _RequestCommand_initTelemetry = function _RequestCommand_initTelemetry() {
106
+ this.telemetry.push((args) => {
107
+ const properties = {
108
+ method: args.options.method || 'get',
109
+ resource: typeof args.options.resource !== 'undefined',
110
+ accept: args.options.accept || 'application/json',
111
+ body: typeof args.options.body !== 'undefined',
112
+ filePath: typeof args.options.filePath !== 'undefined'
113
+ };
114
+ const unknownOptions = this.getUnknownOptions(args.options);
115
+ const unknownOptionsNames = Object.getOwnPropertyNames(unknownOptions);
116
+ unknownOptionsNames.forEach(o => {
117
+ properties[o] = typeof unknownOptions[o] !== 'undefined';
118
+ });
119
+ Object.assign(this.telemetryProperties, properties);
120
+ });
121
+ }, _RequestCommand_initOptions = function _RequestCommand_initOptions() {
122
+ this.options.unshift({
123
+ option: '-u, --url <url>'
124
+ }, {
125
+ option: '-m, --method [method]',
126
+ autocomplete: this.allowedMethods
127
+ }, {
128
+ option: '-r, --resource [resource]'
129
+ }, {
130
+ option: '-b, --body [body]'
131
+ }, {
132
+ option: '-p, --filePath [filePath]'
133
+ });
134
+ }, _RequestCommand_initValidators = function _RequestCommand_initValidators() {
135
+ this.validators.push((args) => __awaiter(this, void 0, void 0, function* () {
136
+ const currentMethod = args.options.method || 'get';
137
+ if (this.allowedMethods.indexOf(currentMethod) === -1) {
138
+ return `${currentMethod} is not a valid value for method. Allowed values: ${this.allowedMethods.join(', ')}`;
139
+ }
140
+ if (args.options.body && (!args.options.method || args.options.method === 'get')) {
141
+ return 'Specify a different method when using body';
142
+ }
143
+ if (args.options.body && !args.options['content-type']) {
144
+ return 'Specify the content-type when using body';
145
+ }
146
+ if (args.options.filePath && !fs.existsSync(path.dirname(args.options.filePath))) {
147
+ return 'The location specified in the filePath does not exist';
148
+ }
149
+ return true;
150
+ }));
151
+ };
152
+ module.exports = new RequestCommand();
153
+ //# sourceMappingURL=request.js.map
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=Changelog.js.map
@@ -0,0 +1,160 @@
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 _GraphChangelogListCommand_instances, _GraphChangelogListCommand_initTelemetry, _GraphChangelogListCommand_initOptions, _GraphChangelogListCommand_initValidators;
17
+ Object.defineProperty(exports, "__esModule", { value: true });
18
+ const utils_1 = require("../../../../utils");
19
+ const AnonymousCommand_1 = require("../../../base/AnonymousCommand");
20
+ const commands_1 = require("../../commands");
21
+ const request_1 = require("../../../../request");
22
+ const xmldom_1 = require("@xmldom/xmldom");
23
+ class GraphChangelogListCommand extends AnonymousCommand_1.default {
24
+ constructor() {
25
+ super();
26
+ _GraphChangelogListCommand_instances.add(this);
27
+ this.allowedVersions = ['beta', 'v1.0'];
28
+ this.allowedChangeTypes = ['Addition', 'Change', 'Deletion', 'Deprecation'];
29
+ this.allowedServices = [
30
+ 'Applications', 'Calendar', 'Change notifications', 'Cloud communications',
31
+ 'Compliance', 'Cross-device experiences', 'Customer booking', 'Device and app management',
32
+ 'Education', 'Files', 'Financials', 'Groups',
33
+ 'Identity and access', 'Mail', 'Notes', 'Notifications',
34
+ 'People and workplace intelligence', 'Personal contacts', 'Reports', 'Search',
35
+ 'Security', 'Sites and lists', 'Tasks and plans', 'Teamwork',
36
+ 'To-do tasks', 'Users', 'Workbooks and charts'
37
+ ];
38
+ __classPrivateFieldGet(this, _GraphChangelogListCommand_instances, "m", _GraphChangelogListCommand_initTelemetry).call(this);
39
+ __classPrivateFieldGet(this, _GraphChangelogListCommand_instances, "m", _GraphChangelogListCommand_initOptions).call(this);
40
+ __classPrivateFieldGet(this, _GraphChangelogListCommand_instances, "m", _GraphChangelogListCommand_initValidators).call(this);
41
+ }
42
+ get name() {
43
+ return commands_1.default.CHANGELOG_LIST;
44
+ }
45
+ get description() {
46
+ return 'Gets an overview of specific API-level changes in Microsoft Graph v1.0 and beta';
47
+ }
48
+ defaultProperties() {
49
+ return ['category', 'title', 'description'];
50
+ }
51
+ commandAction(logger, args, cb) {
52
+ const allowedChangeType = args.options.changeType && this.allowedChangeTypes.find(x => x.toLocaleLowerCase() === args.options.changeType.toLocaleLowerCase());
53
+ const searchParam = args.options.changeType ? `/?filterBy=${allowedChangeType}` : '';
54
+ const requestOptions = {
55
+ url: `https://developer.microsoft.com/en-us/graph/changelog/rss${searchParam}`,
56
+ headers: {
57
+ 'accept': 'text/xml',
58
+ 'x-anonymous': 'true'
59
+ }
60
+ };
61
+ request_1.default
62
+ .get(requestOptions)
63
+ .then((output) => {
64
+ const parser = new xmldom_1.DOMParser();
65
+ const xmlDoc = parser.parseFromString(output.toString(), "text/xml");
66
+ const changelog = this.filterThroughOptions(args.options, this.mapChangelog(xmlDoc, args));
67
+ logger.log(changelog.items);
68
+ cb();
69
+ }, (err) => this.handleRejectedODataJsonPromise(err, logger, cb));
70
+ }
71
+ filterThroughOptions(options, changelog) {
72
+ let items = changelog.items;
73
+ if (options.services) {
74
+ const allowedServices = this.allowedServices
75
+ .filter(allowedService => options.services.toLocaleLowerCase().split(',').includes(allowedService.toLocaleLowerCase()));
76
+ items = changelog.items.filter(item => allowedServices.includes(item.title));
77
+ }
78
+ if (options.versions) {
79
+ const allowedVersions = this.allowedVersions
80
+ .filter(allowedVersion => options.versions.toLocaleLowerCase().split(',').includes(allowedVersion.toLocaleLowerCase()));
81
+ items = items.filter(item => allowedVersions.includes(item.category));
82
+ }
83
+ if (options.startDate) {
84
+ const startDate = new Date(options.startDate);
85
+ items = items.filter(item => item.pubDate >= startDate);
86
+ }
87
+ if (options.endDate) {
88
+ const endDate = new Date(options.endDate);
89
+ items = items.filter(item => item.pubDate <= endDate);
90
+ }
91
+ // Make sure everything is unique based on the item guid
92
+ items = [...new Map(items.map((item) => [item.guid, item])).values()];
93
+ changelog.items = items.sort((itemA, itemB) => Number(itemB.pubDate) - Number(itemA.pubDate));
94
+ return changelog;
95
+ }
96
+ mapChangelog(xmlDoc, args) {
97
+ const channel = xmlDoc.getElementsByTagName('channel').item(0);
98
+ const changelog = {
99
+ title: channel.getElementsByTagName('title').item(0).textContent,
100
+ description: channel.getElementsByTagName('description').item(0).textContent,
101
+ url: channel.getElementsByTagName('link').item(0).textContent,
102
+ items: []
103
+ };
104
+ Array.from(xmlDoc.getElementsByTagName('item')).forEach((item) => {
105
+ const description = args.options.output === 'text' ?
106
+ utils_1.md.md2plain(item.getElementsByTagName('description').item(0).textContent, '') :
107
+ item.getElementsByTagName('description').item(0).textContent;
108
+ changelog.items.push({
109
+ guid: item.getElementsByTagName('guid').item(0).textContent,
110
+ category: item.getElementsByTagName('category').item(1).textContent,
111
+ title: item.getElementsByTagName('title').item(0).textContent,
112
+ description: args.options.output === 'text' ?
113
+ description.length > 50 ? `${description.substring(0, 47)}...` : description :
114
+ description,
115
+ pubDate: new Date(item.getElementsByTagName('pubDate').item(0).textContent)
116
+ });
117
+ });
118
+ return changelog;
119
+ }
120
+ }
121
+ _GraphChangelogListCommand_instances = new WeakSet(), _GraphChangelogListCommand_initTelemetry = function _GraphChangelogListCommand_initTelemetry() {
122
+ this.telemetry.push((args) => {
123
+ Object.assign(this.telemetryProperties, {
124
+ versions: typeof args.options.versions !== 'undefined',
125
+ changeType: typeof args.options.changeType !== 'undefined',
126
+ services: typeof args.options.services !== 'undefined',
127
+ startDate: typeof args.options.startDate !== 'undefined',
128
+ endDate: typeof args.options.endDate !== 'undefined'
129
+ });
130
+ });
131
+ }, _GraphChangelogListCommand_initOptions = function _GraphChangelogListCommand_initOptions() {
132
+ this.options.unshift({ option: '-v, --versions [versions]', autocomplete: this.allowedVersions }, { option: "-c, --changeType [changeType]", autocomplete: this.allowedChangeTypes }, { option: "-s, --services [services]", autocomplete: this.allowedServices }, { option: "--startDate [startDate]" }, { option: "--endDate [endDate]" });
133
+ }, _GraphChangelogListCommand_initValidators = function _GraphChangelogListCommand_initValidators() {
134
+ this.validators.push((args) => __awaiter(this, void 0, void 0, function* () {
135
+ if (args.options.versions &&
136
+ args.options.versions.toLocaleLowerCase().split(',').some(x => !this.allowedVersions.map(y => y.toLocaleLowerCase()).includes(x))) {
137
+ return `The verions contains an invalid value. Specify either ${this.allowedVersions.join(', ')} as properties`;
138
+ }
139
+ if (args.options.changeType &&
140
+ !this.allowedChangeTypes.map(x => x.toLocaleLowerCase()).includes(args.options.changeType.toLocaleLowerCase())) {
141
+ return `The change type contain an invalid value. Specify either ${this.allowedChangeTypes.join(', ')} as properties`;
142
+ }
143
+ if (args.options.services &&
144
+ args.options.services.toLocaleLowerCase().split(',').some(x => !this.allowedServices.map(y => y.toLocaleLowerCase()).includes(x))) {
145
+ return `The services contains invalid value. Specify either ${this.allowedServices.join(', ')} as properties`;
146
+ }
147
+ if (args.options.startDate && !utils_1.validation.isValidISODate(args.options.startDate)) {
148
+ return 'The startDate is not a valid ISO date string';
149
+ }
150
+ if (args.options.endDate && !utils_1.validation.isValidISODate(args.options.endDate)) {
151
+ return 'The endDate is not a valid ISO date string';
152
+ }
153
+ if (args.options.endDate && args.options.startDate && new Date(args.options.endDate) < new Date(args.options.startDate)) {
154
+ return 'The endDate should be later than startDate';
155
+ }
156
+ return true;
157
+ }));
158
+ };
159
+ module.exports = new GraphChangelogListCommand();
160
+ //# sourceMappingURL=changelog-list.js.map
@@ -2,6 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const prefix = 'graph';
4
4
  exports.default = {
5
+ CHANGELOG_LIST: `${prefix} changelog list`,
5
6
  SCHEMAEXTENSION_ADD: `${prefix} schemaextension add`,
6
7
  SCHEMAEXTENSION_GET: `${prefix} schemaextension get`,
7
8
  SCHEMAEXTENSION_LIST: `${prefix} schemaextension list`,