@pnp/cli-microsoft365 12.0.0-beta.0be7d8d → 12.0.0-beta.1752794

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 (190) hide show
  1. package/.devproxy/generate-openapi-spec.json +1 -1
  2. package/allCommands.json +1 -1
  3. package/allCommandsFull.json +1 -1
  4. package/dist/Auth.js +2 -6
  5. package/dist/auth/FileTokenStorage.js +0 -3
  6. package/dist/auth/msalCachePlugin.js +201 -12
  7. package/dist/googleAnalytics.js +96 -0
  8. package/dist/m365/commands/logout.js +2 -4
  9. package/dist/m365/entra/commands/m365group/m365group-remove.js +4 -3
  10. package/dist/m365/spe/commands/container/container-remove.js +6 -7
  11. package/dist/m365/spo/commands/app/app-add.js +35 -56
  12. package/dist/m365/spo/commands/app/app-deploy.js +41 -59
  13. package/dist/m365/spo/commands/app/app-get.js +40 -56
  14. package/dist/m365/spo/commands/app/app-install.js +20 -41
  15. package/dist/m365/spo/commands/app/app-instance-list.js +12 -24
  16. package/dist/m365/spo/commands/app/app-list.js +26 -44
  17. package/dist/m365/spo/commands/app/app-remove.js +32 -52
  18. package/dist/m365/spo/commands/app/app-retract.js +32 -51
  19. package/dist/m365/spo/commands/app/app-teamspackage-download.js +35 -54
  20. package/dist/m365/spo/commands/app/app-uninstall.js +21 -44
  21. package/dist/m365/spo/commands/app/app-upgrade.js +20 -41
  22. package/dist/m365/spo/commands/feature/feature-disable.js +20 -50
  23. package/dist/m365/spo/commands/feature/feature-enable.js +22 -50
  24. package/dist/m365/spo/commands/feature/feature-list.js +11 -36
  25. package/dist/m365/spo/commands/field/field-add.js +33 -62
  26. package/dist/m365/spo/commands/field/field-get.js +30 -57
  27. package/dist/m365/spo/commands/field/field-list.js +21 -46
  28. package/dist/m365/spo/commands/field/field-remove.js +32 -63
  29. package/dist/m365/spo/commands/field/field-set.js +34 -66
  30. package/dist/m365/spo/commands/file/file-archive.js +1 -1
  31. package/dist/m365/spo/commands/file/file-get.js +4 -3
  32. package/dist/m365/spo/commands/file/file-remove.js +5 -5
  33. package/dist/m365/spo/commands/file/file-unarchive.js +1 -1
  34. package/dist/m365/spo/commands/folder/folder-archive.js +1 -1
  35. package/dist/m365/spo/commands/folder/folder-remove.js +5 -5
  36. package/dist/m365/spo/commands/folder/folder-unarchive.js +90 -0
  37. package/dist/m365/spo/commands/hidedefaultthemes/hidedefaultthemes-get.js +5 -0
  38. package/dist/m365/spo/commands/hidedefaultthemes/hidedefaultthemes-set.js +8 -26
  39. package/dist/m365/spo/commands/homesite/homesite-list.js +5 -0
  40. package/dist/m365/spo/commands/hubsite/hubsite-connect.js +38 -63
  41. package/dist/m365/spo/commands/hubsite/hubsite-data-get.js +11 -27
  42. package/dist/m365/spo/commands/hubsite/hubsite-disconnect.js +25 -47
  43. package/dist/m365/spo/commands/hubsite/hubsite-get.js +25 -37
  44. package/dist/m365/spo/commands/hubsite/hubsite-list.js +12 -24
  45. package/dist/m365/spo/commands/hubsite/hubsite-register.js +10 -18
  46. package/dist/m365/spo/commands/hubsite/hubsite-rights-grant.js +14 -32
  47. package/dist/m365/spo/commands/hubsite/hubsite-rights-revoke.js +12 -29
  48. package/dist/m365/spo/commands/hubsite/hubsite-set.js +19 -46
  49. package/dist/m365/spo/commands/hubsite/hubsite-unregister.js +11 -27
  50. package/dist/m365/spo/commands/list/list-remove.js +4 -4
  51. package/dist/m365/spo/commands/listitem/listitem-batch-remove.js +5 -4
  52. package/dist/m365/spo/commands/listitem/listitem-get.js +1 -12
  53. package/dist/m365/spo/commands/listitem/listitem-remove.js +8 -5
  54. package/dist/m365/spo/commands/navigation/navigation-node-list.js +6 -4
  55. package/dist/m365/spo/commands/page/page-remove.js +7 -7
  56. package/dist/m365/spo/commands/site/site-list.js +60 -49
  57. package/dist/m365/spo/commands/site/site-remove.js +7 -7
  58. package/dist/m365/spo/commands/spo-get.js +5 -0
  59. package/dist/m365/spo/commands/spo-set.js +10 -21
  60. package/dist/m365/spo/commands/storageentity/storageentity-get.js +23 -17
  61. package/dist/m365/spo/commands/storageentity/storageentity-list.js +39 -36
  62. package/dist/m365/spo/commands/storageentity/storageentity-remove.js +26 -33
  63. package/dist/m365/spo/commands/storageentity/storageentity-set.js +26 -36
  64. package/dist/m365/spo/commands/tenant/tenant-appcatalog-add.js +1 -1
  65. package/dist/m365/spo/commands/user/user-ensure.js +24 -60
  66. package/dist/m365/spo/commands/user/user-get.js +25 -65
  67. package/dist/m365/spo/commands/user/user-list.js +10 -18
  68. package/dist/m365/spo/commands/user/user-remove.js +26 -68
  69. package/dist/m365/spo/commands/userprofile/userprofile-get.js +10 -23
  70. package/dist/m365/spo/commands/userprofile/userprofile-set.js +10 -19
  71. package/dist/m365/spo/commands/web/web-add.js +20 -55
  72. package/dist/m365/spo/commands/web/web-clientsidewebpart-list.js +10 -18
  73. package/dist/m365/spo/commands/web/web-get.js +12 -30
  74. package/dist/m365/spo/commands/web/web-installedlanguage-list.js +10 -18
  75. package/dist/m365/spo/commands/web/web-list.js +10 -18
  76. package/dist/m365/spo/commands/web/web-reindex.js +10 -18
  77. package/dist/m365/spo/commands/web/web-remove.js +11 -27
  78. package/dist/m365/spo/commands/web/web-retentionlabel-list.js +10 -18
  79. package/dist/m365/spo/commands/web/web-roleassignment-add.js +40 -64
  80. package/dist/m365/spo/commands/web/web-roleassignment-remove.js +31 -58
  81. package/dist/m365/spo/commands/web/web-roleinheritance-break.js +12 -36
  82. package/dist/m365/spo/commands/web/web-roleinheritance-reset.js +11 -29
  83. package/dist/m365/spo/commands/web/web-rule-get.js +47 -0
  84. package/dist/m365/spo/commands/web/web-rule-list.js +6 -4
  85. package/dist/m365/spo/commands/web/web-rule-remove.js +0 -3
  86. package/dist/m365/spo/commands/web/web-set.js +26 -96
  87. package/dist/m365/spo/commands.js +3 -3
  88. package/dist/m365/teams/commands/channel/channel-add.js +46 -57
  89. package/dist/m365/teams/commands/channel/channel-get.js +41 -48
  90. package/dist/m365/teams/commands/channel/channel-list.js +30 -48
  91. package/dist/m365/teams/commands/channel/channel-member-add.js +55 -60
  92. package/dist/m365/teams/commands/channel/channel-member-list.js +49 -61
  93. package/dist/m365/teams/commands/channel/channel-member-remove.js +64 -68
  94. package/dist/m365/teams/commands/channel/channel-member-set.js +63 -71
  95. package/dist/m365/teams/commands/channel/channel-remove.js +49 -57
  96. package/dist/m365/teams/commands/channel/channel-set.js +49 -62
  97. package/dist/m365/teams/commands/chat/chat-get.js +30 -45
  98. package/dist/m365/teams/commands/chat/chat-list.js +22 -42
  99. package/dist/m365/teams/commands/chat/chat-member-add.js +43 -64
  100. package/dist/m365/teams/commands/chat/chat-member-list.js +10 -23
  101. package/dist/m365/teams/commands/chat/chat-member-remove.js +28 -50
  102. package/dist/m365/teams/commands/chat/chat-message-send.js +32 -55
  103. package/dist/m365/teams/commands/tab/tab-get.js +2 -6
  104. package/dist/m365/teams/commands/team/team-archive.js +2 -6
  105. package/dist/m365/teams/commands/team/team-remove.js +2 -6
  106. package/dist/m365/teams/commands/team/team-unarchive.js +2 -6
  107. package/dist/m365/util/commands/accesstoken/accesstoken-get.js +10 -28
  108. package/dist/telemetry.js +7 -11
  109. package/dist/utils/spo.js +1 -3
  110. package/dist/utils/urlUtil.js +2 -2
  111. package/docs/docs/cmd/entra/m365group/m365group-remove.mdx +4 -4
  112. package/docs/docs/cmd/spe/container/container-remove.mdx +5 -5
  113. package/docs/docs/cmd/spo/file/file-archive.mdx +9 -1
  114. package/docs/docs/cmd/spo/file/file-checkin.mdx +2 -2
  115. package/docs/docs/cmd/spo/file/file-checkout-undo.mdx +1 -1
  116. package/docs/docs/cmd/spo/file/file-checkout.mdx +2 -2
  117. package/docs/docs/cmd/spo/file/file-copy.mdx +2 -2
  118. package/docs/docs/cmd/spo/file/file-get.mdx +6 -6
  119. package/docs/docs/cmd/spo/file/file-remove.mdx +4 -4
  120. package/docs/docs/cmd/spo/file/file-retentionlabel-ensure.mdx +1 -1
  121. package/docs/docs/cmd/spo/file/file-retentionlabel-remove.mdx +1 -1
  122. package/docs/docs/cmd/spo/file/file-roleassignment-add.mdx +1 -1
  123. package/docs/docs/cmd/spo/file/file-roleassignment-remove.mdx +1 -1
  124. package/docs/docs/cmd/spo/file/file-roleinheritance-break.mdx +3 -3
  125. package/docs/docs/cmd/spo/file/file-roleinheritance-reset.mdx +2 -2
  126. package/docs/docs/cmd/spo/file/file-sharinginfo-get.mdx +2 -2
  127. package/docs/docs/cmd/spo/file/file-sharinglink-add.mdx +22 -1
  128. package/docs/docs/cmd/spo/file/file-sharinglink-clear.mdx +24 -1
  129. package/docs/docs/cmd/spo/file/file-sharinglink-get.mdx +22 -1
  130. package/docs/docs/cmd/spo/file/file-sharinglink-list.mdx +22 -1
  131. package/docs/docs/cmd/spo/file/file-sharinglink-remove.mdx +24 -1
  132. package/docs/docs/cmd/spo/file/file-sharinglink-set.mdx +22 -1
  133. package/docs/docs/cmd/spo/file/file-unarchive.mdx +9 -1
  134. package/docs/docs/cmd/spo/file/file-version-clear.mdx +1 -1
  135. package/docs/docs/cmd/spo/file/file-version-get.mdx +1 -1
  136. package/docs/docs/cmd/spo/file/file-version-keep.mdx +1 -1
  137. package/docs/docs/cmd/spo/file/file-version-list.mdx +1 -1
  138. package/docs/docs/cmd/spo/file/file-version-remove.mdx +1 -1
  139. package/docs/docs/cmd/spo/file/file-version-restore.mdx +1 -1
  140. package/docs/docs/cmd/spo/folder/folder-archive.mdx +7 -1
  141. package/docs/docs/cmd/spo/folder/folder-copy.mdx +1 -1
  142. package/docs/docs/cmd/spo/folder/folder-get.mdx +2 -2
  143. package/docs/docs/cmd/spo/folder/folder-remove.mdx +4 -4
  144. package/docs/docs/cmd/spo/folder/folder-retentionlabel-ensure.mdx +1 -1
  145. package/docs/docs/cmd/spo/folder/folder-retentionlabel-remove.mdx +1 -1
  146. package/docs/docs/cmd/spo/folder/folder-sharinglink-add.mdx +22 -1
  147. package/docs/docs/cmd/spo/folder/folder-sharinglink-clear.mdx +23 -0
  148. package/docs/docs/cmd/spo/folder/folder-sharinglink-get.mdx +21 -0
  149. package/docs/docs/cmd/spo/folder/folder-sharinglink-list.mdx +22 -1
  150. package/docs/docs/cmd/spo/folder/folder-sharinglink-remove.mdx +24 -1
  151. package/docs/docs/cmd/spo/folder/folder-sharinglink-set.mdx +21 -0
  152. package/docs/docs/cmd/spo/folder/folder-unarchive.mdx +76 -0
  153. package/docs/docs/cmd/spo/list/list-remove.mdx +4 -4
  154. package/docs/docs/cmd/spo/listitem/listitem-batch-remove.mdx +8 -2
  155. package/docs/docs/cmd/spo/listitem/listitem-get.mdx +0 -6
  156. package/docs/docs/cmd/spo/listitem/listitem-remove.mdx +8 -2
  157. package/docs/docs/cmd/spo/navigation/navigation-node-list.mdx +37 -27
  158. package/docs/docs/cmd/spo/page/page-remove.mdx +4 -4
  159. package/docs/docs/cmd/spo/site/site-apppermission-add.mdx +52 -21
  160. package/docs/docs/cmd/spo/site/site-list.mdx +22 -1
  161. package/docs/docs/cmd/spo/site/site-remove.mdx +3 -3
  162. package/docs/docs/cmd/spo/storageentity/storageentity-get.mdx +11 -2
  163. package/docs/docs/cmd/spo/storageentity/storageentity-list.mdx +9 -3
  164. package/docs/docs/cmd/spo/storageentity/storageentity-remove.mdx +6 -6
  165. package/docs/docs/cmd/spo/storageentity/storageentity-set.mdx +10 -4
  166. package/docs/docs/cmd/spo/web/web-rule-get.mdx +108 -0
  167. package/docs/docs/cmd/spo/web/web-rule-list.mdx +8 -12
  168. package/docs/docs/cmd/spo/web/web-rule-remove.mdx +0 -6
  169. package/docs/docs/cmd/spp/model/model-get.mdx +1 -1
  170. package/docs/docs/cmd/spp/model/model-remove.mdx +1 -1
  171. package/docs/docs/cmd/teams/app/app-install.mdx +21 -0
  172. package/docs/docs/cmd/teams/app/app-list.mdx +19 -0
  173. package/docs/docs/cmd/teams/app/app-publish.mdx +17 -0
  174. package/docs/docs/cmd/teams/app/app-remove.mdx +19 -0
  175. package/docs/docs/cmd/teams/app/app-uninstall.mdx +21 -0
  176. package/docs/docs/cmd/teams/app/app-update.mdx +19 -0
  177. package/docs/docs/cmd/tenant/people/people-profilecardproperty-add.mdx +19 -0
  178. package/docs/docs/cmd/tenant/people/people-profilecardproperty-get.mdx +19 -0
  179. package/docs/docs/cmd/tenant/people/people-profilecardproperty-list.mdx +19 -0
  180. package/docs/docs/cmd/tenant/people/people-profilecardproperty-remove.mdx +19 -0
  181. package/docs/docs/cmd/tenant/people/people-profilecardproperty-set.mdx +19 -0
  182. package/docs/docs/cmd/tenant/serviceannouncement/serviceannouncement-health-get.mdx +19 -0
  183. package/docs/docs/cmd/tenant/serviceannouncement/serviceannouncement-health-list.mdx +19 -0
  184. package/docs/docs/cmd/tenant/serviceannouncement/serviceannouncement-healthissue-get.mdx +19 -0
  185. package/docs/docs/cmd/tenant/serviceannouncement/serviceannouncement-healthissue-list.mdx +19 -0
  186. package/docs/docs/cmd/tenant/serviceannouncement/serviceannouncement-message-get.mdx +19 -0
  187. package/docs/docs/cmd/tenant/serviceannouncement/serviceannouncement-message-list.mdx +19 -0
  188. package/npm-shrinkwrap.json +1120 -3216
  189. package/package.json +23 -33
  190. package/dist/appInsights.js +0 -43
