@pnp/cli-microsoft365 4.2.0-beta.eca91f0 → 4.2.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 (43) hide show
  1. package/.devcontainer/Dockerfile +2 -2
  2. package/dist/appInsights.js +2 -0
  3. package/dist/cli/Cli.js +4 -1
  4. package/dist/m365/aad/commands/app/app-add.js +58 -5
  5. package/dist/m365/aad/commands/o365group/o365group-add.js +56 -50
  6. package/dist/m365/aad/commands/oauth2grant/oauth2grant-add.js +5 -8
  7. package/dist/m365/aad/commands/oauth2grant/oauth2grant-set.js +3 -3
  8. package/dist/m365/aad/commands/sp/sp-add.js +107 -0
  9. package/dist/m365/aad/commands.js +1 -0
  10. package/dist/m365/base/M365RcJson.js +3 -0
  11. package/dist/m365/file/commands/file-add.js +32 -13
  12. package/dist/m365/file/commands/file-list.js +181 -0
  13. package/dist/m365/file/commands.js +2 -1
  14. package/dist/m365/spfx/commands/project/project-upgrade/upgrade-1.13.1.js +53 -0
  15. package/dist/m365/spfx/commands/project/project-upgrade.js +2 -1
  16. package/dist/m365/spfx/commands/spfx-doctor.js +176 -62
  17. package/dist/m365/spo/commands/contenttype/contenttype-list.js +52 -0
  18. package/dist/m365/spo/commands/list/list-get.js +6 -2
  19. package/dist/m365/spo/commands/listitem/listitem-attachment-list.js +90 -0
  20. package/dist/m365/spo/commands/page/Page.js +3 -1
  21. package/dist/m365/spo/commands/page/page-add.js +7 -10
  22. package/dist/m365/spo/commands/page/page-set.js +7 -10
  23. package/dist/m365/spo/commands/site/site-remove.js +98 -30
  24. package/dist/m365/spo/commands.js +3 -1
  25. package/dist/m365/teams/commands/report/report-directroutingcalls.js +1 -1
  26. package/dist/m365/teams/commands/report/report-pstncalls.js +1 -1
  27. package/docs/docs/cmd/aad/app/app-add.md +11 -0
  28. package/docs/docs/cmd/aad/o365group/o365group-add.md +1 -0
  29. package/docs/docs/cmd/aad/oauth2grant/oauth2grant-set.md +3 -2
  30. package/docs/docs/cmd/aad/sp/sp-add.md +53 -0
  31. package/docs/docs/cmd/file/file-add.md +11 -0
  32. package/docs/docs/cmd/file/file-list.md +46 -0
  33. package/docs/docs/cmd/spfx/project/project-upgrade.md +1 -1
  34. package/docs/docs/cmd/spo/contenttype/contenttype-list.md +33 -0
  35. package/docs/docs/cmd/spo/list/list-get.md +9 -0
  36. package/docs/docs/cmd/spo/listitem/listitem-attachment-list.md +39 -0
  37. package/docs/docs/cmd/spo/page/page-add.md +2 -2
  38. package/docs/docs/cmd/spo/page/page-set.md +3 -3
  39. package/docs/docs/cmd/spo/site/site-remove.md +3 -1
  40. package/docs/docs/cmd/teams/report/report-directroutingcalls.md +0 -3
  41. package/docs/docs/cmd/teams/report/report-pstncalls.md +4 -3
  42. package/npm-shrinkwrap.json +508 -886
  43. package/package.json +19 -18
