@pnp/cli-microsoft365 7.0.0-beta.4ebf3ad → 7.0.0-beta.5fdb9e3

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 (196) hide show
  1. package/.eslintrc.cjs +1 -1
  2. package/dist/Auth.js +2 -1
  3. package/dist/Command.js +1 -1
  4. package/dist/cli/Cli.js +19 -2
  5. package/dist/m365/aad/commands/{o365group/o365group-add.js → m365group/m365group-add.js} +17 -17
  6. package/dist/m365/aad/commands/{o365group/o365group-conversation-list.js → m365group/m365group-conversation-list.js} +10 -10
  7. package/dist/m365/aad/commands/{o365group/o365group-conversation-post-list.js → m365group/m365group-conversation-post-list.js} +14 -14
  8. package/dist/m365/aad/commands/{o365group/o365group-get.js → m365group/m365group-get.js} +13 -10
  9. package/dist/m365/aad/commands/{o365group/o365group-list.js → m365group/m365group-list.js} +13 -28
  10. package/dist/m365/aad/commands/{o365group/o365group-recyclebinitem-clear.js → m365group/m365group-recyclebinitem-clear.js} +15 -15
  11. package/dist/m365/aad/commands/{o365group/o365group-recyclebinitem-list.js → m365group/m365group-recyclebinitem-list.js} +10 -10
  12. package/dist/m365/aad/commands/{o365group/o365group-recyclebinitem-remove.js → m365group/m365group-recyclebinitem-remove.js} +14 -14
  13. package/dist/m365/aad/commands/{o365group/o365group-recyclebinitem-restore.js → m365group/m365group-recyclebinitem-restore.js} +14 -14
  14. package/dist/m365/aad/commands/{o365group/o365group-remove.js → m365group/m365group-remove.js} +12 -12
  15. package/dist/m365/aad/commands/{o365group/o365group-renew.js → m365group/m365group-renew.js} +10 -10
  16. package/dist/m365/aad/commands/{o365group/o365group-report-activitycounts.js → m365group/m365group-report-activitycounts.js} +4 -4
  17. package/dist/m365/aad/commands/{o365group/o365group-report-activitydetail.js → m365group/m365group-report-activitydetail.js} +4 -4
  18. package/dist/m365/aad/commands/{o365group/o365group-report-activityfilecounts.js → m365group/m365group-report-activityfilecounts.js} +4 -4
  19. package/dist/m365/aad/commands/{o365group/o365group-report-activitygroupcounts.js → m365group/m365group-report-activitygroupcounts.js} +4 -4
  20. package/dist/m365/aad/commands/{o365group/o365group-report-activitystorage.js → m365group/m365group-report-activitystorage.js} +4 -4
  21. package/dist/m365/aad/commands/{o365group/o365group-set.js → m365group/m365group-set.js} +17 -17
  22. package/dist/m365/aad/commands/{o365group/o365group-teamify.js → m365group/m365group-teamify.js} +14 -14
  23. package/dist/m365/aad/commands/{o365group/o365group-user-add.js → m365group/m365group-user-add.js} +14 -14
  24. package/dist/m365/aad/commands/{o365group/o365group-user-list.js → m365group/m365group-user-list.js} +12 -12
  25. package/dist/m365/aad/commands/{o365group/o365group-user-remove.js → m365group/m365group-user-remove.js} +14 -14
  26. package/dist/m365/aad/commands/{o365group/o365group-user-set.js → m365group/m365group-user-set.js} +15 -15
  27. package/dist/m365/aad/commands.js +22 -22
  28. package/dist/m365/cli/commands/config/config-list.js +16 -0
  29. package/dist/m365/cli/commands.js +1 -0
  30. package/dist/m365/pa/commands/app/app-permission-ensure.js +162 -0
  31. package/dist/m365/pa/commands/app/app-permission-list.js +2 -2
  32. package/dist/m365/pa/commands/app/app-permission-remove.js +153 -0
  33. package/dist/m365/pa/commands.js +2 -0
  34. package/dist/m365/planner/commands/bucket/bucket-add.js +2 -2
  35. package/dist/m365/planner/commands/bucket/bucket-get.js +2 -2
  36. package/dist/m365/planner/commands/bucket/bucket-list.js +2 -2
  37. package/dist/m365/planner/commands/bucket/bucket-remove.js +2 -2
  38. package/dist/m365/planner/commands/bucket/bucket-set.js +2 -2
  39. package/dist/m365/planner/commands/plan/plan-get.js +1 -2
  40. package/dist/m365/planner/commands/plan/plan-list.js +4 -5
  41. package/dist/m365/planner/commands/plan/plan-set.js +2 -2
  42. package/dist/m365/spfx/commands/project/project-doctor/{doctor-1.18.0-beta.1.js → doctor-1.18.0-beta.5.js} +1 -1
  43. package/dist/m365/spfx/commands/project/project-doctor.js +1 -1
  44. package/dist/m365/spfx/commands/project/project-externalize/rules/PnPJsRule.js +2 -2
  45. package/dist/m365/spfx/commands/project/project-upgrade/upgrade-1.15.2.js +1 -1
  46. package/dist/m365/spfx/commands/project/project-upgrade/{upgrade-1.18.0-beta.1.js → upgrade-1.18.0-beta.5.js} +26 -26
  47. package/dist/m365/spfx/commands/project/project-upgrade.js +1 -1
  48. package/dist/m365/spfx/commands/spfx-doctor.js +76 -106
  49. package/dist/m365/spo/commands/app/SpoAppBaseCommand.js +27 -26
  50. package/dist/m365/spo/commands/app/app-add.js +9 -9
  51. package/dist/m365/spo/commands/file/file-add.js +13 -13
  52. package/dist/m365/spo/commands/file/file-checkin.js +1 -1
  53. package/dist/m365/spo/commands/file/file-checkout.js +1 -1
  54. package/dist/m365/spo/commands/file/file-copy.js +36 -4
  55. package/dist/m365/spo/commands/file/file-list.js +4 -4
  56. package/dist/m365/spo/commands/file/file-move.js +74 -98
  57. package/dist/m365/spo/commands/file/file-remove.js +6 -6
  58. package/dist/m365/spo/commands/file/file-rename.js +2 -2
  59. package/dist/m365/spo/commands/file/file-retentionlabel-ensure.js +1 -1
  60. package/dist/m365/spo/commands/file/file-retentionlabel-remove.js +1 -1
  61. package/dist/m365/spo/commands/file/file-roleassignment-add.js +1 -1
  62. package/dist/m365/spo/commands/file/file-roleassignment-remove.js +1 -1
  63. package/dist/m365/spo/commands/file/file-roleinheritance-break.js +1 -1
  64. package/dist/m365/spo/commands/file/file-roleinheritance-reset.js +1 -1
  65. package/dist/m365/spo/commands/file/file-version-clear.js +1 -1
  66. package/dist/m365/spo/commands/file/file-version-get.js +1 -1
  67. package/dist/m365/spo/commands/file/file-version-list.js +1 -1
  68. package/dist/m365/spo/commands/file/file-version-remove.js +1 -1
  69. package/dist/m365/spo/commands/file/file-version-restore.js +1 -1
  70. package/dist/m365/spo/commands/folder/folder-add.js +2 -4
  71. package/dist/m365/spo/commands/folder/folder-copy.js +89 -45
  72. package/dist/m365/spo/commands/folder/folder-get.js +1 -1
  73. package/dist/m365/spo/commands/folder/folder-list.js +2 -2
  74. package/dist/m365/spo/commands/folder/folder-move.js +89 -47
  75. package/dist/m365/spo/commands/folder/folder-remove.js +7 -4
  76. package/dist/m365/spo/commands/folder/folder-rename.js +13 -17
  77. package/dist/m365/spo/commands/folder/folder-retentionlabel-ensure.js +1 -1
  78. package/dist/m365/spo/commands/folder/folder-retentionlabel-remove.js +1 -1
  79. package/dist/m365/spo/commands/folder/folder-roleassignment-add.js +1 -1
  80. package/dist/m365/spo/commands/folder/folder-roleassignment-remove.js +1 -1
  81. package/dist/m365/spo/commands/folder/folder-roleinheritance-break.js +1 -1
  82. package/dist/m365/spo/commands/folder/folder-roleinheritance-reset.js +1 -1
  83. package/dist/m365/spo/commands/group/group-list.js +0 -1
  84. package/dist/m365/spo/commands/navigation/navigation-node-set.js +2 -2
  85. package/dist/m365/spo/commands/orgassetslibrary/orgassetslibrary-add.js +32 -3
  86. package/dist/m365/spo/commands/propertybag/propertybag-base.js +63 -59
  87. package/dist/m365/spo/commands/propertybag/propertybag-remove.js +28 -31
  88. package/dist/m365/spo/commands/site/FlowsPolicy.js +7 -0
  89. package/dist/m365/spo/commands/site/site-ensure.js +3 -3
  90. package/dist/m365/spo/commands/site/site-hubsite-disconnect.js +22 -22
  91. package/dist/m365/spo/commands/site/site-list.js +29 -39
  92. package/dist/m365/spo/commands/site/site-set.js +60 -49
  93. package/dist/m365/spo/commands/theme/theme-list.js +1 -9
  94. package/dist/m365/spo/commands/theme/theme-remove.js +24 -24
  95. package/dist/m365/spo/commands/theme/theme-set.js +0 -1
  96. package/dist/m365/spo/commands/user/user-remove.js +27 -27
  97. package/dist/m365/spo/commands/web/web-reindex.js +35 -42
  98. package/dist/m365/spo/commands/web/web-remove.js +21 -21
  99. package/dist/m365/spo/commands/web/web-roleassignment-add.js +16 -31
  100. package/dist/m365/spo/commands/web/web-roleassignment-remove.js +33 -44
  101. package/dist/m365/spo/commands/web/web-roleinheritance-break.js +18 -18
  102. package/dist/m365/spo/commands/web/web-roleinheritance-reset.js +19 -19
  103. package/dist/m365/yammer/commands/message/message-like-set.js +27 -28
  104. package/dist/m365/yammer/commands/message/message-list.js +62 -81
  105. package/dist/m365/yammer/commands/message/message-remove.js +18 -18
  106. package/dist/m365/yammer/commands/yammer-search.js +53 -69
  107. package/dist/utils/planner.js +4 -3
  108. package/dist/utils/spo.js +13 -54
  109. package/docs/docs/cmd/aad/{o365group/o365group-add.mdx → m365group/m365group-add.mdx} +13 -13
  110. package/docs/docs/cmd/aad/{o365group/o365group-conversation-list.mdx → m365group/m365group-conversation-list.mdx} +4 -4
  111. package/docs/docs/cmd/aad/{o365group/o365group-conversation-post-list.mdx → m365group/m365group-conversation-post-list.mdx} +8 -8
  112. package/docs/docs/cmd/aad/{o365group/o365group-get.mdx → m365group/m365group-get.mdx} +6 -6
  113. package/docs/docs/cmd/aad/{o365group/o365group-list.mdx → m365group/m365group-list.mdx} +12 -29
  114. package/docs/docs/cmd/aad/{o365group/o365group-recyclebinitem-clear.mdx → m365group/m365group-recyclebinitem-clear.mdx} +5 -5
  115. package/docs/docs/cmd/aad/{o365group/o365group-recyclebinitem-list.mdx → m365group/m365group-recyclebinitem-list.mdx} +8 -8
  116. package/docs/docs/cmd/aad/{o365group/o365group-recyclebinitem-remove.mdx → m365group/m365group-recyclebinitem-remove.mdx} +6 -6
  117. package/docs/docs/cmd/aad/{o365group/o365group-recyclebinitem-restore.mdx → m365group/m365group-recyclebinitem-restore.mdx} +6 -6
  118. package/docs/docs/cmd/aad/{o365group/o365group-remove.mdx → m365group/m365group-remove.mdx} +6 -6
  119. package/docs/docs/cmd/aad/{o365group/o365group-renew.mdx → m365group/m365group-renew.mdx} +4 -4
  120. package/docs/docs/cmd/aad/{o365group/o365group-report-activitycounts.mdx → m365group/m365group-report-activitycounts.mdx} +6 -6
  121. package/docs/docs/cmd/aad/{o365group/o365group-report-activitydetail.mdx → m365group/m365group-report-activitydetail.mdx} +7 -7
  122. package/docs/docs/cmd/aad/{o365group/o365group-report-activityfilecounts.mdx → m365group/m365group-report-activityfilecounts.mdx} +6 -6
  123. package/docs/docs/cmd/aad/{o365group/o365group-report-activitygroupcounts.mdx → m365group/m365group-report-activitygroupcounts.mdx} +6 -6
  124. package/docs/docs/cmd/aad/{o365group/o365group-report-activitystorage.mdx → m365group/m365group-report-activitystorage.mdx} +6 -6
  125. package/docs/docs/cmd/aad/{o365group/o365group-set.mdx → m365group/m365group-set.mdx} +8 -8
  126. package/docs/docs/cmd/aad/{o365group/o365group-teamify.mdx → m365group/m365group-teamify.mdx} +5 -5
  127. package/docs/docs/cmd/aad/{o365group/o365group-user-add.mdx → m365group/m365group-user-add.mdx} +5 -5
  128. package/docs/docs/cmd/aad/{o365group/o365group-user-list.mdx → m365group/m365group-user-list.mdx} +7 -7
  129. package/docs/docs/cmd/aad/{o365group/o365group-user-remove.mdx → m365group/m365group-user-remove.mdx} +5 -5
  130. package/docs/docs/cmd/aad/{o365group/o365group-user-set.mdx → m365group/m365group-user-set.mdx} +5 -5
  131. package/docs/docs/cmd/aad/user/user-set.mdx +1 -1
  132. package/docs/docs/cmd/cli/config/config-list.mdx +78 -0
  133. package/docs/docs/cmd/flow/flow-enable.mdx +2 -2
  134. package/docs/docs/cmd/login.mdx +6 -0
  135. package/docs/docs/cmd/pa/app/app-permission-ensure.mdx +85 -0
  136. package/docs/docs/cmd/pa/app/app-permission-remove.mdx +74 -0
  137. package/docs/docs/cmd/planner/plan/plan-add.mdx +1 -1
  138. package/docs/docs/cmd/pp/dataverse/dataverse-table-get.mdx +2 -2
  139. package/docs/docs/cmd/pp/dataverse/dataverse-table-list.mdx +2 -2
  140. package/docs/docs/cmd/pp/dataverse/dataverse-table-remove.mdx +3 -3
  141. package/docs/docs/cmd/spo/file/file-add.mdx +1 -1
  142. package/docs/docs/cmd/spo/file/file-checkin.mdx +1 -1
  143. package/docs/docs/cmd/spo/file/file-checkout-undo.mdx +1 -9
  144. package/docs/docs/cmd/spo/file/file-checkout.mdx +1 -1
  145. package/docs/docs/cmd/spo/file/file-copy.mdx +20 -16
  146. package/docs/docs/cmd/spo/file/file-get.mdx +1 -1
  147. package/docs/docs/cmd/spo/file/file-list.mdx +2 -2
  148. package/docs/docs/cmd/spo/file/file-move.mdx +36 -18
  149. package/docs/docs/cmd/spo/file/file-remove.mdx +8 -8
  150. package/docs/docs/cmd/spo/file/file-rename.mdx +3 -3
  151. package/docs/docs/cmd/spo/file/file-retentionlabel-ensure.mdx +2 -2
  152. package/docs/docs/cmd/spo/file/file-retentionlabel-remove.mdx +3 -3
  153. package/docs/docs/cmd/spo/file/file-roleassignment-add.mdx +1 -1
  154. package/docs/docs/cmd/spo/file/file-roleassignment-remove.mdx +1 -1
  155. package/docs/docs/cmd/spo/file/file-roleinheritance-break.mdx +1 -1
  156. package/docs/docs/cmd/spo/file/file-roleinheritance-reset.mdx +1 -1
  157. package/docs/docs/cmd/spo/file/file-sharinginfo-get.mdx +1 -1
  158. package/docs/docs/cmd/spo/file/file-sharinglink-add.mdx +1 -1
  159. package/docs/docs/cmd/spo/file/file-sharinglink-clear.mdx +1 -1
  160. package/docs/docs/cmd/spo/file/file-sharinglink-get.mdx +1 -1
  161. package/docs/docs/cmd/spo/file/file-sharinglink-list.mdx +1 -1
  162. package/docs/docs/cmd/spo/file/file-sharinglink-remove.mdx +1 -1
  163. package/docs/docs/cmd/spo/file/file-sharinglink-set.mdx +1 -1
  164. package/docs/docs/cmd/spo/file/file-version-clear.mdx +1 -1
  165. package/docs/docs/cmd/spo/file/file-version-get.mdx +1 -1
  166. package/docs/docs/cmd/spo/file/file-version-list.mdx +1 -1
  167. package/docs/docs/cmd/spo/file/file-version-remove.mdx +1 -1
  168. package/docs/docs/cmd/spo/file/file-version-restore.mdx +1 -1
  169. package/docs/docs/cmd/spo/folder/folder-add.mdx +76 -1
  170. package/docs/docs/cmd/spo/folder/folder-copy.mdx +39 -12
  171. package/docs/docs/cmd/spo/folder/folder-get.mdx +1 -1
  172. package/docs/docs/cmd/spo/folder/folder-list.mdx +1 -1
  173. package/docs/docs/cmd/spo/folder/folder-move.mdx +40 -13
  174. package/docs/docs/cmd/spo/folder/folder-remove.mdx +1 -1
  175. package/docs/docs/cmd/spo/folder/folder-rename.mdx +5 -1
  176. package/docs/docs/cmd/spo/folder/folder-retentionlabel-ensure.mdx +1 -1
  177. package/docs/docs/cmd/spo/folder/folder-retentionlabel-remove.mdx +1 -1
  178. package/docs/docs/cmd/spo/folder/folder-roleassignment-add.mdx +2 -2
  179. package/docs/docs/cmd/spo/folder/folder-roleassignment-remove.mdx +1 -1
  180. package/docs/docs/cmd/spo/folder/folder-roleinheritance-break.mdx +1 -1
  181. package/docs/docs/cmd/spo/folder/folder-roleinheritance-reset.mdx +1 -1
  182. package/docs/docs/cmd/spo/listitem/listitem-attachment-list.mdx +1 -1
  183. package/docs/docs/cmd/spo/orgassetslibrary/orgassetslibrary-add.mdx +14 -1
  184. package/docs/docs/cmd/spo/site/site-add.mdx +1 -1
  185. package/docs/docs/cmd/spo/site/site-ensure.mdx +1 -1
  186. package/docs/docs/cmd/spo/tenant/tenant-applicationcustomizer-add.mdx +1 -1
  187. package/docs/docs/cmd/spo/tenant/tenant-applicationcustomizer-list.mdx +1 -1
  188. package/docs/docs/cmd/spo/tenant/tenant-applicationcustomizer-remove.mdx +1 -1
  189. package/docs/docs/cmd/spo/tenant/tenant-commandset-add.mdx +1 -1
  190. package/docs/docs/cmd/spo/tenant/tenant-commandset-remove.mdx +1 -1
  191. package/docs/docs/cmd/spo/tenant/tenant-commandset-set.mdx +1 -1
  192. package/docs/docs/cmd/teams/team/team-add.mdx +1 -1
  193. package/docs/docs/cmd/yammer/network/network-list.mdx +1 -1
  194. package/npm-shrinkwrap.json +143 -89
  195. package/package.json +13 -13
  196. /package/dist/m365/aad/commands/{o365group → m365group}/GroupExtended.js +0 -0
