@pnp/cli-microsoft365 12.0.0-beta.f682e10 → 12.0.0-beta.feb621e

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 (83) hide show
  1. package/allCommands.json +1 -1
  2. package/allCommandsFull.json +1 -1
  3. package/dist/m365/spfx/commands/SpfxCompatibilityMatrix.js +15 -0
  4. package/dist/m365/spfx/commands/project/project-doctor/doctor-1.24.0-rc.0.js +19 -0
  5. package/dist/m365/spfx/commands/project/project-doctor.js +2 -1
  6. package/dist/m365/spfx/commands/project/project-upgrade/rules/FN012021_TSC_excludeDirectories.js +43 -0
  7. package/dist/m365/spfx/commands/project/project-upgrade/rules/FN027002_OVERRIDES_qs.js +33 -0
  8. package/dist/m365/spfx/commands/project/project-upgrade/rules/FN027003_OVERRIDES_uuid.js +33 -0
  9. package/dist/m365/spfx/commands/project/project-upgrade/upgrade-1.24.0-rc.0.js +77 -0
  10. package/dist/m365/spfx/commands/project/project-upgrade.js +12 -11
  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/hubsite/hubsite-connect.js +38 -63
  31. package/dist/m365/spo/commands/hubsite/hubsite-data-get.js +11 -27
  32. package/dist/m365/spo/commands/hubsite/hubsite-disconnect.js +25 -47
  33. package/dist/m365/spo/commands/hubsite/hubsite-get.js +25 -37
  34. package/dist/m365/spo/commands/hubsite/hubsite-list.js +12 -24
  35. package/dist/m365/spo/commands/hubsite/hubsite-register.js +10 -18
  36. package/dist/m365/spo/commands/hubsite/hubsite-rights-grant.js +14 -32
  37. package/dist/m365/spo/commands/hubsite/hubsite-rights-revoke.js +12 -29
  38. package/dist/m365/spo/commands/hubsite/hubsite-set.js +19 -46
  39. package/dist/m365/spo/commands/hubsite/hubsite-unregister.js +11 -27
  40. package/dist/m365/teams/commands/chat/chat-get.js +30 -45
  41. package/dist/m365/teams/commands/chat/chat-list.js +22 -42
  42. package/dist/m365/teams/commands/chat/chat-member-add.js +43 -64
  43. package/dist/m365/teams/commands/chat/chat-member-list.js +10 -23
  44. package/dist/m365/teams/commands/chat/chat-member-remove.js +28 -50
  45. package/dist/m365/teams/commands/chat/chat-message-send.js +32 -55
  46. package/docs/docs/cmd/spo/file/file-checkin.mdx +2 -2
  47. package/docs/docs/cmd/spo/file/file-checkout-undo.mdx +1 -1
  48. package/docs/docs/cmd/spo/file/file-checkout.mdx +2 -2
  49. package/docs/docs/cmd/spo/file/file-copy.mdx +2 -2
  50. package/docs/docs/cmd/spo/file/file-get.mdx +6 -6
  51. package/docs/docs/cmd/spo/file/file-retentionlabel-ensure.mdx +1 -1
  52. package/docs/docs/cmd/spo/file/file-retentionlabel-remove.mdx +1 -1
  53. package/docs/docs/cmd/spo/file/file-roleassignment-add.mdx +1 -1
  54. package/docs/docs/cmd/spo/file/file-roleassignment-remove.mdx +1 -1
  55. package/docs/docs/cmd/spo/file/file-roleinheritance-break.mdx +3 -3
  56. package/docs/docs/cmd/spo/file/file-roleinheritance-reset.mdx +2 -2
  57. package/docs/docs/cmd/spo/file/file-sharinginfo-get.mdx +2 -2
  58. package/docs/docs/cmd/spo/file/file-sharinglink-add.mdx +1 -1
  59. package/docs/docs/cmd/spo/file/file-sharinglink-clear.mdx +1 -1
  60. package/docs/docs/cmd/spo/file/file-sharinglink-get.mdx +1 -1
  61. package/docs/docs/cmd/spo/file/file-sharinglink-list.mdx +1 -1
  62. package/docs/docs/cmd/spo/file/file-sharinglink-remove.mdx +1 -1
  63. package/docs/docs/cmd/spo/file/file-sharinglink-set.mdx +1 -1
  64. package/docs/docs/cmd/spo/file/file-version-clear.mdx +1 -1
  65. package/docs/docs/cmd/spo/file/file-version-get.mdx +1 -1
  66. package/docs/docs/cmd/spo/file/file-version-keep.mdx +1 -1
  67. package/docs/docs/cmd/spo/file/file-version-list.mdx +1 -1
  68. package/docs/docs/cmd/spo/file/file-version-remove.mdx +1 -1
  69. package/docs/docs/cmd/spo/file/file-version-restore.mdx +1 -1
  70. package/docs/docs/cmd/spo/folder/folder-copy.mdx +1 -1
  71. package/docs/docs/cmd/spo/folder/folder-get.mdx +2 -2
  72. package/docs/docs/cmd/spo/folder/folder-retentionlabel-ensure.mdx +1 -1
  73. package/docs/docs/cmd/spo/folder/folder-retentionlabel-remove.mdx +1 -1
  74. package/docs/docs/cmd/spo/folder/folder-sharinglink-add.mdx +1 -1
  75. package/docs/docs/cmd/spo/folder/folder-sharinglink-list.mdx +1 -1
  76. package/docs/docs/cmd/spo/folder/folder-sharinglink-remove.mdx +1 -1
  77. package/docs/docs/cmd/spp/model/model-get.mdx +1 -1
  78. package/docs/docs/cmd/spp/model/model-remove.mdx +1 -1
  79. package/docs/docs/cmd/viva/engage/engage-message-add.mdx +17 -0
  80. package/docs/docs/cmd/viva/engage/engage-message-get.mdx +17 -0
  81. package/docs/docs/cmd/viva/engage/engage-message-list.mdx +17 -0
  82. package/docs/docs/cmd/viva/engage/engage-message-remove.mdx +19 -0
  83. package/package.json +2 -6
