@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
@@ -19,6 +19,7 @@ const config_1 = require("../../../../config");
19
19
  const request_1 = require("../../../../request");
20
20
  const formatting_1 = require("../../../../utils/formatting");
21
21
  const spo_1 = require("../../../../utils/spo");
22
+ const urlUtil_1 = require("../../../../utils/urlUtil");
22
23
  const validation_1 = require("../../../../utils/validation");
23
24
  const SpoCommand_1 = require("../../../base/SpoCommand");
24
25
  const commands_1 = require("../../commands");
@@ -39,23 +40,22 @@ class SpoListItemRecordDeclareCommand extends SpoCommand_1.default {
39
40
  }
40
41
  commandAction(logger, args) {
41
42
  return __awaiter(this, void 0, void 0, function* () {
42
- let formDigestValue = '';
43
- let webIdentity = '';
44
- let listId = '';
45
43
  try {
46
- const listRestUrl = args.options.listId
47
- ? `${args.options.webUrl}/_api/web/lists(guid'${formatting_1.formatting.encodeQueryParameter(args.options.listId)}')`
48
- : `${args.options.webUrl}/_api/web/lists/getByTitle('${formatting_1.formatting.encodeQueryParameter(args.options.listTitle)}')`;
49
- const contextResponse = yield spo_1.spo.getRequestDigest(args.options.webUrl);
50
- formDigestValue = contextResponse.FormDigestValue;
51
- const webIdentityResp = yield spo_1.spo.getCurrentWebIdentity(args.options.webUrl, formDigestValue);
52
- webIdentity = webIdentityResp.objectIdentity;
44
+ let listId = '';
53
45
  if (args.options.listId) {
54
46
  listId = args.options.listId;
55
47
  }
56
48
  else {
49
+ let requestUrl = `${args.options.webUrl}/_api/web`;
50
+ if (args.options.listTitle) {
51
+ requestUrl += `/lists/getByTitle('${formatting_1.formatting.encodeQueryParameter(args.options.listTitle)}')`;
52
+ }
53
+ else if (args.options.listUrl) {
54
+ const listServerRelativeUrl = urlUtil_1.urlUtil.getServerRelativePath(args.options.webUrl, args.options.listUrl);
55
+ requestUrl += `/GetList('${formatting_1.formatting.encodeQueryParameter(listServerRelativeUrl)}')`;
56
+ }
57
57
  const requestOptions = {
58
- url: `${listRestUrl}?$select=Id`,
58
+ url: `${requestUrl}?$select=Id`,
59
59
  headers: {
60
60
  accept: 'application/json;odata=nometadata'
61
61
  },
@@ -64,6 +64,10 @@ class SpoListItemRecordDeclareCommand extends SpoCommand_1.default {
64
64
  const list = yield request_1.default.get(requestOptions);
65
65
  listId = list.Id;
66
66
  }
67
+ const contextResponse = yield spo_1.spo.getRequestDigest(args.options.webUrl);
68
+ const formDigestValue = contextResponse.FormDigestValue;
69
+ const webIdentityResp = yield spo_1.spo.getCurrentWebIdentity(args.options.webUrl, formDigestValue);
70
+ const webIdentity = webIdentityResp.objectIdentity;
67
71
  const requestBody = this.getDeclareRecordRequestBody(webIdentity, listId, args.options.listItemId, args.options.date || '');
68
72
  const requestOptions = {
69
73
  url: `${args.options.webUrl}/_vti_bin/client.svc/ProcessQuery`,
@@ -105,6 +109,7 @@ _SpoListItemRecordDeclareCommand_instances = new WeakSet(), _SpoListItemRecordDe
105
109
  Object.assign(this.telemetryProperties, {
106
110
  listId: typeof args.options.listId !== 'undefined',
107
111
  listTitle: typeof args.options.listTitle !== 'undefined',
112
+ listUrl: typeof args.options.listUrl !== 'undefined',
108
113
  date: typeof args.options.date !== 'undefined'
109
114
  });
110
115
  });
@@ -115,6 +120,8 @@ _SpoListItemRecordDeclareCommand_instances = new WeakSet(), _SpoListItemRecordDe
115
120
  option: '-l, --listId [listId]'
116
121
  }, {
117
122
  option: '-t, --listTitle [listTitle]'
123
+ }, {
124
+ option: '--listUrl [listUrl]'
118
125
  }, {
119
126
  option: '-i, --listItemId <listItemId>'
120
127
  }, {
@@ -142,7 +149,7 @@ _SpoListItemRecordDeclareCommand_instances = new WeakSet(), _SpoListItemRecordDe
142
149
  return true;
143
150
  }));
144
151
  }, _SpoListItemRecordDeclareCommand_initOptionSets = function _SpoListItemRecordDeclareCommand_initOptionSets() {
145
- this.optionSets.push(['listId', 'listTitle']);
152
+ this.optionSets.push(['listId', 'listTitle', 'listUrl']);
146
153
  };
147
154
  module.exports = new SpoListItemRecordDeclareCommand();
148
155
  //# sourceMappingURL=listitem-record-declare.js.map
@@ -19,6 +19,7 @@ const config_1 = require("../../../../config");
19
19
  const request_1 = require("../../../../request");
20
20
  const formatting_1 = require("../../../../utils/formatting");
21
21
  const spo_1 = require("../../../../utils/spo");
22
+ const urlUtil_1 = require("../../../../utils/urlUtil");
22
23
  const validation_1 = require("../../../../utils/validation");
23
24
  const SpoCommand_1 = require("../../../base/SpoCommand");
24
25
  const commands_1 = require("../../commands");
@@ -39,39 +40,38 @@ class SpoListItemRecordUndeclareCommand extends SpoCommand_1.default {
39
40
  }
40
41
  commandAction(logger, args) {
41
42
  return __awaiter(this, void 0, void 0, function* () {
42
- const listIdArgument = args.options.listId || '';
43
- const listTitleArgument = args.options.listTitle || '';
44
- const listRestUrl = (args.options.listId ?
45
- `${args.options.webUrl}/_api/web/lists(guid'${formatting_1.formatting.encodeQueryParameter(listIdArgument)}')`
46
- : `${args.options.webUrl}/_api/web/lists/getByTitle('${formatting_1.formatting.encodeQueryParameter(listTitleArgument)}')`);
47
- let formDigestValue = '';
48
- let environmentListId = '';
49
43
  try {
50
- if (typeof args.options.listId !== 'undefined') {
51
- environmentListId = args.options.listId;
44
+ let listId = '';
45
+ if (args.options.listId) {
46
+ listId = args.options.listId;
52
47
  }
53
48
  else {
54
- if (this.verbose) {
55
- logger.logToStderr(`Getting list id...`);
49
+ let requestUrl = `${args.options.webUrl}/_api/web`;
50
+ if (args.options.listTitle) {
51
+ requestUrl += `/lists/getByTitle('${formatting_1.formatting.encodeQueryParameter(args.options.listTitle)}')`;
56
52
  }
57
- const listRequestOptions = {
58
- url: `${listRestUrl}/id`,
53
+ else if (args.options.listUrl) {
54
+ const listServerRelativeUrl = urlUtil_1.urlUtil.getServerRelativePath(args.options.webUrl, args.options.listUrl);
55
+ requestUrl += `/GetList('${formatting_1.formatting.encodeQueryParameter(listServerRelativeUrl)}')`;
56
+ }
57
+ const requestOptions = {
58
+ url: `${requestUrl}?$select=Id`,
59
59
  headers: {
60
- 'accept': 'application/json;odata=nometadata'
60
+ accept: 'application/json;odata=nometadata'
61
61
  },
62
62
  responseType: 'json'
63
63
  };
64
- const idResp = yield request_1.default.get(listRequestOptions);
65
- environmentListId = idResp.value;
64
+ const list = yield request_1.default.get(requestOptions);
65
+ listId = list.Id;
66
66
  }
67
67
  if (this.debug) {
68
68
  logger.logToStderr(`getting request digest for request`);
69
69
  }
70
70
  const reqDigest = yield spo_1.spo.getRequestDigest(args.options.webUrl);
71
- formDigestValue = reqDigest.FormDigestValue;
71
+ const formDigestValue = reqDigest.FormDigestValue;
72
72
  const objectIdentity = yield spo_1.spo.getCurrentWebIdentity(args.options.webUrl, formDigestValue);
73
73
  if (this.verbose) {
74
- logger.logToStderr(`Undeclare list item as a record in list ${args.options.listId || args.options.listTitle} in site ${args.options.webUrl}...`);
74
+ logger.logToStderr(`Undeclare list item as a record in list ${args.options.listId || args.options.listTitle || args.options.listUrl} in site ${args.options.webUrl}...`);
75
75
  }
76
76
  const requestOptions = {
77
77
  url: `${args.options.webUrl}/_vti_bin/client.svc/ProcessQuery`,
@@ -79,7 +79,7 @@ class SpoListItemRecordUndeclareCommand extends SpoCommand_1.default {
79
79
  'Content-Type': 'text/xml',
80
80
  'X-RequestDigest': formDigestValue
81
81
  },
82
- data: `<Request AddExpandoFieldTypeSuffix="true" SchemaVersion="15.0.0.0" LibraryVersion="16.0.0.0" ApplicationName="${config_1.default.applicationName}" xmlns="http://schemas.microsoft.com/sharepoint/clientquery/2009"><Actions><StaticMethod TypeId="{ea8e1356-5910-4e69-bc05-d0c30ed657fc}" Name="UndeclareItemAsRecord" Id="53"><Parameters><Parameter ObjectPathId="49" /></Parameters></StaticMethod></Actions><ObjectPaths><Identity Id="49" Name="${objectIdentity.objectIdentity}:list:${environmentListId}:item:${args.options.listItemId},1" /></ObjectPaths></Request>`
82
+ data: `<Request AddExpandoFieldTypeSuffix="true" SchemaVersion="15.0.0.0" LibraryVersion="16.0.0.0" ApplicationName="${config_1.default.applicationName}" xmlns="http://schemas.microsoft.com/sharepoint/clientquery/2009"><Actions><StaticMethod TypeId="{ea8e1356-5910-4e69-bc05-d0c30ed657fc}" Name="UndeclareItemAsRecord" Id="53"><Parameters><Parameter ObjectPathId="49" /></Parameters></StaticMethod></Actions><ObjectPaths><Identity Id="49" Name="${objectIdentity.objectIdentity}:list:${listId}:item:${args.options.listItemId},1" /></ObjectPaths></Request>`
83
83
  };
84
84
  yield request_1.default.post(requestOptions);
85
85
  // REST post call doesn't return anything
@@ -94,7 +94,8 @@ _SpoListItemRecordUndeclareCommand_instances = new WeakSet(), _SpoListItemRecord
94
94
  this.telemetry.push((args) => {
95
95
  Object.assign(this.telemetryProperties, {
96
96
  listId: typeof args.options.listId !== 'undefined',
97
- listTitle: typeof args.options.listTitle !== 'undefined'
97
+ listTitle: typeof args.options.listTitle !== 'undefined',
98
+ listUrl: typeof args.options.listUrl !== 'undefined'
98
99
  });
99
100
  });
100
101
  }, _SpoListItemRecordUndeclareCommand_initOptions = function _SpoListItemRecordUndeclareCommand_initOptions() {
@@ -106,6 +107,8 @@ _SpoListItemRecordUndeclareCommand_instances = new WeakSet(), _SpoListItemRecord
106
107
  option: '-l, --listId [listId]'
107
108
  }, {
108
109
  option: '-t, --listTitle [listTitle]'
110
+ }, {
111
+ option: '--listUrl [listUrl]'
109
112
  });
110
113
  }, _SpoListItemRecordUndeclareCommand_initValidators = function _SpoListItemRecordUndeclareCommand_initValidators() {
111
114
  this.validators.push((args) => __awaiter(this, void 0, void 0, function* () {
@@ -124,7 +127,7 @@ _SpoListItemRecordUndeclareCommand_instances = new WeakSet(), _SpoListItemRecord
124
127
  return true;
125
128
  }));
126
129
  }, _SpoListItemRecordUndeclareCommand_initOptionSets = function _SpoListItemRecordUndeclareCommand_initOptionSets() {
127
- this.optionSets.push(['listId', 'listTitle']);
130
+ this.optionSets.push(['listId', 'listTitle', 'listUrl']);
128
131
  };
129
132
  module.exports = new SpoListItemRecordUndeclareCommand();
130
133
  //# sourceMappingURL=listitem-record-undeclare.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");
@@ -40,14 +41,18 @@ class SpoListItemRemoveCommand extends SpoCommand_1.default {
40
41
  return __awaiter(this, void 0, void 0, function* () {
41
42
  const removeListItem = () => __awaiter(this, void 0, void 0, function* () {
42
43
  if (this.verbose) {
43
- logger.logToStderr(`Removing list item in site at ${args.options.webUrl}...`);
44
+ logger.logToStderr(`Removing list from list ${args.options.listId || args.options.listTitle || args.options.listUrl} item in site at ${args.options.webUrl}...`);
44
45
  }
45
- let requestUrl = '';
46
+ let requestUrl = `${args.options.webUrl}/_api/web`;
46
47
  if (args.options.listId) {
47
- requestUrl = `${args.options.webUrl}/_api/web/lists(guid'${formatting_1.formatting.encodeQueryParameter(args.options.listId)}')`;
48
+ requestUrl += `/lists(guid'${formatting_1.formatting.encodeQueryParameter(args.options.listId)}')`;
48
49
  }
49
- else {
50
- requestUrl = `${args.options.webUrl}/_api/web/lists/GetByTitle('${formatting_1.formatting.encodeQueryParameter(args.options.listTitle)}')`;
50
+ else if (args.options.listTitle) {
51
+ requestUrl += `/lists/getByTitle('${formatting_1.formatting.encodeQueryParameter(args.options.listTitle)}')`;
52
+ }
53
+ else if (args.options.listUrl) {
54
+ const listServerRelativeUrl = urlUtil_1.urlUtil.getServerRelativePath(args.options.webUrl, args.options.listUrl);
55
+ requestUrl += `/GetList('${formatting_1.formatting.encodeQueryParameter(listServerRelativeUrl)}')`;
51
56
  }
52
57
  requestUrl += `/items(${args.options.id})`;
53
58
  if (args.options.recycle) {
@@ -79,7 +84,7 @@ class SpoListItemRemoveCommand extends SpoCommand_1.default {
79
84
  type: 'confirm',
80
85
  name: 'continue',
81
86
  default: false,
82
- message: `Are you sure you want to ${args.options.recycle ? "recycle" : "remove"} the list item ${args.options.id} from list ${args.options.listId || args.options.listTitle} located in site ${args.options.webUrl}?`
87
+ message: `Are you sure you want to ${args.options.recycle ? "recycle" : "remove"} the list item ${args.options.id} from list ${args.options.listId || args.options.listTitle || args.options.listUrl} located in site ${args.options.webUrl}?`
83
88
  });
84
89
  if (result.continue) {
85
90
  yield removeListItem();
@@ -91,10 +96,11 @@ class SpoListItemRemoveCommand extends SpoCommand_1.default {
91
96
  _SpoListItemRemoveCommand_instances = new WeakSet(), _SpoListItemRemoveCommand_initTelemetry = function _SpoListItemRemoveCommand_initTelemetry() {
92
97
  this.telemetry.push((args) => {
93
98
  Object.assign(this.telemetryProperties, {
94
- listId: (!(!args.options.listId)).toString(),
95
- listTitle: (!(!args.options.listTitle)).toString(),
96
- recycle: (!(!args.options.recycle)).toString(),
97
- confirm: (!(!args.options.confirm)).toString()
99
+ listId: typeof args.options.listId !== 'undefined',
100
+ listTitle: typeof args.options.listTitle !== 'undefined',
101
+ listUrl: typeof args.options.listUrl !== 'undefined',
102
+ recycle: !!args.options.recycle,
103
+ confirm: !!args.options.confirm
98
104
  });
99
105
  });
100
106
  }, _SpoListItemRemoveCommand_initOptions = function _SpoListItemRemoveCommand_initOptions() {
@@ -106,6 +112,8 @@ _SpoListItemRemoveCommand_instances = new WeakSet(), _SpoListItemRemoveCommand_i
106
112
  option: '-l, --listId [listId]'
107
113
  }, {
108
114
  option: '-t, --listTitle [listTitle]'
115
+ }, {
116
+ option: '--listUrl [listUrl]'
109
117
  }, {
110
118
  option: '--recycle'
111
119
  }, {
@@ -128,7 +136,7 @@ _SpoListItemRemoveCommand_instances = new WeakSet(), _SpoListItemRemoveCommand_i
128
136
  return true;
129
137
  }));
130
138
  }, _SpoListItemRemoveCommand_initOptionSets = function _SpoListItemRemoveCommand_initOptionSets() {
131
- this.optionSets.push(['listId', 'listTitle']);
139
+ this.optionSets.push(['listId', 'listTitle', 'listUrl']);
132
140
  };
133
141
  module.exports = new SpoListItemRemoveCommand();
134
142
  //# sourceMappingURL=listitem-remove.js.map
@@ -0,0 +1,239 @@
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 _SpoListItemRoleAssignmentAddCommand_instances, _SpoListItemRoleAssignmentAddCommand_initTelemetry, _SpoListItemRoleAssignmentAddCommand_initOptions, _SpoListItemRoleAssignmentAddCommand_initValidators;
17
+ Object.defineProperty(exports, "__esModule", { value: true });
18
+ const request_1 = require("../../../../request");
19
+ const SpoCommand_1 = require("../../../base/SpoCommand");
20
+ const commands_1 = require("../../commands");
21
+ const SpoUserGetCommand = require("../user/user-get");
22
+ const SpoGroupGetCommand = require("../group/group-get");
23
+ const SpoRoleDefinitionListCommand = require("../roledefinition/roledefinition-list");
24
+ const validation_1 = require("../../../../utils/validation");
25
+ const formatting_1 = require("../../../../utils/formatting");
26
+ const urlUtil_1 = require("../../../../utils/urlUtil");
27
+ const Cli_1 = require("../../../../cli/Cli");
28
+ class SpoListItemRoleAssignmentAddCommand extends SpoCommand_1.default {
29
+ constructor() {
30
+ super();
31
+ _SpoListItemRoleAssignmentAddCommand_instances.add(this);
32
+ __classPrivateFieldGet(this, _SpoListItemRoleAssignmentAddCommand_instances, "m", _SpoListItemRoleAssignmentAddCommand_initTelemetry).call(this);
33
+ __classPrivateFieldGet(this, _SpoListItemRoleAssignmentAddCommand_instances, "m", _SpoListItemRoleAssignmentAddCommand_initOptions).call(this);
34
+ __classPrivateFieldGet(this, _SpoListItemRoleAssignmentAddCommand_instances, "m", _SpoListItemRoleAssignmentAddCommand_initValidators).call(this);
35
+ }
36
+ get name() {
37
+ return commands_1.default.LISTITEM_ROLEASSIGNMENT_ADD;
38
+ }
39
+ get description() {
40
+ return 'Adds a role assignment to a listitem.';
41
+ }
42
+ commandAction(logger, args) {
43
+ return __awaiter(this, void 0, void 0, function* () {
44
+ if (this.verbose) {
45
+ logger.logToStderr(`Adding role assignment to listitem in site at ${args.options.webUrl}...`);
46
+ }
47
+ try {
48
+ let requestUrl = `${args.options.webUrl}/_api/web/`;
49
+ if (args.options.listId) {
50
+ requestUrl += `lists(guid'${formatting_1.formatting.encodeQueryParameter(args.options.listId)}')/`;
51
+ }
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)}')/`;
58
+ }
59
+ requestUrl += `items(${args.options.listItemId})/`;
60
+ const roleDefinitionId = yield this.getRoleDefinitionId(args.options);
61
+ let principalId = 0;
62
+ if (args.options.upn) {
63
+ principalId = yield this.getUserPrincipalId(args.options);
64
+ yield this.addRoleAssignment(requestUrl, roleDefinitionId, principalId);
65
+ }
66
+ else if (args.options.groupName) {
67
+ principalId = yield this.getGroupPrincipalId(args.options);
68
+ yield this.addRoleAssignment(requestUrl, roleDefinitionId, principalId);
69
+ }
70
+ else {
71
+ principalId = args.options.principalId;
72
+ yield this.addRoleAssignment(requestUrl, roleDefinitionId, principalId);
73
+ }
74
+ }
75
+ catch (err) {
76
+ this.handleRejectedODataJsonPromise(err);
77
+ }
78
+ });
79
+ }
80
+ addRoleAssignment(requestUrl, roleDefinitionId, principalId) {
81
+ return __awaiter(this, void 0, void 0, function* () {
82
+ try {
83
+ const requestOptions = {
84
+ url: `${requestUrl}roleassignments/addroleassignment(principalid='${principalId}',roledefid='${roleDefinitionId}')`,
85
+ method: 'POST',
86
+ headers: {
87
+ 'accept': 'application/json;odata=nometadata',
88
+ 'content-type': 'application/json'
89
+ },
90
+ responseType: 'json'
91
+ };
92
+ yield request_1.default.post(requestOptions);
93
+ }
94
+ catch (err) {
95
+ return Promise.reject(err);
96
+ }
97
+ });
98
+ }
99
+ getRoleDefinitionId(options) {
100
+ return __awaiter(this, void 0, void 0, function* () {
101
+ if (!options.roleDefinitionName) {
102
+ return options.roleDefinitionId;
103
+ }
104
+ try {
105
+ const roleDefinitionListCommandOptions = {
106
+ webUrl: options.webUrl,
107
+ output: 'json',
108
+ debug: this.debug,
109
+ verbose: this.verbose
110
+ };
111
+ const output = yield Cli_1.Cli.executeCommandWithOutput(SpoRoleDefinitionListCommand, { options: Object.assign(Object.assign({}, roleDefinitionListCommandOptions), { _: [] }) });
112
+ const getRoleDefinitionListOutput = JSON.parse(output.stdout);
113
+ const roleDefinitionId = getRoleDefinitionListOutput.find((role) => role.Name === options.roleDefinitionName).Id;
114
+ return roleDefinitionId;
115
+ }
116
+ catch (err) {
117
+ return Promise.reject(err);
118
+ }
119
+ });
120
+ }
121
+ getGroupPrincipalId(options) {
122
+ return __awaiter(this, void 0, void 0, function* () {
123
+ try {
124
+ const groupGetCommandOptions = {
125
+ webUrl: options.webUrl,
126
+ name: options.groupName,
127
+ output: 'json',
128
+ debug: this.debug,
129
+ verbose: this.verbose
130
+ };
131
+ const output = yield Cli_1.Cli.executeCommandWithOutput(SpoGroupGetCommand, { options: Object.assign(Object.assign({}, groupGetCommandOptions), { _: [] }) });
132
+ const getGroupOutput = JSON.parse(output.stdout);
133
+ return getGroupOutput.Id;
134
+ }
135
+ catch (err) {
136
+ return Promise.reject(err);
137
+ }
138
+ });
139
+ }
140
+ getUserPrincipalId(options) {
141
+ return __awaiter(this, void 0, void 0, function* () {
142
+ try {
143
+ const userGetCommandOptions = {
144
+ webUrl: options.webUrl,
145
+ email: options.upn,
146
+ id: undefined,
147
+ output: 'json',
148
+ debug: this.debug,
149
+ verbose: this.verbose
150
+ };
151
+ const output = yield Cli_1.Cli.executeCommandWithOutput(SpoUserGetCommand, { options: Object.assign(Object.assign({}, userGetCommandOptions), { _: [] }) });
152
+ const getUserOutput = JSON.parse(output.stdout);
153
+ return getUserOutput.Id;
154
+ }
155
+ catch (err) {
156
+ return Promise.reject(err);
157
+ }
158
+ });
159
+ }
160
+ }
161
+ _SpoListItemRoleAssignmentAddCommand_instances = new WeakSet(), _SpoListItemRoleAssignmentAddCommand_initTelemetry = function _SpoListItemRoleAssignmentAddCommand_initTelemetry() {
162
+ this.telemetry.push((args) => {
163
+ Object.assign(this.telemetryProperties, {
164
+ listId: typeof args.options.listId !== 'undefined',
165
+ listTitle: typeof args.options.listTitle !== 'undefined',
166
+ listUrl: typeof args.options.listUrl !== 'undefined',
167
+ principalId: typeof args.options.principalId !== 'undefined',
168
+ upn: typeof args.options.upn !== 'undefined',
169
+ groupName: typeof args.options.groupName !== 'undefined',
170
+ roleDefinitionId: typeof args.options.roleDefinitionId !== 'undefined',
171
+ roleDefinitionName: typeof args.options.roleDefinitionName !== 'undefined'
172
+ });
173
+ });
174
+ }, _SpoListItemRoleAssignmentAddCommand_initOptions = function _SpoListItemRoleAssignmentAddCommand_initOptions() {
175
+ this.options.unshift({
176
+ option: '-u, --webUrl <webUrl>'
177
+ }, {
178
+ option: '--listItemId <listItemId>'
179
+ }, {
180
+ option: '--listId [listId]'
181
+ }, {
182
+ option: '--listTitle [listTitle]'
183
+ }, {
184
+ option: '--listUrl [listUrl]'
185
+ }, {
186
+ option: '--principalId [principalId]'
187
+ }, {
188
+ option: '--upn [upn]'
189
+ }, {
190
+ option: '--groupName [groupName]'
191
+ }, {
192
+ option: '--roleDefinitionId [roleDefinitionId]'
193
+ }, {
194
+ option: '--roleDefinitionName [roleDefinitionName]'
195
+ });
196
+ }, _SpoListItemRoleAssignmentAddCommand_initValidators = function _SpoListItemRoleAssignmentAddCommand_initValidators() {
197
+ this.validators.push((args) => __awaiter(this, void 0, void 0, function* () {
198
+ const isValidSharePointUrl = validation_1.validation.isValidSharePointUrl(args.options.webUrl);
199
+ if (isValidSharePointUrl !== true) {
200
+ return isValidSharePointUrl;
201
+ }
202
+ if (args.options.listId && !validation_1.validation.isValidGuid(args.options.listId)) {
203
+ return `${args.options.listId} is not a valid GUID`;
204
+ }
205
+ if (args.options.listItemId && isNaN(args.options.listItemId)) {
206
+ return `Specified listItemId ${args.options.listItemId} is not a number`;
207
+ }
208
+ if (args.options.principalId && isNaN(args.options.principalId)) {
209
+ return `Specified principalId ${args.options.principalId} is not a number`;
210
+ }
211
+ if (args.options.roleDefinitionId && isNaN(args.options.roleDefinitionId)) {
212
+ return `Specified roleDefinitionId ${args.options.roleDefinitionId} is not a number`;
213
+ }
214
+ const listOptions = [args.options.listId, args.options.listTitle, args.options.listUrl];
215
+ if (listOptions.some(item => item !== undefined) && listOptions.filter(item => item !== undefined).length > 1) {
216
+ return `Specify either list id or title or list url`;
217
+ }
218
+ if (listOptions.filter(item => item !== undefined).length === 0) {
219
+ return `Specify at least list id or title or list url`;
220
+ }
221
+ const principalOptions = [args.options.principalId, args.options.upn, args.options.groupName];
222
+ if (!principalOptions.some(item => item !== undefined)) {
223
+ return `Specify either principalId, upn or groupName`;
224
+ }
225
+ if (principalOptions.filter(item => item !== undefined).length > 1) {
226
+ return `Specify either principalId, upn or groupName but not multiple`;
227
+ }
228
+ const roleDefinitionOptions = [args.options.roleDefinitionId, args.options.roleDefinitionName];
229
+ if (!roleDefinitionOptions.some(item => item !== undefined)) {
230
+ return `Specify either roleDefinitionId or roleDefinitionName`;
231
+ }
232
+ if (roleDefinitionOptions.filter(item => item !== undefined).length > 1) {
233
+ return `Specify either roleDefinitionId or roleDefinitionName but not multiple`;
234
+ }
235
+ return true;
236
+ }));
237
+ };
238
+ module.exports = new SpoListItemRoleAssignmentAddCommand();
239
+ //# sourceMappingURL=listitem-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 _SpoListItemRoleAssignmentRemoveCommand_instances, _SpoListItemRoleAssignmentRemoveCommand_initTelemetry, _SpoListItemRoleAssignmentRemoveCommand_initOptions, _SpoListItemRoleAssignmentRemoveCommand_initValidators;
16
+ var _SpoListItemRoleAssignmentRemoveCommand_instances, _SpoListItemRoleAssignmentRemoveCommand_initTelemetry, _SpoListItemRoleAssignmentRemoveCommand_initOptions, _SpoListItemRoleAssignmentRemoveCommand_initValidators, _SpoListItemRoleAssignmentRemoveCommand_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 SpoListItemRoleAssignmentRemoveCommand extends SpoCommand_1.default {
31
31
  __classPrivateFieldGet(this, _SpoListItemRoleAssignmentRemoveCommand_instances, "m", _SpoListItemRoleAssignmentRemoveCommand_initTelemetry).call(this);
32
32
  __classPrivateFieldGet(this, _SpoListItemRoleAssignmentRemoveCommand_instances, "m", _SpoListItemRoleAssignmentRemoveCommand_initOptions).call(this);
33
33
  __classPrivateFieldGet(this, _SpoListItemRoleAssignmentRemoveCommand_instances, "m", _SpoListItemRoleAssignmentRemoveCommand_initValidators).call(this);
34
+ __classPrivateFieldGet(this, _SpoListItemRoleAssignmentRemoveCommand_instances, "m", _SpoListItemRoleAssignmentRemoveCommand_initOptionSets).call(this);
34
35
  }
35
36
  get name() {
36
37
  return commands_1.default.LISTITEM_ROLEASSIGNMENT_REMOVE;
@@ -185,22 +186,10 @@ _SpoListItemRoleAssignmentRemoveCommand_instances = new WeakSet(), _SpoListItemR
185
186
  if (args.options.principalId && isNaN(args.options.principalId)) {
186
187
  return `Specified principalId ${args.options.principalId} is not a number`;
187
188
  }
188
- const listOptions = [args.options.listId, args.options.listTitle, args.options.listUrl];
189
- if (listOptions.some(item => item !== undefined) && listOptions.filter(item => item !== undefined).length > 1) {
190
- return `Specify either list id or title or list url`;
191
- }
192
- if (listOptions.filter(item => item !== undefined).length === 0) {
193
- return `Specify at least list id or title or list url`;
194
- }
195
- const principalOptions = [args.options.principalId, args.options.upn, args.options.groupName];
196
- if (principalOptions.some(item => item !== undefined) && principalOptions.filter(item => item !== undefined).length > 1) {
197
- return `Specify either principalId id or upn or groupName`;
198
- }
199
- if (principalOptions.filter(item => item !== undefined).length === 0) {
200
- return `Specify at least principalId id or upn or groupName`;
201
- }
202
189
  return true;
203
190
  }));
191
+ }, _SpoListItemRoleAssignmentRemoveCommand_initOptionSets = function _SpoListItemRoleAssignmentRemoveCommand_initOptionSets() {
192
+ this.optionSets.push(['listId', 'listTitle', 'listUrl'], ['principalId', 'upn', 'groupName']);
204
193
  };
205
194
  module.exports = new SpoListItemRoleAssignmentRemoveCommand();
206
195
  //# sourceMappingURL=listitem-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,12 +45,16 @@ class SpoListItemRoleInheritanceBreakCommand extends SpoCommand_1.default {
44
45
  }
45
46
  const breakListItemRoleInheritance = () => __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) {
@@ -92,6 +97,7 @@ _SpoListItemRoleInheritanceBreakCommand_instances = new WeakSet(), _SpoListItemR
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
  });
@@ -105,6 +111,8 @@ _SpoListItemRoleInheritanceBreakCommand_instances = new WeakSet(), _SpoListItemR
105
111
  option: '-l, --listId [listId]'
106
112
  }, {
107
113
  option: '-t, --listTitle [listTitle]'
114
+ }, {
115
+ option: '--listUrl [listUrl]'
108
116
  }, {
109
117
  option: '-c, --clearExistingPermissions'
110
118
  }, {
@@ -125,7 +133,7 @@ _SpoListItemRoleInheritanceBreakCommand_instances = new WeakSet(), _SpoListItemR
125
133
  return true;
126
134
  }));
