@pnp/cli-microsoft365 7.5.0-beta.d4d820f → 7.5.0

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 (178) hide show
  1. package/.devcontainer/Dockerfile +2 -2
  2. package/.eslintrc.cjs +6 -2
  3. package/.mocharc.json +3 -5
  4. package/Dockerfile +2 -5
  5. package/README.md +2 -2
  6. package/allCommands.json +1 -1
  7. package/allCommandsFull.json +1 -1
  8. package/dist/Auth.js +171 -69
  9. package/dist/AuthServer.js +3 -3
  10. package/dist/Command.js +8 -5
  11. package/dist/auth/FileTokenStorage.js +4 -1
  12. package/dist/m365/base/AppCommand.js +2 -2
  13. package/dist/m365/base/PowerAppsCommand.js +2 -2
  14. package/dist/m365/base/PowerAutomateCommand.js +2 -2
  15. package/dist/m365/base/PowerPlatformCommand.js +2 -2
  16. package/dist/m365/base/SpoCommand.js +3 -3
  17. package/dist/m365/base/{YammerCommand.js → VivaEngageCommand.js} +2 -2
  18. package/dist/m365/cli/commands/cli-consent.js +5 -3
  19. package/dist/m365/cli/commands/cli-doctor.js +5 -5
  20. package/dist/m365/commands/ConnectionDetails.js +2 -0
  21. package/dist/m365/commands/login.js +26 -48
  22. package/dist/m365/commands/logout.js +2 -2
  23. package/dist/m365/commands/request.js +2 -2
  24. package/dist/m365/commands/status.js +15 -23
  25. package/dist/m365/connection/commands/connection-list.js +47 -0
  26. package/dist/m365/connection/commands/connection-remove.js +67 -0
  27. package/dist/m365/connection/commands/connection-set.js +56 -0
  28. package/dist/m365/connection/commands/connection-use.js +51 -0
  29. package/dist/m365/connection/commands.js +8 -0
  30. package/dist/m365/entra/aadCommands.js +3 -0
  31. package/dist/m365/entra/commands/administrativeunit/administrativeunit-member-remove.js +153 -0
  32. package/dist/m365/entra/commands/app/app-add.js +2 -2
  33. package/dist/m365/entra/commands/app/app-get.js +1 -1
  34. package/dist/m365/entra/commands/app/app-list.js +1 -1
  35. package/dist/m365/entra/commands/app/app-permission-add.js +1 -1
  36. package/dist/m365/entra/commands/app/app-permission-list.js +182 -0
  37. package/dist/m365/entra/commands/app/app-remove.js +1 -1
  38. package/dist/m365/entra/commands/app/app-role-add.js +1 -1
  39. package/dist/m365/entra/commands/app/app-role-list.js +1 -1
  40. package/dist/m365/entra/commands/app/app-role-remove.js +1 -1
  41. package/dist/m365/entra/commands/app/app-set.js +1 -1
  42. package/dist/m365/entra/commands/{sp/sp-add.js → enterpriseapp/enterpriseapp-add.js} +18 -18
  43. package/dist/m365/entra/commands/{sp/sp-get.js → enterpriseapp/enterpriseapp-get.js} +19 -19
  44. package/dist/m365/entra/commands/{sp/sp-list.js → enterpriseapp/enterpriseapp-list.js} +13 -13
  45. package/dist/m365/entra/commands/group/group-add.js +224 -0
  46. package/dist/m365/entra/commands/group/group-user-add.js +145 -0
  47. package/dist/m365/entra/commands/m365group/m365group-report-activitygroupcounts.js +1 -1
  48. package/dist/m365/entra/commands/user/user-get.js +38 -38
  49. package/dist/m365/entra/commands/user/user-license-list.js +1 -1
  50. package/dist/m365/entra/commands/user/user-registrationdetails-list.js +224 -0
  51. package/dist/m365/entra/commands/user/user-set.js +2 -2
  52. package/dist/m365/entra/commands.js +17 -0
  53. package/dist/m365/external/commands/connection/connection-doctor.js +2 -1
  54. package/dist/m365/file/commands/convert/convert-pdf.js +1 -1
  55. package/dist/m365/file/commands/file-copy.js +151 -0
  56. package/dist/m365/file/commands.js +1 -0
  57. package/dist/m365/outlook/commands/mail/mail-send.js +1 -1
  58. package/dist/m365/outlook/commands/message/message-get.js +1 -1
  59. package/dist/m365/pa/commands/app/app-permission-ensure.js +1 -1
  60. package/dist/m365/pa/commands/app/app-permission-remove.js +1 -1
  61. package/dist/m365/planner/commands/roster/roster-plan-list.js +1 -1
  62. package/dist/m365/purview/commands/auditlog/auditlog-list.js +1 -1
  63. package/dist/m365/purview/commands/sensitivitylabel/sensitivitylabel-get.js +1 -1
  64. package/dist/m365/purview/commands/sensitivitylabel/sensitivitylabel-list.js +1 -1
  65. package/dist/m365/purview/commands/sensitivitylabel/sensitivitylabel-policysettings-list.js +1 -1
  66. package/dist/m365/spfx/commands/project/DeployWorkflow.js +4 -3
  67. package/dist/m365/spo/commands/spo-get.js +1 -1
  68. package/dist/m365/spo/commands/spo-search.js +52 -22
  69. package/dist/m365/spo/commands/spo-set.js +1 -1
  70. package/dist/m365/teams/commands/chat/chat-get.js +1 -1
  71. package/dist/m365/teams/commands/chat/chat-list.js +1 -1
  72. package/dist/m365/teams/commands/chat/chat-message-send.js +1 -1
  73. package/dist/m365/teams/commands/meeting/meeting-add.js +1 -1
  74. package/dist/m365/teams/commands/meeting/meeting-attendancereport-list.js +1 -1
  75. package/dist/m365/teams/commands/meeting/meeting-get.js +1 -1
  76. package/dist/m365/teams/commands/meeting/meeting-list.js +2 -2
  77. package/dist/m365/teams/commands/meeting/meeting-transcript-list.js +1 -1
  78. package/dist/m365/tenant/commands/id/id-get.js +1 -1
  79. package/dist/m365/tenant/commands/info/info-get.js +1 -1
  80. package/dist/m365/util/commands/accesstoken/accesstoken-get.js +3 -3
  81. package/dist/m365/{yammer/commands/group/group-list.js → viva/commands/engage/engage-group-list.js} +19 -14
  82. package/dist/m365/{yammer/commands/group/group-user-add.js → viva/commands/engage/engage-group-user-add.js} +19 -14
  83. package/dist/m365/{yammer/commands/group/group-user-remove.js → viva/commands/engage/engage-group-user-remove.js} +19 -14
  84. package/dist/m365/{yammer/commands/message/message-add.js → viva/commands/engage/engage-message-add.js} +19 -14
  85. package/dist/m365/{yammer/commands/message/message-get.js → viva/commands/engage/engage-message-get.js} +17 -12
  86. package/dist/m365/{yammer/commands/message/message-like-set.js → viva/commands/engage/engage-message-like-set.js} +21 -16
  87. package/dist/m365/{yammer/commands/message/message-list.js → viva/commands/engage/engage-message-list.js} +21 -16
  88. package/dist/m365/{yammer/commands/message/message-remove.js → viva/commands/engage/engage-message-remove.js} +20 -15
  89. package/dist/m365/{yammer/commands/network/network-list.js → viva/commands/engage/engage-network-list.js} +16 -11
  90. package/dist/m365/viva/commands/engage/engage-report-activitycounts.js +23 -0
  91. package/dist/m365/viva/commands/engage/engage-report-activityusercounts.js +23 -0
  92. package/dist/m365/viva/commands/engage/engage-report-activityuserdetail.js +23 -0
  93. package/dist/m365/viva/commands/engage/engage-report-deviceusagedistributionusercounts.js +23 -0
  94. package/dist/m365/viva/commands/engage/engage-report-deviceusageusercounts.js +23 -0
  95. package/dist/m365/viva/commands/engage/engage-report-deviceusageuserdetail.js +23 -0
  96. package/dist/m365/viva/commands/engage/engage-report-groupsactivitycounts.js +23 -0
  97. package/dist/m365/viva/commands/engage/engage-report-groupsactivitydetail.js +23 -0
  98. package/dist/m365/viva/commands/engage/engage-report-groupsactivitygroupcounts.js +23 -0
  99. package/dist/m365/{yammer/commands/yammer-search.js → viva/commands/engage/engage-search.js} +23 -18
  100. package/dist/m365/{yammer/commands/user/user-get.js → viva/commands/engage/engage-user-get.js} +18 -13
  101. package/dist/m365/{yammer/commands/user/user-list.js → viva/commands/engage/engage-user-list.js} +18 -13
  102. package/dist/m365/{yammer/commands.js → viva/commands/engage/yammerCommands.js} +1 -1
  103. package/dist/m365/viva/commands.js +22 -1
  104. package/dist/request.js +1 -1
  105. package/dist/utils/entraUser.js +36 -0
  106. package/dist/utils/spo.js +36 -14
  107. package/dist/utils/urlUtil.js +31 -0
  108. package/dist/utils/validation.js +8 -0
  109. package/docs/docs/cmd/cli/cli-consent.mdx +9 -9
  110. package/docs/docs/cmd/connection/connection-list.mdx +100 -0
  111. package/docs/docs/cmd/connection/connection-remove.mdx +45 -0
  112. package/docs/docs/cmd/connection/connection-set.mdx +39 -0
  113. package/docs/docs/cmd/connection/connection-use.mdx +98 -0
  114. package/docs/docs/cmd/entra/administrativeunit/administrativeunit-member-add.mdx +5 -3
  115. package/docs/docs/cmd/entra/administrativeunit/administrativeunit-member-remove.mdx +107 -0
  116. package/docs/docs/cmd/entra/app/app-add.mdx +2 -1
  117. package/docs/docs/cmd/entra/app/app-get.mdx +1 -0
  118. package/docs/docs/cmd/entra/app/app-list.mdx +1 -0
  119. package/docs/docs/cmd/entra/app/app-permission-add.mdx +1 -0
  120. package/docs/docs/cmd/entra/app/app-permission-list.mdx +105 -0
  121. package/docs/docs/cmd/entra/app/app-remove.mdx +1 -0
  122. package/docs/docs/cmd/entra/app/app-role-add.mdx +1 -0
  123. package/docs/docs/cmd/entra/app/app-role-list.mdx +1 -0
  124. package/docs/docs/cmd/entra/app/app-role-remove.mdx +1 -0
  125. package/docs/docs/cmd/entra/app/app-set.mdx +1 -0
  126. package/docs/docs/cmd/entra/{sp/sp-add.mdx → enterpriseapp/enterpriseapp-add.mdx} +16 -15
  127. package/docs/docs/cmd/entra/{sp/sp-get.mdx → enterpriseapp/enterpriseapp-get.mdx} +15 -14
  128. package/docs/docs/cmd/entra/{sp/sp-list.mdx → enterpriseapp/enterpriseapp-list.mdx} +22 -21
  129. package/docs/docs/cmd/entra/group/group-add.mdx +231 -0
  130. package/docs/docs/cmd/entra/group/group-user-add.mdx +62 -0
  131. package/docs/docs/cmd/entra/m365group/m365group-report-activitygroupcounts.mdx +1 -1
  132. package/docs/docs/cmd/entra/oauth2grant/oauth2grant-add.mdx +3 -3
  133. package/docs/docs/cmd/entra/oauth2grant/oauth2grant-list.mdx +1 -1
  134. package/docs/docs/cmd/entra/user/user-registrationdetails-list.mdx +246 -0
  135. package/docs/docs/cmd/external/item/item-add.mdx +1 -1
  136. package/docs/docs/cmd/file/convert/convert-pdf.mdx +4 -0
  137. package/docs/docs/cmd/file/file-add.mdx +4 -0
  138. package/docs/docs/cmd/file/file-copy.mdx +68 -0
  139. package/docs/docs/cmd/file/file-list.mdx +100 -0
  140. package/docs/docs/cmd/login.mdx +15 -0
  141. package/docs/docs/cmd/setup.mdx +4 -0
  142. package/docs/docs/cmd/spo/list/list-webhook-set.mdx +1 -1
  143. package/docs/docs/cmd/spo/spo-search.mdx +6 -2
  144. package/docs/docs/cmd/spo/theme/theme-set.mdx +14 -2
  145. package/docs/docs/cmd/{yammer/group/group-list.mdx → viva/engage/engage-group-list.mdx} +13 -13
  146. package/docs/docs/cmd/{yammer/group/group-user-add.mdx → viva/engage/engage-group-user-add.mdx} +7 -7
  147. package/docs/docs/cmd/{yammer/group/group-user-remove.mdx → viva/engage/engage-group-user-remove.mdx} +10 -10
  148. package/docs/docs/cmd/{yammer/message/message-add.mdx → viva/engage/engage-message-add.mdx} +12 -13
  149. package/docs/docs/cmd/{yammer/message/message-get.mdx → viva/engage/engage-message-get.mdx} +10 -10
  150. package/docs/docs/cmd/{yammer/message/message-like-set.mdx → viva/engage/engage-message-like-set.mdx} +10 -10
  151. package/docs/docs/cmd/{yammer/message/message-list.mdx → viva/engage/engage-message-list.mdx} +21 -21
  152. package/docs/docs/cmd/{yammer/message/message-remove.mdx → viva/engage/engage-message-remove.mdx} +10 -10
  153. package/docs/docs/cmd/{yammer/network/network-list.mdx → viva/engage/engage-network-list.mdx} +6 -6
  154. package/docs/docs/cmd/{yammer/report/report-activitycounts.mdx → viva/engage/engage-report-activitycounts.mdx} +9 -9
  155. package/docs/docs/cmd/{yammer/report/report-activityusercounts.mdx → viva/engage/engage-report-activityusercounts.mdx} +9 -9
  156. package/docs/docs/cmd/{yammer/report/report-activityuserdetail.mdx → viva/engage/engage-report-activityuserdetail.mdx} +11 -12
  157. package/docs/docs/cmd/{yammer/report/report-deviceusagedistributionusercounts.mdx → viva/engage/engage-report-deviceusagedistributionusercounts.mdx} +5 -5
  158. package/docs/docs/cmd/{yammer/report/report-deviceusageusercounts.mdx → viva/engage/engage-report-deviceusageusercounts.mdx} +5 -5
  159. package/docs/docs/cmd/{yammer/report/report-deviceusageuserdetail.mdx → viva/engage/engage-report-deviceusageuserdetail.mdx} +11 -11
  160. package/docs/docs/cmd/{yammer/report/report-groupsactivitycounts.mdx → viva/engage/engage-report-groupsactivitycounts.mdx} +9 -9
  161. package/docs/docs/cmd/{yammer/report/report-groupsactivitydetail.mdx → viva/engage/engage-report-groupsactivitydetail.mdx} +11 -11
  162. package/docs/docs/cmd/{yammer/report/report-groupsactivitygroupcounts.mdx → viva/engage/engage-report-groupsactivitygroupcounts.mdx} +5 -5
  163. package/docs/docs/cmd/{yammer/yammer-search.mdx → viva/engage/engage-search.mdx} +10 -10
  164. package/docs/docs/cmd/{yammer/user/user-get.mdx → viva/engage/engage-user-get.mdx} +8 -8
  165. package/docs/docs/cmd/{yammer/user/user-list.mdx → viva/engage/engage-user-list.mdx} +11 -11
  166. package/npm-shrinkwrap.json +228 -166
  167. package/package.json +21 -20
  168. package/dist/m365/base/AzmgmtCommand.js +0 -18
  169. package/dist/m365/base/AzmgmtItemsListCommand.js +0 -41
  170. package/dist/m365/yammer/commands/report/report-activitycounts.js +0 -15
  171. package/dist/m365/yammer/commands/report/report-activityusercounts.js +0 -15
  172. package/dist/m365/yammer/commands/report/report-activityuserdetail.js +0 -15
  173. package/dist/m365/yammer/commands/report/report-deviceusagedistributionusercounts.js +0 -15
  174. package/dist/m365/yammer/commands/report/report-deviceusageusercounts.js +0 -15
  175. package/dist/m365/yammer/commands/report/report-deviceusageuserdetail.js +0 -15
  176. package/dist/m365/yammer/commands/report/report-groupsactivitycounts.js +0 -15
  177. package/dist/m365/yammer/commands/report/report-groupsactivitydetail.js +0 -15
  178. package/dist/m365/yammer/commands/report/report-groupsactivitygroupcounts.js +0 -15
