@pnp/cli-microsoft365 6.11.0-beta.259c884 → 6.11.0-beta.2d03676

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.
@@ -93,33 +93,33 @@ class SpoSiteSetCommand extends SpoCommand_1.default {
93
93
  return request_1.default.post(requestOptions);
94
94
  }
95
95
  updateSharePointOnlySite(logger, args) {
96
- if (this.debug) {
97
- logger.logToStderr('Site is not group connected');
98
- }
99
- if (typeof args.options.isPublic !== 'undefined') {
100
- return Promise.reject(`The isPublic option can't be set on a site that is not groupified`);
101
- }
102
- return this.updateSiteDescription(logger, args)
103
- .then(_ => this.updateSiteOwners(logger, args));
96
+ return __awaiter(this, void 0, void 0, function* () {
97
+ if (this.debug) {
98
+ logger.logToStderr('Site is not group connected');
99
+ }
100
+ if (typeof args.options.isPublic !== 'undefined') {
101
+ throw `The isPublic option can't be set on a site that is not groupified`;
102
+ }
103
+ yield this.updateSiteDescription(logger, args);
104
+ yield this.updateSiteOwners(logger, args);
105
+ });
104
106
  }
105
- waitForSiteUpdateCompletion(logger, args, res) {
106
- return new Promise((resolve, reject) => {
107
- if (!res) {
108
- resolve();
107
+ waitForSiteUpdateCompletion(logger, args, response) {
108
+ return __awaiter(this, void 0, void 0, function* () {
109
+ if (!response) {
109
110
  return;
110
111
  }
111
- const json = JSON.parse(res);
112
- const response = json[0];
113
- if (response.ErrorInfo) {
114
- reject(response.ErrorInfo.ErrorMessage);
115
- }
116
- else {
117
- const operation = json[json.length - 1];
118
- const isComplete = operation.IsComplete;
119
- if (!args.options.wait || isComplete) {
120
- resolve();
121
- return;
122
- }
112
+ const json = JSON.parse(response);
113
+ const responseContent = json[0];
114
+ if (responseContent.ErrorInfo) {
115
+ throw responseContent.ErrorInfo.ErrorMessage;
116
+ }
117
+ const operation = json[json.length - 1];
118
+ const isComplete = operation.IsComplete;
119
+ if (!args.options.wait || isComplete) {
120
+ return;
121
+ }
122
+ yield new Promise((resolve, reject) => {
123
123
  setTimeout(() => {
124
124
  spo_1.spo.waitUntilFinished({
125
125
  operationId: JSON.stringify(operation._ObjectIdentity_),
@@ -132,29 +132,24 @@ class SpoSiteSetCommand extends SpoCommand_1.default {
132
132
  verbose: this.verbose
133
133
  });
134
134
  }, operation.PollingInterval);
135
- }
135
+ });
136
136
  });
137
137
  }
138
138
  updateSiteOwners(logger, args) {
139
- if (!args.options.owners) {
140
- return Promise.resolve();
141
- }
142
- return new Promise((resolve, reject) => {
139
+ return __awaiter(this, void 0, void 0, function* () {
140
+ if (!args.options.owners) {
141
+ return;
142
+ }
143
143
  if (this.verbose) {
144
144
  logger.logToStderr(`Updating site owners ${args.options.url}...`);
145
145
  }
146
- Promise.all(args.options.owners.split(',').map(o => {
146
+ yield Promise.all(args.options.owners.split(',').map(o => {
147
147
  return this.setAdmin(args.options.url, o.trim());
148
- }))
149
- .then(() => {
150
- resolve();
151
- }, (err) => {
152
- reject(err);
153
- });
148
+ }));
154
149
  });
155
150
  }
156
151
  setAdmin(siteUrl, principal) {
157
- return new Promise((resolve, reject) => {
152
+ return __awaiter(this, void 0, void 0, function* () {
158
153
  const requestOptions = {
159
154
  url: `${this.spoAdminUrl}/_vti_bin/client.svc/ProcessQuery`,
160
155
  headers: {
@@ -162,70 +157,67 @@ class SpoSiteSetCommand extends SpoCommand_1.default {
162
157
  },
163
158
  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="48" ObjectPathId="47" /></Actions><ObjectPaths><Method Id="47" ParentId="34" Name="SetSiteAdmin"><Parameters><Parameter Type="String">${formatting_1.formatting.escapeXml(siteUrl)}</Parameter><Parameter Type="String">${formatting_1.formatting.escapeXml(principal)}</Parameter><Parameter Type="Boolean">true</Parameter></Parameters></Method><Constructor Id="34" TypeId="{268004ae-ef6b-4e9b-8425-127220d84719}" /></ObjectPaths></Request>`
164
159
  };
165
- return request_1.default.post(requestOptions)
166
- .then((res) => {
167
- const json = JSON.parse(res);
168
- const response = json[0];
169
- if (response.ErrorInfo) {
170
- reject(response.ErrorInfo.ErrorMessage);
171
- }
172
- else {
173
- resolve();
174
- }
175
- }, (err) => {
176
- reject(err);
177
- });
160
+ const response = yield request_1.default.post(requestOptions);
161
+ const json = JSON.parse(response);
162
+ const responseContent = json[0];
163
+ if (responseContent.ErrorInfo) {
164
+ throw responseContent.ErrorInfo.ErrorMessage;
165
+ }
178
166
  });
179
167
  }
180
168
  updateSiteDescription(logger, args) {
181
- if (!args.options.description) {
182
- return Promise.resolve(undefined);
183
- }
184
- if (this.verbose) {
185
- logger.logToStderr(`Setting site description ${args.options.url}...`);
186
- }
187
- const requestOptions = {
188
- url: `${args.options.url}/_api/web`,
189
- headers: {
190
- 'IF-MATCH': '*',
191
- 'Accept': 'application/json;odata=nometadata',
192
- 'content-type': 'application/json;odata=nometadata',
193
- 'X-RequestDigest': this.context.FormDigestValue,
194
- 'X-HTTP-Method': 'MERGE'
195
- },
196
- data: {
197
- Description: args.options.description
198
- },
199
- json: true
200
- };
201
- return request_1.default.post(requestOptions);
169
+ return __awaiter(this, void 0, void 0, function* () {
170
+ if (!args.options.description) {
171
+ return;
172
+ }
173
+ if (this.verbose) {
174
+ logger.logToStderr(`Setting site description ${args.options.url}...`);
175
+ }
176
+ const requestOptions = {
177
+ url: `${args.options.url}/_api/web`,
178
+ headers: {
179
+ 'IF-MATCH': '*',
180
+ 'Accept': 'application/json;odata=nometadata',
181
+ 'content-type': 'application/json;odata=nometadata',
182
+ 'X-RequestDigest': this.context.FormDigestValue,
183
+ 'X-HTTP-Method': 'MERGE'
184
+ },
185
+ data: {
186
+ Description: args.options.description
187
+ },
188
+ json: true
189
+ };
190
+ yield request_1.default.post(requestOptions);
191
+ });
202
192
  }
203
193
  updateSiteLockState(logger, args) {
204
- if (!args.options.lockState) {
205
- return Promise.resolve(undefined);
206
- }
207
- if (this.verbose) {
208
- logger.logToStderr(`Setting site lock state ${args.options.url}...`);
209
- }
210
- const requestOptions = {
211
- url: `${this.spoAdminUrl}/_vti_bin/client.svc/ProcessQuery`,
212
- headers: {
213
- 'X-RequestDigest': this.context.FormDigestValue
214
- },
215
- 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><SetProperty Id="7" ObjectPathId="5" Name="LockState"><Parameter Type="String">${formatting_1.formatting.escapeXml(args.options.lockState)}</Parameter></SetProperty><ObjectPath Id="9" ObjectPathId="8" /><ObjectIdentityQuery Id="10" ObjectPathId="5" /><Query Id="11" ObjectPathId="8"><Query SelectAllProperties="true"><Properties /></Query></Query></Actions><ObjectPaths><Method Id="5" ParentId="3" Name="GetSitePropertiesByUrl"><Parameters><Parameter Type="String">${formatting_1.formatting.escapeXml(args.options.url)}</Parameter><Parameter Type="Boolean">false</Parameter></Parameters></Method><Method Id="8" ParentId="5" Name="Update" /><Constructor Id="3" TypeId="{268004ae-ef6b-4e9b-8425-127220d84719}" /></ObjectPaths></Request>`
216
- };
217
- return request_1.default.post(requestOptions);
194
+ return __awaiter(this, void 0, void 0, function* () {
195
+ if (!args.options.lockState) {
196
+ return;
197
+ }
198
+ if (this.verbose) {
199
+ logger.logToStderr(`Setting site lock state ${args.options.url}...`);
200
+ }
201
+ const requestOptions = {
202
+ url: `${this.spoAdminUrl}/_vti_bin/client.svc/ProcessQuery`,
203
+ headers: {
204
+ 'X-RequestDigest': this.context.FormDigestValue
205
+ },
206
+ 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><SetProperty Id="7" ObjectPathId="5" Name="LockState"><Parameter Type="String">${formatting_1.formatting.escapeXml(args.options.lockState)}</Parameter></SetProperty><ObjectPath Id="9" ObjectPathId="8" /><ObjectIdentityQuery Id="10" ObjectPathId="5" /><Query Id="11" ObjectPathId="8"><Query SelectAllProperties="true"><Properties /></Query></Query></Actions><ObjectPaths><Method Id="5" ParentId="3" Name="GetSitePropertiesByUrl"><Parameters><Parameter Type="String">${formatting_1.formatting.escapeXml(args.options.url)}</Parameter><Parameter Type="Boolean">false</Parameter></Parameters></Method><Method Id="8" ParentId="5" Name="Update" /><Constructor Id="3" TypeId="{268004ae-ef6b-4e9b-8425-127220d84719}" /></ObjectPaths></Request>`
207
+ };
208
+ return request_1.default.post(requestOptions);
209
+ });
218
210
  }
219
211
  updateGroupConnectedSite(logger, args) {
220
- if (this.debug) {
221
- logger.logToStderr(`Site attached to group ${this.groupId}`);
222
- }
223
- return new Promise((resolve, reject) => {
212
+ return __awaiter(this, void 0, void 0, function* () {
213
+ if (this.debug) {
214
+ logger.logToStderr(`Site attached to group ${this.groupId}`);
215
+ }
224
216
  if (typeof args.options.title === 'undefined' &&
225
217
  typeof args.options.description === 'undefined' &&
226
218
  typeof args.options.isPublic === 'undefined' &&
227
219
  typeof args.options.owners === 'undefined') {
228
- return resolve();
220
+ return;
229
221
  }
230
222
  const promises = [];
231
223
  if (typeof args.options.title !== 'undefined') {
@@ -258,13 +250,7 @@ class SpoSiteSetCommand extends SpoCommand_1.default {
258
250
  promises.push(this.setGroupifiedSiteDescription(args.options.description));
259
251
  }
260
252
  promises.push(this.setGroupifiedSiteOwners(logger, args));
261
- Promise
262
- .all(promises)
263
- .then(() => {
264
- resolve();
265
- }, (error) => {
266
- reject(error);
267
- });
253
+ yield Promise.all(promises);
268
254
  });
269
255
  }
270
256
  setGroupifiedSiteDescription(description) {
@@ -280,26 +266,26 @@ class SpoSiteSetCommand extends SpoCommand_1.default {
280
266
  return request_1.default.patch(requestOptions);
281
267
  }
282
268
  setGroupifiedSiteOwners(logger, args) {
283
- if (typeof args.options.owners === 'undefined') {
284
- return Promise.resolve();
285
- }
286
- const owners = args.options.owners.split(',').map(o => o.trim());
287
- if (this.verbose) {
288
- logger.logToStderr('Retrieving user information to set group owners...');
289
- }
290
- const requestOptions = {
291
- url: `https://graph.microsoft.com/v1.0/users?$filter=${owners.map(o => `userPrincipalName eq '${o}'`).join(' or ')}&$select=id`,
292
- headers: {
293
- 'content-type': 'application/json;odata.metadata=none'
294
- },
295
- responseType: 'json'
296
- };
297
- return request_1.default.get(requestOptions)
298
- .then((res) => {
299
- if (res.value.length === 0) {
300
- return Promise.resolve();
269
+ return __awaiter(this, void 0, void 0, function* () {
270
+ if (typeof args.options.owners === 'undefined') {
271
+ return;
272
+ }
273
+ const owners = args.options.owners.split(',').map(o => o.trim());
274
+ if (this.verbose) {
275
+ logger.logToStderr('Retrieving user information to set group owners...');
301
276
  }
302
- return Promise.all(res.value.map(user => {
277
+ const requestOptions = {
278
+ url: `https://graph.microsoft.com/v1.0/users?$filter=${owners.map(o => `userPrincipalName eq '${o}'`).join(' or ')}&$select=id`,
279
+ headers: {
280
+ 'content-type': 'application/json;odata.metadata=none'
281
+ },
282
+ responseType: 'json'
283
+ };
284
+ const response = yield request_1.default.get(requestOptions);
285
+ if (response.value.length === 0) {
286
+ return;
287
+ }
288
+ yield Promise.all(response.value.map(user => {
303
289
  const requestOptions = {
304
290
  url: `${this.spoAdminUrl}/_api/SP.Directory.DirectorySession/Group('${this.groupId}')/Owners/Add(objectId='${user.id}', principalName='')`,
305
291
  headers: {
@@ -327,10 +313,9 @@ class SpoSiteSetCommand extends SpoCommand_1.default {
327
313
  }
328
314
  }
329
315
  if (!updatedProperties) {
330
- return Promise.resolve(undefined);
316
+ return;
331
317
  }
332
- const res = yield spo_1.spo.ensureFormDigest(this.spoAdminUrl, logger, this.context, this.debug);
333
- this.context = res;
318
+ this.context = yield spo_1.spo.ensureFormDigest(this.spoAdminUrl, logger, this.context, this.debug);
334
319
  if (this.verbose) {
335
320
  logger.logToStderr(`Updating site ${args.options.url} properties...`);
336
321
  }
@@ -364,6 +349,9 @@ class SpoSiteSetCommand extends SpoCommand_1.default {
364
349
  const flowsPolicy = args.options.disableFlows ? FlowsPolicy_1.FlowsPolicy.Disabled : FlowsPolicy_1.FlowsPolicy.Enabled;
365
350
  payload.push(`<SetProperty Id="${propertyId++}" ObjectPathId="5" Name="DisableFlows"><Parameter Type="Enum">${flowsPolicy}</Parameter></SetProperty>`);
366
351
  }
352
+ if (typeof args.options.socialBarOnSitePagesDisabled !== 'undefined') {
353
+ payload.push(`<SetProperty Id="${propertyId++}" ObjectPathId="5" Name="SocialBarOnSitePagesDisabled"><Parameter Type="Boolean">${args.options.socialBarOnSitePagesDisabled}</Parameter></SetProperty>`);
354
+ }
367
355
  if (args.options.shareByEmailEnabled !== undefined) {
368
356
  sitePropertiesPayload.push(`<SetProperty Id="${propertyId++}" ObjectPathId="5" Name="ShareByEmailEnabled"><Parameter Type="Boolean">${args.options.shareByEmailEnabled}</Parameter></SetProperty>`);
369
357
  }
@@ -381,7 +369,7 @@ class SpoSiteSetCommand extends SpoCommand_1.default {
381
369
  const requestOptions = {
382
370
  url: `${args.options.url}/_vti_bin/client.svc/ProcessQuery`,
383
371
  headers: {
384
- 'X-RequestDigest': res.FormDigestValue
372
+ 'X-RequestDigest': this.context.FormDigestValue
385
373
  },
386
374
  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>${sitePropertiesPayload.join('')}</Actions><ObjectPaths><StaticProperty Id="1" TypeId="{3747adcd-a3c3-41b9-bfab-4a64dd2f1e0a}" Name="Current" /><Property Id="5" ParentId="1" Name="Site" /></ObjectPaths></Request>`
387
375
  };
@@ -392,7 +380,7 @@ class SpoSiteSetCommand extends SpoCommand_1.default {
392
380
  const requestOptions = {
393
381
  url: `${this.spoAdminUrl}/_vti_bin/client.svc/ProcessQuery`,
394
382
  headers: {
395
- 'X-RequestDigest': res.FormDigestValue
383
+ 'X-RequestDigest': this.context.FormDigestValue
396
384
  },
397
385
  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>${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_1.formatting.encodeQueryParameter(args.options.url)}" /><Method Id="13" ParentId="5" Name="Update" /></ObjectPaths></Request>`
398
386
  };
@@ -402,38 +390,38 @@ class SpoSiteSetCommand extends SpoCommand_1.default {
402
390
  });
403
391
  }
404
392
  applySiteDesign(logger, args) {
405
- if (typeof args.options.siteDesignId === 'undefined') {
406
- return Promise.resolve();
407
- }
408
- const options = {
409
- webUrl: args.options.url,
410
- id: args.options.siteDesignId,
411
- asTask: false,
412
- debug: this.debug,
413
- verbose: this.verbose
414
- };
415
- return Cli_1.Cli.executeCommand(spoSiteDesignApplyCommand, { options: Object.assign(Object.assign({}, options), { _: [] }) });
393
+ return __awaiter(this, void 0, void 0, function* () {
394
+ if (typeof args.options.siteDesignId === 'undefined') {
395
+ return;
396
+ }
397
+ const options = {
398
+ webUrl: args.options.url,
399
+ id: args.options.siteDesignId,
400
+ asTask: false,
401
+ debug: this.debug,
402
+ verbose: this.verbose
403
+ };
404
+ return Cli_1.Cli.executeCommand(spoSiteDesignApplyCommand, { options: Object.assign(Object.assign({}, options), { _: [] }) });
405
+ });
416
406
  }
417
407
  loadSiteIds(siteUrl, logger) {
418
- if (this.debug) {
419
- logger.logToStderr('Loading site IDs...');
420
- }
421
- const requestOptions = {
422
- url: `${siteUrl}/_api/site?$select=GroupId,Id`,
423
- headers: {
424
- accept: 'application/json;odata=nometadata'
425
- },
426
- responseType: 'json'
427
- };
428
- return request_1.default
429
- .get(requestOptions)
430
- .then((siteInfo) => {
408
+ return __awaiter(this, void 0, void 0, function* () {
409
+ if (this.debug) {
410
+ logger.logToStderr('Loading site IDs...');
411
+ }
412
+ const requestOptions = {
413
+ url: `${siteUrl}/_api/site?$select=GroupId,Id`,
414
+ headers: {
415
+ accept: 'application/json;odata=nometadata'
416
+ },
417
+ responseType: 'json'
418
+ };
419
+ const siteInfo = yield request_1.default.get(requestOptions);
431
420
  this.groupId = siteInfo.GroupId;
432
421
  this.siteId = siteInfo.Id;
433
422
  if (this.debug) {
434
423
  logger.logToStderr(`Retrieved site IDs. siteId: ${this.siteId}, groupId: ${this.groupId}`);
435
424
  }
436
- return Promise.resolve();
437
425
  });
438
426
  }
439
427
  isGroupConnectedSite() {
@@ -71,6 +71,26 @@ exports.aadGroup = {
71
71
  }
72
72
  return groups[0].id;
73
73
  });
74
+ },
75
+ setGroup(id, isPrivate, logger, verbose) {
76
+ return __awaiter(this, void 0, void 0, function* () {
77
+ if (verbose && logger) {
78
+ logger.logToStderr(`Updating Microsoft 365 Group ${id}...`);
79
+ }
80
+ const update = {};
81
+ if (typeof isPrivate !== 'undefined') {
82
+ update.visibility = isPrivate ? 'Private' : 'Public';
83
+ }
84
+ const requestOptions = {
85
+ url: `${graphResource}/v1.0/groups/${id}`,
86
+ headers: {
87
+ 'accept': 'application/json;odata.metadata=none'
88
+ },
89
+ responseType: 'json',
90
+ data: update
91
+ };
92
+ yield request_1.default.patch(requestOptions);
93
+ });
74
94
  }
75
95
  };
76
96
  //# sourceMappingURL=aadGroup.js.map
@@ -99,6 +99,11 @@ exports.fsUtil = {
99
99
  },
100
100
  getRemoveCommand(command, shell) {
101
101
  return removeFileCommands[shell][command];
102
+ },
103
+ ensureDirectory(path) {
104
+ if (!fs.existsSync(path)) {
105
+ fs.mkdirSync(path, { recursive: true });
106
+ }
102
107
  }
103
108
  };
104
109
  //# sourceMappingURL=fsUtil.js.map