@@ -12,11 +12,12 @@ import { formatting } from '../../../../utils/formatting.js';
12
12
  import { spo } from '../../../../utils/spo.js';
13
13
  import { urlUtil } from '../../../../utils/urlUtil.js';
14
14
  import { validation } from '../../../../utils/validation.js';
15
- import aadO365GroupSetCommand from '../../../aad/commands/o365group/o365group-set.js';
15
+ import aadM365GroupSetCommand from '../../../aad/commands/m365group/m365group-set.js';
16
16
  import SpoCommand from '../../../base/SpoCommand.js';
17
17
  import commands from '../../commands.js';
18
18
  import { SharingCapabilities } from '../site/SharingCapabilities.js';
19
19
  import spoSiteDesignApplyCommand from '../sitedesign/sitedesign-apply.js';
20
+ import { FlowsPolicy } from './FlowsPolicy.js';
20
21
  class SpoSiteSetCommand extends SpoCommand {
21
22
  get name() {
22
23
  return commands.SITE_SET;
@@ -238,7 +239,7 @@ class SpoSiteSetCommand extends SpoCommand {
238
239
  debug: this.debug,
239
240
  verbose: this.verbose
240
241
  };
241
- promises.push(Cli.executeCommand(aadO365GroupSetCommand, { options: { ...commandOptions, _: [] } }));
242
+ promises.push(Cli.executeCommand(aadM365GroupSetCommand, { options: { ...commandOptions, _: [] } }));
242
243
  }
243
244
  if (args.options.description) {
244
245
  promises.push(this.setGroupifiedSiteDescription(args.options.description));
@@ -296,12 +297,11 @@ class SpoSiteSetCommand extends SpoCommand {
296
297
  }));