@@ -1,14 +1,27 @@
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 _TeamsChatMemberAddCommand_instances, _a, _TeamsChatMemberAddCommand_initTelemetry, _TeamsChatMemberAddCommand_initOptions, _TeamsChatMemberAddCommand_initValidators, _TeamsChatMemberAddCommand_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 { validation } from '../../../../utils/validation.js';
10
6
  import GraphCommand from '../../../base/GraphCommand.js';
11
7
  import commands from '../../commands.js';
8
+ export const options = z.strictObject({
9
+ ...globalOptionsZod.shape,
10
+ chatId: z.string().refine(val => validation.isValidTeamsChatId(val), {
11
+ message: 'The value of the option chatId must be a valid Teams ChatId.'
12
+ }).alias('i'),
13
+ userId: z.string().refine(val => validation.isValidGuid(val), {
14
+ message: 'The value of the option userId must be a valid GUID.'
15
+ }).optional(),
16
+ userName: z.string().refine(val => validation.isValidUserPrincipalName(val), {
17
+ message: 'The value of the option userName must be a valid user principal name.'
18
+ }).optional(),
19
+ role: z.enum(['owner', 'guest']).optional(),
20
+ visibleHistoryStartDateTime: z.string().refine(val => validation.isValidISODateTime(val), {
21
+ message: 'The value of the option visibleHistoryStartDateTime is not a valid ISO date.'
22
+ }).optional(),
23
+ withAllHistory: z.boolean().optional()
24
+ });
12
25
  class TeamsChatMemberAddCommand extends GraphCommand {
13
26
  get name() {
14
27
  return commands.CHAT_MEMBER_ADD;
@@ -16,13 +29,30 @@ class TeamsChatMemberAddCommand extends GraphCommand {
16
29
  get description() {
17
30
  return 'Adds a member to a Microsoft Teams chat conversation.';
18
31
  }
19
- constructor() {
20
- super();
21
- _TeamsChatMemberAddCommand_instances.add(this);
22
- __classPrivateFieldGet(this, _TeamsChatMemberAddCommand_instances, "m", _TeamsChatMemberAddCommand_initTelemetry).call(this);
23
- __classPrivateFieldGet(this, _TeamsChatMemberAddCommand_instances, "m", _TeamsChatMemberAddCommand_initOptions).call(this);
24
- __classPrivateFieldGet(this, _TeamsChatMemberAddCommand_instances, "m", _TeamsChatMemberAddCommand_initValidators).call(this);
25
- __classPrivateFieldGet(this, _TeamsChatMemberAddCommand_instances, "m", _TeamsChatMemberAddCommand_initOptionSets).call(this);
32
+ get schema() {
33
+ return options;
34
+ }
35
+ getRefinedSchema(schema) {
36
+ return schema
37
+ .refine(opts => [opts.userId, opts.userName].filter(x => x !== undefined).length === 1, {
38
+ message: 'Specify either userId or userName, but not both.',
39
+ params: {
40
+ customCode: 'optionSet',
41
+ options: ['userId', 'userName']
42
+ }
43
+ })
44
+ .refine(opts => {
45
+ if (opts.visibleHistoryStartDateTime && opts.withAllHistory) {
46
+ return false;
47
+ }
48
+ return true;
49
+ }, {
50
+ message: 'Specify either visibleHistoryStartDateTime or withAllHistory, but not both.',
51
+ params: {
52
+ customCode: 'optionSet',
53
+ options: ['visibleHistoryStartDateTime', 'withAllHistory']
54
+ }
55
+ });
26
56
  }
27
57
  async commandAction(logger, args) {
28
58
  try {
@@ -49,56 +79,5 @@ class TeamsChatMemberAddCommand extends GraphCommand {
49
79
  }
50
80
  }
51
81
  }
52
- _a = TeamsChatMemberAddCommand, _TeamsChatMemberAddCommand_instances = new WeakSet(), _TeamsChatMemberAddCommand_initTelemetry = function _TeamsChatMemberAddCommand_initTelemetry() {
53
- this.telemetry.push((args) => {
54
- Object.assign(this.telemetryProperties, {
55
- userId: typeof args.options.userId !== 'undefined',
56
- userName: typeof args.options.userName !== 'undefined',
57
- role: typeof args.options.role !== 'undefined',
58
- visibleHistoryStartDateTime: typeof args.options.visibleHistoryStartDateTime !== 'undefined',
59
- withAllHistory: !!args.options.withAllHistory
60
- });
61
- });
62
- }, _TeamsChatMemberAddCommand_initOptions = function _TeamsChatMemberAddCommand_initOptions() {
63
- this.options.unshift({
64
- option: '-i, --chatId <chatId>'
65
- }, {
66
- option: '--userId [userId]'
67
- }, {
68
- option: '--userName [userName]'
69
- }, {
70
- option: '--role [role]',
71
- autocomplete: _a.roles
72
- }, {
73
- option: '--visibleHistoryStartDateTime [visibleHistoryStartDateTime]'
74
- }, {
75
- option: '--withAllHistory'
76
- });
77
- }, _TeamsChatMemberAddCommand_initValidators = function _TeamsChatMemberAddCommand_initValidators() {
78
- this.validators.push(async (args) => {
79
- if (!validation.isValidTeamsChatId(args.options.chatId)) {
80
- return `${args.options.chatId} is not a valid chatId.`;
81
- }
82
- if (args.options.userId && !validation.isValidGuid(args.options.userId)) {
83
- return `${args.options.userId} is not a valid userId.`;
84
- }
85
- if (args.options.userName && !validation.isValidUserPrincipalName(args.options.userName)) {
86
- return `${args.options.userName} is not a valid userName.`;
87
- }
88
- if (args.options.role && _a.roles.indexOf(args.options.role) < 0) {
89
- return `${args.options.role} is not a valid role. Allowed values are ${_a.roles.join(', ')}`;
90
- }
91
- if (args.options.visibleHistoryStartDateTime && !validation.isValidISODateTime(args.options.visibleHistoryStartDateTime)) {
92
- return `'${args.options.visibleHistoryStartDateTime}' is not a valid visibleHistoryStartDateTime.`;
93
- }
94
- return true;
95
- });
96
- }, _TeamsChatMemberAddCommand_initOptionSets = function _TeamsChatMemberAddCommand_initOptionSets() {
97
- this.optionSets.push({ options: ['userId', 'userName'] }, {
98
- options: ['visibleHistoryStartDateTime', 'withAllHistory'],
99
- runsWhen: (args) => args.options.visibleHistoryStartDateTime || args.options.withAllHistory
100
- });
101
- };
102
- TeamsChatMemberAddCommand.roles = ['owner', 'guest'];
103
82
  export default new TeamsChatMemberAddCommand();
104
83
  //# sourceMappingURL=chat-member-add.js.map
@@ -1,13 +1,15 @@
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 _TeamsChatMemberListCommand_instances, _TeamsChatMemberListCommand_initOptions, _TeamsChatMemberListCommand_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 GraphCommand from '../../../base/GraphCommand.js';
10
6
  import commands from '../../commands.js';
7
+ export const options = z.strictObject({
8
+ ...globalOptionsZod.shape,
9
+ chatId: z.string().refine(val => validation.isValidTeamsChatId(val), {
10
+ message: 'The value of the option chatId must be a valid Teams ChatId.'
11
+ }).alias('i')
12
+ });
11
13
  class TeamsChatMemberListCommand extends GraphCommand {
12
14
  get name() {
13
15
  return commands.CHAT_MEMBER_LIST;
@@ -18,11 +20,8 @@ class TeamsChatMemberListCommand extends GraphCommand {
18
20
  defaultProperties() {
19
21
  return ['userId', 'displayName', 'email'];
20
22
  }
21
- constructor() {
22
- super();
23
- _TeamsChatMemberListCommand_instances.add(this);
24
- __classPrivateFieldGet(this, _TeamsChatMemberListCommand_instances, "m", _TeamsChatMemberListCommand_initOptions).call(this);
25
- __classPrivateFieldGet(this, _TeamsChatMemberListCommand_instances, "m", _TeamsChatMemberListCommand_initValidators).call(this);
23
+ get schema() {
24
+ return options;
26
25
  }
27
26
  async commandAction(logger, args) {
28
27
  const endpoint = `${this.resource}/v1.0/chats/${args.options.chatId}/members`;
@@ -35,17 +34,5 @@ class TeamsChatMemberListCommand extends GraphCommand {
35
34
  }
36
35
  }
37
36
  }
38
- _TeamsChatMemberListCommand_instances = new WeakSet(), _TeamsChatMemberListCommand_initOptions = function _TeamsChatMemberListCommand_initOptions() {
39
- this.options.unshift({
40
- option: '-i, --chatId <chatId>'
41
- });
42
- }, _TeamsChatMemberListCommand_initValidators = function _TeamsChatMemberListCommand_initValidators() {
43
- this.validators.push(async (args) => {
44
- if (!validation.isValidTeamsChatId(args.options.chatId)) {
45
- return `${args.options.chatId} is not a valid Teams ChatId`;
46
- }
47
- return true;
48
- });
49
- };
50
37
  export default new TeamsChatMemberListCommand();
51
38
  //# sourceMappingURL=chat-member-list.js.map
@@ -1,15 +1,25 @@
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 _TeamsChatMemberRemoveCommand_instances, _TeamsChatMemberRemoveCommand_initTelemetry, _TeamsChatMemberRemoveCommand_initOptions, _TeamsChatMemberRemoveCommand_initValidators, _TeamsChatMemberRemoveCommand_initOptionSets;
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 GraphCommand from '../../../base/GraphCommand.js';
10
6
  import commands from '../../commands.js';
11
7
  import { cli } from '../../../../cli/cli.js';
12
8
  import request from '../../../../request.js';
9
+ export const options = z.strictObject({
10
+ ...globalOptionsZod.shape,
11
+ chatId: z.string().refine(val => validation.isValidTeamsChatId(val), {
12
+ message: 'The value of the option chatId must be a valid Teams ChatId.'
13
+ }).alias('i'),
14
+ id: z.string().optional(),
15
+ userId: z.string().refine(val => validation.isValidGuid(val), {
16
+ message: 'The value of the option userId must be a valid GUID.'
17
+ }).optional(),
18
+ userName: z.string().refine(val => validation.isValidUserPrincipalName(val), {
19
+ message: 'The value of the option userName must be a valid user principal name.'
20
+ }).optional(),
21
+ force: z.boolean().optional().alias('f')
22
+ });
13
23
  class TeamsChatMemberRemoveCommand extends GraphCommand {
14
24
  get name() {
15
25
  return commands.CHAT_MEMBER_REMOVE;
@@ -17,13 +27,18 @@ class TeamsChatMemberRemoveCommand extends GraphCommand {
17
27
  get description() {
18
28
  return 'Removes a member from a Microsoft Teams chat conversation';
19
29
  }
20
- constructor() {
21
- super();
22
- _TeamsChatMemberRemoveCommand_instances.add(this);
23
- __classPrivateFieldGet(this, _TeamsChatMemberRemoveCommand_instances, "m", _TeamsChatMemberRemoveCommand_initTelemetry).call(this);
24
- __classPrivateFieldGet(this, _TeamsChatMemberRemoveCommand_instances, "m", _TeamsChatMemberRemoveCommand_initOptions).call(this);
25
- __classPrivateFieldGet(this, _TeamsChatMemberRemoveCommand_instances, "m", _TeamsChatMemberRemoveCommand_initValidators).call(this);
26
- __classPrivateFieldGet(this, _TeamsChatMemberRemoveCommand_instances, "m", _TeamsChatMemberRemoveCommand_initOptionSets).call(this);
30
+ get schema() {
31
+ return options;
32
+ }
33
+ getRefinedSchema(schema) {
34
+ return schema
35
+ .refine(opts => [opts.id, opts.userId, opts.userName].filter(x => x !== undefined).length === 1, {
36
+ message: 'Specify one of id, userId or userName, but not more than one.',
37
+ params: {
38
+ customCode: 'optionSet',
39
+ options: ['id', 'userId', 'userName']
40
+ }
41
+ });
27
42
  }
28
43
  async commandAction(logger, args) {
29
44
  const removeUserFromChat = async () => {
@@ -76,42 +91,5 @@ class TeamsChatMemberRemoveCommand extends GraphCommand {
76
91
  }
77
92
  }
78
93
  }
79
- _TeamsChatMemberRemoveCommand_instances = new WeakSet(), _TeamsChatMemberRemoveCommand_initTelemetry = function _TeamsChatMemberRemoveCommand_initTelemetry() {
80
- this.telemetry.push((args) => {
81
- Object.assign(this.telemetryProperties, {
82
- id: typeof args.options.id !== 'undefined',
83
- userId: typeof args.options.userId !== 'undefined',
84
- userName: typeof args.options.userName !== 'undefined',
85
- force: !!args.options.force
86
- });
87
- });
88
- }, _TeamsChatMemberRemoveCommand_initOptions = function _TeamsChatMemberRemoveCommand_initOptions() {
89
- this.options.unshift({
90
- option: '-i, --chatId <chatId>'
91
- }, {
92
- option: '--id [id]'
93
- }, {
94
- option: '--userId [userId]'
95
- }, {
96
- option: '--userName [userName]'
97
- }, {
98
- option: '-f, --force'
99
- });
100
- }, _TeamsChatMemberRemoveCommand_initValidators = function _TeamsChatMemberRemoveCommand_initValidators() {
101
- this.validators.push(async (args) => {
102
- if (!validation.isValidTeamsChatId(args.options.chatId)) {
103
- return `${args.options.chatId} is not a valid Teams chatId.`;
104
- }
105
- if (args.options.userId && !validation.isValidGuid(args.options.userId)) {
106
- return `${args.options.userId} is not a valid userId.`;
107
- }
108
- if (args.options.userName && !validation.isValidUserPrincipalName(args.options.userName)) {
109
- return `${args.options.userName} is not a valid user principal name.`;
110
- }
111
- return true;
112
- });
113
- }, _TeamsChatMemberRemoveCommand_initOptionSets = function _TeamsChatMemberRemoveCommand_initOptionSets() {
114
- this.optionSets.push({ options: ['id', 'userId', 'userName'] });
115
- };
116
94
  export default new TeamsChatMemberRemoveCommand();
117
95
  //# sourceMappingURL=chat-member-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 _TeamsChatMessageSendCommand_instances, _TeamsChatMessageSendCommand_initTelemetry, _TeamsChatMessageSendCommand_initOptions, _TeamsChatMessageSendCommand_initValidators, _TeamsChatMessageSendCommand_initOptionSets;
1
+ import { z } from 'zod';
7
2
  import auth from '../../../../Auth.js';
3
+ import { globalOptionsZod } from '../../../../Command.js';
8
4
  import request from '../../../../request.js';
9
5
  import { accessToken } from '../../../../utils/accessToken.js';
10
6
  import { validation } from '../../../../utils/validation.js';
@@ -13,6 +9,24 @@ import { chatUtil } from './chatUtil.js';
13
9
  import { cli } from '../../../../cli/cli.js';
14
10
  import { formatting } from '../../../../utils/formatting.js';
15
11
  import GraphDelegatedCommand from '../../../base/GraphDelegatedCommand.js';
12
+ export const options = z.strictObject({
13
+ ...globalOptionsZod.shape,
14
+ chatId: z.string().refine(val => validation.isValidTeamsChatId(val), {
15
+ message: 'The value is not a valid Teams ChatId.'
16
+ }).optional(),
17
+ userEmails: z.string().refine(val => {
18
+ const userEmails = val.trim().toLowerCase().split(',').filter(e => e && e !== '');
19
+ if (!userEmails || userEmails.length === 0) {
20
+ return false;
21
+ }
22
+ return userEmails.every(e => validation.isValidUserPrincipalName(e));
23
+ }, {
24
+ message: 'The option userEmails contains one or more invalid email addresses.'
25
+ }).alias('e').optional(),
26
+ chatName: z.string().optional(),
27
+ message: z.string().alias('m'),
28
+ contentType: z.enum(['text', 'html']).optional()
29
+ });
16
30
  class TeamsChatMessageSendCommand extends GraphDelegatedCommand {
17
31
  get name() {
18
32
  return commands.CHAT_MESSAGE_SEND;
@@ -20,14 +34,18 @@ class TeamsChatMessageSendCommand extends GraphDelegatedCommand {
20
34
  get description() {
21
35
  return 'Sends a chat message to a Microsoft Teams chat conversation.';
22
36
  }
23
- constructor() {
24
- super();
25
- _TeamsChatMessageSendCommand_instances.add(this);
26
- this.contentTypes = ['text', 'html'];
27
- __classPrivateFieldGet(this, _TeamsChatMessageSendCommand_instances, "m", _TeamsChatMessageSendCommand_initTelemetry).call(this);
28
- __classPrivateFieldGet(this, _TeamsChatMessageSendCommand_instances, "m", _TeamsChatMessageSendCommand_initOptions).call(this);
29
- __classPrivateFieldGet(this, _TeamsChatMessageSendCommand_instances, "m", _TeamsChatMessageSendCommand_initValidators).call(this);
30
- __classPrivateFieldGet(this, _TeamsChatMessageSendCommand_instances, "m", _TeamsChatMessageSendCommand_initOptionSets).call(this);
37
+ get schema() {
38
+ return options;
39
+ }
40
+ getRefinedSchema(schema) {
41
+ return schema
42
+ .refine(opts => [opts.chatId, opts.userEmails, opts.chatName].filter(x => x !== undefined).length === 1, {
43
+ message: 'Specify one of chatId, userEmails or chatName, but not more than one.',
44
+ params: {
45
+ customCode: 'optionSet',
46
+ options: ['chatId', 'userEmails', 'chatName']
47
+ }
48
+ });
31
49
  }
32
50
  async commandAction(logger, args) {
33
51
  try {
@@ -126,46 +144,5 @@ class TeamsChatMessageSendCommand extends GraphDelegatedCommand {
126
144
  return request.post(requestOptions);
127
145
  }
128
146
  }
129
- _TeamsChatMessageSendCommand_instances = new WeakSet(), _TeamsChatMessageSendCommand_initTelemetry = function _TeamsChatMessageSendCommand_initTelemetry() {
130
- this.telemetry.push((args) => {
131
- Object.assign(this.telemetryProperties, {
132
- chatId: typeof args.options.chatId !== 'undefined',
133
- userEmails: typeof args.options.userEmails !== 'undefined',
134
- chatName: typeof args.options.chatName !== 'undefined',
135
- contentType: args.options.contentType ?? 'text'
136
- });
137
- });
138
- }, _TeamsChatMessageSendCommand_initOptions = function _TeamsChatMessageSendCommand_initOptions() {
139
- this.options.unshift({
140
- option: '--chatId [chatId]'
141
- }, {
142
- option: '-e, --userEmails [userEmails]'
143
- }, {
144
- option: '--chatName [chatName]'
145
- }, {
146
- option: '-m, --message <message>'
147
- }, {
148
- option: '--contentType [contentType]',
149
- autocomplete: this.contentTypes
150
- });
151
- }, _TeamsChatMessageSendCommand_initValidators = function _TeamsChatMessageSendCommand_initValidators() {
152
- this.validators.push(async (args) => {
153
- if (args.options.chatId && !validation.isValidTeamsChatId(args.options.chatId)) {
154
- return `${args.options.chatId} is not a valid Teams ChatId.`;
155
- }
156
- if (args.options.userEmails) {
157
- const userEmails = args.options.userEmails.trim().toLowerCase().split(',').filter(e => e && e !== '');
158
- if (!userEmails || userEmails.length === 0 || userEmails.some(e => !validation.isValidUserPrincipalName(e))) {
159
- return `${args.options.userEmails} contains one or more invalid email addresses.`;
160
- }
161
- }
162
- if (args.options.contentType && !this.contentTypes.includes(args.options.contentType)) {
163
- return `'${args.options.contentType}' is not a valid value for option contentType. Allowed values are ${this.contentTypes.join(', ')}.`;
164
- }
165
- return true;
166
- });
167
- }, _TeamsChatMessageSendCommand_initOptionSets = function _TeamsChatMessageSendCommand_initOptionSets() {
168
- this.optionSets.push({ options: ['chatId', 'userEmails', 'chatName'] });
169
- };
170
147
  export default new TeamsChatMessageSendCommand();
171
148
  //# sourceMappingURL=chat-message-send.js.map
@@ -22,7 +22,7 @@ m365 spo file checkin [options]
22
22
  : The server- or site-relative decoded URL of the file to retrieve. Specify either `url` or `id` but not both.
23
23
 
24
24
  `-i, --id [id]`
25
- : The UniqueId (GUID) of the file to retrieve. Specify either `url` or `id` but not both.
25
+ : The unique ID (GUID) of the file to retrieve. Specify either `url` or `id` but not both.
26
26
 
27
27
  `-t, --type [type]`
28
28
  : Type of the check in. Allowed values: `Minor`, `Major`, `Overwrite`. Defaults to `Major`.
@@ -54,7 +54,7 @@ m365 spo file checkin [options]
54
54
 
55
55
  ## Examples
56
56
 
57
- Checks in file with the specified UniqueId located in the specified site.
57
+ Checks in file with the specified unique ID located in the specified site.
58
58
 
59
59
  ```sh
60
60
  m365 spo file checkin --webUrl https://contoso.sharepoint.com/sites/project-x --id 'b2307a39-e878-458b-bc90-03bc578531d6'
@@ -22,7 +22,7 @@ m365 spo file checkout undo [options]
22
22
  : The server- or site-relative decoded URL of the file to retrieve. Specify either `fileUrl` or `fileId` but not both.
23
23
 
24
24
  `-i, --fileId [fileId]`
25
- : The UniqueId (GUID) of the file to retrieve. Specify either `fileUrl` or `fileId` but not both.
25
+ : The unique ID (GUID) of the file to retrieve. Specify either `fileUrl` or `fileId` but not both.
26
26
 
27
27
  `-f, --force`
28
28
  : Don't prompt for confirmation.
@@ -22,7 +22,7 @@ m365 spo file checkout [options]
22
22
  : The server- or site-relative decoded URL of the file to retrieve. Specify either `url` or `id` but not both.
23
23
 
24
24
  `-i, --id [id]`
25
- : The UniqueId (GUID) of the file to retrieve. Specify either `url` or `id` but not both.
25
+ : The unique ID (GUID) of the file to retrieve. Specify either `url` or `id` but not both.
26
26
  ```
27
27
 
28
28
  <Global />
@@ -48,7 +48,7 @@ m365 spo file checkout [options]
48
48
 
49
49
  ## Examples
50
50
 
51
- Checks out file with the specified UniqueId located in the specified site.
51
+ Checks out file with the specified unique ID located in the specified site.
52
52
 
53
53
  ```sh
54
54
  m365 spo file checkout --webUrl https://contoso.sharepoint.com/sites/project-x --id 'b2307a39-e878-458b-bc90-03bc578531d6'
@@ -85,13 +85,13 @@ Copy a file by site-relative URL to a document library in another site collectio
85
85
  m365 spo file copy --webUrl https://contoso.sharepoint.com/sites/project --sourceUrl "/Shared Documents/Document.pdf" --targetUrl "/sites/IT/Shared Documents" --ignoreVersionHistory
86
86
  ```
87
87
 
88
- Copy file by sourceId (UniqueId) to a document library in another site collection and rename the file (without specifying the file extension).
88
+ Copy file by sourceId (unique ID) to a document library in another site collection and rename the file (without specifying the file extension).
89
89
 
90
90
  ```sh
91
91
  m365 spo file copy --webUrl https://contoso.sharepoint.com/sites/project --sourceId "b2307a39-e878-458b-bc90-03bc578531d6" --targetUrl "/sites/IT/Shared Documents" --newName "Report.pdf"
92
92
  ```
93
93
 
94
- Copy file by sourceId (UniqueId) to a document library in another site collection with a new name, rename the file if it already exists.
94
+ Copy file by sourceId (unique ID) to a document library in another site collection with a new name, rename the file if it already exists.
95
95
 
96
96
  ```sh
97
97
  m365 spo file copy --webUrl https://contoso.sharepoint.com/sites/project --sourceId "b2307a39-e878-458b-bc90-03bc578531d6" --targetUrl "/sites/IT/Shared Documents" --newName "Report.pdf" --nameConflictBehavior rename
@@ -22,7 +22,7 @@ m365 spo file get [options]
22
22
  : The server- or site-relative decoded URL of the file to retrieve. Specify either `url` or `id` but not both.
23
23
 
24
24
  `-i, --id [id]`
25
- : The UniqueId (GUID) of the file to retrieve. Specify either `url` or `id` but not both.
25
+ : The unique ID (GUID) of the file to retrieve. Specify either `url` or `id` but not both.
26
26
 
27
27
  `--asString`
28
28
  : Set to retrieve the contents of the specified file as string.
@@ -63,25 +63,25 @@ m365 spo file get [options]
63
63
 
64
64
  ## Examples
65
65
 
66
- Get file properties for a file with id (UniqueId) parameter located in a site.
66
+ Get file properties for a file with id (unique ID) parameter located in a site.
67
67
 
68
68
  ```sh
69
69
  m365 spo file get --webUrl https://contoso.sharepoint.com/sites/project-x --id 'b2307a39-e878-458b-bc90-03bc578531d6'
70
70
  ```
71
71
 
72
- Get contents of the file with id (UniqueId) parameter located in a site.
72
+ Get contents of the file with id (unique ID) parameter located in a site.
73
73
 
74
74
  ```sh
75
75
  m365 spo file get --webUrl https://contoso.sharepoint.com/sites/project-x --id 'b2307a39-e878-458b-bc90-03bc578531d6' --asString
76
76
  ```
77
77
 
78
- Get list item properties for a file with id (UniqueId) parameter located in a site.
78
+ Get list item properties for a file with id (unique ID) parameter located in a site.
79
79
 
80
80
  ```sh
81
81
  m365 spo file get --webUrl https://contoso.sharepoint.com/sites/project-x --id 'b2307a39-e878-458b-bc90-03bc578531d6' --asListItem
82
82
  ```
83
83
 
84
- Saves the file with id (UniqueId) parameter located in a site to a local file.
84
+ Saves the file with id (unique ID) parameter located in a site to a local file.
85
85
 
86
86
  ```sh
87
87
  m365 spo file get --webUrl https://contoso.sharepoint.com/sites/project-x --id 'b2307a39-e878-458b-bc90-03bc578531d6' --asFile --path /Users/user/documents/SavedAsTest1.docx
@@ -111,7 +111,7 @@ Saves a file with the server-relative url located in a site to a local file.
111
111
  m365 spo file get --webUrl https://contoso.sharepoint.com/sites/project-x --url '/sites/project-x/documents/Test1.docx' --asFile --path /Users/user/documents/SavedAsTest1.docx
112
112
  ```
113
113
 
114
- Gets the file properties for a file with id (UniqueId) parameter located in a site with permissions.
114
+ Gets the file properties for a file with id (unique ID) parameter located in a site with permissions.
115
115
 
116
116
  ```sh
117
117
  m365 spo file get --webUrl https://contoso.sharepoint.com/sites/project-x --id 'b2307a39-e878-458b-bc90-03bc578531d6' --withPermissions
@@ -22,7 +22,7 @@ m365 spo file retentionlabel ensure [options]
22
22
  : The site- or server-relative decoded URL of the file that should be labelled. Specify either `fileUrl` or `fileId` but not both.
23
23
 
24
24
  `-i, --fileId [fileId]`
25
- : The UniqueId (GUID) of the file that should be labelled. Specify either `fileUrl` or `fileId` but not both.
25
+ : The unique ID (GUID) of the file that should be labelled. Specify either `fileUrl` or `fileId` but not both.
26
26
 
27
27
  `--name <name>`
28
28
  : Name of the retention label to apply to the file.
@@ -22,7 +22,7 @@ m365 spo file retentionlabel remove [options]
22
22
  : The server- or site-relative decoded URL of the file of which the label should be removed. Specify either `fileUrl` or `fileId` but not both.
23
23
 
24
24
  `-i, --fileId [fileId]`
25
- : The UniqueId (GUID) of the file of which the label should be removed. Specify either `fileUrl` or `fileId` but not both.
25
+ : The unique ID (GUID) of the file of which the label should be removed. Specify either `fileUrl` or `fileId` but not both.
26
26
 
27
27
  `-f, --force`
28
28
  : Don't prompt for confirming removing the retention label from a file.
@@ -22,7 +22,7 @@ m365 spo file roleassignment add [options]
22
22
  : The server- or site-relative decoded URL of the file to retrieve. Specify either `fileUrl` or `fileId` but not both.
23
23
 
24
24
  `-i, --fileId [fileId]`
25
- : The UniqueId (GUID) of the file to retrieve. Specify either `fileUrl` or `fileId` but not both.
25
+ : The unique ID (GUID) of the file to retrieve. Specify either `fileUrl` or `fileId` but not both.
26
26
 
27
27
  `--principalId [principalId]`
28
28
  : The SharePoint Id of the principal. It may be either a user id or group id to add a role assignment for. Specify either `upn`, `groupName`, or `principalId` but not multiple.
@@ -22,7 +22,7 @@ m365 spo file roleassignment remove [options]
22
22
  : The server- or site-relative decoded URL of the file. Specify either `fileUrl` or `fileId` but not both.
23
23
 
24
24
  `-i, --fileId [fileId]`
25
- : The UniqueId (GUID) of the file. Specify either `fileUrl` or `fileId` but not both.
25
+ : The unique ID (GUID) of the file. Specify either `fileUrl` or `fileId` but not both.
26
26
 
27
27
  `--principalId [principalId]`
28
28
  : The SharePoint Id of the principal. It may be either a user id or group id. Specify either `upn`, `groupName`, `entraGroupId`, `entraGroupName`, or `principalId` but not multiple.
@@ -22,7 +22,7 @@ m365 spo file roleinheritance break [options]
22
22
  : The server- or site-relative decoded URL of the file. Specify either `fileUrl` or `fileId` but not both.
23
23
 
24
24
  `-i, --fileId [fileId]`
25
- : The UniqueId (GUID) of the file. Specify either `fileUrl` or `fileId` but not both.
25
+ : The unique ID (GUID) of the file. Specify either `fileUrl` or `fileId` but not both.
26
26
 
27
27
  `-c, --clearExistingPermissions`
28
28
  : Clear all existing permissions from the file.
@@ -54,13 +54,13 @@ m365 spo file roleinheritance break [options]
54
54
 
55
55
  ## Examples
56
56
 
57
- Break the inheritance of a file with a specific id (UniqueId).
57
+ Break the inheritance of a file with a specific id (unique ID).
58
58
 
59
59
  ```sh
60
60
  m365 spo file roleinheritance break --webUrl "https://contoso.sharepoint.com/sites/project-x" --fileId "b2307a39-e878-458b-bc90-03bc578531d6"
61
61
  ```
62
62
 
63
- Break the inheritance of a file with a specific id (UniqueId) and clear all existing permissions.
63
+ Break the inheritance of a file with a specific id (unique ID) and clear all existing permissions.
64
64
 
65
65
  ```sh
66
66
  m365 spo file roleinheritance break --webUrl "https://contoso.sharepoint.com/sites/project-x" --fileId "b2307a39-e878-458b-bc90-03bc578531d6" --clearExistingPermissions
@@ -22,7 +22,7 @@ m365 spo file roleinheritance reset [options]
22
22
  : The server- or site-relative decoded URL of the file to retrieve. Specify either `fileUrl` or `fileId` but not both.
23
23
 
24
24
  `-i, --fileId [fileId]`
25
- : The UniqueId (GUID) of the file to retrieve. Specify either `fileUrl` or `fileId` but not both.
25
+ : The unique ID (GUID) of the file to retrieve. Specify either `fileUrl` or `fileId` but not both.
26
26
 
27
27
  `-f, --force`
28
28
  : Don't prompt for confirmation.
@@ -51,7 +51,7 @@ m365 spo file roleinheritance reset [options]
51
51
 
52
52
  ## Examples
53
53
 
54
- Reset inheritance of file with the specified id (UniqueId) located in the specified site.
54
+ Reset inheritance of file with the specified id (unique ID) located in the specified site.
55
55
 
56
56
  ```sh
57
57
  m365 spo file roleinheritance reset --webUrl "https://contoso.sharepoint.com/sites/project-x" --fileId "b2307a39-e878-458b-bc90-03bc578531d6"
@@ -22,7 +22,7 @@ m365 spo file sharinginfo get [options]
22
22
  : The server- or site-relative decoded URL of the file for which to build the report. Specify either `fileUrl` or `fileId` but not both.
23
23
 
24
24
  `-i, --fileId [fileId]`
25
- : The UniqueId (GUID) of the file for which to build the report. Specify either `fileUrl` or `fileId` but not both.
25
+ : The unique ID (GUID) of the file for which to build the report. Specify either `fileUrl` or `fileId` but not both.
26
26
  ```
27
27
 
28
28
  <Global />
@@ -54,7 +54,7 @@ Get file sharing information report for the file with the specified server-relat
54
54
  m365 spo file sharinginfo get --webUrl https://contoso.sharepoint.com/sites/project-x --fileUrl "/sites/M365CLI/Shared Documents/SharedFile.docx"
55
55
  ```
56
56
 
57
- Get file sharing information report for file with the specified id (UniqueId) located in the specified site.
57
+ Get file sharing information report for file with the specified id (unique ID) located in the specified site.
58
58
 
59
59
  ```sh
60
60
  m365 spo file sharinginfo get --webUrl https://contoso.sharepoint.com/sites/project-x --fileId "b2307a39-e878-458b-bc90-03bc578531d6"
@@ -22,7 +22,7 @@ m365 spo file sharinglink add [options]
22
22
  : The server- or site-relative decoded URL of the file. Specify either `fileUrl` or `fileId` but not both.
23
23
 
24
24
  `--fileId [fileId]`
25
- : The UniqueId (GUID) of the file. Specify either `fileUrl` or `fileId` but not both.
25
+ : The unique ID (GUID) of the file. Specify either `fileUrl` or `fileId` but not both.
26
26
 
27
27
  `--type <type>`
28
28
  : The type of sharing link to create. Either `view` or `edit`.
@@ -22,7 +22,7 @@ m365 spo file sharinglink clear [options]
22
22
  : The server- or site-relative decoded URL of the file. Specify either `fileUrl` or `fileId` but not both.
23
23
 
24
24
  `--fileId [fileId]`
25
- : The UniqueId (GUID) of the file. Specify either `fileUrl` or `fileId` but not both.
25
+ : The unique ID (GUID) of the file. Specify either `fileUrl` or `fileId` but not both.
26
26
 
27
27
  `-s, --scope [scope]`
28
28
  : Scope of the sharing link. Possible options are: `anonymous`, `users` or `organization`. If not specified, all links will be removed.