@pnp/cli-microsoft365 12.0.0-beta.d58fb77 → 12.0.0-beta.e3af9f8

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 (91) hide show
  1. package/allCommands.json +1 -1
  2. package/allCommandsFull.json +1 -1
  3. package/dist/Auth.js +4 -1
  4. package/dist/cli/cli.js +3 -0
  5. package/dist/m365/entra/commands/m365group/m365group-add.js +52 -97
  6. package/dist/m365/entra/commands/m365group/m365group-conversation-list.js +20 -33
  7. package/dist/m365/entra/commands/m365group/m365group-conversation-post-list.js +20 -39
  8. package/dist/m365/entra/commands/m365group/m365group-get.js +20 -41
  9. package/dist/m365/entra/commands/m365group/m365group-list.js +11 -31
  10. package/dist/m365/entra/commands/m365group/m365group-recyclebinitem-clear.js +8 -22
  11. package/dist/m365/entra/commands/m365group/m365group-recyclebinitem-list.js +9 -25
  12. package/dist/m365/entra/commands/m365group/m365group-recyclebinitem-remove.js +21 -43
  13. package/dist/m365/entra/commands/m365group/m365group-recyclebinitem-restore.js +21 -41
  14. package/dist/m365/entra/commands/m365group/m365group-remove.js +25 -46
  15. package/dist/m365/entra/commands/m365group/m365group-renew.js +19 -32
  16. package/dist/m365/entra/commands/m365group/m365group-set.js +86 -141
  17. package/dist/m365/entra/commands/m365group/m365group-teamify.js +20 -43
  18. package/dist/m365/entra/commands/m365group/m365group-user-add.js +44 -77
  19. package/dist/m365/entra/commands/m365group/m365group-user-list.js +28 -55
  20. package/dist/m365/entra/commands/m365group/m365group-user-remove.js +37 -74
  21. package/dist/m365/entra/commands/m365group/m365group-user-set.js +45 -77
  22. package/dist/m365/spe/commands/container/container-permission-remove.js +94 -0
  23. package/dist/m365/spe/commands.js +1 -0
  24. package/dist/m365/spo/commands/listitem/listitem-add.js +27 -55
  25. package/dist/m365/spo/commands/listitem/listitem-attachment-add.js +30 -58
  26. package/dist/m365/spo/commands/listitem/listitem-attachment-get.js +27 -52
  27. package/dist/m365/spo/commands/listitem/listitem-attachment-list.js +26 -50
  28. package/dist/m365/spo/commands/listitem/listitem-attachment-remove.js +28 -55
  29. package/dist/m365/spo/commands/listitem/listitem-attachment-set.js +30 -57
  30. package/dist/m365/spo/commands/listitem/listitem-batch-add.js +36 -58
  31. package/dist/m365/spo/commands/listitem/listitem-batch-remove.js +68 -92
  32. package/dist/m365/spo/commands/listitem/listitem-batch-set.js +37 -57
  33. package/dist/m365/spo/commands/listitem/listitem-get.js +45 -68
  34. package/dist/m365/spo/commands/listitem/listitem-isrecord.js +31 -55
  35. package/dist/m365/spo/commands/listitem/listitem-list.js +47 -81
  36. package/dist/m365/spo/commands/listitem/listitem-record-declare.js +37 -60
  37. package/dist/m365/spo/commands/listitem/listitem-record-lock.js +30 -52
  38. package/dist/m365/spo/commands/listitem/listitem-record-undeclare.js +31 -52
  39. package/dist/m365/spo/commands/listitem/listitem-record-unlock.js +30 -52
  40. package/dist/m365/spo/commands/listitem/listitem-remove.js +33 -61
  41. package/dist/m365/spo/commands/listitem/listitem-retentionlabel-ensure.js +46 -67
  42. package/dist/m365/spo/commands/listitem/listitem-retentionlabel-remove.js +33 -56
  43. package/dist/m365/spo/commands/listitem/listitem-roleassignment-add.js +55 -98
  44. package/dist/m365/spo/commands/listitem/listitem-roleassignment-remove.js +48 -74
  45. package/dist/m365/spo/commands/listitem/listitem-roleinheritance-break.js +33 -56
  46. package/dist/m365/spo/commands/listitem/listitem-roleinheritance-reset.js +31 -53
  47. package/dist/m365/spo/commands/listitem/listitem-set.js +33 -58
  48. package/dist/m365/spo/commands/tenant/tenant-applicationcustomizer-add.js +8 -1
  49. package/dist/m365/spo/commands/tenant/tenant-commandset-add.js +8 -1
  50. package/dist/m365/teams/commands/report/report-deviceusagedistributionusercounts.js +10 -0
  51. package/dist/m365/teams/commands/report/report-deviceusageusercounts.js +10 -0
  52. package/dist/m365/teams/commands/report/report-deviceusageuserdetail.js +22 -0
  53. package/dist/m365/teams/commands/report/report-directroutingcalls.js +19 -39
  54. package/dist/m365/teams/commands/report/report-pstncalls.js +19 -39
  55. package/dist/m365/teams/commands/report/report-useractivitycounts.js +10 -0
  56. package/dist/m365/teams/commands/report/report-useractivityusercounts.js +10 -0
  57. package/dist/m365/teams/commands/report/report-useractivityuserdetail.js +22 -0
  58. package/dist/m365/teams/commands/tab/tab-add.js +23 -49
  59. package/dist/m365/teams/commands/tab/tab-get.js +55 -56
  60. package/dist/m365/teams/commands/tab/tab-list.js +17 -28
  61. package/dist/m365/teams/commands/tab/tab-remove.js +23 -42
  62. package/dist/m365/teams/commands/team/team-add.js +76 -114
  63. package/dist/m365/teams/commands/team/team-app-list.js +23 -36
  64. package/dist/m365/teams/commands/team/team-archive.js +24 -39
  65. package/dist/m365/teams/commands/team/team-clone.js +28 -62
  66. package/dist/m365/teams/commands/team/team-get.js +23 -36
  67. package/dist/m365/teams/commands/team/team-list.js +43 -57
  68. package/dist/m365/teams/commands/team/team-remove.js +24 -37
  69. package/dist/m365/teams/commands/team/team-set.js +23 -52
  70. package/dist/m365/teams/commands/team/team-unarchive.js +23 -28
  71. package/dist/m365/teams/commands/user/user-app-add.js +40 -49
  72. package/dist/m365/teams/commands/user/user-app-list.js +26 -39
  73. package/dist/m365/teams/commands/user/user-app-remove.js +37 -49
  74. package/dist/m365/teams/commands/user/user-app-upgrade.js +36 -52
  75. package/dist/m365/teams/commands/user/user-list.js +17 -39
  76. package/dist/m365/tenant/commands/report/report-activeusercounts.js +2 -1
  77. package/dist/m365/tenant/commands/report/report-activeuserdetail.js +2 -1
  78. package/dist/m365/tenant/commands/report/report-office365activationcounts.js +9 -0
  79. package/dist/m365/tenant/commands/report/report-office365activationsusercounts.js +9 -0
  80. package/dist/m365/tenant/commands/report/report-office365activationsuserdetail.js +9 -0
  81. package/dist/m365/tenant/commands/report/report-servicesusercounts.js +2 -1
  82. package/dist/m365/tenant/commands/report/report-settings-get.js +5 -0
  83. package/dist/m365/tenant/commands/serviceannouncement/serviceannouncement-health-get.js +9 -20
  84. package/dist/m365/tenant/commands/serviceannouncement/serviceannouncement-health-list.js +8 -20
  85. package/dist/m365/tenant/commands/serviceannouncement/serviceannouncement-healthissue-get.js +8 -15
  86. package/dist/m365/tenant/commands/serviceannouncement/serviceannouncement-healthissue-list.js +8 -15
  87. package/dist/m365/tenant/commands/serviceannouncement/serviceannouncement-message-get.js +12 -26
  88. package/dist/m365/tenant/commands/serviceannouncement/serviceannouncement-message-list.js +8 -22
  89. package/dist/utils/zod.js +4 -4
  90. package/docs/docs/cmd/spe/container/container-permission-remove.mdx +78 -0
  91. package/package.json +1 -1
