@pnp/cli-microsoft365 6.0.0-beta.cd80a69 → 6.0.0-beta.d557a48

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 (261) hide show
  1. package/.eslintrc.js +4 -2
  2. package/dist/Command.js +16 -2
  3. package/dist/m365/aad/commands/app/app-add.js +40 -17
  4. package/dist/m365/aad/commands/app/app-list.js +38 -0
  5. package/dist/m365/aad/commands/user/user-guest-add.js +103 -0
  6. package/dist/m365/aad/commands.js +2 -0
  7. package/dist/m365/adaptivecard/commands/adaptivecard-send.js +4 -4
  8. package/dist/m365/base/SpoCommand.js +12 -11
  9. package/dist/m365/commands/status.js +6 -1
  10. package/dist/m365/outlook/commands/mail/mail-send.js +54 -30
  11. package/dist/m365/outlook/commands/message/message-get.js +97 -0
  12. package/dist/m365/outlook/commands.js +1 -0
  13. package/dist/m365/planner/commands/bucket/bucket-get.js +5 -8
  14. package/dist/m365/planner/commands/plan/plan-get.js +11 -31
  15. package/dist/m365/pp/commands/card/card-clone.js +122 -0
  16. package/dist/m365/pp/commands/card/card-get.js +110 -0
  17. package/dist/m365/pp/commands/card/card-remove.js +130 -0
  18. package/dist/m365/pp/commands/gateway/gateway-get.js +70 -0
  19. package/dist/m365/pp/commands/solution/solution-get.js +117 -0
  20. package/dist/m365/pp/commands.js +5 -0
  21. package/dist/m365/spfx/commands/project/project-doctor/{doctor-1.16.0-beta.1.js → doctor-1.16.0-rc.0.js} +6 -6
  22. package/dist/m365/spfx/commands/project/project-doctor.js +5 -2
  23. package/dist/m365/spfx/commands/project/project-externalize.js +4 -1
  24. package/dist/m365/spfx/commands/project/project-upgrade/rules/FN010001_YORC_version.js +2 -1
  25. package/dist/m365/spfx/commands/project/project-upgrade/rules/FN010002_YORC_isCreatingSolution.js +2 -1
  26. package/dist/m365/spfx/commands/project/project-upgrade/rules/FN010003_YORC_packageManager.js +2 -1
  27. package/dist/m365/spfx/commands/project/project-upgrade/rules/FN010004_YORC_componentType.js +2 -1
  28. package/dist/m365/spfx/commands/project/project-upgrade/rules/FN010005_YORC_environment.js +2 -1
  29. package/dist/m365/spfx/commands/project/project-upgrade/rules/FN010006_YORC_framework.js +3 -2
  30. package/dist/m365/spfx/commands/project/project-upgrade/rules/FN010007_YORC_isDomainIsolated.js +2 -1
  31. package/dist/m365/spfx/commands/project/project-upgrade/rules/FN010008_YORC_nodeVersion.js +2 -1
  32. package/dist/m365/spfx/commands/project/project-upgrade/rules/FN010009_YORC_sdkVersions_microsoft_graph_client.js +56 -0
  33. package/dist/m365/spfx/commands/project/project-upgrade/rules/FN010010_YORC_sdkVersions_teams_js.js +56 -0
  34. package/dist/m365/spfx/commands/project/project-upgrade/{upgrade-1.16.0-beta.1.js → upgrade-1.16.0-rc.0.js} +44 -28
  35. package/dist/m365/spfx/commands/project/project-upgrade.js +5 -2
  36. package/dist/m365/spfx/commands/spfx-doctor.js +6 -6
  37. package/dist/m365/spo/commands/contenttype/contenttype-add.js +82 -43
  38. package/dist/m365/spo/commands/contenttype/contenttype-field-remove.js +53 -21
  39. package/dist/m365/spo/commands/contenttype/contenttype-get.js +35 -14
  40. package/dist/m365/spo/commands/field/field-add.js +26 -1
  41. package/dist/m365/spo/commands/field/field-set.js +23 -13
  42. package/dist/m365/spo/commands/file/file-roleassignment-add.js +1 -15
  43. package/dist/m365/spo/commands/folder/folder-list.js +35 -12
  44. package/dist/m365/spo/commands/folder/folder-roleinheritance-break.js +11 -1
  45. package/dist/m365/spo/commands/folder/folder-roleinheritance-reset.js +12 -1
  46. package/dist/m365/spo/commands/hubsite/hubsite-connect.js +93 -18
  47. package/dist/m365/spo/commands/hubsite/hubsite-disconnect.js +69 -13
  48. package/dist/m365/spo/commands/list/list-roleassignment-add.js +5 -23
  49. package/dist/m365/spo/commands/list/list-roleassignment-remove.js +4 -15
  50. package/dist/m365/spo/commands/list/list-roleinheritance-break.js +14 -6
  51. package/dist/m365/spo/commands/list/list-roleinheritance-reset.js +14 -6
  52. package/dist/m365/spo/commands/list/list-set.js +31 -8
  53. package/dist/m365/spo/commands/list/list-view-field-add.js +19 -5
  54. package/dist/m365/spo/commands/list/list-view-field-remove.js +18 -4
  55. package/dist/m365/spo/commands/list/list-view-field-set.js +18 -4
  56. package/dist/m365/spo/commands/list/list-view-list.js +14 -10
  57. package/dist/m365/spo/commands/list/list-view-remove.js +17 -8
  58. package/dist/m365/spo/commands/list/list-view-set.js +19 -7
  59. package/dist/m365/spo/commands/list/list-webhook-get.js +2 -3
  60. package/dist/m365/spo/commands/list/list-webhook-list.js +4 -28
  61. package/dist/m365/spo/commands/list/list-webhook-set.js +11 -12
  62. package/dist/m365/spo/commands/listitem/listitem-add.js +24 -14
  63. package/dist/m365/spo/commands/listitem/listitem-attachment-list.js +18 -8
  64. package/dist/m365/spo/commands/listitem/listitem-get.js +18 -8
  65. package/dist/m365/spo/commands/listitem/listitem-isrecord.js +20 -10
  66. package/dist/m365/spo/commands/listitem/listitem-list.js +21 -14
  67. package/dist/m365/spo/commands/listitem/listitem-record-declare.js +19 -12
  68. package/dist/m365/spo/commands/listitem/listitem-record-undeclare.js +24 -21
  69. package/dist/m365/spo/commands/listitem/listitem-remove.js +19 -11
  70. package/dist/m365/spo/commands/listitem/listitem-roleassignment-add.js +239 -0
  71. package/dist/m365/spo/commands/listitem/listitem-roleassignment-remove.js +4 -15
  72. package/dist/m365/spo/commands/listitem/listitem-roleinheritance-break.js +13 -5
  73. package/dist/m365/spo/commands/listitem/listitem-roleinheritance-reset.js +13 -5
  74. package/dist/m365/spo/commands/listitem/listitem-set.js +52 -44
  75. package/dist/m365/spo/commands/page/page-clientsidewebpart-add.js +4 -7
  76. package/dist/m365/spo/commands/roledefinition/roledefinition-list.js +15 -2
  77. package/dist/m365/spo/commands/site/site-add.js +4 -11
  78. package/dist/m365/spo/commands/site/site-hubsite-connect.js +75 -0
  79. package/dist/m365/spo/commands/site/site-hubsite-disconnect.js +93 -0
  80. package/dist/m365/spo/commands/{hubsite/hubsite-theme-sync.js → site/site-hubsite-theme-sync.js} +11 -11
  81. package/dist/m365/spo/commands/sitedesign/sitedesign-get.js +4 -7
  82. package/dist/m365/spo/commands/web/web-roleassignment-add.js +4 -15
  83. package/dist/m365/spo/commands/web/web-roleassignment-remove.js +4 -8
  84. package/dist/m365/spo/commands/web/web-roleinheritance-break.js +100 -0
  85. package/dist/m365/spo/commands.js +5 -1
  86. package/dist/m365/teams/commands/channel/channel-get.js +2 -2
  87. package/dist/m365/teams/commands/channel/channel-remove.js +56 -39
  88. package/dist/m365/teams/commands/channel/channel-set.js +57 -19
  89. package/dist/m365/teams/commands/team/team-archive.js +4 -7
  90. package/dist/m365/teams/commands/team/team-remove.js +3 -3
  91. package/dist/m365/teams/commands/team/team-set.js +0 -7
  92. package/dist/m365/teams/commands/team/team-unarchive.js +3 -3
  93. package/dist/m365/todo/commands/list/list-get.js +89 -0
  94. package/dist/m365/todo/commands/task/task-add.js +55 -3
  95. package/dist/m365/todo/commands/task/task-get.js +108 -0
  96. package/dist/m365/todo/commands.js +2 -0
  97. package/dist/utils/md.js +8 -1
  98. package/docs/docs/_clisettings.md +18 -0
  99. package/docs/docs/cmd/aad/app/app-add.md +19 -19
  100. package/docs/docs/cmd/aad/app/app-list.md +149 -0
  101. package/docs/docs/cmd/aad/user/user-guest-add.md +107 -0
  102. package/docs/docs/cmd/adaptivecard/adaptivecard-send.md +12 -5
  103. package/docs/docs/cmd/app/app-get.md +156 -0
  104. package/docs/docs/cmd/app/app-open.md +20 -0
  105. package/docs/docs/cmd/app/permission/permission-list.md +43 -0
  106. package/docs/docs/cmd/booking/business/business-get.md +107 -0
  107. package/docs/docs/cmd/booking/business/business-list.md +34 -0
  108. package/docs/docs/cmd/graph/schemaextension/schemaextension-add.md +4 -11
  109. package/docs/docs/cmd/graph/schemaextension/schemaextension-set.md +4 -10
  110. package/docs/docs/cmd/outlook/mail/mail-send.md +13 -0
  111. package/docs/docs/cmd/outlook/message/message-get.md +48 -0
  112. package/docs/docs/cmd/pa/app/app-get.md +184 -0
  113. package/docs/docs/cmd/pa/app/app-list.md +181 -0
  114. package/docs/docs/cmd/pa/app/app-remove.md +4 -0
  115. package/docs/docs/cmd/pa/connector/connector-export.md +4 -0
  116. package/docs/docs/cmd/pa/connector/connector-list.md +89 -0
  117. package/docs/docs/cmd/pa/environment/environment-get.md +113 -0
  118. package/docs/docs/cmd/pa/environment/environment-list.md +109 -0
  119. package/docs/docs/cmd/pa/pcf/pcf-init.md +4 -0
  120. package/docs/docs/cmd/pa/solution/solution-init.md +5 -0
  121. package/docs/docs/cmd/pa/solution/solution-reference-add.md +4 -0
  122. package/docs/docs/cmd/planner/bucket/bucket-add.md +29 -0
  123. package/docs/docs/cmd/planner/bucket/bucket-get.md +29 -0
  124. package/docs/docs/cmd/planner/bucket/bucket-list.md +30 -0
  125. package/docs/docs/cmd/planner/bucket/bucket-remove.md +4 -0
  126. package/docs/docs/cmd/planner/bucket/bucket-set.md +4 -0
  127. package/docs/docs/cmd/planner/plan/plan-add.md +123 -0
  128. package/docs/docs/cmd/planner/plan/plan-get.md +77 -8
  129. package/docs/docs/cmd/planner/plan/plan-list.md +45 -0
  130. package/docs/docs/cmd/planner/plan/plan-remove.md +4 -0
  131. package/docs/docs/cmd/planner/task/task-get.md +0 -3
  132. package/docs/docs/cmd/pp/card/card-clone.md +77 -0
  133. package/docs/docs/cmd/pp/card/card-get.md +122 -0
  134. package/docs/docs/cmd/pp/card/card-list.md +71 -0
  135. package/docs/docs/cmd/pp/card/card-remove.md +82 -0
  136. package/docs/docs/cmd/pp/dataverse/dataverse-table-list.md +85 -0
  137. package/docs/docs/cmd/pp/environment/environment-get.md +308 -0
  138. package/docs/docs/cmd/pp/environment/environment-list.md +312 -0
  139. package/docs/docs/cmd/pp/gateway/gateway-get.md +56 -0
  140. package/docs/docs/cmd/pp/gateway/gateway-list.md +35 -0
  141. package/docs/docs/cmd/pp/managementapp/managementapp-add.md +23 -0
  142. package/docs/docs/cmd/pp/managementapp/managementapp-list.md +27 -0
  143. package/docs/docs/cmd/pp/solution/solution-get.md +86 -0
  144. package/docs/docs/cmd/pp/solution/solution-list.md +37 -0
  145. package/docs/docs/cmd/pp/tenant/tenant-settings-list.md +62 -0
  146. package/docs/docs/cmd/spfx/project/project-rename.md +1 -14
  147. package/docs/docs/cmd/spfx/project/project-upgrade.md +1 -1
  148. package/docs/docs/cmd/spo/contenttype/contenttype-add.md +20 -2
  149. package/docs/docs/cmd/spo/contenttype/contenttype-field-remove.md +22 -4
  150. package/docs/docs/cmd/spo/contenttype/contenttype-get.md +21 -3
  151. package/docs/docs/cmd/spo/customaction/customaction-add.md +3 -0
  152. package/docs/docs/cmd/spo/customaction/customaction-set.md +3 -2
  153. package/docs/docs/cmd/spo/field/field-add.md +20 -2
  154. package/docs/docs/cmd/spo/field/field-set.md +15 -3
  155. package/docs/docs/cmd/spo/file/file-roleassignment-add.md +9 -9
  156. package/docs/docs/cmd/spo/file/file-roleassignment-remove.md +3 -3
  157. package/docs/docs/cmd/spo/folder/folder-list.md +45 -0
  158. package/docs/docs/cmd/spo/folder/folder-roleinheritance-break.md +6 -0
  159. package/docs/docs/cmd/spo/folder/folder-roleinheritance-reset.md +6 -0
  160. package/docs/docs/cmd/spo/hubsite/hubsite-connect.md +36 -14
  161. package/docs/docs/cmd/spo/hubsite/hubsite-disconnect.md +28 -12
  162. package/docs/docs/cmd/spo/hubsite/hubsite-register.md +2 -2
  163. package/docs/docs/cmd/spo/hubsite/hubsite-unregister.md +2 -2
  164. package/docs/docs/cmd/spo/list/list-roleassignment-add.md +9 -9
  165. package/docs/docs/cmd/spo/list/list-roleassignment-remove.md +8 -8
  166. package/docs/docs/cmd/spo/list/list-roleinheritance-break.md +11 -8
  167. package/docs/docs/cmd/spo/list/list-roleinheritance-reset.md +16 -7
  168. package/docs/docs/cmd/spo/list/list-set.md +18 -6
  169. package/docs/docs/cmd/spo/list/list-view-field-add.md +14 -4
  170. package/docs/docs/cmd/spo/list/list-view-field-remove.md +11 -2
  171. package/docs/docs/cmd/spo/list/list-view-field-set.md +18 -2
  172. package/docs/docs/cmd/spo/list/list-view-list.md +16 -7
  173. package/docs/docs/cmd/spo/list/list-view-remove.md +12 -3
  174. package/docs/docs/cmd/spo/list/list-view-set.md +20 -6
  175. package/docs/docs/cmd/spo/list/list-webhook-get.md +1 -1
  176. package/docs/docs/cmd/spo/list/list-webhook-list.md +3 -9
  177. package/docs/docs/cmd/spo/list/list-webhook-set.md +11 -4
  178. package/docs/docs/cmd/spo/listitem/listitem-add.md +11 -2
  179. package/docs/docs/cmd/spo/listitem/listitem-attachment-list.md +11 -2
  180. package/docs/docs/cmd/spo/listitem/listitem-get.md +11 -2
  181. package/docs/docs/cmd/spo/listitem/listitem-isrecord.md +12 -2
  182. package/docs/docs/cmd/spo/listitem/listitem-list.md +17 -8
  183. package/docs/docs/cmd/spo/listitem/listitem-record-declare.md +7 -4
  184. package/docs/docs/cmd/spo/listitem/listitem-record-undeclare.md +11 -2
  185. package/docs/docs/cmd/spo/listitem/listitem-remove.md +11 -2
  186. package/docs/docs/cmd/spo/listitem/listitem-roleassignment-add.md +81 -0
  187. package/docs/docs/cmd/spo/listitem/listitem-roleassignment-remove.md +8 -8
  188. package/docs/docs/cmd/spo/listitem/listitem-roleinheritance-break.md +7 -4
  189. package/docs/docs/cmd/spo/listitem/listitem-roleinheritance-reset.md +8 -5
  190. package/docs/docs/cmd/spo/listitem/listitem-set.md +7 -4
  191. package/docs/docs/cmd/spo/page/page-clientsidewebpart-add.md +14 -19
  192. package/docs/docs/cmd/spo/page/page-control-set.md +2 -1
  193. package/docs/docs/cmd/spo/site/site-add.md +0 -3
  194. package/docs/docs/cmd/spo/site/site-hubsite-connect.md +40 -0
  195. package/docs/docs/cmd/spo/site/site-hubsite-disconnect.md +42 -0
  196. package/docs/docs/cmd/spo/{hubsite/hubsite-theme-sync.md → site/site-hubsite-theme-sync.md} +5 -5
  197. package/docs/docs/cmd/spo/sitedesign/sitedesign-get.md +2 -2
  198. package/docs/docs/cmd/spo/term/term-add.md +5 -0
  199. package/docs/docs/cmd/spo/term/term-set-add.md +6 -1
  200. package/docs/docs/cmd/spo/web/web-roleassignment-add.md +6 -6
  201. package/docs/docs/cmd/spo/web/web-roleassignment-remove.md +4 -4
  202. package/docs/docs/cmd/spo/web/web-roleinheritance-break.md +44 -0
  203. package/docs/docs/cmd/teams/channel/channel-get.md +7 -7
  204. package/docs/docs/cmd/teams/channel/channel-remove.md +12 -9
  205. package/docs/docs/cmd/teams/channel/channel-set.md +13 -6
  206. package/docs/docs/cmd/teams/message/message-get.md +80 -0
  207. package/docs/docs/cmd/teams/message/message-list.md +63 -0
  208. package/docs/docs/cmd/teams/message/message-reply-list.md +63 -0
  209. package/docs/docs/cmd/teams/messagingsettings/messagingsettings-list.md +31 -0
  210. package/docs/docs/cmd/teams/messagingsettings/messagingsettings-set.md +4 -0
  211. package/docs/docs/cmd/teams/report/report-deviceusagedistributionusercounts.md +35 -0
  212. package/docs/docs/cmd/teams/report/report-deviceusageusercounts.md +36 -0
  213. package/docs/docs/cmd/teams/report/report-deviceusageuserdetail.md +41 -0
  214. package/docs/docs/cmd/teams/report/report-directroutingcalls.md +49 -0
  215. package/docs/docs/cmd/teams/report/report-pstncalls.md +49 -0
  216. package/docs/docs/cmd/teams/report/report-useractivitycounts.md +39 -0
  217. package/docs/docs/cmd/teams/report/report-useractivityusercounts.md +33 -0
  218. package/docs/docs/cmd/teams/report/report-useractivityuserdetail.md +58 -0
  219. package/docs/docs/cmd/teams/tab/tab-add.md +35 -0
  220. package/docs/docs/cmd/teams/tab/tab-get.md +35 -0
  221. package/docs/docs/cmd/teams/tab/tab-list.md +43 -0
  222. package/docs/docs/cmd/teams/tab/tab-remove.md +4 -0
  223. package/docs/docs/cmd/teams/team/team-add.md +145 -0
  224. package/docs/docs/cmd/teams/team/team-archive.md +7 -3
  225. package/docs/docs/cmd/teams/team/team-clone.md +4 -3
  226. package/docs/docs/cmd/teams/team/team-get.md +78 -0
  227. package/docs/docs/cmd/teams/team/team-list.md +30 -0
  228. package/docs/docs/cmd/teams/team/team-remove.md +7 -3
  229. package/docs/docs/cmd/teams/team/team-set.md +4 -3
  230. package/docs/docs/cmd/teams/team/team-unarchive.md +5 -2
  231. package/docs/docs/cmd/teams/user/user-app-add.md +4 -0
  232. package/docs/docs/cmd/teams/user/user-app-list.md +40 -0
  233. package/docs/docs/cmd/teams/user/user-app-remove.md +4 -0
  234. package/docs/docs/cmd/teams/user/user-list.md +31 -0
  235. package/docs/docs/cmd/tenant/id/id-get.md +20 -0
  236. package/docs/docs/cmd/tenant/report/report-activeusercounts.md +35 -0
  237. package/docs/docs/cmd/tenant/report/report-activeuserdetail.md +49 -0
  238. package/docs/docs/cmd/tenant/report/report-office365activationcounts.md +32 -0
  239. package/docs/docs/cmd/tenant/report/report-office365activationsusercounts.md +30 -0
  240. package/docs/docs/cmd/tenant/report/report-office365activationsuserdetail.md +36 -0
  241. package/docs/docs/cmd/tenant/report/report-servicesusercounts.md +41 -0
  242. package/docs/docs/cmd/tenant/security/security-alerts-list.md +105 -0
  243. package/docs/docs/cmd/tenant/serviceannouncement/serviceannouncement-health-get.md +87 -0
  244. package/docs/docs/cmd/tenant/serviceannouncement/serviceannouncement-health-list.md +91 -0
  245. package/docs/docs/cmd/tenant/serviceannouncement/serviceannouncement-healthissue-get.md +62 -0
  246. package/docs/docs/cmd/tenant/serviceannouncement/serviceannouncement-healthissue-list.md +51 -0
  247. package/docs/docs/cmd/tenant/serviceannouncement/serviceannouncement-message-get.md +64 -0
  248. package/docs/docs/cmd/tenant/serviceannouncement/serviceannouncement-message-list.md +52 -0
  249. package/docs/docs/cmd/todo/list/list-add.md +32 -1
  250. package/docs/docs/cmd/todo/list/list-get.md +61 -0
  251. package/docs/docs/cmd/todo/list/list-list.md +31 -0
  252. package/docs/docs/cmd/todo/list/list-remove.md +10 -6
  253. package/docs/docs/cmd/todo/list/list-set.md +9 -5
  254. package/docs/docs/cmd/todo/task/task-add.md +88 -5
  255. package/docs/docs/cmd/todo/task/task-get.md +75 -0
  256. package/docs/docs/cmd/todo/task/task-list.md +47 -0
  257. package/docs/docs/cmd/todo/task/task-remove.md +9 -4
  258. package/docs/docs/cmd/todo/task/task-set.md +59 -5
  259. package/docs/docs/cmd/util/accesstoken/accesstoken-get.md +20 -0
  260. package/docs/docs/cmd/viva/connections/connections-app-create.md +4 -0
  261. package/package.json +13 -4
