@pnp/cli-microsoft365 6.0.0-beta.a9609a1 → 6.0.0-beta.b62b543

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 (174) hide show
  1. package/dist/m365/aad/commands/app/app-add.js +4 -4
  2. package/dist/m365/aad/commands/app/app-list.js +38 -0
  3. package/dist/m365/aad/commands/user/user-get.js +1 -0
  4. package/dist/m365/aad/commands/user/user-guest-add.js +103 -0
  5. package/dist/m365/aad/commands.js +2 -0
  6. package/dist/m365/adaptivecard/commands/adaptivecard-send.js +4 -4
  7. package/dist/m365/base/SpoCommand.js +12 -11
  8. package/dist/m365/outlook/commands/message/message-get.js +97 -0
  9. package/dist/m365/outlook/commands.js +1 -0
  10. package/dist/m365/planner/commands/bucket/bucket-get.js +4 -7
  11. package/dist/m365/planner/commands/plan/plan-get.js +11 -16
  12. package/dist/m365/pp/commands/card/card-clone.js +122 -0
  13. package/dist/m365/pp/commands/card/card-remove.js +130 -0
  14. package/dist/m365/pp/commands/solution/solution-remove.js +130 -0
  15. package/dist/m365/pp/commands.js +3 -0
  16. package/dist/m365/spfx/commands/project/project-doctor/{doctor-1.16.0-beta.1.js → doctor-1.16.0-rc.0.js} +6 -6
  17. package/dist/m365/spfx/commands/project/project-doctor.js +1 -1
  18. package/dist/m365/spfx/commands/project/project-upgrade/{upgrade-1.16.0-beta.2.js → upgrade-1.16.0-rc.0.js} +26 -26
  19. package/dist/m365/spfx/commands/project/project-upgrade.js +5 -2
  20. package/dist/m365/spfx/commands/spfx-doctor.js +3 -3
  21. package/dist/m365/spo/commands/file/file-roleassignment-add.js +1 -15
  22. package/dist/m365/spo/commands/file/file-version-list.js +96 -0
  23. package/dist/m365/spo/commands/folder/folder-list.js +35 -12
  24. package/dist/m365/spo/commands/folder/folder-roleinheritance-break.js +11 -1
  25. package/dist/m365/spo/commands/folder/folder-roleinheritance-reset.js +12 -1
  26. package/dist/m365/spo/commands/hubsite/hubsite-connect.js +150 -0
  27. package/dist/m365/spo/commands/hubsite/hubsite-disconnect.js +149 -0
  28. package/dist/m365/spo/commands/list/list-roleassignment-add.js +4 -22
  29. package/dist/m365/spo/commands/list/list-roleassignment-remove.js +4 -15
  30. package/dist/m365/spo/commands/list/list-set.js +31 -8
  31. package/dist/m365/spo/commands/list/list-view-field-add.js +19 -5
  32. package/dist/m365/spo/commands/list/list-view-field-remove.js +18 -4
  33. package/dist/m365/spo/commands/list/list-view-field-set.js +18 -4
  34. package/dist/m365/spo/commands/list/list-view-list.js +14 -10
  35. package/dist/m365/spo/commands/list/list-view-remove.js +17 -8
  36. package/dist/m365/spo/commands/list/list-view-set.js +19 -7
  37. package/dist/m365/spo/commands/list/list-webhook-set.js +11 -12
  38. package/dist/m365/spo/commands/listitem/listitem-list.js +4 -7
  39. package/dist/m365/spo/commands/listitem/listitem-roleassignment-remove.js +4 -15
  40. package/dist/m365/spo/commands/page/page-clientsidewebpart-add.js +4 -7
  41. package/dist/m365/spo/commands/roledefinition/roledefinition-list.js +15 -2
  42. package/dist/m365/spo/commands/{hubsite/hubsite-theme-sync.js → site/site-hubsite-theme-sync.js} +11 -11
  43. package/dist/m365/spo/commands/sitedesign/sitedesign-get.js +4 -7
  44. package/dist/m365/spo/commands/web/web-roleassignment-add.js +4 -15
  45. package/dist/m365/spo/commands/web/web-roleassignment-remove.js +4 -8
  46. package/dist/m365/spo/commands.js +5 -2
  47. package/dist/m365/teams/commands/Meeting.js +3 -0
  48. package/dist/m365/teams/commands/channel/channel-get.js +2 -2
  49. package/dist/m365/teams/commands/channel/channel-remove.js +56 -39
  50. package/dist/m365/teams/commands/channel/channel-set.js +57 -19
  51. package/dist/m365/teams/commands/meeting/meeting-list.js +153 -0
  52. package/dist/m365/teams/commands/team/team-archive.js +4 -7
  53. package/dist/m365/teams/commands/team/team-remove.js +3 -3
  54. package/dist/m365/teams/commands/team/team-unarchive.js +3 -3
  55. package/dist/m365/teams/commands.js +1 -0
  56. package/dist/utils/md.js +8 -1
  57. package/docs/docs/cmd/aad/app/app-add.md +19 -19
  58. package/docs/docs/cmd/aad/app/app-list.md +149 -0
  59. package/docs/docs/cmd/aad/user/user-guest-add.md +107 -0
  60. package/docs/docs/cmd/adaptivecard/adaptivecard-send.md +12 -5
  61. package/docs/docs/cmd/app/app-get.md +156 -0
  62. package/docs/docs/cmd/app/app-open.md +20 -0
  63. package/docs/docs/cmd/app/permission/permission-list.md +43 -0
  64. package/docs/docs/cmd/booking/business/business-get.md +107 -0
  65. package/docs/docs/cmd/booking/business/business-list.md +34 -0
  66. package/docs/docs/cmd/graph/schemaextension/schemaextension-add.md +4 -11
  67. package/docs/docs/cmd/graph/schemaextension/schemaextension-set.md +4 -10
  68. package/docs/docs/cmd/outlook/message/message-get.md +48 -0
  69. package/docs/docs/cmd/pa/app/app-get.md +184 -0
  70. package/docs/docs/cmd/pa/app/app-list.md +181 -0
  71. package/docs/docs/cmd/pa/app/app-remove.md +4 -0
  72. package/docs/docs/cmd/pa/connector/connector-export.md +4 -0
  73. package/docs/docs/cmd/pa/connector/connector-list.md +89 -0
  74. package/docs/docs/cmd/pa/environment/environment-get.md +113 -0
  75. package/docs/docs/cmd/pa/environment/environment-list.md +109 -0
  76. package/docs/docs/cmd/pa/pcf/pcf-init.md +4 -0
  77. package/docs/docs/cmd/pa/solution/solution-init.md +5 -0
  78. package/docs/docs/cmd/pa/solution/solution-reference-add.md +4 -0
  79. package/docs/docs/cmd/planner/plan/plan-get.md +2 -2
  80. package/docs/docs/cmd/pp/card/card-clone.md +77 -0
  81. package/docs/docs/cmd/pp/card/card-get.md +71 -0
  82. package/docs/docs/cmd/pp/card/card-list.md +71 -0
  83. package/docs/docs/cmd/pp/card/card-remove.md +82 -0
  84. package/docs/docs/cmd/pp/dataverse/dataverse-table-list.md +85 -0
  85. package/docs/docs/cmd/pp/environment/environment-get.md +308 -0
  86. package/docs/docs/cmd/pp/environment/environment-list.md +312 -0
  87. package/docs/docs/cmd/pp/gateway/gateway-get.md +32 -0
  88. package/docs/docs/cmd/pp/gateway/gateway-list.md +35 -0
  89. package/docs/docs/cmd/pp/managementapp/managementapp-add.md +23 -0
  90. package/docs/docs/cmd/pp/managementapp/managementapp-list.md +27 -0
  91. package/docs/docs/cmd/pp/solution/solution-get.md +35 -0
  92. package/docs/docs/cmd/pp/solution/solution-list.md +37 -0
  93. package/docs/docs/cmd/pp/solution/solution-remove.md +82 -0
  94. package/docs/docs/cmd/pp/tenant/tenant-settings-list.md +62 -0
  95. package/docs/docs/cmd/spfx/project/project-upgrade.md +1 -1
  96. package/docs/docs/cmd/spo/customaction/customaction-add.md +3 -0
  97. package/docs/docs/cmd/spo/customaction/customaction-set.md +3 -2
  98. package/docs/docs/cmd/spo/field/field-set.md +4 -1
  99. package/docs/docs/cmd/spo/file/file-roleassignment-add.md +9 -9
  100. package/docs/docs/cmd/spo/file/file-roleassignment-remove.md +3 -3
  101. package/docs/docs/cmd/spo/file/file-version-list.md +76 -0
  102. package/docs/docs/cmd/spo/folder/folder-list.md +45 -0
  103. package/docs/docs/cmd/spo/folder/folder-roleinheritance-break.md +6 -0
  104. package/docs/docs/cmd/spo/folder/folder-roleinheritance-reset.md +6 -0
  105. package/docs/docs/cmd/spo/hubsite/hubsite-connect.md +62 -0
  106. package/docs/docs/cmd/spo/hubsite/hubsite-disconnect.md +58 -0
  107. package/docs/docs/cmd/spo/hubsite/hubsite-register.md +2 -2
  108. package/docs/docs/cmd/spo/hubsite/hubsite-unregister.md +2 -2
  109. package/docs/docs/cmd/spo/list/list-roleassignment-add.md +9 -9
  110. package/docs/docs/cmd/spo/list/list-roleassignment-remove.md +8 -8
  111. package/docs/docs/cmd/spo/list/list-set.md +18 -6
  112. package/docs/docs/cmd/spo/list/list-view-field-add.md +14 -4
  113. package/docs/docs/cmd/spo/list/list-view-field-remove.md +11 -2
  114. package/docs/docs/cmd/spo/list/list-view-field-set.md +18 -2
  115. package/docs/docs/cmd/spo/list/list-view-list.md +16 -7
  116. package/docs/docs/cmd/spo/list/list-view-remove.md +12 -3
  117. package/docs/docs/cmd/spo/list/list-view-set.md +20 -6
  118. package/docs/docs/cmd/spo/list/list-webhook-set.md +9 -2
  119. package/docs/docs/cmd/spo/listitem/listitem-list.md +9 -9
  120. package/docs/docs/cmd/spo/listitem/listitem-roleassignment-remove.md +8 -8
  121. package/docs/docs/cmd/spo/page/page-clientsidewebpart-add.md +14 -19
  122. package/docs/docs/cmd/spo/page/page-control-set.md +2 -1
  123. package/docs/docs/cmd/spo/{hubsite/hubsite-theme-sync.md → site/site-hubsite-theme-sync.md} +5 -5
  124. package/docs/docs/cmd/spo/sitedesign/sitedesign-get.md +2 -2
  125. package/docs/docs/cmd/spo/term/term-add.md +5 -0
  126. package/docs/docs/cmd/spo/term/term-set-add.md +6 -1
  127. package/docs/docs/cmd/spo/web/web-roleassignment-add.md +6 -6
  128. package/docs/docs/cmd/spo/web/web-roleassignment-remove.md +4 -4
  129. package/docs/docs/cmd/teams/channel/channel-get.md +7 -7
  130. package/docs/docs/cmd/teams/channel/channel-remove.md +12 -9
  131. package/docs/docs/cmd/teams/channel/channel-set.md +13 -6
  132. package/docs/docs/cmd/teams/meeting/meeting-list.md +149 -0
  133. package/docs/docs/cmd/teams/message/message-get.md +80 -0
  134. package/docs/docs/cmd/teams/message/message-list.md +63 -0
  135. package/docs/docs/cmd/teams/message/message-reply-list.md +63 -0
  136. package/docs/docs/cmd/teams/messagingsettings/messagingsettings-list.md +31 -0
  137. package/docs/docs/cmd/teams/messagingsettings/messagingsettings-set.md +4 -0
  138. package/docs/docs/cmd/teams/report/report-deviceusagedistributionusercounts.md +35 -0
  139. package/docs/docs/cmd/teams/report/report-deviceusageusercounts.md +36 -0
  140. package/docs/docs/cmd/teams/report/report-deviceusageuserdetail.md +41 -0
  141. package/docs/docs/cmd/teams/report/report-directroutingcalls.md +49 -0
  142. package/docs/docs/cmd/teams/report/report-pstncalls.md +49 -0
  143. package/docs/docs/cmd/teams/report/report-useractivitycounts.md +39 -0
  144. package/docs/docs/cmd/teams/report/report-useractivityusercounts.md +33 -0
  145. package/docs/docs/cmd/teams/report/report-useractivityuserdetail.md +58 -0
  146. package/docs/docs/cmd/teams/tab/tab-add.md +35 -0
  147. package/docs/docs/cmd/teams/tab/tab-get.md +35 -0
  148. package/docs/docs/cmd/teams/tab/tab-list.md +43 -0
  149. package/docs/docs/cmd/teams/tab/tab-remove.md +4 -0
  150. package/docs/docs/cmd/teams/team/team-add.md +145 -0
  151. package/docs/docs/cmd/teams/team/team-archive.md +7 -3
  152. package/docs/docs/cmd/teams/team/team-clone.md +4 -0
  153. package/docs/docs/cmd/teams/team/team-get.md +78 -0
  154. package/docs/docs/cmd/teams/team/team-list.md +30 -0
  155. package/docs/docs/cmd/teams/team/team-remove.md +7 -3
  156. package/docs/docs/cmd/teams/team/team-set.md +4 -0
  157. package/docs/docs/cmd/teams/team/team-unarchive.md +5 -2
  158. package/docs/docs/cmd/teams/user/user-app-add.md +4 -0
  159. package/docs/docs/cmd/teams/user/user-app-list.md +40 -0
  160. package/docs/docs/cmd/teams/user/user-app-remove.md +4 -0
  161. package/docs/docs/cmd/teams/user/user-list.md +31 -0
  162. package/docs/docs/cmd/todo/list/list-add.md +32 -1
  163. package/docs/docs/cmd/todo/list/list-get.md +2 -2
  164. package/docs/docs/cmd/todo/list/list-list.md +31 -0
  165. package/docs/docs/cmd/todo/list/list-remove.md +10 -6
  166. package/docs/docs/cmd/todo/list/list-set.md +9 -5
  167. package/docs/docs/cmd/todo/task/task-add.md +58 -2
  168. package/docs/docs/cmd/todo/task/task-get.md +3 -3
  169. package/docs/docs/cmd/todo/task/task-list.md +47 -0
  170. package/docs/docs/cmd/todo/task/task-remove.md +9 -4
  171. package/docs/docs/cmd/todo/task/task-set.md +59 -5
  172. package/docs/docs/cmd/util/accesstoken/accesstoken-get.md +20 -0
  173. package/docs/docs/cmd/viva/connections/connections-app-create.md +4 -0
  174. package/package.json +3 -1
