@pnp/cli-microsoft365 6.11.0-beta.ee225fb → 6.11.0

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 (136) hide show
  1. package/dist/Auth.js +2 -1
  2. package/dist/Command.js +1 -1
  3. package/dist/m365/pa/commands/app/app-permission-ensure.js +177 -0
  4. package/dist/m365/pa/commands/app/app-permission-remove.js +170 -0
  5. package/dist/m365/pa/commands.js +2 -0
  6. package/dist/m365/planner/commands/task/task-add.js +17 -11
  7. package/dist/m365/planner/commands/task/task-get.js +35 -25
  8. package/dist/m365/planner/commands/task/task-list.js +26 -19
  9. package/dist/m365/planner/commands/task/task-remove.js +40 -35
  10. package/dist/m365/planner/commands/task/task-set.js +35 -23
  11. package/dist/m365/spfx/commands/project/DeployWorkflow.js +58 -0
  12. package/dist/m365/spfx/commands/project/project-doctor/{doctor-1.18.0-beta.1.js → doctor-1.18.0-beta.5.js} +1 -1
  13. package/dist/m365/spfx/commands/project/project-doctor.js +1 -1
  14. package/dist/m365/spfx/commands/project/project-externalize/rules/PnPJsRule.js +34 -23
  15. package/dist/m365/spfx/commands/project/project-github-workflow-add.js +171 -0
  16. package/dist/m365/spfx/commands/project/project-github-workflow-model.js +3 -0
  17. package/dist/m365/spfx/commands/project/project-upgrade/upgrade-1.15.2.js +1 -1
  18. package/dist/m365/spfx/commands/project/project-upgrade/{upgrade-1.18.0-beta.1.js → upgrade-1.18.0-beta.5.js} +26 -26
  19. package/dist/m365/spfx/commands/project/project-upgrade.js +1 -1
  20. package/dist/m365/spfx/commands/spfx-doctor.js +35 -51
  21. package/dist/m365/spfx/commands.js +1 -0
  22. package/dist/m365/spo/commands/app/SpoAppBaseCommand.js +26 -14
  23. package/dist/m365/spo/commands/app/app-add.js +9 -9
  24. package/dist/m365/spo/commands/file/file-add.js +13 -13
  25. package/dist/m365/spo/commands/file/file-checkin.js +1 -1
  26. package/dist/m365/spo/commands/file/file-checkout.js +1 -1
  27. package/dist/m365/spo/commands/file/file-copy.js +38 -4
  28. package/dist/m365/spo/commands/file/file-list.js +4 -4
  29. package/dist/m365/spo/commands/file/file-move.js +2 -2
  30. package/dist/m365/spo/commands/file/file-remove.js +6 -6
  31. package/dist/m365/spo/commands/file/file-rename.js +2 -2
  32. package/dist/m365/spo/commands/file/file-retentionlabel-ensure.js +1 -1
  33. package/dist/m365/spo/commands/file/file-retentionlabel-remove.js +1 -1
  34. package/dist/m365/spo/commands/file/file-roleassignment-add.js +1 -1
  35. package/dist/m365/spo/commands/file/file-roleassignment-remove.js +1 -1
  36. package/dist/m365/spo/commands/file/file-roleinheritance-break.js +1 -1
  37. package/dist/m365/spo/commands/file/file-roleinheritance-reset.js +1 -1
  38. package/dist/m365/spo/commands/file/file-version-clear.js +1 -1
  39. package/dist/m365/spo/commands/file/file-version-get.js +1 -1
  40. package/dist/m365/spo/commands/file/file-version-list.js +1 -1
  41. package/dist/m365/spo/commands/file/file-version-remove.js +1 -1
  42. package/dist/m365/spo/commands/file/file-version-restore.js +1 -1
  43. package/dist/m365/spo/commands/folder/folder-add.js +2 -4
  44. package/dist/m365/spo/commands/folder/folder-get.js +1 -1
  45. package/dist/m365/spo/commands/folder/folder-list.js +2 -2
  46. package/dist/m365/spo/commands/folder/folder-remove.js +7 -4
  47. package/dist/m365/spo/commands/folder/folder-rename.js +13 -17
  48. package/dist/m365/spo/commands/folder/folder-retentionlabel-ensure.js +1 -1
  49. package/dist/m365/spo/commands/folder/folder-retentionlabel-remove.js +1 -1
  50. package/dist/m365/spo/commands/folder/folder-roleassignment-add.js +1 -1
  51. package/dist/m365/spo/commands/folder/folder-roleassignment-remove.js +1 -1
  52. package/dist/m365/spo/commands/folder/folder-roleinheritance-break.js +1 -1
  53. package/dist/m365/spo/commands/folder/folder-roleinheritance-reset.js +1 -1
  54. package/dist/m365/spo/commands/group/group-list.js +0 -1
  55. package/dist/m365/spo/commands/orgassetslibrary/orgassetslibrary-add.js +32 -3
  56. package/dist/m365/spo/commands/page/Page.js +24 -32
  57. package/dist/m365/spo/commands/propertybag/propertybag-base.js +75 -54
  58. package/dist/m365/spo/commands/propertybag/propertybag-remove.js +41 -40
  59. package/dist/m365/spo/commands/serviceprincipal/serviceprincipal-set.js +32 -32
  60. package/dist/m365/spo/commands/site/FlowsPolicy.js +10 -0
  61. package/dist/m365/spo/commands/site/site-add.js +113 -154
  62. package/dist/m365/spo/commands/site/site-apppermission-add.js +26 -27
  63. package/dist/m365/spo/commands/site/site-apppermission-remove.js +37 -37
  64. package/dist/m365/spo/commands/site/site-apppermission-set.js +15 -16
  65. package/dist/m365/spo/commands/site/site-ensure.js +19 -70
  66. package/dist/m365/spo/commands/site/site-hubsite-disconnect.js +24 -22
  67. package/dist/m365/spo/commands/site/site-list.js +28 -36
  68. package/dist/m365/spo/commands/site/site-remove.js +139 -171
  69. package/dist/m365/spo/commands/site/site-set.js +179 -178
  70. package/dist/m365/spo/commands/theme/theme-remove.js +26 -24
  71. package/dist/m365/spo/commands/theme/theme-set.js +0 -1
  72. package/dist/m365/spo/commands/user/user-remove.js +29 -27
  73. package/dist/m365/spo/commands/web/web-reindex.js +17 -20
  74. package/dist/m365/spo/commands/web/web-remove.js +23 -21
  75. package/dist/m365/spo/commands/web/web-roleassignment-add.js +45 -52
  76. package/dist/m365/spo/commands/web/web-roleassignment-remove.js +58 -61
  77. package/dist/m365/spo/commands/web/web-roleinheritance-break.js +20 -18
  78. package/dist/m365/spo/commands/web/web-roleinheritance-reset.js +21 -19
  79. package/dist/m365/yammer/commands/message/message-like-set.js +29 -28
  80. package/dist/m365/yammer/commands/message/message-list.js +9 -26
  81. package/dist/m365/yammer/commands/message/message-remove.js +20 -18
  82. package/dist/m365/yammer/commands/yammer-search.js +42 -56
  83. package/dist/utils/aadGroup.js +20 -0
  84. package/dist/utils/fsUtil.js +5 -0
  85. package/dist/utils/spo.js +601 -1
  86. package/docs/docs/cmd/pa/app/app-permission-ensure.mdx +85 -0
  87. package/docs/docs/cmd/pa/app/app-permission-remove.mdx +74 -0
  88. package/docs/docs/cmd/planner/task/task-add.mdx +22 -7
  89. package/docs/docs/cmd/planner/task/task-get.mdx +13 -4
  90. package/docs/docs/cmd/planner/task/task-list.mdx +22 -7
  91. package/docs/docs/cmd/planner/task/task-remove.mdx +25 -8
  92. package/docs/docs/cmd/planner/task/task-set.mdx +22 -7
  93. package/docs/docs/cmd/spfx/project/project-github-workflow-add.mdx +94 -0
  94. package/docs/docs/cmd/spo/file/file-add.mdx +1 -1
  95. package/docs/docs/cmd/spo/file/file-checkin.mdx +1 -1
  96. package/docs/docs/cmd/spo/file/file-checkout-undo.mdx +1 -9
  97. package/docs/docs/cmd/spo/file/file-checkout.mdx +1 -1
  98. package/docs/docs/cmd/spo/file/file-copy.mdx +20 -16
  99. package/docs/docs/cmd/spo/file/file-get.mdx +1 -1
  100. package/docs/docs/cmd/spo/file/file-list.mdx +2 -2
  101. package/docs/docs/cmd/spo/file/file-move.mdx +2 -2
  102. package/docs/docs/cmd/spo/file/file-remove.mdx +8 -8
  103. package/docs/docs/cmd/spo/file/file-rename.mdx +3 -3
  104. package/docs/docs/cmd/spo/file/file-retentionlabel-ensure.mdx +2 -2
  105. package/docs/docs/cmd/spo/file/file-retentionlabel-remove.mdx +3 -3
  106. package/docs/docs/cmd/spo/file/file-roleassignment-add.mdx +1 -1
  107. package/docs/docs/cmd/spo/file/file-roleassignment-remove.mdx +1 -1
  108. package/docs/docs/cmd/spo/file/file-roleinheritance-break.mdx +1 -1
  109. package/docs/docs/cmd/spo/file/file-roleinheritance-reset.mdx +1 -1
  110. package/docs/docs/cmd/spo/file/file-sharinginfo-get.mdx +1 -1
  111. package/docs/docs/cmd/spo/file/file-sharinglink-add.mdx +1 -1
  112. package/docs/docs/cmd/spo/file/file-sharinglink-clear.mdx +1 -1
  113. package/docs/docs/cmd/spo/file/file-sharinglink-get.mdx +1 -1
  114. package/docs/docs/cmd/spo/file/file-sharinglink-list.mdx +1 -1
  115. package/docs/docs/cmd/spo/file/file-sharinglink-remove.mdx +1 -1
  116. package/docs/docs/cmd/spo/file/file-sharinglink-set.mdx +1 -1
  117. package/docs/docs/cmd/spo/file/file-version-clear.mdx +1 -1
  118. package/docs/docs/cmd/spo/file/file-version-get.mdx +1 -1
  119. package/docs/docs/cmd/spo/file/file-version-list.mdx +1 -1
  120. package/docs/docs/cmd/spo/file/file-version-remove.mdx +1 -1
  121. package/docs/docs/cmd/spo/file/file-version-restore.mdx +1 -1
  122. package/docs/docs/cmd/spo/folder/folder-add.mdx +76 -1
  123. package/docs/docs/cmd/spo/folder/folder-get.mdx +1 -1
  124. package/docs/docs/cmd/spo/folder/folder-list.mdx +1 -1
  125. package/docs/docs/cmd/spo/folder/folder-remove.mdx +1 -1
  126. package/docs/docs/cmd/spo/folder/folder-rename.mdx +5 -1
  127. package/docs/docs/cmd/spo/folder/folder-retentionlabel-ensure.mdx +1 -1
  128. package/docs/docs/cmd/spo/folder/folder-retentionlabel-remove.mdx +1 -1
  129. package/docs/docs/cmd/spo/folder/folder-roleassignment-add.mdx +2 -2
  130. package/docs/docs/cmd/spo/folder/folder-roleassignment-remove.mdx +1 -1
  131. package/docs/docs/cmd/spo/folder/folder-roleinheritance-break.mdx +1 -1
  132. package/docs/docs/cmd/spo/folder/folder-roleinheritance-reset.mdx +1 -1
  133. package/docs/docs/cmd/spo/orgassetslibrary/orgassetslibrary-add.mdx +14 -1
  134. package/docs/docs/cmd/spo/site/site-ensure.mdx +1 -1
  135. package/npm-shrinkwrap.json +698 -345
  136. package/package.json +16 -15
