@pnp/cli-microsoft365 12.1.0-beta.79db3d9 → 12.1.0-beta.81e442d

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 (134) hide show
  1. package/allCommands.json +1 -1
  2. package/allCommandsFull.json +1 -1
  3. package/dist/cli/cli.js +12 -7
  4. package/dist/m365/entra/commands/app/app-add.js +106 -150
  5. package/dist/m365/entra/commands/app/app-get.js +22 -38
  6. package/dist/m365/entra/commands/app/app-list.js +10 -22
  7. package/dist/m365/entra/commands/app/app-permission-add.js +36 -50
  8. package/dist/m365/entra/commands/app/app-permission-list.js +29 -48
  9. package/dist/m365/entra/commands/app/app-permission-remove.js +44 -82
  10. package/dist/m365/entra/commands/app/app-remove.js +21 -38
  11. package/dist/m365/entra/commands/app/app-role-add.js +32 -46
  12. package/dist/m365/entra/commands/app/app-role-list.js +20 -25
  13. package/dist/m365/entra/commands/app/app-role-remove.js +33 -41
  14. package/dist/m365/entra/commands/app/app-set.js +46 -69
  15. package/dist/m365/spfx/commands/package/package-generate.js +30 -51
  16. package/dist/m365/spfx/commands/project/project-azuredevops-pipeline-add.js +27 -62
  17. package/dist/m365/spfx/commands/project/project-doctor.js +20 -51
  18. package/dist/m365/spfx/commands/project/project-externalize.js +16 -26
  19. package/dist/m365/spfx/commands/project/project-github-workflow-add.js +28 -65
  20. package/dist/m365/spfx/commands/project/project-permissions-grant.js +4 -2
  21. package/dist/m365/spfx/commands/project/project-rename.js +17 -29
  22. package/dist/m365/spfx/commands/project/project-upgrade.js +0 -3
  23. package/dist/m365/spfx/commands/spfx-doctor.js +23 -47
  24. package/dist/m365/spo/commands/file/file-add.js +51 -77
  25. package/dist/m365/spo/commands/file/file-archive.js +1 -1
  26. package/dist/m365/spo/commands/file/file-checkin.js +35 -64
  27. package/dist/m365/spo/commands/file/file-checkout-undo.js +25 -49
  28. package/dist/m365/spo/commands/file/file-checkout.js +24 -47
  29. package/dist/m365/spo/commands/file/file-copy.js +37 -68
  30. package/dist/m365/spo/commands/file/file-get.js +44 -79
  31. package/dist/m365/spo/commands/file/file-list.js +16 -39
  32. package/dist/m365/spo/commands/file/file-move.js +30 -68
  33. package/dist/m365/spo/commands/file/file-remove.js +27 -56
  34. package/dist/m365/spo/commands/file/file-rename.js +15 -36
  35. package/dist/m365/spo/commands/file/file-retentionlabel-ensure.js +26 -51
  36. package/dist/m365/spo/commands/file/file-retentionlabel-remove.js +25 -50
  37. package/dist/m365/spo/commands/file/file-roleassignment-add.js +47 -75
  38. package/dist/m365/spo/commands/file/file-roleassignment-remove.js +39 -70
  39. package/dist/m365/spo/commands/file/file-roleinheritance-break.js +26 -52
  40. package/dist/m365/spo/commands/file/file-roleinheritance-reset.js +25 -49
  41. package/dist/m365/spo/commands/file/file-sharinginfo-get.js +24 -47
  42. package/dist/m365/spo/commands/file/file-sharinglink-add.js +46 -70
  43. package/dist/m365/spo/commands/file/file-sharinglink-clear.js +33 -57
  44. package/dist/m365/spo/commands/file/file-sharinglink-get.js +25 -47
  45. package/dist/m365/spo/commands/file/file-sharinglink-list.js +32 -53
  46. package/dist/m365/spo/commands/file/file-sharinglink-remove.js +26 -51
  47. package/dist/m365/spo/commands/file/file-sharinglink-set.js +29 -55
  48. package/dist/m365/spo/commands/file/file-unarchive.js +1 -1
  49. package/dist/m365/spo/commands/file/file-version-clear.js +25 -45
  50. package/dist/m365/spo/commands/file/file-version-get.js +25 -43
  51. package/dist/m365/spo/commands/file/file-version-keep.js +1 -1
  52. package/dist/m365/spo/commands/file/file-version-list.js +24 -41
  53. package/dist/m365/spo/commands/file/file-version-remove.js +26 -47
  54. package/dist/m365/spo/commands/file/file-version-restore.js +26 -47
  55. package/dist/m365/spo/commands/folder/folder-add.js +19 -48
  56. package/dist/m365/spo/commands/folder/folder-copy.js +36 -62
  57. package/dist/m365/spo/commands/folder/folder-get.js +30 -51
  58. package/dist/m365/spo/commands/folder/folder-list.js +16 -39
  59. package/dist/m365/spo/commands/folder/folder-move.js +36 -62
  60. package/dist/m365/spo/commands/folder/folder-remove.js +15 -36
  61. package/dist/m365/spo/commands/folder/folder-retentionlabel-ensure.js +30 -48
  62. package/dist/m365/spo/commands/folder/folder-retentionlabel-remove.js +30 -50
  63. package/dist/m365/spo/commands/folder/folder-roleassignment-add.js +49 -79
  64. package/dist/m365/spo/commands/folder/folder-roleassignment-remove.js +37 -67
  65. package/dist/m365/spo/commands/folder/folder-roleinheritance-break.js +15 -36
  66. package/dist/m365/spo/commands/folder/folder-roleinheritance-reset.js +14 -33
  67. package/dist/m365/spo/commands/folder/folder-set.js +28 -48
  68. package/dist/m365/spo/commands/folder/folder-sharinglink-add.js +58 -86
  69. package/dist/m365/spo/commands/folder/folder-sharinglink-clear.js +33 -50
  70. package/dist/m365/spo/commands/folder/folder-sharinglink-get.js +33 -42
  71. package/dist/m365/spo/commands/folder/folder-sharinglink-list.js +32 -47
  72. package/dist/m365/spo/commands/folder/folder-sharinglink-remove.js +34 -41
  73. package/dist/m365/spo/commands/folder/folder-sharinglink-set.js +38 -43
  74. package/dist/m365/spo/commands/page/page-add.js +31 -68
  75. package/dist/m365/spo/commands/page/page-clientsidewebpart-add.js +74 -101
  76. package/dist/m365/spo/commands/page/page-column-get.js +15 -32
  77. package/dist/m365/spo/commands/page/page-column-list.js +14 -27
  78. package/dist/m365/spo/commands/page/page-control-get.js +18 -27
  79. package/dist/m365/spo/commands/page/page-control-list.js +13 -20
  80. package/dist/m365/spo/commands/page/page-control-remove.js +1 -1
  81. package/dist/m365/spo/commands/page/page-control-set.js +51 -61
  82. package/dist/m365/spo/commands/page/page-copy.js +15 -31
  83. package/dist/m365/spo/commands/page/page-header-set.js +25 -89
  84. package/dist/m365/spo/commands/page/page-list.js +12 -18
  85. package/dist/m365/spo/commands/page/page-remove.js +16 -39
  86. package/dist/m365/spo/commands/page/page-section-add.js +108 -173
  87. package/dist/m365/spo/commands/page/page-section-get.js +17 -27
  88. package/dist/m365/spo/commands/page/page-section-list.js +13 -20
  89. package/dist/m365/spo/commands/page/page-section-remove.js +4 -1
  90. package/dist/m365/spo/commands/page/page-set.js +50 -100
  91. package/dist/m365/spo/commands/page/page-template-list.js +12 -18
  92. package/dist/m365/spo/commands/page/page-text-add.js +23 -45
  93. package/dist/m365/viva/commands/connections/connections-app-create.js +36 -42
  94. package/dist/m365/viva/commands/engage/engage-community-add.js +75 -71
  95. package/dist/m365/viva/commands/engage/engage-community-get.js +8 -16
  96. package/dist/m365/viva/commands/engage/engage-community-list.js +5 -0
  97. package/dist/m365/viva/commands/engage/engage-community-remove.js +28 -48
  98. package/dist/m365/viva/commands/engage/engage-community-set.js +43 -66
  99. package/dist/m365/viva/commands/engage/engage-community-user-add.js +7 -12
  100. package/dist/m365/viva/commands/engage/engage-community-user-list.js +1 -1
  101. package/dist/m365/viva/commands/engage/engage-community-user-remove.js +4 -2
  102. package/dist/m365/viva/commands/engage/engage-message-add.js +22 -52
  103. package/dist/m365/viva/commands/engage/engage-message-get.js +8 -23
  104. package/dist/m365/viva/commands/engage/engage-message-like-set.js +10 -39
  105. package/dist/m365/viva/commands/engage/engage-message-list.js +22 -66
  106. package/dist/m365/viva/commands/engage/engage-message-remove.js +9 -32
  107. package/dist/m365/viva/commands/engage/engage-network-list.js +8 -22
  108. package/dist/m365/viva/commands/engage/engage-report-activitycounts.js +2 -1
  109. package/dist/m365/viva/commands/engage/engage-report-activityusercounts.js +2 -1
  110. package/dist/m365/viva/commands/engage/engage-report-activityuserdetail.js +2 -1
  111. package/dist/m365/viva/commands/engage/engage-report-deviceusagedistributionusercounts.js +2 -1
  112. package/dist/m365/viva/commands/engage/engage-report-deviceusageusercounts.js +2 -1
  113. package/dist/m365/viva/commands/engage/engage-report-deviceusageuserdetail.js +2 -1
  114. package/dist/m365/viva/commands/engage/engage-report-groupsactivitycounts.js +2 -1
  115. package/dist/m365/viva/commands/engage/engage-report-groupsactivitydetail.js +2 -1
  116. package/dist/m365/viva/commands/engage/engage-report-groupsactivitygroupcounts.js +2 -1
  117. package/dist/m365/viva/commands/engage/engage-role-list.js +5 -0
  118. package/dist/m365/viva/commands/engage/engage-role-member-add.js +3 -5
  119. package/dist/m365/viva/commands/engage/engage-role-member-list.js +1 -1
  120. package/dist/m365/viva/commands/engage/engage-role-member-remove.js +4 -2
  121. package/dist/m365/viva/commands/engage/engage-search.js +16 -65
  122. package/dist/m365/viva/commands/engage/engage-user-get.js +15 -33
  123. package/dist/m365/viva/commands/engage/engage-user-list.js +22 -57
  124. package/docs/docs/cmd/spo/listitem/listitem-record-declare.mdx +19 -0
  125. package/docs/docs/cmd/spo/listitem/listitem-record-lock.mdx +21 -0
  126. package/docs/docs/cmd/spo/listitem/listitem-record-undeclare.mdx +21 -0
  127. package/docs/docs/cmd/spo/listitem/listitem-record-unlock.mdx +21 -0
  128. package/docs/docs/cmd/spo/page/page-text-add.mdx +1 -1
  129. package/docs/docs/cmd/viva/engage/engage-community-add.mdx +19 -0
  130. package/docs/docs/cmd/viva/engage/engage-community-get.mdx +19 -0
  131. package/docs/docs/cmd/viva/engage/engage-community-remove.mdx +21 -0
  132. package/docs/docs/cmd/viva/engage/engage-community-set.mdx +19 -0
  133. package/npm-shrinkwrap.json +55 -55
  134. package/package.json +1 -1