@@ -20,6 +20,7 @@ const request_1 = require("../../../../request");
20
20
  const formatting_1 = require("../../../../utils/formatting");
21
21
  const validation_1 = require("../../../../utils/validation");
22
22
  const SpoCommand_1 = require("../../../base/SpoCommand");
23
+ const urlUtil_1 = require("../../../../utils/urlUtil");
23
24
  const commands_1 = require("../../commands");
24
25
  class SpoFolderRoleInheritanceBreakCommand extends SpoCommand_1.default {
25
26
  constructor() {
@@ -38,10 +39,19 @@ class SpoFolderRoleInheritanceBreakCommand extends SpoCommand_1.default {
38
39
  commandAction(logger, args) {
39
40
  return __awaiter(this, void 0, void 0, function* () {
40
41
  const keepExistingPermissions = !args.options.clearExistingPermissions;
42
+ const serverRelativeUrl = urlUtil_1.urlUtil.getServerRelativePath(args.options.webUrl, args.options.folderUrl);
43
+ const roleFolderUrl = urlUtil_1.urlUtil.getWebRelativePath(args.options.webUrl, args.options.folderUrl);
44
+ let requestUrl = `${args.options.webUrl}/_api/web/`;
41
45
  const breakFolderRoleInheritance = () => __awaiter(this, void 0, void 0, function* () {
42
46
  try {
47
+ if (roleFolderUrl.split('/').length === 2) {
48
+ requestUrl += `GetList('${formatting_1.formatting.encodeQueryParameter(serverRelativeUrl)}')`;
49
+ }
50
+ else {
51
+ requestUrl += `GetFolderByServerRelativeUrl('${encodeURIComponent(serverRelativeUrl)}')/ListItemAllFields`;
52
+ }
43
53
  const requestOptions = {
44
- url: `${args.options.webUrl}/_api/web/GetFolderByServerRelativeUrl('${formatting_1.formatting.encodeQueryParameter(args.options.folderUrl)}')/ListItemAllFields/breakroleinheritance(${keepExistingPermissions})`,
54
+ url: `${requestUrl}/breakroleinheritance(${keepExistingPermissions})`,
45
55
  headers: {
46
56
  accept: 'application/json'
47
57
  },
@@ -16,9 +16,11 @@ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (
16
16
  var _SpoFolderRoleInheritanceResetCommand_instances, _SpoFolderRoleInheritanceResetCommand_initTelemetry, _SpoFolderRoleInheritanceResetCommand_initOptions, _SpoFolderRoleInheritanceResetCommand_initValidators;
17
17
  Object.defineProperty(exports, "__esModule", { value: true });
18
18
  const Cli_1 = require("../../../../cli/Cli");
19
+ const formatting_1 = require("../../../../utils/formatting");
19
20
  const request_1 = require("../../../../request");
20
21
  const validation_1 = require("../../../../utils/validation");
21
22
  const SpoCommand_1 = require("../../../base/SpoCommand");
23
+ const urlUtil_1 = require("../../../../utils/urlUtil");
22
24
  const commands_1 = require("../../commands");
23
25
  class SpoFolderRoleInheritanceResetCommand extends SpoCommand_1.default {
24
26
  constructor() {
@@ -36,10 +38,19 @@ class SpoFolderRoleInheritanceResetCommand extends SpoCommand_1.default {
36
38
  }
37
39
  commandAction(logger, args) {
38
40
  return __awaiter(this, void 0, void 0, function* () {
41
+ const serverRelativeUrl = urlUtil_1.urlUtil.getServerRelativePath(args.options.webUrl, args.options.folderUrl);
42
+ const roleFolderUrl = urlUtil_1.urlUtil.getWebRelativePath(args.options.webUrl, args.options.folderUrl);
43
+ let requestUrl = `${args.options.webUrl}/_api/web/`;
39
44
  const resetFolderRoleInheritance = () => __awaiter(this, void 0, void 0, function* () {
40
45
  try {
46
+ if (roleFolderUrl.split('/').length === 2) {
47
+ requestUrl += `GetList('${formatting_1.formatting.encodeQueryParameter(serverRelativeUrl)}')`;
48
+ }
49
+ else {
50
+ requestUrl += `GetFolderByServerRelativeUrl('${encodeURIComponent(serverRelativeUrl)}')/ListItemAllFields`;
51
+ }
41
52
  const requestOptions = {
42
- url: `${args.options.webUrl}/_api/web/GetFolderByServerRelativeUrl('${args.options.folderUrl}')/ListItemAllFields/resetroleinheritance`,
53
+ url: `${requestUrl}/resetroleinheritance`,
43
54
  headers: {
44
55
  accept: 'application/json;odata=nometadata'
45
56
  },
@@ -0,0 +1,150 @@
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 _SpoHubSiteConnectCommand_instances, _SpoHubSiteConnectCommand_initTelemetry, _SpoHubSiteConnectCommand_initOptions, _SpoHubSiteConnectCommand_initOptionSets, _SpoHubSiteConnectCommand_initValidators;
17
+ Object.defineProperty(exports, "__esModule", { value: true });
18
+ const validation_1 = require("../../../../utils/validation");
19
+ const SpoCommand_1 = require("../../../base/SpoCommand");
20
+ const commands_1 = require("../../commands");
21
+ const request_1 = require("../../../../request");
22
+ const spo_1 = require("../../../../utils/spo");
23
+ class SpoHubSiteConnectCommand extends SpoCommand_1.default {
24
+ constructor() {
25
+ super();
26
+ _SpoHubSiteConnectCommand_instances.add(this);
27
+ __classPrivateFieldGet(this, _SpoHubSiteConnectCommand_instances, "m", _SpoHubSiteConnectCommand_initTelemetry).call(this);
28
+ __classPrivateFieldGet(this, _SpoHubSiteConnectCommand_instances, "m", _SpoHubSiteConnectCommand_initOptions).call(this);
29
+ __classPrivateFieldGet(this, _SpoHubSiteConnectCommand_instances, "m", _SpoHubSiteConnectCommand_initValidators).call(this);
30
+ __classPrivateFieldGet(this, _SpoHubSiteConnectCommand_instances, "m", _SpoHubSiteConnectCommand_initOptionSets).call(this);
31
+ }
32
+ get name() {
33
+ return commands_1.default.HUBSITE_CONNECT;
34
+ }
35
+ get description() {
36
+ return 'Connect a hub site to a parent hub site';
37
+ }
38
+ commandAction(logger, args) {
39
+ return __awaiter(this, void 0, void 0, function* () {
40
+ if (this.verbose) {
41
+ logger.logToStderr(`Connecting hub site '${args.options.id || args.options.title || args.options.url}' to hub site '${args.options.parentId || args.options.parentTitle || args.options.parentUrl}'...`);
42
+ }
43
+ try {
44
+ const spoAdminUrl = yield spo_1.spo.getSpoAdminUrl(logger, this.debug);
45
+ const hubSites = yield this.getHubSites(spoAdminUrl);
46
+ const hubSite = this.getSpecificHubSite(hubSites, args.options.id, args.options.title, args.options.url);
47
+ const parentHubSite = this.getSpecificHubSite(hubSites, args.options.parentId, args.options.parentTitle, args.options.parentUrl);
48
+ const requestOptions = {
49
+ url: `${spoAdminUrl}/_api/HubSites/GetById('${hubSite.ID}')`,
50
+ headers: {
51
+ accept: 'application/json;odata=nometadata',
52
+ 'if-match': hubSite['odata.etag']
53
+ },
54
+ responseType: 'json',
55
+ data: {
56
+ ParentHubSiteId: parentHubSite.ID
57
+ }
58
+ };
59
+ yield request_1.default.patch(requestOptions);
60
+ }
61
+ catch (err) {
62
+ this.handleRejectedODataJsonPromise(err);
63
+ }
64
+ });
65
+ }
66
+ getHubSites(spoAdminUrl) {
67
+ return __awaiter(this, void 0, void 0, function* () {
68
+ const requestOptions = {
69
+ url: `${spoAdminUrl}/_api/HubSites?$select=ID,Title,SiteUrl&$top=5000`,
70
+ headers: {
71
+ accept: 'application/json;odata=minimalmetadata'
72
+ },
73
+ responseType: 'json'
74
+ };
75
+ const hubSites = yield request_1.default.get(requestOptions);
76
+ return hubSites.value;
77
+ });
78
+ }
79
+ getSpecificHubSite(hubSites, id, title, url) {
80
+ let filteredHubSites = [];
81
+ if (id) {
82
+ filteredHubSites = hubSites.filter(site => site.ID.toLowerCase() === id.toLowerCase());
83
+ }
84
+ else if (title) {
85
+ filteredHubSites = hubSites.filter(site => site.Title.toLowerCase() === title.toLowerCase());
86
+ }
87
+ else if (url) {
88
+ filteredHubSites = hubSites.filter(site => site.SiteUrl.toLowerCase() === url.toLowerCase());
89
+ }
90
+ if (filteredHubSites.length === 0) {
91
+ throw `The specified hub site '${id || title || url}' does not exist.`;
92
+ }
93
+ if (filteredHubSites.length > 1) {
94
+ throw `Multiple hub sites with name '${title}' found: ${filteredHubSites.map(s => s.ID).join(',')}.`;
95
+ }
96
+ return filteredHubSites[0];
97
+ }
98
+ }
99
+ _SpoHubSiteConnectCommand_instances = new WeakSet(), _SpoHubSiteConnectCommand_initTelemetry = function _SpoHubSiteConnectCommand_initTelemetry() {
100
+ this.telemetry.push((args) => {
101
+ Object.assign(this.telemetryProperties, {
102
+ id: typeof args.options.id !== 'undefined',
103
+ title: typeof args.options.title !== 'undefined',
104
+ url: typeof args.options.url !== 'undefined',
105
+ parentId: typeof args.options.parentId !== 'undefined',
106
+ parentTitle: typeof args.options.parentTitle !== 'undefined',
107
+ parentUrl: typeof args.options.parentUrl !== 'undefined'
108
+ });
109
+ });
110
+ }, _SpoHubSiteConnectCommand_initOptions = function _SpoHubSiteConnectCommand_initOptions() {
111
+ this.options.unshift({
112
+ option: '-i, --id [id]'
113
+ }, {
114
+ option: '-t, --title [title]'
115
+ }, {
116
+ option: '-u, --url [url]'
117
+ }, {
118
+ option: '--parentId [parentId]'
119
+ }, {
120
+ option: '--parentTitle [parentTitle]'
121
+ }, {
122
+ option: '--parentUrl [parentUrl]'
123
+ });
124
+ }, _SpoHubSiteConnectCommand_initOptionSets = function _SpoHubSiteConnectCommand_initOptionSets() {
125
+ this.optionSets.push(['id', 'title', 'url'], ['parentId', 'parentTitle', 'parentUrl']);
126
+ }, _SpoHubSiteConnectCommand_initValidators = function _SpoHubSiteConnectCommand_initValidators() {
127
+ this.validators.push((args) => __awaiter(this, void 0, void 0, function* () {
128
+ if (args.options.id && !validation_1.validation.isValidGuid(args.options.id)) {
129
+ return `'${args.options.id}' is not a valid GUID`;
130
+ }
131
+ if (args.options.parentId && !validation_1.validation.isValidGuid(args.options.parentId)) {
132
+ return `'${args.options.parentId}' is not a valid GUID`;
133
+ }
134
+ if (args.options.url) {
135
+ const isValidSharePointUrl = validation_1.validation.isValidSharePointUrl(args.options.url);
136
+ if (isValidSharePointUrl !== true) {
137
+ return isValidSharePointUrl;
138
+ }
139
+ }
140
+ if (args.options.parentUrl) {
141
+ const isValidSharePointUrl = validation_1.validation.isValidSharePointUrl(args.options.parentUrl);
142
+ if (isValidSharePointUrl !== true) {
143
+ return isValidSharePointUrl;
144
+ }
145
+ }
146
+ return true;
147
+ }));
148
+ };
149
+ module.exports = new SpoHubSiteConnectCommand();
150
+ //# sourceMappingURL=hubsite-connect.js.map
@@ -0,0 +1,149 @@
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 _SpoHubSiteDisconnectCommand_instances, _SpoHubSiteDisconnectCommand_initTelemetry, _SpoHubSiteDisconnectCommand_initOptions, _SpoHubSiteDisconnectCommand_initOptionSets, _SpoHubSiteDisconnectCommand_initValidators;
17
+ Object.defineProperty(exports, "__esModule", { value: true });
18
+ const Cli_1 = require("../../../../cli/Cli");
19
+ const request_1 = require("../../../../request");
20
+ const spo_1 = require("../../../../utils/spo");
21
+ const validation_1 = require("../../../../utils/validation");
22
+ const SpoCommand_1 = require("../../../base/SpoCommand");
23
+ const commands_1 = require("../../commands");
24
+ class SpoHubSiteDisconnectCommand extends SpoCommand_1.default {
25
+ constructor() {
26
+ super();
27
+ _SpoHubSiteDisconnectCommand_instances.add(this);
28
+ __classPrivateFieldGet(this, _SpoHubSiteDisconnectCommand_instances, "m", _SpoHubSiteDisconnectCommand_initTelemetry).call(this);
29
+ __classPrivateFieldGet(this, _SpoHubSiteDisconnectCommand_instances, "m", _SpoHubSiteDisconnectCommand_initOptions).call(this);
30
+ __classPrivateFieldGet(this, _SpoHubSiteDisconnectCommand_instances, "m", _SpoHubSiteDisconnectCommand_initValidators).call(this);
31
+ __classPrivateFieldGet(this, _SpoHubSiteDisconnectCommand_instances, "m", _SpoHubSiteDisconnectCommand_initOptionSets).call(this);
32
+ }
33
+ get name() {
34
+ return commands_1.default.HUBSITE_DISCONNECT;
35
+ }
36
+ get description() {
37
+ return 'Disconnect a hub site from its parent hub site';
38
+ }
39
+ commandAction(logger, args) {
40
+ return __awaiter(this, void 0, void 0, function* () {
41
+ const disconnectHubSite = () => __awaiter(this, void 0, void 0, function* () {
42
+ try {
43
+ if (this.verbose) {
44
+ logger.logToStderr(`Disconnecting hub site '${args.options.id || args.options.title || args.options.url}' from its parent hub site...`);
45
+ }
46
+ const spoAdminUrl = yield spo_1.spo.getSpoAdminUrl(logger, this.debug);
47
+ const hubSite = yield this.getHubSite(spoAdminUrl, args.options);
48
+ const requestOptions = {
49
+ url: `${spoAdminUrl}/_api/HubSites/GetById('${hubSite.ID}')`,
50
+ headers: {
51
+ accept: 'application/json;odata=nometadata',
52
+ 'if-match': hubSite['odata.etag']
53
+ },
54
+ responseType: 'json',
55
+ data: {
56
+ ParentHubSiteId: '00000000-0000-0000-0000-000000000000'
57
+ }
58
+ };
59
+ yield request_1.default.patch(requestOptions);
60
+ }
61
+ catch (err) {
62
+ this.handleRejectedODataJsonPromise(err);
63
+ }
64
+ });
65
+ if (args.options.confirm) {
66
+ yield disconnectHubSite();
67
+ }
68
+ else {
69
+ const result = yield Cli_1.Cli.prompt({
70
+ type: 'confirm',
71
+ name: 'continue',
72
+ default: false,
73
+ message: `Are you sure you want disconnect hub site '${args.options.id || args.options.title || args.options.url}' from its parent hub site?`
74
+ });
75
+ if (result.continue) {
76
+ yield disconnectHubSite();
77
+ }
78
+ }
79
+ });
80
+ }
81
+ getHubSite(spoAdminUrl, options) {
82
+ return __awaiter(this, void 0, void 0, function* () {
83
+ const requestOptions = {
84
+ headers: {
85
+ accept: 'application/json;odata=minimalmetadata'
86
+ },
87
+ responseType: 'json'
88
+ };
89
+ if (options.id) {
90
+ requestOptions.url = `${spoAdminUrl}/_api/HubSites/GetById('${options.id}')?$select=ID`;
91
+ const result = yield request_1.default.get(requestOptions);
92
+ return result;
93
+ }
94
+ requestOptions.url = `${spoAdminUrl}/_api/HubSites?$select=ID,Title,SiteUrl&$top=5000`;
95
+ const hubSitesResponse = yield request_1.default.get(requestOptions);
96
+ const hubSites = hubSitesResponse.value;
97
+ let filteredHubSites = [];
98
+ if (options.title) {
99
+ filteredHubSites = hubSites.filter(site => site.Title.toLowerCase() === options.title.toLowerCase());
100
+ }
101
+ else if (options.url) {
102
+ filteredHubSites = hubSites.filter(site => site.SiteUrl.toLowerCase() === options.url.toLowerCase());
103
+ }
104
+ if (filteredHubSites.length === 0) {
105
+ throw `The specified hub site '${options.title || options.url}' does not exist.`;
106
+ }
107
+ if (filteredHubSites.length > 1) {
108
+ throw `Multiple hub sites with name '${options.title}' found: ${filteredHubSites.map(s => s.ID).join(',')}.`;
109
+ }
110
+ return filteredHubSites[0];
111
+ });
112
+ }
113
+ }
114
+ _SpoHubSiteDisconnectCommand_instances = new WeakSet(), _SpoHubSiteDisconnectCommand_initTelemetry = function _SpoHubSiteDisconnectCommand_initTelemetry() {
115
+ this.telemetry.push((args) => {
116
+ Object.assign(this.telemetryProperties, {
117
+ id: typeof args.options.id !== 'undefined',
118
+ title: typeof args.options.title !== 'undefined',
119
+ url: typeof args.options.url !== 'undefined'
120
+ });
121
+ });
122
+ }, _SpoHubSiteDisconnectCommand_initOptions = function _SpoHubSiteDisconnectCommand_initOptions() {
123
+ this.options.unshift({
124
+ option: '-i, --id [id]'
125
+ }, {
126
+ option: '-t, --title [title]'
127
+ }, {
128
+ option: '-u, --url [url]'
129
+ }, {
130
+ option: '--confirm'
131
+ });
132
+ }, _SpoHubSiteDisconnectCommand_initOptionSets = function _SpoHubSiteDisconnectCommand_initOptionSets() {
133
+ this.optionSets.push(['id', 'title', 'url']);
134
+ }, _SpoHubSiteDisconnectCommand_initValidators = function _SpoHubSiteDisconnectCommand_initValidators() {
135
+ this.validators.push((args) => __awaiter(this, void 0, void 0, function* () {
136
+ if (args.options.id && !validation_1.validation.isValidGuid(args.options.id)) {
137
+ return `'${args.options.id}' is not a valid GUID`;
138
+ }
139
+ if (args.options.url) {
140
+ const isValidSharePointUrl = validation_1.validation.isValidSharePointUrl(args.options.url);
141
+ if (isValidSharePointUrl !== true) {
142
+ return isValidSharePointUrl;
143
+ }
144
+ }
145
+ return true;
146
+ }));
147
+ };
148
+ module.exports = new SpoHubSiteDisconnectCommand();
149
+ //# sourceMappingURL=hubsite-disconnect.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 _SpoListRoleAssignmentAddCommand_instances, _SpoListRoleAssignmentAddCommand_initTelemetry, _SpoListRoleAssignmentAddCommand_initOptions, _SpoListRoleAssignmentAddCommand_initValidators;
16
+ var _SpoListRoleAssignmentAddCommand_instances, _SpoListRoleAssignmentAddCommand_initTelemetry, _SpoListRoleAssignmentAddCommand_initOptions, _SpoListRoleAssignmentAddCommand_initValidators, _SpoListRoleAssignmentAddCommand_initOptionSets;
17
17
  Object.defineProperty(exports, "__esModule", { value: true });
18
18
  const Cli_1 = require("../../../../cli/Cli");
19
19
  const request_1 = require("../../../../request");
@@ -32,6 +32,7 @@ class SpoListRoleAssignmentAddCommand extends SpoCommand_1.default {
32
32
  __classPrivateFieldGet(this, _SpoListRoleAssignmentAddCommand_instances, "m", _SpoListRoleAssignmentAddCommand_initTelemetry).call(this);
33
33
  __classPrivateFieldGet(this, _SpoListRoleAssignmentAddCommand_instances, "m", _SpoListRoleAssignmentAddCommand_initOptions).call(this);
34
34
  __classPrivateFieldGet(this, _SpoListRoleAssignmentAddCommand_instances, "m", _SpoListRoleAssignmentAddCommand_initValidators).call(this);
35
+ __classPrivateFieldGet(this, _SpoListRoleAssignmentAddCommand_instances, "m", _SpoListRoleAssignmentAddCommand_initOptionSets).call(this);
35
36
  }
36
37
  get name() {
37
38
  return commands_1.default.LIST_ROLEASSIGNMENT_ADD;
@@ -190,29 +191,10 @@ _SpoListRoleAssignmentAddCommand_instances = new WeakSet(), _SpoListRoleAssignme
190
191
  if (args.options.roleDefinitionId && isNaN(args.options.roleDefinitionId)) {
191
192
  return `Specified roleDefinitionId ${args.options.roleDefinitionId} is not a number`;
192
193
  }
193
- const listOptions = [args.options.listId, args.options.listTitle, args.options.listUrl];
194
- if (listOptions.some(item => item !== undefined) && listOptions.filter(item => item !== undefined).length > 1) {
195
- return `Specify either list id or title or list url`;
196
- }
197
- if (listOptions.filter(item => item !== undefined).length === 0) {
198
- return `Specify at least list id or title or list url`;
199
- }
200
- const principalOptions = [args.options.principalId, args.options.upn, args.options.groupName];
201
- if (principalOptions.some(item => item !== undefined) && principalOptions.filter(item => item !== undefined).length > 1) {
202
- return `Specify either principalId id or upn or groupName`;
203
- }
204
- if (principalOptions.filter(item => item !== undefined).length === 0) {
205
- return `Specify at least principalId id or upn or groupName`;
206
- }
207
- const roleDefinitionOptions = [args.options.roleDefinitionId, args.options.roleDefinitionName];
208
- if (roleDefinitionOptions.some(item => item !== undefined) && roleDefinitionOptions.filter(item => item !== undefined).length > 1) {
209
- return `Specify either roleDefinitionId id or roleDefinitionName`;
210
- }
211
- if (roleDefinitionOptions.filter(item => item !== undefined).length === 0) {
212
- return `Specify at least roleDefinitionId id or roleDefinitionName`;
213
- }
214
194
  return true;
215
195
  }));
196
+ }, _SpoListRoleAssignmentAddCommand_initOptionSets = function _SpoListRoleAssignmentAddCommand_initOptionSets() {
197
+ this.optionSets.push(['listId', 'listTitle', 'listUrl'], ['principalId', 'upn', 'groupName'], ['roleDefinitionId', 'roleDefinitionName']);
216
198
  };
217
199
  module.exports = new SpoListRoleAssignmentAddCommand();
218
200
  //# sourceMappingURL=list-roleassignment-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 _SpoListRoleAssignmentRemoveCommand_instances, _SpoListRoleAssignmentRemoveCommand_initTelemetry, _SpoListRoleAssignmentRemoveCommand_initOptions, _SpoListRoleAssignmentRemoveCommand_initValidators;
16
+ var _SpoListRoleAssignmentRemoveCommand_instances, _SpoListRoleAssignmentRemoveCommand_initTelemetry, _SpoListRoleAssignmentRemoveCommand_initOptions, _SpoListRoleAssignmentRemoveCommand_initValidators, _SpoListRoleAssignmentRemoveCommand_initOptionSets;
17
17
  Object.defineProperty(exports, "__esModule", { value: true });
18
18
  const Cli_1 = require("../../../../cli/Cli");
19
19
  const request_1 = require("../../../../request");
@@ -31,6 +31,7 @@ class SpoListRoleAssignmentRemoveCommand extends SpoCommand_1.default {
31
31
  __classPrivateFieldGet(this, _SpoListRoleAssignmentRemoveCommand_instances, "m", _SpoListRoleAssignmentRemoveCommand_initTelemetry).call(this);
32
32
  __classPrivateFieldGet(this, _SpoListRoleAssignmentRemoveCommand_instances, "m", _SpoListRoleAssignmentRemoveCommand_initOptions).call(this);
33
33
  __classPrivateFieldGet(this, _SpoListRoleAssignmentRemoveCommand_instances, "m", _SpoListRoleAssignmentRemoveCommand_initValidators).call(this);
34
+ __classPrivateFieldGet(this, _SpoListRoleAssignmentRemoveCommand_instances, "m", _SpoListRoleAssignmentRemoveCommand_initOptionSets).call(this);
34
35
  }
35
36
  get name() {
36
37
  return commands_1.default.LIST_ROLEASSIGNMENT_REMOVE;
@@ -179,22 +180,10 @@ _SpoListRoleAssignmentRemoveCommand_instances = new WeakSet(), _SpoListRoleAssig
179
180
  if (args.options.principalId && isNaN(args.options.principalId)) {
180
181
  return `Specified principalId ${args.options.principalId} is not a number`;
181
182
  }
182
- const listOptions = [args.options.listId, args.options.listTitle, args.options.listUrl];
183
- if (listOptions.some(item => item !== undefined) && listOptions.filter(item => item !== undefined).length > 1) {
184
- return `Specify either list id or title or list url`;
185
- }
186
- if (listOptions.filter(item => item !== undefined).length === 0) {
187
- return `Specify at least list id or title or list url`;
188
- }
189
- const principalOptions = [args.options.principalId, args.options.upn, args.options.groupName];
190
- if (principalOptions.some(item => item !== undefined) && principalOptions.filter(item => item !== undefined).length > 1) {
191
- return `Specify either principalId id or upn or groupName`;
192
- }
193
- if (principalOptions.filter(item => item !== undefined).length === 0) {
194
- return `Specify at least principalId id or upn or groupName`;
195
- }
196
183
  return true;
197
184
  }));
185
+ }, _SpoListRoleAssignmentRemoveCommand_initOptionSets = function _SpoListRoleAssignmentRemoveCommand_initOptionSets() {
186
+ this.optionSets.push(['listId', 'listTitle', 'listUrl'], ['principalId', 'upn', 'groupName']);
198
187
  };
199
188
  module.exports = new SpoListRoleAssignmentRemoveCommand();
200
189
  //# sourceMappingURL=list-roleassignment-remove.js.map
@@ -13,9 +13,11 @@ 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 _SpoListSetCommand_instances, _SpoListSetCommand_initTelemetry, _SpoListSetCommand_initOptions, _SpoListSetCommand_initValidators, _SpoListSetCommand_initTypes;
16
+ var _SpoListSetCommand_instances, _SpoListSetCommand_initTelemetry, _SpoListSetCommand_initOptions, _SpoListSetCommand_initValidators, _SpoListSetCommand_initTypes, _SpoListSetCommand_initOptionSets;
17
17
  Object.defineProperty(exports, "__esModule", { value: true });
18
18
  const request_1 = require("../../../../request");
19
+ const formatting_1 = require("../../../../utils/formatting");
20
+ const urlUtil_1 = require("../../../../utils/urlUtil");
19
21
  const validation_1 = require("../../../../utils/validation");
20
22
  const SpoCommand_1 = require("../../../base/SpoCommand");
21
23
  const commands_1 = require("../../commands");
@@ -29,6 +31,7 @@ class SpoListSetCommand extends SpoCommand_1.default {
29
31
  __classPrivateFieldGet(this, _SpoListSetCommand_instances, "m", _SpoListSetCommand_initOptions).call(this);
30
32
  __classPrivateFieldGet(this, _SpoListSetCommand_instances, "m", _SpoListSetCommand_initValidators).call(this);
31
33
  __classPrivateFieldGet(this, _SpoListSetCommand_instances, "m", _SpoListSetCommand_initTypes).call(this);
34
+ __classPrivateFieldGet(this, _SpoListSetCommand_instances, "m", _SpoListSetCommand_initOptionSets).call(this);
32
35
  }
33
36
  get name() {
34
37
  return commands_1.default.LIST_SET;
@@ -68,8 +71,19 @@ class SpoListSetCommand extends SpoCommand_1.default {
68
71
  logger.logToStderr(`Updating list in site at ${args.options.webUrl}...`);
69
72
  }
70
73
  const requestBody = this.mapRequestBody(args.options);
74
+ let requestUrl = `${args.options.webUrl}/_api/web/`;
75
+ if (args.options.id) {
76
+ requestUrl += `lists(guid'${formatting_1.formatting.encodeQueryParameter(args.options.id)}')/`;
77
+ }
78
+ else if (args.options.title) {
79
+ requestUrl += `lists/getByTitle('${formatting_1.formatting.encodeQueryParameter(args.options.title)}')/`;
80
+ }
81
+ else if (args.options.url) {
82
+ const listServerRelativeUrl = urlUtil_1.urlUtil.getServerRelativePath(args.options.webUrl, args.options.url);
83
+ requestUrl += `GetList('${formatting_1.formatting.encodeQueryParameter(listServerRelativeUrl)}')/`;
84
+ }
71
85
  const requestOptions = {
72
- url: `${args.options.webUrl}/_api/web/lists(guid'${encodeURIComponent(args.options.id)}')`,
86
+ url: requestUrl,
73
87
  method: 'POST',
74
88
  headers: {
75
89
  'X-HTTP-Method': 'MERGE',
@@ -90,8 +104,8 @@ class SpoListSetCommand extends SpoCommand_1.default {
90
104
  }
91
105
  mapRequestBody(options) {
92
106
  const requestBody = {};
93
- if (options.title) {
94
- requestBody.Title = options.title;
107
+ if (options.newTitle) {
108
+ requestBody.Title = options.newTitle;
95
109
  }
96
110
  if (options.description) {
97
111
  requestBody.Description = options.description;
@@ -281,7 +295,10 @@ _SpoListSetCommand_instances = new WeakSet(), _SpoListSetCommand_initTelemetry =
281
295
  const telemetryProps = {};
282
296
  // add properties with identifiable data
283
297
  [
298
+ 'id',
284
299
  'title',
300
+ 'url',
301
+ 'newTitle',
285
302
  'description',
286
303
  'templateFeatureId',
287
304
  'schemaXml',
@@ -325,11 +342,15 @@ _SpoListSetCommand_instances = new WeakSet(), _SpoListSetCommand_initTelemetry =
325
342
  });
326
343
  }, _SpoListSetCommand_initOptions = function _SpoListSetCommand_initOptions() {
327
344
  this.options.unshift({
328
- option: '-i, --id <id>'
329
- }, {
330
345
  option: '-u, --webUrl <webUrl>'
331
346
  }, {
332
- option: '-t, --title [title]'
347
+ option: '--id [id]'
348
+ }, {
349
+ option: '--url [url]'
350
+ }, {
351
+ option: '--title [title]'
352
+ }, {
353
+ option: '--newTitle [newTitle]'
333
354
  }, {
334
355
  option: '--allowDeletion [allowDeletion]',
335
356
  autocomplete: ['true', 'false']
@@ -504,7 +525,7 @@ _SpoListSetCommand_instances = new WeakSet(), _SpoListSetCommand_initTelemetry =
504
525
  if (isValidSharePointUrl !== true) {
505
526
  return isValidSharePointUrl;
506
527
  }
507
- if (!validation_1.validation.isValidGuid(args.options.id)) {
528
+ if (args.options.id && !validation_1.validation.isValidGuid(args.options.id)) {
508
529
  return `${args.options.id} is not a valid GUID`;
509
530
  }
510
531
  for (let i = 0; i < SpoListSetCommand.booleanOptions.length; i++) {
@@ -570,6 +591,8 @@ _SpoListSetCommand_instances = new WeakSet(), _SpoListSetCommand_initTelemetry =
570
591
  'draftVersionVisibility',
571
592
  'listExperienceOptions'
572
593
  ]));
594
+ }, _SpoListSetCommand_initOptionSets = function _SpoListSetCommand_initOptionSets() {
595
+ this.optionSets.push(['id', 'title', 'url']);
573
596
  };
574
597
  SpoListSetCommand.booleanOptions = [
575
598
  'allowDeletion',
@@ -17,6 +17,7 @@ var _SpoListViewFieldAddCommand_instances, _SpoListViewFieldAddCommand_initTelem
17
17
  Object.defineProperty(exports, "__esModule", { value: true });
18
18
  const request_1 = require("../../../../request");
19
19
  const formatting_1 = require("../../../../utils/formatting");
20
+ const urlUtil_1 = require("../../../../utils/urlUtil");
20
21
  const validation_1 = require("../../../../utils/validation");
21
22
  const SpoCommand_1 = require("../../../base/SpoCommand");
22
23
  const commands_1 = require("../../commands");
@@ -37,7 +38,17 @@ class SpoListViewFieldAddCommand extends SpoCommand_1.default {
37
38
  }
38
39
  commandAction(logger, args) {
39
40
  return __awaiter(this, void 0, void 0, function* () {
40
- const listSelector = args.options.listId ? `(guid'${formatting_1.formatting.encodeQueryParameter(args.options.listId)}')` : `/GetByTitle('${formatting_1.formatting.encodeQueryParameter(args.options.listTitle)}')`;
41
+ let listSelector = '';
42
+ if (args.options.listId) {
43
+ listSelector = `lists(guid'${formatting_1.formatting.encodeQueryParameter(args.options.listId)}')`;
44
+ }
45
+ else if (args.options.listTitle) {
46
+ listSelector = `lists/GetByTitle('${formatting_1.formatting.encodeQueryParameter(args.options.listTitle)}')`;
47
+ }
48
+ else if (args.options.listUrl) {
49
+ const listServerRelativeUrl = urlUtil_1.urlUtil.getServerRelativePath(args.options.webUrl, args.options.listUrl);
50
+ listSelector = `GetList('${formatting_1.formatting.encodeQueryParameter(listServerRelativeUrl)}')`;
51
+ }
41
52
  let viewSelector = '';
42
53
  let currentField;
43
54
  if (this.verbose) {
@@ -50,7 +61,7 @@ class SpoListViewFieldAddCommand extends SpoCommand_1.default {
50
61
  }
51
62
  currentField = field;
52
63
  viewSelector = args.options.viewId ? `('${formatting_1.formatting.encodeQueryParameter(args.options.viewId)}')` : `/GetByTitle('${formatting_1.formatting.encodeQueryParameter(args.options.viewTitle)}')`;
53
- const postRequestUrl = `${args.options.webUrl}/_api/web/lists${listSelector}/views${viewSelector}/viewfields/addviewfield('${field.InternalName}')`;
64
+ const postRequestUrl = `${args.options.webUrl}/_api/web/${listSelector}/views${viewSelector}/viewfields/addviewfield('${field.InternalName}')`;
54
65
  const postRequestOptions = {
55
66
  url: postRequestUrl,
56
67
  headers: {
@@ -72,7 +83,7 @@ class SpoListViewFieldAddCommand extends SpoCommand_1.default {
72
83
  if (this.verbose) {
73
84
  logger.logToStderr(`Moving the field ${args.options.id || args.options.title} to the position ${args.options.position} from view ${args.options.viewId || args.options.viewTitle}...`);
74
85
  }
75
- const moveRequestUrl = `${args.options.webUrl}/_api/web/lists${listSelector}/views${viewSelector}/viewfields/moveviewfieldto`;
86
+ const moveRequestUrl = `${args.options.webUrl}/_api/web/${listSelector}/views${viewSelector}/viewfields/moveviewfieldto`;
76
87
  const moveRequestOptions = {
77
88
  url: moveRequestUrl,
78
89
  headers: {
@@ -91,7 +102,7 @@ class SpoListViewFieldAddCommand extends SpoCommand_1.default {
91
102
  }
92
103
  getField(options, listSelector) {
93
104
  const fieldSelector = options.id ? `/getbyid('${encodeURIComponent(options.id)}')` : `/getbyinternalnameortitle('${encodeURIComponent(options.title)}')`;
94
- const getRequestUrl = `${options.webUrl}/_api/web/lists${listSelector}/fields${fieldSelector}`;
105
+ const getRequestUrl = `${options.webUrl}/_api/web/${listSelector}/fields${fieldSelector}`;
95
106
  const requestOptions = {
96
107
  url: getRequestUrl,
97
108
  headers: {
@@ -107,6 +118,7 @@ _SpoListViewFieldAddCommand_instances = new WeakSet(), _SpoListViewFieldAddComma
107
118
  Object.assign(this.telemetryProperties, {
108
119
  listId: typeof args.options.listId !== 'undefined',
109
120
  listTitle: typeof args.options.listTitle !== 'undefined',
121
+ listUrl: typeof args.options.listUrl !== 'undefined',
110
122
  viewId: typeof args.options.viewId !== 'undefined',
111
123
  viewTitle: typeof args.options.viewTitle !== 'undefined',
112
124
  id: typeof args.options.id !== 'undefined',
@@ -121,6 +133,8 @@ _SpoListViewFieldAddCommand_instances = new WeakSet(), _SpoListViewFieldAddComma
121
133
  option: '--listId [listId]'
122
134
  }, {
123
135
  option: '--listTitle [listTitle]'
136
+ }, {
137
+ option: '--listUrl [listUrl]'
124
138
  }, {
125
139
  option: '--viewId [viewId]'
126
140
  }, {
@@ -162,7 +176,7 @@ _SpoListViewFieldAddCommand_instances = new WeakSet(), _SpoListViewFieldAddComma
162
176
  return true;
163
177
  }));
164
178
  }, _SpoListViewFieldAddCommand_initOptionSets = function _SpoListViewFieldAddCommand_initOptionSets() {
165
- this.optionSets.push(['listId', 'listTitle'], ['viewId', 'viewTitle'], ['id', 'title']);
179
+ this.optionSets.push(['listId', 'listTitle', 'listUrl'], ['viewId', 'viewTitle'], ['id', 'title']);
166
180
  };
167
181
  module.exports = new SpoListViewFieldAddCommand();
168
182
  //# sourceMappingURL=list-view-field-add.js.map