@pnp/cli-microsoft365 12.1.0-beta.dbc076e → 12.1.0-beta.f55735f

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 (121) hide show
  1. package/allCommands.json +1 -1
  2. package/allCommandsFull.json +1 -1
  3. package/dist/m365/spfx/commands/package/package-generate.js +30 -51
  4. package/dist/m365/spfx/commands/project/project-azuredevops-pipeline-add.js +27 -62
  5. package/dist/m365/spfx/commands/project/project-doctor.js +20 -51
  6. package/dist/m365/spfx/commands/project/project-externalize.js +16 -26
  7. package/dist/m365/spfx/commands/project/project-github-workflow-add.js +28 -65
  8. package/dist/m365/spfx/commands/project/project-permissions-grant.js +4 -2
  9. package/dist/m365/spfx/commands/project/project-rename.js +17 -29
  10. package/dist/m365/spfx/commands/project/project-upgrade.js +0 -3
  11. package/dist/m365/spfx/commands/spfx-doctor.js +23 -47
  12. package/dist/m365/spo/commands/file/file-add.js +51 -77
  13. package/dist/m365/spo/commands/file/file-archive.js +1 -1
  14. package/dist/m365/spo/commands/file/file-checkin.js +35 -64
  15. package/dist/m365/spo/commands/file/file-checkout-undo.js +25 -49
  16. package/dist/m365/spo/commands/file/file-checkout.js +24 -47
  17. package/dist/m365/spo/commands/file/file-copy.js +37 -68
  18. package/dist/m365/spo/commands/file/file-get.js +44 -79
  19. package/dist/m365/spo/commands/file/file-list.js +16 -39
  20. package/dist/m365/spo/commands/file/file-move.js +30 -68
  21. package/dist/m365/spo/commands/file/file-remove.js +27 -56
  22. package/dist/m365/spo/commands/file/file-rename.js +15 -36
  23. package/dist/m365/spo/commands/file/file-retentionlabel-ensure.js +26 -51
  24. package/dist/m365/spo/commands/file/file-retentionlabel-remove.js +25 -50
  25. package/dist/m365/spo/commands/file/file-roleassignment-add.js +47 -75
  26. package/dist/m365/spo/commands/file/file-roleassignment-remove.js +39 -70
  27. package/dist/m365/spo/commands/file/file-roleinheritance-break.js +26 -52
  28. package/dist/m365/spo/commands/file/file-roleinheritance-reset.js +25 -49
  29. package/dist/m365/spo/commands/file/file-sharinginfo-get.js +24 -47
  30. package/dist/m365/spo/commands/file/file-sharinglink-add.js +46 -70
  31. package/dist/m365/spo/commands/file/file-sharinglink-clear.js +33 -57
  32. package/dist/m365/spo/commands/file/file-sharinglink-get.js +25 -47
  33. package/dist/m365/spo/commands/file/file-sharinglink-list.js +32 -53
  34. package/dist/m365/spo/commands/file/file-sharinglink-remove.js +26 -51
  35. package/dist/m365/spo/commands/file/file-sharinglink-set.js +29 -55
  36. package/dist/m365/spo/commands/file/file-unarchive.js +1 -1
  37. package/dist/m365/spo/commands/file/file-version-clear.js +25 -45
  38. package/dist/m365/spo/commands/file/file-version-get.js +25 -43
  39. package/dist/m365/spo/commands/file/file-version-keep.js +1 -1
  40. package/dist/m365/spo/commands/file/file-version-list.js +24 -41
  41. package/dist/m365/spo/commands/file/file-version-remove.js +26 -47
  42. package/dist/m365/spo/commands/file/file-version-restore.js +26 -47
  43. package/dist/m365/spo/commands/folder/folder-add.js +19 -48
  44. package/dist/m365/spo/commands/folder/folder-copy.js +36 -62
  45. package/dist/m365/spo/commands/folder/folder-get.js +30 -51
  46. package/dist/m365/spo/commands/folder/folder-list.js +16 -39
  47. package/dist/m365/spo/commands/folder/folder-move.js +36 -62
  48. package/dist/m365/spo/commands/folder/folder-remove.js +15 -36
  49. package/dist/m365/spo/commands/folder/folder-retentionlabel-ensure.js +30 -48
  50. package/dist/m365/spo/commands/folder/folder-retentionlabel-remove.js +30 -50
  51. package/dist/m365/spo/commands/folder/folder-roleassignment-add.js +49 -79
  52. package/dist/m365/spo/commands/folder/folder-roleassignment-remove.js +37 -67
  53. package/dist/m365/spo/commands/folder/folder-roleinheritance-break.js +15 -36
  54. package/dist/m365/spo/commands/folder/folder-roleinheritance-reset.js +14 -33
  55. package/dist/m365/spo/commands/folder/folder-set.js +28 -48
  56. package/dist/m365/spo/commands/folder/folder-sharinglink-add.js +58 -86
  57. package/dist/m365/spo/commands/folder/folder-sharinglink-clear.js +33 -50
  58. package/dist/m365/spo/commands/folder/folder-sharinglink-get.js +33 -42
  59. package/dist/m365/spo/commands/folder/folder-sharinglink-list.js +32 -47
  60. package/dist/m365/spo/commands/folder/folder-sharinglink-remove.js +34 -41
  61. package/dist/m365/spo/commands/folder/folder-sharinglink-set.js +38 -43
  62. package/dist/m365/spo/commands/page/page-add.js +31 -68
  63. package/dist/m365/spo/commands/page/page-clientsidewebpart-add.js +74 -101
  64. package/dist/m365/spo/commands/page/page-column-get.js +15 -32
  65. package/dist/m365/spo/commands/page/page-column-list.js +14 -27
  66. package/dist/m365/spo/commands/page/page-control-get.js +18 -27
  67. package/dist/m365/spo/commands/page/page-control-list.js +13 -20
  68. package/dist/m365/spo/commands/page/page-control-remove.js +1 -1
  69. package/dist/m365/spo/commands/page/page-control-set.js +51 -61
  70. package/dist/m365/spo/commands/page/page-copy.js +15 -31
  71. package/dist/m365/spo/commands/page/page-header-set.js +25 -89
  72. package/dist/m365/spo/commands/page/page-list.js +12 -18
  73. package/dist/m365/spo/commands/page/page-remove.js +16 -39
  74. package/dist/m365/spo/commands/page/page-section-add.js +108 -173
  75. package/dist/m365/spo/commands/page/page-section-get.js +17 -27
  76. package/dist/m365/spo/commands/page/page-section-list.js +13 -20
  77. package/dist/m365/spo/commands/page/page-section-remove.js +4 -1
  78. package/dist/m365/spo/commands/page/page-set.js +50 -100
  79. package/dist/m365/spo/commands/page/page-template-list.js +12 -18
  80. package/dist/m365/spo/commands/page/page-text-add.js +23 -45
  81. package/dist/m365/viva/commands/connections/connections-app-create.js +36 -42
  82. package/dist/m365/viva/commands/engage/engage-community-add.js +75 -71
  83. package/dist/m365/viva/commands/engage/engage-community-get.js +8 -16
  84. package/dist/m365/viva/commands/engage/engage-community-list.js +5 -0
  85. package/dist/m365/viva/commands/engage/engage-community-remove.js +28 -48
  86. package/dist/m365/viva/commands/engage/engage-community-set.js +43 -66
  87. package/dist/m365/viva/commands/engage/engage-community-user-add.js +7 -12
  88. package/dist/m365/viva/commands/engage/engage-community-user-list.js +1 -1
  89. package/dist/m365/viva/commands/engage/engage-community-user-remove.js +4 -2
  90. package/dist/m365/viva/commands/engage/engage-message-add.js +22 -52
  91. package/dist/m365/viva/commands/engage/engage-message-get.js +8 -23
  92. package/dist/m365/viva/commands/engage/engage-message-like-set.js +10 -39
  93. package/dist/m365/viva/commands/engage/engage-message-list.js +22 -66
  94. package/dist/m365/viva/commands/engage/engage-message-remove.js +9 -32
  95. package/dist/m365/viva/commands/engage/engage-network-list.js +8 -22
  96. package/dist/m365/viva/commands/engage/engage-report-activitycounts.js +2 -1
  97. package/dist/m365/viva/commands/engage/engage-report-activityusercounts.js +2 -1
  98. package/dist/m365/viva/commands/engage/engage-report-activityuserdetail.js +2 -1
  99. package/dist/m365/viva/commands/engage/engage-report-deviceusagedistributionusercounts.js +2 -1
  100. package/dist/m365/viva/commands/engage/engage-report-deviceusageusercounts.js +2 -1
  101. package/dist/m365/viva/commands/engage/engage-report-deviceusageuserdetail.js +2 -1
  102. package/dist/m365/viva/commands/engage/engage-report-groupsactivitycounts.js +2 -1
  103. package/dist/m365/viva/commands/engage/engage-report-groupsactivitydetail.js +2 -1
  104. package/dist/m365/viva/commands/engage/engage-report-groupsactivitygroupcounts.js +2 -1
  105. package/dist/m365/viva/commands/engage/engage-role-list.js +5 -0
  106. package/dist/m365/viva/commands/engage/engage-role-member-add.js +3 -5
  107. package/dist/m365/viva/commands/engage/engage-role-member-list.js +1 -1
  108. package/dist/m365/viva/commands/engage/engage-role-member-remove.js +4 -2
  109. package/dist/m365/viva/commands/engage/engage-search.js +16 -65
  110. package/dist/m365/viva/commands/engage/engage-user-get.js +15 -33
  111. package/dist/m365/viva/commands/engage/engage-user-list.js +22 -57
  112. package/docs/docs/cmd/spo/listitem/listitem-record-declare.mdx +19 -0
  113. package/docs/docs/cmd/spo/listitem/listitem-record-lock.mdx +21 -0
  114. package/docs/docs/cmd/spo/listitem/listitem-record-undeclare.mdx +21 -0
  115. package/docs/docs/cmd/spo/listitem/listitem-record-unlock.mdx +21 -0
  116. package/docs/docs/cmd/spo/page/page-text-add.mdx +1 -1
  117. package/docs/docs/cmd/viva/engage/engage-community-add.mdx +19 -0
  118. package/docs/docs/cmd/viva/engage/engage-community-get.mdx +19 -0
  119. package/docs/docs/cmd/viva/engage/engage-community-remove.mdx +21 -0
  120. package/docs/docs/cmd/viva/engage/engage-community-set.mdx +19 -0
  121. package/package.json +1 -1