@@ -56,288 +56,402 @@ class SpfxDoctorCommand extends AnonymousCommand_1.default {
56
56
  this.versions = {
57
57
  '1.0.0': {
58
58
  gulp: {
59
- range: '^3.0.0',
59
+ range: '^3',
60
60
  fix: 'npm i -g gulp@3'
61
61
  },
62
62
  node: {
63
- range: '^6.0.0',
63
+ range: '^6',
64
64
  fix: 'Install Node.js v6'
65
65
  },
66
66
  react: {
67
67
  range: '^15',
68
68
  fix: 'npm i react@15'
69
69
  },
70
- sp: SharePointVersion.All
70
+ sp: SharePointVersion.All,
71
+ yo: {
72
+ range: '^3',
73
+ fix: 'npm i -g yo@3'
74
+ }
71
75
  },
72
76
  '1.1.0': {
73
77
  gulp: {
74
- range: '^3.0.0',
78
+ range: '^3',
75
79
  fix: 'npm i -g gulp@3'
76
80
  },
77
81
  node: {
78
- range: '^6.0.0',
82
+ range: '^6',
79
83
  fix: 'Install Node.js v6'
80
84
  },
81
85
  react: {
82
86
  range: '^15',
83
87
  fix: 'npm i react@15'
84
88
  },
85
- sp: SharePointVersion.All
89
+ sp: SharePointVersion.All,
90
+ yo: {
91
+ range: '^3',
92
+ fix: 'npm i -g yo@3'
93
+ }
86
94
  },
87
95
  '1.2.0': {
88
96
  gulp: {
89
- range: '^3.0.0',
97
+ range: '^3',
90
98
  fix: 'npm i -g gulp@3'
91
99
  },
92
100
  node: {
93
- range: '^6.0.0',
101
+ range: '^6',
94
102
  fix: 'Install Node.js v6'
95
103
  },
96
104
  react: {
97
105
  range: '^15',
98
106
  fix: 'npm i react@15'
99
107
  },
100
- sp: SharePointVersion.SP2019 | SharePointVersion.SPO
108
+ sp: SharePointVersion.SP2019 | SharePointVersion.SPO,
109
+ yo: {
110
+ range: '^3',
111
+ fix: 'npm i -g yo@3'
112
+ }
101
113
  },
102
114
  '1.4.0': {
103
115
  gulp: {
104
- range: '^3.0.0',
116
+ range: '^3',
105
117
  fix: 'npm i -g gulp@3'
106
118
  },
107
119
  node: {
108
- range: '^6.0.0',
120
+ range: '^6',
109
121
  fix: 'Install Node.js v6'
110
122
  },
111
123
  react: {
112
124
  range: '^15',
113
125
  fix: 'npm i react@15'
114
126
  },
115
- sp: SharePointVersion.SP2019 | SharePointVersion.SPO
127
+ sp: SharePointVersion.SP2019 | SharePointVersion.SPO,
128
+ yo: {
129
+ range: '^3',
130
+ fix: 'npm i -g yo@3'
131
+ }
116
132
  },
117
133
  '1.4.1': {
118
134
  gulp: {
119
- range: '^3.0.0',
135
+ range: '^3',
120
136
  fix: 'npm i -g gulp@3'
121
137
  },
122
138
  node: {
123
- range: '^6.0.0 || ^8.0.0',
139
+ range: '^6 || ^8',
124
140
  fix: 'Install Node.js v8'
125
141
  },
126
142
  react: {
127
143
  range: '^15',
128
144
  fix: 'npm i react@15'
129
145
  },
130
- sp: SharePointVersion.SP2019 | SharePointVersion.SPO
146
+ sp: SharePointVersion.SP2019 | SharePointVersion.SPO,
147
+ yo: {
148
+ range: '^3',
149
+ fix: 'npm i -g yo@3'
150
+ }
131
151
  },
132
152
  '1.5.0': {
133
153
  gulp: {
134
- range: '^3.0.0',
154
+ range: '^3',
135
155
  fix: 'npm i -g gulp@3'
136
156
  },
137
157
  node: {
138
- range: '^6.0.0 || ^8.0.0',
158
+ range: '^6 || ^8',
139
159
  fix: 'Install Node.js v8'
140
160
  },
141
161
  react: {
142
162
  range: '^15',
143
163
  fix: 'npm i react@15'
144
164
  },
145
- sp: SharePointVersion.SPO
165
+ sp: SharePointVersion.SPO,
166
+ yo: {
167
+ range: '^3',
168
+ fix: 'npm i -g yo@3'
169
+ }
146
170
  },
147
171
  '1.5.1': {
148
172
  gulp: {
149
- range: '^3.0.0',
173
+ range: '^3',
150
174
  fix: 'npm i -g gulp@3'
151
175
  },
152
176
  node: {
153
- range: '^6.0.0 || ^8.0.0',
177
+ range: '^6 || ^8',
154
178
  fix: 'Install Node.js v8'
155
179
  },
156
180
  react: {
157
181
  range: '^15',
158
182
  fix: 'npm i react@15'
159
183
  },
160
- sp: SharePointVersion.SPO
184
+ sp: SharePointVersion.SPO,
185
+ yo: {
186
+ range: '^3',
187
+ fix: 'npm i -g yo@3'
188
+ }
161
189
  },
162
190
  '1.6.0': {
163
191
  gulp: {
164
- range: '^3.0.0',
192
+ range: '^3',
165
193
  fix: 'npm i -g gulp@3'
166
194
  },
167
195
  node: {
168
- range: '^6.0.0 || ^8.0.0',
196
+ range: '^6 || ^8',
169
197
  fix: 'Install Node.js v8'
170
198
  },
171
199
  react: {
172
200
  range: '^15',
173
201
  fix: 'npm i react@15'
174
202
  },
175
- sp: SharePointVersion.SPO
203
+ sp: SharePointVersion.SPO,
204
+ yo: {
205
+ range: '^3',
206
+ fix: 'npm i -g yo@3'
207
+ }
176
208
  },
177
209
  '1.7.0': {
178
210
  gulp: {
179
- range: '^3.0.0',
211
+ range: '^3',
180
212
  fix: 'npm i -g gulp@3'
181
213
  },
182
214
  node: {
183
- range: '^8.0.0',
215
+ range: '^8',
184
216
  fix: 'Install Node.js v8'
185
217
  },
186
218
  react: {
187
219
  range: '16.3.2',
188
220
  fix: 'npm i react@16.3.2'
189
221
  },
190
- sp: SharePointVersion.SPO
222
+ sp: SharePointVersion.SPO,
223
+ yo: {
224
+ range: '^3',
225
+ fix: 'npm i -g yo@3'
226
+ }
191
227
  },
192
228
  '1.7.1': {
193
229
  gulp: {
194
- range: '^3.0.0',
230
+ range: '^3',
195
231
  fix: 'npm i -g gulp@3'
196
232
  },
197
233
  node: {
198
- range: '^8.0.0',
234
+ range: '^8',
199
235
  fix: 'Install Node.js v8'
200
236
  },
201
237
  react: {
202
238
  range: '16.3.2',
203
239
  fix: 'npm i react@16.3.2'
204
240
  },
205
- sp: SharePointVersion.SPO
241
+ sp: SharePointVersion.SPO,
242
+ yo: {
243
+ range: '^3',
244
+ fix: 'npm i -g yo@3'
245
+ }
206
246
  },
207
247
  '1.8.0': {
208
248
  gulp: {
209
- range: '^3.0.0',
249
+ range: '^3',
210
250
  fix: 'npm i -g gulp@3'
211
251
  },
212
252
  node: {
213
- range: '^8.0.0',
253
+ range: '^8',
214
254
  fix: 'Install Node.js v8'
215
255
  },
216
256
  react: {
217
257
  range: '16.7.0',
218
258
  fix: 'npm i react@16.7.0'
219
259
  },
220
- sp: SharePointVersion.SPO
260
+ sp: SharePointVersion.SPO,
261
+ yo: {
262
+ range: '^3',
263
+ fix: 'npm i -g yo@3'
264
+ }
221
265
  },
222
266
  '1.8.1': {
223
267
  gulp: {
224
- range: '^3.0.0',
268
+ range: '^3',
225
269
  fix: 'npm i -g gulp@3'
226
270
  },
227
271
  node: {
228
- range: '^8.0.0',
272
+ range: '^8',
229
273
  fix: 'Install Node.js v8'
230
274
  },
231
275
  react: {
232
276
  range: '16.7.0',
233
277
  fix: 'npm i react@16.7.0'
234
278
  },
235
- sp: SharePointVersion.SPO
279
+ sp: SharePointVersion.SPO,
280
+ yo: {
281
+ range: '^3',
282
+ fix: 'npm i -g yo@3'
283
+ }
236
284
  },
237
285
  '1.8.2': {
238
286
  gulp: {
239
- range: '^3.0.0',
287
+ range: '^3',
240
288
  fix: 'npm i -g gulp@3'
241
289
  },
242
290
  node: {
243
- range: '^8.0.0 || ^10.0.0',
291
+ range: '^8 || ^10',
244
292
  fix: 'Install Node.js v10'
245
293
  },
246
294
  react: {
247
295
  range: '16.7.0',
248
296
  fix: 'npm i react@16.7.0'
249
297
  },
250
- sp: SharePointVersion.SPO
298
+ sp: SharePointVersion.SPO,
299
+ yo: {
300
+ range: '^3',
301
+ fix: 'npm i -g yo@3'
302
+ }
251
303
  },
252
304
  '1.9.0': {
253
305
  gulp: {
254
- range: '^3.0.0',
306
+ range: '^3',
255
307
  fix: 'npm i -g gulp@3'
256
308
  },
257
309
  node: {
258
- range: '^8.0.0 || ^10.0.0',
310
+ range: '^8 || ^10',
259
311
  fix: 'Install Node.js v10'
260
312
  },
261
313
  react: {
262
314
  range: '16.8.5',
263
315
  fix: 'npm i react@16.8.5'
264
316
  },
265
- sp: SharePointVersion.SPO
317
+ sp: SharePointVersion.SPO,
318
+ yo: {
319
+ range: '^3',
320
+ fix: 'npm i -g yo@3'
321
+ }
266
322
  },
267
323
  '1.9.1': {
268
324
  gulp: {
269
- range: '^3.0.0',
325
+ range: '^3',
270
326
  fix: 'npm i -g gulp@3'
271
327
  },
272
328
  node: {
273
- range: '^10.0.0',
329
+ range: '^10',
274
330
  fix: 'Install Node.js v10'
275
331
  },
276
332
  react: {
277
333
  range: '16.8.5',
278
334
  fix: 'npm i react@16.8.5'
279
335
  },
280
- sp: SharePointVersion.SPO
336
+ sp: SharePointVersion.SPO,
337
+ yo: {
338
+ range: '^3',
339
+ fix: 'npm i -g yo@3'
340
+ }
281
341
  },
282
342
  '1.10.0': {
283
343
  gulp: {
284
- range: '^3.0.0',
344
+ range: '^3',
285
345
  fix: 'npm i -g gulp@3'
286
346
  },
287
347
  node: {
288
- range: '^10.0.0',
348
+ range: '^10',
289
349
  fix: 'Install Node.js v10'
290
350
  },
291
351
  react: {
292
352
  range: '16.8.5',
293
353
  fix: 'npm i react@16.8.5'
294
354
  },
295
- sp: SharePointVersion.SPO
355
+ sp: SharePointVersion.SPO,
356
+ yo: {
357
+ range: '^3',
358
+ fix: 'npm i -g yo@3'
359
+ }
296
360
  },
297
361
  '1.11.0': {
298
362
  gulp: {
299
- range: '^3.0.0',
363
+ range: '^3',
300
364
  fix: 'npm i -g gulp@3'
301
365
  },
302
366
  node: {
303
- range: '^10.0.0',
367
+ range: '^10',
304
368
  fix: 'Install Node.js v10'
305
369
  },
306
370
  react: {
307
371
  range: '16.8.5',
308
372
  fix: 'npm i react@16.8.5'
309
373
  },
310
- sp: SharePointVersion.SPO
374
+ sp: SharePointVersion.SPO,
375
+ yo: {
376
+ range: '^3',
377
+ fix: 'npm i -g yo@3'
378
+ }
311
379
  },
312
380
  '1.12.0': {
313
381
  gulp: {
314
- range: '^4.0.0',
382
+ range: '^4',
315
383
  fix: 'npm i -g gulp@4'
316
384
  },
317
385
  node: {
318
- range: '^12.0.0',
386
+ range: '^12',
319
387
  fix: 'Install Node.js v12'
320
388
  },
321
389
  react: {
322
390
  range: '16.9.0',
323
391
  fix: 'npm i react@16.9.0'
324
392
  },
325
- sp: SharePointVersion.SPO
393
+ sp: SharePointVersion.SPO,
394
+ yo: {
395
+ range: '^3',
396
+ fix: 'npm i -g yo@3'
397
+ }
326
398
  },
327
399
  '1.12.1': {
328
400
  gulp: {
329
- range: '^4.0.0',
401
+ range: '^4',
330
402
  fix: 'npm i -g gulp@4'
331
403
  },
332
404
  node: {
333
- range: '^12.0.0 || ^14.0.0',
405
+ range: '^12 || ^14',
334
406
  fix: 'Install Node.js v12 or v14'
335
407
  },
336
408
  react: {
337
409
  range: '16.9.0',
338
410
  fix: 'npm i react@16.9.0'
339
411
  },
340
- sp: SharePointVersion.SPO
412
+ sp: SharePointVersion.SPO,
413
+ yo: {
414
+ range: '^3',
415
+ fix: 'npm i -g yo@3'
416
+ }
417
+ },
418
+ '1.13.0': {
419
+ gulp: {
420
+ range: '^4',
421
+ fix: 'npm i -g gulp@4'
422
+ },
423
+ node: {
424
+ range: '^12 || ^14',
425
+ fix: 'Install Node.js v12 or v14'
426
+ },
427
+ react: {
428
+ range: '16.9.0',
429
+ fix: 'npm i react@16.9.0'
430
+ },
431
+ sp: SharePointVersion.SPO,
432
+ yo: {
433
+ range: '^4',
434
+ fix: 'npm i -g yo@4'
435
+ }
436
+ },
437
+ '1.13.1': {
438
+ gulp: {
439
+ range: '^4',
440
+ fix: 'npm i -g gulp@4'
441
+ },
442
+ node: {
443
+ range: '^12 || ^14',
444
+ fix: 'Install Node.js v12 or v14'
445
+ },
446
+ react: {
447
+ range: '16.9.0',
448
+ fix: 'npm i react@16.9.0'
449
+ },
450
+ sp: SharePointVersion.SPO,
451
+ yo: {
452
+ range: '^4',
453
+ fix: 'npm i -g yo@4'
454
+ }
341
455
  }
342
456
  };
343
457
  }