@@ -0,0 +1,94 @@
1
+ import { z } from 'zod';
2
+ import { globalOptionsZod } from '../../../../Command.js';
3
+ import commands from '../../commands.js';
4
+ import GraphCommand from '../../../base/GraphCommand.js';
5
+ import { spe } from '../../../../utils/spe.js';
6
+ import request from '../../../../request.js';
7
+ import { formatting } from '../../../../utils/formatting.js';
8
+ import { cli } from '../../../../cli/cli.js';
9
+ export const options = z.strictObject({
10
+ ...globalOptionsZod.shape,
11
+ id: z.string().alias('i'),
12
+ containerId: z.string().optional(),
13
+ containerName: z.string().alias('n').optional(),
14
+ containerTypeId: z.uuid().optional(),
15
+ containerTypeName: z.string().optional(),
16
+ force: z.boolean().alias('f').optional()
17
+ });
18
+ class SpeContainerPermissionRemoveCommand extends GraphCommand {
19
+ get name() {
20
+ return commands.CONTAINER_PERMISSION_REMOVE;
21
+ }
22
+ get description() {
23
+ return 'Removes SharePoint Embedded Container permission';
24
+ }
25
+ get schema() {
26
+ return options;
27
+ }
28
+ getRefinedSchema(schema) {
29
+ return schema
30
+ .refine((options) => [options.containerId, options.containerName].filter(o => o !== undefined).length === 1, {
31
+ error: 'Use one of the following options: containerId or containerName.',
32
+ params: {
33
+ customCode: 'optionSet',
34
+ options: ['containerId', 'containerName']
35
+ }
36
+ })
37
+ .refine((options) => !options.containerName || [options.containerTypeId, options.containerTypeName].filter(o => o !== undefined).length === 1, {
38
+ error: 'Use one of the following options when specifying the container name: containerTypeId or containerTypeName.',
39
+ params: {
40
+ customCode: 'optionSet',
41
+ options: ['containerTypeId', 'containerTypeName']
42
+ }
43
+ })
44
+ .refine((options) => options.containerName || [options.containerTypeId, options.containerTypeName].filter(o => o !== undefined).length === 0, {
45
+ error: 'Options containerTypeId and containerTypeName are only required when removing permissions from a container by name.'
46
+ });
47
+ }
48
+ async commandAction(logger, args) {
49
+ if (!args.options.force) {
50
+ const result = await cli.promptForConfirmation({ message: `Are you sure you want to remove permission '${args.options.id}' from container '${args.options.containerId || args.options.containerName}'?` });
51
+ if (!result) {
52
+ return;
53
+ }
54
+ }
55
+ try {
56
+ const containerId = await this.getContainerId(args.options, logger);
57
+ if (this.verbose) {
58
+ await logger.logToStderr(`Removing permissions from container with ID '${containerId}'...`);
59
+ }
60
+ const requestOptions = {
61
+ url: `${this.resource}/v1.0/storage/fileStorage/containers/${formatting.encodeQueryParameter(containerId)}/permissions/${formatting.encodeQueryParameter(args.options.id)}`,
62
+ headers: {
63
+ accept: 'application/json;odata.metadata=none'
64
+ },
65
+ responseType: 'json'
66
+ };
67
+ await request.delete(requestOptions);
68
+ }
69
+ catch (err) {
70
+ this.handleRejectedODataJsonPromise(err);
71
+ }
72
+ }
73
+ async getContainerId(options, logger) {
74
+ if (options.containerId) {
75
+ return options.containerId;
76
+ }
77
+ const containerTypeId = await this.getContainerTypeId(options, logger);
78
+ if (this.verbose) {
79
+ await logger.logToStderr(`Getting container ID for container with name '${options.containerName}'...`);
80
+ }
81
+ return spe.getContainerIdByName(containerTypeId, options.containerName);
82
+ }
83
+ async getContainerTypeId(options, logger) {
84
+ if (options.containerTypeId) {
85
+ return options.containerTypeId;
86
+ }
87
+ if (this.verbose) {
88
+ await logger.logToStderr(`Getting container type with name '${options.containerTypeName}'...`);
89
+ }
90
+ return spe.getContainerTypeIdByName(options.containerTypeName);
91
+ }
92
+ }
93
+ export default new SpeContainerPermissionRemoveCommand();
94
+ //# sourceMappingURL=container-permission-remove.js.map
@@ -7,6 +7,7 @@ export default {
7
7
  CONTAINER_REMOVE: `${prefix} container remove`,
8
8
  CONTAINER_SET: `${prefix} container set`,
9
9
  CONTAINER_PERMISSION_LIST: `${prefix} container permission list`,
10
+ CONTAINER_PERMISSION_REMOVE: `${prefix} container permission remove`,
10
11
  CONTAINER_RECYCLEBINITEM_LIST: `${prefix} container recyclebinitem list`,
11
12
  CONTAINER_RECYCLEBINITEM_REMOVE: `${prefix} container recyclebinitem remove`,
12
13
  CONTAINER_RECYCLEBINITEM_RESTORE: `${prefix} container recyclebinitem restore`,
@@ -1,10 +1,6 @@
1
- var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
2
- if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
3
- if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
4
- return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
5
- };
6
- var _SpoListItemAddCommand_instances, _SpoListItemAddCommand_initTelemetry, _SpoListItemAddCommand_initOptions, _SpoListItemAddCommand_initValidators, _SpoListItemAddCommand_initTypes, _SpoListItemAddCommand_initOptionSets;
7
1
  import os from 'os';