@@ -0,0 +1,224 @@
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 _EntraUserRegistrationDetailsListCommand_instances, _EntraUserRegistrationDetailsListCommand_initTelemetry, _EntraUserRegistrationDetailsListCommand_initOptions, _EntraUserRegistrationDetailsListCommand_initValidators;
7
+ import GraphCommand from '../../../base/GraphCommand.js';
8
+ import commands from '../../commands.js';
9
+ import aadCommands from '../../aadCommands.js';
10
+ import { odata } from '../../../../utils/odata.js';
11
+ import { entraUser } from '../../../../utils/entraUser.js';
12
+ import { validation } from '../../../../utils/validation.js';
13
+ import { formatting } from '../../../../utils/formatting.js';
14
+ const authenticationMethods = ['push', 'oath', 'voiceMobile', 'voiceAlternateMobile', 'voiceOffice', 'sms', 'none'];
15
+ const methodsRegistered = ['mobilePhone', 'email', 'fido2', 'microsoftAuthenticatorPush', 'softwareOneTimePasscode'];
16
+ class EntraUserRegistrationDetailsListCommand extends GraphCommand {
17
+ get name() {
18
+ return commands.USER_REGISTRATIONDETAILS_LIST;
19
+ }
20
+ get description() {
21
+ return 'Retrieves a list of the authentication methods registered for users';
22
+ }
23
+ alias() {
24
+ return [aadCommands.USER_REGISTRATIONDETAILS_LIST];
25
+ }
26
+ defaultProperties() {
27
+ return ['userPrincipalName', 'methodsRegistered', 'lastUpdatedDateTime'];
28
+ }
29
+ constructor() {
30
+ super();
31
+ _EntraUserRegistrationDetailsListCommand_instances.add(this);
32
+ __classPrivateFieldGet(this, _EntraUserRegistrationDetailsListCommand_instances, "m", _EntraUserRegistrationDetailsListCommand_initTelemetry).call(this);
33
+ __classPrivateFieldGet(this, _EntraUserRegistrationDetailsListCommand_instances, "m", _EntraUserRegistrationDetailsListCommand_initOptions).call(this);
34
+ __classPrivateFieldGet(this, _EntraUserRegistrationDetailsListCommand_instances, "m", _EntraUserRegistrationDetailsListCommand_initValidators).call(this);
35
+ }
36
+ async commandAction(logger, args) {
37
+ try {
38
+ let userUpns = [];
39
+ if (args.options.userIds) {
40
+ const ids = args.options.userIds.split(',').map(m => m.trim());
41
+ userUpns = await Promise.all(ids.map(id => entraUser.getUpnByUserId(id)));
42
+ }
43
+ const requestUrl = this.getRequestUrl(args.options, userUpns);
44
+ const result = await odata.getAllItems(requestUrl);
45
+ await logger.log(result);
46
+ }
47
+ catch (err) {
48
+ this.handleRejectedODataJsonPromise(err);
49
+ }
50
+ }
51
+ getRequestUrl(options, userUpns) {
52
+ const queryParameters = [];
53
+ if (options.properties) {
54
+ queryParameters.push(`$select=${options.properties}`);
55
+ }
56
+ const filters = [];
57
+ if (options.isAdmin !== undefined) {
58
+ filters.push(`isAdmin eq ${options.isAdmin}`);
59
+ }
60
+ if (options.isMfaCapable !== undefined) {
61
+ filters.push(`isMfaCapable eq ${options.isMfaCapable}`);
62
+ }
63
+ if (options.isMfaRegistered !== undefined) {
64
+ filters.push(`isMfaRegistered eq ${options.isMfaRegistered}`);
65
+ }
66
+ if (options.isPasswordlessCapable !== undefined) {
67
+ filters.push(`isPasswordlessCapable eq ${options.isPasswordlessCapable}`);
68
+ }
69
+ if (options.isSelfServicePasswordResetCapable !== undefined) {
70
+ filters.push(`isSelfServicePasswordResetCapable eq ${options.isSelfServicePasswordResetCapable}`);
71
+ }
72
+ if (options.isSelfServicePasswordResetEnabled !== undefined) {
73
+ filters.push(`isSelfServicePasswordResetEnabled eq ${options.isSelfServicePasswordResetEnabled}`);
74
+ }
75
+ if (options.isSelfServicePasswordResetRegistered !== undefined) {
76
+ filters.push(`isSelfServicePasswordResetRegistered eq ${options.isSelfServicePasswordResetRegistered}`);
77
+ }
78
+ if (options.isSystemPreferredAuthenticationMethodEnabled !== undefined) {
79
+ filters.push(`isSystemPreferredAuthenticationMethodEnabled eq ${options.isSystemPreferredAuthenticationMethodEnabled}`);
80
+ }
81
+ const methodsRegistered = options.methodsRegistered?.split(',').map(method => `methodsRegistered/any(m:m eq '${method.trim()}')`);
82
+ const methodsRegisteredFilter = methodsRegistered?.join(' or ');
83
+ if (methodsRegisteredFilter) {
84
+ filters.push(`(${methodsRegisteredFilter})`);
85
+ }
86
+ const systemPreferredAuthenticationMethods = options.systemPreferredAuthenticationMethods?.split(',').map(method => `systemPreferredAuthenticationMethods/any(m:m eq '${method.trim()}')`);
87
+ const systemPreferredAuthenticationMethodsFilter = systemPreferredAuthenticationMethods?.join(' or ');
88
+ if (systemPreferredAuthenticationMethodsFilter) {
89
+ filters.push(`(${systemPreferredAuthenticationMethodsFilter})`);
90
+ }
91
+ const userUPNs = [];
92
+ if (userUpns.length > 0) {
93
+ userUpns.forEach(upn => {
94
+ userUPNs.push(`userPrincipalName eq '${formatting.encodeQueryParameter(upn)}'`);
95
+ });
96
+ }
97
+ if (options.userPrincipalNames) {
98
+ const upns = options.userPrincipalNames.split(',').map(m => m.trim());
99
+ upns.forEach(upn => {
100
+ userUPNs.push(`userPrincipalName eq '${formatting.encodeQueryParameter(upn)}'`);
101
+ });
102
+ }
103
+ if (userUPNs.length > 0) {
104
+ filters.push(`(${userUPNs.join(' or ')})`);
105
+ }
106
+ const userPreferredMethodForSecondaryAuthentication = options.userPreferredMethodForSecondaryAuthentication?.split(',').map(method => `userPreferredMethodForSecondaryAuthentication eq '${method.trim()}'`);
107
+ const userPreferredMethodForSecondaryAuthenticationFilter = userPreferredMethodForSecondaryAuthentication?.join(' or ');
108
+ if (userPreferredMethodForSecondaryAuthenticationFilter) {
109
+ filters.push(`(${userPreferredMethodForSecondaryAuthenticationFilter})`);
110
+ }
111
+ if (options.userType) {
112
+ filters.push(`userType eq '${options.userType}'`);
113
+ }
114
+ if (filters.length > 0) {
115
+ queryParameters.push(`$filter=${filters.join(' and ')}`);
116
+ }
117
+ const queryString = queryParameters.length > 0
118
+ ? `?${queryParameters.join('&')}`
119
+ : '';
120
+ return `${this.resource}/v1.0/reports/authenticationMethods/userRegistrationDetails${queryString}`;
121
+ }
122
+ }
123
+ _EntraUserRegistrationDetailsListCommand_instances = new WeakSet(), _EntraUserRegistrationDetailsListCommand_initTelemetry = function _EntraUserRegistrationDetailsListCommand_initTelemetry() {
124
+ this.telemetry.push((args) => {
125
+ Object.assign(this.telemetryProperties, {
126
+ isAdmin: !!args.options.isAdmin,
127
+ userType: typeof args.options.userType !== 'undefined',
128
+ userPreferredMethodForSecondaryAuthentication: typeof args.options.userPreferredMethodForSecondaryAuthentication !== 'undefined',
129
+ systemPreferredAuthenticationMethods: typeof args.options.systemPreferredAuthenticationMethods !== 'undefined',
130
+ isSelfServicePasswordResetRegistered: !!args.options.isSelfServicePasswordResetRegistered,
131
+ isSelfServicePasswordResetEnabled: !!args.options.isSelfServicePasswordResetEnabled,
132
+ isSelfServicePasswordResetCapable: !!args.options.isSelfServicePasswordResetCapable,
133
+ isMfaRegistered: !!args.options.isMfaRegistered,
134
+ isMfaCapable: !!args.options.isMfaCapable,
135
+ isPasswordlessCapable: !!args.options.isPasswordlessCapable,
136
+ isSystemPreferredAuthenticationMethodEnabled: !!args.options.isSystemPreferredAuthenticationMethodEnabled,
137
+ methodsRegistered: typeof args.options.methodsRegistered !== 'undefined',
138
+ userIds: typeof args.options.userIds !== 'undefined',
139
+ userPrincipalNames: typeof args.options.userPrincipalNames !== 'undefined',
140
+ properties: typeof args.options.properties !== 'undefined'
141
+ });
142
+ });
143
+ }, _EntraUserRegistrationDetailsListCommand_initOptions = function _EntraUserRegistrationDetailsListCommand_initOptions() {
144
+ this.options.unshift({
145
+ option: '--isAdmin [isAdmin]'
146
+ }, {
147
+ option: '--userType [userType]',
148
+ autocomplete: ['member', 'guest']
149
+ }, {
150
+ option: '--userPreferredMethodForSecondaryAuthentication [userPreferredMethodForSecondaryAuthentication ]',
151
+ autocomplete: authenticationMethods
152
+ }, {
153
+ option: '--systemPreferredAuthenticationMethods [systemPreferredAuthenticationMethods ]',
154
+ autocomplete: authenticationMethods
155
+ }, {
156
+ option: '--isSelfServicePasswordResetRegistered [isSelfServicePasswordResetRegistered]'
157
+ }, {
158
+ option: '--isSelfServicePasswordResetEnabled [isSelfServicePasswordResetEnabled]'
159
+ }, {
160
+ option: '--isSelfServicePasswordResetCapable [isSelfServicePasswordResetCapable]'
161
+ }, {
162
+ option: '--isMfaRegistered [isMfaRegistered]'
163
+ }, {
164
+ option: '--isMfaCapable [isMfaCapable]'
165
+ }, {
166
+ option: '--isPasswordlessCapable [isPasswordlessCapable]'
167
+ }, {
168
+ option: '--isSystemPreferredAuthenticationMethodEnabled [isSystemPreferredAuthenticationMethodEnabled]'
169
+ }, {
170
+ option: '--methodsRegistered [methodsRegistered]',
171
+ autocomplete: methodsRegistered
172
+ }, {
173
+ option: '--userIds [userIds]'
174
+ }, {
175
+ option: '--userPrincipalNames [userPrincipalNames]'
176
+ }, {
177
+ option: '-p, --properties [properties]'
178
+ });
179
+ }, _EntraUserRegistrationDetailsListCommand_initValidators = function _EntraUserRegistrationDetailsListCommand_initValidators() {
180
+ this.validators.push(async (args) => {
181
+ if (args.options.userType) {
182
+ if (['member', 'guest'].every(type => type !== args.options.userType)) {
183
+ return `'${args.options.userType}' is not a valid userType value. Allowed values member, guest`;
184
+ }
185
+ }
186
+ if (args.options.userPreferredMethodForSecondaryAuthentication) {
187
+ const methods = args.options.userPreferredMethodForSecondaryAuthentication.split(',').map(m => m.trim());
188
+ const invalidMethods = methods.filter(m => !authenticationMethods.includes(m));
189
+ if (invalidMethods.length > 0) {
190
+ return `'${args.options.userPreferredMethodForSecondaryAuthentication}' is not a valid userPreferredMethodForSecondaryAuthentication value. Invalid values: ${invalidMethods.join(',')}. Allowed values ${authenticationMethods.join(', ')}`;
191
+ }
192
+ }
193
+ if (args.options.systemPreferredAuthenticationMethods) {
194
+ const methods = args.options.systemPreferredAuthenticationMethods.split(',').map(m => m.trim());
195
+ const invalidMethods = methods.filter(m => !authenticationMethods.includes(m));
196
+ if (invalidMethods.length > 0) {
197
+ return `'${args.options.systemPreferredAuthenticationMethods}' is not a valid systemPreferredAuthenticationMethods value. Invalid values: ${invalidMethods.join(',')}. Allowed values ${authenticationMethods.join(', ')}`;
198
+ }
199
+ }
200
+ if (args.options.methodsRegistered) {
201
+ const methods = args.options.methodsRegistered.split(',').map(m => m.trim());
202
+ const invalidMethods = methods.filter(m => !methodsRegistered.includes(m));
203
+ if (invalidMethods.length > 0) {
204
+ return `'${args.options.methodsRegistered}' is not a valid methodsRegistered value. Invalid values: ${invalidMethods.join(',')}. Allowed values ${methodsRegistered.join(', ')}`;
205
+ }
206
+ }
207
+ if (args.options.userIds) {
208
+ const ids = args.options.userIds.split(',').map(i => i.trim());
209
+ if (!validation.isValidGuidArray(ids)) {
210
+ const invalidGuid = ids.find(id => !validation.isValidGuid(id));
211
+ return `'${invalidGuid}' is not a valid GUID for option 'userIds'.`;
212
+ }
213
+ }
214
+ if (args.options.userPrincipalNames) {
215
+ const isValidUserPrincipalNameArray = validation.isValidUserPrincipalNameArray(args.options.userPrincipalNames.split(',').map(u => u.trim()));
216
+ if (isValidUserPrincipalNameArray !== true) {
217
+ return `User principal name '${isValidUserPrincipalNameArray}' is invalid for option 'userPrincipalNames'.`;
218
+ }
219
+ }
220
+ return true;
221
+ });
222
+ };
223
+ export default new EntraUserRegistrationDetailsListCommand();
224
+ //# sourceMappingURL=user-registrationdetails-list.js.map
@@ -37,10 +37,10 @@ class EntraUserSetCommand extends GraphCommand {
37
37
  async commandAction(logger, args) {
38
38
  try {
39
39
  if (args.options.currentPassword) {
40
- if (args.options.id && args.options.id !== accessToken.getUserIdFromAccessToken(auth.service.accessTokens[auth.defaultResource].accessToken)) {
40
+ if (args.options.id && args.options.id !== accessToken.getUserIdFromAccessToken(auth.connection.accessTokens[auth.defaultResource].accessToken)) {
41
41
  throw `You can only change your own password. Please use --id @meId to reference to your own userId`;
42
42
  }
43
- else if (args.options.userName && args.options.userName.toLowerCase() !== accessToken.getUserNameFromAccessToken(auth.service.accessTokens[auth.defaultResource].accessToken).toLowerCase()) {
43
+ else if (args.options.userName && args.options.userName.toLowerCase() !== accessToken.getUserNameFromAccessToken(auth.connection.accessTokens[auth.defaultResource].accessToken).toLowerCase()) {
44
44
  throw 'You can only change your own password. Please use --userName @meUserName to reference to your own user principal name';
45
45
  }
46
46
  }
@@ -7,6 +7,7 @@ export default {
7
7
  ADMINISTRATIVEUNIT_MEMBER_ADD: `${prefix} administrativeunit member add`,
8
8
  ADMINISTRATIVEUNIT_MEMBER_GET: `${prefix} administrativeunit member get`,
9
9
  ADMINISTRATIVEUNIT_MEMBER_LIST: `${prefix} administrativeunit member list`,
10
+ ADMINISTRATIVEUNIT_MEMBER_REMOVE: `${prefix} administrativeunit member remove`,
10
11
  ADMINISTRATIVEUNIT_ROLEASSIGNMENT_ADD: `${prefix} administrativeunit roleassignment add`,
11
12
  APP_ADD: `${prefix} app add`,
12
13
  APP_GET: `${prefix} app get`,
@@ -14,15 +15,30 @@ export default {
14
15
  APP_REMOVE: `${prefix} app remove`,
15
16
  APP_SET: `${prefix} app set`,
16
17
  APP_PERMISSION_ADD: `${prefix} app permission add`,
18
+ APP_PERMISSION_LIST: `${prefix} app permission list`,
17
19
  APP_ROLE_ADD: `${prefix} app role add`,
18
20
  APP_ROLE_LIST: `${prefix} app role list`,
19
21
  APP_ROLE_REMOVE: `${prefix} app role remove`,
22
+ APPREGISTRATION_ADD: `${prefix} appregistration add`,
23
+ APPREGISTRATION_GET: `${prefix} appregistration get`,
24
+ APPREGISTRATION_LIST: `${prefix} appregistration list`,
25
+ APPREGISTRATION_REMOVE: `${prefix} appregistration remove`,
26
+ APPREGISTRATION_SET: `${prefix} appregistration set`,
27
+ APPREGISTRATION_PERMISSION_ADD: `${prefix} appregistration permission add`,
28
+ APPREGISTRATION_ROLE_ADD: `${prefix} appregistration role add`,
29
+ APPREGISTRATION_ROLE_LIST: `${prefix} appregistration role list`,
30
+ APPREGISTRATION_ROLE_REMOVE: `${prefix} appregistration role remove`,
20
31
  APPROLEASSIGNMENT_ADD: `${prefix} approleassignment add`,
21
32
  APPROLEASSIGNMENT_LIST: `${prefix} approleassignment list`,
22
33
  APPROLEASSIGNMENT_REMOVE: `${prefix} approleassignment remove`,
34
+ ENTERPRISEAPP_ADD: `${prefix} enterpriseapp add`,
35
+ ENTERPRISEAPP_GET: `${prefix} enterpriseapp get`,
36
+ ENTERPRISEAPP_LIST: `${prefix} enterpriseapp list`,
37
+ GROUP_ADD: `${prefix} group add`,
23
38
  GROUP_GET: `${prefix} group get`,
24
39
  GROUP_LIST: `${prefix} group list`,
25
40
  GROUP_REMOVE: `${prefix} group remove`,
41
+ GROUP_USER_ADD: `${prefix} group user add`,
26
42
  GROUP_USER_LIST: `${prefix} group user list`,
27
43
  GROUPSETTING_ADD: `${prefix} groupsetting add`,
28
44
  GROUPSETTING_GET: `${prefix} groupsetting get`,
@@ -78,6 +94,7 @@ export default {
78
94
  USER_RECYCLEBINITEM_CLEAR: `${prefix} user recyclebinitem clear`,
79
95
  USER_RECYCLEBINITEM_LIST: `${prefix} user recyclebinitem list`,
80
96
  USER_RECYCLEBINITEM_REMOVE: `${prefix} user recyclebinitem remove`,
97
+ USER_REGISTRATIONDETAILS_LIST: `${prefix} user registrationdetails list`,
81
98
  USER_REMOVE: `${prefix} user remove`,
82
99
  USER_RECYCLEBINITEM_RESTORE: `${prefix} user recyclebinitem restore`,
83
100
  USER_SET: `${prefix} user set`,
@@ -228,7 +228,8 @@ class ExternalConnectionDoctorCommand extends GraphCommand {
228
228
  const requestOptions = {
229
229
  url: `${this.resource}/v1.0/external/connections/${args.options.id}/schema`,
230
230
  headers: {
231
- accept: 'application/json;odata.metadata=none'
231
+ accept: 'application/json;odata.metadata=none',
232
+ prefer: 'include-unknown-enum-members'
232
233
  },
233
234
  responseType: 'json'
234
235
  };
@@ -35,7 +35,7 @@ class FileConvertPdfCommand extends GraphCommand {
35
35
  let sourceIsLocalFile = true;
36
36
  let targetIsLocalFile = true;
37
37
  let error;
38
- const isAppOnlyAccessToken = accessToken.isAppOnlyAccessToken(auth.service.accessTokens[auth.defaultResource].accessToken);
38
+ const isAppOnlyAccessToken = accessToken.isAppOnlyAccessToken(auth.connection.accessTokens[auth.defaultResource].accessToken);
39
39
  if (typeof isAppOnlyAccessToken === 'undefined') {
40
40
  throw 'Unable to determine authentication type';
41
41
  }
@@ -0,0 +1,151 @@
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 _FileCopyCommand_instances, _FileCopyCommand_initTelemetry, _FileCopyCommand_initOptions, _FileCopyCommand_initValidators;
7
+ import request from '../../../request.js';
8
+ import { urlUtil } from '../../../utils/urlUtil.js';
9
+ import { spo } from '../../../utils/spo.js';
10
+ import { validation } from '../../../utils/validation.js';
11
+ import GraphCommand from '../../base/GraphCommand.js';
12
+ import commands from '../commands.js';
13
+ class FileCopyCommand extends GraphCommand {
14
+ get name() {
15
+ return commands.COPY;
16
+ }
17
+ get description() {
18
+ return 'Copies a file to another location using the Microsoft Graph';
19
+ }
20
+ constructor() {
21
+ super();
22
+ _FileCopyCommand_instances.add(this);
23
+ this.nameConflictBehaviorOptions = ['fail', 'replace', 'rename'];
24
+ __classPrivateFieldGet(this, _FileCopyCommand_instances, "m", _FileCopyCommand_initTelemetry).call(this);
25
+ __classPrivateFieldGet(this, _FileCopyCommand_instances, "m", _FileCopyCommand_initOptions).call(this);
26
+ __classPrivateFieldGet(this, _FileCopyCommand_instances, "m", _FileCopyCommand_initValidators).call(this);
27
+ }
28
+ async commandAction(logger, args) {
29
+ try {
30
+ const { webUrl, sourceUrl, targetUrl, newName, verbose } = args.options;
31
+ const sourcePath = this.getAbsoluteUrl(webUrl, sourceUrl);
32
+ const destinationPath = this.getAbsoluteUrl(webUrl, targetUrl);
33
+ if (this.verbose) {
34
+ logger.logToStderr(`Copying file '${sourcePath}' to '${destinationPath}'...`);
35
+ }
36
+ const copyUrl = await this.getCopyUrl(args.options, sourcePath, logger);
37
+ const { targetDriveId, targetItemId } = await this.getTargetDriveAndItemId(webUrl, targetUrl, logger, verbose);
38
+ const requestOptions = {
39
+ url: copyUrl,
40
+ headers: {
41
+ accept: 'application/json;odata.metadata=none'
42
+ },
43
+ responseType: 'json',
44
+ data: {
45
+ parentReference: {
46
+ driveId: targetDriveId,
47
+ id: targetItemId
48
+ }
49
+ }
50
+ };
51
+ if (newName) {
52
+ const sourceFileName = sourcePath.substring(sourcePath.lastIndexOf('/') + 1);
53
+ const sourceFileExtension = sourceFileName.includes('.') ? sourceFileName.substring(sourceFileName.lastIndexOf('.')) : '';
54
+ const newNameExtension = newName.includes('.') ? newName.substring(newName.lastIndexOf('.')) : '';
55
+ requestOptions.data.name = newNameExtension ? `${newName.replace(newNameExtension, "")}${sourceFileExtension}` : `${newName}${sourceFileExtension}`;
56
+ }
57
+ await request.post(requestOptions);
58
+ }
59
+ catch (err) {
60
+ this.handleRejectedODataJsonPromise(err);
61
+ }
62
+ }
63
+ async getCopyUrl(options, sourcePath, logger) {
64
+ const { webUrl, sourceUrl, verbose, nameConflictBehavior } = options;
65
+ const folderUrl = new URL(sourcePath);
66
+ const siteId = await spo.getSiteId(webUrl, logger, verbose);
67
+ const drive = await this.getDocumentLibrary(siteId, folderUrl, sourceUrl, logger);
68
+ const itemId = await this.getStartingFolderId(drive, folderUrl, logger);
69
+ const queryParameters = nameConflictBehavior && nameConflictBehavior !== 'fail'
70
+ ? `@microsoft.graph.conflictBehavior=${nameConflictBehavior}`
71
+ : '';
72
+ const copyUrl = `${this.resource}/v1.0/sites/${siteId}/drives/${drive.id}/items/${itemId}/copy${queryParameters ? `?${queryParameters}` : ''}`;
73
+ return copyUrl;
74
+ }
75
+ async getTargetDriveAndItemId(webUrl, targetUrl, logger, verbose) {
76
+ const targetSiteUrl = urlUtil.getTargetSiteAbsoluteUrl(webUrl, targetUrl);
77
+ const targetSiteId = await spo.getSiteId(targetSiteUrl, logger, verbose);
78
+ const targetFolderUrl = new URL(this.getAbsoluteUrl(targetSiteUrl, targetUrl));
79
+ const targetDrive = await this.getDocumentLibrary(targetSiteId, targetFolderUrl, targetUrl, logger);
80
+ const targetDriveId = targetDrive.id;
81
+ const targetItemId = await this.getStartingFolderId(targetDrive, targetFolderUrl, logger);
82
+ return { targetDriveId, targetItemId };
83
+ }
84
+ async getDocumentLibrary(siteId, folderUrl, folderUrlFromUser, logger) {
85
+ if (this.verbose) {
86
+ logger.logToStderr(`Getting document library...`);
87
+ }
88
+ const requestOptions = {
89
+ url: `${this.resource}/v1.0/sites/${siteId}/drives?$select=webUrl,id`,
90
+ headers: {
91
+ accept: 'application/json;odata.metadata=none'
92
+ },
93
+ responseType: 'json'
94
+ };
95
+ const drives = await request.get(requestOptions);
96
+ const lowerCaseFolderUrl = folderUrl.href.toLowerCase();
97
+ const drive = drives.value
98
+ .sort((a, b) => b.webUrl.localeCompare(a.webUrl))
99
+ .find((d) => {
100
+ const driveUrl = d.webUrl.toLowerCase();
101
+ // ensure that the drive url is a prefix of the folder url
102
+ return lowerCaseFolderUrl.startsWith(driveUrl) &&
103
+ (driveUrl.length === lowerCaseFolderUrl.length ||
104
+ lowerCaseFolderUrl[driveUrl.length] === '/');
105
+ });
106
+ if (!drive) {
107
+ throw `Document library '${folderUrlFromUser}' not found`;
108
+ }
109
+ return drive;
110
+ }
111
+ async getStartingFolderId(documentLibrary, folderUrl, logger) {
112
+ if (this.verbose) {
113
+ logger.logToStderr(`Getting starting folder id...`);
114
+ }
115
+ const documentLibraryRelativeFolderUrl = folderUrl.href.replace(new RegExp(`${documentLibrary.webUrl}`, 'i'), '').replace(/\/+$/, '');
116
+ const requestOptions = {
117
+ url: `${this.resource}/v1.0/drives/${documentLibrary.id}/root${documentLibraryRelativeFolderUrl ? `:${documentLibraryRelativeFolderUrl}` : ''}?$select=id`,
118
+ headers: {
119
+ accept: 'application/json;odata.metadata=none'
120
+ },
121
+ responseType: 'json'
122
+ };
123
+ const folder = await request.get(requestOptions);
124
+ return folder?.id;
125
+ }
126
+ getAbsoluteUrl(webUrl, url) {
127
+ return url.startsWith('https://') ? url : urlUtil.getAbsoluteUrl(webUrl, url);
128
+ }
129
+ }
130
+ _FileCopyCommand_instances = new WeakSet(), _FileCopyCommand_initTelemetry = function _FileCopyCommand_initTelemetry() {
131
+ this.telemetry.push((args) => {
132
+ Object.assign(this.telemetryProperties, {
133
+ webUrl: typeof args.options.webUrl !== 'undefined',
134
+ sourceUrl: typeof args.options.sourceUrl !== 'undefined',
135
+ targetUrl: typeof args.options.targetUrl !== 'undefined',
136
+ newName: typeof args.options.newName !== 'undefined',
137
+ nameConflictBehavior: typeof args.options.nameConflictBehavior !== 'undefined'
138
+ });
139
+ });
140
+ }, _FileCopyCommand_initOptions = function _FileCopyCommand_initOptions() {
141
+ this.options.unshift({ option: '-u, --webUrl <webUrl>' }, { option: '-s, --sourceUrl <sourceUrl>' }, { option: '-t, --targetUrl <targetUrl>' }, { option: '--newName [newName]' }, { option: '--nameConflictBehavior [nameConflictBehavior]', autocomplete: this.nameConflictBehaviorOptions });
142
+ }, _FileCopyCommand_initValidators = function _FileCopyCommand_initValidators() {
143
+ this.validators.push(async (args) => {
144
+ if (args.options.nameConflictBehavior && this.nameConflictBehaviorOptions.indexOf(args.options.nameConflictBehavior) === -1) {
145
+ return `${args.options.nameConflictBehavior} is not a valid nameConflictBehavior value. Allowed values: ${this.nameConflictBehaviorOptions.join(', ')}.`;
146
+ }
147
+ return validation.isValidSharePointUrl(args.options.webUrl);
148
+ });
149
+ };
150
+ export default new FileCopyCommand();
151
+ //# sourceMappingURL=file-copy.js.map
@@ -2,6 +2,7 @@ const prefix = 'file';
2
2
  export default {
3
3
  ADD: `${prefix} add`,
4
4
  CONVERT_PDF: `${prefix} convert pdf`,
5
+ COPY: `${prefix} copy`,
5
6
  LIST: `${prefix} list`
6
7
  };
7
8
  //# sourceMappingURL=commands.js.map
@@ -29,7 +29,7 @@ class OutlookMailSendCommand extends GraphCommand {
29
29
  }
30
30
  async commandAction(logger, args) {
31
31
  try {
32
- const isAppOnlyAccessToken = accessToken.isAppOnlyAccessToken(auth.service.accessTokens[this.resource].accessToken);
32
+ const isAppOnlyAccessToken = accessToken.isAppOnlyAccessToken(auth.connection.accessTokens[this.resource].accessToken);
33
33
  if (isAppOnlyAccessToken === true && !args.options.sender) {
34
34
  throw `Specify a upn or user id in the 'sender' option when using app only authentication.`;
35
35
  }
@@ -24,7 +24,7 @@ class OutlookMessageGetCommand extends GraphCommand {
24
24
  }
25
25
  async commandAction(logger, args) {
26
26
  try {
27
- const isAppOnlyAccessToken = accessToken.isAppOnlyAccessToken(auth.service.accessTokens[this.resource].accessToken);
27
+ const isAppOnlyAccessToken = accessToken.isAppOnlyAccessToken(auth.connection.accessTokens[this.resource].accessToken);
28
28
  if (this.verbose) {
29
29
  await logger.logToStderr(`Retrieving message with id ${args.options.id} using ${isAppOnlyAccessToken ? 'app only permissions' : 'delegated permissions'}`);
30
30
  }
@@ -85,7 +85,7 @@ class PaAppPermissionEnsureCommand extends PowerAppsCommand {
85
85
  const userId = await entraUser.getUserIdByUpn(options.userName);
86
86
  return userId;
87
87
  }
88
- return accessToken.getTenantIdFromAccessToken(Auth.service.accessTokens[Auth.defaultResource].accessToken);
88
+ return accessToken.getTenantIdFromAccessToken(Auth.connection.accessTokens[Auth.defaultResource].accessToken);
89
89
  }
90
90
  }
91
91
  _a = PaAppPermissionEnsureCommand, _PaAppPermissionEnsureCommand_instances = new WeakSet(), _PaAppPermissionEnsureCommand_initTelemetry = function _PaAppPermissionEnsureCommand_initTelemetry() {
@@ -81,7 +81,7 @@ class PaAppPermissionRemoveCommand extends PowerAppsCommand {
81
81
  const userId = await entraUser.getUserIdByUpn(options.userName);
82
82
  return userId;
83
83
  }
84
- return `tenant-${accessToken.getTenantIdFromAccessToken(Auth.service.accessTokens[Auth.defaultResource].accessToken)}`;
84
+ return `tenant-${accessToken.getTenantIdFromAccessToken(Auth.connection.accessTokens[Auth.defaultResource].accessToken)}`;
85
85
  }
86
86
  }
87
87
  _PaAppPermissionRemoveCommand_instances = new WeakSet(), _PaAppPermissionRemoveCommand_initTelemetry = function _PaAppPermissionRemoveCommand_initTelemetry() {
@@ -30,7 +30,7 @@ class PlannerRosterPlanListCommand extends GraphCommand {
30
30
  return ['id', 'title', 'createdDateTime', 'owner'];
31
31
  }
32
32
  async commandAction(logger, args) {
33
- const isAppOnlyAccessToken = accessToken.isAppOnlyAccessToken(auth.service.accessTokens[this.resource].accessToken);
33
+ const isAppOnlyAccessToken = accessToken.isAppOnlyAccessToken(auth.connection.accessTokens[this.resource].accessToken);
34
34
  if (isAppOnlyAccessToken && !args.options.userId && !args.options.userName) {
35
35
  this.handleError(`Specify at least 'userId' or 'userName' when using application permissions.`);
36
36
  }
@@ -44,7 +44,7 @@ class PurviewAuditLogListCommand extends O365MgmtCommand {
44
44
  if (this.verbose) {
45
45
  await logger.logToStderr(`Getting audit logs for content type '${args.options.contentType}' within a time frame from '${startTime.toISOString()}' to '${endTime.toISOString()}'.`);
46
46
  }
47
- const tenantId = accessToken.getTenantIdFromAccessToken(Auth.service.accessTokens[Auth.defaultResource].accessToken);
47
+ const tenantId = accessToken.getTenantIdFromAccessToken(Auth.connection.accessTokens[Auth.defaultResource].accessToken);
48
48
  const contentTypeValue = args.options.contentType === 'DLP' ? 'DLP.All' : 'Audit.' + args.options.contentType;
49
49
  await this.ensureSubscription(tenantId, contentTypeValue);
50
50
  if (this.verbose) {
@@ -25,7 +25,7 @@ class PurviewSensitivityLabelGetCommand extends GraphCommand {
25
25
  __classPrivateFieldGet(this, _PurviewSensitivityLabelGetCommand_instances, "m", _PurviewSensitivityLabelGetCommand_initValidators).call(this);
26
26
  }
27
27
  async commandAction(logger, args) {
28
- const isAppOnlyAccessToken = accessToken.isAppOnlyAccessToken(auth.service.accessTokens[this.resource].accessToken);
28
+ const isAppOnlyAccessToken = accessToken.isAppOnlyAccessToken(auth.connection.accessTokens[this.resource].accessToken);
29
29
  if (isAppOnlyAccessToken && !args.options.userId && !args.options.userName) {
30
30
  this.handleError(`Specify at least 'userId' or 'userName' when using application permissions.`);
31
31
  }
@@ -28,7 +28,7 @@ class PurviewSensitivityLabelListCommand extends GraphCommand {
28
28
  return ['id', 'name', 'isActive'];
29
29
  }
30
30
  async commandAction(logger, args) {
31
- const isAppOnlyAccessToken = accessToken.isAppOnlyAccessToken(auth.service.accessTokens[this.resource].accessToken);
31
+ const isAppOnlyAccessToken = accessToken.isAppOnlyAccessToken(auth.connection.accessTokens[this.resource].accessToken);
32
32
  if (isAppOnlyAccessToken && !args.options.userId && !args.options.userName) {
33
33
  this.handleError(`Specify at least 'userId' or 'userName' when using application permissions.`);
34
34
  }
@@ -25,7 +25,7 @@ class PurviewSensitivityLabelPolicySettingsListCommand extends GraphCommand {
25
25
  __classPrivateFieldGet(this, _PurviewSensitivityLabelPolicySettingsListCommand_instances, "m", _PurviewSensitivityLabelPolicySettingsListCommand_initValidators).call(this);
26
26
  }
27
27
  async commandAction(logger, args) {
28
- const isAppOnlyAccessToken = accessToken.isAppOnlyAccessToken(auth.service.accessTokens[this.resource].accessToken);
28
+ const isAppOnlyAccessToken = accessToken.isAppOnlyAccessToken(auth.connection.accessTokens[this.resource].accessToken);
29
29
  if (isAppOnlyAccessToken && !args.options.userId && !args.options.userName) {
30
30
  this.handleError(`Specify at least 'userId' or 'userName' when using application permissions.`);
31
31
  }
@@ -13,11 +13,11 @@ export const workflow = {
13
13
  steps: [
14
14
  {
15
15
  name: "Checkout",
16
- uses: "actions/checkout@v3.5.3"
16
+ uses: "actions/checkout@v4"
17
17
  },
18
18
  {
19
19
  name: "Use Node.js",
20
- uses: "actions/setup-node@v3.7.0",
20
+ uses: "actions/setup-node@v4",
21
21
  with: {
22
22
  "node-version": "18.x"
23
23
  }
@@ -36,7 +36,8 @@ export const workflow = {
36
36
  with: {
37
37
  "CERTIFICATE_ENCODED": "${{ secrets.CERTIFICATE_ENCODED }}",
38
38
  "CERTIFICATE_PASSWORD": "${{ secrets.CERTIFICATE_PASSWORD }}",
39
- "APP_ID": "${{ secrets.APP_ID }}"
39
+ "APP_ID": "${{ secrets.APP_ID }}",
40
+ "TENANT": "${{ secrets.TENANT_ID }}"
40
41
  }
41
42
  },
42
43
  {
@@ -10,7 +10,7 @@ class SpoGetCommand extends SpoCommand {
10
10
  }
11
11
  async commandAction(logger) {
12
12
  const spoContext = {
13
- SpoUrl: auth.service.spoUrl ? auth.service.spoUrl : ''
13
+ SpoUrl: auth.connection.spoUrl ? auth.connection.spoUrl : ''
14
14
  };
15
15
  await logger.log(spoContext);
16
16
  }