@@ -373,7 +487,7 @@ class SpfxDoctorCommand extends AnonymousCommand_1.default {
373
487
  })
374
488
  .then(_ => this.checkSharePointCompatibility(spfxVersion, prerequisites, args, fixes, logger))
375
489
  .then(_ => this.checkNodeVersion(prerequisites, fixes, logger))
376
- .then(_ => this.checkYo(fixes, logger))
490
+ .then(_ => this.checkYo(prerequisites, fixes, logger))
377
491
  .then(_ => this.checkGulp(prerequisites, fixes, logger))
378
492
  .then(_ => this.checkReact(prerequisites, fixes, logger))
379
493
  .then(_ => this.checkTypeScript(fixes, logger))
@@ -424,16 +538,16 @@ class SpfxDoctorCommand extends AnonymousCommand_1.default {
424
538
  this.checkStatus('Node', nodeVersion, prerequisites.node, OptionalOrRequired.Required, fixes, logger);
425
539
  });
426
540
  }
427
- checkYo(fixes, logger) {
541
+ checkYo(prerequisites, fixes, logger) {
428
542
  return this
429
543
  .getPackageVersion('yo', PackageSearchMode.GlobalOnly, HandlePromise.Continue, logger)
430
544
  .then((yoVersion) => {
431
545
  if (yoVersion) {
432
- logger.log(this.getStatus(CheckStatus.Success, `yo v${yoVersion}`));
546
+ this.checkStatus('yo', yoVersion, prerequisites.yo, OptionalOrRequired.Required, fixes, logger);
433
547
  }
434
548
  else {
435
549
  logger.log(this.getStatus(CheckStatus.Failure, `yo not found`));
436
- fixes.push('npm i -g yo');
550
+ fixes.push(prerequisites.yo.fix);
437
551
  }
438
552
  });
439
553
  }
@@ -446,7 +560,7 @@ class SpfxDoctorCommand extends AnonymousCommand_1.default {
446
560
  }
447
561
  else {
448
562
  logger.log(this.getStatus(CheckStatus.Failure, `gulp not found`));
449
- fixes.push('npm i -g gulp');
563
+ fixes.push(prerequisites.gulp.fix);
450
564
  }
451
565
  });
