@pnp/cli-microsoft365 6.0.0-beta.a0a813f → 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 (146) hide show
  1. package/dist/Command.js +16 -2
  2. package/dist/m365/aad/commands/app/app-list.js +38 -0
  3. package/dist/m365/aad/commands/user/user-guest-add.js +103 -0
  4. package/dist/m365/aad/commands.js +2 -0
  5. package/dist/m365/commands/status.js +6 -1
  6. package/dist/m365/outlook/commands/mail/mail-send.js +54 -30
  7. package/dist/m365/outlook/commands/message/message-get.js +97 -0
  8. package/dist/m365/outlook/commands.js +1 -0
  9. package/dist/m365/planner/commands/plan/plan-get.js +5 -20
  10. package/dist/m365/pp/commands/card/card-get.js +110 -0
  11. package/dist/m365/pp/commands/card/card-remove.js +130 -0
  12. package/dist/m365/pp/commands/gateway/gateway-get.js +70 -0
  13. package/dist/m365/pp/commands/solution/solution-get.js +117 -0
  14. package/dist/m365/pp/commands.js +4 -0
  15. package/dist/m365/spfx/commands/project/project-doctor.js +4 -1
  16. package/dist/m365/spfx/commands/project/project-externalize.js +4 -1
  17. package/dist/m365/spfx/commands/project/project-upgrade/rules/FN010001_YORC_version.js +2 -1
  18. package/dist/m365/spfx/commands/project/project-upgrade/rules/FN010002_YORC_isCreatingSolution.js +2 -1
  19. package/dist/m365/spfx/commands/project/project-upgrade/rules/FN010003_YORC_packageManager.js +2 -1
  20. package/dist/m365/spfx/commands/project/project-upgrade/rules/FN010004_YORC_componentType.js +2 -1
  21. package/dist/m365/spfx/commands/project/project-upgrade/rules/FN010005_YORC_environment.js +2 -1
  22. package/dist/m365/spfx/commands/project/project-upgrade/rules/FN010006_YORC_framework.js +3 -2
  23. package/dist/m365/spfx/commands/project/project-upgrade/rules/FN010007_YORC_isDomainIsolated.js +2 -1
  24. package/dist/m365/spfx/commands/project/project-upgrade/rules/FN010008_YORC_nodeVersion.js +2 -1
  25. package/dist/m365/spfx/commands/project/project-upgrade/rules/FN010009_YORC_sdkVersions_microsoft_graph_client.js +56 -0
  26. package/dist/m365/spfx/commands/project/project-upgrade/rules/FN010010_YORC_sdkVersions_teams_js.js +56 -0
  27. package/dist/m365/spfx/commands/project/project-upgrade/{upgrade-1.16.0-beta.1.js → upgrade-1.16.0-beta.2.js} +44 -28
  28. package/dist/m365/spfx/commands/project/project-upgrade.js +1 -1
  29. package/dist/m365/spfx/commands/spfx-doctor.js +3 -3
  30. package/dist/m365/spo/commands/contenttype/contenttype-add.js +82 -43
  31. package/dist/m365/spo/commands/contenttype/contenttype-field-remove.js +53 -21
  32. package/dist/m365/spo/commands/contenttype/contenttype-get.js +35 -14
  33. package/dist/m365/spo/commands/field/field-add.js +26 -1
  34. package/dist/m365/spo/commands/field/field-set.js +23 -13
  35. package/dist/m365/spo/commands/folder/folder-list.js +35 -12
  36. package/dist/m365/spo/commands/folder/folder-roleinheritance-break.js +11 -1
  37. package/dist/m365/spo/commands/folder/folder-roleinheritance-reset.js +12 -1
  38. package/dist/m365/spo/commands/list/list-roleassignment-add.js +1 -1
  39. package/dist/m365/spo/commands/list/list-webhook-get.js +2 -3
  40. package/dist/m365/spo/commands/list/list-webhook-list.js +4 -28
  41. package/dist/m365/spo/commands/list/list-webhook-set.js +11 -12
  42. package/dist/m365/spo/commands/listitem/listitem-add.js +24 -14
  43. package/dist/m365/spo/commands/listitem/listitem-attachment-list.js +18 -8
  44. package/dist/m365/spo/commands/listitem/listitem-get.js +18 -8
  45. package/dist/m365/spo/commands/listitem/listitem-isrecord.js +20 -10
  46. package/dist/m365/spo/commands/listitem/listitem-list.js +21 -11
  47. package/dist/m365/spo/commands/listitem/listitem-record-declare.js +19 -12
  48. package/dist/m365/spo/commands/listitem/listitem-record-undeclare.js +24 -21
  49. package/dist/m365/spo/commands/listitem/listitem-remove.js +19 -11
  50. package/dist/m365/spo/commands/listitem/listitem-roleassignment-add.js +239 -0
  51. package/dist/m365/spo/commands/listitem/listitem-roleinheritance-break.js +13 -5
  52. package/dist/m365/spo/commands/listitem/listitem-roleinheritance-reset.js +13 -5
  53. package/dist/m365/spo/commands/listitem/listitem-set.js +52 -44
  54. package/dist/m365/spo/commands/roledefinition/roledefinition-list.js +15 -2
  55. package/dist/m365/spo/commands/site/site-add.js +4 -11
  56. package/dist/m365/spo/commands/{hubsite/hubsite-connect.js → site/site-hubsite-connect.js} +10 -10
  57. package/dist/m365/spo/commands/{hubsite/hubsite-disconnect.js → site/site-hubsite-disconnect.js} +13 -13
  58. package/dist/m365/spo/commands/{hubsite/hubsite-theme-sync.js → site/site-hubsite-theme-sync.js} +11 -11
  59. package/dist/m365/spo/commands/web/web-roleinheritance-break.js +100 -0
  60. package/dist/m365/spo/commands.js +5 -3
  61. package/dist/m365/teams/commands/team/team-set.js +0 -7
  62. package/dist/m365/todo/commands/list/list-get.js +89 -0
  63. package/dist/m365/todo/commands/task/task-add.js +55 -3
  64. package/dist/m365/todo/commands/task/task-get.js +108 -0
  65. package/dist/m365/todo/commands.js +2 -0
  66. package/docs/docs/_clisettings.md +18 -0
  67. package/docs/docs/cmd/aad/app/app-list.md +149 -0
  68. package/docs/docs/cmd/aad/user/user-guest-add.md +107 -0
  69. package/docs/docs/cmd/adaptivecard/adaptivecard-send.md +3 -0
  70. package/docs/docs/cmd/graph/schemaextension/schemaextension-add.md +4 -11
  71. package/docs/docs/cmd/graph/schemaextension/schemaextension-set.md +4 -10
  72. package/docs/docs/cmd/outlook/mail/mail-send.md +13 -0
  73. package/docs/docs/cmd/outlook/message/message-get.md +48 -0
  74. package/docs/docs/cmd/planner/bucket/bucket-add.md +29 -0
  75. package/docs/docs/cmd/planner/bucket/bucket-get.md +29 -0
  76. package/docs/docs/cmd/planner/bucket/bucket-list.md +30 -0
  77. package/docs/docs/cmd/planner/bucket/bucket-remove.md +4 -0
  78. package/docs/docs/cmd/planner/bucket/bucket-set.md +4 -0
  79. package/docs/docs/cmd/planner/plan/plan-add.md +123 -0
  80. package/docs/docs/cmd/planner/plan/plan-get.md +75 -6
  81. package/docs/docs/cmd/planner/plan/plan-list.md +45 -0
  82. package/docs/docs/cmd/planner/plan/plan-remove.md +4 -0
  83. package/docs/docs/cmd/planner/task/task-get.md +0 -3
  84. package/docs/docs/cmd/pp/card/card-get.md +51 -0
  85. package/docs/docs/cmd/pp/card/card-remove.md +82 -0
  86. package/docs/docs/cmd/pp/gateway/gateway-get.md +24 -0
  87. package/docs/docs/cmd/pp/solution/solution-get.md +51 -0
  88. package/docs/docs/cmd/spfx/project/project-rename.md +1 -14
  89. package/docs/docs/cmd/spfx/project/project-upgrade.md +1 -1
  90. package/docs/docs/cmd/spo/contenttype/contenttype-add.md +20 -2
  91. package/docs/docs/cmd/spo/contenttype/contenttype-field-remove.md +22 -4
  92. package/docs/docs/cmd/spo/contenttype/contenttype-get.md +21 -3
  93. package/docs/docs/cmd/spo/customaction/customaction-add.md +3 -0
  94. package/docs/docs/cmd/spo/customaction/customaction-set.md +3 -2
  95. package/docs/docs/cmd/spo/field/field-add.md +20 -2
  96. package/docs/docs/cmd/spo/field/field-set.md +15 -3
  97. package/docs/docs/cmd/spo/folder/folder-list.md +45 -0
  98. package/docs/docs/cmd/spo/folder/folder-roleinheritance-break.md +6 -0
  99. package/docs/docs/cmd/spo/folder/folder-roleinheritance-reset.md +6 -0
  100. package/docs/docs/cmd/spo/hubsite/hubsite-register.md +2 -2
  101. package/docs/docs/cmd/spo/hubsite/hubsite-unregister.md +2 -2
  102. package/docs/docs/cmd/spo/list/list-view-set.md +14 -3
  103. package/docs/docs/cmd/spo/list/list-webhook-get.md +1 -1
  104. package/docs/docs/cmd/spo/list/list-webhook-list.md +3 -9
  105. package/docs/docs/cmd/spo/list/list-webhook-set.md +11 -4
  106. package/docs/docs/cmd/spo/listitem/listitem-add.md +11 -2
  107. package/docs/docs/cmd/spo/listitem/listitem-attachment-list.md +11 -2
  108. package/docs/docs/cmd/spo/listitem/listitem-get.md +11 -2
  109. package/docs/docs/cmd/spo/listitem/listitem-isrecord.md +12 -2
  110. package/docs/docs/cmd/spo/listitem/listitem-list.md +10 -1
  111. package/docs/docs/cmd/spo/listitem/listitem-record-declare.md +7 -4
  112. package/docs/docs/cmd/spo/listitem/listitem-record-undeclare.md +11 -2
  113. package/docs/docs/cmd/spo/listitem/listitem-remove.md +11 -2
  114. package/docs/docs/cmd/spo/listitem/listitem-roleassignment-add.md +81 -0
  115. package/docs/docs/cmd/spo/listitem/listitem-roleinheritance-break.md +7 -4
  116. package/docs/docs/cmd/spo/listitem/listitem-roleinheritance-reset.md +8 -5
  117. package/docs/docs/cmd/spo/listitem/listitem-set.md +7 -4
  118. package/docs/docs/cmd/spo/page/page-clientsidewebpart-add.md +5 -10
  119. package/docs/docs/cmd/spo/page/page-control-set.md +2 -1
  120. package/docs/docs/cmd/spo/site/site-add.md +0 -3
  121. package/docs/docs/cmd/spo/{hubsite/hubsite-connect.md → site/site-hubsite-connect.md} +4 -4
  122. package/docs/docs/cmd/spo/{hubsite/hubsite-disconnect.md → site/site-hubsite-disconnect.md} +7 -7
  123. package/docs/docs/cmd/spo/{hubsite/hubsite-theme-sync.md → site/site-hubsite-theme-sync.md} +5 -5
  124. package/docs/docs/cmd/spo/term/term-add.md +5 -0
  125. package/docs/docs/cmd/spo/term/term-set-add.md +6 -1
  126. package/docs/docs/cmd/spo/web/web-roleinheritance-break.md +44 -0
  127. package/docs/docs/cmd/teams/team/team-clone.md +0 -3
  128. package/docs/docs/cmd/teams/team/team-set.md +0 -3
  129. package/docs/docs/cmd/tenant/id/id-get.md +20 -0
  130. package/docs/docs/cmd/tenant/report/report-activeusercounts.md +35 -0
  131. package/docs/docs/cmd/tenant/report/report-activeuserdetail.md +49 -0
  132. package/docs/docs/cmd/tenant/report/report-office365activationcounts.md +32 -0
  133. package/docs/docs/cmd/tenant/report/report-office365activationsusercounts.md +30 -0
  134. package/docs/docs/cmd/tenant/report/report-office365activationsuserdetail.md +36 -0
  135. package/docs/docs/cmd/tenant/report/report-servicesusercounts.md +41 -0
  136. package/docs/docs/cmd/tenant/security/security-alerts-list.md +105 -0
  137. package/docs/docs/cmd/tenant/serviceannouncement/serviceannouncement-health-get.md +87 -0
  138. package/docs/docs/cmd/tenant/serviceannouncement/serviceannouncement-health-list.md +91 -0
  139. package/docs/docs/cmd/tenant/serviceannouncement/serviceannouncement-healthissue-get.md +62 -0
  140. package/docs/docs/cmd/tenant/serviceannouncement/serviceannouncement-healthissue-list.md +51 -0
  141. package/docs/docs/cmd/tenant/serviceannouncement/serviceannouncement-message-get.md +64 -0
  142. package/docs/docs/cmd/tenant/serviceannouncement/serviceannouncement-message-list.md +52 -0
  143. package/docs/docs/cmd/todo/list/list-get.md +61 -0
  144. package/docs/docs/cmd/todo/task/task-add.md +32 -5
  145. package/docs/docs/cmd/todo/task/task-get.md +75 -0
  146. package/package.json +12 -6
