@pnp/cli-microsoft365 9.0.0-beta.f2c5f82 → 9.1.0-beta.2d61838

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 (197) hide show
  1. package/allCommands.json +1 -1
  2. package/allCommandsFull.json +1 -1
  3. package/dist/Auth.js +17 -16
  4. package/dist/AuthServer.js +7 -7
  5. package/dist/Command.js +5 -4
  6. package/dist/api.js +1 -1
  7. package/dist/cli/cli.js +57 -8
  8. package/dist/config.js +61 -5
  9. package/dist/m365/app/commands/permission/permission-add.js +9 -9
  10. package/dist/m365/base/PowerAutomateCommand.js +1 -1
  11. package/dist/m365/base/SpoCommand.js +1 -1
  12. package/dist/m365/cli/commands/cli-consent.js +9 -5
  13. package/dist/m365/cli/commands/cli-doctor.js +2 -2
  14. package/dist/m365/cli/commands/cli-reconsent.js +2 -3
  15. package/dist/m365/cli/commands/config/config-set.js +12 -3
  16. package/dist/m365/commands/login.js +38 -14
  17. package/dist/m365/commands/setup.js +256 -33
  18. package/dist/m365/commands/status.js +2 -2
  19. package/dist/m365/connection/commands/connection-list.js +4 -4
  20. package/dist/m365/entra/commands/app/app-add.js +52 -288
  21. package/dist/m365/entra/commands/enterpriseapp/enterpriseapp-add.js +13 -13
  22. package/dist/m365/entra/commands/enterpriseapp/enterpriseapp-get.js +18 -18
  23. package/dist/m365/entra/commands/enterpriseapp/enterpriseapp-list.js +1 -1
  24. package/dist/m365/entra/commands/group/group-user-list.js +4 -4
  25. package/dist/m365/entra/commands/m365group/m365group-conversation-post-list.js +4 -4
  26. package/dist/m365/entra/commands/m365group/m365group-recyclebinitem-list.js +3 -3
  27. package/dist/m365/entra/commands/m365group/m365group-user-list.js +9 -6
  28. package/dist/m365/external/commands/item/item-add.js +2 -5
  29. package/dist/m365/file/commands/file-move.js +135 -0
  30. package/dist/m365/file/commands.js +2 -1
  31. package/dist/m365/flow/commands/environment/environment-get.js +1 -1
  32. package/dist/m365/flow/commands/environment/environment-list.js +1 -1
  33. package/dist/m365/flow/commands/flow-disable.js +1 -1
  34. package/dist/m365/flow/commands/flow-enable.js +1 -1
  35. package/dist/m365/flow/commands/flow-export.js +17 -16
  36. package/dist/m365/flow/commands/flow-get.js +1 -1
  37. package/dist/m365/flow/commands/flow-list.js +1 -1
  38. package/dist/m365/flow/commands/flow-remove.js +1 -1
  39. package/dist/m365/flow/commands/owner/owner-ensure.js +1 -1
  40. package/dist/m365/flow/commands/owner/owner-list.js +1 -1
  41. package/dist/m365/flow/commands/owner/owner-remove.js +1 -1
  42. package/dist/m365/flow/commands/recyclebinitem/recyclebinitem-list.js +47 -0
  43. package/dist/m365/flow/commands/recyclebinitem/recyclebinitem-restore.js +48 -0
  44. package/dist/m365/flow/commands/run/run-cancel.js +1 -1
  45. package/dist/m365/flow/commands/run/run-get.js +1 -1
  46. package/dist/m365/flow/commands/run/run-list.js +1 -1
  47. package/dist/m365/flow/commands/run/run-resubmit.js +2 -2
  48. package/dist/m365/flow/commands.js +2 -0
  49. package/dist/m365/onenote/commands/notebook/notebook-add.js +132 -0
  50. package/dist/m365/onenote/commands.js +1 -0
  51. package/dist/m365/outlook/commands/message/message-get.js +11 -11
  52. package/dist/m365/spfx/commands/project/DeployWorkflow.js +1 -1
  53. package/dist/m365/spfx/commands/project/project-doctor/doctor-1.20.0-rc.1.js +25 -0
  54. package/dist/m365/spfx/commands/project/project-doctor.js +2 -1
  55. package/dist/m365/spfx/commands/project/project-github-workflow-add.js +10 -1
  56. package/dist/m365/spfx/commands/project/project-upgrade/upgrade-1.20.0-rc.1.js +57 -0
  57. package/dist/m365/spfx/commands/project/project-upgrade.js +16 -13
  58. package/dist/m365/spfx/commands/spfx-doctor.js +15 -0
  59. package/dist/m365/spo/commands/applicationcustomizer/applicationcustomizer-get.js +1 -0
  60. package/dist/m365/spo/commands/file/file-copy.js +34 -55
  61. package/dist/m365/spo/commands/file/file-roleassignment-add.js +17 -54
  62. package/dist/m365/spo/commands/file/file-roleassignment-remove.js +13 -40
  63. package/dist/m365/spo/commands/file/file-roleinheritance-break.js +5 -13
  64. package/dist/m365/spo/commands/file/file-roleinheritance-reset.js +5 -13
  65. package/dist/m365/spo/commands/folder/folder-set.js +4 -0
  66. package/dist/m365/spo/commands/folder/folder-sharinglink-add.js +143 -0
  67. package/dist/m365/spo/commands/folder/folder-sharinglink-clear.js +111 -0
  68. package/dist/m365/spo/commands/folder/folder-sharinglink-remove.js +95 -0
  69. package/dist/m365/spo/commands/list/list-get.js +17 -4
  70. package/dist/m365/spo/commands/list/list-list.js +4 -1
  71. package/dist/m365/spo/commands/page/page-remove.js +37 -16
  72. package/dist/m365/spo/commands/page/page-section-add.js +185 -34
  73. package/dist/m365/spo/commands/site/SiteAdmin.js +2 -0
  74. package/dist/m365/spo/commands/site/site-admin-add.js +252 -0
  75. package/dist/m365/spo/commands/site/site-admin-list.js +10 -36
  76. package/dist/m365/spo/commands/site/site-admin-remove.js +194 -0
  77. package/dist/m365/spo/commands/site/site-appcatalog-remove.js +24 -48
  78. package/dist/m365/spo/commands/site/site-get.js +12 -16
  79. package/dist/m365/spo/commands/site/site-remove.js +7 -1
  80. package/dist/m365/spo/commands/site/site-sharingpermission-set.js +68 -0
  81. package/dist/m365/spo/commands/tenant/tenant-recyclebinitem-restore.js +22 -2
  82. package/dist/m365/spo/commands/user/user-get.js +67 -9
  83. package/dist/m365/spo/commands.js +7 -0
  84. package/dist/m365/spp/commands/contentcenter/contentcenter-list.js +56 -0
  85. package/dist/m365/spp/commands.js +5 -0
  86. package/dist/m365/teams/MeetingTranscript.js +2 -0
  87. package/dist/m365/teams/commands/meeting/meeting-transcript-get.js +152 -0
  88. package/dist/m365/teams/commands.js +1 -0
  89. package/dist/m365/viva/commands/engage/Community.js +2 -0
  90. package/dist/m365/viva/commands/engage/engage-community-list.js +28 -0
  91. package/dist/m365/viva/commands/engage/engage-group-list.js +5 -0
  92. package/dist/m365/viva/commands/engage/engage-group-user-add.js +5 -0
  93. package/dist/m365/viva/commands/engage/engage-group-user-remove.js +5 -0
  94. package/dist/m365/viva/commands/engage/engage-message-add.js +5 -0
  95. package/dist/m365/viva/commands/engage/engage-message-get.js +5 -0
  96. package/dist/m365/viva/commands/engage/engage-message-like-set.js +5 -0
  97. package/dist/m365/viva/commands/engage/engage-message-list.js +5 -0
  98. package/dist/m365/viva/commands/engage/engage-message-remove.js +5 -0
  99. package/dist/m365/viva/commands/engage/engage-network-list.js +5 -0
  100. package/dist/m365/viva/commands/engage/engage-report-activitycounts.js +8 -0
  101. package/dist/m365/viva/commands/engage/engage-report-activityusercounts.js +8 -0
  102. package/dist/m365/viva/commands/engage/engage-report-activityuserdetail.js +8 -0
  103. package/dist/m365/viva/commands/engage/engage-report-deviceusagedistributionusercounts.js +8 -0
  104. package/dist/m365/viva/commands/engage/engage-report-deviceusageusercounts.js +8 -0
  105. package/dist/m365/viva/commands/engage/engage-report-deviceusageuserdetail.js +8 -0
  106. package/dist/m365/viva/commands/engage/engage-report-groupsactivitycounts.js +8 -0
  107. package/dist/m365/viva/commands/engage/engage-report-groupsactivitydetail.js +8 -0
  108. package/dist/m365/viva/commands/engage/engage-report-groupsactivitygroupcounts.js +8 -0
  109. package/dist/m365/viva/commands/engage/engage-search.js +5 -0
  110. package/dist/m365/viva/commands/engage/engage-user-get.js +5 -0
  111. package/dist/m365/viva/commands/engage/engage-user-list.js +5 -0
  112. package/dist/m365/viva/commands/engage/yammerCommands.js +25 -0
  113. package/dist/m365/viva/commands.js +1 -0
  114. package/dist/request.js +46 -61
  115. package/dist/settingsNames.js +7 -1
  116. package/dist/utils/driveUtil.js +51 -0
  117. package/dist/utils/entraApp.js +283 -0
  118. package/dist/utils/spo.js +58 -66
  119. package/dist/utils/timersUtil.js +12 -0
  120. package/dist/utils/urlUtil.js +8 -0
  121. package/dist/utils/zod.js +1 -1
  122. package/docs/docs/_clisettings.mdx +6 -0
  123. package/docs/docs/cmd/app/permission/permission-add.mdx +5 -5
  124. package/docs/docs/cmd/cli/cli-consent.mdx +1 -1
  125. package/docs/docs/cmd/entra/enterpriseapp/enterpriseapp-add.mdx +12 -12
  126. package/docs/docs/cmd/entra/enterpriseapp/enterpriseapp-get.mdx +14 -14
  127. package/docs/docs/cmd/entra/enterpriseapp/enterpriseapp-list.mdx +5 -5
  128. package/docs/docs/cmd/entra/group/group-user-list.mdx +7 -7
  129. package/docs/docs/cmd/entra/m365group/m365group-conversation-post-list.mdx +5 -5
  130. package/docs/docs/cmd/entra/m365group/m365group-recyclebinitem-list.mdx +3 -3
  131. package/docs/docs/cmd/entra/m365group/m365group-report-activitystorage.mdx +2 -2
  132. package/docs/docs/cmd/entra/m365group/m365group-user-list.mdx +1 -1
  133. package/docs/docs/cmd/external/item/item-add.mdx +3 -3
  134. package/docs/docs/cmd/file/file-move.mdx +79 -0
  135. package/docs/docs/cmd/flow/recyclebinitem/recyclebinitem-list.mdx +132 -0
  136. package/docs/docs/cmd/flow/recyclebinitem/recyclebinitem-restore.mdx +55 -0
  137. package/docs/docs/cmd/onenote/notebook/notebook-add.mdx +169 -0
  138. package/docs/docs/cmd/outlook/message/message-get.mdx +5 -5
  139. package/docs/docs/cmd/setup.mdx +16 -3
  140. package/docs/docs/cmd/spfx/project/project-github-workflow-add.mdx +12 -11
  141. package/docs/docs/cmd/spo/applicationcustomizer/applicationcustomizer-get.mdx +5 -6
  142. package/docs/docs/cmd/spo/cdn/cdn-get.mdx +1 -1
  143. package/docs/docs/cmd/spo/cdn/cdn-origin-add.mdx +1 -1
  144. package/docs/docs/cmd/spo/cdn/cdn-origin-list.mdx +1 -1
  145. package/docs/docs/cmd/spo/cdn/cdn-origin-remove.mdx +1 -1
  146. package/docs/docs/cmd/spo/cdn/cdn-policy-list.mdx +1 -1
  147. package/docs/docs/cmd/spo/cdn/cdn-policy-set.mdx +1 -1
  148. package/docs/docs/cmd/spo/externaluser/externaluser-list.mdx +1 -1
  149. package/docs/docs/cmd/spo/file/file-copy.mdx +12 -119
  150. package/docs/docs/cmd/spo/folder/folder-set.mdx +6 -0
  151. package/docs/docs/cmd/spo/folder/folder-sharinglink-add.mdx +125 -0
  152. package/docs/docs/cmd/spo/folder/folder-sharinglink-clear.mdx +50 -0
  153. package/docs/docs/cmd/spo/folder/folder-sharinglink-remove.mdx +50 -0
  154. package/docs/docs/cmd/spo/hidedefaultthemes/hidedefaultthemes-get.mdx +1 -1
  155. package/docs/docs/cmd/spo/hidedefaultthemes/hidedefaultthemes-set.mdx +1 -1
  156. package/docs/docs/cmd/spo/homesite/homesite-remove.mdx +1 -1
  157. package/docs/docs/cmd/spo/knowledgehub/knowledgehub-get.mdx +1 -1
  158. package/docs/docs/cmd/spo/knowledgehub/knowledgehub-remove.mdx +1 -1
  159. package/docs/docs/cmd/spo/knowledgehub/knowledgehub-set.mdx +1 -1
  160. package/docs/docs/cmd/spo/list/list-list.mdx +7 -5
  161. package/docs/docs/cmd/spo/orgassetslibrary/orgassetslibrary-add.mdx +1 -1
  162. package/docs/docs/cmd/spo/orgassetslibrary/orgassetslibrary-list.mdx +1 -1
  163. package/docs/docs/cmd/spo/orgassetslibrary/orgassetslibrary-remove.mdx +1 -1
  164. package/docs/docs/cmd/spo/orgnewssite/orgnewssite-list.mdx +1 -1
  165. package/docs/docs/cmd/spo/orgnewssite/orgnewssite-remove.mdx +1 -1
  166. package/docs/docs/cmd/spo/orgnewssite/orgnewssite-set.mdx +1 -1
  167. package/docs/docs/cmd/spo/page/page-remove.mdx +30 -12
  168. package/docs/docs/cmd/spo/page/page-section-add.mdx +57 -2
  169. package/docs/docs/cmd/spo/site/site-admin-add.mdx +67 -0
  170. package/docs/docs/cmd/spo/site/site-admin-list.mdx +64 -12
  171. package/docs/docs/cmd/spo/site/site-admin-remove.mdx +67 -0
  172. package/docs/docs/cmd/spo/site/site-appcatalog-add.mdx +1 -1
  173. package/docs/docs/cmd/spo/site/site-appcatalog-remove.mdx +3 -12
  174. package/docs/docs/cmd/spo/site/site-commsite-enable.mdx +1 -1
  175. package/docs/docs/cmd/spo/site/site-list.mdx +6 -4
  176. package/docs/docs/cmd/spo/site/site-remove.mdx +3 -0
  177. package/docs/docs/cmd/spo/site/site-set.mdx +1 -1
  178. package/docs/docs/cmd/spo/site/site-sharingpermission-set.mdx +58 -0
  179. package/docs/docs/cmd/spo/storageentity/storageentity-remove.mdx +1 -1
  180. package/docs/docs/cmd/spo/storageentity/storageentity-set.mdx +1 -1
  181. package/docs/docs/cmd/spo/tenant/tenant-appcatalog-add.mdx +1 -1
  182. package/docs/docs/cmd/spo/tenant/tenant-appcatalogurl-get.mdx +1 -1
  183. package/docs/docs/cmd/spo/tenant/tenant-recyclebinitem-list.mdx +1 -1
  184. package/docs/docs/cmd/spo/tenant/tenant-recyclebinitem-remove.mdx +1 -1
  185. package/docs/docs/cmd/spo/tenant/tenant-recyclebinitem-restore.mdx +49 -2
  186. package/docs/docs/cmd/spo/tenant/tenant-settings-list.mdx +1 -1
  187. package/docs/docs/cmd/spo/theme/theme-apply.mdx +1 -1
  188. package/docs/docs/cmd/spo/theme/theme-get.mdx +1 -1
  189. package/docs/docs/cmd/spo/theme/theme-list.mdx +1 -1
  190. package/docs/docs/cmd/spo/theme/theme-remove.mdx +1 -1
  191. package/docs/docs/cmd/spo/theme/theme-set.mdx +1 -1
  192. package/docs/docs/cmd/spo/user/user-get.mdx +35 -9
  193. package/docs/docs/cmd/spp/contentcenter/contentcenter-list.mdx +287 -0
  194. package/docs/docs/cmd/teams/meeting/meeting-transcript-get.mdx +132 -0
  195. package/docs/docs/cmd/viva/engage/engage-community-list.mdx +81 -0
  196. package/npm-shrinkwrap.json +205 -377
  197. package/package.json +16 -17