2
+ import { z } from 'zod';
3
+ import { globalOptionsZod } from '../../../../Command.js';
8
4
  import request from '../../../../request.js';
9
5
  import { basic } from '../../../../utils/basic.js';
10
6
  import { formatting } from '../../../../utils/formatting.js';
@@ -13,6 +9,19 @@ import { urlUtil } from '../../../../utils/urlUtil.js';
13
9
  import { validation } from '../../../../utils/validation.js';
14
10
  import SpoCommand from '../../../base/SpoCommand.js';
15
11
  import commands from '../../commands.js';
12
+ export const options = z.object({
13
+ ...globalOptionsZod.shape,
14
+ webUrl: z.string().refine(url => validation.isValidSharePointUrl(url) === true, {
15
+ error: e => `'${e.input}' is not a valid SharePoint Online site URL.`
16
+ }).alias('u'),
17
+ listId: z.string().refine(id => validation.isValidGuid(id), {
18
+ error: e => `${e.input} in option listId is not a valid GUID`
19
+ }).optional().alias('l'),
20
+ listTitle: z.string().optional().alias('t'),
21
+ listUrl: z.string().optional(),
22
+ contentType: z.string().optional().alias('c'),
23
+ folder: z.string().optional()
24
+ }).catchall(z.unknown());
16
25
  class SpoListItemAddCommand extends SpoCommand {
17
26
  allowUnknownOptions() {
18
27
  return true;
@@ -23,14 +32,18 @@ class SpoListItemAddCommand extends SpoCommand {
23
32
  get description() {
24
33
  return 'Creates a list item in the specified list';
25
34
  }
26
- constructor() {
27
- super();
28
- _SpoListItemAddCommand_instances.add(this);
29
- __classPrivateFieldGet(this, _SpoListItemAddCommand_instances, "m", _SpoListItemAddCommand_initTelemetry).call(this);
30
- __classPrivateFieldGet(this, _SpoListItemAddCommand_instances, "m", _SpoListItemAddCommand_initOptions).call(this);
31
- __classPrivateFieldGet(this, _SpoListItemAddCommand_instances, "m", _SpoListItemAddCommand_initValidators).call(this);
32
- __classPrivateFieldGet(this, _SpoListItemAddCommand_instances, "m", _SpoListItemAddCommand_initTypes).call(this);
33
- __classPrivateFieldGet(this, _SpoListItemAddCommand_instances, "m", _SpoListItemAddCommand_initOptionSets).call(this);
35
+ get schema() {
36
+ return options;
37
+ }
38
+ getRefinedSchema(schema) {
39
+ return schema
40
+ .refine(opts => [opts.listId, opts.listTitle, opts.listUrl].filter(o => o !== undefined).length === 1, {
41
+ error: 'Use one of the following options: listId, listTitle, listUrl.',
42
+ params: {
43
+ customCode: 'optionSet',
44
+ options: ['listId', 'listTitle', 'listUrl']
45
+ }
46
+ });
34
47
  }
35
48
  async commandAction(logger, args) {
36
49
  try {
@@ -177,46 +190,5 @@ class SpoListItemAddCommand extends SpoCommand {
177
190
  return requestBody;
178
191
  }
179
192
  }
180
- _SpoListItemAddCommand_instances = new WeakSet(), _SpoListItemAddCommand_initTelemetry = function _SpoListItemAddCommand_initTelemetry() {
181
- this.telemetry.push((args) => {
182
- Object.assign(this.telemetryProperties, {
183
- listId: typeof args.options.listId !== 'undefined',
184
- listTitle: typeof args.options.listTitle !== 'undefined',
185
- listUrl: typeof args.options.listUrl !== 'undefined',
186
- contentType: typeof args.options.contentType !== 'undefined',
187
- folder: typeof args.options.folder !== 'undefined'
188
- });
189
- });
190
- }, _SpoListItemAddCommand_initOptions = function _SpoListItemAddCommand_initOptions() {
191
- this.options.unshift({
192
- option: '-u, --webUrl <webUrl>'
193
- }, {
194
- option: '-l, --listId [listId]'
195
- }, {
196
- option: '-t, --listTitle [listTitle]'
197
- }, {
198
- option: '--listUrl [listUrl]'
199
- }, {
200
- option: '-c, --contentType [contentType]'
201
- }, {
202
- option: '--folder [folder]'
203
- });
204
- }, _SpoListItemAddCommand_initValidators = function _SpoListItemAddCommand_initValidators() {
205
- this.validators.push(async (args) => {
206
- const isValidSharePointUrl = validation.isValidSharePointUrl(args.options.webUrl);
207
- if (isValidSharePointUrl !== true) {
208
- return isValidSharePointUrl;
209
- }
210
- if (args.options.listId &&
211
- !validation.isValidGuid(args.options.listId)) {
212
- return `${args.options.listId} in option listId is not a valid GUID`;
213
- }
214
- return true;
215
- });
216
- }, _SpoListItemAddCommand_initTypes = function _SpoListItemAddCommand_initTypes() {
217
- this.types.string.push('webUrl', 'listId', 'listTitle', 'listUrl', 'contentType', 'folder');
218
- }, _SpoListItemAddCommand_initOptionSets = function _SpoListItemAddCommand_initOptionSets() {
219
- this.optionSets.push({ options: ['listId', 'listTitle', 'listUrl'] });
220
- };
221
193
  export default new SpoListItemAddCommand();
222
194
  //# sourceMappingURL=listitem-add.js.map
@@ -1,9 +1,5 @@
1
- var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
2
- if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
3
- if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
4
- return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
5
- };
6
- var _SpoListItemAttachmentAddCommand_instances, _SpoListItemAttachmentAddCommand_initTelemetry, _SpoListItemAttachmentAddCommand_initOptions, _SpoListItemAttachmentAddCommand_initValidators, _SpoListItemAttachmentAddCommand_initOptionSets;
1
+ import { z } from 'zod';
2
+ import { globalOptionsZod } from '../../../../Command.js';
7
3
  import request from '../../../../request.js';
8
4
  import { formatting } from '../../../../utils/formatting.js';
9
5
  import { urlUtil } from '../../../../utils/urlUtil.js';
@@ -11,6 +7,22 @@ import { validation } from '../../../../utils/validation.js';
11
7
  import SpoCommand from '../../../base/SpoCommand.js';
12
8
  import commands from '../../commands.js';
13
9
  import fs from 'fs';
10
+ export const options = z.strictObject({
11
+ ...globalOptionsZod.shape,
12
+ webUrl: z.string().refine(url => validation.isValidSharePointUrl(url) === true, {
13
+ error: e => `'${e.input}' is not a valid SharePoint Online site URL.`
14
+ }).alias('u'),
15
+ listId: z.string().refine(id => validation.isValidGuid(id), {
16
+ error: e => `${e.input} in option listId is not a valid GUID.`
17
+ }).optional(),
18
+ listTitle: z.string().optional(),
19
+ listUrl: z.string().optional(),
20
+ listItemId: z.number().int().positive(),
21
+ filePath: z.string().refine(path => fs.existsSync(path), {
22
+ error: e => `File with path '${e.input}' was not found.`
23
+ }).alias('p'),
24
+ fileName: z.string().optional().alias('n')
25
+ });
14
26
  class SpoListItemAttachmentAddCommand extends SpoCommand {
15
27
  get name() {
16
28
  return commands.LISTITEM_ATTACHMENT_ADD;
@@ -18,13 +30,18 @@ class SpoListItemAttachmentAddCommand extends SpoCommand {
18
30
  get description() {
19
31
  return 'Adds an attachment to a list item';
20
32
  }
21
- constructor() {
22
- super();
23
- _SpoListItemAttachmentAddCommand_instances.add(this);
24
- __classPrivateFieldGet(this, _SpoListItemAttachmentAddCommand_instances, "m", _SpoListItemAttachmentAddCommand_initTelemetry).call(this);
25
- __classPrivateFieldGet(this, _SpoListItemAttachmentAddCommand_instances, "m", _SpoListItemAttachmentAddCommand_initOptions).call(this);
26
- __classPrivateFieldGet(this, _SpoListItemAttachmentAddCommand_instances, "m", _SpoListItemAttachmentAddCommand_initValidators).call(this);
27
- __classPrivateFieldGet(this, _SpoListItemAttachmentAddCommand_instances, "m", _SpoListItemAttachmentAddCommand_initOptionSets).call(this);
33
+ get schema() {
34
+ return options;
35
+ }
36
+ getRefinedSchema(schema) {
37
+ return schema
38
+ .refine(opts => [opts.listId, opts.listTitle, opts.listUrl].filter(o => o !== undefined).length === 1, {
39
+ error: 'Use one of the following options: listId, listTitle, listUrl.',
40
+ params: {
41
+ customCode: 'optionSet',
42
+ options: ['listId', 'listTitle', 'listUrl']
43
+ }
44
+ });
28
45
  }
29
46
  async commandAction(logger, args) {
30
47
  if (this.verbose) {
@@ -78,50 +95,5 @@ class SpoListItemAttachmentAddCommand extends SpoCommand {
78
95
  }
79
96
  }
80
97
  }
81
- _SpoListItemAttachmentAddCommand_instances = new WeakSet(), _SpoListItemAttachmentAddCommand_initTelemetry = function _SpoListItemAttachmentAddCommand_initTelemetry() {
82
- this.telemetry.push((args) => {
83
- Object.assign(this.telemetryProperties, {
84
- listId: typeof args.options.listId !== 'undefined',
85
- listTitle: typeof args.options.listTitle !== 'undefined',
86
- listUrl: typeof args.options.listUrl !== 'undefined',
87
- fileName: typeof args.options.fileName !== 'undefined'
88
- });
89
- });
90
- }, _SpoListItemAttachmentAddCommand_initOptions = function _SpoListItemAttachmentAddCommand_initOptions() {
91
- this.options.unshift({
92
- option: '-u, --webUrl <webUrl>'
93
- }, {
94
- option: '--listId [listId]'
95
- }, {
96
- option: '--listTitle [listTitle]'
97
- }, {
98
- option: '--listUrl [listUrl]'
99
- }, {
100
- option: '--listItemId <listItemId>'
101
- }, {
102
- option: '-p, --filePath <filePath>'
103
- }, {
104
- option: '-n, --fileName [fileName]'
105
- });
106
- }, _SpoListItemAttachmentAddCommand_initValidators = function _SpoListItemAttachmentAddCommand_initValidators() {
107
- this.validators.push(async (args) => {
108
- const isValidSharePointUrl = validation.isValidSharePointUrl(args.options.webUrl);
109
- if (isValidSharePointUrl !== true) {
110
- return isValidSharePointUrl;
111
- }
112
- if (isNaN(args.options.listItemId)) {
113
- return `${args.options.listItemId} in option listItemId is not a valid number.`;
114
- }
115
- if (args.options.listId && !validation.isValidGuid(args.options.listId)) {
116
- return `${args.options.listId} in option listId is not a valid GUID.`;
117
- }
118
- if (!fs.existsSync(args.options.filePath)) {
119
- return `File with path '${args.options.filePath}' was not found.`;
120
- }
121
- return true;
122
- });
123
- }, _SpoListItemAttachmentAddCommand_initOptionSets = function _SpoListItemAttachmentAddCommand_initOptionSets() {
124
- this.optionSets.push({ options: ['listId', 'listTitle', 'listUrl'] });
125
- };
126
98
  export default new SpoListItemAttachmentAddCommand();
127
99
  //# sourceMappingURL=listitem-attachment-add.js.map
@@ -1,15 +1,24 @@
1
- var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
2
- if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
3
- if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
4
- return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
5
- };
6
- var _SpoListItemAttachmentGetCommand_instances, _SpoListItemAttachmentGetCommand_initTelemetry, _SpoListItemAttachmentGetCommand_initOptions, _SpoListItemAttachmentGetCommand_initValidators, _SpoListItemAttachmentGetCommand_initOptionSets;
1
+ import { z } from 'zod';
2
+ import { globalOptionsZod } from '../../../../Command.js';
7
3
  import request from '../../../../request.js';
8
4
  import { formatting } from '../../../../utils/formatting.js';
9
5
  import { urlUtil } from '../../../../utils/urlUtil.js';
10
6
  import { validation } from '../../../../utils/validation.js';
11
7
  import SpoCommand from '../../../base/SpoCommand.js';
12
8
  import commands from '../../commands.js';
9
+ export const options = z.strictObject({
10
+ ...globalOptionsZod.shape,
11
+ webUrl: z.string().refine(url => validation.isValidSharePointUrl(url) === true, {
12
+ error: e => `'${e.input}' is not a valid SharePoint Online site URL.`
13
+ }).alias('u'),
14
+ listId: z.string().refine(id => validation.isValidGuid(id), {
15
+ error: e => `${e.input} in option listId is not a valid GUID.`
16
+ }).optional(),
17
+ listTitle: z.string().optional(),
18
+ listUrl: z.string().optional(),
19
+ listItemId: z.number().int().positive(),
20
+ fileName: z.string().alias('n')
21
+ });
13
22
  class SpoListItemAttachmentGetCommand extends SpoCommand {
14
23
  get name() {
15
24
  return commands.LISTITEM_ATTACHMENT_GET;
@@ -17,13 +26,18 @@ class SpoListItemAttachmentGetCommand extends SpoCommand {
17
26
  get description() {
18
27
  return 'Gets an attachment from a list item';
19
28
  }
20
- constructor() {
21
- super();
22
- _SpoListItemAttachmentGetCommand_instances.add(this);
23
- __classPrivateFieldGet(this, _SpoListItemAttachmentGetCommand_instances, "m", _SpoListItemAttachmentGetCommand_initTelemetry).call(this);
24
- __classPrivateFieldGet(this, _SpoListItemAttachmentGetCommand_instances, "m", _SpoListItemAttachmentGetCommand_initOptions).call(this);
25
- __classPrivateFieldGet(this, _SpoListItemAttachmentGetCommand_instances, "m", _SpoListItemAttachmentGetCommand_initValidators).call(this);
26
- __classPrivateFieldGet(this, _SpoListItemAttachmentGetCommand_instances, "m", _SpoListItemAttachmentGetCommand_initOptionSets).call(this);
29
+ get schema() {
30
+ return options;
31
+ }
32
+ getRefinedSchema(schema) {
33
+ return schema
34
+ .refine(opts => [opts.listId, opts.listTitle, opts.listUrl].filter(o => o !== undefined).length === 1, {
35
+ error: 'Use one of the following options: listId, listTitle, listUrl.',
36
+ params: {
37
+ customCode: 'optionSet',
38
+ options: ['listId', 'listTitle', 'listUrl']
39
+ }
40
+ });
27
41
  }
28
42
  async commandAction(logger, args) {
29
43
  let requestUrl = `${args.options.webUrl}/_api/web`;
@@ -54,44 +68,5 @@ class SpoListItemAttachmentGetCommand extends SpoCommand {
54
68
  }
55
69
  }
56
70
  }
57
- _SpoListItemAttachmentGetCommand_instances = new WeakSet(), _SpoListItemAttachmentGetCommand_initTelemetry = function _SpoListItemAttachmentGetCommand_initTelemetry() {
58
- this.telemetry.push((args) => {
59
- Object.assign(this.telemetryProperties, {
60
- listId: typeof args.options.listId !== 'undefined',
61
- listTitle: typeof args.options.listTitle !== 'undefined',
62
- listUrl: typeof args.options.listUrl !== 'undefined'
63
- });
64
- });
65
- }, _SpoListItemAttachmentGetCommand_initOptions = function _SpoListItemAttachmentGetCommand_initOptions() {
66
- this.options.unshift({
67
- option: '-u, --webUrl <webUrl>'
68
- }, {
69
- option: '--listId [listId]'
70
- }, {
71
- option: '--listTitle [listTitle]'
72
- }, {
73
- option: '--listUrl [listUrl]'
74
- }, {
75
- option: '--listItemId <listItemId>'
76
- }, {
77
- option: '-n, --fileName <fileName>'
78
- });
79
- }, _SpoListItemAttachmentGetCommand_initValidators = function _SpoListItemAttachmentGetCommand_initValidators() {
80
- this.validators.push(async (args) => {
81
- const isValidSharePointUrl = validation.isValidSharePointUrl(args.options.webUrl);
82
- if (isValidSharePointUrl !== true) {
83
- return isValidSharePointUrl;
84
- }
85
- if (args.options.listId && !validation.isValidGuid(args.options.listId)) {
86
- return `${args.options.listId} in option listId is not a valid GUID.`;
87
- }
88
- if (isNaN(args.options.listItemId)) {
89
- return `${args.options.listItemId} is not a number.`;
90
- }
91
- return true;
92
- });
93
- }, _SpoListItemAttachmentGetCommand_initOptionSets = function _SpoListItemAttachmentGetCommand_initOptionSets() {
94
- this.optionSets.push({ options: ['listId', 'listTitle', 'listUrl'] });
95
- };
96
71
  export default new SpoListItemAttachmentGetCommand();
97
72
  //# sourceMappingURL=listitem-attachment-get.js.map
@@ -1,15 +1,23 @@
1
- var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
2
- if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
3
- if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
4
- return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
5
- };
6
- var _SpoListItemAttachmentListCommand_instances, _SpoListItemAttachmentListCommand_initTelemetry, _SpoListItemAttachmentListCommand_initOptions, _SpoListItemAttachmentListCommand_initValidators, _SpoListItemAttachmentListCommand_initOptionSets;
1
+ import { z } from 'zod';
2
+ import { globalOptionsZod } from '../../../../Command.js';
7
3
  import request from '../../../../request.js';
8
4
  import { formatting } from '../../../../utils/formatting.js';
9
5
  import { urlUtil } from '../../../../utils/urlUtil.js';
10
6
  import { validation } from '../../../../utils/validation.js';
11
7
  import SpoCommand from '../../../base/SpoCommand.js';
12
8
  import commands from '../../commands.js';
9
+ export const options = z.strictObject({
10
+ ...globalOptionsZod.shape,
11
+ webUrl: z.string().refine(url => validation.isValidSharePointUrl(url) === true, {
12
+ error: e => `'${e.input}' is not a valid SharePoint Online site URL.`
13
+ }).alias('u'),
14
+ listId: z.string().refine(id => validation.isValidGuid(id), {
15
+ error: e => `${e.input} in option listId is not a valid GUID`
16
+ }).optional(),
17
+ listTitle: z.string().optional(),
18
+ listUrl: z.string().optional(),
19
+ listItemId: z.number().int().positive()
20
+ });
13
21
  class SpoListItemAttachmentListCommand extends SpoCommand {
14
22
  get name() {
15
23
  return commands.LISTITEM_ATTACHMENT_LIST;
@@ -17,13 +25,18 @@ class SpoListItemAttachmentListCommand extends SpoCommand {
17
25
  get description() {
18
26
  return 'Gets the attachments associated to a list item';
19
27
  }
20
- constructor() {
21
- super();
22
- _SpoListItemAttachmentListCommand_instances.add(this);
23
- __classPrivateFieldGet(this, _SpoListItemAttachmentListCommand_instances, "m", _SpoListItemAttachmentListCommand_initTelemetry).call(this);
24
- __classPrivateFieldGet(this, _SpoListItemAttachmentListCommand_instances, "m", _SpoListItemAttachmentListCommand_initOptions).call(this);
25
- __classPrivateFieldGet(this, _SpoListItemAttachmentListCommand_instances, "m", _SpoListItemAttachmentListCommand_initValidators).call(this);
26
- __classPrivateFieldGet(this, _SpoListItemAttachmentListCommand_instances, "m", _SpoListItemAttachmentListCommand_initOptionSets).call(this);
28
+ get schema() {
29
+ return options;
30
+ }
31
+ getRefinedSchema(schema) {
32
+ return schema
33
+ .refine(opts => [opts.listId, opts.listTitle, opts.listUrl].filter(o => o !== undefined).length === 1, {
34
+ error: 'Use one of the following options: listId, listTitle, listUrl.',
35
+ params: {
36
+ customCode: 'optionSet',
37
+ options: ['listId', 'listTitle', 'listUrl']
38
+ }
39
+ });
27
40
  }
28
41
  defaultProperties() {
29
42
  return ['FileName', 'ServerRelativeUrl'];
@@ -57,42 +70,5 @@ class SpoListItemAttachmentListCommand extends SpoCommand {
57
70
  }
58
71
  }
59
72
  }
60
- _SpoListItemAttachmentListCommand_instances = new WeakSet(), _SpoListItemAttachmentListCommand_initTelemetry = function _SpoListItemAttachmentListCommand_initTelemetry() {
61
- this.telemetry.push((args) => {
62
- Object.assign(this.telemetryProperties, {
63
- listId: typeof args.options.listId !== 'undefined',
64
- listTitle: typeof args.options.listTitle !== 'undefined',
65
- listUrl: typeof args.options.listUrl !== 'undefined'
66
- });
67
- });
68
- }, _SpoListItemAttachmentListCommand_initOptions = function _SpoListItemAttachmentListCommand_initOptions() {
69
- this.options.unshift({
70
- option: '-u, --webUrl <webUrl>'
71
- }, {
72
- option: '--listItemId <listItemId>'
73
- }, {
74
- option: '--listId [listId]'
75
- }, {
76
- option: '--listTitle [listTitle]'
77
- }, {
78
- option: '--listUrl [listUrl]'
79
- });
80
- }, _SpoListItemAttachmentListCommand_initValidators = function _SpoListItemAttachmentListCommand_initValidators() {
81
- this.validators.push(async (args) => {
82
- const isValidSharePointUrl = validation.isValidSharePointUrl(args.options.webUrl);
83
- if (isValidSharePointUrl !== true) {
84
- return isValidSharePointUrl;
85
- }
86
- if (args.options.listId && !validation.isValidGuid(args.options.listId)) {
87
- return `${args.options.listId} in option listId is not a valid GUID`;
88
- }
89
- if (isNaN(parseInt(args.options.listItemId))) {
90
- return `${args.options.listItemId} is not a number`;
91
- }
92
- return true;
93
- });
94
- }, _SpoListItemAttachmentListCommand_initOptionSets = function _SpoListItemAttachmentListCommand_initOptionSets() {
95
- this.optionSets.push({ options: ['listId', 'listTitle', 'listUrl'] });
96
- };
97
73
  export default new SpoListItemAttachmentListCommand();
98
74
  //# sourceMappingURL=listitem-attachment-list.js.map
@@ -1,16 +1,26 @@
1
- var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
2
- if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
3
- if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
4
- return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
5
- };
6
- var _SpoListItemAttachmentRemoveCommand_instances, _SpoListItemAttachmentRemoveCommand_initTelemetry, _SpoListItemAttachmentRemoveCommand_initOptions, _SpoListItemAttachmentRemoveCommand_initValidators, _SpoListItemAttachmentRemoveCommand_initOptionSets;
1
+ import { z } from 'zod';
7
2
  import { cli } from '../../../../cli/cli.js';
3
+ import { globalOptionsZod } from '../../../../Command.js';
8
4
  import request from '../../../../request.js';
9
5
  import { formatting } from '../../../../utils/formatting.js';
10
6
  import { urlUtil } from '../../../../utils/urlUtil.js';
11
7
  import { validation } from '../../../../utils/validation.js';
12
8
  import SpoCommand from '../../../base/SpoCommand.js';
13
9
  import commands from '../../commands.js';
10
+ export const options = z.strictObject({
11
+ ...globalOptionsZod.shape,
12
+ webUrl: z.string().refine(url => validation.isValidSharePointUrl(url) === true, {
13
+ error: e => `'${e.input}' is not a valid SharePoint Online site URL.`
14
+ }).alias('u'),
15
+ listId: z.string().refine(id => validation.isValidGuid(id), {
16
+ error: e => `${e.input} in option listId is not a valid GUID`
17
+ }).optional(),
18
+ listTitle: z.string().optional(),
19
+ listUrl: z.string().optional(),
20
+ listItemId: z.number().int().positive(),
21
+ fileName: z.string().alias('n'),
22
+ force: z.boolean().optional().alias('f')
23
+ });
14
24
  class SpoListItemAttachmentRemoveCommand extends SpoCommand {
15
25
  get name() {
16
26
  return commands.LISTITEM_ATTACHMENT_REMOVE;
@@ -18,13 +28,18 @@ class SpoListItemAttachmentRemoveCommand extends SpoCommand {
18
28
  get description() {
19
29
  return 'Removes an attachment from a list item';
20
30
  }
21
- constructor() {
22
- super();
23
- _SpoListItemAttachmentRemoveCommand_instances.add(this);
24
- __classPrivateFieldGet(this, _SpoListItemAttachmentRemoveCommand_instances, "m", _SpoListItemAttachmentRemoveCommand_initTelemetry).call(this);
25
- __classPrivateFieldGet(this, _SpoListItemAttachmentRemoveCommand_instances, "m", _SpoListItemAttachmentRemoveCommand_initOptions).call(this);
26
- __classPrivateFieldGet(this, _SpoListItemAttachmentRemoveCommand_instances, "m", _SpoListItemAttachmentRemoveCommand_initValidators).call(this);
27
- __classPrivateFieldGet(this, _SpoListItemAttachmentRemoveCommand_instances, "m", _SpoListItemAttachmentRemoveCommand_initOptionSets).call(this);
31
+ get schema() {
32
+ return options;
33
+ }
34
+ getRefinedSchema(schema) {
35
+ return schema
36
+ .refine(opts => [opts.listId, opts.listTitle, opts.listUrl].filter(o => o !== undefined).length === 1, {
37
+ error: 'Use one of the following options: listId, listTitle, listUrl.',
38
+ params: {
39
+ customCode: 'optionSet',
40
+ options: ['listId', 'listTitle', 'listUrl']
41
+ }
42
+ });
28
43
  }
29
44
  async commandAction(logger, args) {
30
45
  const removeListItemAttachment = async () => {
@@ -70,47 +85,5 @@ class SpoListItemAttachmentRemoveCommand extends SpoCommand {
70
85
  }
71
86
  }
72
87
  }
73
- _SpoListItemAttachmentRemoveCommand_instances = new WeakSet(), _SpoListItemAttachmentRemoveCommand_initTelemetry = function _SpoListItemAttachmentRemoveCommand_initTelemetry() {
74
- this.telemetry.push((args) => {
75
- Object.assign(this.telemetryProperties, {
76
- listId: typeof args.options.listId !== 'undefined',
77
- listTitle: typeof args.options.listTitle !== 'undefined',
78
- listUrl: typeof args.options.listUrl !== 'undefined',
79
- force: (!(!args.options.force)).toString()
80
- });
81
- });
82
- }, _SpoListItemAttachmentRemoveCommand_initOptions = function _SpoListItemAttachmentRemoveCommand_initOptions() {
83
- this.options.unshift({
84
- option: '-u, --webUrl <webUrl>'
85
- }, {
86
- option: '--listId [listId]'
87
- }, {
88
- option: '--listTitle [listTitle]'
89
- }, {
90
- option: '--listUrl [listUrl]'
91
- }, {
92
- option: '--listItemId <listItemId>'
93
- }, {
94
- option: '-n, --fileName <fileName>'
95
- }, {
96
- option: '-f, --force'
97
- });
98
- }, _SpoListItemAttachmentRemoveCommand_initValidators = function _SpoListItemAttachmentRemoveCommand_initValidators() {
99
- this.validators.push(async (args) => {
100
- const isValidSharePointUrl = validation.isValidSharePointUrl(args.options.webUrl);
101
- if (isValidSharePointUrl !== true) {
102
- return isValidSharePointUrl;
103
- }
104
- if (args.options.listId && !validation.isValidGuid(args.options.listId)) {
105
- return `${args.options.listId} in option listId is not a valid GUID`;
106
- }
107
- if (isNaN(args.options.listItemId)) {
108
- return `${args.options.listItemId} is not a number`;
109
- }
110
- return true;
111
- });
112
- }, _SpoListItemAttachmentRemoveCommand_initOptionSets = function _SpoListItemAttachmentRemoveCommand_initOptionSets() {
113
- this.optionSets.push({ options: ['listId', 'listTitle', 'listUrl'] });
114
- };
115
88
  export default new SpoListItemAttachmentRemoveCommand();
116
89
  //# sourceMappingURL=listitem-attachment-remove.js.map