@pnp/cli-microsoft365 12.0.0-beta.1752794 → 12.0.0-beta.235caf5

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 (216) hide show
  1. package/allCommands.json +1 -1
  2. package/allCommandsFull.json +1 -1
  3. package/dist/Auth.js +19 -2
  4. package/dist/cli/cli.js +3 -0
  5. package/dist/config.js +1 -0
  6. package/dist/m365/cli/commands/cli-consent.js +9 -2
  7. package/dist/m365/entra/commands/agent/agent-blueprint-list.js +52 -0
  8. package/dist/m365/entra/commands/m365group/m365group-add.js +52 -97
  9. package/dist/m365/entra/commands/m365group/m365group-conversation-list.js +20 -33
  10. package/dist/m365/entra/commands/m365group/m365group-conversation-post-list.js +20 -39
  11. package/dist/m365/entra/commands/m365group/m365group-get.js +20 -41
  12. package/dist/m365/entra/commands/m365group/m365group-list.js +11 -31
  13. package/dist/m365/entra/commands/m365group/m365group-recyclebinitem-clear.js +8 -22
  14. package/dist/m365/entra/commands/m365group/m365group-recyclebinitem-list.js +9 -25
  15. package/dist/m365/entra/commands/m365group/m365group-recyclebinitem-remove.js +21 -43
  16. package/dist/m365/entra/commands/m365group/m365group-recyclebinitem-restore.js +21 -41
  17. package/dist/m365/entra/commands/m365group/m365group-remove.js +25 -46
  18. package/dist/m365/entra/commands/m365group/m365group-renew.js +19 -32
  19. package/dist/m365/entra/commands/m365group/m365group-set.js +86 -141
  20. package/dist/m365/entra/commands/m365group/m365group-teamify.js +20 -43
  21. package/dist/m365/entra/commands/m365group/m365group-user-add.js +44 -77
  22. package/dist/m365/entra/commands/m365group/m365group-user-list.js +28 -55
  23. package/dist/m365/entra/commands/m365group/m365group-user-remove.js +37 -74
  24. package/dist/m365/entra/commands/m365group/m365group-user-set.js +45 -77
  25. package/dist/m365/entra/commands.js +1 -0
  26. package/dist/m365/graph/commands/schemaextension/schemaextension-list.js +14 -16
  27. package/dist/m365/outlook/commands/calendargroup/calendargroup-add.js +97 -0
  28. package/dist/m365/outlook/commands/event/event-add.js +324 -0
  29. package/dist/m365/outlook/commands.js +2 -0
  30. package/dist/m365/spe/commands/container/container-permission-add.js +114 -0
  31. package/dist/m365/spe/commands/container/container-permission-remove.js +94 -0
  32. package/dist/m365/spe/commands/container/container-permission-set.js +90 -0
  33. package/dist/m365/spe/commands.js +3 -0
  34. package/dist/m365/spfx/commands/SpfxCompatibilityMatrix.js +15 -0
  35. package/dist/m365/spfx/commands/project/project-doctor/doctor-1.24.0.js +19 -0
  36. package/dist/m365/spfx/commands/project/project-doctor.js +2 -1
  37. package/dist/m365/spfx/commands/project/project-upgrade/rules/FN012021_TSC_excludeDirectories.js +43 -0
  38. package/dist/m365/spfx/commands/project/project-upgrade/rules/FN027002_OVERRIDES_qs.js +33 -0
  39. package/dist/m365/spfx/commands/project/project-upgrade/rules/FN027003_OVERRIDES_uuid.js +33 -0
  40. package/dist/m365/spfx/commands/project/project-upgrade/upgrade-1.24.0.js +77 -0
  41. package/dist/m365/spfx/commands/project/project-upgrade.js +2 -1
  42. package/dist/m365/spo/commands/commandset/commandset-add.js +17 -59
  43. package/dist/m365/spo/commands/commandset/commandset-get.js +24 -62
  44. package/dist/m365/spo/commands/commandset/commandset-list.js +11 -34
  45. package/dist/m365/spo/commands/commandset/commandset-remove.js +21 -54
  46. package/dist/m365/spo/commands/commandset/commandset-set.js +30 -83
  47. package/dist/m365/spo/commands/contenttype/contenttype-add.js +22 -51
  48. package/dist/m365/spo/commands/contenttype/contenttype-field-list.js +38 -62
  49. package/dist/m365/spo/commands/contenttype/contenttype-field-remove.js +25 -54
  50. package/dist/m365/spo/commands/contenttype/contenttype-field-set.js +20 -43
  51. package/dist/m365/spo/commands/contenttype/contenttype-get.js +29 -54
  52. package/dist/m365/spo/commands/contenttype/contenttype-list.js +13 -30
  53. package/dist/m365/spo/commands/contenttype/contenttype-remove.js +24 -39
  54. package/dist/m365/spo/commands/contenttype/contenttype-set.js +42 -63
  55. package/dist/m365/spo/commands/contenttype/contenttype-sync.js +37 -59
  56. package/dist/m365/spo/commands/contenttypehub/contenttypehub-get.js +5 -0
  57. package/dist/m365/spo/commands/customaction/customaction-add.js +124 -145
  58. package/dist/m365/spo/commands/customaction/customaction-clear.js +12 -43
  59. package/dist/m365/spo/commands/customaction/customaction-get.js +28 -59
  60. package/dist/m365/spo/commands/customaction/customaction-list.js +12 -42
  61. package/dist/m365/spo/commands/customaction/customaction-remove.js +26 -54
  62. package/dist/m365/spo/commands/customaction/customaction-set.js +75 -132
  63. package/dist/m365/spo/commands/externaluser/externaluser-list.js +5 -14
  64. package/dist/m365/spo/commands/knowledgehub/knowledgehub-get.js +5 -0
  65. package/dist/m365/spo/commands/knowledgehub/knowledgehub-remove.js +8 -22
  66. package/dist/m365/spo/commands/knowledgehub/knowledgehub-set.js +10 -18
  67. package/dist/m365/spo/commands/listitem/listitem-add.js +27 -55
  68. package/dist/m365/spo/commands/listitem/listitem-attachment-add.js +30 -58
  69. package/dist/m365/spo/commands/listitem/listitem-attachment-get.js +27 -52
  70. package/dist/m365/spo/commands/listitem/listitem-attachment-list.js +26 -50
  71. package/dist/m365/spo/commands/listitem/listitem-attachment-remove.js +28 -55
  72. package/dist/m365/spo/commands/listitem/listitem-attachment-set.js +30 -57
  73. package/dist/m365/spo/commands/listitem/listitem-batch-add.js +36 -58
  74. package/dist/m365/spo/commands/listitem/listitem-batch-remove.js +68 -92
  75. package/dist/m365/spo/commands/listitem/listitem-batch-set.js +37 -57
  76. package/dist/m365/spo/commands/listitem/listitem-get.js +45 -68
  77. package/dist/m365/spo/commands/listitem/listitem-isrecord.js +31 -55
  78. package/dist/m365/spo/commands/listitem/listitem-list.js +47 -81
  79. package/dist/m365/spo/commands/listitem/listitem-record-declare.js +37 -60
  80. package/dist/m365/spo/commands/listitem/listitem-record-lock.js +30 -52
  81. package/dist/m365/spo/commands/listitem/listitem-record-undeclare.js +31 -52
  82. package/dist/m365/spo/commands/listitem/listitem-record-unlock.js +30 -52
  83. package/dist/m365/spo/commands/listitem/listitem-remove.js +33 -61
  84. package/dist/m365/spo/commands/listitem/listitem-retentionlabel-ensure.js +46 -67
  85. package/dist/m365/spo/commands/listitem/listitem-retentionlabel-remove.js +33 -56
  86. package/dist/m365/spo/commands/listitem/listitem-roleassignment-add.js +55 -98
  87. package/dist/m365/spo/commands/listitem/listitem-roleassignment-remove.js +48 -74
  88. package/dist/m365/spo/commands/listitem/listitem-roleinheritance-break.js +33 -56
  89. package/dist/m365/spo/commands/listitem/listitem-roleinheritance-reset.js +31 -53
  90. package/dist/m365/spo/commands/listitem/listitem-set.js +33 -58
  91. package/dist/m365/spo/commands/navigation/navigation-node-add.js +74 -120
  92. package/dist/m365/spo/commands/navigation/navigation-node-get.js +4 -13
  93. package/dist/m365/spo/commands/navigation/navigation-node-list.js +1 -1
  94. package/dist/m365/spo/commands/navigation/navigation-node-remove.js +13 -47
  95. package/dist/m365/spo/commands/navigation/navigation-node-set.js +53 -114
  96. package/dist/m365/spo/commands/orgassetslibrary/orgassetslibrary-list.js +1 -1
  97. package/dist/m365/spo/commands/page/page-column-list.js +7 -8
  98. package/dist/m365/spo/commands/page/page-section-list.js +15 -17
  99. package/dist/m365/spo/commands/page/page-unpublish.js +53 -0
  100. package/dist/m365/spo/commands/sitescript/sitescript-add.js +22 -37
  101. package/dist/m365/spo/commands/sitescript/sitescript-get.js +9 -26
  102. package/dist/m365/spo/commands/sitescript/sitescript-list.js +5 -0
  103. package/dist/m365/spo/commands/sitescript/sitescript-remove.js +9 -33
  104. package/dist/m365/spo/commands/sitescript/sitescript-set.js +29 -56
  105. package/dist/m365/spo/commands/spo-search.js +43 -116
  106. package/dist/m365/spo/commands/tenant/tenant-applicationcustomizer-add.js +8 -1
  107. package/dist/m365/spo/commands/tenant/tenant-commandset-add.js +8 -1
  108. package/dist/m365/spo/commands/term/term-group-list.js +7 -8
  109. package/dist/m365/spo/commands/term/term-set-list.js +6 -9
  110. package/dist/m365/spo/commands.js +1 -0
  111. package/dist/m365/spp/commands/contentcenter/contentcenter-list.js +5 -0
  112. package/dist/m365/spp/commands/model/model-get.js +25 -45
  113. package/dist/m365/spp/commands/model/model-list.js +12 -23
  114. package/dist/m365/spp/commands/model/model-remove.js +25 -45
  115. package/dist/m365/teams/commands/app/app-install.js +35 -44
  116. package/dist/m365/teams/commands/app/app-list.js +8 -33
  117. package/dist/m365/teams/commands/app/app-publish.js +21 -27
  118. package/dist/m365/teams/commands/app/app-remove.js +22 -39
  119. package/dist/m365/teams/commands/app/app-uninstall.js +12 -34
  120. package/dist/m365/teams/commands/app/app-update.js +35 -45
  121. package/dist/m365/teams/commands/funsettings/funsettings-list.js +12 -23
  122. package/dist/m365/teams/commands/funsettings/funsettings-set.js +18 -54
  123. package/dist/m365/teams/commands/guestsettings/guestsettings-list.js +12 -23
  124. package/dist/m365/teams/commands/guestsettings/guestsettings-set.js +15 -40
  125. package/dist/m365/teams/commands/meeting/meeting-add.js +57 -68
  126. package/dist/m365/teams/commands/meeting/meeting-attendancereport-get.js +33 -58
  127. package/dist/m365/teams/commands/meeting/meeting-attendancereport-list.js +14 -38
  128. package/dist/m365/teams/commands/meeting/meeting-get.js +14 -38
  129. package/dist/m365/teams/commands/meeting/meeting-list.js +34 -59
  130. package/dist/m365/teams/commands/meeting/meeting-transcript-get.js +34 -58
  131. package/dist/m365/teams/commands/meeting/meeting-transcript-list.js +29 -50
  132. package/dist/m365/teams/commands/membersettings/membersettings-list.js +12 -23
  133. package/dist/m365/teams/commands/membersettings/membersettings-set.js +18 -49
  134. package/dist/m365/teams/commands/message/message-get.js +19 -30
  135. package/dist/m365/teams/commands/message/message-list.js +26 -43
  136. package/dist/m365/teams/commands/message/message-remove.js +43 -58
  137. package/dist/m365/teams/commands/message/message-reply-list.js +19 -30
  138. package/dist/m365/teams/commands/message/message-restore.js +40 -50
  139. package/dist/m365/teams/commands/message/message-send.js +19 -30
  140. package/dist/m365/teams/commands/messagingsettings/messagingsettings-list.js +12 -23
  141. package/dist/m365/teams/commands/messagingsettings/messagingsettings-set.js +18 -60
  142. package/dist/m365/teams/commands/report/report-deviceusagedistributionusercounts.js +10 -0
  143. package/dist/m365/teams/commands/report/report-deviceusageusercounts.js +10 -0
  144. package/dist/m365/teams/commands/report/report-deviceusageuserdetail.js +22 -0
  145. package/dist/m365/teams/commands/report/report-directroutingcalls.js +19 -39
  146. package/dist/m365/teams/commands/report/report-pstncalls.js +19 -39
  147. package/dist/m365/teams/commands/report/report-useractivitycounts.js +10 -0
  148. package/dist/m365/teams/commands/report/report-useractivityusercounts.js +10 -0
  149. package/dist/m365/teams/commands/report/report-useractivityuserdetail.js +22 -0
  150. package/dist/m365/teams/commands/tab/tab-add.js +23 -49
  151. package/dist/m365/teams/commands/tab/tab-get.js +55 -56
  152. package/dist/m365/teams/commands/tab/tab-list.js +17 -28
  153. package/dist/m365/teams/commands/tab/tab-remove.js +23 -42
  154. package/dist/m365/teams/commands/team/team-add.js +76 -114
  155. package/dist/m365/teams/commands/team/team-app-list.js +23 -36
  156. package/dist/m365/teams/commands/team/team-archive.js +24 -39
  157. package/dist/m365/teams/commands/team/team-clone.js +28 -62
  158. package/dist/m365/teams/commands/team/team-get.js +23 -36
  159. package/dist/m365/teams/commands/team/team-list.js +43 -57
  160. package/dist/m365/teams/commands/team/team-remove.js +24 -37
  161. package/dist/m365/teams/commands/team/team-set.js +23 -52
  162. package/dist/m365/teams/commands/team/team-unarchive.js +23 -28
  163. package/dist/m365/teams/commands/user/user-app-add.js +40 -49
  164. package/dist/m365/teams/commands/user/user-app-list.js +26 -39
  165. package/dist/m365/teams/commands/user/user-app-remove.js +37 -49
  166. package/dist/m365/teams/commands/user/user-app-upgrade.js +36 -52
  167. package/dist/m365/teams/commands/user/user-list.js +17 -39
  168. package/dist/m365/tenant/commands/report/report-activeusercounts.js +2 -1
  169. package/dist/m365/tenant/commands/report/report-activeuserdetail.js +2 -1
  170. package/dist/m365/tenant/commands/report/report-office365activationcounts.js +9 -0
  171. package/dist/m365/tenant/commands/report/report-office365activationsusercounts.js +9 -0
  172. package/dist/m365/tenant/commands/report/report-office365activationsuserdetail.js +9 -0
  173. package/dist/m365/tenant/commands/report/report-servicesusercounts.js +2 -1
  174. package/dist/m365/tenant/commands/report/report-settings-get.js +5 -0
  175. package/dist/m365/tenant/commands/serviceannouncement/serviceannouncement-health-get.js +9 -20
  176. package/dist/m365/tenant/commands/serviceannouncement/serviceannouncement-health-list.js +8 -20
  177. package/dist/m365/tenant/commands/serviceannouncement/serviceannouncement-healthissue-get.js +8 -15
  178. package/dist/m365/tenant/commands/serviceannouncement/serviceannouncement-healthissue-list.js +8 -15
  179. package/dist/m365/tenant/commands/serviceannouncement/serviceannouncement-message-get.js +12 -26
  180. package/dist/m365/tenant/commands/serviceannouncement/serviceannouncement-message-list.js +8 -22
  181. package/dist/utils/calendar.js +1 -1
  182. package/dist/utils/formatting.js +16 -0
  183. package/dist/utils/pid.js +7 -16
  184. package/dist/utils/spe.js +1 -1
  185. package/dist/utils/spo.js +39 -0
  186. package/dist/utils/validation.js +24 -0
  187. package/dist/utils/zod.js +17 -7
  188. package/docs/docs/cmd/entra/agent/agent-blueprint-list.mdx +175 -0
  189. package/docs/docs/cmd/login.mdx +15 -2
  190. package/docs/docs/cmd/outlook/calendargroup/calendargroup-add.mdx +126 -0
  191. package/docs/docs/cmd/outlook/event/event-add.mdx +390 -0
  192. package/docs/docs/cmd/spe/container/container-add.mdx +0 -8
  193. package/docs/docs/cmd/spe/container/container-list.mdx +0 -8
  194. package/docs/docs/cmd/spe/container/container-permission-add.mdx +140 -0
  195. package/docs/docs/cmd/spe/container/container-permission-remove.mdx +78 -0
  196. package/docs/docs/cmd/spe/container/container-permission-set.mdx +78 -0
  197. package/docs/docs/cmd/spe/container/container-recyclebinitem-list.mdx +0 -8
  198. package/docs/docs/cmd/spe/container/container-recyclebinitem-restore.mdx +0 -8
  199. package/docs/docs/cmd/spe/container/container-remove.mdx +0 -8
  200. package/docs/docs/cmd/spe/containertype/containertype-add.mdx +1 -1
  201. package/docs/docs/cmd/spfx/project/project-upgrade.mdx +1 -1
  202. package/docs/docs/cmd/spo/externaluser/externaluser-list.mdx +17 -30
  203. package/docs/docs/cmd/spo/navigation/navigation-node-add.mdx +45 -30
  204. package/docs/docs/cmd/spo/navigation/navigation-node-get.mdx +64 -42
  205. package/docs/docs/cmd/spo/navigation/navigation-node-set.mdx +10 -8
  206. package/docs/docs/cmd/spo/orgassetslibrary/orgassetslibrary-list.mdx +0 -21
  207. package/docs/docs/cmd/spo/page/page-unpublish.mdx +63 -0
  208. package/docs/docs/cmd/teams/tab/tab-add.mdx +19 -0
  209. package/docs/docs/cmd/teams/tab/tab-get.mdx +19 -0
  210. package/docs/docs/cmd/teams/tab/tab-list.mdx +19 -0
  211. package/docs/docs/cmd/teams/tab/tab-remove.mdx +21 -0
  212. package/docs/docs/cmd/viva/engage/engage-message-add.mdx +17 -0
  213. package/docs/docs/cmd/viva/engage/engage-message-get.mdx +17 -0
  214. package/docs/docs/cmd/viva/engage/engage-message-list.mdx +17 -0
  215. package/docs/docs/cmd/viva/engage/engage-message-remove.mdx +19 -0
  216. package/package.json +4 -6