@@ -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 _SpoSiteGetCommand_instances, _SpoSiteGetCommand_initOptions, _SpoSiteGetCommand_initValidators;
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
+ const options = globalOptionsZod
9
+ .extend({
10
+ url: zod.alias('u', z.string().refine(url => validation.isValidSharePointUrl(url) === true, {
11
+ message: 'Specify a valid SharePoint site URL'
12
+ }))
13
+ })
14
+ .strict();
11
15
  class SpoSiteGetCommand extends SpoCommand {
12
16
  get name() {
13
17
  return commands.SITE_GET;
@@ -15,11 +19,8 @@ class SpoSiteGetCommand extends SpoCommand {
15
19
  get description() {
16
20
  return 'Gets information about the specific site collection';
17
21
  }
18
- constructor() {
19
- super();
20
- _SpoSiteGetCommand_instances.add(this);
21
- __classPrivateFieldGet(this, _SpoSiteGetCommand_instances, "m", _SpoSiteGetCommand_initOptions).call(this);
22
- __classPrivateFieldGet(this, _SpoSiteGetCommand_instances, "m", _SpoSiteGetCommand_initValidators).call(this);
22
+ get schema() {
23
+ return options;
23
24
  }
24
25
  async commandAction(logger, args) {
25
26
  const requestOptions = {
@@ -38,10 +39,5 @@ class SpoSiteGetCommand extends SpoCommand {
38
39
  }
39
40
  }
40
41
  }
41
- _SpoSiteGetCommand_instances = new WeakSet(), _SpoSiteGetCommand_initOptions = function _SpoSiteGetCommand_initOptions() {
42
- this.options.unshift({ option: '-u, --url <url>' });
43
- }, _SpoSiteGetCommand_initValidators = function _SpoSiteGetCommand_initValidators() {
44
- this.validators.push(async (args) => validation.isValidSharePointUrl(args.options.url));
45
- };
46
42
  export default new SpoSiteGetCommand();
47
43
  //# sourceMappingURL=site-get.js.map
@@ -31,6 +31,9 @@ class SpoSiteRemoveCommand extends SpoCommand {
31
31
  __classPrivateFieldGet(this, _SpoSiteRemoveCommand_instances, "m", _SpoSiteRemoveCommand_initTypes).call(this);
32
32
  }
33
33
  async commandAction(logger, args) {
34
+ if (args.options.wait) {
35
+ await this.warn(logger, `Option 'wait' is deprecated and will be removed in the next major release.`);
36
+ }
34
37
  if (args.options.force) {
35
38
  await this.removeSite(logger, args.options);
36
39
  }
@@ -193,6 +196,7 @@ _SpoSiteRemoveCommand_instances = new WeakSet(), _SpoSiteRemoveCommand_initTelem
193
196
  Object.assign(this.telemetryProperties, {
194
197
  skipRecycleBin: !!args.options.skipRecycleBin,
195
198
  fromRecycleBin: !!args.options.fromRecycleBin,
199
+ wait: !!args.options.wait,
196
200
  force: !!args.options.force
197
201
  });
198
202
  });
@@ -203,6 +207,8 @@ _SpoSiteRemoveCommand_instances = new WeakSet(), _SpoSiteRemoveCommand_initTelem
203
207
  option: '--skipRecycleBin'
204
208
  }, {
205
209
  option: '--fromRecycleBin'
210
+ }, {
211
+ option: '--wait'
206
212
  }, {
207
213
  option: '-f, --force'
208
214
  });
@@ -224,7 +230,7 @@ _SpoSiteRemoveCommand_instances = new WeakSet(), _SpoSiteRemoveCommand_initTelem
224
230
  });
