@pnp/cli-microsoft365 6.0.0-beta.a008afc → 6.0.0-beta.a2ec37b

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 (161) 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 +36 -13
  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/commands/status.js +6 -1
  8. package/dist/m365/outlook/commands/mail/mail-send.js +55 -31
  9. package/dist/m365/outlook/commands/message/message-get.js +97 -0
  10. package/dist/m365/outlook/commands.js +1 -0
  11. package/dist/m365/planner/commands/bucket/bucket-get.js +1 -1
  12. package/dist/m365/planner/commands/plan/plan-get.js +5 -20
  13. package/dist/m365/pp/commands/card/card-get.js +110 -0
  14. package/dist/m365/pp/commands/card/card-remove.js +130 -0
  15. package/dist/m365/pp/commands/gateway/gateway-get.js +70 -0
  16. package/dist/m365/pp/commands/solution/solution-get.js +117 -0
  17. package/dist/m365/pp/commands.js +4 -0
  18. package/dist/m365/spfx/commands/project/project-doctor.js +4 -1
  19. package/dist/m365/spfx/commands/project/project-externalize.js +4 -1
  20. package/dist/m365/spfx/commands/project/project-upgrade/rules/FN010001_YORC_version.js +2 -1
  21. package/dist/m365/spfx/commands/project/project-upgrade/rules/FN010002_YORC_isCreatingSolution.js +2 -1
  22. package/dist/m365/spfx/commands/project/project-upgrade/rules/FN010003_YORC_packageManager.js +2 -1
  23. package/dist/m365/spfx/commands/project/project-upgrade/rules/FN010004_YORC_componentType.js +2 -1
  24. package/dist/m365/spfx/commands/project/project-upgrade/rules/FN010005_YORC_environment.js +2 -1
  25. package/dist/m365/spfx/commands/project/project-upgrade/rules/FN010006_YORC_framework.js +3 -2
  26. package/dist/m365/spfx/commands/project/project-upgrade/rules/FN010007_YORC_isDomainIsolated.js +2 -1
  27. package/dist/m365/spfx/commands/project/project-upgrade/rules/FN010008_YORC_nodeVersion.js +2 -1
  28. package/dist/m365/spfx/commands/project/project-upgrade/rules/FN010009_YORC_sdkVersions_microsoft_graph_client.js +56 -0
  29. package/dist/m365/spfx/commands/project/project-upgrade/rules/FN010010_YORC_sdkVersions_teams_js.js +56 -0
  30. package/dist/m365/spfx/commands/project/project-upgrade/{upgrade-1.16.0-beta.1.js → upgrade-1.16.0-beta.2.js} +44 -28
  31. package/dist/m365/spfx/commands/project/project-upgrade.js +1 -1
  32. package/dist/m365/spfx/commands/spfx-doctor.js +3 -3
  33. package/dist/m365/spo/commands/contenttype/contenttype-add.js +82 -43
  34. package/dist/m365/spo/commands/contenttype/contenttype-field-remove.js +53 -21
  35. package/dist/m365/spo/commands/contenttype/contenttype-get.js +35 -14
  36. package/dist/m365/spo/commands/field/field-add.js +26 -1
  37. package/dist/m365/spo/commands/field/field-set.js +23 -13
  38. package/dist/m365/spo/commands/folder/folder-list.js +35 -12
  39. package/dist/m365/spo/commands/folder/folder-roleinheritance-break.js +11 -1
  40. package/dist/m365/spo/commands/folder/folder-roleinheritance-reset.js +12 -1
  41. package/dist/m365/spo/commands/list/list-roleassignment-add.js +1 -1
  42. package/dist/m365/spo/commands/list/list-roleinheritance-break.js +14 -6
  43. package/dist/m365/spo/commands/list/list-roleinheritance-reset.js +14 -6
  44. package/dist/m365/spo/commands/list/list-webhook-add.js +19 -11
  45. package/dist/m365/spo/commands/list/list-webhook-get.js +17 -10
  46. package/dist/m365/spo/commands/list/list-webhook-list.js +17 -42
  47. package/dist/m365/spo/commands/list/list-webhook-remove.js +19 -11
  48. package/dist/m365/spo/commands/list/list-webhook-set.js +27 -20
  49. package/dist/m365/spo/commands/listitem/listitem-add.js +24 -14
  50. package/dist/m365/spo/commands/listitem/listitem-attachment-list.js +18 -8
  51. package/dist/m365/spo/commands/listitem/listitem-get.js +18 -8
  52. package/dist/m365/spo/commands/listitem/listitem-isrecord.js +20 -10
  53. package/dist/m365/spo/commands/listitem/listitem-list.js +21 -11
  54. package/dist/m365/spo/commands/listitem/listitem-record-declare.js +19 -12
  55. package/dist/m365/spo/commands/listitem/listitem-record-undeclare.js +24 -21
  56. package/dist/m365/spo/commands/listitem/listitem-remove.js +19 -11
  57. package/dist/m365/spo/commands/listitem/listitem-roleassignment-add.js +239 -0
  58. package/dist/m365/spo/commands/listitem/listitem-roleinheritance-break.js +13 -5
  59. package/dist/m365/spo/commands/listitem/listitem-roleinheritance-reset.js +13 -5
  60. package/dist/m365/spo/commands/listitem/listitem-set.js +52 -44
  61. package/dist/m365/spo/commands/roledefinition/roledefinition-list.js +15 -2
  62. package/dist/m365/spo/commands/site/site-add.js +4 -11
  63. package/dist/m365/spo/commands/{hubsite/hubsite-connect.js → site/site-hubsite-connect.js} +10 -10
  64. package/dist/m365/spo/commands/{hubsite/hubsite-disconnect.js → site/site-hubsite-disconnect.js} +13 -13
  65. package/dist/m365/spo/commands/{hubsite/hubsite-theme-sync.js → site/site-hubsite-theme-sync.js} +11 -11
  66. package/dist/m365/spo/commands/web/web-roleinheritance-break.js +100 -0
  67. package/dist/m365/spo/commands.js +5 -3
  68. package/dist/m365/teams/commands/team/team-set.js +0 -7
  69. package/dist/m365/todo/commands/list/list-get.js +89 -0
  70. package/dist/m365/todo/commands/task/task-add.js +55 -3
  71. package/dist/m365/todo/commands/task/task-get.js +108 -0
  72. package/dist/m365/todo/commands/task/task-set.js +53 -1
  73. package/dist/m365/todo/commands.js +2 -0
  74. package/docs/docs/_clisettings.md +18 -0
  75. package/docs/docs/cmd/aad/app/app-list.md +149 -0
  76. package/docs/docs/cmd/aad/user/user-guest-add.md +107 -0
  77. package/docs/docs/cmd/adaptivecard/adaptivecard-send.md +3 -0
  78. package/docs/docs/cmd/graph/schemaextension/schemaextension-add.md +4 -11
  79. package/docs/docs/cmd/graph/schemaextension/schemaextension-set.md +4 -10
  80. package/docs/docs/cmd/outlook/mail/mail-send.md +13 -0
  81. package/docs/docs/cmd/outlook/message/message-get.md +48 -0
  82. package/docs/docs/cmd/planner/bucket/bucket-add.md +29 -0
  83. package/docs/docs/cmd/planner/bucket/bucket-get.md +29 -0
  84. package/docs/docs/cmd/planner/bucket/bucket-list.md +30 -0
  85. package/docs/docs/cmd/planner/bucket/bucket-remove.md +4 -0
  86. package/docs/docs/cmd/planner/bucket/bucket-set.md +4 -0
  87. package/docs/docs/cmd/planner/plan/plan-add.md +123 -0
  88. package/docs/docs/cmd/planner/plan/plan-get.md +75 -6
  89. package/docs/docs/cmd/planner/plan/plan-list.md +45 -0
  90. package/docs/docs/cmd/planner/plan/plan-remove.md +4 -0
  91. package/docs/docs/cmd/planner/task/task-get.md +0 -3
  92. package/docs/docs/cmd/pp/card/card-get.md +51 -0
  93. package/docs/docs/cmd/pp/card/card-remove.md +82 -0
  94. package/docs/docs/cmd/pp/gateway/gateway-get.md +24 -0
  95. package/docs/docs/cmd/pp/solution/solution-get.md +51 -0
  96. package/docs/docs/cmd/spfx/project/project-rename.md +1 -14
  97. package/docs/docs/cmd/spfx/project/project-upgrade.md +1 -1
  98. package/docs/docs/cmd/spo/contenttype/contenttype-add.md +20 -2
  99. package/docs/docs/cmd/spo/contenttype/contenttype-field-remove.md +22 -4
  100. package/docs/docs/cmd/spo/contenttype/contenttype-get.md +21 -3
  101. package/docs/docs/cmd/spo/customaction/customaction-add.md +3 -0
  102. package/docs/docs/cmd/spo/customaction/customaction-set.md +3 -2
  103. package/docs/docs/cmd/spo/eventreceiver/eventreceiver-get.md +2 -2
  104. package/docs/docs/cmd/spo/eventreceiver/eventreceiver-remove.md +2 -2
  105. package/docs/docs/cmd/spo/field/field-add.md +20 -2
  106. package/docs/docs/cmd/spo/field/field-set.md +15 -3
  107. package/docs/docs/cmd/spo/folder/folder-list.md +45 -0
  108. package/docs/docs/cmd/spo/folder/folder-roleinheritance-break.md +6 -0
  109. package/docs/docs/cmd/spo/folder/folder-roleinheritance-reset.md +6 -0
  110. package/docs/docs/cmd/spo/hubsite/hubsite-register.md +2 -2
  111. package/docs/docs/cmd/spo/hubsite/hubsite-unregister.md +2 -2
  112. package/docs/docs/cmd/spo/list/list-roleinheritance-break.md +11 -8
  113. package/docs/docs/cmd/spo/list/list-roleinheritance-reset.md +16 -7
  114. package/docs/docs/cmd/spo/list/list-view-set.md +14 -3
  115. package/docs/docs/cmd/spo/list/list-webhook-add.md +15 -16
  116. package/docs/docs/cmd/spo/list/list-webhook-get.md +16 -7
  117. package/docs/docs/cmd/spo/list/list-webhook-list.md +13 -10
  118. package/docs/docs/cmd/spo/list/list-webhook-remove.md +12 -10
  119. package/docs/docs/cmd/spo/list/list-webhook-set.md +21 -12
  120. package/docs/docs/cmd/spo/listitem/listitem-add.md +11 -2
  121. package/docs/docs/cmd/spo/listitem/listitem-attachment-list.md +11 -2
  122. package/docs/docs/cmd/spo/listitem/listitem-get.md +11 -2
  123. package/docs/docs/cmd/spo/listitem/listitem-isrecord.md +12 -2
  124. package/docs/docs/cmd/spo/listitem/listitem-list.md +10 -1
  125. package/docs/docs/cmd/spo/listitem/listitem-record-declare.md +7 -4
  126. package/docs/docs/cmd/spo/listitem/listitem-record-undeclare.md +11 -2
  127. package/docs/docs/cmd/spo/listitem/listitem-remove.md +11 -2
  128. package/docs/docs/cmd/spo/listitem/listitem-roleassignment-add.md +81 -0
  129. package/docs/docs/cmd/spo/listitem/listitem-roleinheritance-break.md +7 -4
  130. package/docs/docs/cmd/spo/listitem/listitem-roleinheritance-reset.md +8 -5
  131. package/docs/docs/cmd/spo/listitem/listitem-set.md +7 -4
  132. package/docs/docs/cmd/spo/page/page-clientsidewebpart-add.md +5 -10
  133. package/docs/docs/cmd/spo/page/page-control-set.md +2 -1
  134. package/docs/docs/cmd/spo/site/site-add.md +0 -3
  135. package/docs/docs/cmd/spo/{hubsite/hubsite-connect.md → site/site-hubsite-connect.md} +4 -4
  136. package/docs/docs/cmd/spo/{hubsite/hubsite-disconnect.md → site/site-hubsite-disconnect.md} +7 -7
  137. package/docs/docs/cmd/spo/{hubsite/hubsite-theme-sync.md → site/site-hubsite-theme-sync.md} +5 -5
  138. package/docs/docs/cmd/spo/term/term-add.md +5 -0
  139. package/docs/docs/cmd/spo/term/term-set-add.md +6 -1
  140. package/docs/docs/cmd/spo/web/web-roleinheritance-break.md +44 -0
  141. package/docs/docs/cmd/teams/team/team-clone.md +0 -3
  142. package/docs/docs/cmd/teams/team/team-set.md +0 -3
  143. package/docs/docs/cmd/tenant/id/id-get.md +20 -0
  144. package/docs/docs/cmd/tenant/report/report-activeusercounts.md +35 -0
  145. package/docs/docs/cmd/tenant/report/report-activeuserdetail.md +49 -0
  146. package/docs/docs/cmd/tenant/report/report-office365activationcounts.md +32 -0
  147. package/docs/docs/cmd/tenant/report/report-office365activationsusercounts.md +30 -0
  148. package/docs/docs/cmd/tenant/report/report-office365activationsuserdetail.md +36 -0
  149. package/docs/docs/cmd/tenant/report/report-servicesusercounts.md +41 -0
  150. package/docs/docs/cmd/tenant/security/security-alerts-list.md +105 -0
  151. package/docs/docs/cmd/tenant/serviceannouncement/serviceannouncement-health-get.md +87 -0
  152. package/docs/docs/cmd/tenant/serviceannouncement/serviceannouncement-health-list.md +91 -0
  153. package/docs/docs/cmd/tenant/serviceannouncement/serviceannouncement-healthissue-get.md +62 -0
  154. package/docs/docs/cmd/tenant/serviceannouncement/serviceannouncement-healthissue-list.md +51 -0
  155. package/docs/docs/cmd/tenant/serviceannouncement/serviceannouncement-message-get.md +64 -0
  156. package/docs/docs/cmd/tenant/serviceannouncement/serviceannouncement-message-list.md +52 -0
  157. package/docs/docs/cmd/todo/list/list-get.md +61 -0
  158. package/docs/docs/cmd/todo/task/task-add.md +32 -5
  159. package/docs/docs/cmd/todo/task/task-get.md +75 -0
  160. package/docs/docs/cmd/todo/task/task-set.md +29 -2
  161. package/package.json +13 -4