@@ -1,16 +1,30 @@
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 _SpoAppRetractCommand_instances, _SpoAppRetractCommand_initTelemetry, _SpoAppRetractCommand_initOptions, _SpoAppRetractCommand_initValidators;
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 { spo } from '../../../../utils/spo.js';
11
7
  import { validation } from '../../../../utils/validation.js';
8
+ import { zod } from '../../../../utils/zod.js';
12
9
  import commands from '../../commands.js';
13
10
  import { SpoAppBaseCommand } from './SpoAppBaseCommand.js';
11
+ const appCatalogScopeOptions = { tenant: 'tenant', sitecollection: 'sitecollection' };
12
+ export const options = z.strictObject({
13
+ ...globalOptionsZod.shape,
14
+ id: z.string()
15
+ .refine(id => validation.isValidGuid(id), {
16
+ error: e => `${e.input} is not a valid GUID`
17
+ })
18
+ .alias('i'),
19
+ appCatalogUrl: z.string()
20
+ .refine(url => validation.isValidSharePointUrl(url) === true, {
21
+ error: e => `'${e.input}' is not a valid SharePoint Online site URL.`
22
+ })
23
+ .optional()
24
+ .alias('u'),
25
+ appCatalogScope: zod.coercedEnum(appCatalogScopeOptions).optional().alias('s'),
26
+ force: z.boolean().optional().alias('f')
27
+ });
14
28
  class SpoAppRetractCommand extends SpoAppBaseCommand {
15
29
  get name() {
16
30
  return commands.APP_RETRACT;
@@ -18,12 +32,18 @@ class SpoAppRetractCommand extends SpoAppBaseCommand {
18
32
  get description() {
19
33
  return 'Retracts the specified app from the specified app catalog';
20
34
  }
21
- constructor() {
22
- super();
23
- _SpoAppRetractCommand_instances.add(this);
24
- __classPrivateFieldGet(this, _SpoAppRetractCommand_instances, "m", _SpoAppRetractCommand_initTelemetry).call(this);
25
- __classPrivateFieldGet(this, _SpoAppRetractCommand_instances, "m", _SpoAppRetractCommand_initOptions).call(this);
26
- __classPrivateFieldGet(this, _SpoAppRetractCommand_instances, "m", _SpoAppRetractCommand_initValidators).call(this);
35
+ get schema() {
36
+ return options;
37
+ }
38
+ getRefinedSchema(schema) {
39
+ return schema
40
+ .refine(opts => opts.appCatalogScope !== 'sitecollection' || opts.appCatalogUrl !== undefined, {
41
+ error: 'You must specify appCatalogUrl when the appCatalogScope is sitecollection',
42
+ path: ['appCatalogUrl'],
43
+ params: {
44
+ customCode: 'required'
45
+ }
46
+ });
27
47
  }
28
48
  async commandAction(logger, args) {
29
49
  const scope = (args.options.appCatalogScope) ? args.options.appCatalogScope.toLowerCase() : 'tenant';
@@ -57,44 +77,5 @@ class SpoAppRetractCommand extends SpoAppBaseCommand {
57
77
  }
58
78
  }
59
79
  }
60
- _SpoAppRetractCommand_instances = new WeakSet(), _SpoAppRetractCommand_initTelemetry = function _SpoAppRetractCommand_initTelemetry() {
61
- this.telemetry.push((args) => {
62
- Object.assign(this.telemetryProperties, {
63
- appCatalogUrl: (!(!args.options.appCatalogUrl)).toString(),
64
- force: (!(!args.options.force)).toString(),
65
- appCatalogScope: args.options.appCatalogScope || 'tenant'
66
- });
67
- });
68
- }, _SpoAppRetractCommand_initOptions = function _SpoAppRetractCommand_initOptions() {
69
- this.options.unshift({
70
- option: '-i, --id <id>'
71
- }, {
72
- option: '-u, --appCatalogUrl [appCatalogUrl]'
73
- }, {
74
- option: '-s, --appCatalogScope [appCatalogScope]',
75
- autocomplete: ['tenant', 'sitecollection']
76
- }, {
77
- option: '-f, --force'
78
- });
79
- }, _SpoAppRetractCommand_initValidators = function _SpoAppRetractCommand_initValidators() {
80
- this.validators.push(async (args) => {
81
- if (args.options.appCatalogScope) {
82
- const testScope = args.options.appCatalogScope.toLowerCase();
83
- if (!(testScope === 'tenant' || testScope === 'sitecollection')) {
84
- return `appCatalogScope must be either 'tenant' or 'sitecollection' if specified`;
85
- }
86
- if (testScope === 'sitecollection' && !args.options.appCatalogUrl) {
87
- return `You must specify appCatalogUrl when the appCatalogScope is sitecollection`;
88
- }
89
- }
90
- if (!validation.isValidGuid(args.options.id)) {
91
- return `${args.options.id} is not a valid GUID`;
92
- }
93
- if (args.options.appCatalogUrl) {
94
- return validation.isValidSharePointUrl(args.options.appCatalogUrl);
95
- }
96
- return true;
97
- });
98
- };
99
80
  export default new SpoAppRetractCommand();
100
81
  //# sourceMappingURL=app-retract.js.map
@@ -1,11 +1,7 @@
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 _SpoAppTeamsPackageDownloadCommand_instances, _SpoAppTeamsPackageDownloadCommand_initTelemetry, _SpoAppTeamsPackageDownloadCommand_initOptions, _SpoAppTeamsPackageDownloadCommand_initValidators;
7
1
  import fs from 'fs';
8
2
  import path from 'path';
3
+ import { z } from 'zod';
4
+ import { globalOptionsZod } from '../../../../Command.js';
9
5
  import request from '../../../../request.js';
10
6
  import { formatting } from '../../../../utils/formatting.js';
11
7
  import { spo } from '../../../../utils/spo.js';
@@ -13,6 +9,27 @@ import { urlUtil } from '../../../../utils/urlUtil.js';
13
9
  import { validation } from '../../../../utils/validation.js';
14
10
  import commands from '../../commands.js';
15
11
  import { SpoAppBaseCommand } from './SpoAppBaseCommand.js';
12
+ export const options = z.strictObject({
13
+ ...globalOptionsZod.shape,
14
+ appItemId: z.number().optional(),
15
+ appItemUniqueId: z.string()
16
+ .refine(id => validation.isValidGuid(id), {
17
+ error: e => `${e.input} is not a valid GUID`
18
+ })
19
+ .optional(),
20
+ appName: z.string().optional(),
21
+ fileName: z.string()
22
+ .refine(fileName => !fs.existsSync(fileName), {
23
+ error: e => `File ${e.input} already exists`
24
+ })
25
+ .optional(),
26
+ appCatalogUrl: z.string()
27
+ .refine(url => validation.isValidSharePointUrl(url) === true, {
28
+ error: e => `'${e.input}' is not a valid SharePoint Online site URL.`
29
+ })
30
+ .optional()
31
+ .alias('u')
32
+ });
16
33
  class SpoAppTeamsPackageDownloadCommand extends SpoAppBaseCommand {
17
34
  get name() {
18
35
  return commands.APP_TEAMSPACKAGE_DOWNLOAD;
@@ -20,12 +37,18 @@ class SpoAppTeamsPackageDownloadCommand extends SpoAppBaseCommand {
20
37
  get description() {
21
38
  return 'Downloads Teams app package for an SPFx solution deployed to tenant app catalog';
22
39
  }
23
- constructor() {
24
- super();
25
- _SpoAppTeamsPackageDownloadCommand_instances.add(this);
26
- __classPrivateFieldGet(this, _SpoAppTeamsPackageDownloadCommand_instances, "m", _SpoAppTeamsPackageDownloadCommand_initTelemetry).call(this);
27
- __classPrivateFieldGet(this, _SpoAppTeamsPackageDownloadCommand_instances, "m", _SpoAppTeamsPackageDownloadCommand_initOptions).call(this);
28
- __classPrivateFieldGet(this, _SpoAppTeamsPackageDownloadCommand_instances, "m", _SpoAppTeamsPackageDownloadCommand_initValidators).call(this);
40
+ get schema() {
41
+ return options;
42
+ }
43
+ getRefinedSchema(schema) {
44
+ return schema
45
+ .refine(opts => [opts.appItemUniqueId, opts.appItemId, opts.appName].filter(x => x !== undefined).length === 1, {
46
+ error: 'Specify appItemUniqueId, appItemId or appName but not multiple',
47
+ params: {
48
+ customCode: 'optionSet',
49
+ options: ['appItemUniqueId', 'appItemId', 'appName']
50
+ }
51
+ });
29
52
  }
30
53
  async commandAction(logger, args) {
31
54
  try {
@@ -125,47 +148,5 @@ class SpoAppTeamsPackageDownloadCommand extends SpoAppBaseCommand {
125
148
  this.appCatalogUrl = appCatalogUrl;
126
149
  }
127
150
  }
128
- _SpoAppTeamsPackageDownloadCommand_instances = new WeakSet(), _SpoAppTeamsPackageDownloadCommand_initTelemetry = function _SpoAppTeamsPackageDownloadCommand_initTelemetry() {
129
- this.telemetry.push((args) => {
130
- Object.assign(this.telemetryProperties, {
131
- appCatalogUrl: typeof args.options.appCatalogUrl !== 'undefined',
132
- appItemUniqueId: typeof args.options.appItemUniqueId !== 'undefined',
133
- appItemId: typeof args.options.appItemId !== 'undefined',
134
- appName: typeof args.options.appName !== 'undefined',
135
- fileName: typeof args.options.fileName !== 'undefined'
136
- });
137
- });
138
- }, _SpoAppTeamsPackageDownloadCommand_initOptions = function _SpoAppTeamsPackageDownloadCommand_initOptions() {
139
- this.options.unshift({ option: '--appItemId [appItemId]' }, { option: '--appItemUniqueId [appItemUniqueId]' }, { option: '--appName [appName]' }, { option: '--fileName [fileName]' }, { option: '-u, --appCatalogUrl [appCatalogUrl]' });
140
- }, _SpoAppTeamsPackageDownloadCommand_initValidators = function _SpoAppTeamsPackageDownloadCommand_initValidators() {
141
- this.validators.push(async (args) => {
142
- if (!args.options.appItemUniqueId &&
143
- !args.options.appItemId &&
144
- !args.options.appName) {
145
- return `Specify appItemUniqueId, appItemId or appName`;
146
- }
147
- if ((args.options.appItemUniqueId && args.options.appItemId) ||
148
- (args.options.appItemUniqueId && args.options.appName) ||
149
- (args.options.appItemId && args.options.appName)) {
150
- return `Specify appItemUniqueId, appItemId or appName but not multiple`;
151
- }
152
- if (args.options.appItemUniqueId &&
153
- !validation.isValidGuid(args.options.appItemUniqueId)) {
154
- return `${args.options.appItemUniqueId} is not a valid GUID`;
155
- }
156
- if (args.options.appItemId &&
157
- isNaN(args.options.appItemId)) {
158
- return `${args.options.appItemId} is not a number`;
159
- }
160
- if (args.options.fileName &&
161
- fs.existsSync(args.options.fileName)) {
162
- return `File ${args.options.fileName} already exists`;
163
- }
164
- if (args.options.appCatalogUrl) {
165
- return validation.isValidSharePointUrl(args.options.appCatalogUrl);
166
- }
167
- return true;
168
- });
169
- };
170
151
  export default new SpoAppTeamsPackageDownloadCommand();
171
152
  //# sourceMappingURL=app-teamspackage-download.js.map
@@ -1,15 +1,28 @@
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 _SpoAppUninstallCommand_instances, _SpoAppUninstallCommand_initTelemetry, _SpoAppUninstallCommand_initOptions, _SpoAppUninstallCommand_initValidators;
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 { validation } from '../../../../utils/validation.js';
7
+ import { zod } from '../../../../utils/zod.js';
11
8
  import SpoCommand from '../../../base/SpoCommand.js';
12
9
  import commands from '../../commands.js';
10
+ const appCatalogScopeOptions = { tenant: 'tenant', sitecollection: 'sitecollection' };
11
+ export const options = z.strictObject({
12
+ ...globalOptionsZod.shape,
13
+ id: z.string()
14
+ .refine(id => validation.isValidGuid(id), {
15
+ error: e => `${e.input} is not a valid GUID`
16
+ })
17
+ .alias('i'),
18
+ siteUrl: z.string()
19
+ .refine(url => validation.isValidSharePointUrl(url) === true, {
20
+ error: e => `'${e.input}' is not a valid SharePoint Online site URL.`
21
+ })
22
+ .alias('s'),
23
+ appCatalogScope: zod.coercedEnum(appCatalogScopeOptions).optional(),
24
+ force: z.boolean().optional().alias('f')
25
+ });
13
26
  class SpoAppUninstallCommand extends SpoCommand {
14
27
  get name() {
15
28
  return commands.APP_UNINSTALL;
@@ -17,12 +30,8 @@ class SpoAppUninstallCommand extends SpoCommand {
17
30
  get description() {
18
31
  return 'Uninstalls an app from the site';
19
32
  }
20
- constructor() {
21
- super();
22
- _SpoAppUninstallCommand_instances.add(this);
23
- __classPrivateFieldGet(this, _SpoAppUninstallCommand_instances, "m", _SpoAppUninstallCommand_initTelemetry).call(this);
24
- __classPrivateFieldGet(this, _SpoAppUninstallCommand_instances, "m", _SpoAppUninstallCommand_initOptions).call(this);
25
- __classPrivateFieldGet(this, _SpoAppUninstallCommand_instances, "m", _SpoAppUninstallCommand_initValidators).call(this);
33
+ get schema() {
34
+ return options;
26
35
  }
27
36
  async commandAction(logger, args) {
28
37
  const uninstallApp = async () => {
@@ -54,37 +63,5 @@ class SpoAppUninstallCommand extends SpoCommand {
54
63
  }
55
64
  }
56
65
  }
57
- _SpoAppUninstallCommand_instances = new WeakSet(), _SpoAppUninstallCommand_initTelemetry = function _SpoAppUninstallCommand_initTelemetry() {
58
- this.telemetry.push((args) => {
59
- Object.assign(this.telemetryProperties, {
60
- force: (!(!args.options.force)).toString(),
61
- appCatalogScope: args.options.appCatalogScope || 'tenant'
62
- });
63
- });
64
- }, _SpoAppUninstallCommand_initOptions = function _SpoAppUninstallCommand_initOptions() {
65
- this.options.unshift({
66
- option: '-i, --id <id>'
67
- }, {
68
- option: '-s, --siteUrl <siteUrl>'
69
- }, {
70
- option: '--appCatalogScope [appCatalogScope]',
71
- autocomplete: ['tenant', 'sitecollection']
72
- }, {
73
- option: '-f, --force'
74
- });
75
- }, _SpoAppUninstallCommand_initValidators = function _SpoAppUninstallCommand_initValidators() {
76
- this.validators.push(async (args) => {
77
- if (args.options.appCatalogScope) {
78
- const testScope = args.options.appCatalogScope.toLowerCase();
79
- if (!(testScope === 'tenant' || testScope === 'sitecollection')) {
80
- return `appCatalogScope must be either 'tenant' or 'sitecollection' if specified`;
81
- }
82
- }
83
- if (!validation.isValidGuid(args.options.id)) {
84
- return `${args.options.id} is not a valid GUID`;
85
- }
86
- return validation.isValidSharePointUrl(args.options.siteUrl);
87
- });
88
- };
89
66
  export default new SpoAppUninstallCommand();
90
67
  //# sourceMappingURL=app-uninstall.js.map
@@ -1,14 +1,26 @@
1
- var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
2
- if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
3
- if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
4
- return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
5
- };
6
- var _SpoAppUpgradeCommand_instances, _SpoAppUpgradeCommand_initTelemetry, _SpoAppUpgradeCommand_initOptions, _SpoAppUpgradeCommand_initValidators;
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 { validation } from '../../../../utils/validation.js';
6
+ import { zod } from '../../../../utils/zod.js';
10
7
  import SpoCommand from '../../../base/SpoCommand.js';
11
8
  import commands from '../../commands.js';
9
+ const appCatalogScopeOptions = { tenant: 'tenant', sitecollection: 'sitecollection' };
10
+ export const options = z.strictObject({
11
+ ...globalOptionsZod.shape,
12
+ id: z.string()
13
+ .refine(id => validation.isValidGuid(id), {
14
+ error: e => `${e.input} is not a valid GUID`
15
+ })
16
+ .alias('i'),
17
+ siteUrl: z.string()
18
+ .refine(url => validation.isValidSharePointUrl(url) === true, {
19
+ error: e => `'${e.input}' is not a valid SharePoint Online site URL.`
20
+ })
21
+ .alias('s'),
22
+ appCatalogScope: zod.coercedEnum(appCatalogScopeOptions).optional()
23
+ });
12
24
  class SpoAppUpgradeCommand extends SpoCommand {
13
25
  get name() {
14
26
  return commands.APP_UPGRADE;
@@ -16,12 +28,8 @@ class SpoAppUpgradeCommand extends SpoCommand {
16
28
  get description() {
17
29
  return 'Upgrades app in the specified site';
18
30
  }
19
- constructor() {
20
- super();
21
- _SpoAppUpgradeCommand_instances.add(this);
22
- __classPrivateFieldGet(this, _SpoAppUpgradeCommand_instances, "m", _SpoAppUpgradeCommand_initTelemetry).call(this);
23
- __classPrivateFieldGet(this, _SpoAppUpgradeCommand_instances, "m", _SpoAppUpgradeCommand_initOptions).call(this);
24
- __classPrivateFieldGet(this, _SpoAppUpgradeCommand_instances, "m", _SpoAppUpgradeCommand_initValidators).call(this);
31
+ get schema() {
32
+ return options;
25
33
  }
26
34
  async commandAction(logger, args) {
27
35
  const scope = (args.options.appCatalogScope) ? args.options.appCatalogScope.toLowerCase() : 'tenant';
@@ -42,34 +50,5 @@ class SpoAppUpgradeCommand extends SpoCommand {
42
50
  }
43
51
  }
44
52
  }
45
- _SpoAppUpgradeCommand_instances = new WeakSet(), _SpoAppUpgradeCommand_initTelemetry = function _SpoAppUpgradeCommand_initTelemetry() {
46
- this.telemetry.push((args) => {
47
- Object.assign(this.telemetryProperties, {
48
- appCatalogScope: args.options.appCatalogScope || 'tenant'
49
- });
50
- });
51
- }, _SpoAppUpgradeCommand_initOptions = function _SpoAppUpgradeCommand_initOptions() {
52
- this.options.unshift({
53
- option: '-i, --id <id>'
54
- }, {
55
- option: '-s, --siteUrl <siteUrl>'
56
- }, {
57
- option: '--appCatalogScope [appCatalogScope]',
58
- autocomplete: ['tenant', 'sitecollection']
59
- });
60
- }, _SpoAppUpgradeCommand_initValidators = function _SpoAppUpgradeCommand_initValidators() {
61
- this.validators.push(async (args) => {
62
- if (args.options.appCatalogScope) {
63
- const testScope = args.options.appCatalogScope.toLowerCase();
64
- if (!(testScope === 'tenant' || testScope === 'sitecollection')) {
65
- return `appCatalogScope must be either 'tenant' or 'sitecollection' if specified`;
66
- }
67
- }
68
- if (!validation.isValidGuid(args.options.id)) {
69
- return `${args.options.id} is not a valid GUID`;
70
- }
71
- return validation.isValidSharePointUrl(args.options.siteUrl);
72
- });
73
- };
74
53
  export default new SpoAppUpgradeCommand();
75
54
  //# sourceMappingURL=app-upgrade.js.map
@@ -1,13 +1,24 @@
1
- var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
2
- if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
3
- if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
4
- return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
5
- };
6
- var _SpoFeatureDisableCommand_instances, _SpoFeatureDisableCommand_initTelemetry, _SpoFeatureDisableCommand_initOptions, _SpoFeatureDisableCommand_initValidators, _SpoFeatureDisableCommand_initTypes;
1
+ import { z } from 'zod';
2
+ import { globalOptionsZod } from "../../../../Command.js";
7
3
  import request from "../../../../request.js";
8
4
  import { validation } from '../../../../utils/validation.js';
5
+ import { zod } from '../../../../utils/zod.js';
9
6
  import SpoCommand from "../../../base/SpoCommand.js";
10
7
  import commands from "../../commands.js";
8
+ var FeatureScope;
9
+ (function (FeatureScope) {
10
+ FeatureScope["Site"] = "Site";
11
+ FeatureScope["Web"] = "Web";
12
+ })(FeatureScope || (FeatureScope = {}));
13
+ export const options = z.strictObject({
14
+ ...globalOptionsZod.shape,
15
+ webUrl: z.string().alias('u'),
16
+ id: z.string().refine(id => validation.isValidGuid(id), {
17
+ error: e => `${e.input} is not a valid GUID for option id.`
18
+ }).alias('i'),
19
+ scope: zod.coercedEnum(FeatureScope).optional().alias('s'),
20
+ force: z.boolean().optional()
21
+ });
11
22
  class SpoFeatureDisableCommand extends SpoCommand {
12
23
  get name() {
13
24
  return commands.FEATURE_DISABLE;
@@ -15,20 +26,12 @@ class SpoFeatureDisableCommand extends SpoCommand {
15
26
  get description() {
16
27
  return 'Disables feature for the specified site or web';
17
28
  }
18
- constructor() {
19
- super();
20
- _SpoFeatureDisableCommand_instances.add(this);
21
- __classPrivateFieldGet(this, _SpoFeatureDisableCommand_instances, "m", _SpoFeatureDisableCommand_initTelemetry).call(this);
22
- __classPrivateFieldGet(this, _SpoFeatureDisableCommand_instances, "m", _SpoFeatureDisableCommand_initOptions).call(this);
23
- __classPrivateFieldGet(this, _SpoFeatureDisableCommand_instances, "m", _SpoFeatureDisableCommand_initValidators).call(this);
24
- __classPrivateFieldGet(this, _SpoFeatureDisableCommand_instances, "m", _SpoFeatureDisableCommand_initTypes).call(this);
29
+ get schema() {
30
+ return options;
25
31
  }
26
32
  async commandAction(logger, args) {
27
- let scope = args.options.scope;
33
+ const scope = args.options.scope ?? 'Web';
28
34
  const force = !!args.options.force;
29
- if (!scope) {
30
- scope = "web";
31
- }
32
35
  if (this.verbose) {
33
36
  await logger.logToStderr(`Disabling feature '${args.options.id}' on scope '${scope}' for url '${args.options.webUrl}' (force='${force}')...`);
34
37
  }
@@ -48,38 +51,5 @@ class SpoFeatureDisableCommand extends SpoCommand {
48
51
  }
49
52
  }
50
53
  }
51
- _SpoFeatureDisableCommand_instances = new WeakSet(), _SpoFeatureDisableCommand_initTelemetry = function _SpoFeatureDisableCommand_initTelemetry() {
52
- this.telemetry.push((args) => {
53
- Object.assign(this.telemetryProperties, {
54
- scope: args.options.scope || 'web',
55
- force: args.options.force || false
56
- });
57
- });
58
- }, _SpoFeatureDisableCommand_initOptions = function _SpoFeatureDisableCommand_initOptions() {
59
- this.options.unshift({
60
- option: '-u, --webUrl <webUrl>'
61
- }, {
62
- option: '-i, --id <id>'
63
- }, {
64
- option: '-s, --scope [scope]',
65
- autocomplete: ['Site', 'Web']
66
- }, {
67
- option: '--force'
68
- });
69
- }, _SpoFeatureDisableCommand_initValidators = function _SpoFeatureDisableCommand_initValidators() {
70
- this.validators.push(async (args) => {
71
- if (!validation.isValidGuid(args.options.id)) {
72
- return `${args.options.id} is not a valid GUID for option id.`;
73
- }
74
- if (args.options.scope) {
75
- if (['site', 'web'].indexOf(args.options.scope.toLowerCase()) < 0) {
76
- return `${args.options.scope} is not a valid Feature scope. Allowed values are: Site, Web.`;
77
- }
78
- }
79
- return true;
80
- });
81
- }, _SpoFeatureDisableCommand_initTypes = function _SpoFeatureDisableCommand_initTypes() {
82
- this.types.string.push('scope', 's');
83
- };
84
54
  export default new SpoFeatureDisableCommand();
85
55
  //# sourceMappingURL=feature-disable.js.map
@@ -1,13 +1,26 @@
1
- var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
2
- if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
3
- if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
4
- return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
5
- };
6
- var _SpoFeatureEnableCommand_instances, _SpoFeatureEnableCommand_initTelemetry, _SpoFeatureEnableCommand_initOptions, _SpoFeatureEnableCommand_initValidators, _SpoFeatureEnableCommand_initTypes;
1
+ import { z } from 'zod';
2
+ import { globalOptionsZod } from '../../../../Command.js';
7
3
  import request from '../../../../request.js';
8
4
  import { validation } from '../../../../utils/validation.js';
5
+ import { zod } from '../../../../utils/zod.js';
9
6
  import SpoCommand from '../../../base/SpoCommand.js';
10
7
  import commands from '../../commands.js';
8
+ var FeatureScope;
9
+ (function (FeatureScope) {
10
+ FeatureScope["Site"] = "Site";
11
+ FeatureScope["Web"] = "Web";
12
+ })(FeatureScope || (FeatureScope = {}));
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
+ id: z.string().refine(id => validation.isValidGuid(id), {
19
+ error: e => `${e.input} is not a valid GUID for option id.`
20
+ }).alias('i'),
21
+ scope: zod.coercedEnum(FeatureScope).optional().alias('s'),
22
+ force: z.boolean().optional()
23
+ });
11
24
  class SpoFeatureEnableCommand extends SpoCommand {
12
25
  get name() {
13
26
  return commands.FEATURE_ENABLE;
@@ -15,20 +28,12 @@ class SpoFeatureEnableCommand extends SpoCommand {
15
28
  get description() {
16
29
  return 'Enables feature for the specified site or web';
17
30
  }
18
- constructor() {
19
- super();
20
- _SpoFeatureEnableCommand_instances.add(this);
21
- __classPrivateFieldGet(this, _SpoFeatureEnableCommand_instances, "m", _SpoFeatureEnableCommand_initTelemetry).call(this);
22
- __classPrivateFieldGet(this, _SpoFeatureEnableCommand_instances, "m", _SpoFeatureEnableCommand_initOptions).call(this);
23
- __classPrivateFieldGet(this, _SpoFeatureEnableCommand_instances, "m", _SpoFeatureEnableCommand_initValidators).call(this);
24
- __classPrivateFieldGet(this, _SpoFeatureEnableCommand_instances, "m", _SpoFeatureEnableCommand_initTypes).call(this);
31
+ get schema() {
32
+ return options;
25
33
  }
26
34
  async commandAction(logger, args) {
27
- let scope = args.options.scope;
35
+ const scope = args.options.scope ?? 'Web';
28
36
  const force = !!args.options.force;
29
- if (!scope) {
30
- scope = "web";
31
- }
32
37
  if (this.verbose) {
33
38
  await logger.logToStderr(`Enabling feature '${args.options.id}' on scope '${scope}' for url '${args.options.webUrl}' (force='${force}')...`);
34
39
  }
@@ -48,38 +53,5 @@ class SpoFeatureEnableCommand extends SpoCommand {
48
53
  }
49
54
  }
50
55
  }
51
- _SpoFeatureEnableCommand_instances = new WeakSet(), _SpoFeatureEnableCommand_initTelemetry = function _SpoFeatureEnableCommand_initTelemetry() {
52
- this.telemetry.push((args) => {
53
- Object.assign(this.telemetryProperties, {
54
- scope: args.options.scope || 'web',
55
- force: args.options.force || false
56
- });
57
- });
58
- }, _SpoFeatureEnableCommand_initOptions = function _SpoFeatureEnableCommand_initOptions() {
59
- this.options.unshift({
60
- option: '-u, --webUrl <webUrl>'
61
- }, {
62
- option: '-i, --id <id>'
63
- }, {
64
- option: '-s, --scope [scope]',
65
- autocomplete: ['Site', 'Web']
66
- }, {
67
- option: '--force'
68
- });
69
- }, _SpoFeatureEnableCommand_initValidators = function _SpoFeatureEnableCommand_initValidators() {
70
- this.validators.push(async (args) => {
71
- if (!validation.isValidGuid(args.options.id)) {
72
- return `${args.options.id} is not a valid GUID for option id.`;
73
- }
74
- if (args.options.scope) {
75
- if (['site', 'web'].indexOf(args.options.scope.toLowerCase()) < 0) {
76
- return `${args.options.scope} is not a valid Feature scope. Allowed values are Site|Web`;
77
- }
78
- }
79
- return validation.isValidSharePointUrl(args.options.webUrl);
80
- });
81
- }, _SpoFeatureEnableCommand_initTypes = function _SpoFeatureEnableCommand_initTypes() {
82
- this.types.string.push('scope', 's');
83
- };
84
56
  export default new SpoFeatureEnableCommand();
85
57
  //# sourceMappingURL=feature-enable.js.map
@@ -1,13 +1,16 @@
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 _SpoFeatureListCommand_instances, _SpoFeatureListCommand_initTelemetry, _SpoFeatureListCommand_initOptions, _SpoFeatureListCommand_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().refine(url => validation.isValidSharePointUrl(url) === true, {
10
+ error: e => `'${e.input}' is not a valid SharePoint Online site URL.`
11
+ }).alias('u'),
12
+ scope: z.enum(['Site', 'Web']).optional().alias('s')
13
+ });
11
14
  class SpoFeatureListCommand extends SpoCommand {
12
15
  get name() {
13
16
  return commands.FEATURE_LIST;
@@ -15,12 +18,8 @@ class SpoFeatureListCommand extends SpoCommand {
15
18
  get description() {
16
19
  return 'Lists Features activated in the specified site or site collection';
17
20
  }
18
- constructor() {
19
- super();
20
- _SpoFeatureListCommand_instances.add(this);
21
- __classPrivateFieldGet(this, _SpoFeatureListCommand_instances, "m", _SpoFeatureListCommand_initTelemetry).call(this);
22
- __classPrivateFieldGet(this, _SpoFeatureListCommand_instances, "m", _SpoFeatureListCommand_initOptions).call(this);
23
- __classPrivateFieldGet(this, _SpoFeatureListCommand_instances, "m", _SpoFeatureListCommand_initValidators).call(this);
21
+ get schema() {
22
+ return options;
24
23
  }
25
24
  async commandAction(logger, args) {
26
25
  const scope = (args.options.scope) ? args.options.scope : 'Web';
@@ -33,29 +32,5 @@ class SpoFeatureListCommand extends SpoCommand {
33
32
  }
34
33
  }
35
34
  }
36
- _SpoFeatureListCommand_instances = new WeakSet(), _SpoFeatureListCommand_initTelemetry = function _SpoFeatureListCommand_initTelemetry() {
37
- this.telemetry.push((args) => {
38
- Object.assign(this.telemetryProperties, {
39
- scope: args.options.scope || 'Web'
40
- });
41
- });
42
- }, _SpoFeatureListCommand_initOptions = function _SpoFeatureListCommand_initOptions() {
43
- this.options.unshift({
44
- option: '-u, --webUrl <webUrl>'
45
- }, {
46
- option: '-s, --scope [scope]',
47
- autocomplete: ['Site', 'Web']
48
- });
49
- }, _SpoFeatureListCommand_initValidators = function _SpoFeatureListCommand_initValidators() {
50
- this.validators.push(async (args) => {
51
- if (args.options.scope) {
52
- if (args.options.scope !== 'Site' &&
53
- args.options.scope !== 'Web') {
54
- return `${args.options.scope} is not a valid Feature scope. Allowed values are Site|Web`;
55
- }
56
- }
57
- return validation.isValidSharePointUrl(args.options.webUrl);
58
- });
59
- };
60
35
  export default new SpoFeatureListCommand();
61
36
  //# sourceMappingURL=feature-list.js.map