225
231
  }, _SpoSiteRemoveCommand_initTypes = function _SpoSiteRemoveCommand_initTypes() {
226
232
  this.types.string.push('url');
227
- this.types.boolean.push('skipRecycleBin', 'fromRecycleBin', 'force');
233
+ this.types.boolean.push('skipRecycleBin', 'fromRecycleBin', 'wait', 'force');
228
234
  };
229
235
  export default new SpoSiteRemoveCommand();
230
236
  //# sourceMappingURL=site-remove.js.map
@@ -0,0 +1,68 @@
1
+ import SpoCommand from '../../../base/SpoCommand.js';
2
+ import { globalOptionsZod } from '../../../../Command.js';
3
+ import { z } from 'zod';
4
+ import { zod } from '../../../../utils/zod.js';
5
+ import commands from '../../commands.js';
6
+ import { validation } from '../../../../utils/validation.js';
7
+ import request from '../../../../request.js';
8
+ const options = globalOptionsZod
9
+ .extend({
10
+ siteUrl: zod.alias('u', z.string()
11
+ .refine(url => validation.isValidSharePointUrl(url) === true, url => ({
12
+ message: `'${url}' is not a valid SharePoint Online site URL.`
13
+ }))),
14
+ capability: z.enum(['full', 'limited', 'ownersOnly'])
15
+ })
16
+ .strict();
17
+ class SpoSiteSharingPermissionSetCommand extends SpoCommand {
18
+ get name() {
19
+ return commands.SITE_SHARINGPERMISSION_SET;
20
+ }
21
+ get description() {
22
+ return 'Controls how a site and its components can be shared';
23
+ }
24
+ get schema() {
25
+ return options;
26
+ }
27
+ async commandAction(logger, args) {
28
+ try {
29
+ if (this.verbose) {
30
+ await logger.logToStderr(`Updating sharing permissions for site '${args.options.siteUrl}'...`);
31
+ }
32
+ const { capability } = args.options;
33
+ if (this.verbose) {
34
+ await logger.logToStderr(`Updating site sharing permissions...`);
35
+ }
36
+ const requestOptionsWeb = {
37
+ url: `${args.options.siteUrl}/_api/Web`,
38
+ headers: {
39
+ accept: 'application/json;odata=nometadata'
40
+ },
41
+ responseType: 'json',
42
+ data: {
43
+ MembersCanShare: capability === 'full' || capability === 'limited'
44
+ }
45
+ };
46
+ await request.patch(requestOptionsWeb);
47
+ if (this.verbose) {
48
+ await logger.logToStderr(`Updating associated member group sharing permissions...`);
49
+ }
50
+ const requestOptionsMemberGroup = {
51
+ url: `${args.options.siteUrl}/_api/Web/AssociatedMemberGroup`,
52
+ headers: {
53
+ accept: 'application/json;odata=nometadata'
54
+ },
55
+ responseType: 'json',
56
+ data: {
57
+ AllowMembersEditMembership: capability === 'full'
58
+ }
59
+ };
60
+ await request.patch(requestOptionsMemberGroup);
61
+ }
62
+ catch (err) {
63
+ this.handleRejectedODataJsonPromise(err);
64
+ }
65
+ }
66
+ }
67
+ export default new SpoSiteSharingPermissionSetCommand();
68
+ //# sourceMappingURL=site-sharingpermission-set.js.map
@@ -3,7 +3,7 @@ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (
3
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
4
  return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
5
5
  };