@@ -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);
@@ -79,8 +79,7 @@ _SpoListWebhookGetCommand_instances = new WeakSet(), _SpoListWebhookGetCommand_i
79
79
  Object.assign(this.telemetryProperties, {
80
80
  listId: typeof args.options.listId !== 'undefined',
81
81
  listTitle: typeof args.options.listTitle !== 'undefined',
82
- listUrl: typeof args.options.listUrl !== 'undefined',
83
- id: typeof args.options.id !== 'undefined'
82
+ listUrl: typeof args.options.listUrl !== 'undefined'
84
83
  });
85
84
  });
86
85
  }, _SpoListWebhookGetCommand_initOptions = function _SpoListWebhookGetCommand_initOptions() {
@@ -93,7 +92,7 @@ _SpoListWebhookGetCommand_instances = new WeakSet(), _SpoListWebhookGetCommand_i
93
92
  }, {
94
93
  option: '--listUrl [listUrl]'
95
94
  }, {
96
- option: '-i, --id [id]'
95
+ option: '-i, --id <id>'
97
96
  });
98
97
  }, _SpoListWebhookGetCommand_initValidators = function _SpoListWebhookGetCommand_initValidators() {
99
98
  this.validators.push((args) => __awaiter(this, void 0, void 0, function* () {
@@ -15,7 +15,6 @@ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (
15
15
  };
16
16
  var _SpoListWebhookListCommand_instances, _SpoListWebhookListCommand_initTelemetry, _SpoListWebhookListCommand_initOptions, _SpoListWebhookListCommand_initValidators, _SpoListWebhookListCommand_initOptionSets;
17
17
  Object.defineProperty(exports, "__esModule", { value: true });
18
- const chalk = require("chalk");
19
18
  const request_1 = require("../../../../request");
20
19
  const formatting_1 = require("../../../../utils/formatting");
21
20
  const urlUtil_1 = require("../../../../utils/urlUtil");
@@ -42,28 +41,16 @@ class SpoListWebhookListCommand extends SpoCommand_1.default {
42
41
  }
43
42
  commandAction(logger, args) {
44
43
  return __awaiter(this, void 0, void 0, function* () {
45
- if (args.options.title && this.verbose) {
46
- logger.logToStderr(chalk.yellow(`Option 'title' is deprecated. Please use 'listTitle' instead`));
47
- }
48
- if (args.options.id && this.verbose) {
49
- logger.logToStderr(chalk.yellow(`Option 'id' is deprecated. Please use 'listId' instead`));
50
- }
51
44
  if (this.verbose) {
52
- logger.logToStderr(`Retrieving webhook information for list ${args.options.id || args.options.listId || args.options.listUrl} in site at ${args.options.webUrl}...`);
45
+ logger.logToStderr(`Retrieving webhook information for list ${args.options.listTitle || args.options.listId || args.options.listUrl} in site at ${args.options.webUrl}...`);
53
46
  }
54
47
  let requestUrl = `${args.options.webUrl}/_api/web`;
55
- if (args.options.id) {
56
- requestUrl += `/lists(guid'${formatting_1.formatting.encodeQueryParameter(args.options.id)}')/Subscriptions`;
57
- }
58
- else if (args.options.listId) {
48
+ if (args.options.listId) {
59
49
  requestUrl += `/lists(guid'${formatting_1.formatting.encodeQueryParameter(args.options.listId)}')/Subscriptions`;
60
50
  }
61
51
  else if (args.options.listTitle) {
62
52
  requestUrl += `/lists/GetByTitle('${formatting_1.formatting.encodeQueryParameter(args.options.listTitle)}')/Subscriptions`;
63
53
  }
64
- else if (args.options.title) {
65
- requestUrl += `/lists/GetByTitle('${formatting_1.formatting.encodeQueryParameter(args.options.title)}')/Subscriptions`;
66
- }
67
54
  else if (args.options.listUrl) {
68
55
  const listServerRelativeUrl = urlUtil_1.urlUtil.getServerRelativePath(args.options.webUrl, args.options.listUrl);
69
56
  requestUrl += `/GetList('${formatting_1.formatting.encodeQueryParameter(listServerRelativeUrl)}')/Subscriptions`;
@@ -99,11 +86,9 @@ class SpoListWebhookListCommand extends SpoCommand_1.default {
99
86
  _SpoListWebhookListCommand_instances = new WeakSet(), _SpoListWebhookListCommand_initTelemetry = function _SpoListWebhookListCommand_initTelemetry() {
100
87
  this.telemetry.push((args) => {
101
88
  Object.assign(this.telemetryProperties, {
102
- id: typeof args.options.id !== 'undefined',
103
89
  listId: typeof args.options.listId !== 'undefined',
104
90
  listTitle: typeof args.options.listTitle !== 'undefined',
105
- listUrl: typeof args.options.listUrl !== 'undefined',
106
- title: typeof args.options.title !== 'undefined'
91
+ listUrl: typeof args.options.listUrl !== 'undefined'
107
92
  });
108
93
  });
109
94
  }, _SpoListWebhookListCommand_initOptions = function _SpoListWebhookListCommand_initOptions() {
@@ -115,10 +100,6 @@ _SpoListWebhookListCommand_instances = new WeakSet(), _SpoListWebhookListCommand
115
100
  option: '-t, --listTitle [listTitle]'
116
101
  }, {
117
102
  option: '--listUrl [listUrl]'
118
- }, {
119
- option: '--id [id]'
120
- }, {
121
- option: '--title [title]'
122
103
  });
123
104
  }, _SpoListWebhookListCommand_initValidators = function _SpoListWebhookListCommand_initValidators() {
124
105
  this.validators.push((args) => __awaiter(this, void 0, void 0, function* () {
@@ -126,11 +107,6 @@ _SpoListWebhookListCommand_instances = new WeakSet(), _SpoListWebhookListCommand
126
107
  if (isValidSharePointUrl !== true) {
127
108
  return isValidSharePointUrl;
128
109
  }
129
- if (args.options.id) {
130
- if (!validation_1.validation.isValidGuid(args.options.id)) {
131
- return `${args.options.id} is not a valid GUID`;
132
- }
133
- }
134
110
  if (args.options.listId) {
135
111
  if (!validation_1.validation.isValidGuid(args.options.listId)) {
136
112
  return `${args.options.listId} is not a valid GUID`;
@@ -139,7 +115,7 @@ _SpoListWebhookListCommand_instances = new WeakSet(), _SpoListWebhookListCommand
139
115
  return true;
140
116
  }));
141
117
  }, _SpoListWebhookListCommand_initOptionSets = function _SpoListWebhookListCommand_initOptionSets() {
142
- this.optionSets.push(['id', 'title', 'listId', 'listTitle', 'listUrl']);
118
+ this.optionSets.push(['listId', 'listTitle', 'listUrl']);
143
119
  };
144
120
  module.exports = new SpoListWebhookListCommand();
145
121
  //# sourceMappingURL=list-webhook-list.js.map
@@ -53,16 +53,13 @@ class SpoListWebhookSetCommand extends SpoCommand_1.default {
53
53
  const listServerRelativeUrl = urlUtil_1.urlUtil.getServerRelativePath(args.options.webUrl, args.options.listUrl);
54
54
  requestUrl += `/GetList('${formatting_1.formatting.encodeQueryParameter(listServerRelativeUrl)}')/Subscriptions('${formatting_1.formatting.encodeQueryParameter(args.options.id)}')`;
55
55
  }
56
- const requestBody = {};
57
- if (args.options.notificationUrl) {
58
- requestBody.notificationUrl = args.options.notificationUrl;
59
- }
60
- if (args.options.expirationDateTime) {
61
- requestBody.expirationDateTime = args.options.expirationDateTime;
62
- }
56
+ const requestBody = {
57
+ notificationUrl: args.options.notificationUrl,
58
+ expirationDateTime: args.options.expirationDateTime,
59
+ clientState: args.options.clientState
60
+ };
63
61
  const requestOptions = {
64
62
  url: requestUrl,
65
- method: 'PATCH',
66
63
  headers: {
67
64
  'accept': 'application/json;odata=nometadata'
68
65
  },
@@ -71,7 +68,6 @@ class SpoListWebhookSetCommand extends SpoCommand_1.default {
71
68
  };
72
69
  try {
73
70
  yield request_1.default.patch(requestOptions);
74
- // REST patch call doesn't return anything
75
71
  }
76
72
  catch (err) {
77
73
  this.handleRejectedODataJsonPromise(err);
@@ -86,7 +82,8 @@ _SpoListWebhookSetCommand_instances = new WeakSet(), _SpoListWebhookSetCommand_i
86
82
  listTitle: typeof args.options.listTitle !== 'undefined',
87
83
  listUrl: typeof args.options.listUrl !== 'undefined',
88
84
  notificationUrl: typeof args.options.notificationUrl !== 'undefined',
89
- expirationDateTime: typeof args.options.expirationDateTime !== 'undefined'
85
+ expirationDateTime: typeof args.options.expirationDateTime !== 'undefined',
86
+ clientState: typeof args.options.clientState !== 'undefined'
90
87
  });
91
88
  });
92
89
  }, _SpoListWebhookSetCommand_initOptions = function _SpoListWebhookSetCommand_initOptions() {
@@ -104,6 +101,8 @@ _SpoListWebhookSetCommand_instances = new WeakSet(), _SpoListWebhookSetCommand_i
104
101
  option: '-n, --notificationUrl [notificationUrl]'
105
102
  }, {
106
103
  option: '-e, --expirationDateTime [expirationDateTime]'
104
+ }, {
105
+ option: '-c, --clientState [clientState]'
107
106
  });
108
107
  }, _SpoListWebhookSetCommand_initValidators = function _SpoListWebhookSetCommand_initValidators() {
109
108
  this.validators.push((args) => __awaiter(this, void 0, void 0, function* () {
@@ -119,8 +118,8 @@ _SpoListWebhookSetCommand_instances = new WeakSet(), _SpoListWebhookSetCommand_i
119
118
  return `${args.options.listId} is not a valid GUID`;
120
119
  }
121
120
  }
122
- if (!args.options.notificationUrl && !args.options.expirationDateTime) {
123
- return 'Specify notificationUrl, expirationDateTime or both, at least one is required';
121
+ if (!args.options.notificationUrl && !args.options.expirationDateTime && !args.options.clientState) {
122
+ return 'Specify notificationUrl, expirationDateTime, clientState or multiple, at least one is required';
124
123
  }
125
124
  const parsedDateTime = Date.parse(args.options.expirationDateTime);
126
125
  if (args.options.expirationDateTime && !(!parsedDateTime) !== true) {
@@ -44,18 +44,24 @@ class SpoListItemAddCommand extends SpoCommand_1.default {
44
44
  commandAction(logger, args) {
45
45
  return __awaiter(this, void 0, void 0, function* () {
46
46
  try {
47
- const listIdArgument = args.options.listId || '';
48
- const listTitleArgument = args.options.listTitle || '';
49
- const listRestUrl = (args.options.listId ?
50
- `${args.options.webUrl}/_api/web/lists(guid'${formatting_1.formatting.encodeQueryParameter(listIdArgument)}')`
51
- : `${args.options.webUrl}/_api/web/lists/getByTitle('${formatting_1.formatting.encodeQueryParameter(listTitleArgument)}')`);
47
+ let requestUrl = `${args.options.webUrl}/_api/web`;
48
+ if (args.options.listId) {
49
+ requestUrl += `/lists(guid'${formatting_1.formatting.encodeQueryParameter(args.options.listId)}')`;
50
+ }
51
+ else if (args.options.listTitle) {
52
+ requestUrl += `/lists/getByTitle('${formatting_1.formatting.encodeQueryParameter(args.options.listTitle)}')`;
53
+ }
54
+ else if (args.options.listUrl) {
55
+ const listServerRelativeUrl = urlUtil_1.urlUtil.getServerRelativePath(args.options.webUrl, args.options.listUrl);
56
+ requestUrl += `/GetList('${formatting_1.formatting.encodeQueryParameter(listServerRelativeUrl)}')`;
57
+ }
52
58
  let contentTypeName = '';
53
59
  let targetFolderServerRelativeUrl = '';
54
60
  if (this.verbose) {
55
- logger.logToStderr(`Getting content types for list...`);
61
+ logger.logToStderr(`Getting content types for list ${args.options.listId || args.options.listTitle || args.options.listUrl}...`);
56
62
  }
57
63
  let requestOptions = {
58
- url: `${listRestUrl}/contenttypes?$select=Name,Id`,
64
+ url: `${requestUrl}/contenttypes?$select=Name,Id`,
59
65
  headers: {
60
66
  'accept': 'application/json;odata=nometadata'
61
67
  },
@@ -90,7 +96,7 @@ class SpoListItemAddCommand extends SpoCommand_1.default {
90
96
  logger.logToStderr('setting up folder lookup response ...');
91
97
  }
92
98
  requestOptions = {
93
- url: `${listRestUrl}/rootFolder`,
99
+ url: `${requestUrl}/rootFolder`,
94
100
  headers: {
95
101
  'accept': 'application/json;odata=nometadata'
96
102
  },
@@ -101,7 +107,7 @@ class SpoListItemAddCommand extends SpoCommand_1.default {
101
107
  yield spo_1.spo.ensureFolder(args.options.webUrl, targetFolderServerRelativeUrl, logger, this.debug);
102
108
  }
103
109
  if (this.verbose) {
104
- logger.logToStderr(`Creating item in list ${args.options.listId || args.options.listTitle} in site ${args.options.webUrl}...`);
110
+ logger.logToStderr(`Creating item in list ${args.options.listId || args.options.listTitle || args.options.listUrl} in site ${args.options.webUrl}...`);
105
111
  }
106
112
  const requestBody = {
107
113
  formValues: this.mapRequestBody(args.options)
@@ -123,7 +129,7 @@ class SpoListItemAddCommand extends SpoCommand_1.default {
123
129
  });
124
130
  }
125
131
  requestOptions = {
126
- url: `${listRestUrl}/AddValidateUpdateItemUsingPath()`,
132
+ url: `${requestUrl}/AddValidateUpdateItemUsingPath()`,
127
133
  headers: {
128
134
  'accept': 'application/json;odata=nometadata'
129
135
  },
@@ -142,10 +148,10 @@ class SpoListItemAddCommand extends SpoCommand_1.default {
142
148
  logger.logToStderr(`Id returned by AddValidateUpdateItemUsingPath: ${idField}`);
143
149
  }
144
150
  if (idField.length === 0) {
145
- return Promise.reject(`Item didn't add successfully`);
151
+ throw `Item didn't add successfully`;
146
152
  }
147
153
  requestOptions = {
148
- url: `${listRestUrl}/items(${idField[0].FieldValue})`,
154
+ url: `${requestUrl}/items(${idField[0].FieldValue})`,
149
155
  headers: {
150
156
  'accept': 'application/json;odata=nometadata'
151
157
  },
@@ -164,6 +170,7 @@ class SpoListItemAddCommand extends SpoCommand_1.default {
164
170
  const excludeOptions = [
165
171
  'listTitle',
166
172
  'listId',
173
+ 'listUrl',
167
174
  'webUrl',
168
175
  'contentType',
169
176
  'folder',
@@ -184,6 +191,7 @@ _SpoListItemAddCommand_instances = new WeakSet(), _SpoListItemAddCommand_initTel
184
191
  Object.assign(this.telemetryProperties, {
185
192
  listId: typeof args.options.listId !== 'undefined',
186
193
  listTitle: typeof args.options.listTitle !== 'undefined',
194
+ listUrl: typeof args.options.listUrl !== 'undefined',
187
195
  contentType: typeof args.options.contentType !== 'undefined',
188
196
  folder: typeof args.options.folder !== 'undefined'
189
197
  });
@@ -195,6 +203,8 @@ _SpoListItemAddCommand_instances = new WeakSet(), _SpoListItemAddCommand_initTel
195
203
  option: '-l, --listId [listId]'
196
204
  }, {
197
205
  option: '-t, --listTitle [listTitle]'
206
+ }, {
207
+ option: '--listUrl [listUrl]'
198
208
  }, {
199
209
  option: '-c, --contentType [contentType]'
200
210
  }, {
@@ -213,9 +223,9 @@ _SpoListItemAddCommand_instances = new WeakSet(), _SpoListItemAddCommand_initTel
213
223
  return true;
214
224
  }));
215
225
  }, _SpoListItemAddCommand_initTypes = function _SpoListItemAddCommand_initTypes() {
216
- this.types.string.push('webUrl', 'listId', 'listTitle', 'contentType', 'folder');
226
+ this.types.string.push('webUrl', 'listId', 'listTitle', 'listUrl', 'contentType', 'folder');
217
227
  }, _SpoListItemAddCommand_initOptionSets = function _SpoListItemAddCommand_initOptionSets() {
218
- this.optionSets.push(['listId', 'listTitle']);
228
+ this.optionSets.push(['listId', 'listTitle', 'listUrl']);
219
229
  };
220
230
  module.exports = new SpoListItemAddCommand();
221
231
  //# sourceMappingURL=listitem-add.js.map
@@ -17,6 +17,7 @@ var _SpoListItemAttachmentListCommand_instances, _SpoListItemAttachmentListComma
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");
@@ -40,13 +41,19 @@ class SpoListItemAttachmentListCommand extends SpoCommand_1.default {
40
41
  }
41
42
  commandAction(logger, args) {
42
43
  return __awaiter(this, void 0, void 0, function* () {
43
- const listIdArgument = args.options.listId || '';
44
- const listTitleArgument = args.options.listTitle || '';
45
- const listRestUrl = (args.options.listId ?
46
- `${args.options.webUrl}/_api/web/lists(guid'${formatting_1.formatting.encodeQueryParameter(listIdArgument)}')`
47
- : `${args.options.webUrl}/_api/web/lists/getByTitle('${formatting_1.formatting.encodeQueryParameter(listTitleArgument)}')`);
44
+ let requestUrl = `${args.options.webUrl}/_api/web`;
45
+ if (args.options.listId) {
46
+ requestUrl += `/lists(guid'${formatting_1.formatting.encodeQueryParameter(args.options.listId)}')`;
47
+ }
48
+ else if (args.options.listTitle) {
49
+ requestUrl += `/lists/getByTitle('${formatting_1.formatting.encodeQueryParameter(args.options.listTitle)}')`;
50
+ }
51
+ else if (args.options.listUrl) {
52
+ const listServerRelativeUrl = urlUtil_1.urlUtil.getServerRelativePath(args.options.webUrl, args.options.listUrl);
53
+ requestUrl += `/GetList('${formatting_1.formatting.encodeQueryParameter(listServerRelativeUrl)}')`;
54
+ }
48
55
  const requestOptions = {
49
- url: `${listRestUrl}/items(${args.options.itemId})?$select=AttachmentFiles&$expand=AttachmentFiles`,
56
+ url: `${requestUrl}/items(${args.options.itemId})?$select=AttachmentFiles&$expand=AttachmentFiles`,
50
57
  method: 'GET',
51
58
  headers: {
52
59
  'accept': 'application/json;odata=nometadata'
@@ -74,7 +81,8 @@ _SpoListItemAttachmentListCommand_instances = new WeakSet(), _SpoListItemAttachm
74
81
  this.telemetry.push((args) => {
75
82
  Object.assign(this.telemetryProperties, {
76
83
  listId: typeof args.options.listId !== 'undefined',
77
- listTitle: typeof args.options.listTitle !== 'undefined'
84
+ listTitle: typeof args.options.listTitle !== 'undefined',
85
+ listUrl: typeof args.options.listUrl !== 'undefined'
78
86
  });
79
87
  });
80
88
  }, _SpoListItemAttachmentListCommand_initOptions = function _SpoListItemAttachmentListCommand_initOptions() {
@@ -86,6 +94,8 @@ _SpoListItemAttachmentListCommand_instances = new WeakSet(), _SpoListItemAttachm
86
94
  option: '--listId [listId]'
87
95
  }, {
88
96
  option: '--listTitle [listTitle]'
97
+ }, {
98
+ option: '--listUrl [listUrl]'
89
99
  });
90
100
  }, _SpoListItemAttachmentListCommand_initValidators = function _SpoListItemAttachmentListCommand_initValidators() {
91
101
  this.validators.push((args) => __awaiter(this, void 0, void 0, function* () {
@@ -102,7 +112,7 @@ _SpoListItemAttachmentListCommand_instances = new WeakSet(), _SpoListItemAttachm
102
112
  return true;
103
113
  }));
104
114
  }, _SpoListItemAttachmentListCommand_initOptionSets = function _SpoListItemAttachmentListCommand_initOptionSets() {
105
- this.optionSets.push(['listId', 'listTitle']);
115
+ this.optionSets.push(['listId', 'listTitle', 'listUrl']);
106
116
  };
107
117
  module.exports = new SpoListItemAttachmentListCommand();
108
118
  //# sourceMappingURL=listitem-attachment-list.js.map