@@ -41,69 +41,71 @@ class SpoSiteRemoveCommand extends SpoCommand_1.default {
41
41
  }
42
42
  commandAction(logger, args) {
43
43
  return __awaiter(this, void 0, void 0, function* () {
44
- const removeSite = () => __awaiter(this, void 0, void 0, function* () {
45
- try {
46
- if (args.options.fromRecycleBin) {
44
+ if (args.options.confirm) {
45
+ yield this.removeSite(logger, args);
46
+ }
47
+ else {
48
+ const result = yield Cli_1.Cli.prompt({
49
+ type: 'confirm',
50
+ name: 'continue',
51
+ default: false,
52
+ message: `Are you sure you want to remove the site ${args.options.url}?`
53
+ });
54
+ if (result.continue) {
55
+ yield this.removeSite(logger, args);
56
+ }
57
+ }
58
+ });
59
+ }
60
+ removeSite(logger, args) {
61
+ return __awaiter(this, void 0, void 0, function* () {
62
+ try {
63
+ if (args.options.fromRecycleBin) {
64
+ yield this.deleteSiteWithoutGroup(logger, args);
65
+ }
66
+ else {
67
+ const groupId = yield this.getSiteGroupId(args.options.url, logger);
68
+ if (groupId === '00000000-0000-0000-0000-000000000000') {
69
+ if (this.debug) {
70
+ logger.logToStderr('Site is not groupified. Going ahead with the conventional site deletion options');
71
+ }
47
72
  yield this.deleteSiteWithoutGroup(logger, args);
48
73
  }
49
74
  else {
50
- const groupId = yield this.getSiteGroupId(args.options.url, logger);
51
- if (groupId === '00000000-0000-0000-0000-000000000000') {
52
- if (this.debug) {
53
- logger.logToStderr('Site is not groupified. Going ahead with the conventional site deletion options');
54
- }
55
- yield this.deleteSiteWithoutGroup(logger, args);
75
+ if (this.debug) {
76
+ logger.logToStderr(`Site attached to group ${groupId}. Initiating group delete operation via Graph API`);
56
77
  }
57
- else {
58
- if (this.debug) {
59
- logger.logToStderr(`Site attached to group ${groupId}. Initiating group delete operation via Graph API`);
78
+ try {
79
+ const group = yield aadGroup_1.aadGroup.getGroupById(groupId);
80
+ if (args.options.skipRecycleBin || args.options.wait) {
81
+ logger.logToStderr(chalk.yellow(`Entered site is a groupified site. Hence, the parameters 'skipRecycleBin' and 'wait' will not be applicable.`));
60
82
  }
61
- try {
62
- const group = yield aadGroup_1.aadGroup.getGroupById(groupId);
63
- if (args.options.skipRecycleBin || args.options.wait) {
64
- logger.logToStderr(chalk.yellow(`Entered site is a groupified site. Hence, the parameters 'skipRecycleBin' and 'wait' will not be applicable.`));
65
- }
66
- yield this.deleteGroup(group.id, logger);
67
- yield this.deleteSite(args.options.url, args.options.wait, logger);
83
+ yield this.deleteGroup(group.id, logger);
84
+ yield this.deleteSite(args.options.url, args.options.wait, logger);
85
+ }
86
+ catch (err) {
87
+ if (this.verbose) {
88
+ logger.logToStderr(`Site group doesn't exist. Searching in the Microsoft 365 deleted groups.`);
68
89
  }
69
- catch (err) {
90
+ const deletedGroups = yield this.isSiteGroupDeleted(groupId);
91
+ if (deletedGroups.value.length === 0) {
70
92
  if (this.verbose) {
71
- logger.logToStderr(`Site group doesn't exist. Searching in the Microsoft 365 deleted groups.`);
93
+ logger.logToStderr("Site group doesn't exist anymore. Deleting the site.");
72
94
  }
73
- const deletedGroups = yield this.isSiteGroupDeleted(groupId);
74
- if (deletedGroups.value.length === 0) {
75
- if (this.verbose) {
76
- logger.logToStderr("Site group doesn't exist anymore. Deleting the site.");
77
- }
78
- if (args.options.wait) {
79
- logger.logToStderr(chalk.yellow(`Entered site is a groupified site. Hence, the parameter 'wait' will not be applicable.`));
80
- }
81
- yield this.deleteOrphanedSite(logger, args.options.url);
82
- }
83
- else {
84
- throw `Site group still exists in the deleted groups. The site won't be removed.`;
95
+ if (args.options.wait) {
96
+ logger.logToStderr(chalk.yellow(`Entered site is a groupified site. Hence, the parameter 'wait' will not be applicable.`));
85
97
  }
98
+ yield this.deleteOrphanedSite(logger, args.options.url);
99
+ }
100
+ else {
101
+ throw `Site group still exists in the deleted groups. The site won't be removed.`;
86
102
  }
87
103
  }
88
104
  }
89
105
  }
90
- catch (err) {
91
- this.handleRejectedPromise(err);
92
- }
93
- });
94
- if (args.options.confirm) {
95
- yield removeSite();
96
106
  }
97
- else {
98
- const result = yield Cli_1.Cli.prompt({
99
- type: 'confirm',
100
- name: 'continue',
101
- default: false,
102
- message: `Are you sure you want to remove the site ${args.options.url}?`
103
- });
104
- if (result.continue) {
105
- yield removeSite();
106
- }
107
+ catch (err) {
108
+ this.handleRejectedPromise(err);
107
109
  }
108
110
  });
109
111
  }
@@ -118,9 +120,8 @@ class SpoSiteRemoveCommand extends SpoCommand_1.default {
118
120
  return request_1.default.get(requestOptions);
119
121
  }
120
122
  deleteOrphanedSite(logger, url) {
121
- return spo_1.spo
122
- .getSpoAdminUrl(logger, this.debug)
123
- .then((spoAdminUrl) => {
123
+ return __awaiter(this, void 0, void 0, function* () {
124
+ const spoAdminUrl = yield spo_1.spo.getSpoAdminUrl(logger, this.debug);
124
125
  const requestOptions = {
125
126
  url: `${spoAdminUrl}/_api/GroupSiteManager/Delete?siteUrl='${url}'`,
126
127
  headers: {
@@ -129,140 +130,111 @@ class SpoSiteRemoveCommand extends SpoCommand_1.default {
129
130
  },
130
131
  responseType: 'json'
131
132
  };
132
- return request_1.default.post(requestOptions);
133
+ return yield request_1.default.post(requestOptions);
133
134
  });
134
135
  }
135
136
  deleteSiteWithoutGroup(logger, args) {
136
- return spo_1.spo
137
- .getSpoAdminUrl(logger, this.debug)
138
- .then((spoAdminUrl) => {
139
- this.spoAdminUrl = spoAdminUrl;
140
- return spo_1.spo.ensureFormDigest(this.spoAdminUrl, logger, this.context, this.debug);
141
- })
142
- .then((res) => {
143
- this.context = res;
137
+ return __awaiter(this, void 0, void 0, function* () {
138
+ this.spoAdminUrl = yield spo_1.spo.getSpoAdminUrl(logger, this.debug);
139
+ this.context = yield spo_1.spo.ensureFormDigest(this.spoAdminUrl, logger, this.context, this.debug);
144
140
  if (args.options.fromRecycleBin) {
145
141
  if (this.verbose) {
146
142
  logger.logToStderr(`Deleting site from recycle bin ${args.options.url}...`);
147
143
  }
148
- return this.deleteSiteFromTheRecycleBin(args.options.url, args.options.wait, logger);
144
+ yield this.deleteSiteFromTheRecycleBin(args.options.url, args.options.wait, logger);
149
145
  }
150
146
  else {
151
- return this.deleteSite(args.options.url, args.options.wait, logger);
147
+ yield this.deleteSite(args.options.url, args.options.wait, logger);
152
148
  }
153
- })
154
- .then(() => {
155
149
  if (args.options.skipRecycleBin) {
156
150
  if (this.verbose) {
157
151
  logger.logToStderr(`Also deleting site from tenant recycle bin ${args.options.url}...`);
158
152
  }
159
- return this.deleteSiteFromTheRecycleBin(args.options.url, args.options.wait, logger);
160
- }
161
- else {
162
- return Promise.resolve();
153
+ yield this.deleteSiteFromTheRecycleBin(args.options.url, args.options.wait, logger);
163
154
  }
164
155
  });
165
156
  }
166
157
  deleteSite(url, wait, logger) {
167
- return new Promise((resolve, reject) => {
168
- spo_1.spo
169
- .ensureFormDigest(this.spoAdminUrl, logger, this.context, this.debug)
170
- .then((res) => {
171
- this.context = res;
172
- if (this.verbose) {
173
- logger.logToStderr(`Deleting site ${url}...`);
174
- }
175
- const requestOptions = {
176
- url: `${this.spoAdminUrl}/_vti_bin/client.svc/ProcessQuery`,
177
- headers: {
178
- 'X-RequestDigest': this.context.FormDigestValue
179
- },
180
- 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="55" ObjectPathId="54"/><ObjectPath Id="57" ObjectPathId="56"/><Query Id="58" ObjectPathId="54"><Query SelectAllProperties="true"><Properties/></Query></Query><Query Id="59" ObjectPathId="56"><Query SelectAllProperties="false"><Properties><Property Name="IsComplete" ScalarProperty="true"/><Property Name="PollingInterval" ScalarProperty="true"/></Properties></Query></Query></Actions><ObjectPaths><Constructor Id="54" TypeId="{268004ae-ef6b-4e9b-8425-127220d84719}"/><Method Id="56" ParentId="54" Name="RemoveSite"><Parameters><Parameter Type="String">${formatting_1.formatting.escapeXml(url)}</Parameter></Parameters></Method></ObjectPaths></Request>`
181
- };
182
- return request_1.default.post(requestOptions);
183
- })
184
- .then((res) => {
185
- const json = JSON.parse(res);
186
- const response = json[0];
187
- if (response.ErrorInfo) {
188
- reject(response.ErrorInfo.ErrorMessage);
189
- }
190
- else {
191
- const operation = json[json.length - 1];
192
- const isComplete = operation.IsComplete;
193
- if (!wait || isComplete) {
194
- resolve();
195
- return;
196
- }
197
- setTimeout(() => {
198
- spo_1.spo.waitUntilFinished({
199
- operationId: JSON.stringify(operation._ObjectIdentity_),
200
- siteUrl: this.spoAdminUrl,
201
- resolve,
202
- reject,
203
- logger,
204
- currentContext: this.context,
205
- debug: this.debug,
206
- verbose: this.verbose
207
- });
208
- }, operation.PollingInterval);
209
- }
158
+ return __awaiter(this, void 0, void 0, function* () {
159
+ this.context = yield spo_1.spo.ensureFormDigest(this.spoAdminUrl, logger, this.context, this.debug);
160
+ if (this.verbose) {
161
+ logger.logToStderr(`Deleting site ${url}...`);
162
+ }
163
+ const requestOptions = {
164
+ url: `${this.spoAdminUrl}/_vti_bin/client.svc/ProcessQuery`,
165
+ headers: {
166
+ 'X-RequestDigest': this.context.FormDigestValue
167
+ },
168
+ 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="55" ObjectPathId="54"/><ObjectPath Id="57" ObjectPathId="56"/><Query Id="58" ObjectPathId="54"><Query SelectAllProperties="true"><Properties/></Query></Query><Query Id="59" ObjectPathId="56"><Query SelectAllProperties="false"><Properties><Property Name="IsComplete" ScalarProperty="true"/><Property Name="PollingInterval" ScalarProperty="true"/></Properties></Query></Query></Actions><ObjectPaths><Constructor Id="54" TypeId="{268004ae-ef6b-4e9b-8425-127220d84719}"/><Method Id="56" ParentId="54" Name="RemoveSite"><Parameters><Parameter Type="String">${formatting_1.formatting.escapeXml(url)}</Parameter></Parameters></Method></ObjectPaths></Request>`
169
+ };
170
+ const response = yield request_1.default.post(requestOptions);
171
+ const json = JSON.parse(response);
172
+ const responseContent = json[0];
173
+ if (responseContent.ErrorInfo) {
174
+ throw responseContent.ErrorInfo.ErrorMessage;
175
+ }
176
+ const operation = json[json.length - 1];
177
+ const isComplete = operation.IsComplete;
178
+ if (!wait || isComplete) {
179
+ return;
180
+ }
181
+ yield new Promise((resolve, reject) => {
182
+ setTimeout(() => {
183
+ spo_1.spo.waitUntilFinished({
184
+ operationId: JSON.stringify(operation._ObjectIdentity_),
185
+ siteUrl: this.spoAdminUrl,
186
+ resolve,
187
+ reject,
188
+ logger,
189
+ currentContext: this.context,
190
+ debug: this.debug,
191
+ verbose: this.verbose
192
+ });
193
+ }, operation.PollingInterval);
210
194
  });
211
195
  });
212
196
  }
213
197
  deleteSiteFromTheRecycleBin(url, wait, logger) {
214
- return new Promise((resolve, reject) => {
215
- spo_1.spo
216
- .ensureFormDigest(this.spoAdminUrl, logger, this.context, this.debug)
217
- .then((res) => {
218
- this.context = res;
219
- const requestOptions = {
220
- url: `${this.spoAdminUrl}/_vti_bin/client.svc/ProcessQuery`,
221
- headers: {
222
- 'X-RequestDigest': this.context.FormDigestValue
223
- },
224
- 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="185" ObjectPathId="184" /><Query Id="186" ObjectPathId="184"><Query SelectAllProperties="false"><Properties><Property Name="IsComplete" ScalarProperty="true" /><Property Name="PollingInterval" ScalarProperty="true" /></Properties></Query></Query></Actions><ObjectPaths><Method Id="184" ParentId="175" Name="RemoveDeletedSite"><Parameters><Parameter Type="String">${formatting_1.formatting.escapeXml(url)}</Parameter></Parameters></Method><Constructor Id="175" TypeId="{268004ae-ef6b-4e9b-8425-127220d84719}" /></ObjectPaths></Request>`
225
- };
226
- return request_1.default.post(requestOptions);
227
- })
228
- .then((res) => {
229
- const json = JSON.parse(res);
230
- const response = json[0];
231
- if (response.ErrorInfo) {
232
- reject(response.ErrorInfo.ErrorMessage);
233
- }
234
- else {
235
- const operation = json[json.length - 1];
236
- const isComplete = operation.IsComplete;
237
- if (!wait || isComplete) {
238
- resolve();
239
- return;
240
- }
241
- setTimeout(() => {
242
- spo_1.spo.waitUntilFinished({
243
- operationId: JSON.stringify(operation._ObjectIdentity_),
244
- siteUrl: this.spoAdminUrl,
245
- resolve,
246
- reject,
247
- logger,
248
- currentContext: this.context,
249
- debug: this.debug,
250
- verbose: this.verbose
251
- });
252
- }, operation.PollingInterval);
253
- }
198
+ return __awaiter(this, void 0, void 0, function* () {
199
+ this.context = yield spo_1.spo.ensureFormDigest(this.spoAdminUrl, logger, this.context, this.debug);
200
+ const requestOptions = {
201
+ url: `${this.spoAdminUrl}/_vti_bin/client.svc/ProcessQuery`,
202
+ headers: {
203
+ 'X-RequestDigest': this.context.FormDigestValue
204
+ },
205
+ 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="185" ObjectPathId="184" /><Query Id="186" ObjectPathId="184"><Query SelectAllProperties="false"><Properties><Property Name="IsComplete" ScalarProperty="true" /><Property Name="PollingInterval" ScalarProperty="true" /></Properties></Query></Query></Actions><ObjectPaths><Method Id="184" ParentId="175" Name="RemoveDeletedSite"><Parameters><Parameter Type="String">${formatting_1.formatting.escapeXml(url)}</Parameter></Parameters></Method><Constructor Id="175" TypeId="{268004ae-ef6b-4e9b-8425-127220d84719}" /></ObjectPaths></Request>`
206
+ };
207
+ const response = yield request_1.default.post(requestOptions);
208
+ const json = JSON.parse(response);
209
+ const responseContent = json[0];
210
+ if (responseContent.ErrorInfo) {
211
+ throw responseContent.ErrorInfo.ErrorMessage;
212
+ }
213
+ const operation = json[json.length - 1];
214
+ const isComplete = operation.IsComplete;
215
+ if (!wait || isComplete) {
216
+ return;
217
+ }
218
+ yield new Promise((resolve, reject) => {
219
+ setTimeout(() => {
220
+ spo_1.spo.waitUntilFinished({
221
+ operationId: JSON.stringify(operation._ObjectIdentity_),
222
+ siteUrl: this.spoAdminUrl,
223
+ resolve,
224
+ reject,
225
+ logger,
226
+ currentContext: this.context,
227
+ debug: this.debug,
228
+ verbose: this.verbose
229
+ });
230
+ }, operation.PollingInterval);
254
231
  });
255
232
  });
256
233
  }
257
234
  getSiteGroupId(url, logger) {
258
- return spo_1.spo
259
- .getSpoAdminUrl(logger, this.debug)
260
- .then((_spoAdminUrl) => {
261
- this.spoAdminUrl = _spoAdminUrl;
262
- return spo_1.spo.ensureFormDigest(this.spoAdminUrl, logger, this.context, this.debug);
263
- })
264
- .then((res) => {
265
- this.context = res;
235
+ return __awaiter(this, void 0, void 0, function* () {
236
+ this.spoAdminUrl = yield spo_1.spo.getSpoAdminUrl(logger, this.debug);
237
+ this.context = yield spo_1.spo.ensureFormDigest(this.spoAdminUrl, logger, this.context, this.debug);
266
238
  if (this.verbose) {
267
239
  logger.logToStderr(`Retrieving the group Id of the site ${url}`);
268
240
  }
@@ -273,18 +245,14 @@ class SpoSiteRemoveCommand extends SpoCommand_1.default {
273
245
  },
274
246
  data: `<Request xmlns="http://schemas.microsoft.com/sharepoint/clientquery/2009" AddExpandoFieldTypeSuffix="true" SchemaVersion="15.0.0.0" LibraryVersion="16.0.0.0" ApplicationName="${config_1.default.applicationName}"><Actions><ObjectPath Id="4" ObjectPathId="3"/><Query Id="5" ObjectPathId="3"><Query SelectAllProperties="false"><Properties><Property Name="GroupId" ScalarProperty="true"/></Properties></Query></Query></Actions><ObjectPaths><Constructor Id="1" TypeId="{268004ae-ef6b-4e9b-8425-127220d84719}"/><Method Id="3" ParentId="1" Name="GetSitePropertiesByUrl"><Parameters><Parameter Type="String">${formatting_1.formatting.escapeXml(url)}</Parameter></Parameters></Method></ObjectPaths></Request>`
275
247
  };
276
- return request_1.default.post(requestOptions);
277
- })
278
- .then((res) => {
279
- const json = JSON.parse(res);
280
- const response = json[0];
281
- if (response.ErrorInfo) {
282
- return Promise.reject(response.ErrorInfo.ErrorMessage);
283
- }
284
- else {
285
- const groupId = json[json.length - 1].GroupId.replace('/Guid(', '').replace(')/', '');
286
- return Promise.resolve(groupId);
248
+ const response = yield request_1.default.post(requestOptions);
249
+ const json = JSON.parse(response);
250
+ const responseContent = json[0];
251
+ if (responseContent.ErrorInfo) {
252
+ throw responseContent.ErrorInfo.ErrorMessage;
287
253
  }
254
+ const groupId = json[json.length - 1].GroupId.replace('/Guid(', '').replace(')/', '');
255
+ return groupId;
288
256
  });
289
257
  }
290
258
  deleteGroup(groupId, logger) {