6
- var _SpoTenantRecycleBinItemRestoreCommand_instances, _SpoTenantRecycleBinItemRestoreCommand_initOptions, _SpoTenantRecycleBinItemRestoreCommand_initValidators, _SpoTenantRecycleBinItemRestoreCommand_initTypes;
6
+ var _SpoTenantRecycleBinItemRestoreCommand_instances, _SpoTenantRecycleBinItemRestoreCommand_initTelemetry, _SpoTenantRecycleBinItemRestoreCommand_initOptions, _SpoTenantRecycleBinItemRestoreCommand_initValidators, _SpoTenantRecycleBinItemRestoreCommand_initTypes;
7
7
  import request from '../../../../request.js';
8
8
  import { formatting } from '../../../../utils/formatting.js';
9
9
  import { odata } from '../../../../utils/odata.js';
@@ -22,11 +22,15 @@ class SpoTenantRecycleBinItemRestoreCommand extends SpoCommand {
22
22
  constructor() {
23
23
  super();
24
24
  _SpoTenantRecycleBinItemRestoreCommand_instances.add(this);
25
+ __classPrivateFieldGet(this, _SpoTenantRecycleBinItemRestoreCommand_instances, "m", _SpoTenantRecycleBinItemRestoreCommand_initTelemetry).call(this);
25
26
  __classPrivateFieldGet(this, _SpoTenantRecycleBinItemRestoreCommand_instances, "m", _SpoTenantRecycleBinItemRestoreCommand_initOptions).call(this);
26
27
  __classPrivateFieldGet(this, _SpoTenantRecycleBinItemRestoreCommand_instances, "m", _SpoTenantRecycleBinItemRestoreCommand_initValidators).call(this);
27
28
  __classPrivateFieldGet(this, _SpoTenantRecycleBinItemRestoreCommand_instances, "m", _SpoTenantRecycleBinItemRestoreCommand_initTypes).call(this);
28
29
  }
29
30
  async commandAction(logger, args) {
31
+ if (args.options.wait) {
32
+ await this.warn(logger, `Option 'wait' is deprecated and will be removed in the next major release.`);
33
+ }
30
34
  try {
31
35
  if (this.verbose) {
32
36
  await logger.logToStderr(`Restoring site collection '${args.options.siteUrl}' from recycle bin.`);
@@ -58,6 +62,13 @@ class SpoTenantRecycleBinItemRestoreCommand extends SpoCommand {
58
62
  };
59
63
  await request.post(restoreOptions);
60
64
  }
65
+ // Here, we return a fixed response because this new API endpoint doesn't return a response while the previous API did.
66
+ // This has to be removed in the next major release.
67
+ await logger.log({
68
+ HasTimedout: false,
69
+ IsComplete: !!args.options.wait,
70
+ PollingInterval: 15000
71
+ });
61
72
  }
62
73
  catch (err) {
63
74
  this.handleRejectedODataJsonPromise(err);
@@ -68,14 +79,23 @@ class SpoTenantRecycleBinItemRestoreCommand extends SpoCommand {
68
79
  return sites[0].GroupId;
69
80
  }
70
81
  }
71
- _SpoTenantRecycleBinItemRestoreCommand_instances = new WeakSet(), _SpoTenantRecycleBinItemRestoreCommand_initOptions = function _SpoTenantRecycleBinItemRestoreCommand_initOptions() {
82
+ _SpoTenantRecycleBinItemRestoreCommand_instances = new WeakSet(), _SpoTenantRecycleBinItemRestoreCommand_initTelemetry = function _SpoTenantRecycleBinItemRestoreCommand_initTelemetry() {
83
+ this.telemetry.push((args) => {
84
+ Object.assign(this.telemetryProperties, {
85
+ wait: !!args.options.wait
86
+ });
87
+ });
88
+ }, _SpoTenantRecycleBinItemRestoreCommand_initOptions = function _SpoTenantRecycleBinItemRestoreCommand_initOptions() {
72
89
  this.options.unshift({
73
90
  option: '-u, --siteUrl <siteUrl>'
91
+ }, {
92
+ option: '--wait'
74
93
  });
75
94
  }, _SpoTenantRecycleBinItemRestoreCommand_initValidators = function _SpoTenantRecycleBinItemRestoreCommand_initValidators() {
76
95
  this.validators.push(async (args) => validation.isValidSharePointUrl(args.options.siteUrl));
77
96
  }, _SpoTenantRecycleBinItemRestoreCommand_initTypes = function _SpoTenantRecycleBinItemRestoreCommand_initTypes() {
78
97
  this.types.string.push('siteUrl');
98
+ this.types.boolean.push('wait');
79
99
  };
80
100
  export default new SpoTenantRecycleBinItemRestoreCommand();
81
101
  //# sourceMappingURL=tenant-recyclebinitem-restore.js.map
@@ -3,8 +3,9 @@ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (
3
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
4
  return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
5
5
  };
6
- var _SpoUserGetCommand_instances, _SpoUserGetCommand_initTelemetry, _SpoUserGetCommand_initOptions, _SpoUserGetCommand_initValidators, _SpoUserGetCommand_initOptionSets;
6
+ var _SpoUserGetCommand_instances, _SpoUserGetCommand_initTelemetry, _SpoUserGetCommand_initOptions, _SpoUserGetCommand_initTypes, _SpoUserGetCommand_initValidators, _SpoUserGetCommand_initOptionSets;
7
7
  import request from '../../../../request.js';
8
+ import { entraGroup } from '../../../../utils/entraGroup.js';
8
9
  import { formatting } from '../../../../utils/formatting.js';
9
10
  import { validation } from '../../../../utils/validation.js';
10
11
  import SpoCommand from '../../../base/SpoCommand.js';
@@ -23,23 +24,38 @@ class SpoUserGetCommand extends SpoCommand {
23
24
  __classPrivateFieldGet(this, _SpoUserGetCommand_instances, "m", _SpoUserGetCommand_initOptions).call(this);
24
25
  __classPrivateFieldGet(this, _SpoUserGetCommand_instances, "m", _SpoUserGetCommand_initValidators).call(this);
25
26
  __classPrivateFieldGet(this, _SpoUserGetCommand_instances, "m", _SpoUserGetCommand_initOptionSets).call(this);
27
+ __classPrivateFieldGet(this, _SpoUserGetCommand_instances, "m", _SpoUserGetCommand_initTypes).call(this);
26
28
  }
27
29
  async commandAction(logger, args) {
28
30
  if (this.verbose) {
29
31
  await logger.logToStderr(`Retrieving information for user in site '${args.options.webUrl}'...`);
30
32
  }
31
- let requestUrl = '';
33
+ let requestUrl = `${args.options.webUrl}/_api/web/`;
32
34
  if (args.options.id) {
33
- requestUrl = `${args.options.webUrl}/_api/web/siteusers/GetById('${formatting.encodeQueryParameter(args.options.id.toString())}')`;
35
+ requestUrl += `siteusers/GetById('${formatting.encodeQueryParameter(args.options.id.toString())}')`;
34
36
  }
35
37
  else if (args.options.email) {
36
- requestUrl = `${args.options.webUrl}/_api/web/siteusers/GetByEmail('${formatting.encodeQueryParameter(args.options.email)}')`;
38
+ requestUrl += `siteusers/GetByEmail('${formatting.encodeQueryParameter(args.options.email)}')`;
37
39
  }
38
40
  else if (args.options.loginName) {
39
- requestUrl = `${args.options.webUrl}/_api/web/siteusers/GetByLoginName('${formatting.encodeQueryParameter(args.options.loginName)}')`;
41
+ requestUrl += `siteusers/GetByLoginName('${formatting.encodeQueryParameter(args.options.loginName)}')`;
42
+ }
43
+ else if (args.options.userName) {
44
+ const user = await this.getUser(requestUrl, args.options.userName);
45
+ requestUrl += `siteusers/GetById('${formatting.encodeQueryParameter(user.Id.toString())}')`;
46
+ }
47
+ else if (args.options.entraGroupId || args.options.entraGroupName) {
48
+ const entraGroup = await this.getEntraGroup(args.options.entraGroupId, args.options.entraGroupName);
49
+ // For entra groups, M365 groups have an associated email and security groups don't
50
+ if (entraGroup?.mail) {
51
+ requestUrl += `siteusers/GetByEmail('${formatting.encodeQueryParameter(entraGroup.mail)}')`;
52
+ }
53
+ else {
54
+ requestUrl += `siteusers/GetByLoginName('c:0t.c|tenant|${entraGroup?.id}')`;
55
+ }
40
56
  }
41
57
  else {
42
- requestUrl = `${args.options.webUrl}/_api/web/currentuser`;
58
+ requestUrl += `currentuser`;
43
59
  }
44
60
  const requestOptions = {
45
61
  url: requestUrl,
@@ -57,13 +73,38 @@ class SpoUserGetCommand extends SpoCommand {
57
73
  this.handleRejectedODataJsonPromise(err);
58
74
  }
59
75
  }
76
+ async getUser(baseUrl, userName) {
77
+ const requestUrl = `${baseUrl}siteusers?$filter=UserPrincipalName eq ('${formatting.encodeQueryParameter(userName)}')`;
78
+ const requestOptions = {
79
+ url: requestUrl,
80
+ headers: {
81
+ accept: 'application/json;odata=nometadata'
82
+ },
83
+ responseType: 'json'
84
+ };
85
+ const userInstance = await request.get(requestOptions);
86
+ const userInstanceValue = userInstance.value[0];
87
+ if (!userInstanceValue) {
88
+ throw `User not found: ${userName}`;
89
+ }
90
+ return userInstanceValue;
91
+ }
92
+ async getEntraGroup(entraGroupId, entraGroupName) {
93
+ if (entraGroupId) {
94
+ return entraGroup.getGroupById(entraGroupId);
95
+ }
96
+ return entraGroup.getGroupByDisplayName(entraGroupName);
97
+ }
60
98
  }
61
99
  _SpoUserGetCommand_instances = new WeakSet(), _SpoUserGetCommand_initTelemetry = function _SpoUserGetCommand_initTelemetry() {
62
100
  this.telemetry.push((args) => {
63
101
  Object.assign(this.telemetryProperties, {
64
102
  id: typeof args.options.id !== 'undefined',
65
103
  email: typeof args.options.email !== 'undefined',
66
- loginName: typeof args.options.loginName !== 'undefined'
104
+ loginName: typeof args.options.loginName !== 'undefined',
105
+ userName: typeof args.options.userName !== 'undefined',
106
+ entraGroupId: typeof args.options.entraGroupId !== 'undefined',
107
+ entraGroupName: typeof args.options.entraGroupName !== 'undefined'
67
108
  });
68
109
  });
69
110
  }, _SpoUserGetCommand_initOptions = function _SpoUserGetCommand_initOptions() {
@@ -75,19 +116,36 @@ _SpoUserGetCommand_instances = new WeakSet(), _SpoUserGetCommand_initTelemetry =
75
116
  option: '--email [email]'
76
117
  }, {
77
118
  option: '--loginName [loginName]'
119
+ }, {
120
+ option: '--userName [userName]'
121
+ }, {
122
+ option: '--entraGroupId [entraGroupId]'
123
+ }, {
124
+ option: '--entraGroupName [entraGroupName]'
78
125
  });
126
+ }, _SpoUserGetCommand_initTypes = function _SpoUserGetCommand_initTypes() {
127
+ this.types.string.push('webUrl', 'id', 'email', 'loginName', 'userName', 'entraGroupId', 'entraGroupName');
79
128
  }, _SpoUserGetCommand_initValidators = function _SpoUserGetCommand_initValidators() {
80
129
  this.validators.push(async (args) => {
81
130
  if (args.options.id &&
82
131
  typeof args.options.id !== 'number') {
83
132
  return `Specified id ${args.options.id} is not a number`;
84
133
  }
134
+ if (args.options.entraGroupId && !validation.isValidGuid(args.options.entraGroupId)) {
135
+ return `${args.options.entraGroupId} is not a valid GUID.`;
136
+ }
137
+ if (args.options.userName && !validation.isValidUserPrincipalName(args.options.userName)) {
138
+ return `${args.options.userName} is not a valid userName.`;
139
+ }
140
+ if (args.options.email && !validation.isValidUserPrincipalName(args.options.email)) {
141
+ return `${args.options.email} is not a valid email.`;
142
+ }
85
143
  return validation.isValidSharePointUrl(args.options.webUrl);
86
144
  });
87
145
  }, _SpoUserGetCommand_initOptionSets = function _SpoUserGetCommand_initOptionSets() {
88
146
  this.optionSets.push({
89
- options: ['id', 'email', 'loginName'],
90
- runsWhen: (args) => args.options.id || args.options.loginName || args.options.email
147
+ options: ['id', 'email', 'loginName', 'userName', 'entraGroupId', 'entraGroupName'],
148
+ runsWhen: (args) => args.options.id || args.options.email || args.options.loginName || args.options.userName || args.options.entraGroupId || args.options.entraGroupName
91
149
  });
92
150
  };
93
151
  export default new SpoUserGetCommand();
@@ -92,6 +92,7 @@ export default {
92
92
  FOLDER_LIST: `${prefix} folder list`,
93
93
  FOLDER_MOVE: `${prefix} folder move`,
94
94
  FOLDER_REMOVE: `${prefix} folder remove`,
95
+ FOLDER_RENAME: `${prefix} folder rename`,
95
96
  FOLDER_SET: `${prefix} folder set`,
96
97
  FOLDER_RETENTIONLABEL_ENSURE: `${prefix} folder retentionlabel ensure`,
97
98
  FOLDER_RETENTIONLABEL_REMOVE: `${prefix} folder retentionlabel remove`,
@@ -99,8 +100,11 @@ export default {
99
100
  FOLDER_ROLEASSIGNMENT_ADD: `${prefix} folder roleassignment add`,
100
101
  FOLDER_ROLEINHERITANCE_BREAK: `${prefix} folder roleinheritance break`,
101
102
  FOLDER_ROLEINHERITANCE_RESET: `${prefix} folder roleinheritance reset`,
103
+ FOLDER_SHARINGLINK_ADD: `${prefix} folder sharinglink add`,
104
+ FOLDER_SHARINGLINK_CLEAR: `${prefix} folder sharinglink clear`,
102
105
  FOLDER_SHARINGLINK_GET: `${prefix} folder sharinglink get`,
103
106
  FOLDER_SHARINGLINK_LIST: `${prefix} folder sharinglink list`,
107
+ FOLDER_SHARINGLINK_REMOVE: `${prefix} folder sharinglink remove`,
104
108
  GET: `${prefix} get`,
105
109
  GROUP_ADD: `${prefix} group add`,
106
110
  GROUP_GET: `${prefix} group get`,
@@ -241,7 +245,9 @@ export default {
241
245
  SERVICEPRINCIPAL_SET: `${prefix} serviceprincipal set`,
242
246
  SET: `${prefix} set`,
243
247
  SITE_ADD: `${prefix} site add`,
248
+ SITE_ADMIN_ADD: `${prefix} site admin add`,
244
249
  SITE_ADMIN_LIST: `${prefix} site admin list`,
250
+ SITE_ADMIN_REMOVE: `${prefix} site admin remove`,
245
251
  SITE_APPCATALOG_ADD: `${prefix} site appcatalog add`,
246
252
  SITE_APPCATALOG_LIST: `${prefix} site appcatalog list`,
247
253
  SITE_APPCATALOG_REMOVE: `${prefix} site appcatalog remove`,
@@ -267,6 +273,7 @@ export default {
267
273
  SITE_REMOVE: `${prefix} site remove`,
268
274
  SITE_RENAME: `${prefix} site rename`,
269
275
  SITE_SET: `${prefix} site set`,
276
+ SITE_SHARINGPERMISSION_SET: `${prefix} site sharingpermission set`,
270
277
  SITE_CHROME_SET: `${prefix} site chrome set`,
271
278
  SITEDESIGN_ADD: `${prefix} sitedesign add`,
272
279
  SITEDESIGN_APPLY: `${prefix} sitedesign apply`,
@@ -0,0 +1,56 @@
1
+ import config from '../../../../config.js';
2
+ import request from '../../../../request.js';
3
+ import { spo } from '../../../../utils/spo.js';
4
+ import SpoCommand from '../../../base/SpoCommand.js';
5
+ import commands from '../../commands.js';
6
+ class SppContentCenterListCommand extends SpoCommand {
7
+ get name() {
8
+ return commands.CONTENTCENTER_LIST;
9
+ }
10
+ get description() {
11
+ return 'Gets information about the SharePoint Premium content centers';
12
+ }
13
+ defaultProperties() {
14
+ return ['Title', 'Url'];
15
+ }
16
+ async commandAction(logger) {
17
+ try {
18
+ if (this.verbose) {
19
+ await logger.logToStderr(`Retrieving list of content centers...`);
20
+ }
21
+ const spoAdminUrl = await spo.getSpoAdminUrl(logger, this.debug);
22
+ const allContentCenters = await this.getContentCenters(spoAdminUrl, logger);
23
+ await logger.log(allContentCenters);
24
+ }
25
+ catch (err) {
26
+ this.handleRejectedODataJsonPromise(err);
27
+ }
28
+ }
29
+ async getContentCenters(spoAdminUrl, logger) {
30
+ const allSites = [];
31
+ let currentStartIndex = '0';
32
+ const res = await spo.ensureFormDigest(spoAdminUrl, logger, undefined, this.debug);
33
+ do {
34
+ const requestBody = `<Request AddExpandoFieldTypeSuffix="true" SchemaVersion="15.0.0.0" LibraryVersion="16.0.0.0" ApplicationName="${config.applicationName}" xmlns="http://schemas.microsoft.com/sharepoint/clientquery/2009"><Actions><ObjectPath Id="2" ObjectPathId="1" /><ObjectPath Id="4" ObjectPathId="3" /><Query Id="5" ObjectPathId="3"><Query SelectAllProperties="true"><Properties /></Query><ChildItemQuery SelectAllProperties="true"><Properties /></ChildItemQuery></Query></Actions><ObjectPaths><Constructor Id="1" TypeId="{268004ae-ef6b-4e9b-8425-127220d84719}" /><Method Id="3" ParentId="1" Name="GetSitePropertiesFromSharePointByFilters"><Parameters><Parameter TypeId="{b92aeee2-c92c-4b67-abcc-024e471bc140}"><Property Name="Filter" Type="String"></Property><Property Name="IncludeDetail" Type="Boolean">false</Property><Property Name="IncludePersonalSite" Type="Enum">0</Property><Property Name="StartIndex" Type="String">${currentStartIndex}</Property><Property Name="Template" Type="String">CONTENTCTR#0</Property></Parameter></Parameters></Method></ObjectPaths></Request>`;
35
+ const requestOptions = {
36
+ url: `${spoAdminUrl}/_vti_bin/client.svc/ProcessQuery`,
37
+ headers: {
38
+ 'X-RequestDigest': res.FormDigestValue
39
+ },
40
+ data: requestBody
41
+ };
42
+ const response = await request.post(requestOptions);
43
+ const json = JSON.parse(response);
44
+ const responseContent = json[0];
45
+ if (responseContent.ErrorInfo) {
46
+ throw responseContent.ErrorInfo.ErrorMessage;
47
+ }
48
+ const sites = json[json.length - 1];
49
+ allSites.push(...sites._Child_Items_);
50
+ currentStartIndex = sites.NextStartIndexFromSharePoint;
51
+ } while (currentStartIndex);
52
+ return allSites;
53
+ }
54
+ }
55
+ export default new SppContentCenterListCommand();
56
+ //# sourceMappingURL=contentcenter-list.js.map
@@ -0,0 +1,5 @@
1
+ const prefix = 'spp';
2
+ export default {
3
+ CONTENTCENTER_LIST: `${prefix} contentcenter list`
4
+ };
5
+ //# sourceMappingURL=commands.js.map
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=MeetingTranscript.js.map
@@ -0,0 +1,152 @@
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 _TeamsMeetingTranscriptGetCommand_instances, _TeamsMeetingTranscriptGetCommand_initTelemetry, _TeamsMeetingTranscriptGetCommand_initOptions, _TeamsMeetingTranscriptGetCommand_initValidators, _TeamsMeetingTranscriptGetCommand_initOptionSets;
7
+ import auth from '../../../../Auth.js';
8
+ import request from '../../../../request.js';
9
+ import { entraUser } from '../../../../utils/entraUser.js';
10
+ import { accessToken } from '../../../../utils/accessToken.js';
11
+ import { validation } from '../../../../utils/validation.js';
12
+ import GraphCommand from '../../../base/GraphCommand.js';
13
+ import commands from '../../commands.js';
14
+ import fs from 'fs';
15
+ import path from 'path';
16
+ class TeamsMeetingTranscriptGetCommand extends GraphCommand {
17
+ get name() {
18
+ return commands.MEETING_TRANSCRIPT_GET;
19
+ }
20
+ get description() {
21
+ return 'Downloads a transcript for a given meeting';
22
+ }
23
+ constructor() {
24
+ super();
25
+ _TeamsMeetingTranscriptGetCommand_instances.add(this);
26
+ __classPrivateFieldGet(this, _TeamsMeetingTranscriptGetCommand_instances, "m", _TeamsMeetingTranscriptGetCommand_initTelemetry).call(this);
27
+ __classPrivateFieldGet(this, _TeamsMeetingTranscriptGetCommand_instances, "m", _TeamsMeetingTranscriptGetCommand_initOptions).call(this);
28
+ __classPrivateFieldGet(this, _TeamsMeetingTranscriptGetCommand_instances, "m", _TeamsMeetingTranscriptGetCommand_initValidators).call(this);
29
+ __classPrivateFieldGet(this, _TeamsMeetingTranscriptGetCommand_instances, "m", _TeamsMeetingTranscriptGetCommand_initOptionSets).call(this);
30
+ }
31
+ async commandAction(logger, args) {
32
+ try {
33
+ const isAppOnlyAccessToken = accessToken.isAppOnlyAccessToken(auth.connection.accessTokens[this.resource].accessToken);
34
+ if (this.verbose) {
35
+ await logger.logToStderr(`Retrieving transcript for the given meeting...`);
36
+ }
37
+ let requestUrl = `${this.resource}/beta/`;
38
+ if (isAppOnlyAccessToken) {
39
+ if (!args.options.userId && !args.options.userName && !args.options.email) {
40
+ throw `The option 'userId', 'userName' or 'email' is required when retrieving meeting transcript using app only permissions`;
41
+ }
42
+ requestUrl += 'users/';
43
+ if (args.options.userId) {
44
+ requestUrl += args.options.userId;
45
+ }
46
+ else if (args.options.userName) {
47
+ requestUrl += args.options.userName;
48
+ }
49
+ else if (args.options.email) {
50
+ if (this.verbose) {
51
+ await logger.logToStderr(`Getting user ID for user with email '${args.options.email}'.`);
52
+ }
53
+ const userId = await entraUser.getUserIdByEmail(args.options.email);
54
+ requestUrl += userId;
55
+ }
56
+ }
57
+ else {
58
+ if (args.options.userId || args.options.userName || args.options.email) {
59
+ throw `The options 'userId', 'userName', and 'email' cannot be used while retrieving meeting transcript using delegated permissions`;
60
+ }
61
+ requestUrl += `me`;
62
+ }
63
+ requestUrl += `/onlineMeetings/${args.options.meetingId}/transcripts/${args.options.id}`;
64
+ if (args.options.outputFile) {
65
+ requestUrl += '/content?$format=text/vtt';
66
+ }
67
+ const requestOptions = {
68
+ url: requestUrl,
69
+ headers: {
70
+ accept: 'application/json;odata.metadata=none'
71
+ },
72
+ responseType: args.options.outputFile ? 'stream' : 'json'
73
+ };
74
+ const meetingTranscript = await request.get(requestOptions);
75
+ if (meetingTranscript) {
76
+ if (args.options.outputFile) {
77
+ // Not possible to use async/await for this promise
78
+ await new Promise((resolve, reject) => {
79
+ const writer = fs.createWriteStream(args.options.outputFile);
80
+ meetingTranscript.data.pipe(writer);
81
+ writer.on('error', err => {
82
+ reject(err);
83
+ });
84
+ writer.on('close', async () => {
85
+ const filePath = args.options.outputFile;
86
+ if (this.verbose) {
87
+ await logger.logToStderr(`File saved to path ${filePath}`);
88
+ }
89
+ return resolve();
90
+ });
91
+ });
92
+ }
93
+ else {
94
+ await logger.log(meetingTranscript);
95
+ }
96
+ }
97
+ else {
98
+ throw `The specified meeting transcript was not found`;
99
+ }
100
+ }
101
+ catch (err) {
102
+ this.handleRejectedODataJsonPromise(err);
103
+ }
104
+ }
105
+ }
106
+ _TeamsMeetingTranscriptGetCommand_instances = new WeakSet(), _TeamsMeetingTranscriptGetCommand_initTelemetry = function _TeamsMeetingTranscriptGetCommand_initTelemetry() {
107
+ this.telemetry.push((args) => {
108
+ Object.assign(this.telemetryProperties, {
109
+ userId: typeof args.options.userId !== 'undefined',
110
+ userName: typeof args.options.userName !== 'undefined',
111
+ email: typeof args.options.email !== 'undefined',
112
+ outputFile: typeof args.options.outputFile !== 'undefined'
113
+ });
114
+ });
115
+ }, _TeamsMeetingTranscriptGetCommand_initOptions = function _TeamsMeetingTranscriptGetCommand_initOptions() {
116
+ this.options.unshift({
117
+ option: '-u, --userId [userId]'
118
+ }, {
119
+ option: '-n, --userName [userName]'
120
+ }, {
121
+ option: '--email [email]'
122
+ }, {
123
+ option: '-m, --meetingId <meetingId>'
124
+ }, {
125
+ option: '-i, --id <id>'
126
+ }, {
127
+ option: '-f, --outputFile [outputFile]'
128
+ });
129
+ }, _TeamsMeetingTranscriptGetCommand_initValidators = function _TeamsMeetingTranscriptGetCommand_initValidators() {
130
+ this.validators.push(async (args) => {
131
+ if (args.options.userId && !validation.isValidGuid(args.options.userId)) {
132
+ return `${args.options.userId} is not a valid Guid`;
133
+ }
134
+ if (args.options.userName && !validation.isValidUserPrincipalName(args.options.userName)) {
135
+ return `${args.options.userName} is not a valid user principal name (UPN)`;
136
+ }
137
+ if (args.options.email && !validation.isValidUserPrincipalName(args.options.email)) {
138
+ return `${args.options.email} is not a valid email`;
139
+ }
140
+ if (args.options.outputFile && !fs.existsSync(path.dirname(args.options.outputFile))) {
141
+ return 'Specified path where to save the file does not exits';
142
+ }
143
+ return true;
144
+ });
145
+ }, _TeamsMeetingTranscriptGetCommand_initOptionSets = function _TeamsMeetingTranscriptGetCommand_initOptionSets() {
146
+ this.optionSets.push({
147
+ options: ['userId', 'userName', 'email'],
148
+ runsWhen: (args) => args.options.userId || args.options.userName || args.options.email
149
+ });
150
+ };
151
+ export default new TeamsMeetingTranscriptGetCommand();
152
+ //# sourceMappingURL=meeting-transcript-get.js.map
@@ -32,6 +32,7 @@ export default {
32
32
  MEETING_LIST: `${prefix} meeting list`,
33
33
  MEETING_ATTENDANCEREPORT_GET: `${prefix} meeting attendancereport get`,
34
34
  MEETING_ATTENDANCEREPORT_LIST: `${prefix} meeting attendancereport list`,
35
+ MEETING_TRANSCRIPT_GET: `${prefix} meeting transcript get`,
35
36
  MEETING_TRANSCRIPT_LIST: `${prefix} meeting transcript list`,
36
37
  MEMBERSETTINGS_LIST: `${prefix} membersettings list`,
37
38
  MEMBERSETTINGS_SET: `${prefix} membersettings set`,
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=Community.js.map
@@ -0,0 +1,28 @@
1
+ import { odata } from '../../../../utils/odata.js';
2
+ import GraphCommand from '../../../base/GraphCommand.js';
3
+ import commands from '../../commands.js';
4
+ class VivaEngageCommunityListCommand extends GraphCommand {
5
+ get name() {
6
+ return commands.ENGAGE_COMMUNITY_LIST;
7
+ }
8
+ get description() {
9
+ return 'Lists all Viva Engage communities';
10
+ }
11
+ defaultProperties() {
12
+ return ['id', 'displayName', 'privacy'];
13
+ }
14
+ async commandAction(logger) {
15
+ if (this.verbose) {
16
+ await logger.logToStderr('Getting all Viva Engage communities...');
17
+ }
18
+ try {
19
+ const results = await odata.getAllItems(`${this.resource}/v1.0/employeeExperience/communities`);
20
+ await logger.log(results);
21
+ }
22
+ catch (err) {
23
+ this.handleRejectedODataJsonPromise(err);
24
+ }
25
+ }
26
+ }
27
+ export default new VivaEngageCommunityListCommand();
28
+ //# sourceMappingURL=engage-community-list.js.map