@@ -1,19 +1,57 @@
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 _SpoListItemBatchRemoveCommand_instances, _SpoListItemBatchRemoveCommand_initTelemetry, _SpoListItemBatchRemoveCommand_initOptions, _SpoListItemBatchRemoveCommand_initValidators, _SpoListItemBatchRemoveCommand_initTypes, _SpoListItemBatchRemoveCommand_initOptionSets;
7
1
  import fs from 'fs';
8
2
  import os from 'os';
9
- import SpoCommand from '../../../base/SpoCommand.js';
10
- import commands from '../../commands.js';
11
- import { formatting } from '../../../../utils/formatting.js';
12
- import { urlUtil } from '../../../../utils/urlUtil.js';
13
3
  import { v4 } from 'uuid';
4
+ import { z } from 'zod';
5
+ import { cli } from '../../../../cli/cli.js';
6
+ import { globalOptionsZod } from '../../../../Command.js';
14
7
  import request from '../../../../request.js';
8
+ import { formatting } from '../../../../utils/formatting.js';
9
+ import { urlUtil } from '../../../../utils/urlUtil.js';
15
10
  import { validation } from '../../../../utils/validation.js';
16
- import { cli } from '../../../../cli/cli.js';
11
+ import SpoCommand from '../../../base/SpoCommand.js';
12
+ import commands from '../../commands.js';
13
+ export const options = z.strictObject({
14
+ ...globalOptionsZod.shape,
15
+ webUrl: z.string().refine(url => validation.isValidSharePointUrl(url) === true, {
16
+ error: e => `'${e.input}' is not a valid SharePoint Online site URL.`
17
+ }).alias('u'),
18
+ listId: z.string().refine(id => validation.isValidGuid(id), {
19
+ error: e => `${e.input} in option listId is not a valid GUID.`
20
+ }).optional().alias('l'),
21
+ listTitle: z.string().optional().alias('t'),
22
+ listUrl: z.string().optional(),
23
+ filePath: z.string()
24
+ .superRefine((path, ctx) => {
25
+ if (!fs.existsSync(path)) {
26
+ ctx.addIssue({ code: 'custom', message: `File with path ${path} does not exist.` });
27
+ return;
28
+ }
29
+ const fileContent = fs.readFileSync(path, 'utf-8');
30
+ const jsonContent = formatting.parseCsvToJson(fileContent);
31
+ const idKey = Object.keys(jsonContent[0]).find(key => key.toLowerCase() === 'id');
32
+ if (!idKey) {
33
+ ctx.addIssue({ code: 'custom', message: `The file does not contain the required header row with the column name 'ID'.` });
34
+ return;
35
+ }
36
+ const invalidIDs = validation.isValidPositiveIntegerArray(jsonContent.map(element => element[idKey].toString().trim()).join(','));
37
+ if (invalidIDs !== true) {
38
+ ctx.addIssue({ code: 'custom', message: `The file contains one or more invalid IDs: '${invalidIDs}'.` });
39
+ }
40
+ })
41
+ .optional()
42
+ .alias('p'),
43
+ ids: z.string()
44
+ .superRefine((val, ctx) => {
45
+ const invalidIDs = validation.isValidPositiveIntegerArray(val);
46
+ if (invalidIDs !== true) {
47
+ ctx.addIssue({ code: 'custom', message: `Option 'ids' contains one or more invalid IDs: '${invalidIDs}'.` });
48
+ }
49
+ })
50
+ .optional()
51
+ .alias('i'),
52
+ permanent: z.boolean().optional(),
53
+ force: z.boolean().optional().alias('f')
54
+ });
17
55
  class SpoListItemBatchRemoveCommand extends SpoCommand {
18
56
  get name() {
19
57
  return commands.LISTITEM_BATCH_REMOVE;
@@ -21,14 +59,25 @@ class SpoListItemBatchRemoveCommand extends SpoCommand {
21
59
  get description() {
22
60
  return 'Removes items from a list in batch';
23
61
  }
24
- constructor() {
25
- super();
26
- _SpoListItemBatchRemoveCommand_instances.add(this);
27
- __classPrivateFieldGet(this, _SpoListItemBatchRemoveCommand_instances, "m", _SpoListItemBatchRemoveCommand_initTelemetry).call(this);
28
- __classPrivateFieldGet(this, _SpoListItemBatchRemoveCommand_instances, "m", _SpoListItemBatchRemoveCommand_initOptions).call(this);
29
- __classPrivateFieldGet(this, _SpoListItemBatchRemoveCommand_instances, "m", _SpoListItemBatchRemoveCommand_initValidators).call(this);
30
- __classPrivateFieldGet(this, _SpoListItemBatchRemoveCommand_instances, "m", _SpoListItemBatchRemoveCommand_initTypes).call(this);
31
- __classPrivateFieldGet(this, _SpoListItemBatchRemoveCommand_instances, "m", _SpoListItemBatchRemoveCommand_initOptionSets).call(this);
62
+ get schema() {
63
+ return options;
64
+ }
65
+ getRefinedSchema(schema) {
66
+ return schema
67
+ .refine(opts => [opts.listId, opts.listTitle, opts.listUrl].filter(o => o !== undefined).length === 1, {
68
+ error: 'Use one of the following options: listId, listTitle, listUrl.',
69
+ params: {
70
+ customCode: 'optionSet',
71
+ options: ['listId', 'listTitle', 'listUrl']
72
+ }
73
+ })
74
+ .refine(opts => [opts.filePath, opts.ids].filter(o => o !== undefined).length === 1, {
75
+ error: 'Use one of the following options: filePath, ids.',
76
+ params: {
77
+ customCode: 'optionSet',
78
+ options: ['filePath', 'ids']
79
+ }
80
+ });
32
81
  }
33
82
  async commandAction(logger, args) {
34
83
  const removeListItems = async () => {
@@ -148,78 +197,5 @@ class SpoListItemBatchRemoveCommand extends SpoCommand {
148
197
  return requestUrl;
149
198
  }
150
199
  }
151
- _SpoListItemBatchRemoveCommand_instances = new WeakSet(), _SpoListItemBatchRemoveCommand_initTelemetry = function _SpoListItemBatchRemoveCommand_initTelemetry() {
152
- this.telemetry.push((args) => {
153
- Object.assign(this.telemetryProperties, {
154
- filePath: typeof args.options.filePath !== 'undefined',
155
- ids: typeof args.options.ids !== 'undefined',
156
- listId: typeof args.options.listId !== 'undefined',
157
- listTitle: typeof args.options.listTitle !== 'undefined',
158
- listUrl: typeof args.options.listUrl !== 'undefined',
159
- permanent: !!args.options.permanent,
160
- force: !!args.options.force
161
- });
162
- });
163
- }, _SpoListItemBatchRemoveCommand_initOptions = function _SpoListItemBatchRemoveCommand_initOptions() {
164
- this.options.unshift({
165
- option: '-u, --webUrl <webUrl>'
166
- }, {
167
- option: '-l, --listId [listId]'
168
- }, {
169
- option: '-t, --listTitle [listTitle]'
170
- }, {
171
- option: '--listUrl [listUrl]'
172
- }, {
173
- option: '-p, --filePath [filePath]'
174
- }, {
175
- option: '-i, --ids [ids]'
176
- }, {
177
- option: '--permanent'
178
- }, {
179
- option: '-f, --force'
180
- });
181
- }, _SpoListItemBatchRemoveCommand_initValidators = function _SpoListItemBatchRemoveCommand_initValidators() {
182
- this.validators.push(async (args) => {
183
- const isValidSharePointUrl = validation.isValidSharePointUrl(args.options.webUrl);
184
- if (isValidSharePointUrl !== true) {
185
- return isValidSharePointUrl;
186
- }
187
- if (args.options.listId &&
188
- !validation.isValidGuid(args.options.listId)) {
189
- return `${args.options.listId} in option listId is not a valid GUID.`;
190
- }
191
- if (args.options.filePath) {
192
- if (!fs.existsSync(args.options.filePath)) {
193
- return `File with path ${args.options.filePath} does not exist.`;
194
- }
195
- const fileContent = fs.readFileSync(args.options.filePath, 'utf-8');
196
- const jsonContent = formatting.parseCsvToJson(fileContent);
197
- const idKey = Object.keys(jsonContent[0]).find(key => key.toLowerCase() === 'id');
198
- if (!idKey) {
199
- return `The file does not contain the required header row with the column name 'ID'.`;
200
- }
201
- const invalidIDs = validation.isValidPositiveIntegerArray(jsonContent.map(element => element[idKey].toString().trim()).join(','));
202
- if (invalidIDs !== true) {
203
- return `The file contains one or more invalid IDs: '${invalidIDs}'.`;
204
- }
205
- }
206
- if (args.options.ids) {
207
- const isValidIntegerArray = validation.isValidPositiveIntegerArray(args.options.ids);
208
- if (isValidIntegerArray !== true) {
209
- return `Option 'ids' contains one or more invalid IDs: '${isValidIntegerArray}'.`;
210
- }
211
- }
212
- return true;
213
- });
214
- }, _SpoListItemBatchRemoveCommand_initTypes = function _SpoListItemBatchRemoveCommand_initTypes() {
215
- this.types.string.push('webUrl', 'listId', 'listTitle', 'listUrl', 'ids', 'filePath');
216
- this.types.boolean.push('permanent', 'force');
217
- }, _SpoListItemBatchRemoveCommand_initOptionSets = function _SpoListItemBatchRemoveCommand_initOptionSets() {
218
- this.optionSets.push({
219
- options: ['listId', 'listTitle', 'listUrl']
220
- }, {
221
- options: ['filePath', 'ids']
222
- });
223
- };
224
200
  export default new SpoListItemBatchRemoveCommand();
225
201
  //# sourceMappingURL=listitem-batch-remove.js.map
@@ -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 _SpoListItemBatchSetCommand_instances, _SpoListItemBatchSetCommand_initTelemetry, _SpoListItemBatchSetCommand_initOptions, _SpoListItemBatchSetCommand_initValidators, _SpoListItemBatchSetCommand_initOptionSets;
7
1
  import fs from 'fs';
2
+ import { z } from 'zod';
3
+ import { globalOptionsZod } from '../../../../Command.js';
8
4
  import config from '../../../../config.js';
9
5
  import request from '../../../../request.js';
10
6
  import { formatting } from '../../../../utils/formatting.js';
@@ -13,6 +9,29 @@ import { spo } from '../../../../utils/spo.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.strictObject({
13
+ ...globalOptionsZod.shape,
14
+ filePath: z.string()
15
+ .refine(filePath => fs.existsSync(filePath), {
16
+ error: e => `File with path ${e.input} does not exist`
17
+ })
18
+ .alias('p'),
19
+ webUrl: z.string()
20
+ .refine(webUrl => validation.isValidSharePointUrl(webUrl) === true, {
21
+ error: e => `'${e.input}' is not a valid SharePoint Online site URL.`
22
+ })
23
+ .alias('u'),
24
+ listId: z.string()
25
+ .refine(listId => validation.isValidGuid(listId), {
26
+ error: e => `${e.input} in option listId is not a valid GUID`
27
+ })
28
+ .optional()
29
+ .alias('l'),
30
+ listTitle: z.string().optional().alias('t'),
31
+ listUrl: z.string().optional(),
32
+ idColumn: z.string().optional(),
33
+ systemUpdate: z.boolean().optional().alias('s')
34
+ });
16
35
  class SpoListItemBatchSetCommand extends SpoCommand {
17
36
  get name() {
18
37
  return commands.LISTITEM_BATCH_SET;
@@ -20,13 +39,18 @@ class SpoListItemBatchSetCommand extends SpoCommand {
20
39
  get description() {
21
40
  return 'Updates list items in a batch';
22
41
  }
23
- constructor() {
24
- super();
25
- _SpoListItemBatchSetCommand_instances.add(this);
26
- __classPrivateFieldGet(this, _SpoListItemBatchSetCommand_instances, "m", _SpoListItemBatchSetCommand_initTelemetry).call(this);
27
- __classPrivateFieldGet(this, _SpoListItemBatchSetCommand_instances, "m", _SpoListItemBatchSetCommand_initOptions).call(this);
28
- __classPrivateFieldGet(this, _SpoListItemBatchSetCommand_instances, "m", _SpoListItemBatchSetCommand_initValidators).call(this);
29
- __classPrivateFieldGet(this, _SpoListItemBatchSetCommand_instances, "m", _SpoListItemBatchSetCommand_initOptionSets).call(this);
42
+ get schema() {
43
+ return options;
44
+ }
45
+ getRefinedSchema(schema) {
46
+ return schema
47
+ .refine(opts => [opts.listId, opts.listTitle, opts.listUrl].filter(o => o !== undefined).length === 1, {
48
+ error: 'Specify one of the following options: listId, listTitle, listUrl.',
49
+ params: {
50
+ customCode: 'optionSet',
51
+ options: ['listId', 'listTitle', 'listUrl']
52
+ }
53
+ });
30
54
  }
31
55
  async commandAction(logger, args) {
32
56
  try {
@@ -194,49 +218,5 @@ class SpoListItemBatchSetCommand extends SpoCommand {
194
218
  return emailsToResolve;
195
219
  }
196
220
  }
197
- _SpoListItemBatchSetCommand_instances = new WeakSet(), _SpoListItemBatchSetCommand_initTelemetry = function _SpoListItemBatchSetCommand_initTelemetry() {
198
- this.telemetry.push((args) => {
199
- Object.assign(this.telemetryProperties, {
200
- idColumn: typeof args.options.idColumn !== 'undefined',
201
- listId: typeof args.options.listId !== 'undefined',
202
- listTitle: typeof args.options.listTitle !== 'undefined',
203
- listUrl: typeof args.options.listUrl !== 'undefined',
204
- systemUpdate: !!args.options.systemUpdate
205
- });
206
- });
207
- }, _SpoListItemBatchSetCommand_initOptions = function _SpoListItemBatchSetCommand_initOptions() {
208
- this.options.unshift({
209
- option: '-p, --filePath <filePath>'
210
- }, {
211
- option: '-u, --webUrl <webUrl>'
212
- }, {
213
- option: '-l, --listId [listId]'
214
- }, {
215
- option: '-t, --listTitle [listTitle]'
216
- }, {
217
- option: '--listUrl [listUrl]'
218
- }, {
219
- option: '--idColumn [idColumn]'
220
- }, {
221
- option: '-s, --systemUpdate'
222
- });
223
- }, _SpoListItemBatchSetCommand_initValidators = function _SpoListItemBatchSetCommand_initValidators() {
224
- this.validators.push(async (args) => {
225
- const isValidSharePointUrl = validation.isValidSharePointUrl(args.options.webUrl);
226
- if (isValidSharePointUrl !== true) {
227
- return isValidSharePointUrl;
228
- }
229
- if (args.options.listId &&
230
- !validation.isValidGuid(args.options.listId)) {
231
- return `${args.options.listId} in option listId is not a valid GUID`;
232
- }
233
- if (!fs.existsSync(args.options.filePath)) {
234
- return `File with path ${args.options.filePath} does not exist`;
235
- }
236
- return true;
237
- });
238
- }, _SpoListItemBatchSetCommand_initOptionSets = function _SpoListItemBatchSetCommand_initOptionSets() {
239
- this.optionSets.push({ options: ['listId', 'listTitle', 'listUrl'] });
240
- };
241
221
  export default new SpoListItemBatchSetCommand();
242
222
  //# sourceMappingURL=listitem-batch-set.js.map
@@ -1,15 +1,35 @@
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 _SpoListItemGetCommand_instances, _SpoListItemGetCommand_initTelemetry, _SpoListItemGetCommand_initOptions, _SpoListItemGetCommand_initValidators, _SpoListItemGetCommand_initTypes, _SpoListItemGetCommand_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()
12
+ .refine(webUrl => validation.isValidSharePointUrl(webUrl) === true, {
13
+ error: e => `'${e.input}' is not a valid SharePoint Online site URL.`
14
+ })
15
+ .alias('u'),
16
+ listId: z.string()
17
+ .refine(listId => validation.isValidGuid(listId), {
18
+ error: e => `${e.input} in option listId is not a valid GUID`
19
+ })
20
+ .optional()
21
+ .alias('l'),
22
+ listTitle: z.string().optional().alias('t'),
23
+ listUrl: z.string().optional(),
24
+ id: z.number().int().positive().optional().alias('i'),
25
+ uniqueId: z.string()
26
+ .refine(uniqueId => validation.isValidGuid(uniqueId), {
27
+ error: e => `${e.input} in option uniqueId is not a valid GUID`
28
+ })
29
+ .optional(),
30
+ fields: z.string().optional(),
31
+ withPermissions: z.boolean().optional()
32
+ });
13
33
  class SpoListItemGetCommand extends SpoCommand {
14
34
  get name() {
15
35
  return commands.LISTITEM_GET;
@@ -17,14 +37,25 @@ class SpoListItemGetCommand extends SpoCommand {
17
37
  get description() {
18
38
  return 'Gets a list item from the specified list';
19
39
  }
20
- constructor() {
21
- super();
22
- _SpoListItemGetCommand_instances.add(this);
23
- __classPrivateFieldGet(this, _SpoListItemGetCommand_instances, "m", _SpoListItemGetCommand_initTelemetry).call(this);
24
- __classPrivateFieldGet(this, _SpoListItemGetCommand_instances, "m", _SpoListItemGetCommand_initOptions).call(this);
25
- __classPrivateFieldGet(this, _SpoListItemGetCommand_instances, "m", _SpoListItemGetCommand_initValidators).call(this);
26
- __classPrivateFieldGet(this, _SpoListItemGetCommand_instances, "m", _SpoListItemGetCommand_initTypes).call(this);
27
- __classPrivateFieldGet(this, _SpoListItemGetCommand_instances, "m", _SpoListItemGetCommand_initOptionSets).call(this);
40
+ get schema() {
41
+ return options;
42
+ }
43
+ getRefinedSchema(schema) {
44
+ return schema
45
+ .refine(opts => [opts.listId, opts.listTitle, opts.listUrl].filter(o => o !== undefined).length === 1, {
46
+ error: 'Specify one of the following options: listId, listTitle, listUrl.',
47
+ params: {
48
+ customCode: 'optionSet',
49
+ options: ['listId', 'listTitle', 'listUrl']
50
+ }
51
+ })
52
+ .refine(opts => [opts.id, opts.uniqueId].filter(o => o !== undefined).length === 1, {
53
+ error: 'Specify one of the following options: id, uniqueId.',
54
+ params: {
55
+ customCode: 'optionSet',
56
+ options: ['id', 'uniqueId']
57
+ }
58
+ });
28
59
  }
29
60
  async commandAction(logger, args) {
30
61
  let requestUrl = `${args.options.webUrl}/_api/web`;
@@ -74,59 +105,5 @@ class SpoListItemGetCommand extends SpoCommand {
74
105
  }
75
106
  }
76
107
  }
77
- _SpoListItemGetCommand_instances = new WeakSet(), _SpoListItemGetCommand_initTelemetry = function _SpoListItemGetCommand_initTelemetry() {
78
- this.telemetry.push((args) => {
79
- Object.assign(this.telemetryProperties, {
80
- listId: typeof args.options.listId !== 'undefined',
81
- listTitle: typeof args.options.listTitle !== 'undefined',
82
- listUrl: typeof args.options.listUrl !== 'undefined',
83
- id: typeof args.options.id !== 'undefined',
84
- uniqueId: typeof args.options.uniqueId !== 'undefined',
85
- withPermissions: !!args.options.withPermissions
86
- });
87
- });
88
- }, _SpoListItemGetCommand_initOptions = function _SpoListItemGetCommand_initOptions() {
89
- this.options.unshift({
90
- option: '-u, --webUrl <webUrl>'
91
- }, {
92
- option: '-i, --id [id]'
93
- }, {
94
- option: '--uniqueId [uniqueId]'
95
- }, {
96
- option: '-l, --listId [listId]'
97
- }, {
98
- option: '-t, --listTitle [listTitle]'
99
- }, {
100
- option: '--listUrl [listUrl]'
101
- }, {
102
- option: '--fields [fields]'
103
- }, {
104
- option: '--withPermissions'
105
- });
106
- }, _SpoListItemGetCommand_initValidators = function _SpoListItemGetCommand_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 (args.options.listId &&
113
- !validation.isValidGuid(args.options.listId)) {
114
- return `${args.options.listId} in option listId is not a valid GUID`;
115
- }
116
- if (args.options.id &&
117
- isNaN(parseInt(args.options.id))) {
118
- return `${args.options.id} is not a number`;
119
- }
120
- if (args.options.uniqueId &&
121
- !validation.isValidGuid(args.options.uniqueId)) {
122
- return `${args.options.uniqueId} in option uniqueId is not a valid GUID`;
123
- }
124
- return true;
125
- });
126
- }, _SpoListItemGetCommand_initTypes = function _SpoListItemGetCommand_initTypes() {
127
- this.types.string.push('webUrl', 'listId', 'listTitle', 'id', 'uniqueId', 'fields');
128
- }, _SpoListItemGetCommand_initOptionSets = function _SpoListItemGetCommand_initOptionSets() {
129
- this.optionSets.push({ options: ['listId', 'listTitle', 'listUrl'] }, { options: ['id', 'uniqueId'] });
130
- };
131
108
  export default new SpoListItemGetCommand();
132
109
  //# sourceMappingURL=listitem-get.js.map
@@ -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 _SpoListItemIsRecordCommand_instances, _SpoListItemIsRecordCommand_initTelemetry, _SpoListItemIsRecordCommand_initOptions, _SpoListItemIsRecordCommand_initValidators, _SpoListItemIsRecordCommand_initOptionSets;
1
+ import { z } from 'zod';
7
2
  import { Auth } from '../../../../Auth.js';
3
+ import { globalOptionsZod } from '../../../../Command.js';
8
4
  import config from '../../../../config.js';
9
5
  import request from '../../../../request.js';
10
6
  import { formatting } from '../../../../utils/formatting.js';
@@ -13,6 +9,23 @@ 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.strictObject({
13
+ ...globalOptionsZod.shape,
14
+ id: z.number().int().positive().alias('i'),
15
+ listId: z.string()
16
+ .refine(listId => validation.isValidGuid(listId), {
17
+ error: e => `${e.input} in option listId is not a valid GUID`
18
+ })
19
+ .optional()
20
+ .alias('l'),
21
+ listTitle: z.string().optional().alias('t'),
22
+ listUrl: z.string().optional(),
23
+ webUrl: z.string()
24
+ .refine(webUrl => validation.isValidSharePointUrl(webUrl) === true, {
25
+ error: e => `'${e.input}' is not a valid SharePoint Online site URL.`
26
+ })
27
+ .alias('u')
28
+ });
16
29
  class SpoListItemIsRecordCommand extends SpoCommand {
17
30
  get name() {
18
31
  return commands.LISTITEM_ISRECORD;
@@ -20,13 +33,18 @@ class SpoListItemIsRecordCommand extends SpoCommand {
20
33
  get description() {
21
34
  return 'Checks if the specified list item is a record';
22
35
  }
23
- constructor() {
24
- super();
25
- _SpoListItemIsRecordCommand_instances.add(this);
26
- __classPrivateFieldGet(this, _SpoListItemIsRecordCommand_instances, "m", _SpoListItemIsRecordCommand_initTelemetry).call(this);
27
- __classPrivateFieldGet(this, _SpoListItemIsRecordCommand_instances, "m", _SpoListItemIsRecordCommand_initOptions).call(this);
28
- __classPrivateFieldGet(this, _SpoListItemIsRecordCommand_instances, "m", _SpoListItemIsRecordCommand_initValidators).call(this);
29
- __classPrivateFieldGet(this, _SpoListItemIsRecordCommand_instances, "m", _SpoListItemIsRecordCommand_initOptionSets).call(this);
36
+ get schema() {
37
+ return options;
38
+ }
39
+ getRefinedSchema(schema) {
40
+ return schema
41
+ .refine(opts => [opts.listId, opts.listTitle, opts.listUrl].filter(o => o !== undefined).length === 1, {
42
+ error: 'Specify one of the following options: listId, listTitle, listUrl.',
43
+ params: {
44
+ customCode: 'optionSet',
45
+ options: ['listId', 'listTitle', 'listUrl']
46
+ }
47
+ });
30
48
  }
31
49
  async commandAction(logger, args) {
32
50
  const resource = Auth.getResourceFromUrl(args.options.webUrl);
@@ -111,47 +129,5 @@ class SpoListItemIsRecordCommand extends SpoCommand {
111
129
  return requestBody;
112
130
  }
113
131
  }
114
- _SpoListItemIsRecordCommand_instances = new WeakSet(), _SpoListItemIsRecordCommand_initTelemetry = function _SpoListItemIsRecordCommand_initTelemetry() {
115
- this.telemetry.push((args) => {
116
- Object.assign(this.telemetryProperties, {
117
- listId: typeof args.options.listId !== 'undefined',
118
- listTitle: typeof args.options.listTitle !== 'undefined',
119
- listUrl: typeof args.options.listUrl !== 'undefined'
120
- });
121
- });
122
- }, _SpoListItemIsRecordCommand_initOptions = function _SpoListItemIsRecordCommand_initOptions() {
123
- this.options.unshift({
124
- option: '-u, --webUrl <webUrl>'
125
- }, {
126
- option: '-i, --id <id>'
127
- }, {
128
- option: '-l, --listId [listId]'
129
- }, {
130
- option: '-t, --listTitle [listTitle]'
131
- }, {
132
- option: '--listUrl [listUrl]'
133
- });
134
- }, _SpoListItemIsRecordCommand_initValidators = function _SpoListItemIsRecordCommand_initValidators() {
135
- this.validators.push(async (args) => {
136
- const id = parseInt(args.options.id);
137
- if (isNaN(id)) {
138
- return `${args.options.id} is not a valid list item ID`;
139
- }
140
- if (id < 1) {
141
- return `Item ID must be a positive number`;
142
- }
143
- const isValidSharePointUrl = validation.isValidSharePointUrl(args.options.webUrl);
144
- if (isValidSharePointUrl !== true) {
145
- return isValidSharePointUrl;
146
- }
147
- if (args.options.listId &&
148
- !validation.isValidGuid(args.options.listId)) {
149
- return `${args.options.listId} in option listId is not a valid GUID`;
150
- }
151
- return true;
152
- });
153
- }, _SpoListItemIsRecordCommand_initOptionSets = function _SpoListItemIsRecordCommand_initOptionSets() {
154
- this.optionSets.push({ options: ['listId', 'listTitle', 'listUrl'] });
155
- };
156
132
  export default new SpoListItemIsRecordCommand();
157
133
  //# sourceMappingURL=listitem-isrecord.js.map