@@ -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 _SpoFolderListCommand_instances, _SpoFolderListCommand_initOptions, _SpoFolderListCommand_initValidators;
16
+ var _SpoFolderListCommand_instances, _SpoFolderListCommand_initTelemetry, _SpoFolderListCommand_initOptions, _SpoFolderListCommand_initValidators;
17
17
  Object.defineProperty(exports, "__esModule", { value: true });
18
18
  const request_1 = require("../../../../request");
19
+ const formatting_1 = require("../../../../utils/formatting");
19
20
  const urlUtil_1 = require("../../../../utils/urlUtil");
20
21
  const validation_1 = require("../../../../utils/validation");
21
22
  const SpoCommand_1 = require("../../../base/SpoCommand");
@@ -24,6 +25,7 @@ class SpoFolderListCommand extends SpoCommand_1.default {
24
25
  constructor() {
25
26
  super();
26
27
  _SpoFolderListCommand_instances.add(this);
28
+ __classPrivateFieldGet(this, _SpoFolderListCommand_instances, "m", _SpoFolderListCommand_initTelemetry).call(this);
27
29
  __classPrivateFieldGet(this, _SpoFolderListCommand_instances, "m", _SpoFolderListCommand_initOptions).call(this);
28
30
  __classPrivateFieldGet(this, _SpoFolderListCommand_instances, "m", _SpoFolderListCommand_initValidators).call(this);
29
31
  }
@@ -39,32 +41,53 @@ class SpoFolderListCommand extends SpoCommand_1.default {
39
41
  commandAction(logger, args) {
40
42
  return __awaiter(this, void 0, void 0, function* () {
41
43
  if (this.verbose) {
42
- logger.logToStderr(`Retrieving folders from site ${args.options.webUrl} parent folder ${args.options.parentFolderUrl}...`);
44
+ logger.logToStderr(`Retrieving folders from site ${args.options.webUrl} parent folder ${args.options.parentFolderUrl} ${args.options.recursive ? '(recursive)' : ''}...`);
43
45
  }
44
- const serverRelativeUrl = urlUtil_1.urlUtil.getServerRelativePath(args.options.webUrl, args.options.parentFolderUrl);
45
- const requestUrl = `${args.options.webUrl}/_api/web/GetFolderByServerRelativeUrl('${encodeURIComponent(serverRelativeUrl)}')/folders`;
46
+ try {
47
+ const resp = yield this.getFolderList(args.options.webUrl, args.options.parentFolderUrl, args.options.recursive);
48
+ logger.log(resp);
49
+ }
50
+ catch (err) {
51
+ this.handleRejectedODataJsonPromise(err);
52
+ }
53
+ });
54
+ }
55
+ getFolderList(webUrl, parentFolderUrl, recursive, folders = []) {
56
+ return __awaiter(this, void 0, void 0, function* () {
57
+ const serverRelativeUrl = urlUtil_1.urlUtil.getServerRelativePath(webUrl, parentFolderUrl);
46
58
  const requestOptions = {
47
- url: requestUrl,
59
+ url: `${webUrl}/_api/web/GetFolderByServerRelativeUrl('${formatting_1.formatting.encodeQueryParameter(serverRelativeUrl)}')/folders`,
48
60
  headers: {
49
61
  'accept': 'application/json;odata=nometadata'
50
62
  },
51
63
  responseType: 'json'
52
64
  };
53
- try {
54
- const resp = yield request_1.default.get(requestOptions);
55
- logger.log(resp.value);
56
- }
57
- catch (err) {
58
- this.handleRejectedODataJsonPromise(err);
65
+ const resp = yield request_1.default.get(requestOptions);
66
+ if (resp.value.length > 0) {
67
+ for (const folder of resp.value) {
68
+ folders.push(folder);
69
+ if (recursive) {
70
+ yield this.getFolderList(webUrl, folder.ServerRelativeUrl, recursive, folders);
71
+ }
72
+ }
59
73
  }
74
+ return folders;
60
75
  });
61
76
  }
62
77
  }
63
- _SpoFolderListCommand_instances = new WeakSet(), _SpoFolderListCommand_initOptions = function _SpoFolderListCommand_initOptions() {
78
+ _SpoFolderListCommand_instances = new WeakSet(), _SpoFolderListCommand_initTelemetry = function _SpoFolderListCommand_initTelemetry() {
79
+ this.telemetry.push((args) => {
80
+ Object.assign(this.telemetryProperties, {
81
+ recursive: !!args.options.recursive
82
+ });
83
+ });
84
+ }, _SpoFolderListCommand_initOptions = function _SpoFolderListCommand_initOptions() {
64
85
  this.options.unshift({
65
86
  option: '-u, --webUrl <webUrl>'
66
87
  }, {
67
88
  option: '-p, --parentFolderUrl <parentFolderUrl>'
89
+ }, {
90
+ option: '--recursive [recursive]'
68
91
  });
69
92
  }, _SpoFolderListCommand_initValidators = function _SpoFolderListCommand_initValidators() {
70
93
  this.validators.push((args) => __awaiter(this, void 0, void 0, function* () { return validation_1.validation.isValidSharePointUrl(args.options.webUrl); }));
@@ -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
  },
@@ -13,60 +13,135 @@ 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 _SpoHubSiteConnectCommand_instances, _SpoHubSiteConnectCommand_initOptions, _SpoHubSiteConnectCommand_initValidators;
16
+ var _SpoHubSiteConnectCommand_instances, _SpoHubSiteConnectCommand_initTelemetry, _SpoHubSiteConnectCommand_initOptions, _SpoHubSiteConnectCommand_initOptionSets, _SpoHubSiteConnectCommand_initValidators;
17
17
  Object.defineProperty(exports, "__esModule", { value: true });
18
- const request_1 = require("../../../../request");
19
- const spo_1 = require("../../../../utils/spo");
20
18
  const validation_1 = require("../../../../utils/validation");
21
19
  const SpoCommand_1 = require("../../../base/SpoCommand");
22
20
  const commands_1 = require("../../commands");
21
+ const request_1 = require("../../../../request");
22
+ const spo_1 = require("../../../../utils/spo");
23
23
  class SpoHubSiteConnectCommand extends SpoCommand_1.default {
24
24
  constructor() {
25
25
  super();
26
26
  _SpoHubSiteConnectCommand_instances.add(this);
27
+ __classPrivateFieldGet(this, _SpoHubSiteConnectCommand_instances, "m", _SpoHubSiteConnectCommand_initTelemetry).call(this);
27
28
  __classPrivateFieldGet(this, _SpoHubSiteConnectCommand_instances, "m", _SpoHubSiteConnectCommand_initOptions).call(this);
28
29
  __classPrivateFieldGet(this, _SpoHubSiteConnectCommand_instances, "m", _SpoHubSiteConnectCommand_initValidators).call(this);
30
+ __classPrivateFieldGet(this, _SpoHubSiteConnectCommand_instances, "m", _SpoHubSiteConnectCommand_initOptionSets).call(this);
29
31
  }
30
32
  get name() {
31
33
  return commands_1.default.HUBSITE_CONNECT;
32
34
  }
33
35
  get description() {
34
- return 'Connects the specified site collection to the given hub site';
36
+ return 'Connect a hub site to a parent hub site';
35
37
  }
36
38
  commandAction(logger, args) {
37
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
+ }
38
43
  try {
39
- const res = yield spo_1.spo.getRequestDigest(args.options.siteUrl);
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);
40
48
  const requestOptions = {
41
- url: `${args.options.siteUrl}/_api/site/JoinHubSite('${encodeURIComponent(args.options.id)}')`,
49
+ url: `${spoAdminUrl}/_api/HubSites/GetById('${hubSite.ID}')`,
42
50
  headers: {
43
- 'X-RequestDigest': res.FormDigestValue,
44
- accept: 'application/json;odata=nometadata'
51
+ accept: 'application/json;odata=nometadata',
52
+ 'if-match': hubSite['odata.etag']
45
53
  },
46
- responseType: 'json'
54
+ responseType: 'json',
55
+ data: {
56
+ ParentHubSiteId: parentHubSite.ID
57
+ }
47
58
  };
48
- yield request_1.default.post(requestOptions);
59
+ yield request_1.default.patch(requestOptions);
49
60
  }
50
61
  catch (err) {
51
62
  this.handleRejectedODataJsonPromise(err);
52
63
  }
53
64
  });
54
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
+ }
55
98
  }