@@ -18,6 +18,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
18
18
  const request_1 = require("../../../../request");
19
19
  const formatting_1 = require("../../../../utils/formatting");
20
20
  const spo_1 = require("../../../../utils/spo");
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");
@@ -38,9 +39,20 @@ class SpoFieldAddCommand extends SpoCommand_1.default {
38
39
  commandAction(logger, args) {
39
40
  return __awaiter(this, void 0, void 0, function* () {
40
41
  try {
42
+ let requestUrl = `${args.options.webUrl}/_api/web`;
43
+ if (args.options.listId) {
44
+ requestUrl += `/lists(guid'${formatting_1.formatting.encodeQueryParameter(args.options.listId)}')`;
45
+ }
46
+ else if (args.options.listTitle) {
47
+ requestUrl += `/lists/getByTitle('${formatting_1.formatting.encodeQueryParameter(args.options.listTitle)}')`;
48
+ }
49
+ else if (args.options.listUrl) {
50
+ const listServerRelativeUrl = urlUtil_1.urlUtil.getServerRelativePath(args.options.webUrl, args.options.listUrl);
51
+ requestUrl += `/GetList('${formatting_1.formatting.encodeQueryParameter(listServerRelativeUrl)}')`;
52
+ }
41
53
  const reqDigest = yield spo_1.spo.getRequestDigest(args.options.webUrl);
42
54
  const requestOptions = {
43
- url: `${args.options.webUrl}/_api/web/${(args.options.listTitle ? `lists/getByTitle('${formatting_1.formatting.encodeQueryParameter(args.options.listTitle)}')/` : '')}fields/CreateFieldAsXml`,
55
+ url: `${requestUrl}/fields/CreateFieldAsXml`,
44
56
  headers: {
45
57
  'X-RequestDigest': reqDigest.FormDigestValue,
46
58
  accept: 'application/json;odata=nometadata'
@@ -99,6 +111,8 @@ _SpoFieldAddCommand_instances = new WeakSet(), _SpoFieldAddCommand_initTelemetry
99
111
  this.telemetry.push((args) => {
100
112
  Object.assign(this.telemetryProperties, {
101
113
  listTitle: typeof args.options.listTitle !== 'undefined',
114
+ listId: typeof args.options.listId !== 'undefined',
115
+ listUrl: typeof args.options.listUrl !== 'undefined',
102
116
  options: typeof args.options.options !== 'undefined'
103
117
  });
104
118
  });
@@ -107,6 +121,10 @@ _SpoFieldAddCommand_instances = new WeakSet(), _SpoFieldAddCommand_initTelemetry
107
121
  option: '-u, --webUrl <webUrl>'
108
122
  }, {
109
123
  option: '-l, --listTitle [listTitle]'
124
+ }, {
125
+ option: '--listId [listId]'
126
+ }, {
127
+ option: '--listUrl [listUrl]'
110
128
  }, {
111
129
  option: '-x, --xml <xml>'
112
130
  }, {
@@ -118,6 +136,13 @@ _SpoFieldAddCommand_instances = new WeakSet(), _SpoFieldAddCommand_initTelemetry
118
136
  if (isValidSharePointUrl !== true) {
119
137
  return isValidSharePointUrl;
120
138
  }
139
+ const listOptions = [args.options.listId, args.options.listTitle, args.options.listUrl];
140
+ if (listOptions.some(item => item !== undefined) && listOptions.filter(item => item !== undefined).length > 1) {
141
+ return `Specify either list id or title or list url, but not multiple`;
142
+ }
143
+ if (args.options.listId && !validation_1.validation.isValidGuid(args.options.listId)) {
144
+ return `${args.options.listId} in option listId is not a valid GUID`;
145
+ }
121
146
  if (args.options.options) {
122
147
  let optionsError = true;
123
148
  const options = ['DefaultValue', 'AddToDefaultContentType', 'AddToNoContentType', 'AddToAllContentTypes', 'AddFieldInternalNameHint', 'AddFieldToDefaultView', 'AddFieldCheckDisplayName'];
@@ -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");
@@ -45,23 +46,27 @@ class SpoFieldSetCommand extends SpoCommand_1.default {
45
46
  try {
46
47
  const reqDigest = yield spo_1.spo.getRequestDigest(args.options.webUrl);
47
48
  const requestDigest = reqDigest.FormDigestValue;
48
- let list = undefined;
49
- if (args.options.listId || args.options.listTitle) {
50
- const listQuery = args.options.listId ?
51
- `<Method Id="663" ParentId="7" Name="GetById"><Parameters><Parameter Type="Guid">${formatting_1.formatting.escapeXml(args.options.listId)}</Parameter></Parameters></Method>` :
52
- `<Method Id="663" ParentId="7" Name="GetByTitle"><Parameters><Parameter Type="String">${formatting_1.formatting.escapeXml(args.options.listTitle)}</Parameter></Parameters></Method>`;
49
+ let fieldsParentIdentity = '<Property Id="5" ParentId="3" Name="Web" /><StaticProperty Id="3" TypeId="{3747adcd-a3c3-41b9-bfab-4a64dd2f1e0a}" Name="Current" />';
50
+ if (args.options.listId || args.options.listTitle || args.options.listUrl) {
51
+ let requestData = '';
52
+ if (args.options.listId) {
53
+ requestData = `<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><ObjectPath Id="664" ObjectPathId="663" /><Query Id="665" ObjectPathId="663"><Query SelectAllProperties="false"><Properties /></Query></Query></Actions><ObjectPaths><Method Id="663" ParentId="7" Name="GetById"><Parameters><Parameter Type="Guid">${formatting_1.formatting.escapeXml(args.options.listId)}</Parameter></Parameters></Method><Property Id="7" ParentId="5" Name="Lists" /><Property Id="5" ParentId="3" Name="Web" /><StaticProperty Id="3" TypeId="{3747adcd-a3c3-41b9-bfab-4a64dd2f1e0a}" Name="Current" /></ObjectPaths></Request>`;
54
+ }
55
+ else if (args.options.listTitle) {
56
+ requestData = `<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><ObjectPath Id="664" ObjectPathId="663" /><Query Id="665" ObjectPathId="663"><Query SelectAllProperties="false"><Properties /></Query></Query></Actions><ObjectPaths><Method Id="663" ParentId="7" Name="GetByTitle"><Parameters><Parameter Type="String">${formatting_1.formatting.escapeXml(args.options.listTitle)}</Parameter></Parameters></Method><Property Id="7" ParentId="5" Name="Lists" /><Property Id="5" ParentId="3" Name="Web" /><StaticProperty Id="3" TypeId="{3747adcd-a3c3-41b9-bfab-4a64dd2f1e0a}" Name="Current" /></ObjectPaths></Request>`;
57
+ }
58
+ else if (args.options.listUrl) {
59
+ const listServerRelativeUrl = urlUtil_1.urlUtil.getServerRelativePath(args.options.webUrl, args.options.listUrl);
60
+ requestData = `<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><ObjectPath Id="2" ObjectPathId="1" /><ObjectPath Id="4" ObjectPathId="3" /><ObjectPath Id="6" ObjectPathId="5" /><Query Id="7" ObjectPathId="5"><Query SelectAllProperties="true"><Properties /></Query></Query></Actions><ObjectPaths><StaticProperty Id="1" TypeId="{3747adcd-a3c3-41b9-bfab-4a64dd2f1e0a}" Name="Current" /><Property Id="3" ParentId="1" Name="Web" /><Method Id="5" ParentId="3" Name="GetList"><Parameters><Parameter Type="String">${listServerRelativeUrl}</Parameter></Parameters></Method></ObjectPaths></Request>`;
61
+ }
53
62
  const requestOptions = {
54
63
  url: `${args.options.webUrl}/_vti_bin/client.svc/ProcessQuery`,
55
64
  headers: {
56
65
  'X-RequestDigest': requestDigest
57
66
  },
58
- 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><ObjectPath Id="664" ObjectPathId="663" /><Query Id="665" ObjectPathId="663"><Query SelectAllProperties="false"><Properties /></Query></Query></Actions><ObjectPaths>${listQuery}<Property Id="7" ParentId="5" Name="Lists" /><Property Id="5" ParentId="3" Name="Web" /><StaticProperty Id="3" TypeId="{3747adcd-a3c3-41b9-bfab-4a64dd2f1e0a}" Name="Current" /></ObjectPaths></Request>`
67
+ data: requestData
59
68
  };
60
- list = yield request_1.default.post(requestOptions);
61
- }
62
- // by default retrieve the column from the site
63
- let fieldsParentIdentity = '<Property Id="5" ParentId="3" Name="Web" /><StaticProperty Id="3" TypeId="{3747adcd-a3c3-41b9-bfab-4a64dd2f1e0a}" Name="Current" />';
64
- if (list) {
69
+ const list = yield request_1.default.post(requestOptions);
65
70
  const json = JSON.parse(list);
66
71
  const response = json[0];
67
72
  if (response.ErrorInfo) {
@@ -113,6 +118,7 @@ class SpoFieldSetCommand extends SpoCommand_1.default {
113
118
  'webUrl',
114
119
  'listId',
115
120
  'listTitle',
121
+ 'listUrl',
116
122
  'id',
117
123
  'title',
118
124
  'updateExistingLists',
@@ -134,6 +140,7 @@ _SpoFieldSetCommand_instances = new WeakSet(), _SpoFieldSetCommand_initTelemetry
134
140
  title: typeof args.options.title !== 'undefined',
135
141
  listId: typeof args.options.listId !== 'undefined',
136
142
  listTitle: typeof args.options.listTitle !== 'undefined',
143
+ listUrl: typeof args.options.listUrl !== 'undefined',
137
144
  updateExistingLists: !!args.options.updateExistingLists
138
145
  });
139
146
  });
@@ -144,6 +151,8 @@ _SpoFieldSetCommand_instances = new WeakSet(), _SpoFieldSetCommand_initTelemetry
144
151
  option: '--listId [listId]'
145
152
  }, {
146
153
  option: '--listTitle [listTitle]'
154
+ }, {
155
+ option: '--listUrl [listUrl]'
147
156
  }, {
148
157
  option: '-i, --id [id]'
149
158
  }, {
@@ -157,8 +166,9 @@ _SpoFieldSetCommand_instances = new WeakSet(), _SpoFieldSetCommand_initTelemetry
157
166
  if (isValidSharePointUrl !== true) {
158
167
  return isValidSharePointUrl;
159
168
  }
160
- if (args.options.listId && args.options.listTitle) {
161
- return `Specify listId or listTitle but not both`;
169
+ const listOptions = [args.options.listId, args.options.listTitle, args.options.listUrl];
170
+ if (listOptions.some(item => item !== undefined) && listOptions.filter(item => item !== undefined).length > 1) {
171
+ return `Specify either list id or title or list url, but not multiple`;
162
172
  }
163
173
  if (args.options.listId &&
164
174
  !validation_1.validation.isValidGuid(args.options.listId)) {
@@ -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
  },
@@ -63,7 +63,7 @@ class SpoListRoleAssignmentAddCommand extends SpoCommand_1.default {
63
63
  }
64
64
  else if (args.options.groupName) {
65
65
  args.options.principalId = yield this.getGroupPrincipalId(args.options);
66
- this.addRoleAssignment(requestUrl, logger, args.options);
66
+ yield this.addRoleAssignment(requestUrl, logger, args.options);
67
67
  }
68
68
  else {
69
69
  yield this.addRoleAssignment(requestUrl, logger, args.options);
@@ -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
@@ -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,15 +45,19 @@ class SpoListRoleInheritanceResetCommand extends SpoCommand_1.default {
44
45
  }
45
46
  const resetListRoleInheritance = () => __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
- url: `${requestUrl}/resetroleinheritance`,
60
+ url: `${requestUrl}resetroleinheritance`,
56
61
  method: 'POST',
57
62
  headers: {
58
63
  'accept': 'application/json;odata=nometadata',
@@ -88,6 +93,7 @@ _SpoListRoleInheritanceResetCommand_instances = new WeakSet(), _SpoListRoleInher
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
  });
@@ -98,6 +104,8 @@ _SpoListRoleInheritanceResetCommand_instances = new WeakSet(), _SpoListRoleInher
98
104
  option: '-i, --listId [listId]'
99
105
  }, {
100
106
  option: '-t, --listTitle [listTitle]'
107
+ }, {
108
+ option: '--listUrl [listUrl]'
101
109
  }, {
102
110
  option: '--confirm'
103
111
  });
@@ -113,7 +121,7 @@ _SpoListRoleInheritanceResetCommand_instances = new WeakSet(), _SpoListRoleInher
113
121
  return true;
114
122
  }));
115
123
  }, _SpoListRoleInheritanceResetCommand_initOptionSets = function _SpoListRoleInheritanceResetCommand_initOptionSets() {
116
- this.optionSets.push(['listId', 'listTitle']);
124
+ this.optionSets.push(['listId', 'listTitle', 'listUrl']);
117
125
  };
118
126
  module.exports = new SpoListRoleInheritanceResetCommand();
119
127
  //# sourceMappingURL=list-roleinheritance-reset.js.map
@@ -17,6 +17,7 @@ var _SpoListWebhookAddCommand_instances, _SpoListWebhookAddCommand_initTelemetry
17
17
  Object.defineProperty(exports, "__esModule", { value: true });
18
18
  const request_1 = require("../../../../request");
19
19
  const formatting_1 = require("../../../../utils/formatting");
20
+ const urlUtil_1 = require("../../../../utils/urlUtil");
20
21
  const validation_1 = require("../../../../utils/validation");
21
22
  const SpoCommand_1 = require("../../../base/SpoCommand");
22
23
  const commands_1 = require("../../commands");
@@ -42,17 +43,21 @@ class SpoListWebhookAddCommand extends SpoCommand_1.default {
42
43
  commandAction(logger, args) {
43
44
  return __awaiter(this, void 0, void 0, function* () {
44
45
  if (this.verbose) {
45
- logger.logToStderr(`Adding webhook to list ${args.options.listId ? args.options.listId : args.options.listTitle} located at site ${args.options.webUrl}...`);
46
+ logger.logToStderr(`Adding webhook to list ${args.options.listId || args.options.listTitle || args.options.listUrl} located at site ${args.options.webUrl}...`);
46
47
  }
47
- let requestUrl = '';
48
+ let requestUrl = `${args.options.webUrl}/_api/web`;
48
49
  if (args.options.listId) {
49
- requestUrl = `${args.options.webUrl}/_api/web/lists(guid'${formatting_1.formatting.encodeQueryParameter(args.options.listId)}')/Subscriptions')`;
50
+ requestUrl += `/lists(guid'${formatting_1.formatting.encodeQueryParameter(args.options.listId)}')/Subscriptions`;
50
51
  }
51
- else {
52
- requestUrl = `${args.options.webUrl}/_api/web/lists/GetByTitle('${formatting_1.formatting.encodeQueryParameter(args.options.listTitle)}')/Subscriptions')`;
52
+ else if (args.options.listTitle) {
53
+ requestUrl += `/lists/GetByTitle('${formatting_1.formatting.encodeQueryParameter(args.options.listTitle)}')/Subscriptions`;
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)}')/Subscriptions`;
53
58
  }
54
59
  const requestBody = {};
55
- requestBody.resource = args.options.listId ? args.options.listId : args.options.listTitle;
60
+ requestBody.resource = args.options.listId || args.options.listTitle || args.options.listUrl;
56
61
  requestBody.notificationUrl = args.options.notificationUrl;
57
62
  // If no expiration date has been provided we will default to the
58
63
  // maximum expiration date of 180 days from now
@@ -84,10 +89,11 @@ class SpoListWebhookAddCommand extends SpoCommand_1.default {
84
89
  _SpoListWebhookAddCommand_instances = new WeakSet(), _SpoListWebhookAddCommand_initTelemetry = function _SpoListWebhookAddCommand_initTelemetry() {
85
90
  this.telemetry.push((args) => {
86
91
  Object.assign(this.telemetryProperties, {
87
- listId: (!(!args.options.listId)).toString(),
88
- listTitle: (!(!args.options.listTitle)).toString(),
89
- expirationDateTime: (!(!args.options.expirationDateTime)).toString(),
90
- clientState: (!(!args.options.clientState)).toString()
92
+ listId: typeof args.options.listId !== 'undefined',
93
+ listTitle: typeof args.options.listTitle !== 'undefined',
94
+ listUrl: typeof args.options.listUrl !== 'undefined',
95
+ expirationDateTime: typeof args.options.expirationDateTime !== 'undefined',
96
+ clientState: typeof args.options.clientState !== 'undefined'
91
97
  });
92
98
  });
93
99
  }, _SpoListWebhookAddCommand_initOptions = function _SpoListWebhookAddCommand_initOptions() {
@@ -97,6 +103,8 @@ _SpoListWebhookAddCommand_instances = new WeakSet(), _SpoListWebhookAddCommand_i
97
103
  option: '-l, --listId [listId]'
98
104
  }, {
99
105
  option: '-t, --listTitle [listTitle]'
106
+ }, {
107
+ option: '--listUrl [listUrl]'
100
108
  }, {
101
109
  option: '-n, --notificationUrl <notificationUrl>'
102
110
  }, {
@@ -129,7 +137,7 @@ _SpoListWebhookAddCommand_instances = new WeakSet(), _SpoListWebhookAddCommand_i
129
137
  return true;
130
138
  }));
131
139
  }, _SpoListWebhookAddCommand_initOptionSets = function _SpoListWebhookAddCommand_initOptionSets() {
132
- this.optionSets.push(['listId', 'listTitle']);
140
+ this.optionSets.push(['listId', 'listTitle', 'listUrl']);
133
141
  };
134
142
  module.exports = new SpoListWebhookAddCommand();
135
143
  //# sourceMappingURL=list-webhook-add.js.map
@@ -17,6 +17,7 @@ var _SpoListWebhookGetCommand_instances, _SpoListWebhookGetCommand_initTelemetry
17
17
  Object.defineProperty(exports, "__esModule", { value: true });
18
18
  const request_1 = require("../../../../request");
19
19
  const formatting_1 = require("../../../../utils/formatting");
20
+ const urlUtil_1 = require("../../../../utils/urlUtil");
20
21
  const validation_1 = require("../../../../utils/validation");
21
22
  const SpoCommand_1 = require("../../../base/SpoCommand");
22
23
  const commands_1 = require("../../commands");
@@ -38,15 +39,19 @@ class SpoListWebhookGetCommand extends SpoCommand_1.default {
38
39
  commandAction(logger, args) {
39
40
  return __awaiter(this, void 0, void 0, function* () {
40
41
  if (this.verbose) {
41
- const list = (args.options.listId ? args.options.listId : args.options.listTitle);
42
+ const list = (args.options.listId || args.options.listTitle || args.options.listUrl);
42
43
  logger.logToStderr(`Retrieving information for webhook ${args.options.id} belonging to list ${list} in site at ${args.options.webUrl}...`);
43
44
  }
44
- let requestUrl = '';
45
+ let requestUrl = `${args.options.webUrl}/_api/web`;
45
46
  if (args.options.listId) {
46
- requestUrl = `${args.options.webUrl}/_api/web/lists(guid'${formatting_1.formatting.encodeQueryParameter(args.options.listId)}')/Subscriptions('${formatting_1.formatting.encodeQueryParameter(args.options.id)}')`;
47
+ requestUrl += `/lists(guid'${formatting_1.formatting.encodeQueryParameter(args.options.listId)}')/Subscriptions('${formatting_1.formatting.encodeQueryParameter(args.options.id)}')`;
47
48
  }
48
- else {
49
- requestUrl = `${args.options.webUrl}/_api/web/lists/GetByTitle('${formatting_1.formatting.encodeQueryParameter(args.options.listTitle)}')/Subscriptions('${formatting_1.formatting.encodeQueryParameter(args.options.id)}')`;
49
+ else if (args.options.listTitle) {
50
+ requestUrl += `/lists/GetByTitle('${formatting_1.formatting.encodeQueryParameter(args.options.listTitle)}')/Subscriptions('${formatting_1.formatting.encodeQueryParameter(args.options.id)}')`;
51
+ }
52
+ else if (args.options.listUrl) {
53
+ const listServerRelativeUrl = urlUtil_1.urlUtil.getServerRelativePath(args.options.webUrl, args.options.listUrl);
54
+ requestUrl += `/GetList('${formatting_1.formatting.encodeQueryParameter(listServerRelativeUrl)}')/Subscriptions('${formatting_1.formatting.encodeQueryParameter(args.options.id)}')`;
50
55
  }
51
56
  const requestOptions = {
52
57
  url: requestUrl,
@@ -72,9 +77,9 @@ class SpoListWebhookGetCommand extends SpoCommand_1.default {
72
77
  _SpoListWebhookGetCommand_instances = new WeakSet(), _SpoListWebhookGetCommand_initTelemetry = function _SpoListWebhookGetCommand_initTelemetry() {
73
78
  this.telemetry.push((args) => {
74
79
  Object.assign(this.telemetryProperties, {
75
- listId: (!(!args.options.listId)).toString(),
76
- listTitle: (!(!args.options.listTitle)).toString(),
77
- id: (!(!args.options.id)).toString()
80
+ listId: typeof args.options.listId !== 'undefined',
81
+ listTitle: typeof args.options.listTitle !== 'undefined',
82
+ listUrl: typeof args.options.listUrl !== 'undefined'
78
83
  });
79
84
  });
80
85
  }, _SpoListWebhookGetCommand_initOptions = function _SpoListWebhookGetCommand_initOptions() {
@@ -85,7 +90,9 @@ _SpoListWebhookGetCommand_instances = new WeakSet(), _SpoListWebhookGetCommand_i
85
90
  }, {
86
91
  option: '-t, --listTitle [listTitle]'
87
92
  }, {
88
- option: '-i, --id [id]'
93
+ option: '--listUrl [listUrl]'
94
+ }, {
95
+ option: '-i, --id <id>'
89
96
  });
90
97
  }, _SpoListWebhookGetCommand_initValidators = function _SpoListWebhookGetCommand_initValidators() {
91
98
  this.validators.push((args) => __awaiter(this, void 0, void 0, function* () {
@@ -104,7 +111,7 @@ _SpoListWebhookGetCommand_instances = new WeakSet(), _SpoListWebhookGetCommand_i
104
111
  return true;
105
112
  }));
106
113
  }, _SpoListWebhookGetCommand_initOptionSets = function _SpoListWebhookGetCommand_initOptionSets() {
107
- this.optionSets.push(['listId', 'listTitle']);
114
+ this.optionSets.push(['listId', 'listTitle', 'listUrl']);
108
115
  };
109
116
  module.exports = new SpoListWebhookGetCommand();
110
117
  //# sourceMappingURL=list-webhook-get.js.map