452
566
  }
@@ -0,0 +1,52 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const request_1 = require("../../../../request");
4
+ const SpoCommand_1 = require("../../../base/SpoCommand");
5
+ const commands_1 = require("../../commands");
6
+ class SpoContentTypeListCommand extends SpoCommand_1.default {
7
+ get name() {
8
+ return commands_1.default.CONTENTTYPE_LIST;
9
+ }
10
+ get description() {
11
+ return 'Lists all available content types in the specified site';
12
+ }
13
+ defaultProperties() {
14
+ return ['StringId', 'Name', 'Hidden', 'ReadOnly', 'Sealed'];
15
+ }
16
+ commandAction(logger, args, cb) {
17
+ let requestUrl = `${args.options.webUrl}/_api/web/ContentTypes`;
18
+ if (args.options.category) {
19
+ requestUrl += `?$filter=Group eq '${encodeURIComponent(args.options.category)}'`;
20
+ }
21
+ const requestOptions = {
22
+ url: requestUrl,
23
+ headers: {
24
+ accept: 'application/json;odata=nometadata'
25
+ },
26
+ responseType: 'json'
27
+ };
28
+ request_1.default
29
+ .get(requestOptions)
30
+ .then((res) => {
31
+ logger.log(res.value);
32
+ cb();
33
+ }, (err) => this.handleRejectedODataJsonPromise(err, logger, cb));
34
+ }
35
+ options() {
36
+ const options = [
37
+ {
38
+ option: '-u, --webUrl <webUrl>'
39
+ },
40
+ {
41
+ option: '-c, --category [category]'
42
+ }
43
+ ];
44
+ const parentOptions = super.options();
45
+ return options.concat(parentOptions);
46
+ }
47
+ validate(args) {
48
+ return SpoCommand_1.default.isValidSharePointUrl(args.options.webUrl);
49
+ }
50
+ }
51
+ module.exports = new SpoContentTypeListCommand();
52
+ //# sourceMappingURL=contenttype-list.js.map
@@ -16,6 +16,7 @@ class SpoListGetCommand extends SpoCommand_1.default {
16
16
  telemetryProps.id = (!(!args.options.id)).toString();
17
17
  telemetryProps.title = (!(!args.options.title)).toString();
18
18
  telemetryProps.properties = (!(!args.options.properties)).toString();
19
+ telemetryProps.withPermissions = typeof args.options.withPermissions !== 'undefined';
19
20
  return telemetryProps;
20
21
  }