56
- _SpoHubSiteConnectCommand_instances = new WeakSet(), _SpoHubSiteConnectCommand_initOptions = function _SpoHubSiteConnectCommand_initOptions() {
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() {
57
111
  this.options.unshift({
58
- option: '-u, --siteUrl <siteUrl>'
112
+ option: '-i, --id [id]'
113
+ }, {
114
+ option: '-t, --title [title]'
115
+ }, {
116
+ option: '-u, --url [url]'
59
117
  }, {
60
- option: '-i, --id <id>'
118
+ option: '--parentId [parentId]'
119
+ }, {
120
+ option: '--parentTitle [parentTitle]'
121
+ }, {
122
+ option: '--parentUrl [parentUrl]'
61
123
  });
124
+ }, _SpoHubSiteConnectCommand_initOptionSets = function _SpoHubSiteConnectCommand_initOptionSets() {
125
+ this.optionSets.push(['id', 'title', 'url'], ['parentId', 'parentTitle', 'parentUrl']);
62
126
  }, _SpoHubSiteConnectCommand_initValidators = function _SpoHubSiteConnectCommand_initValidators() {
63
127
  this.validators.push((args) => __awaiter(this, void 0, void 0, function* () {
64
- const isValidSharePointUrl = validation_1.validation.isValidSharePointUrl(args.options.siteUrl);
65
- if (isValidSharePointUrl !== true) {
66
- return isValidSharePointUrl;
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`;
67
133
  }
68
- if (!validation_1.validation.isValidGuid(args.options.id)) {
69
- return `${args.options.id} is not a valid GUID`;
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
+ }
70
145
  }
71
146
  return true;
72
147
  }));
@@ -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 _SpoHubSiteDisconnectCommand_instances, _SpoHubSiteDisconnectCommand_initTelemetry, _SpoHubSiteDisconnectCommand_initOptions, _SpoHubSiteDisconnectCommand_initValidators;
16
+ var _SpoHubSiteDisconnectCommand_instances, _SpoHubSiteDisconnectCommand_initTelemetry, _SpoHubSiteDisconnectCommand_initOptions, _SpoHubSiteDisconnectCommand_initOptionSets, _SpoHubSiteDisconnectCommand_initValidators;
17
17
  Object.defineProperty(exports, "__esModule", { value: true });
18
18
  const Cli_1 = require("../../../../cli/Cli");
19
19
  const request_1 = require("../../../../request");
@@ -28,30 +28,35 @@ class SpoHubSiteDisconnectCommand extends SpoCommand_1.default {
28
28
  __classPrivateFieldGet(this, _SpoHubSiteDisconnectCommand_instances, "m", _SpoHubSiteDisconnectCommand_initTelemetry).call(this);
29
29
  __classPrivateFieldGet(this, _SpoHubSiteDisconnectCommand_instances, "m", _SpoHubSiteDisconnectCommand_initOptions).call(this);
30
30
  __classPrivateFieldGet(this, _SpoHubSiteDisconnectCommand_instances, "m", _SpoHubSiteDisconnectCommand_initValidators).call(this);
31
+ __classPrivateFieldGet(this, _SpoHubSiteDisconnectCommand_instances, "m", _SpoHubSiteDisconnectCommand_initOptionSets).call(this);
31
32
  }
32
33
  get name() {
33
34
  return commands_1.default.HUBSITE_DISCONNECT;
34
35
  }
35
36
  get description() {
36
- return 'Disconnects the specifies site collection from its hub site';
37
+ return 'Disconnect a hub site from its parent hub site';
37
38
  }
38
39
  commandAction(logger, args) {
39
40
  return __awaiter(this, void 0, void 0, function* () {
40
41
  const disconnectHubSite = () => __awaiter(this, void 0, void 0, function* () {
41
42
  try {
42
- const res = yield spo_1.spo.getRequestDigest(args.options.siteUrl);
43
43
  if (this.verbose) {
44
- logger.logToStderr(`Disconnecting site collection ${args.options.siteUrl} from its hubsite...`);
44
+ logger.logToStderr(`Disconnecting hub site '${args.options.id || args.options.title || args.options.url}' from its parent hub site...`);
45
45
  }
46
+ const spoAdminUrl = yield spo_1.spo.getSpoAdminUrl(logger, this.debug);
47
+ const hubSite = yield this.getHubSite(spoAdminUrl, args.options);
46
48
  const requestOptions = {
47
- url: `${args.options.url}/_api/site/JoinHubSite('00000000-0000-0000-0000-000000000000')`,
49
+ url: `${spoAdminUrl}/_api/HubSites/GetById('${hubSite.ID}')`,
48
50
  headers: {
49
- 'X-RequestDigest': res.FormDigestValue,
50
- accept: 'application/json;odata=nometadata'
51
+ accept: 'application/json;odata=nometadata',
52
+ 'if-match': hubSite['odata.etag']
51
53
  },
52
- responseType: 'json'
54
+ responseType: 'json',
55
+ data: {
56
+ ParentHubSiteId: '00000000-0000-0000-0000-000000000000'
57
+ }
53
58
  };
54
- yield request_1.default.post(requestOptions);
59
+ yield request_1.default.patch(requestOptions);
55
60
  }
56
61
  catch (err) {
57
62
  this.handleRejectedODataJsonPromise(err);
@@ -65,7 +70,7 @@ class SpoHubSiteDisconnectCommand extends SpoCommand_1.default {
65
70
  type: 'confirm',
66
71
  name: 'continue',
67
72
  default: false,
68
- message: `Are you sure you want to disconnect the site collection ${args.options.siteUrl} from its hub site?`
73
+ message: `Are you sure you want disconnect hub site '${args.options.id || args.options.title || args.options.url}' from its parent hub site?`
69
74
  });
70
75
  if (result.continue) {
71
76
  yield disconnectHubSite();
@@ -73,21 +78,72 @@ class SpoHubSiteDisconnectCommand extends SpoCommand_1.default {
73
78
  }
74
79
  });
75
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
+ }
76
113
  }
77
114
  _SpoHubSiteDisconnectCommand_instances = new WeakSet(), _SpoHubSiteDisconnectCommand_initTelemetry = function _SpoHubSiteDisconnectCommand_initTelemetry() {
78
115
  this.telemetry.push((args) => {
79
116
  Object.assign(this.telemetryProperties, {
80
- confirm: args.options.confirm || false
117
+ id: typeof args.options.id !== 'undefined',
118
+ title: typeof args.options.title !== 'undefined',
119
+ url: typeof args.options.url !== 'undefined'
81
120
  });
82
121
  });
83
122
  }, _SpoHubSiteDisconnectCommand_initOptions = function _SpoHubSiteDisconnectCommand_initOptions() {
84
123
  this.options.unshift({
85
- option: '-u, --siteUrl <siteUrl>'
124
+ option: '-i, --id [id]'
125
+ }, {
126
+ option: '-t, --title [title]'
127
+ }, {
128
+ option: '-u, --url [url]'
86
129
  }, {
87
130
  option: '--confirm'
88
131
  });
132
+ }, _SpoHubSiteDisconnectCommand_initOptionSets = function _SpoHubSiteDisconnectCommand_initOptionSets() {
133
+ this.optionSets.push(['id', 'title', 'url']);
89
134
  }, _SpoHubSiteDisconnectCommand_initValidators = function _SpoHubSiteDisconnectCommand_initValidators() {
90
- this.validators.push((args) => __awaiter(this, void 0, void 0, function* () { return validation_1.validation.isValidSharePointUrl(args.options.siteUrl); }));
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
+ }));
91
147
  };
92
148
  module.exports = new SpoHubSiteDisconnectCommand();
93
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;
@@ -63,7 +64,7 @@ class SpoListRoleAssignmentAddCommand extends SpoCommand_1.default {
63
64
  }
64
65
  else if (args.options.groupName) {
65
66
  args.options.principalId = yield this.getGroupPrincipalId(args.options);
66
- this.addRoleAssignment(requestUrl, logger, args.options);
67
+ yield this.addRoleAssignment(requestUrl, logger, args.options);
67
68
  }
68
69
  else {
69
70
  yield this.addRoleAssignment(requestUrl, logger, args.options);
@@ -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
@@ -18,6 +18,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
18
18
  const Cli_1 = require("../../../../cli/Cli");
19
19
  const request_1 = require("../../../../request");
20
20
  const formatting_1 = require("../../../../utils/formatting");
21
+ const urlUtil_1 = require("../../../../utils/urlUtil");
21
22
  const validation_1 = require("../../../../utils/validation");
22
23
  const SpoCommand_1 = require("../../../base/SpoCommand");
23
24
  const commands_1 = require("../../commands");
@@ -44,19 +45,23 @@ class SpoListRoleInheritanceBreakCommand extends SpoCommand_1.default {
44
45
  }
45
46
  const breakListRoleInheritance = () => __awaiter(this, void 0, void 0, function* () {
46
47
  try {
47
- let requestUrl = `${args.options.webUrl}/_api/web/lists`;
48
+ let requestUrl = `${args.options.webUrl}/_api/web/`;
48
49
  if (args.options.listId) {
49
- requestUrl += `(guid'${formatting_1.formatting.encodeQueryParameter(args.options.listId)}')`;
50
+ requestUrl += `lists(guid'${formatting_1.formatting.encodeQueryParameter(args.options.listId)}')/`;
50
51
  }
51
- else {
52
- requestUrl += `/getbytitle('${formatting_1.formatting.encodeQueryParameter(args.options.listTitle)}')`;
52
+ else if (args.options.listTitle) {
53
+ requestUrl += `lists/getByTitle('${formatting_1.formatting.encodeQueryParameter(args.options.listTitle)}')/`;
54
+ }
55
+ else if (args.options.listUrl) {
56
+ const listServerRelativeUrl = urlUtil_1.urlUtil.getServerRelativePath(args.options.webUrl, args.options.listUrl);
57
+ requestUrl += `GetList('${formatting_1.formatting.encodeQueryParameter(listServerRelativeUrl)}')/`;
53
58
  }
54
59
  let keepExistingPermissions = true;
55
60
  if (args.options.clearExistingPermissions) {
56
61
  keepExistingPermissions = !args.options.clearExistingPermissions;
57
62
  }
58
63
  const requestOptions = {
59
- url: `${requestUrl}/breakroleinheritance(${keepExistingPermissions})`,
64
+ url: `${requestUrl}breakroleinheritance(${keepExistingPermissions})`,
60
65
  method: 'POST',
61
66
  headers: {
62
67
  'accept': 'application/json;odata=nometadata',
@@ -92,6 +97,7 @@ _SpoListRoleInheritanceBreakCommand_instances = new WeakSet(), _SpoListRoleInher
92
97
  Object.assign(this.telemetryProperties, {
93
98
  listId: typeof args.options.listId !== 'undefined',
94
99
  listTitle: typeof args.options.listTitle !== 'undefined',
100
+ listUrl: typeof args.options.listUrl !== 'undefined',
95
101
  clearExistingPermissions: args.options.clearExistingPermissions === true,
96
102
  confirm: (!(!args.options.confirm)).toString()
97
103
  });
@@ -103,6 +109,8 @@ _SpoListRoleInheritanceBreakCommand_instances = new WeakSet(), _SpoListRoleInher
103
109
  option: '-i, --listId [listId]'
104
110
  }, {
105
111
  option: '-t, --listTitle [listTitle]'
112
+ }, {
113
+ option: '--listUrl [listUrl]'
106
114
  }, {
107
115
  option: '-c, --clearExistingPermissions'
108
116
  }, {
@@ -120,7 +128,7 @@ _SpoListRoleInheritanceBreakCommand_instances = new WeakSet(), _SpoListRoleInher
120
128
  return true;
121
129
  }));
122
130
  }, _SpoListRoleInheritanceBreakCommand_initOptionSets = function _SpoListRoleInheritanceBreakCommand_initOptionSets() {
123
- this.optionSets.push(['listId', 'listTitle']);
131
+ this.optionSets.push(['listId', 'listTitle', 'listUrl']);
124
132
  };
125
133
  module.exports = new SpoListRoleInheritanceBreakCommand();
126
134
  //# sourceMappingURL=list-roleinheritance-break.js.map