@@ -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 _SpoFolderRoleAssignmentRemoveCommand_instances, _SpoFolderRoleAssignmentRemoveCommand_initTelemetry, _SpoFolderRoleAssignmentRemoveCommand_initOptions, _SpoFolderRoleAssignmentRemoveCommand_initValidators, _SpoFolderRoleAssignmentRemoveCommand_initTypes;
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';
@@ -13,6 +9,29 @@ import SpoCommand from '../../../base/SpoCommand.js';
13
9
  import commands from '../../commands.js';
14
10
  import { entraGroup } from '../../../../utils/entraGroup.js';
15
11
  import { spo } from '../../../../utils/spo.js';
12
+ export const options = z.strictObject({
13
+ ...globalOptionsZod.shape,
14
+ webUrl: z.string()
15
+ .refine(url => validation.isValidSharePointUrl(url) === true, {
16
+ error: e => `'${e.input}' is not a valid SharePoint Online site URL.`
17
+ })
18
+ .alias('u'),
19
+ folderUrl: z.string(),
20
+ principalId: z.number()
21
+ .refine(id => validation.isValidPositiveInteger(id), {
22
+ error: e => `Specified principalId '${e.input}' is not a valid number.`
23
+ })
24
+ .optional(),
25
+ upn: z.string().optional(),
26
+ groupName: z.string().optional(),
27
+ entraGroupId: z.string()
28
+ .refine(id => validation.isValidGuid(id), {
29
+ error: e => `'${e.input}' is not a valid GUID for option entraGroupId.`
30
+ })
31
+ .optional(),
32
+ entraGroupName: z.string().optional(),
33
+ force: z.boolean().optional().alias('f')
34
+ });
16
35
  class SpoFolderRoleAssignmentRemoveCommand extends SpoCommand {
17
36
  get name() {
18
37
  return commands.FOLDER_ROLEASSIGNMENT_REMOVE;
@@ -20,13 +39,18 @@ class SpoFolderRoleAssignmentRemoveCommand extends SpoCommand {
20
39
  get description() {
21
40
  return 'Removes a role assignment from the specified folder';
22
41
  }
23
- constructor() {
24
- super();
25
- _SpoFolderRoleAssignmentRemoveCommand_instances.add(this);
26
- __classPrivateFieldGet(this, _SpoFolderRoleAssignmentRemoveCommand_instances, "m", _SpoFolderRoleAssignmentRemoveCommand_initTelemetry).call(this);
27
- __classPrivateFieldGet(this, _SpoFolderRoleAssignmentRemoveCommand_instances, "m", _SpoFolderRoleAssignmentRemoveCommand_initOptions).call(this);
28
- __classPrivateFieldGet(this, _SpoFolderRoleAssignmentRemoveCommand_instances, "m", _SpoFolderRoleAssignmentRemoveCommand_initValidators).call(this);
29
- __classPrivateFieldGet(this, _SpoFolderRoleAssignmentRemoveCommand_instances, "m", _SpoFolderRoleAssignmentRemoveCommand_initTypes).call(this);
42
+ get schema() {
43
+ return options;
44
+ }
45
+ getRefinedSchema(schema) {
46
+ return schema
47
+ .refine(opts => [opts.principalId, opts.upn, opts.groupName, opts.entraGroupId, opts.entraGroupName].filter(o => o !== undefined).length === 1, {
48
+ error: 'Specify one of the following options: principalId, upn, groupName, entraGroupId, entraGroupName.',
49
+ params: {
50
+ customCode: 'optionSet',
51
+ options: ['principalId', 'upn', 'groupName', 'entraGroupId', 'entraGroupName']
52
+ }
53
+ });
30
54
  }
31
55
  async commandAction(logger, args) {
32
56
  const removeRoleAssignment = async () => {
@@ -90,59 +114,5 @@ class SpoFolderRoleAssignmentRemoveCommand extends SpoCommand {
90
114
  return user.Id;
91
115
  }
92
116
  }
93
- _SpoFolderRoleAssignmentRemoveCommand_instances = new WeakSet(), _SpoFolderRoleAssignmentRemoveCommand_initTelemetry = function _SpoFolderRoleAssignmentRemoveCommand_initTelemetry() {
94
- this.telemetry.push((args) => {
95
- Object.assign(this.telemetryProperties, {
96
- principalId: typeof args.options.principalId !== 'undefined',
97
- upn: typeof args.options.upn !== 'undefined',
98
- groupName: typeof args.options.groupName !== 'undefined',
99
- entraGroupId: typeof args.options.entraGroupId !== 'undefined',
100
- entraGroupName: typeof args.options.entraGroupName !== 'undefined',
101
- force: !!args.options.force
102
- });
103
- });
104
- }, _SpoFolderRoleAssignmentRemoveCommand_initOptions = function _SpoFolderRoleAssignmentRemoveCommand_initOptions() {
105
- this.options.unshift({
106
- option: '-u, --webUrl <webUrl>'
107
- }, {
108
- option: '--folderUrl <folderUrl>'
109
- }, {
110
- option: '--principalId [principalId]'
111
- }, {
112
- option: '--upn [upn]'
113
- }, {
114
- option: '--groupName [groupName]'
115
- }, {
116
- option: '--entraGroupId [entraGroupId]'
117
- }, {
118
- option: '--entraGroupName [entraGroupName]'
119
- }, {
120
- option: '-f, --force'
121
- });
122
- }, _SpoFolderRoleAssignmentRemoveCommand_initValidators = function _SpoFolderRoleAssignmentRemoveCommand_initValidators() {
123
- this.validators.push(async (args) => {
124
- const isValidSharePointUrl = validation.isValidSharePointUrl(args.options.webUrl);
125
- if (isValidSharePointUrl !== true) {
126
- return isValidSharePointUrl;
127
- }
128
- if (args.options.principalId && isNaN(args.options.principalId)) {
129
- return `Specified principalId ${args.options.principalId} is not a number`;
130
- }
131
- if (args.options.entraGroupId && !validation.isValidGuid(args.options.entraGroupId)) {
132
- return `'${args.options.entraGroupId}' is not a valid GUID for option entraGroupId.`;
133
- }
134
- const principalOptions = [args.options.principalId, args.options.upn, args.options.groupName, args.options.entraGroupId, args.options.entraGroupName];
135
- if (principalOptions.some(item => item !== undefined) && principalOptions.filter(item => item !== undefined).length > 1) {
136
- return `Specify either principalId id, upn, groupName, entraGroupId or entraGroupName`;
137
- }
138
- if (principalOptions.filter(item => item !== undefined).length === 0) {
139
- return `Specify at least principalId id, upn, groupName, entraGroupId or entraGroupName`;
140
- }
141
- return true;
142
- });
143
- }, _SpoFolderRoleAssignmentRemoveCommand_initTypes = function _SpoFolderRoleAssignmentRemoveCommand_initTypes() {
144
- this.types.string.push('webUrl', 'folderUrl', 'upn', 'groupName');
145
- this.types.boolean.push('force');
146
- };
147
117
  export default new SpoFolderRoleAssignmentRemoveCommand();
148
118
  //# sourceMappingURL=folder-roleassignment-remove.js.map
@@ -1,16 +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 _SpoFolderRoleInheritanceBreakCommand_instances, _SpoFolderRoleInheritanceBreakCommand_initTelemetry, _SpoFolderRoleInheritanceBreakCommand_initOptions, _SpoFolderRoleInheritanceBreakCommand_initValidators, _SpoFolderRoleInheritanceBreakCommand_initTypes;
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()
13
+ .refine(url => validation.isValidSharePointUrl(url) === true, {
14
+ error: e => `'${e.input}' is not a valid SharePoint Online site URL.`
15
+ })
16
+ .alias('u'),
17
+ folderUrl: z.string(),
18
+ clearExistingPermissions: z.boolean().optional().alias('c'),
19
+ force: z.boolean().optional().alias('f')
20
+ });
14
21
  class SpoFolderRoleInheritanceBreakCommand extends SpoCommand {
15
22
  get name() {
16
23
  return commands.FOLDER_ROLEINHERITANCE_BREAK;
@@ -18,13 +25,8 @@ class SpoFolderRoleInheritanceBreakCommand extends SpoCommand {
18
25
  get description() {
19
26
  return 'Breaks the role inheritance of a folder. Keeping existing permissions is the default behavior.';
20
27
  }
21
- constructor() {
22
- super();
23
- _SpoFolderRoleInheritanceBreakCommand_instances.add(this);
24
- __classPrivateFieldGet(this, _SpoFolderRoleInheritanceBreakCommand_instances, "m", _SpoFolderRoleInheritanceBreakCommand_initTelemetry).call(this);
25
- __classPrivateFieldGet(this, _SpoFolderRoleInheritanceBreakCommand_instances, "m", _SpoFolderRoleInheritanceBreakCommand_initOptions).call(this);
26
- __classPrivateFieldGet(this, _SpoFolderRoleInheritanceBreakCommand_instances, "m", _SpoFolderRoleInheritanceBreakCommand_initValidators).call(this);
27
- __classPrivateFieldGet(this, _SpoFolderRoleInheritanceBreakCommand_instances, "m", _SpoFolderRoleInheritanceBreakCommand_initTypes).call(this);
28
+ get schema() {
29
+ return options;
28
30
  }
29
31
  async commandAction(logger, args) {
30
32
  const keepExistingPermissions = !args.options.clearExistingPermissions;
@@ -63,28 +65,5 @@ class SpoFolderRoleInheritanceBreakCommand extends SpoCommand {
63
65
  }
64
66
  }
65
67
  }
66
- _SpoFolderRoleInheritanceBreakCommand_instances = new WeakSet(), _SpoFolderRoleInheritanceBreakCommand_initTelemetry = function _SpoFolderRoleInheritanceBreakCommand_initTelemetry() {
67
- this.telemetry.push((args) => {
68
- Object.assign(this.telemetryProperties, {
69
- clearExistingPermissions: !!args.options.clearExistingPermissions,
70
- force: !!args.options.force
71
- });
72
- });
73
- }, _SpoFolderRoleInheritanceBreakCommand_initOptions = function _SpoFolderRoleInheritanceBreakCommand_initOptions() {
74
- this.options.unshift({
75
- option: '-u, --webUrl <webUrl>'
76
- }, {
77
- option: '--folderUrl <folderUrl>'
78
- }, {
79
- option: '-c, --clearExistingPermissions'
80
- }, {
81
- option: '-f, --force'
82
- });
83
- }, _SpoFolderRoleInheritanceBreakCommand_initValidators = function _SpoFolderRoleInheritanceBreakCommand_initValidators() {
84
- this.validators.push(async (args) => validation.isValidSharePointUrl(args.options.webUrl));
85
- }, _SpoFolderRoleInheritanceBreakCommand_initTypes = function _SpoFolderRoleInheritanceBreakCommand_initTypes() {
86
- this.types.string.push('webUrl', 'folderUrl');
87
- this.types.boolean.push('clearExistingPermissions', 'force');
88
- };
89
68
  export default new SpoFolderRoleInheritanceBreakCommand();
90
69
  //# sourceMappingURL=folder-roleinheritance-break.js.map
@@ -1,16 +1,22 @@
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 _SpoFolderRoleInheritanceResetCommand_instances, _SpoFolderRoleInheritanceResetCommand_initTelemetry, _SpoFolderRoleInheritanceResetCommand_initOptions, _SpoFolderRoleInheritanceResetCommand_initValidators, _SpoFolderRoleInheritanceResetCommand_initTypes;
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()
13
+ .refine(url => validation.isValidSharePointUrl(url) === true, {
14
+ error: e => `'${e.input}' is not a valid SharePoint Online site URL.`
15
+ })
16
+ .alias('u'),
17
+ folderUrl: z.string(),
18
+ force: z.boolean().optional().alias('f')
19
+ });
14
20
  class SpoFolderRoleInheritanceResetCommand extends SpoCommand {
15
21
  get name() {
16
22
  return commands.FOLDER_ROLEINHERITANCE_RESET;
@@ -18,13 +24,8 @@ class SpoFolderRoleInheritanceResetCommand extends SpoCommand {
18
24
  get description() {
19
25
  return 'Restores the role inheritance of a folder';
20
26
  }
21
- constructor() {
22
- super();
23
- _SpoFolderRoleInheritanceResetCommand_instances.add(this);
24
- __classPrivateFieldGet(this, _SpoFolderRoleInheritanceResetCommand_instances, "m", _SpoFolderRoleInheritanceResetCommand_initTelemetry).call(this);
25
- __classPrivateFieldGet(this, _SpoFolderRoleInheritanceResetCommand_instances, "m", _SpoFolderRoleInheritanceResetCommand_initOptions).call(this);
26
- __classPrivateFieldGet(this, _SpoFolderRoleInheritanceResetCommand_instances, "m", _SpoFolderRoleInheritanceResetCommand_initValidators).call(this);
27
- __classPrivateFieldGet(this, _SpoFolderRoleInheritanceResetCommand_instances, "m", _SpoFolderRoleInheritanceResetCommand_initTypes).call(this);
27
+ get schema() {
28
+ return options;
28
29
  }
29
30
  async commandAction(logger, args) {
30
31
  const serverRelativeUrl = urlUtil.getServerRelativePath(args.options.webUrl, args.options.folderUrl);
@@ -62,25 +63,5 @@ class SpoFolderRoleInheritanceResetCommand extends SpoCommand {
62
63
  }
63
64
  }
64
65
  }
65
- _SpoFolderRoleInheritanceResetCommand_instances = new WeakSet(), _SpoFolderRoleInheritanceResetCommand_initTelemetry = function _SpoFolderRoleInheritanceResetCommand_initTelemetry() {
66
- this.telemetry.push((args) => {
67
- Object.assign(this.telemetryProperties, {
68
- force: !!args.options.force
69
- });
70
- });
71
- }, _SpoFolderRoleInheritanceResetCommand_initOptions = function _SpoFolderRoleInheritanceResetCommand_initOptions() {
72
- this.options.unshift({
73
- option: '-u, --webUrl <webUrl>'
74
- }, {
75
- option: '--folderUrl <folderUrl>'
76
- }, {
77
- option: '-f, --force'
78
- });
79
- }, _SpoFolderRoleInheritanceResetCommand_initValidators = function _SpoFolderRoleInheritanceResetCommand_initValidators() {
80
- this.validators.push(async (args) => validation.isValidSharePointUrl(args.options.webUrl));
81
- }, _SpoFolderRoleInheritanceResetCommand_initTypes = function _SpoFolderRoleInheritanceResetCommand_initTypes() {
82
- this.types.string.push('webUrl', 'folderUrl');
83
- this.types.boolean.push('force');
84
- };
85
66
  export default new SpoFolderRoleInheritanceResetCommand();
86
67
  //# sourceMappingURL=folder-roleinheritance-reset.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 _SpoFolderSetCommand_instances, _SpoFolderSetCommand_initTelemetry, _SpoFolderSetCommand_initOptions, _SpoFolderSetCommand_initValidators, _SpoFolderSetCommand_initTypes;
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,20 @@ import { validation } from '../../../../utils/validation.js';
11
7
  import SpoCommand from '../../../base/SpoCommand.js';
12
8
  import commands from '../../commands.js';
13
9
  import { FolderColorValues } from './FolderColor.js';
10
+ const folderColorValues = [...Object.keys(FolderColorValues), ...Object.values(FolderColorValues)];
11
+ export const options = z.strictObject({
12
+ ...globalOptionsZod.shape,
13
+ webUrl: z.string()
14
+ .refine(url => validation.isValidSharePointUrl(url) === true, {
15
+ error: e => `'${e.input}' is not a valid SharePoint Online site URL.`
16
+ })
17
+ .alias('u'),
18
+ url: z.string(),
19
+ name: z.string().optional().alias('n'),
20
+ color: z.enum(folderColorValues, {
21
+ error: e => `'${e.input}' is not a valid value for option 'color'. Allowed values are ${Object.keys(FolderColorValues).join(', ')}, ${Object.values(FolderColorValues).join(', ')}.`
22
+ }).optional()
23
+ });
14
24
  class SpoFolderSetCommand extends SpoCommand {
15
25
  get name() {
16
26
  return commands.FOLDER_SET;
@@ -18,13 +28,18 @@ class SpoFolderSetCommand extends SpoCommand {
18
28
  get description() {
19
29
  return 'Updates a folder';
20
30
  }
21
- constructor() {
22
- super();
23
- _SpoFolderSetCommand_instances.add(this);
24
- __classPrivateFieldGet(this, _SpoFolderSetCommand_instances, "m", _SpoFolderSetCommand_initTelemetry).call(this);
25
- __classPrivateFieldGet(this, _SpoFolderSetCommand_instances, "m", _SpoFolderSetCommand_initOptions).call(this);
26
- __classPrivateFieldGet(this, _SpoFolderSetCommand_instances, "m", _SpoFolderSetCommand_initValidators).call(this);
27
- __classPrivateFieldGet(this, _SpoFolderSetCommand_instances, "m", _SpoFolderSetCommand_initTypes).call(this);
31
+ get schema() {
32
+ return options;
33
+ }
34
+ getRefinedSchema(schema) {
35
+ return schema
36
+ .refine(opts => opts.name !== undefined || opts.color !== undefined, {
37
+ error: `Specify at least one of the options: name or color.`,
38
+ params: {
39
+ customCode: 'optionSet',
40
+ options: ['name', 'color']
41
+ }
42
+ });
28
43
  }
29
44
  getExcludedOptionsWithUrls() {
30
45
  return ['url'];
@@ -75,40 +90,5 @@ class SpoFolderSetCommand extends SpoCommand {
75
90
  }
76
91
  }
77
92
  }
78
- _SpoFolderSetCommand_instances = new WeakSet(), _SpoFolderSetCommand_initTelemetry = function _SpoFolderSetCommand_initTelemetry() {
79
- this.telemetry.push((args) => {
80
- Object.assign(this.telemetryProperties, {
81
- name: typeof args.options.name !== 'undefined',
82
- color: typeof args.options.color !== 'undefined'
83
- });
84
- });
85
- }, _SpoFolderSetCommand_initOptions = function _SpoFolderSetCommand_initOptions() {
86
- this.options.unshift({
87
- option: '-u, --webUrl <webUrl>'
88
- }, {
89
- option: '--url <url>'
90
- }, {
91
- option: '-n, --name [name]'
92
- }, {
93
- option: '--color [color]',
94
- autocomplete: Object.keys(FolderColorValues)
95
- });
96
- }, _SpoFolderSetCommand_initValidators = function _SpoFolderSetCommand_initValidators() {
97
- this.validators.push(async (args) => {
98
- const isValidSharePointUrl = validation.isValidSharePointUrl(args.options.webUrl);
99
- if (isValidSharePointUrl !== true) {
100
- return isValidSharePointUrl;
101
- }
102
- if (args.options.color === undefined && args.options.name === undefined) {
103
- return `Specify at least one of the options: name or color.`;
104
- }
105
- if (args.options.color && !Object.entries(FolderColorValues).flat().includes(args.options.color)) {
106
- return `'${args.options.color}' is not a valid value for option 'color'. Allowed values are ${Object.keys(FolderColorValues).join(', ')}, ${Object.values(FolderColorValues).join(', ')}.`;
107
- }
108
- return true;
109
- });
110
- }, _SpoFolderSetCommand_initTypes = function _SpoFolderSetCommand_initTypes() {
111
- this.types.string.push('webUrl', 'url', 'name', 'color');
112
- };
113
93
  export default new SpoFolderSetCommand();
114
94
  //# sourceMappingURL=folder-set.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 _SpoFolderSharingLinkAddCommand_instances, _SpoFolderSharingLinkAddCommand_initTelemetry, _SpoFolderSharingLinkAddCommand_initOptions, _SpoFolderSharingLinkAddCommand_initValidators, _SpoFolderSharingLinkAddCommand_initOptionSets, _SpoFolderSharingLinkAddCommand_initTypes;
1
+ import { z } from 'zod';
2
+ import { globalOptionsZod } from '../../../../Command.js';
7
3
  import request from '../../../../request.js';
8
4
  import { spo } from '../../../../utils/spo.js';
9
5
  import { urlUtil } from '../../../../utils/urlUtil.js';
@@ -12,6 +8,42 @@ import { validation } from '../../../../utils/validation.js';
12
8
  import { formatting } from '../../../../utils/formatting.js';
13
9
  import SpoCommand from '../../../base/SpoCommand.js';
14
10
  import commands from '../../commands.js';
11
+ const allowedTypes = ['view', 'edit'];
12
+ const allowedScopes = ['anonymous', 'organization', 'users'];
13
+ export const options = z.strictObject({
14
+ ...globalOptionsZod.shape,
15
+ webUrl: z.string()
16
+ .refine(url => validation.isValidSharePointUrl(url) === true, {
17
+ error: e => `'${e.input}' is not a valid SharePoint Online site URL.`
18
+ })
19
+ .alias('u'),
20
+ folderId: z.string()
21
+ .refine(id => validation.isValidGuid(id), {
22
+ error: e => `'${e.input}' is not a valid GUID for option 'folderId'.`
23
+ })
24
+ .optional(),
25
+ folderUrl: z.string().optional(),
26
+ type: z.string().pipe(z.enum(allowedTypes, {
27
+ error: e => `'${e.input}' is not a valid type. Allowed values are: ${allowedTypes.join(',')}`
28
+ })),
29
+ expirationDateTime: z.string()
30
+ .refine(dateTime => validation.isValidISODateTime(dateTime), {
31
+ error: e => `'${e.input}' is not a valid ISO date string.`
32
+ })
33
+ .optional(),
34
+ scope: z.enum(allowedScopes, {
35
+ error: e => `'${e.input}' is not a valid scope. Allowed values are: ${allowedScopes.join(', ')}.`
36
+ }).optional(),
37
+ retainInheritedPermissions: z.boolean().optional(),
38
+ recipients: z.string()
39
+ .refine(recipients => validation.isValidUserPrincipalNameArray(recipients) === true, {
40
+ error: e => {
41
+ const invalidUpns = String(e.input).split(',').map(upn => upn.trim()).filter(upn => !validation.isValidUserPrincipalName(upn));
42
+ return `The following user principal names are invalid for the option 'recipients': ${invalidUpns.join(', ')}.`;
43
+ }
44
+ })
45
+ .optional()
46
+ });
15
47
  class SpoFolderSharingLinkAddCommand extends SpoCommand {
16
48
  get name() {
17
49
  return commands.FOLDER_SHARINGLINK_ADD;
@@ -19,16 +51,25 @@ class SpoFolderSharingLinkAddCommand extends SpoCommand {
19
51
  get description() {
20
52
  return 'Creates a new sharing link to a folder';
21
53
  }
22
- constructor() {
23
- super();
24
- _SpoFolderSharingLinkAddCommand_instances.add(this);
25
- this.allowedTypes = ['view', 'edit'];
26
- this.allowedScopes = ['anonymous', 'organization', 'users'];
27
- __classPrivateFieldGet(this, _SpoFolderSharingLinkAddCommand_instances, "m", _SpoFolderSharingLinkAddCommand_initTelemetry).call(this);
28
- __classPrivateFieldGet(this, _SpoFolderSharingLinkAddCommand_instances, "m", _SpoFolderSharingLinkAddCommand_initOptions).call(this);
29
- __classPrivateFieldGet(this, _SpoFolderSharingLinkAddCommand_instances, "m", _SpoFolderSharingLinkAddCommand_initValidators).call(this);
30
- __classPrivateFieldGet(this, _SpoFolderSharingLinkAddCommand_instances, "m", _SpoFolderSharingLinkAddCommand_initOptionSets).call(this);
31
- __classPrivateFieldGet(this, _SpoFolderSharingLinkAddCommand_instances, "m", _SpoFolderSharingLinkAddCommand_initTypes).call(this);
54
+ get schema() {
55
+ return options;
56
+ }
57
+ getRefinedSchema(schema) {
58
+ return schema
59
+ .refine(opts => [opts.folderId, opts.folderUrl].filter(o => o !== undefined).length === 1, {
60
+ error: `Specify one of the following options: folderId, folderUrl.`,
61
+ params: {
62
+ customCode: 'optionSet',
63
+ options: ['folderId', 'folderUrl']
64
+ }
65
+ })
66
+ .refine(opts => opts.scope !== 'users' || opts.recipients !== undefined, {
67
+ error: `Specify recipients when the scope is set to 'users'.`,
68
+ path: ['recipients'],
69
+ params: {
70
+ customCode: 'required'
71
+ }
72
+ });
32
73
  }
33
74
  async commandAction(logger, args) {
34
75
  if (this.verbose) {
@@ -51,7 +92,7 @@ class SpoFolderSharingLinkAddCommand extends SpoCommand {
51
92
  type: args.options.type,
52
93
  expirationDateTime: args.options.expirationDateTime,
53
94
  scope: args.options.scope,
54
- retainInheritedPermissions: !!args.options.retainInheritiedPermissions
95
+ retainInheritedPermissions: !!args.options.retainInheritedPermissions
55
96
  }
56
97
  };
57
98
  if (args.options.scope === 'users' && args.options.recipients) {
@@ -70,74 +111,5 @@ class SpoFolderSharingLinkAddCommand extends SpoCommand {
70
111
  }
71
112
  }
72
113
  }
73
- _SpoFolderSharingLinkAddCommand_instances = new WeakSet(), _SpoFolderSharingLinkAddCommand_initTelemetry = function _SpoFolderSharingLinkAddCommand_initTelemetry() {
74
- this.telemetry.push((args) => {
75
- Object.assign(this.telemetryProperties, {
76
- folderId: typeof args.options.folderId !== 'undefined',
77
- folderUrl: typeof args.options.folderUrl !== 'undefined',
78
- type: typeof args.options.type !== 'undefined',
79
- expirationDateTime: typeof args.options.expirationDateTime !== 'undefined',
80
- scope: typeof args.options.scope !== 'undefined',
81
- retainInheritiedPermissions: !!args.options.retainInheritiedPermissions,
82
- recipients: typeof args.options.recipients !== 'undefined'
83
- });
84
- });
85
- }, _SpoFolderSharingLinkAddCommand_initOptions = function _SpoFolderSharingLinkAddCommand_initOptions() {
86
- this.options.unshift({
87
- option: '-u, --webUrl <webUrl>'
88
- }, {
89
- option: '--folderId [folderId]'
90
- }, {
91
- option: '--folderUrl [folderUrl]'
92
- }, {
93
- option: '--type <type>',
94
- autocomplete: this.allowedTypes
95
- }, {
96
- option: '--expirationDateTime [expirationDateTime]'
97
- }, {
98
- option: '--scope [scope]',
99
- autocomplete: this.allowedScopes
100
- }, {
101
- option: '--retainInheritedPermissions [retainInheritedPermissions]'
102
- }, {
103
- option: '--recipients [recipients]'
104
- });
105
- }, _SpoFolderSharingLinkAddCommand_initValidators = function _SpoFolderSharingLinkAddCommand_initValidators() {
106
- this.validators.push(async (args) => {
107
- const isValidSharePointUrl = validation.isValidSharePointUrl(args.options.webUrl);
108
- if (isValidSharePointUrl !== true) {
109
- return isValidSharePointUrl;
110
- }
111
- if (args.options.folderId && !validation.isValidGuid(args.options.folderId)) {
112
- return `${args.options.folderId} is not a valid GUID`;
113
- }
114
- if (args.options.type && !this.allowedTypes.some(type => type === args.options.type)) {
115
- return `'${args.options.type}' is not a valid type. Allowed values are: ${this.allowedTypes.join(',')}`;
116
- }
117
- if (args.options.scope) {
118
- if (!this.allowedScopes.includes(args.options.scope)) {
119
- return `'${args.options.scope}' is not a valid scope. Allowed values are: ${this.allowedScopes.join(', ')}.`;
120
- }
121
- }
122
- if (args.options.expirationDateTime && !validation.isValidISODateTime(args.options.expirationDateTime)) {
123
- return `${args.options.expirationDateTime} is not a valid ISO date string.`;
124
- }
125
- if (args.options.recipients) {
126
- const isValidUPNArrayResult = validation.isValidUserPrincipalNameArray(args.options.recipients);
127
- if (isValidUPNArrayResult !== true) {
128
- return `The following user principal names are invalid for the option 'recipients': ${isValidUPNArrayResult}.`;
129
- }
130
- }
131
- return true;
132
- });
133
- }, _SpoFolderSharingLinkAddCommand_initOptionSets = function _SpoFolderSharingLinkAddCommand_initOptionSets() {
134
- this.optionSets.push({ options: ['folderId', 'folderUrl'] }, {
135
- options: ['recipients'],
136
- runsWhen: (args) => args.options.scope !== undefined && args.options.scope === 'users'
137
- });
138
- }, _SpoFolderSharingLinkAddCommand_initTypes = function _SpoFolderSharingLinkAddCommand_initTypes() {
139
- this.types.string.push('webUrl', 'folderId', 'folderUrl', 'type', 'expirationDateTime', 'scope', 'recipients');
140
- this.types.boolean.push('retainInheritiedPermissions');
141
- };
142
114
  export default new SpoFolderSharingLinkAddCommand();
143
115
  //# sourceMappingURL=folder-sharinglink-add.js.map