@@ -1,13 +1,17 @@
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 _SpoPageTemplateListCommand_instances, _SpoPageTemplateListCommand_initOptions, _SpoPageTemplateListCommand_initValidators;
1
+ import { z } from 'zod';
2
+ import { globalOptionsZod } from '../../../../Command.js';
7
3
  import { odata } from '../../../../utils/odata.js';
8
4
  import { validation } from '../../../../utils/validation.js';
9
5
  import SpoCommand from '../../../base/SpoCommand.js';
10
6
  import commands from '../../commands.js';
7
+ export const options = z.strictObject({
8
+ ...globalOptionsZod.shape,
9
+ webUrl: z.string()
10
+ .refine(url => validation.isValidSharePointUrl(url) === true, {
11
+ error: e => `'${e.input}' is not a valid SharePoint Online site URL.`
12
+ })
13
+ .alias('u')
14
+ });
11
15
  class SpoPageTemplateListCommand extends SpoCommand {
12
16
  get name() {
13
17
  return commands.PAGE_TEMPLATE_LIST;
@@ -18,11 +22,8 @@ class SpoPageTemplateListCommand extends SpoCommand {
18
22
  defaultProperties() {
19
23
  return ['Title', 'FileName', 'Id', 'PageLayoutType', 'Url'];
20
24
  }
21
- constructor() {
22
- super();
23
- _SpoPageTemplateListCommand_instances.add(this);
24
- __classPrivateFieldGet(this, _SpoPageTemplateListCommand_instances, "m", _SpoPageTemplateListCommand_initOptions).call(this);
25
- __classPrivateFieldGet(this, _SpoPageTemplateListCommand_instances, "m", _SpoPageTemplateListCommand_initValidators).call(this);
25
+ get schema() {
26
+ return options;
26
27
  }
27
28
  async commandAction(logger, args) {
28
29
  if (this.verbose) {
@@ -42,12 +43,5 @@ class SpoPageTemplateListCommand extends SpoCommand {
42
43
  }
43
44
  }
44
45
  }
45
- _SpoPageTemplateListCommand_instances = new WeakSet(), _SpoPageTemplateListCommand_initOptions = function _SpoPageTemplateListCommand_initOptions() {
46
- this.options.unshift({
47
- option: '-u, --webUrl <webUrl>'
48
- });
49
- }, _SpoPageTemplateListCommand_initValidators = function _SpoPageTemplateListCommand_initValidators() {
50
- this.validators.push(async (args) => validation.isValidSharePointUrl(args.options.webUrl));
51
- };
52
46
  export default new SpoPageTemplateListCommand();
53
47
  //# sourceMappingURL=page-template-list.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 _SpoPageTextAddCommand_instances, _SpoPageTextAddCommand_initTelemetry, _SpoPageTextAddCommand_initOptions, _SpoPageTextAddCommand_initValidators;
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,25 @@ import SpoCommand from '../../../base/SpoCommand.js';
12
8
  import commands from '../../commands.js';
13
9
  import { CanvasSection, ClientSideText } from './clientsidepages.js';
14
10
  import { Page } from './Page.js';
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
+ pageName: z.string().alias('n'),
19
+ text: z.string().alias('t'),
20
+ section: z.number()
21
+ .int()
22
+ .min(1, { error: 'The value of parameter section must be 1 or higher' })
23
+ .optional(),
24
+ column: z.number()
25
+ .int()
26
+ .min(1, { error: 'The value of parameter column must be 1 or higher' })
27
+ .optional(),
28
+ order: z.number().int().min(1, { error: 'The value of parameter order must be 1 or higher' }).optional()
29
+ });
15
30
  class SpoPageTextAddCommand extends SpoCommand {
16
31
  get name() {
17
32
  return commands.PAGE_TEXT_ADD;
@@ -19,12 +34,8 @@ class SpoPageTextAddCommand extends SpoCommand {
19
34
  get description() {
20
35
  return 'Adds text to a modern page';
21
36
  }
22
- constructor() {
23
- super();
24
- _SpoPageTextAddCommand_instances.add(this);
25
- __classPrivateFieldGet(this, _SpoPageTextAddCommand_instances, "m", _SpoPageTextAddCommand_initTelemetry).call(this);
26
- __classPrivateFieldGet(this, _SpoPageTextAddCommand_instances, "m", _SpoPageTextAddCommand_initOptions).call(this);
27
- __classPrivateFieldGet(this, _SpoPageTextAddCommand_instances, "m", _SpoPageTextAddCommand_initValidators).call(this);
37
+ get schema() {
38
+ return options;
28
39
  }
29
40
  async commandAction(logger, args) {
30
41
  let pageName = args.options.pageName;
@@ -100,38 +111,5 @@ class SpoPageTextAddCommand extends SpoCommand {
100
111
  return request.post(requestOptions);
101
112
  }
102
113
  }
103
- _SpoPageTextAddCommand_instances = new WeakSet(), _SpoPageTextAddCommand_initTelemetry = function _SpoPageTextAddCommand_initTelemetry() {
104
- this.telemetry.push((args) => {
105
- Object.assign(this.telemetryProperties, {
106
- section: typeof args.options.section !== 'undefined',
107
- column: typeof args.options.column !== 'undefined',
108
- order: typeof args.options.order !== 'undefined'
109
- });
110
- });
111
- }, _SpoPageTextAddCommand_initOptions = function _SpoPageTextAddCommand_initOptions() {
112
- this.options.unshift({
113
- option: '-u, --webUrl <webUrl>'
114
- }, {
115
- option: '-n, --pageName <pageName>'
116
- }, {
117
- option: '-t, --text <text>'
118
- }, {
119
- option: '--section [section]'
120
- }, {
121
- option: '--column [column]'
122
- }, {
123
- option: '--order [order]'
124
- });
125
- }, _SpoPageTextAddCommand_initValidators = function _SpoPageTextAddCommand_initValidators() {
126
- this.validators.push(async (args) => {
127
- if (args.options.section && (!Number.isInteger(args.options.section) || args.options.section < 1)) {
128
- return 'The value of parameter section must be 1 or higher';
129
- }
130
- if (args.options.column && (!Number.isInteger(args.options.column) || args.options.column < 1)) {
131
- return 'The value of parameter column must be 1 or higher';
132
- }
133
- return validation.isValidSharePointUrl(args.options.webUrl);
134
- });
135
- };
136
114
  export default new SpoPageTextAddCommand();
137
115
  //# sourceMappingURL=page-text-add.js.map
@@ -1,16 +1,31 @@
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 _VivaConnectionsAppCreateCommand_instances, _VivaConnectionsAppCreateCommand_initOptions, _VivaConnectionsAppCreateCommand_initValidators;
7
1
  import AdmZip from 'adm-zip';
8
2
  import fs from 'fs';
9
3
  import path from 'path';
10
4
  import { v4 } from 'uuid';
5
+ import { z } from 'zod';
6
+ import { globalOptionsZod } from '../../../../Command.js';
11
7
  import AnonymousCommand from '../../../base/AnonymousCommand.js';
12
8
  import commands from '../../commands.js';
13
9
  import { spo } from '../../../../utils/spo.js';
10
+ export const options = z.strictObject({
11
+ ...globalOptionsZod.shape,
12
+ portalUrl: z.string(),
13
+ name: z.string().max(30, { message: 'App name must not exceed 30 characters' }),
14
+ description: z.string().max(80, { message: 'Description must not exceed 80 characters' }),
15
+ longDescription: z.string().max(4000, { message: 'Long description must not exceed 4000 characters' }),
16
+ privacyPolicyUrl: z.string().optional(),
17
+ termsOfUseUrl: z.string().optional(),
18
+ companyName: z.string(),
19
+ companyWebsiteUrl: z.string(),
20
+ coloredIconPath: z.string().refine(val => fs.existsSync(path.resolve(val)), {
21
+ error: e => `File ${path.resolve(e.input)} doesn't exist`
22
+ }),
23
+ outlineIconPath: z.string().refine(val => fs.existsSync(path.resolve(val)), {
24
+ error: e => `File ${path.resolve(e.input)} doesn't exist`
25
+ }),
26
+ accentColor: z.string().optional(),
27
+ force: z.boolean().optional()
28
+ });
14
29
  class VivaConnectionsAppCreateCommand extends AnonymousCommand {
15
30
  get name() {
16
31
  return commands.CONNECTIONS_APP_CREATE;
@@ -18,11 +33,20 @@ class VivaConnectionsAppCreateCommand extends AnonymousCommand {
18
33
  get description() {
19
34
  return 'Creates Viva Connections app';
20
35
  }
21
- constructor() {
22
- super();
23
- _VivaConnectionsAppCreateCommand_instances.add(this);
24
- __classPrivateFieldGet(this, _VivaConnectionsAppCreateCommand_instances, "m", _VivaConnectionsAppCreateCommand_initOptions).call(this);
25
- __classPrivateFieldGet(this, _VivaConnectionsAppCreateCommand_instances, "m", _VivaConnectionsAppCreateCommand_initValidators).call(this);
36
+ get schema() {
37
+ return options;
38
+ }
39
+ getRefinedSchema(schema) {
40
+ return schema
41
+ .superRefine((opts, ctx) => {
42
+ const appFilePath = path.resolve(`${opts.name}.zip`);
43
+ if (fs.existsSync(appFilePath) && !opts.force) {
44
+ ctx.addIssue({
45
+ message: `File ${path.resolve(`${opts.name}.zip`)} already exists. Delete the file or use the --force option to overwrite the existing file`,
46
+ code: z.ZodIssueCode.custom
47
+ });
48
+ }
49
+ });
26
50
  }
27
51
  async commandAction(logger, args) {
28
52
  try {
@@ -133,40 +157,10 @@ class VivaConnectionsAppCreateCommand extends AnonymousCommand {
133
157
  }
134
158
  async getWeb(args, logger) {
135
159
  if (this.verbose) {
136
- await logger.logToStderr(`Checking if site ${args.options.url} exists...`);
160
+ await logger.logToStderr(`Checking if site ${args.options.portalUrl} exists...`);
137
161
  }
138
162
  return await spo.getWeb(args.options.portalUrl, logger, this.verbose);
139
163
  }
140
164
  }
141
- _VivaConnectionsAppCreateCommand_instances = new WeakSet(), _VivaConnectionsAppCreateCommand_initOptions = function _VivaConnectionsAppCreateCommand_initOptions() {
142
- this.options.unshift({ option: '--portalUrl <portalUrl>' }, { option: '--name <name>' }, { option: '--description <description>' }, { option: '--longDescription <longDescription>' }, { option: '--privacyPolicyUrl [privacyPolicyUrl]' }, { option: '--termsOfUseUrl [termsOfUseUrl]' }, { option: '--companyName <companyName>' }, { option: '--companyWebsiteUrl <companyWebsiteUrl>' }, { option: '--coloredIconPath <coloredIconPath>' }, { option: '--outlineIconPath <outlineIconPath>' }, { option: '--accentColor [accentColor]' }, { option: '--force' });
143
- }, _VivaConnectionsAppCreateCommand_initValidators = function _VivaConnectionsAppCreateCommand_initValidators() {
144
- this.validators.push(async (args) => {
145
- if (args.options.name.length > 30) {
146
- return `App name must not exceed 30 characters`;
147
- }
148
- if (args.options.description &&
149
- args.options.description.length > 80) {
150
- return 'Description must not exceed 80 characters';
151
- }
152
- if (args.options.longDescription &&
153
- args.options.longDescription.length > 4000) {
154
- return 'Long description must not exceed 4000 characters';
155
- }
156
- const appFilePath = path.resolve(`${args.options.name}.zip`);
157
- if (fs.existsSync(appFilePath) && !args.options.force) {
158
- return `File ${appFilePath} already exists. Delete the file or use the --force option to overwrite the existing file`;
159
- }
160
- const coloredIconPath = path.resolve(args.options.coloredIconPath);
161
- if (!fs.existsSync(coloredIconPath)) {
162
- return `File ${coloredIconPath} doesn't exist`;
163
- }
164
- const outlineIconPath = path.resolve(args.options.outlineIconPath);
165
- if (!fs.existsSync(outlineIconPath)) {
166
- return `File ${outlineIconPath} doesn't exist`;
167
- }
168
- return true;
169
- });
170
- };
171
165
  export default new VivaConnectionsAppCreateCommand();
172
166
  //# sourceMappingURL=connections-app-create.js.map
@@ -1,11 +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 _VivaEngageCommunityAddCommand_instances, _VivaEngageCommunityAddCommand_initTelemetry, _VivaEngageCommunityAddCommand_initOptions, _VivaEngageCommunityAddCommand_initValidators, _VivaEngageCommunityAddCommand_initTypes, _VivaEngageCommunityAddCommand_initOptionSets;
7
- import GraphCommand from '../../../base/GraphCommand.js';
8
- import commands from '../../commands.js';
1
+ import { z } from 'zod';
2
+ import { globalOptionsZod } from '../../../../Command.js';
9
3
  import request from '../../../../request.js';
10
4
  import { validation } from '../../../../utils/validation.js';
11
5
  import { accessToken } from '../../../../utils/accessToken.js';
@@ -13,23 +7,86 @@ import auth from '../../../../Auth.js';
13
7
  import { formatting } from '../../../../utils/formatting.js';
14
8
  import { entraUser } from '../../../../utils/entraUser.js';
15
9
  import { setTimeout } from 'timers/promises';
10
+ import GraphCommand from '../../../base/GraphCommand.js';
11
+ import commands from '../../commands.js';
12
+ export const options = z.strictObject({
13
+ ...globalOptionsZod.shape,
14
+ displayName: z.string(),
15
+ description: z.string(),
16
+ privacy: z.enum(['public', 'private']),
17
+ adminEntraIds: z.string().optional(),
18
+ adminEntraUserNames: z.string().optional(),
19
+ wait: z.boolean().optional()
20
+ });
16
21
  class VivaEngageCommunityAddCommand extends GraphCommand {
22
+ constructor() {
23
+ super(...arguments);
24
+ this.pollingInterval = 5000;
25
+ }
17
26
  get name() {
18
27
  return commands.ENGAGE_COMMUNITY_ADD;
19
28
  }
20
29
  get description() {
21
30
  return 'Creates a new community in Viva Engage';
22
31
  }
23
- constructor() {
24
- super();
25
- _VivaEngageCommunityAddCommand_instances.add(this);
26
- this.pollingInterval = 5000;
27
- this.privacyOptions = ['public', 'private'];
28
- __classPrivateFieldGet(this, _VivaEngageCommunityAddCommand_instances, "m", _VivaEngageCommunityAddCommand_initTelemetry).call(this);
29
- __classPrivateFieldGet(this, _VivaEngageCommunityAddCommand_instances, "m", _VivaEngageCommunityAddCommand_initOptions).call(this);
30
- __classPrivateFieldGet(this, _VivaEngageCommunityAddCommand_instances, "m", _VivaEngageCommunityAddCommand_initValidators).call(this);
31
- __classPrivateFieldGet(this, _VivaEngageCommunityAddCommand_instances, "m", _VivaEngageCommunityAddCommand_initTypes).call(this);
32
- __classPrivateFieldGet(this, _VivaEngageCommunityAddCommand_instances, "m", _VivaEngageCommunityAddCommand_initOptionSets).call(this);
32
+ get schema() {
33
+ return options;
34
+ }
35
+ getRefinedSchema(schema) {
36
+ return schema
37
+ .refine(opts => opts.displayName.length <= 255, {
38
+ message: `The maximum amount of characters for 'displayName' is 255.`
39
+ })
40
+ .refine(opts => opts.description.length <= 1024, {
41
+ message: `The maximum amount of characters for 'description' is 1024.`
42
+ })
43
+ .superRefine((opts, ctx) => {
44
+ if (opts.adminEntraIds) {
45
+ const items = opts.adminEntraIds.split(',').map(s => s.trim());
46
+ const invalid = items.filter(item => !validation.isValidGuid(item));
47
+ if (invalid.length > 0) {
48
+ ctx.addIssue({
49
+ code: z.ZodIssueCode.custom,
50
+ message: `The following GUIDs are invalid for the option 'adminEntraIds': ${invalid.join(', ')}`
51
+ });
52
+ }
53
+ }
54
+ })
55
+ .refine(opts => {
56
+ if (!opts.adminEntraIds) {
57
+ return true;
58
+ }
59
+ return formatting.splitAndTrim(opts.adminEntraIds).length <= 20;
60
+ }, {
61
+ message: 'Maximum of 20 admins allowed. Please reduce the number of users and try again.'
62
+ })
63
+ .superRefine((opts, ctx) => {
64
+ if (opts.adminEntraUserNames) {
65
+ const items = opts.adminEntraUserNames.split(',').map(s => s.trim());
66
+ const invalid = items.filter(item => !validation.isValidUserPrincipalName(item));
67
+ if (invalid.length > 0) {
68
+ ctx.addIssue({
69
+ code: z.ZodIssueCode.custom,
70
+ message: `The following user principal names are invalid for the option 'adminEntraUserNames': ${invalid.join(', ')}`
71
+ });
72
+ }
73
+ }
74
+ })
75
+ .refine(opts => {
76
+ if (!opts.adminEntraUserNames) {
77
+ return true;
78
+ }
79
+ return formatting.splitAndTrim(opts.adminEntraUserNames).length <= 20;
80
+ }, {
81
+ message: 'Maximum of 20 admins allowed. Please reduce the number of users and try again.'
82
+ })
83
+ .refine(opts => !opts.adminEntraIds || !opts.adminEntraUserNames, {
84
+ message: 'Specify either adminEntraIds or adminEntraUserNames, but not both.',
85
+ params: {
86
+ customCode: 'optionSet',
87
+ options: ['adminEntraIds', 'adminEntraUserNames']
88
+ }
89
+ });
33
90
  }
34
91
  async commandAction(logger, args) {
35
92
  const { displayName, description, privacy, adminEntraIds, adminEntraUserNames, wait } = args.options;
@@ -109,58 +166,5 @@ class VivaEngageCommunityAddCommand extends GraphCommand {
109
166
  return graphUserUrls;
110
167
  }
111
168
  }
112
- _VivaEngageCommunityAddCommand_instances = new WeakSet(), _VivaEngageCommunityAddCommand_initTelemetry = function _VivaEngageCommunityAddCommand_initTelemetry() {
113
- this.telemetry.push((args) => {
114
- Object.assign(this.telemetryProperties, {
115
- adminEntraIds: typeof args.options.adminEntraIds !== 'undefined',
116
- adminEntraUserNames: typeof args.options.adminEntraUserNames !== 'undefined',
117
- wait: !!args.options.wait
118
- });
119
- });
120
- }, _VivaEngageCommunityAddCommand_initOptions = function _VivaEngageCommunityAddCommand_initOptions() {
121
- this.options.unshift({ option: '--displayName <displayName>' }, { option: '--description <description>' }, {
122
- option: '--privacy <privacy>',
123
- autocomplete: this.privacyOptions
124
- }, { option: '--adminEntraIds [adminEntraIds]' }, { option: '--adminEntraUserNames [adminEntraUserNames]' }, { option: '--wait' });
125
- }, _VivaEngageCommunityAddCommand_initValidators = function _VivaEngageCommunityAddCommand_initValidators() {
126
- this.validators.push(async (args) => {
127
- if (args.options.displayName.length > 255) {
128
- return `The maximum amount of characters for 'displayName' is 255.`;
129
- }
130
- if (args.options.description.length > 1024) {
131
- return `The maximum amount of characters for 'description' is 1024.`;
132
- }
133
- if (this.privacyOptions.indexOf(args.options.privacy) === -1) {
134
- return `'${args.options.privacy}' is not a valid value for privacy. Allowed values are: ${this.privacyOptions.join(', ')}.`;
135
- }
136
- if (args.options.adminEntraIds) {
137
- const isValidGUIDArrayResult = validation.isValidGuidArray(args.options.adminEntraIds);
138
- if (isValidGUIDArrayResult !== true) {
139
- return `The following GUIDs are invalid for the option 'adminEntraIds': ${isValidGUIDArrayResult}.`;
140
- }
141
- if (formatting.splitAndTrim(args.options.adminEntraIds).length > 20) {
142
- return `Maximum of 20 admins allowed. Please reduce the number of users and try again.`;
143
- }
144
- }
145
- if (args.options.adminEntraUserNames) {
146
- const isValidUPNArrayResult = validation.isValidUserPrincipalNameArray(args.options.adminEntraUserNames);
147
- if (isValidUPNArrayResult !== true) {
148
- return `The following user principal names are invalid for the option 'adminEntraUserNames': ${isValidUPNArrayResult}.`;
149
- }
150
- if (formatting.splitAndTrim(args.options.adminEntraUserNames).length > 20) {
151
- return `Maximum of 20 admins allowed. Please reduce the number of users and try again.`;
152
- }
153
- }
154
- return true;
155
- });
156
- }, _VivaEngageCommunityAddCommand_initTypes = function _VivaEngageCommunityAddCommand_initTypes() {
157
- this.types.string.push('displayName', 'description', 'privacy', 'adminEntraIds', 'adminEntraUserNames');
158
- this.types.boolean.push('wait');
159
- }, _VivaEngageCommunityAddCommand_initOptionSets = function _VivaEngageCommunityAddCommand_initOptionSets() {
160
- this.optionSets.push({
161
- options: ['adminEntraIds', 'adminEntraUserNames'],
162
- runsWhen: (args) => args.options.adminEntraIds || args.options.adminEntraUserNames
163
- });
164
- };
165
169
  export default new VivaEngageCommunityAddCommand();
166
170
  //# sourceMappingURL=engage-community-add.js.map
@@ -1,12 +1,12 @@
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 _VivaEngageCommunityGetCommand_instances, _VivaEngageCommunityGetCommand_initOptions, _VivaEngageCommunityGetCommand_initTypes;
1
+ import { z } from 'zod';
2
+ import { globalOptionsZod } from '../../../../Command.js';
7
3
  import GraphCommand from '../../../base/GraphCommand.js';
8
4
  import commands from '../../commands.js';
9
5
  import request from '../../../../request.js';
6
+ export const options = z.strictObject({
7
+ ...globalOptionsZod.shape,
8
+ id: z.string().alias('i')
9
+ });
10
10
  class VivaEngageCommunityGetCommand extends GraphCommand {
11
11
  get name() {
12
12
  return commands.ENGAGE_COMMUNITY_GET;
@@ -14,11 +14,8 @@ class VivaEngageCommunityGetCommand extends GraphCommand {
14
14
  get description() {
15
15
  return 'Gets information of a Viva Engage community';
16
16
  }
17
- constructor() {
18
- super();
19
- _VivaEngageCommunityGetCommand_instances.add(this);
20
- __classPrivateFieldGet(this, _VivaEngageCommunityGetCommand_instances, "m", _VivaEngageCommunityGetCommand_initOptions).call(this);
21
- __classPrivateFieldGet(this, _VivaEngageCommunityGetCommand_instances, "m", _VivaEngageCommunityGetCommand_initTypes).call(this);
17
+ get schema() {
18
+ return options;
22
19
  }
23
20
  async commandAction(logger, args) {
24
21
  if (this.verbose) {
@@ -40,10 +37,5 @@ class VivaEngageCommunityGetCommand extends GraphCommand {
40
37
  }
41
38
  }
42
39
  }
43
- _VivaEngageCommunityGetCommand_instances = new WeakSet(), _VivaEngageCommunityGetCommand_initOptions = function _VivaEngageCommunityGetCommand_initOptions() {
44
- this.options.unshift({ option: '-i, --id <id>' });
45
- }, _VivaEngageCommunityGetCommand_initTypes = function _VivaEngageCommunityGetCommand_initTypes() {
46
- this.types.string.push('id');
47
- };
48
40
  export default new VivaEngageCommunityGetCommand();
49
41
  //# sourceMappingURL=engage-community-get.js.map
@@ -1,6 +1,8 @@
1
+ import { globalOptionsZod } from '../../../../Command.js';
1
2
  import { odata } from '../../../../utils/odata.js';
2
3
  import GraphCommand from '../../../base/GraphCommand.js';
3
4
  import commands from '../../commands.js';
5
+ export const options = globalOptionsZod.strict();
4
6
  class VivaEngageCommunityListCommand extends GraphCommand {
5
7
  get name() {
6
8
  return commands.ENGAGE_COMMUNITY_LIST;
@@ -11,6 +13,9 @@ class VivaEngageCommunityListCommand extends GraphCommand {
11
13
  defaultProperties() {
12
14
  return ['id', 'displayName', 'privacy'];
13
15
  }
16
+ get schema() {
17
+ return options;
18
+ }
14
19
  async commandAction(logger) {
15
20
  if (this.verbose) {
16
21
  await logger.logToStderr('Getting all Viva Engage communities...');
@@ -1,15 +1,17 @@
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 _VivaEngageCommunityRemoveCommand_instances, _VivaEngageCommunityRemoveCommand_initTelemetry, _VivaEngageCommunityRemoveCommand_initOptions, _VivaEngageCommunityRemoveCommand_initValidators, _VivaEngageCommunityRemoveCommand_initOptionSets, _VivaEngageCommunityRemoveCommand_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
- import { validation } from '../../../../utils/validation.js';
10
5
  import { vivaEngage } from '../../../../utils/vivaEngage.js';
11
6
  import GraphCommand from '../../../base/GraphCommand.js';
12
7
  import commands from '../../commands.js';
8
+ export const options = z.strictObject({
9
+ ...globalOptionsZod.shape,
10
+ id: z.string().optional().alias('i'),
11
+ displayName: z.string().optional().alias('n'),
12
+ entraGroupId: z.guid().optional(),
13
+ force: z.boolean().optional().alias('f')
14
+ });
13
15
  class VivaEngageCommunityRemoveCommand extends GraphCommand {
14
16
  get name() {
15
17
  return commands.ENGAGE_COMMUNITY_REMOVE;
@@ -17,14 +19,25 @@ class VivaEngageCommunityRemoveCommand extends GraphCommand {
17
19
  get description() {
18
20
  return 'Removes a Viva Engage community';
19
21
  }
20
- constructor() {
21
- super();
22
- _VivaEngageCommunityRemoveCommand_instances.add(this);
23
- __classPrivateFieldGet(this, _VivaEngageCommunityRemoveCommand_instances, "m", _VivaEngageCommunityRemoveCommand_initTelemetry).call(this);
24
- __classPrivateFieldGet(this, _VivaEngageCommunityRemoveCommand_instances, "m", _VivaEngageCommunityRemoveCommand_initOptions).call(this);
25
- __classPrivateFieldGet(this, _VivaEngageCommunityRemoveCommand_instances, "m", _VivaEngageCommunityRemoveCommand_initValidators).call(this);
26
- __classPrivateFieldGet(this, _VivaEngageCommunityRemoveCommand_instances, "m", _VivaEngageCommunityRemoveCommand_initOptionSets).call(this);
27
- __classPrivateFieldGet(this, _VivaEngageCommunityRemoveCommand_instances, "m", _VivaEngageCommunityRemoveCommand_initTypes).call(this);
22
+ get schema() {
23
+ return options;
24
+ }
25
+ getRefinedSchema(schema) {
26
+ return schema
27
+ .refine(opts => [opts.id, opts.displayName, opts.entraGroupId].some(x => x !== undefined), {
28
+ message: 'Specify either id, displayName, or entraGroupId.',
29
+ params: {
30
+ customCode: 'optionSet',
31
+ options: ['id', 'displayName', 'entraGroupId']
32
+ }
33
+ })
34
+ .refine(opts => [opts.id, opts.displayName, opts.entraGroupId].filter(x => x !== undefined).length <= 1, {
35
+ message: 'Specify either id, displayName, or entraGroupId, but not multiple.',
36
+ params: {
37
+ customCode: 'optionSet',
38
+ options: ['id', 'displayName', 'entraGroupId']
39
+ }
40
+ });
28
41
  }
29
42
  async commandAction(logger, args) {
30
43
  const removeCommunity = async () => {
@@ -62,38 +75,5 @@ class VivaEngageCommunityRemoveCommand extends GraphCommand {
62
75
  }
63
76
  }
64
77
  }
65
- _VivaEngageCommunityRemoveCommand_instances = new WeakSet(), _VivaEngageCommunityRemoveCommand_initTelemetry = function _VivaEngageCommunityRemoveCommand_initTelemetry() {
66
- this.telemetry.push((args) => {
67
- Object.assign(this.telemetryProperties, {
68
- id: args.options.id !== 'undefined',
69
- displayName: args.options.displayName !== 'undefined',
70
- entraGroupId: args.options.entraGroupId !== 'undefined',
71
- force: !!args.options.force
72
- });
73
- });
74
- }, _VivaEngageCommunityRemoveCommand_initOptions = function _VivaEngageCommunityRemoveCommand_initOptions() {
75
- this.options.unshift({
76
- option: '-i, --id [id]'
77
- }, {
78
- option: '-n, --displayName [displayName]'
79
- }, {
80
- option: '--entraGroupId [entraGroupId]'
81
- }, {
82
- option: '-f, --force'
83
- });
84
- }, _VivaEngageCommunityRemoveCommand_initValidators = function _VivaEngageCommunityRemoveCommand_initValidators() {
85
- this.validators.push(async (args) => {
86
- if (args.options.entraGroupId && !validation.isValidGuid(args.options.entraGroupId)) {
87
- return `${args.options.entraGroupId} is not a valid GUID for the option 'entraGroupId'.`;
88
- }
89
- return true;
90
- });
91
- }, _VivaEngageCommunityRemoveCommand_initOptionSets = function _VivaEngageCommunityRemoveCommand_initOptionSets() {
92
- this.optionSets.push({
93
- options: ['id', 'displayName', 'entraGroupId']
94
- });
95
- }, _VivaEngageCommunityRemoveCommand_initTypes = function _VivaEngageCommunityRemoveCommand_initTypes() {
96
- this.types.string.push('id', 'displayName', 'entraGroupId');
97
- };
98
78
  export default new VivaEngageCommunityRemoveCommand();
99
79
  //# sourceMappingURL=engage-community-remove.js.map