297
298
  });
298
299
  }
299
- updateSiteProperties(logger, args) {
300
+ async updateSiteProperties(logger, args) {
300
301
  const isGroupConnectedSite = this.isGroupConnectedSite();
301
302
  const sharedProperties = ['classification', 'disableFlows', 'socialBarOnSitePagesDisabled', 'shareByEmailEnabled', 'sharingCapability', 'noScriptSite'];
302
303
  const siteProperties = ['title', 'resourceQuota', 'resourceQuotaWarningLevel', 'storageQuota', 'storageQuotaWarningLevel', 'allowSelfServiceUpgrade'];
303
304
  let properties = sharedProperties;
304
- properties = properties;
305
305
  if (!isGroupConnectedSite) {
306
306
  properties = properties.concat(siteProperties);
307
307
  }
@@ -315,55 +315,65 @@ class SpoSiteSetCommand extends SpoCommand {
315
315
  if (!updatedProperties) {
316
316
  return Promise.resolve(undefined);
317
317
  }
318
- return spo
319
- .ensureFormDigest(this.spoAdminUrl, logger, this.context, this.debug)
320
- .then(async (res) => {
321
- this.context = res;
322
- if (this.verbose) {
323
- await logger.logToStderr(`Updating site ${args.options.url} properties...`);
324
- }
325
- let propertyId = 27;
326
- const payload = [];
327
- if (!isGroupConnectedSite) {
328
- if (args.options.title) {
329
- payload.push(`<SetProperty Id="${propertyId++}" ObjectPathId="5" Name="Title"><Parameter Type="String">${formatting.escapeXml(args.options.title)}</Parameter></SetProperty>`);
330
- }
331
- if (args.options.resourceQuota) {
332
- payload.push(`<SetProperty Id="${propertyId++}" ObjectPathId="5" Name="UserCodeMaximumLevel"><Parameter Type="Double">${args.options.resourceQuota}</Parameter></SetProperty>`);
333
- }
334
- if (args.options.resourceQuotaWarningLevel) {
335
- payload.push(`<SetProperty Id="${propertyId++}" ObjectPathId="5" Name="UserCodeWarningLevel"><Parameter Type="Double">${args.options.resourceQuotaWarningLevel}</Parameter></SetProperty>`);
336
- }
337
- if (args.options.storageQuota) {
338
- payload.push(`<SetProperty Id="${propertyId++}" ObjectPathId="5" Name="StorageMaximumLevel"><Parameter Type="Int64">${args.options.storageQuota}</Parameter></SetProperty>`);
339
- }
340
- if (args.options.storageQuotaWarningLevel) {
341
- payload.push(`<SetProperty Id="${propertyId++}" ObjectPathId="5" Name="StorageWarningLevel"><Parameter Type="Int64">${args.options.storageQuotaWarningLevel}</Parameter></SetProperty>`);
342
- }
343
- if (typeof args.options.allowSelfServiceUpgrade !== 'undefined') {
344
- payload.push(`<SetProperty Id="${propertyId++}" ObjectPathId="5" Name="AllowSelfServiceUpgrade"><Parameter Type="Boolean">${args.options.allowSelfServiceUpgrade}</Parameter></SetProperty>`);
345
- }
346
- }
347
- if (typeof args.options.classification === 'string') {
348
- payload.push(`<SetProperty Id="${propertyId++}" ObjectPathId="5" Name="Classification"><Parameter Type="String">${formatting.escapeXml(args.options.classification)}</Parameter></SetProperty>`);
318
+ const res = await spo.ensureFormDigest(this.spoAdminUrl, logger, this.context, this.debug);
319
+ this.context = res;
320
+ if (this.verbose) {
321
+ await logger.logToStderr(`Updating site ${args.options.url} properties...`);
322
+ }
323
+ let propertyId = 27;
324
+ const payload = [];
325
+ const sitePropertiesPayload = [];
326
+ if (!isGroupConnectedSite) {
327
+ if (args.options.title) {
328
+ payload.push(`<SetProperty Id="${propertyId++}" ObjectPathId="5" Name="Title"><Parameter Type="String">${formatting.escapeXml(args.options.title)}</Parameter></SetProperty>`);
349
329
  }
350
- if (typeof args.options.disableFlows !== 'undefined') {
351
- payload.push(`<SetProperty Id="${propertyId++}" ObjectPathId="5" Name="DisableFlows"><Parameter Type="Boolean">${args.options.disableFlows}</Parameter></SetProperty>`);
330
+ if (args.options.resourceQuota) {
331
+ payload.push(`<SetProperty Id="${propertyId++}" ObjectPathId="5" Name="UserCodeMaximumLevel"><Parameter Type="Double">${args.options.resourceQuota}</Parameter></SetProperty>`);
352
332
  }
353
- if (typeof args.options.socialBarOnSitePagesDisabled !== 'undefined') {
354
- payload.push(`<SetProperty Id="${propertyId++}" ObjectPathId="5" Name="SocialBarOnSitePagesDisabled"><Parameter Type="Boolean">${args.options.socialBarOnSitePagesDisabled}</Parameter></SetProperty>`);
333
+ if (args.options.resourceQuotaWarningLevel) {
334
+ payload.push(`<SetProperty Id="${propertyId++}" ObjectPathId="5" Name="UserCodeWarningLevel"><Parameter Type="Double">${args.options.resourceQuotaWarningLevel}</Parameter></SetProperty>`);
355
335
  }
356
- if (typeof args.options.shareByEmailEnabled !== 'undefined') {
357
- payload.push(`<SetProperty Id="${propertyId++}" ObjectPathId="5" Name="ShareByEmailEnabled"><Parameter Type="Boolean">${args.options.shareByEmailEnabled}</Parameter></SetProperty>`);
336
+ if (args.options.storageQuota) {
337
+ payload.push(`<SetProperty Id="${propertyId++}" ObjectPathId="5" Name="StorageMaximumLevel"><Parameter Type="Int64">${args.options.storageQuota}</Parameter></SetProperty>`);
358
338
  }
359
- if (args.options.sharingCapability) {
360
- const sharingCapability = SharingCapabilities[args.options.sharingCapability];
361
- payload.push(`<SetProperty Id="${propertyId++}" ObjectPathId="5" Name="SharingCapability"><Parameter Type="Enum">${sharingCapability}</Parameter></SetProperty>`);
339
+ if (args.options.storageQuotaWarningLevel) {
340
+ payload.push(`<SetProperty Id="${propertyId++}" ObjectPathId="5" Name="StorageWarningLevel"><Parameter Type="Int64">${args.options.storageQuotaWarningLevel}</Parameter></SetProperty>`);
362
341
  }
363
- if (typeof args.options.noScriptSite !== 'undefined') {
364
- const noScriptSite = args.options.noScriptSite ? 2 : 1;
365
- payload.push(`<SetProperty Id="${propertyId++}" ObjectPathId="5" Name="DenyAddAndCustomizePages"><Parameter Type="Enum">${noScriptSite}</Parameter></SetProperty>`);
342
+ if (args.options.allowSelfServiceUpgrade !== undefined) {
343
+ payload.push(`<SetProperty Id="${propertyId++}" ObjectPathId="5" Name="AllowSelfServiceUpgrade"><Parameter Type="Boolean">${args.options.allowSelfServiceUpgrade}</Parameter></SetProperty>`);
366
344
  }
345
+ }
346
+ if (typeof args.options.classification === 'string') {
347
+ sitePropertiesPayload.push(`<SetProperty Id="${propertyId++}" ObjectPathId="5" Name="Classification"><Parameter Type="String">${formatting.escapeXml(args.options.classification)}</Parameter></SetProperty>`);
348
+ }
349
+ if (args.options.disableFlows !== undefined) {
350
+ const flowsPolicy = args.options.disableFlows ? FlowsPolicy.Disabled : FlowsPolicy.Enabled;
351
+ payload.push(`<SetProperty Id="${propertyId++}" ObjectPathId="5" Name="DisableFlows"><Parameter Type="Enum">${flowsPolicy}</Parameter></SetProperty>`);
352
+ }
353
+ if (args.options.shareByEmailEnabled !== undefined) {
354
+ sitePropertiesPayload.push(`<SetProperty Id="${propertyId++}" ObjectPathId="5" Name="ShareByEmailEnabled"><Parameter Type="Boolean">${args.options.shareByEmailEnabled}</Parameter></SetProperty>`);
355
+ }
356
+ if (args.options.sharingCapability) {
357
+ const sharingCapability = SharingCapabilities[args.options.sharingCapability];
358
+ payload.push(`<SetProperty Id="${propertyId++}" ObjectPathId="5" Name="SharingCapability"><Parameter Type="Enum">${sharingCapability}</Parameter></SetProperty>`);
359
+ }
360
+ if (args.options.noScriptSite !== undefined) {
361
+ const noScriptSite = args.options.noScriptSite ? 2 : 1;
362
+ payload.push(`<SetProperty Id="${propertyId++}" ObjectPathId="5" Name="DenyAddAndCustomizePages"><Parameter Type="Enum">${noScriptSite}</Parameter></SetProperty>`);
363
+ }
364
+ let response;
365
+ let sitePropertiesResponse;
366
+ if (sitePropertiesPayload.length > 0) {
367
+ const requestOptions = {
368
+ url: `${args.options.url}/_vti_bin/client.svc/ProcessQuery`,
369
+ headers: {
370
+ 'X-RequestDigest': res.FormDigestValue
371
+ },
372
+ data: `<Request AddExpandoFieldTypeSuffix="true" SchemaVersion="15.0.0.0" LibraryVersion="16.0.0.0" ApplicationName="${config.applicationName}" xmlns="http://schemas.microsoft.com/sharepoint/clientquery/2009"><Actions>${sitePropertiesPayload.join('')}</Actions><ObjectPaths><StaticProperty Id="1" TypeId="{3747adcd-a3c3-41b9-bfab-4a64dd2f1e0a}" Name="Current" /><Property Id="5" ParentId="1" Name="Site" /></ObjectPaths></Request>`
373
+ };
374
+ sitePropertiesResponse = await request.post(requestOptions);
375
+ }
376
+ if (payload.length > 0) {
367
377
  const pos = this.tenantId.indexOf('|') + 1;
368
378
  const requestOptions = {
369
379
  url: `${this.spoAdminUrl}/_vti_bin/client.svc/ProcessQuery`,
@@ -372,8 +382,9 @@ class SpoSiteSetCommand extends SpoCommand {
372
382
  },
373
383
  data: `<Request AddExpandoFieldTypeSuffix="true" SchemaVersion="15.0.0.0" LibraryVersion="16.0.0.0" ApplicationName="${config.applicationName}" xmlns="http://schemas.microsoft.com/sharepoint/clientquery/2009"><Actions>${payload.join('')}<ObjectPath Id="14" ObjectPathId="13" /><ObjectIdentityQuery Id="15" ObjectPathId="5" /><Query Id="16" ObjectPathId="13"><Query SelectAllProperties="false"><Properties><Property Name="IsComplete" ScalarProperty="true" /><Property Name="PollingInterval" ScalarProperty="true" /></Properties></Query></Query></Actions><ObjectPaths><Identity Id="5" Name="53d8499e-d0d2-5000-cb83-9ade5be42ca4|${this.tenantId.substr(pos, this.tenantId.indexOf('&') - pos)}&#xA;SiteProperties&#xA;${formatting.encodeQueryParameter(args.options.url)}" /><Method Id="13" ParentId="5" Name="Update" /></ObjectPaths></Request>`
374
384
  };
375
- return request.post(requestOptions);
376
- });
385
+ response = await request.post(requestOptions);
386
+ }
387
+ return response || sitePropertiesResponse;
377
388
  }
378
389
  applySiteDesign(logger, args) {
379
390
  if (typeof args.options.siteDesignId === 'undefined') {
@@ -26,15 +26,7 @@ class SpoThemeListCommand extends SpoCommand {
26
26
  responseType: 'json'
27
27
  };
28
28
  const rawRes = await request.post(requestOptions);
29
- const themePreviews = rawRes.themePreviews;
30
- if (themePreviews && themePreviews.length > 0) {
31
- await logger.log(themePreviews);
32
- }
33
- else {
34
- if (this.verbose) {
35
- await logger.logToStderr('No themes found');
36
- }
37
- }
29
+ await logger.log(rawRes.themePreviews);
38
30
  }
39
31
  catch (err) {
40
32
  this.handleRejectedODataJsonPromise(err);
@@ -23,30 +23,8 @@ class SpoThemeRemoveCommand extends SpoCommand {
23
23
  __classPrivateFieldGet(this, _SpoThemeRemoveCommand_instances, "m", _SpoThemeRemoveCommand_initOptions).call(this);
24
24
  }
25
25
  async commandAction(logger, args) {
26
- const removeTheme = async () => {
27
- try {
28
- const spoAdminUrl = await spo.getSpoAdminUrl(logger, this.debug);
29
- if (this.verbose) {
30
- await logger.logToStderr(`Removing theme from tenant...`);
31
- }
32
- const requestOptions = {
33
- url: `${spoAdminUrl}/_api/thememanager/DeleteTenantTheme`,
34
- headers: {
35
- 'accept': 'application/json;odata=nometadata'
36
- },
37
- data: {
38
- name: args.options.name
39
- },
40
- responseType: 'json'
41
- };
42
- await request.post(requestOptions);
43
- }
44
- catch (err) {
45
- this.handleRejectedODataJsonPromise(err);
46
- }
47
- };
48
26
  if (args.options.force) {
49
- await removeTheme();
27
+ await this.removeTheme(logger, args.options);
50
28
  }
51
29
  else {
52
30
  const result = await Cli.prompt({
@@ -56,8 +34,30 @@ class SpoThemeRemoveCommand extends SpoCommand {
56
34
  message: `Are you sure you want to remove the theme`
57
35
  });
58
36
  if (result.continue) {
59
- await removeTheme();
37
+ await this.removeTheme(logger, args.options);
38
+ }
39
+ }
40
+ }
41
+ async removeTheme(logger, options) {
42
+ try {
43
+ const spoAdminUrl = await spo.getSpoAdminUrl(logger, this.debug);
44
+ if (this.verbose) {
45
+ await logger.logToStderr(`Removing theme from tenant...`);
60
46
  }
47
+ const requestOptions = {
48
+ url: `${spoAdminUrl}/_api/thememanager/DeleteTenantTheme`,
49
+ headers: {
50
+ 'accept': 'application/json;odata=nometadata'
51
+ },
52
+ data: {
53
+ name: options.name
54
+ },
55
+ responseType: 'json'
56
+ };
57
+ await request.post(requestOptions);
58
+ }
59
+ catch (err) {
60
+ this.handleRejectedODataJsonPromise(err);
61
61
  }
62
62
  }
63
63
  }
@@ -49,7 +49,6 @@ class SpoThemeSetCommand extends SpoCommand {
49
49
  if (contents && contents.ErrorInfo) {
50
50
  throw contents.ErrorInfo.ErrorMessage || 'ClientSvc unknown error';
51
51
  }
52
- return Promise.resolve();
53
52
  }
54
53
  catch (err) {
55
54
  this.handleRejectedPromise(err);
@@ -26,33 +26,8 @@ class SpoUserRemoveCommand extends SpoCommand {
26
26
  __classPrivateFieldGet(this, _SpoUserRemoveCommand_instances, "m", _SpoUserRemoveCommand_initOptionSets).call(this);
27
27
  }
28
28
  async commandAction(logger, args) {
29
- const removeUser = async () => {
30
- if (this.verbose) {
31
- await logger.logToStderr(`Removing user from subsite ${args.options.webUrl} ...`);
32
- }
33
- let requestUrl = '';
34
- if (args.options.id) {
35
- requestUrl = `${encodeURI(args.options.webUrl)}/_api/web/siteusers/removebyid(${args.options.id})`;
36
- }
37
- if (args.options.loginName) {
38
- requestUrl = `${encodeURI(args.options.webUrl)}/_api/web/siteusers/removeByLoginName('${formatting.encodeQueryParameter(args.options.loginName)}')`;
39
- }
40
- const requestOptions = {
41
- url: requestUrl,
42
- headers: {
43
- accept: 'application/json;odata=nometadata'
44
- },
45
- responseType: 'json'
46
- };
47
- try {
48
- await request.post(requestOptions);
49
- }
50
- catch (err) {
51
- this.handleRejectedODataJsonPromise(err);
52
- }
53
- };
54
29
  if (args.options.force) {
55
- await removeUser();
30
+ await this.removeUser(logger, args.options);
56
31
  }
57
32
  else {
58
33
  const result = await Cli.prompt({
@@ -62,10 +37,35 @@ class SpoUserRemoveCommand extends SpoCommand {
62
37
  message: `Are you sure you want to remove specified user from the site ${args.options.webUrl}`
63
38
  });
64
39
  if (result.continue) {
65
- await removeUser();
40
+ await this.removeUser(logger, args.options);
66
41
  }
67
42
  }
68
43
  }
44
+ async removeUser(logger, options) {
45
+ if (this.verbose) {
46
+ await logger.logToStderr(`Removing user from subsite ${options.webUrl} ...`);
47
+ }
48
+ let requestUrl = `${encodeURI(options.webUrl)}/_api/web/siteusers/`;
49
+ if (options.id) {
50
+ requestUrl += `removebyid(${options.id})`;
51
+ }
52
+ else if (options.loginName) {
53
+ requestUrl += `removeByLoginName('${formatting.encodeQueryParameter(options.loginName)}')`;
54
+ }
55
+ const requestOptions = {
56
+ url: requestUrl,
57
+ headers: {
58
+ accept: 'application/json;odata=nometadata'
59
+ },
60
+ responseType: 'json'
61
+ };
62
+ try {
63
+ await request.post(requestOptions);
64
+ }
65
+ catch (err) {
66
+ this.handleRejectedODataJsonPromise(err);
67
+ }
68
+ }
69
69
  }
70
70
  _SpoUserRemoveCommand_instances = new WeakSet(), _SpoUserRemoveCommand_initTelemetry = function _SpoUserRemoveCommand_initTelemetry() {
71
71
  this.telemetry.push((args) => {
@@ -66,50 +66,43 @@ class SpoWebReindexCommand extends SpoCommand {
66
66
  this.handleRejectedPromise(err);
67
67
  }
68
68
  }
69
- reindexLists(webUrl, requestDigest, logger, webIdentityResp) {
70
- return new Promise((resolve, reject) => {
71
- (async () => {
72
- if (this.debug) {
73
- await logger.logToStderr(`Retrieving information about lists...`);
74
- }
75
- const requestOptions = {
76
- url: `${webUrl}/_api/web/lists?$select=NoCrawl,Title,RootFolder/Properties,RootFolder/ServerRelativeUrl&$expand=RootFolder/Properties`,
77
- headers: {
78
- 'accept': 'application/json;odata=nometadata'
79
- },
80
- responseType: 'json'
81
- };
82
- return request.get(requestOptions);
83
- })()
84
- .then((lists) => {
85
- const promises = lists.value.map(l => this.reindexList(l, webUrl, requestDigest, webIdentityResp, logger));
86
- return Promise.all(promises);
87
- })
88
- .then(() => {
89
- resolve();
90
- }, (err) => reject(err));
91
- });
69
+ async reindexLists(webUrl, requestDigest, logger, webIdentityResp) {
70
+ try {
71
+ if (this.debug) {
72
+ await logger.logToStderr(`Retrieving information about lists...`);
73
+ }
74
+ const requestOptions = {
75
+ url: `${webUrl}/_api/web/lists?$select=NoCrawl,Title,RootFolder/Properties,RootFolder/ServerRelativeUrl&$expand=RootFolder/Properties`,
76
+ headers: {
77
+ 'accept': 'application/json;odata=nometadata'
78
+ },
79
+ responseType: 'json'
80
+ };
81
+ const lists = await request.get(requestOptions);
82
+ const promises = lists.value.map(l => this.reindexList(l, webUrl, requestDigest, webIdentityResp, logger));
83
+ await Promise.all(promises);
84
+ }
85
+ catch (err) {
86
+ throw err;
87
+ }
92
88
  }
93
- reindexList(list, webUrl, requestDigest, webIdentityResp, logger) {
94
- return new Promise(async (resolve, reject) => {
95
- if (list.NoCrawl) {
96
- if (this.debug) {
97
- await logger.logToStderr(`List ${list.Title} is excluded from crawling`);
98
- }
99
- resolve();
100
- return;
89
+ async reindexList(list, webUrl, requestDigest, webIdentityResp, logger) {
90
+ if (list.NoCrawl) {
91
+ if (this.debug) {
92
+ await logger.logToStderr(`List ${list.Title} is excluded from crawling`);
101
93
  }
102
- spo
103
- .getFolderIdentity(webIdentityResp.objectIdentity, webUrl, list.RootFolder.ServerRelativeUrl, requestDigest)
104
- .then((folderIdentityResp) => {
105
- let searchversion = list.RootFolder.Properties.vti_x005f_searchversion || 0;
106
- searchversion++;
107
- return SpoPropertyBagBaseCommand.setProperty('vti_searchversion', searchversion.toString(), webUrl, requestDigest, folderIdentityResp, logger, this.debug, list.RootFolder.ServerRelativeUrl);
108
- })
109
- .then(() => {
110
- resolve();
111
- }, (err) => reject(err));
112
- });
94
+ return;
95
+ }
96
+ try {
97
+ const folderIdentityResp = await spo.getFolderIdentity(webIdentityResp.objectIdentity, webUrl, list.RootFolder.ServerRelativeUrl, requestDigest);
98
+ let searchversion = list.RootFolder.Properties.vti_x005f_searchversion || 0;
99
+ searchversion++;
100
+ await SpoPropertyBagBaseCommand.setProperty('vti_searchversion', searchversion.toString(), webUrl, requestDigest, folderIdentityResp, logger, this.debug, list.RootFolder.ServerRelativeUrl);
101
+ return;
102
+ }
103
+ catch (err) {
104
+ throw (err);
105
+ }
113
106
  }
114
107
  }
115
108
  _SpoWebReindexCommand_instances = new WeakSet(), _SpoWebReindexCommand_initOptions = function _SpoWebReindexCommand_initOptions() {
@@ -24,27 +24,8 @@ class SpoWebRemoveCommand extends SpoCommand {
24
24
  __classPrivateFieldGet(this, _SpoWebRemoveCommand_instances, "m", _SpoWebRemoveCommand_initValidators).call(this);
25
25
  }
26
26
  async commandAction(logger, args) {
27
- const removeWeb = async () => {
28
- const requestOptions = {
29
- url: `${encodeURI(args.options.url)}/_api/web`,
30
- headers: {
31
- accept: 'application/json;odata=nometadata',
32
- 'X-HTTP-Method': 'DELETE'
33
- },
34
- responseType: 'json'
35
- };
36
- if (this.verbose) {
37
- await logger.logToStderr(`Deleting subsite ${args.options.url} ...`);
38
- }
39
- try {
40
- await request.post(requestOptions);
41
- }
42
- catch (err) {
43
- this.handleRejectedODataJsonPromise(err);
44
- }
45
- };
46
27
  if (args.options.force) {
47
- await removeWeb();
28
+ await this.removeWeb(logger, args.options.url);
48
29
  }
49
30
  else {
50
31
  const result = await Cli.prompt({
@@ -54,10 +35,29 @@ class SpoWebRemoveCommand extends SpoCommand {
54
35
  message: `Are you sure you want to remove the subsite ${args.options.url}`
55
36
  });
56
37
  if (result.continue) {
57
- await removeWeb();
38
+ await this.removeWeb(logger, args.options.url);
58
39
  }
59
40
  }
60
41
  }
42
+ async removeWeb(logger, url) {
43
+ const requestOptions = {
44
+ url: `${encodeURI(url)}/_api/web`,
45
+ headers: {
46
+ accept: 'application/json;odata=nometadata',
47
+ 'X-HTTP-Method': 'DELETE'
48
+ },
49
+ responseType: 'json'
50
+ };
51
+ if (this.verbose) {
52
+ await logger.logToStderr(`Deleting subsite ${url} ...`);
53
+ }
54
+ try {
55
+ await request.post(requestOptions);
56
+ }
57
+ catch (err) {
58
+ this.handleRejectedODataJsonPromise(err);
59
+ }
60
+ }
61
61
  }
62
62
  _SpoWebRemoveCommand_instances = new WeakSet(), _SpoWebRemoveCommand_initTelemetry = function _SpoWebRemoveCommand_initTelemetry() {
63
63
  this.telemetry.push((args) => {
@@ -49,7 +49,7 @@ class SpoWebRoleAssignmentAddCommand extends SpoCommand {
49
49
  this.handleRejectedODataJsonPromise(err);
50
50
  }
51
51
  }
52
- addRoleAssignment(logger, options) {
52
+ async addRoleAssignment(logger, options) {
53
53
  const requestOptions = {
54
54
  url: `${options.webUrl}/_api/web/roleassignments/addroleassignment(principalid='${options.principalId}',roledefid='${options.roleDefinitionId}')`,
55
55
  method: 'POST',
@@ -59,14 +59,11 @@ class SpoWebRoleAssignmentAddCommand extends SpoCommand {
59
59
  },
60
60
  responseType: 'json'
61
61
  };
62
- return request
63
- .post(requestOptions)
64
- .then(_ => Promise.resolve())
65
- .catch((err) => Promise.reject(err));
62
+ await request.post(requestOptions);
66
63
  }
67
- getRoleDefinitionId(options) {
64
+ async getRoleDefinitionId(options) {
68
65
  if (!options.roleDefinitionName) {
69
- return Promise.resolve(options.roleDefinitionId);
66
+ return options.roleDefinitionId;
70
67
  }
71
68
  const roleDefinitionListCommandOptions = {
72
69
  webUrl: options.webUrl,
@@ -74,16 +71,12 @@ class SpoWebRoleAssignmentAddCommand extends SpoCommand {
74
71
  debug: this.debug,
75
72
  verbose: this.verbose
76
73
  };
77
- return Cli.executeCommandWithOutput(spoRoleDefinitionListCommand, { options: { ...roleDefinitionListCommandOptions, _: [] } })
78
- .then((output) => {
79
- const getRoleDefinitionListOutput = JSON.parse(output.stdout);
80
- const roleDefinitionId = getRoleDefinitionListOutput.find((role) => role.Name === options.roleDefinitionName).Id;
81
- return Promise.resolve(roleDefinitionId);
82
- }, (err) => {
83
- return Promise.reject(err);
84
- });
74
+ const output = await Cli.executeCommandWithOutput(spoRoleDefinitionListCommand, { options: { ...roleDefinitionListCommandOptions, _: [] } });
75
+ const getRoleDefinitionListOutput = JSON.parse(output.stdout);
76
+ const roleDefinitionId = getRoleDefinitionListOutput.find((role) => role.Name === options.roleDefinitionName).Id;
77
+ return roleDefinitionId;
85
78
  }
86
- getGroupPrincipalId(options) {
79
+ async getGroupPrincipalId(options) {
87
80
  const groupGetCommandOptions = {
88
81
  webUrl: options.webUrl,
89
82
  name: options.groupName,
@@ -91,15 +84,11 @@ class SpoWebRoleAssignmentAddCommand extends SpoCommand {
91
84
  debug: this.debug,
92
85
  verbose: this.verbose
93
86
  };
94
- return Cli.executeCommandWithOutput(spoGroupGetCommand, { options: { ...groupGetCommandOptions, _: [] } })
95
- .then((output) => {
96
- const getGroupOutput = JSON.parse(output.stdout);
97
- return Promise.resolve(getGroupOutput.Id);
98
- }, (err) => {
99
- return Promise.reject(err);
100
- });
87
+ const output = await Cli.executeCommandWithOutput(spoGroupGetCommand, { options: { ...groupGetCommandOptions, _: [] } });
88
+ const getGroupOutput = JSON.parse(output.stdout);
89
+ return getGroupOutput.Id;
101
90
  }
102
- getUserPrincipalId(options) {
91
+ async getUserPrincipalId(options) {
103
92
  const userGetCommandOptions = {
104
93
  webUrl: options.webUrl,
105
94
  email: options.upn,
@@ -108,13 +97,9 @@ class SpoWebRoleAssignmentAddCommand extends SpoCommand {
108
97
  debug: this.debug,
109
98
  verbose: this.verbose
110
99
  };
111
- return Cli.executeCommandWithOutput(spoUserGetCommand, { options: { ...userGetCommandOptions, _: [] } })
112
- .then((output) => {
113
- const getUserOutput = JSON.parse(output.stdout);
114
- return Promise.resolve(getUserOutput.Id);
115
- }, (err) => {
116
- return Promise.reject(err);
117
- });
100
+ const output = await Cli.executeCommandWithOutput(spoUserGetCommand, { options: { ...userGetCommandOptions, _: [] } });
101
+ const getUserOutput = JSON.parse(output.stdout);
102
+ return getUserOutput.Id;
118
103
  }
119
104
  }
120
105
  _SpoWebRoleAssignmentAddCommand_instances = new WeakSet(), _SpoWebRoleAssignmentAddCommand_initTelemetry = function _SpoWebRoleAssignmentAddCommand_initTelemetry() {