127
135
  }, _SpoListItemRoleInheritanceBreakCommand_initOptionSets = function _SpoListItemRoleInheritanceBreakCommand_initOptionSets() {
128
- this.optionSets.push(['listId', 'listTitle']);
136
+ this.optionSets.push(['listId', 'listTitle', 'listUrl']);
129
137
  };
130
138
  module.exports = new SpoListItemRoleInheritanceBreakCommand();
131
139
  //# sourceMappingURL=listitem-roleinheritance-break.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,12 +45,16 @@ class SpoListItemRoleInheritanceResetCommand extends SpoCommand_1.default {
44
45
  }
45
46
  const resetListItemRoleInheritance = () => __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
  const requestOptions = {
55
60
  url: `${requestUrl}/items(${args.options.listItemId})/resetroleinheritance`,
@@ -88,6 +93,7 @@ _SpoListItemRoleInheritanceResetCommand_instances = new WeakSet(), _SpoListItemR
88
93
  Object.assign(this.telemetryProperties, {
89
94
  listId: typeof args.options.listId !== 'undefined',
90
95
  listTitle: typeof args.options.listTitle !== 'undefined',
96
+ listUrl: typeof args.options.listUrl !== 'undefined',
91
97
  confirm: (!(!args.options.confirm)).toString()
92
98
  });
93
99
  });
@@ -100,6 +106,8 @@ _SpoListItemRoleInheritanceResetCommand_instances = new WeakSet(), _SpoListItemR
100
106
  option: '--listId [listId]'
101
107
  }, {
102
108
  option: '--listTitle [listTitle]'
109
+ }, {
110
+ option: '--listUrl [listUrl]'
103
111
  }, {
104
112
  option: '--confirm'
105
113
  });
@@ -118,7 +126,7 @@ _SpoListItemRoleInheritanceResetCommand_instances = new WeakSet(), _SpoListItemR
118
126
  return true;
119
127
  }));
120
128
  }, _SpoListItemRoleInheritanceResetCommand_initOptionSets = function _SpoListItemRoleInheritanceResetCommand_initOptionSets() {
121
- this.optionSets.push(['listId', 'listTitle']);
129
+ this.optionSets.push(['listId', 'listTitle', 'listUrl']);
122
130
  };
123
131
  module.exports = new SpoListItemRoleInheritanceResetCommand();
124
132
  //# sourceMappingURL=listitem-roleinheritance-reset.js.map