21
22
  commandAction(logger, args, cb) {
@@ -29,10 +30,10 @@ class SpoListGetCommand extends SpoCommand_1.default {
29
30
  else {
30
31
  requestUrl = `${args.options.webUrl}/_api/web/lists/GetByTitle('${encodeURIComponent(args.options.title)}')`;
31
32
  }
32
- const propertiesSelect = args.options.properties ? `?$select=${encodeURIComponent(args.options.properties)}` : ``;
33
+ let propertiesSelect = args.options.properties ? `?$select=${encodeURIComponent(args.options.properties)}` : ``;
34
+ propertiesSelect += args.options.withPermissions ? `${args.options.properties ? '&' : '?'}$expand=HasUniqueRoleAssignments,RoleAssignments/Member,RoleAssignments/RoleDefinitionBindings` : ``;
33
35
  const requestOptions = {
34
36
  url: requestUrl + propertiesSelect,
35
- method: 'GET',
36
37
  headers: {
37
38
  'accept': 'application/json;odata=nometadata'
38
39
  },
@@ -58,6 +59,9 @@ class SpoListGetCommand extends SpoCommand_1.default {
58
59
  },
59
60
  {
60
61
  option: '-p, --properties [properties]'
62
+ },
63
+ {
64
+ option: '--withPermissions'
61
65
  }
62
66
  ];
63
67
  const parentOptions = super.options();
@@ -0,0 +1,90 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const request_1 = require("../../../../request");
4
+ const Utils_1 = require("../../../../Utils");
5
+ const SpoCommand_1 = require("../../../base/SpoCommand");
6
+ const commands_1 = require("../../commands");
7
+ class SpoListItemAttachmentListCommand extends SpoCommand_1.default {
8
+ get name() {
9
+ return commands_1.default.LISTITEM_ATTACHMENT_LIST;
10
+ }
11
+ get description() {
12
+ return 'Gets the attachments associated to a list item';
13
+ }
14
+ getTelemetryProperties(args) {
15
+ const telemetryProps = super.getTelemetryProperties(args);
16
+ telemetryProps.listId = typeof args.options.listId !== 'undefined';
17
+ telemetryProps.listTitle = typeof args.options.listTitle !== 'undefined';
18
+ return telemetryProps;
19
+ }
20
+ defaultProperties() {
21
+ return ['FileName', 'ServerRelativeUrl'];
22
+ }
23
+ commandAction(logger, args, cb) {
24
+ const listIdArgument = args.options.listId || '';
25
+ const listTitleArgument = args.options.listTitle || '';
26
+ const listRestUrl = (args.options.listId ?
27
+ `${args.options.webUrl}/_api/web/lists(guid'${encodeURIComponent(listIdArgument)}')`
28
+ : `${args.options.webUrl}/_api/web/lists/getByTitle('${encodeURIComponent(listTitleArgument)}')`);
29
+ const requestOptions = {
30
+ url: `${listRestUrl}/items(${args.options.itemId})?$select=AttachmentFiles&$expand=AttachmentFiles`,
31
+ method: 'GET',
32
+ headers: {
33
+ 'accept': 'application/json;odata=nometadata'
34
+ },
35
+ responseType: 'json'
36
+ };
37
+ request_1.default
38
+ .get(requestOptions)
39
+ .then((attachmentFiles) => {
40
+ if (attachmentFiles.AttachmentFiles && attachmentFiles.AttachmentFiles.length > 0) {
41
+ logger.log(attachmentFiles.AttachmentFiles);
42
+ }
43
+ else {
44
+ if (this.verbose) {
45
+ logger.logToStderr('No attachments found');
46
+ }
47
+ }
48
+ cb();
49
+ }, (err) => this.handleRejectedODataJsonPromise(err, logger, cb));
50
+ }
51
+ options() {
52
+ const options = [
53
+ {
54
+ option: '-u, --webUrl <webUrl>'
55
+ },
56
+ {
57
+ option: '--itemId <itemId>'
58
+ },
59
+ {
60
+ option: '--listId [listId]'
61
+ },
62
+ {
63
+ option: '--listTitle [listTitle]'
64
+ }
65
+ ];
66
+ const parentOptions = super.options();
67
+ return options.concat(parentOptions);
68
+ }
69
+ validate(args) {
70
+ const isValidSharePointUrl = SpoCommand_1.default.isValidSharePointUrl(args.options.webUrl);
71
+ if (isValidSharePointUrl !== true) {
72
+ return isValidSharePointUrl;
73
+ }
74
+ if (!args.options.listId && !args.options.listTitle) {
75
+ return `Specify listId or listTitle`;
76
+ }
77
+ if (args.options.listId && args.options.listTitle) {
78
+ return `Specify listId or listTitle but not both`;
79
+ }
80
+ if (args.options.listId && !Utils_1.default.isValidGuid(args.options.listId)) {
81
+ return `${args.options.listId} in option listId is not a valid GUID`;
82
+ }
83
+ if (isNaN(parseInt(args.options.itemId))) {
84
+ return `${args.options.itemId} is not a number`;
85
+ }
86
+ return true;
87
+ }
88
+ }
89
+ module.exports = new SpoListItemAttachmentListCommand();
90
+ //# sourceMappingURL=listitem-attachment-list.js.map
@@ -1,10 +1,12 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Page = void 0;
3
+ exports.Page = exports.supportedPromoteAs = exports.supportedPageLayouts = void 0;
4
4
  const request_1 = require("../../../../request");
5
5
  const Utils_1 = require("../../../../Utils");
6
6
  const clientsidepages_1 = require("./clientsidepages");
7
7
  const pageMethods_1 = require("./pageMethods");
8
+ exports.supportedPageLayouts = ['Article', 'Home', 'SingleWebPartAppPage', 'RepostPage', 'HeaderlessSearchResults', 'Spaces', 'Topic'];
9
+ exports.supportedPromoteAs = ['HomePage', 'NewsPage', 'Template'];
8
10
  class Page {
9
11
  static getPage(name, webUrl, logger, debug, verbose) {
10
12
  return new Promise((resolve, reject) => {