@pnp/cli-microsoft365 4.1.0-beta.b3a6016 → 4.2.0-beta.7415898
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.
- package/README.md +6 -5
- package/dist/cli/Cli.js +1 -1
- package/dist/m365/aad/commands/oauth2grant/oauth2grant-add.js +5 -8
- package/dist/m365/aad/commands/oauth2grant/oauth2grant-remove.js +6 -3
- package/dist/m365/aad/commands/oauth2grant/oauth2grant-set.js +3 -3
- package/dist/m365/aad/commands/sp/sp-get.js +44 -21
- package/dist/m365/aad/commands.js +0 -1
- package/dist/m365/spfx/commands/project/project-upgrade/{upgrade-1.13.0-rc.1.js → upgrade-1.13.0.js} +25 -25
- package/dist/m365/spfx/commands/project/project-upgrade.js +13 -15
- package/dist/m365/spo/commands/contenttype/contenttype-add.js +21 -1
- package/dist/m365/spo/commands/listitem/listitem-attachment-list.js +90 -0
- package/dist/m365/spo/commands.js +1 -0
- package/dist/m365/teams/commands/report/report-pstncalls.js +1 -1
- package/docs/docs/cmd/aad/oauth2grant/oauth2grant-remove.md +2 -1
- package/docs/docs/cmd/aad/oauth2grant/oauth2grant-set.md +3 -2
- package/docs/docs/cmd/aad/sp/sp-get.md +2 -1
- package/docs/docs/cmd/spfx/project/project-upgrade.md +1 -1
- package/docs/docs/cmd/spo/listitem/listitem-attachment-list.md +39 -0
- package/docs/docs/cmd/teams/report/report-pstncalls.md +4 -3
- package/npm-shrinkwrap.json +2 -2
- package/package.json +1 -1
- package/dist/m365/aad/commands/serviceprincipal/serviceprincipal-get.js +0 -116
- package/docs/docs/cmd/aad/serviceprincipal/serviceprincipal-get.md +0 -42
package/README.md
CHANGED
|
@@ -82,6 +82,7 @@
|
|
|
82
82
|
- Supported authentication methods
|
|
83
83
|
- Azure Managed Identity
|
|
84
84
|
- Certificate
|
|
85
|
+
- Client Secret
|
|
85
86
|
- Device Code
|
|
86
87
|
- Username and Password
|
|
87
88
|
- Manage your SharePoint Framework projects
|
|
@@ -156,22 +157,22 @@ Get command information and example usage using the global `--help` option.
|
|
|
156
157
|
m365 spo site get --help
|
|
157
158
|
```
|
|
158
159
|
|
|
159
|
-
Execute a command and output response as
|
|
160
|
+
Execute a command and output response as JSON.
|
|
160
161
|
|
|
161
162
|
```sh
|
|
162
163
|
m365 spo site get --url https://contoso.sharepoint.com
|
|
163
164
|
```
|
|
164
165
|
|
|
165
|
-
|
|
166
|
+
Filter responses and return custom objects using [JMESPath](https://jmespath.org/) queries using the global `--query` option.
|
|
166
167
|
|
|
167
168
|
```sh
|
|
168
|
-
m365 spo site
|
|
169
|
+
m365 spo site list --query '[?Template==`GROUP#0`].{Title:Title, Url:Url}'
|
|
169
170
|
```
|
|
170
171
|
|
|
171
|
-
|
|
172
|
+
Execute a command and output response as text using the global `--output` option.
|
|
172
173
|
|
|
173
174
|
```sh
|
|
174
|
-
m365 spo site
|
|
175
|
+
m365 spo site get --url https://contoso.sharepoint.com --output text
|
|
175
176
|
```
|
|
176
177
|
|
|
177
178
|
> For more examples and usage, refer to the [command](https://pnp.github.io/cli-microsoft365/cmd/login/) and [sample scripts](https://pnp.github.io/cli-microsoft365/sample-scripts/) documentation.
|
package/dist/cli/Cli.js
CHANGED
|
@@ -369,7 +369,7 @@ class Cli {
|
|
|
369
369
|
// know this in order to decide if we should use default command's
|
|
370
370
|
// properties or custom ones from JMESPath
|
|
371
371
|
const originalObject = Array.isArray(logStatement) ? Cli.getFirstNonUndefinedArrayItem(logStatement) : logStatement;
|
|
372
|
-
const originalProperties = originalObject ? Object.getOwnPropertyNames(originalObject) : [];
|
|
372
|
+
const originalProperties = originalObject && typeof originalObject !== 'string' ? Object.getOwnPropertyNames(originalObject) : [];
|
|
373
373
|
if (options.query &&
|
|
374
374
|
!options.help) {
|
|
375
375
|
const jmespath = require('jmespath');
|
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
const request_1 = require("../../../../request");
|
|
4
4
|
const Utils_1 = require("../../../../Utils");
|
|
5
|
-
const
|
|
5
|
+
const GraphCommand_1 = require("../../../base/GraphCommand");
|
|
6
6
|
const commands_1 = require("../../commands");
|
|
7
|
-
class AadOAuth2GrantAddCommand extends
|
|
7
|
+
class AadOAuth2GrantAddCommand extends GraphCommand_1.default {
|
|
8
8
|
get name() {
|
|
9
9
|
return commands_1.default.OAUTH2GRANT_ADD;
|
|
10
10
|
}
|
|
@@ -16,20 +16,17 @@ class AadOAuth2GrantAddCommand extends AadCommand_1.default {
|
|
|
16
16
|
logger.logToStderr(`Granting the service principal specified permissions...`);
|
|
17
17
|
}
|
|
18
18
|
const requestOptions = {
|
|
19
|
-
url: `${this.resource}/
|
|
19
|
+
url: `${this.resource}/v1.0/oauth2PermissionGrants`,
|
|
20
20
|
headers: {
|
|
21
|
-
'content-type': 'application/json'
|
|
21
|
+
'content-type': 'application/json;odata.metadata=none'
|
|
22
22
|
},
|
|
23
23
|
responseType: 'json',
|
|
24
24
|
data: {
|
|
25
|
-
"odata.type": "Microsoft.DirectoryServices.OAuth2PermissionGrant",
|
|
26
25
|
"clientId": args.options.clientId,
|
|
27
26
|
"consentType": "AllPrincipals",
|
|
28
27
|
"principalId": null,
|
|
29
28
|
"resourceId": args.options.resourceId,
|
|
30
|
-
"scope": args.options.scope
|
|
31
|
-
"startTime": "0001-01-01T00:00:00",
|
|
32
|
-
"expiryTime": "9000-01-01T00:00:00"
|
|
29
|
+
"scope": args.options.scope
|
|
33
30
|
}
|
|
34
31
|
};
|
|
35
32
|
request_1.default
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
const request_1 = require("../../../../request");
|
|
4
|
-
const
|
|
4
|
+
const GraphCommand_1 = require("../../../base/GraphCommand");
|
|
5
5
|
const commands_1 = require("../../commands");
|
|
6
|
-
class AadOAuth2GrantRemoveCommand extends
|
|
6
|
+
class AadOAuth2GrantRemoveCommand extends GraphCommand_1.default {
|
|
7
7
|
get name() {
|
|
8
8
|
return commands_1.default.OAUTH2GRANT_REMOVE;
|
|
9
9
|
}
|
|
@@ -15,7 +15,10 @@ class AadOAuth2GrantRemoveCommand extends AadCommand_1.default {
|
|
|
15
15
|
logger.logToStderr(`Removing OAuth2 permissions...`);
|
|
16
16
|
}
|
|
17
17
|
const requestOptions = {
|
|
18
|
-
url: `${this.resource}/
|
|
18
|
+
url: `${this.resource}/v1.0/oauth2PermissionGrants/${encodeURIComponent(args.options.grantId)}`,
|
|
19
|
+
headers: {
|
|
20
|
+
'accept': 'application/json;odata.metadata=none'
|
|
21
|
+
},
|
|
19
22
|
responseType: 'json'
|
|
20
23
|
};
|
|
21
24
|
request_1.default
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
const request_1 = require("../../../../request");
|
|
4
|
-
const
|
|
4
|
+
const GraphCommand_1 = require("../../../base/GraphCommand");
|
|
5
5
|
const commands_1 = require("../../commands");
|
|
6
|
-
class AadOAuth2GrantSetCommand extends
|
|
6
|
+
class AadOAuth2GrantSetCommand extends GraphCommand_1.default {
|
|
7
7
|
get name() {
|
|
8
8
|
return commands_1.default.OAUTH2GRANT_SET;
|
|
9
9
|
}
|
|
@@ -15,7 +15,7 @@ class AadOAuth2GrantSetCommand extends AadCommand_1.default {
|
|
|
15
15
|
logger.logToStderr(`Updating OAuth2 permissions...`);
|
|
16
16
|
}
|
|
17
17
|
const requestOptions = {
|
|
18
|
-
url: `${this.resource}/
|
|
18
|
+
url: `${this.resource}/v1.0/oauth2PermissionGrants/${encodeURIComponent(args.options.grantId)}`,
|
|
19
19
|
headers: {
|
|
20
20
|
'content-type': 'application/json'
|
|
21
21
|
},
|
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
const request_1 = require("../../../../request");
|
|
4
4
|
const Utils_1 = require("../../../../Utils");
|
|
5
|
-
const
|
|
5
|
+
const GraphCommand_1 = require("../../../base/GraphCommand");
|
|
6
6
|
const commands_1 = require("../../commands");
|
|
7
|
-
class AadSpGetCommand extends
|
|
7
|
+
class AadSpGetCommand extends GraphCommand_1.default {
|
|
8
8
|
get name() {
|
|
9
9
|
return commands_1.default.SP_GET;
|
|
10
10
|
}
|
|
@@ -18,35 +18,58 @@ class AadSpGetCommand extends AadCommand_1.default {
|
|
|
18
18
|
telemetryProps.objectId = (!(!args.options.objectId)).toString();
|
|
19
19
|
return telemetryProps;
|
|
20
20
|
}
|
|
21
|
-
|
|
22
|
-
if (
|
|
23
|
-
|
|
21
|
+
getSpId(args) {
|
|
22
|
+
if (args.options.objectId) {
|
|
23
|
+
return Promise.resolve(args.options.objectId);
|
|
24
24
|
}
|
|
25
25
|
let spMatchQuery = '';
|
|
26
|
-
if (args.options.
|
|
27
|
-
spMatchQuery = `appId eq '${encodeURIComponent(args.options.appId)}'`;
|
|
28
|
-
}
|
|
29
|
-
else if (args.options.objectId) {
|
|
30
|
-
spMatchQuery = `objectId eq '${encodeURIComponent(args.options.objectId)}'`;
|
|
31
|
-
}
|
|
32
|
-
else {
|
|
26
|
+
if (args.options.displayName) {
|
|
33
27
|
spMatchQuery = `displayName eq '${encodeURIComponent(args.options.displayName)}'`;
|
|
34
28
|
}
|
|
35
|
-
|
|
36
|
-
|
|
29
|
+
else if (args.options.appId) {
|
|
30
|
+
spMatchQuery = `appId eq '${encodeURIComponent(args.options.appId)}'`;
|
|
31
|
+
}
|
|
32
|
+
const idRequestOptions = {
|
|
33
|
+
url: `${this.resource}/v1.0/servicePrincipals?$filter=${spMatchQuery}`,
|
|
37
34
|
headers: {
|
|
38
|
-
accept: 'application/json;odata=
|
|
35
|
+
accept: 'application/json;odata.metadata=none'
|
|
39
36
|
},
|
|
40
37
|
responseType: 'json'
|
|
41
38
|
};
|
|
42
|
-
request_1.default
|
|
43
|
-
.get(
|
|
44
|
-
.then(
|
|
45
|
-
|
|
46
|
-
|
|
39
|
+
return request_1.default
|
|
40
|
+
.get(idRequestOptions)
|
|
41
|
+
.then(response => {
|
|
42
|
+
const spItem = response.value[0];
|
|
43
|
+
if (!spItem) {
|
|
44
|
+
return Promise.reject(`The specified Azure AD app does not exist`);
|
|
45
|
+
}
|
|
46
|
+
if (response.value.length > 1) {
|
|
47
|
+
return Promise.reject(`Multiple Azure AD apps with name ${args.options.displayName} found: ${response.value.map(x => x.id)}`);
|
|
47
48
|
}
|
|
49
|
+
return Promise.resolve(spItem.id);
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
commandAction(logger, args, cb) {
|
|
53
|
+
if (this.verbose) {
|
|
54
|
+
logger.logToStderr(`Retrieving service principal information...`);
|
|
55
|
+
}
|
|
56
|
+
this
|
|
57
|
+
.getSpId(args)
|
|
58
|
+
.then((id) => {
|
|
59
|
+
const requestOptions = {
|
|
60
|
+
url: `${this.resource}/v1.0/servicePrincipals/${id}`,
|
|
61
|
+
headers: {
|
|
62
|
+
accept: 'application/json;odata.metadata=none',
|
|
63
|
+
'content-type': 'application/json;odata.metadata=none'
|
|
64
|
+
},
|
|
65
|
+
responseType: 'json'
|
|
66
|
+
};
|
|
67
|
+
return request_1.default.get(requestOptions);
|
|
68
|
+
})
|
|
69
|
+
.then((res) => {
|
|
70
|
+
logger.log(res);
|
|
48
71
|
cb();
|
|
49
|
-
}, (
|
|
72
|
+
}, (err) => this.handleRejectedODataJsonPromise(err, logger, cb));
|
|
50
73
|
}
|
|
51
74
|
options() {
|
|
52
75
|
const options = [
|
|
@@ -42,7 +42,6 @@ exports.default = {
|
|
|
42
42
|
OAUTH2GRANT_REMOVE: `${prefix} oauth2grant remove`,
|
|
43
43
|
OAUTH2GRANT_SET: `${prefix} oauth2grant set`,
|
|
44
44
|
POLICY_LIST: `${prefix} policy list`,
|
|
45
|
-
SERVICEPRINCIPAL_GET: `${prefix} serviceprincipal get`,
|
|
46
45
|
SITECLASSIFICATION_DISABLE: `${prefix} siteclassification disable`,
|
|
47
46
|
SITECLASSIFICATION_ENABLE: `${prefix} siteclassification enable`,
|
|
48
47
|
SITECLASSIFICATION_GET: `${prefix} siteclassification get`,
|
package/dist/m365/spfx/commands/project/project-upgrade/{upgrade-1.13.0-rc.1.js → upgrade-1.13.0.js}
RENAMED
|
@@ -39,43 +39,43 @@ const FN014007_CODE_launch_localWorkbench_1 = require("./rules/FN014007_CODE_lau
|
|
|
39
39
|
const FN015007_FILE_config_copy_assets_json_1 = require("./rules/FN015007_FILE_config_copy_assets_json");
|
|
40
40
|
const FN024001_NPMIGNORE_file_1 = require("./rules/FN024001_NPMIGNORE_file");
|
|
41
41
|
module.exports = [
|
|
42
|
-
new FN001001_DEP_microsoft_sp_core_library_1.FN001001_DEP_microsoft_sp_core_library('1.13.0
|
|
43
|
-
new FN001002_DEP_microsoft_sp_lodash_subset_1.FN001002_DEP_microsoft_sp_lodash_subset('1.13.0
|
|
44
|
-
new FN001003_DEP_microsoft_sp_office_ui_fabric_core_1.FN001003_DEP_microsoft_sp_office_ui_fabric_core('1.13.0
|
|
45
|
-
new FN001004_DEP_microsoft_sp_webpart_base_1.FN001004_DEP_microsoft_sp_webpart_base('1.13.0
|
|
42
|
+
new FN001001_DEP_microsoft_sp_core_library_1.FN001001_DEP_microsoft_sp_core_library('1.13.0'),
|
|
43
|
+
new FN001002_DEP_microsoft_sp_lodash_subset_1.FN001002_DEP_microsoft_sp_lodash_subset('1.13.0'),
|
|
44
|
+
new FN001003_DEP_microsoft_sp_office_ui_fabric_core_1.FN001003_DEP_microsoft_sp_office_ui_fabric_core('1.13.0'),
|
|
45
|
+
new FN001004_DEP_microsoft_sp_webpart_base_1.FN001004_DEP_microsoft_sp_webpart_base('1.13.0'),
|
|
46
46
|
new FN001008_DEP_react_1.FN001008_DEP_react('16.13.1'),
|
|
47
47
|
new FN001009_DEP_react_dom_1.FN001009_DEP_react_dom('16.13.1'),
|
|
48
|
-
new FN001011_DEP_microsoft_sp_dialog_1.FN001011_DEP_microsoft_sp_dialog('1.13.0
|
|
49
|
-
new FN001012_DEP_microsoft_sp_application_base_1.FN001012_DEP_microsoft_sp_application_base('1.13.0
|
|
50
|
-
new FN001013_DEP_microsoft_decorators_1.FN001013_DEP_microsoft_decorators('1.13.0
|
|
51
|
-
new FN001014_DEP_microsoft_sp_listview_extensibility_1.FN001014_DEP_microsoft_sp_listview_extensibility('1.13.0
|
|
52
|
-
new FN001021_DEP_microsoft_sp_property_pane_1.FN001021_DEP_microsoft_sp_property_pane('1.13.0
|
|
48
|
+
new FN001011_DEP_microsoft_sp_dialog_1.FN001011_DEP_microsoft_sp_dialog('1.13.0'),
|
|
49
|
+
new FN001012_DEP_microsoft_sp_application_base_1.FN001012_DEP_microsoft_sp_application_base('1.13.0'),
|
|
50
|
+
new FN001013_DEP_microsoft_decorators_1.FN001013_DEP_microsoft_decorators('1.13.0'),
|
|
51
|
+
new FN001014_DEP_microsoft_sp_listview_extensibility_1.FN001014_DEP_microsoft_sp_listview_extensibility('1.13.0'),
|
|
52
|
+
new FN001021_DEP_microsoft_sp_property_pane_1.FN001021_DEP_microsoft_sp_property_pane('1.13.0'),
|
|
53
53
|
new FN001022_DEP_office_ui_fabric_react_1.FN001022_DEP_office_ui_fabric_react('7.174.1'),
|
|
54
|
-
new FN001023_DEP_microsoft_sp_component_base_1.FN001023_DEP_microsoft_sp_component_base('1.13.0
|
|
55
|
-
new FN001024_DEP_microsoft_sp_diagnostics_1.FN001024_DEP_microsoft_sp_diagnostics('1.13.0
|
|
56
|
-
new FN001025_DEP_microsoft_sp_dynamic_data_1.FN001025_DEP_microsoft_sp_dynamic_data('1.13.0
|
|
57
|
-
new FN001026_DEP_microsoft_sp_extension_base_1.FN001026_DEP_microsoft_sp_extension_base('1.13.0
|
|
58
|
-
new FN001027_DEP_microsoft_sp_http_1.FN001027_DEP_microsoft_sp_http('1.13.0
|
|
59
|
-
new FN001028_DEP_microsoft_sp_list_subscription_1.FN001028_DEP_microsoft_sp_list_subscription('1.13.0
|
|
60
|
-
new FN001029_DEP_microsoft_sp_loader_1.FN001029_DEP_microsoft_sp_loader('1.13.0
|
|
61
|
-
new FN001030_DEP_microsoft_sp_module_interfaces_1.FN001030_DEP_microsoft_sp_module_interfaces('1.13.0
|
|
62
|
-
new FN001031_DEP_microsoft_sp_odata_types_1.FN001031_DEP_microsoft_sp_odata_types('1.13.0
|
|
63
|
-
new FN001032_DEP_microsoft_sp_page_context_1.FN001032_DEP_microsoft_sp_page_context('1.13.0
|
|
64
|
-
new FN002001_DEVDEP_microsoft_sp_build_web_1.FN002001_DEVDEP_microsoft_sp_build_web('1.13.0
|
|
65
|
-
new FN002002_DEVDEP_microsoft_sp_module_interfaces_1.FN002002_DEVDEP_microsoft_sp_module_interfaces('1.13.0
|
|
54
|
+
new FN001023_DEP_microsoft_sp_component_base_1.FN001023_DEP_microsoft_sp_component_base('1.13.0'),
|
|
55
|
+
new FN001024_DEP_microsoft_sp_diagnostics_1.FN001024_DEP_microsoft_sp_diagnostics('1.13.0'),
|
|
56
|
+
new FN001025_DEP_microsoft_sp_dynamic_data_1.FN001025_DEP_microsoft_sp_dynamic_data('1.13.0'),
|
|
57
|
+
new FN001026_DEP_microsoft_sp_extension_base_1.FN001026_DEP_microsoft_sp_extension_base('1.13.0'),
|
|
58
|
+
new FN001027_DEP_microsoft_sp_http_1.FN001027_DEP_microsoft_sp_http('1.13.0'),
|
|
59
|
+
new FN001028_DEP_microsoft_sp_list_subscription_1.FN001028_DEP_microsoft_sp_list_subscription('1.13.0'),
|
|
60
|
+
new FN001029_DEP_microsoft_sp_loader_1.FN001029_DEP_microsoft_sp_loader('1.13.0'),
|
|
61
|
+
new FN001030_DEP_microsoft_sp_module_interfaces_1.FN001030_DEP_microsoft_sp_module_interfaces('1.13.0'),
|
|
62
|
+
new FN001031_DEP_microsoft_sp_odata_types_1.FN001031_DEP_microsoft_sp_odata_types('1.13.0'),
|
|
63
|
+
new FN001032_DEP_microsoft_sp_page_context_1.FN001032_DEP_microsoft_sp_page_context('1.13.0'),
|
|
64
|
+
new FN002001_DEVDEP_microsoft_sp_build_web_1.FN002001_DEVDEP_microsoft_sp_build_web('1.13.0'),
|
|
65
|
+
new FN002002_DEVDEP_microsoft_sp_module_interfaces_1.FN002002_DEVDEP_microsoft_sp_module_interfaces('1.13.0'),
|
|
66
66
|
new FN002003_DEVDEP_microsoft_sp_webpart_workbench_1.FN002003_DEVDEP_microsoft_sp_webpart_workbench('', false),
|
|
67
|
-
new FN002009_DEVDEP_microsoft_sp_tslint_rules_1.FN002009_DEVDEP_microsoft_sp_tslint_rules('1.13.0
|
|
67
|
+
new FN002009_DEVDEP_microsoft_sp_tslint_rules_1.FN002009_DEVDEP_microsoft_sp_tslint_rules('1.13.0'),
|
|
68
68
|
new FN002015_DEVDEP_types_react_1.FN002015_DEVDEP_types_react('16.9.51'),
|
|
69
69
|
new FN002017_DEVDEP_microsoft_rush_stack_compiler_3_7_1.FN002017_DEVDEP_microsoft_rush_stack_compiler_3_7('', false),
|
|
70
70
|
new FN002018_DEVDEP_microsoft_rush_stack_compiler_3_9_1.FN002018_DEVDEP_microsoft_rush_stack_compiler_3_9('0.4.47'),
|
|
71
|
-
new FN006004_CFG_PS_developer_1.FN006004_CFG_PS_developer('1.13.0
|
|
71
|
+
new FN006004_CFG_PS_developer_1.FN006004_CFG_PS_developer('1.13.0'),
|
|
72
72
|
new FN007002_CFG_S_initialPage_1.FN007002_CFG_S_initialPage('https://enter-your-SharePoint-site/_layouts/workbench.aspx'),
|
|
73
73
|
new FN007003_CFG_S_api_1.FN007003_CFG_S_api(),
|
|
74
74
|
new FN008002_CFG_TSL_removeRule_1.FN008002_CFG_TSL_removeRule('no-use-before-declare'),
|
|
75
|
-
new FN010001_YORC_version_1.FN010001_YORC_version('1.13.0
|
|
75
|
+
new FN010001_YORC_version_1.FN010001_YORC_version('1.13.0'),
|
|
76
76
|
new FN012017_TSC_extends_1.FN012017_TSC_extends('./node_modules/@microsoft/rush-stack-compiler-3.9/includes/tsconfig-web.json'),
|
|
77
77
|
new FN014007_CODE_launch_localWorkbench_1.FN014007_CODE_launch_localWorkbench(),
|
|
78
78
|
new FN015007_FILE_config_copy_assets_json_1.FN015007_FILE_config_copy_assets_json(false),
|
|
79
79
|
new FN024001_NPMIGNORE_file_1.FN024001_NPMIGNORE_file()
|
|
80
80
|
];
|
|
81
|
-
//# sourceMappingURL=upgrade-1.13.0
|
|
81
|
+
//# sourceMappingURL=upgrade-1.13.0.js.map
|
|
@@ -3,8 +3,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
const fs = require("fs");
|
|
4
4
|
const os = require("os");
|
|
5
5
|
const path = require("path");
|
|
6
|
-
// uncomment to support upgrading to preview releases
|
|
7
|
-
const semver_1 = require("semver");
|
|
8
6
|
const Command_1 = require("../../../../Command");
|
|
9
7
|
const commands_1 = require("../../commands");
|
|
10
8
|
const base_project_command_1 = require("./base-project-command");
|
|
@@ -43,7 +41,7 @@ class SpfxProjectUpgradeCommand extends base_project_command_1.BaseProjectComman
|
|
|
43
41
|
'1.11.0',
|
|
44
42
|
'1.12.0',
|
|
45
43
|
'1.12.1',
|
|
46
|
-
'1.13.0
|
|
44
|
+
'1.13.0'
|
|
47
45
|
];
|
|
48
46
|
}
|
|
49
47
|
get name() {
|
|
@@ -56,9 +54,9 @@ class SpfxProjectUpgradeCommand extends base_project_command_1.BaseProjectComman
|
|
|
56
54
|
const telemetryProps = super.getTelemetryProperties(args);
|
|
57
55
|
telemetryProps.toVersion = args.options.toVersion || this.supportedVersions[this.supportedVersions.length - 1];
|
|
58
56
|
// uncomment to support upgrading to preview releases
|
|
59
|
-
if (
|
|
60
|
-
|
|
61
|
-
}
|
|
57
|
+
// if (prerelease(telemetryProps.toVersion) && !args.options.preview) {
|
|
58
|
+
// telemetryProps.toVersion = this.supportedVersions[this.supportedVersions.length - 2];
|
|
59
|
+
// }
|
|
62
60
|
telemetryProps.packageManager = args.options.packageManager || 'npm';
|
|
63
61
|
telemetryProps.shell = args.options.shell || 'bash';
|
|
64
62
|
telemetryProps.preview = args.options.preview;
|
|
@@ -72,15 +70,15 @@ class SpfxProjectUpgradeCommand extends base_project_command_1.BaseProjectComman
|
|
|
72
70
|
}
|
|
73
71
|
this.toVersion = args.options.toVersion ? args.options.toVersion : this.supportedVersions[this.supportedVersions.length - 1];
|
|
74
72
|
// uncomment to support upgrading to preview releases
|
|
75
|
-
if (!args.options.toVersion &&
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
}
|
|
73
|
+
// if (!args.options.toVersion &&
|
|
74
|
+
// !args.options.preview &&
|
|
75
|
+
// prerelease(this.toVersion)) {
|
|
76
|
+
// // no version and no preview specified while the current version to
|
|
77
|
+
// // upgrade to is a prerelease so let's grab the first non-preview version
|
|
78
|
+
// // since we're supporting only one preview version, it's sufficient for
|
|
79
|
+
// // us to take second to last version
|
|
80
|
+
// this.toVersion = this.supportedVersions[this.supportedVersions.length - 2];
|
|
81
|
+
// }
|
|
84
82
|
this.packageManager = args.options.packageManager || 'npm';
|
|
85
83
|
this.shell = args.options.shell || 'bash';
|
|
86
84
|
if (this.supportedVersions.indexOf(this.toVersion) < 0) {
|
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const cli_1 = require("../../../../cli");
|
|
3
4
|
const Command_1 = require("../../../../Command");
|
|
4
5
|
const config_1 = require("../../../../config");
|
|
5
6
|
const request_1 = require("../../../../request");
|
|
6
7
|
const Utils_1 = require("../../../../Utils");
|
|
7
8
|
const SpoCommand_1 = require("../../../base/SpoCommand");
|
|
8
9
|
const commands_1 = require("../../commands");
|
|
10
|
+
const SpoContentTypeGetCommand = require("./contenttype-get");
|
|
9
11
|
class SpoContentTypeAddCommand extends SpoCommand_1.default {
|
|
10
12
|
get name() {
|
|
11
13
|
return commands_1.default.CONTENTTYPE_ADD;
|
|
@@ -52,7 +54,25 @@ class SpoContentTypeAddCommand extends SpoCommand_1.default {
|
|
|
52
54
|
cb(new Command_1.CommandError(response.ErrorInfo.ErrorMessage));
|
|
53
55
|
return;
|
|
54
56
|
}
|
|
55
|
-
|
|
57
|
+
const options = {
|
|
58
|
+
webUrl: args.options.webUrl,
|
|
59
|
+
listTitle: args.options.listTitle,
|
|
60
|
+
id: args.options.id,
|
|
61
|
+
output: 'json',
|
|
62
|
+
debug: this.debug,
|
|
63
|
+
verbose: this.verbose
|
|
64
|
+
};
|
|
65
|
+
cli_1.Cli.executeCommandWithOutput(SpoContentTypeGetCommand, { options: Object.assign(Object.assign({}, options), { _: [] }) })
|
|
66
|
+
.then((res) => {
|
|
67
|
+
if (this.debug) {
|
|
68
|
+
logger.logToStderr(res.stderr);
|
|
69
|
+
}
|
|
70
|
+
logger.log(JSON.parse(res.stdout));
|
|
71
|
+
cb();
|
|
72
|
+
}, (err) => {
|
|
73
|
+
cb(err.error);
|
|
74
|
+
});
|
|
75
|
+
return;
|
|
56
76
|
}, (err) => this.handleRejectedPromise(err, logger, cb));
|
|
57
77
|
}
|
|
58
78
|
getParentInfo(listTitle, webUrl, logger) {
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const request_1 = require("../../../../request");
|
|
4
|
+
const Utils_1 = require("../../../../Utils");
|
|
5
|
+
const SpoCommand_1 = require("../../../base/SpoCommand");
|
|
6
|
+
const commands_1 = require("../../commands");
|
|
7
|
+
class SpoListItemAttachmentListCommand extends SpoCommand_1.default {
|
|
8
|
+
get name() {
|
|
9
|
+
return commands_1.default.LISTITEM_ATTACHMENT_LIST;
|
|
10
|
+
}
|
|
11
|
+
get description() {
|
|
12
|
+
return 'Gets the attachments associated to a list item';
|
|
13
|
+
}
|
|
14
|
+
getTelemetryProperties(args) {
|
|
15
|
+
const telemetryProps = super.getTelemetryProperties(args);
|
|
16
|
+
telemetryProps.listId = typeof args.options.listId !== 'undefined';
|
|
17
|
+
telemetryProps.listTitle = typeof args.options.listTitle !== 'undefined';
|
|
18
|
+
return telemetryProps;
|
|
19
|
+
}
|
|
20
|
+
defaultProperties() {
|
|
21
|
+
return ['FileName', 'ServerRelativeUrl'];
|
|
22
|
+
}
|
|
23
|
+
commandAction(logger, args, cb) {
|
|
24
|
+
const listIdArgument = args.options.listId || '';
|
|
25
|
+
const listTitleArgument = args.options.listTitle || '';
|
|
26
|
+
const listRestUrl = (args.options.listId ?
|
|
27
|
+
`${args.options.webUrl}/_api/web/lists(guid'${encodeURIComponent(listIdArgument)}')`
|
|
28
|
+
: `${args.options.webUrl}/_api/web/lists/getByTitle('${encodeURIComponent(listTitleArgument)}')`);
|
|
29
|
+
const requestOptions = {
|
|
30
|
+
url: `${listRestUrl}/items(${args.options.itemId})?$select=AttachmentFiles&$expand=AttachmentFiles`,
|
|
31
|
+
method: 'GET',
|
|
32
|
+
headers: {
|
|
33
|
+
'accept': 'application/json;odata=nometadata'
|
|
34
|
+
},
|
|
35
|
+
responseType: 'json'
|
|
36
|
+
};
|
|
37
|
+
request_1.default
|
|
38
|
+
.get(requestOptions)
|
|
39
|
+
.then((attachmentFiles) => {
|
|
40
|
+
if (attachmentFiles.AttachmentFiles && attachmentFiles.AttachmentFiles.length > 0) {
|
|
41
|
+
logger.log(attachmentFiles.AttachmentFiles);
|
|
42
|
+
}
|
|
43
|
+
else {
|
|
44
|
+
if (this.verbose) {
|
|
45
|
+
logger.logToStderr('No attachments found');
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
cb();
|
|
49
|
+
}, (err) => this.handleRejectedODataJsonPromise(err, logger, cb));
|
|
50
|
+
}
|
|
51
|
+
options() {
|
|
52
|
+
const options = [
|
|
53
|
+
{
|
|
54
|
+
option: '-u, --webUrl <webUrl>'
|
|
55
|
+
},
|
|
56
|
+
{
|
|
57
|
+
option: '--itemId <itemId>'
|
|
58
|
+
},
|
|
59
|
+
{
|
|
60
|
+
option: '--listId [listId]'
|
|
61
|
+
},
|
|
62
|
+
{
|
|
63
|
+
option: '--listTitle [listTitle]'
|
|
64
|
+
}
|
|
65
|
+
];
|
|
66
|
+
const parentOptions = super.options();
|
|
67
|
+
return options.concat(parentOptions);
|
|
68
|
+
}
|
|
69
|
+
validate(args) {
|
|
70
|
+
const isValidSharePointUrl = SpoCommand_1.default.isValidSharePointUrl(args.options.webUrl);
|
|
71
|
+
if (isValidSharePointUrl !== true) {
|
|
72
|
+
return isValidSharePointUrl;
|
|
73
|
+
}
|
|
74
|
+
if (!args.options.listId && !args.options.listTitle) {
|
|
75
|
+
return `Specify listId or listTitle`;
|
|
76
|
+
}
|
|
77
|
+
if (args.options.listId && args.options.listTitle) {
|
|
78
|
+
return `Specify listId or listTitle but not both`;
|
|
79
|
+
}
|
|
80
|
+
if (args.options.listId && !Utils_1.default.isValidGuid(args.options.listId)) {
|
|
81
|
+
return `${args.options.listId} in option listId is not a valid GUID`;
|
|
82
|
+
}
|
|
83
|
+
if (isNaN(parseInt(args.options.itemId))) {
|
|
84
|
+
return `${args.options.itemId} is not a number`;
|
|
85
|
+
}
|
|
86
|
+
return true;
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
module.exports = new SpoListItemAttachmentListCommand();
|
|
90
|
+
//# sourceMappingURL=listitem-attachment-list.js.map
|
|
@@ -107,6 +107,7 @@ exports.default = {
|
|
|
107
107
|
LIST_WEBHOOK_REMOVE: `${prefix} list webhook remove`,
|
|
108
108
|
LIST_WEBHOOK_SET: `${prefix} list webhook set`,
|
|
109
109
|
LISTITEM_ADD: `${prefix} listitem add`,
|
|
110
|
+
LISTITEM_ATTACHMENT_LIST: `${prefix} listitem attachment list`,
|
|
110
111
|
LISTITEM_GET: `${prefix} listitem get`,
|
|
111
112
|
LISTITEM_ISRECORD: `${prefix} listitem isrecord`,
|
|
112
113
|
LISTITEM_LIST: `${prefix} listitem list`,
|
|
@@ -22,7 +22,7 @@ class TeamsReportPstncallsCommand extends GraphCommand_1.default {
|
|
|
22
22
|
commandAction(logger, args, cb) {
|
|
23
23
|
const toDateTimeParameter = encodeURIComponent(args.options.toDateTime ? args.options.toDateTime : new Date().toISOString());
|
|
24
24
|
const requestOptions = {
|
|
25
|
-
url: `${this.resource}/
|
|
25
|
+
url: `${this.resource}/v1.0/communications/callRecords/getPstnCalls(fromDateTime=${encodeURIComponent(args.options.fromDateTime)},toDateTime=${toDateTimeParameter})`,
|
|
26
26
|
headers: {
|
|
27
27
|
accept: 'application/json;odata.metadata=none'
|
|
28
28
|
},
|
|
@@ -35,4 +35,5 @@ m365 aad oauth2grant remove --grantId YgA60KYa4UOPSdc-lpxYEnQkr8KVLDpCsOXkiV8i-e
|
|
|
35
35
|
|
|
36
36
|
## More information
|
|
37
37
|
|
|
38
|
-
- Application and service principal objects in Azure Active Directory (Azure AD): [https://docs.microsoft.com/en-us/azure/active-directory/develop/active-directory-application-objects](https://docs.microsoft.com/en-us/azure/active-directory/develop/active-directory-application-objects)
|
|
38
|
+
- Application and service principal objects in Azure Active Directory (Azure AD): [https://docs.microsoft.com/en-us/azure/active-directory/develop/active-directory-application-objects](https://docs.microsoft.com/en-us/azure/active-directory/develop/active-directory-application-objects)
|
|
39
|
+
- Delete a delegated permission grant (oAuth2PermissionGrant): [https://docs.microsoft.com/en-us/graph/api/oauth2permissiongrant-delete?view=graph-rest-1.0](https://docs.microsoft.com/en-us/graph/api/oauth2permissiongrant-delete?view=graph-rest-1.0)
|
|
@@ -22,7 +22,7 @@ m365 aad oauth2grant set [options]
|
|
|
22
22
|
|
|
23
23
|
Before you can update service principal's OAuth2 permissions, you need to get the `objectId` of the permissions grant to update. You can retrieve it using the [aad oauth2grant list](./oauth2grant-list.md) command.
|
|
24
24
|
|
|
25
|
-
If the `objectId` listed when using the [aad oauth2grant list](./oauth2grant-list.md) command has a minus sign ('-') prefix, you may receive an error indicating `--grantId` is missing.
|
|
25
|
+
If the `objectId` listed when using the [aad oauth2grant list](./oauth2grant-list.md) command has a minus sign ('-') prefix, you may receive an error indicating `--grantId` is missing. To resolve this issue simply escape the leading '-'.
|
|
26
26
|
|
|
27
27
|
```sh
|
|
28
28
|
m365 aad oauth2grant set --grantId \\-Zc1JRY8REeLxmXz5KtixAYU3Q6noCBPlhwGiX7pxmU
|
|
@@ -38,4 +38,5 @@ m365 aad oauth2grant set --grantId YgA60KYa4UOPSdc-lpxYEnQkr8KVLDpCsOXkiV8i-ek -
|
|
|
38
38
|
|
|
39
39
|
## More information
|
|
40
40
|
|
|
41
|
-
- Application and service principal objects in Azure Active Directory (Azure AD): [https://docs.microsoft.com/en-us/azure/active-directory/develop/active-directory-application-objects](https://docs.microsoft.com/en-us/azure/active-directory/develop/active-directory-application-objects)
|
|
41
|
+
- Application and service principal objects in Azure Active Directory (Azure AD): [https://docs.microsoft.com/en-us/azure/active-directory/develop/active-directory-application-objects](https://docs.microsoft.com/en-us/azure/active-directory/develop/active-directory-application-objects)
|
|
42
|
+
- Update a delegated permission grant (oAuth2PermissionGrant): [https://docs.microsoft.com/en-us/graph/api/oauth2permissiongrant-update?view=graph-rest-1.0](https://docs.microsoft.com/en-us/graph/api/oauth2permissiongrant-update?view=graph-rest-1.0)
|
|
@@ -47,4 +47,5 @@ m365 aad sp get --objectId b2307a39-e878-458b-bc90-03bc578531dd
|
|
|
47
47
|
|
|
48
48
|
## More information
|
|
49
49
|
|
|
50
|
-
- Application and service principal objects in Azure Active Directory (Azure AD): [https://docs.microsoft.com/en-us/azure/active-directory/develop/active-directory-application-objects](https://docs.microsoft.com/en-us/azure/active-directory/develop/active-directory-application-objects)
|
|
50
|
+
- Application and service principal objects in Azure Active Directory (Azure AD): [https://docs.microsoft.com/en-us/azure/active-directory/develop/active-directory-application-objects](https://docs.microsoft.com/en-us/azure/active-directory/develop/active-directory-application-objects)
|
|
51
|
+
- Get servicePrincipal: [https://docs.microsoft.com/en-us/graph/api/serviceprincipal-get?view=graph-rest-1.0](https://docs.microsoft.com/en-us/graph/api/serviceprincipal-get?view=graph-rest-1.0)
|
|
@@ -32,7 +32,7 @@ m365 spfx project upgrade [options]
|
|
|
32
32
|
|
|
33
33
|
## Remarks
|
|
34
34
|
|
|
35
|
-
The `spfx project upgrade` command helps you upgrade your SharePoint Framework project to the specified version. If no version is specified, the command will upgrade to the latest version of the SharePoint Framework it supports (v1.
|
|
35
|
+
The `spfx project upgrade` command helps you upgrade your SharePoint Framework project to the specified version. If no version is specified, the command will upgrade to the latest version of the SharePoint Framework it supports (v1.13.0).
|
|
36
36
|
|
|
37
37
|
This command doesn't change your project files. Instead, it gives you a report with all steps necessary to upgrade your project to the specified version of the SharePoint Framework. Changing project files is error-prone, especially when it comes to updating your solution's code. This is why at this moment, this command produces a report that you can use yourself to perform the necessary updates and verify that everything is working as expected.
|
|
38
38
|
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
# spo listitem attachment list
|
|
2
|
+
|
|
3
|
+
Gets the attachments associated to a list item
|
|
4
|
+
|
|
5
|
+
## Usage
|
|
6
|
+
|
|
7
|
+
```sh
|
|
8
|
+
m365 spo listitem attachment list [options]
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
## Options
|
|
12
|
+
|
|
13
|
+
`-u, --webUrl <webUrl>`
|
|
14
|
+
URL of the site from which the item should be retrieved
|
|
15
|
+
|
|
16
|
+
`--listId [listId]`
|
|
17
|
+
: ID of the list from which to retrieve the item. Specify listId or listTitle but not both
|
|
18
|
+
|
|
19
|
+
`--listTitle [listTitle]`
|
|
20
|
+
: Title of the list from which to retrieve the item. Specify listId or listTitle but not both
|
|
21
|
+
|
|
22
|
+
`--itemId <itemId>`
|
|
23
|
+
ID of the list item to in question
|
|
24
|
+
|
|
25
|
+
--8<-- "docs/cmd/_global.md"
|
|
26
|
+
|
|
27
|
+
## Examples
|
|
28
|
+
|
|
29
|
+
Gets the attachments from list item with itemId _147_ in list with title _Demo List_ in site _https://contoso.sharepoint.com/sites/project-x_
|
|
30
|
+
|
|
31
|
+
```sh
|
|
32
|
+
m365 spo listitem attachment list --webUrl https://contoso.sharepoint.com/sites/project-x --listTitle "Demo List" --itemId 147
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
Gets the attachments from list item with itemId _147_ in list with id _0cd891ef-afce-4e55-b836-fce03286cccf_ in site _https://contoso.sharepoint.com/sites/project-x_
|
|
36
|
+
|
|
37
|
+
```sh
|
|
38
|
+
m365 spo listitem attachment list --webUrl https://contoso.sharepoint.com/sites/project-x --listId 0cd891ef-afce-4e55-b836-fce03286cccf --itemId 147
|
|
39
|
+
```
|
|
@@ -24,9 +24,6 @@ This command only works with app-only permissions. You will need to create your
|
|
|
24
24
|
|
|
25
25
|
The difference between `fromDateTime` and `toDateTime` cannot exceed a period of 90 days
|
|
26
26
|
|
|
27
|
-
!!! attention
|
|
28
|
-
This command is based on an API that is currently in preview and is subject to change once the API reached general availability.
|
|
29
|
-
|
|
30
27
|
## Examples
|
|
31
28
|
|
|
32
29
|
Get details about PSTN calls made between 2020-10-31 and today
|
|
@@ -46,3 +43,7 @@ Get details about PSTN calls made between 2020-10-31 and 2020-12-31 and exports
|
|
|
46
43
|
```sh
|
|
47
44
|
m365 teams report pstncalls --fromDateTime 2020-10-31 --toDateTime 2020-12-31 --output json > "pstncalls.json"
|
|
48
45
|
```
|
|
46
|
+
|
|
47
|
+
## More information
|
|
48
|
+
|
|
49
|
+
- List PSTN calls: [https://docs.microsoft.com/en-us/graph/api/callrecords-callrecord-getpstncalls?view=graph-rest-1.0](https://docs.microsoft.com/en-us/graph/api/callrecords-callrecord-getpstncalls?view=graph-rest-1.0)
|
package/npm-shrinkwrap.json
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pnp/cli-microsoft365",
|
|
3
|
-
"version": "4.
|
|
3
|
+
"version": "4.2.0",
|
|
4
4
|
"lockfileVersion": 2,
|
|
5
5
|
"requires": true,
|
|
6
6
|
"packages": {
|
|
7
7
|
"": {
|
|
8
8
|
"name": "@pnp/cli-microsoft365",
|
|
9
|
-
"version": "4.
|
|
9
|
+
"version": "4.2.0",
|
|
10
10
|
"license": "MIT",
|
|
11
11
|
"dependencies": {
|
|
12
12
|
"@azure/msal-node": "^1.3.2",
|
package/package.json
CHANGED
|
@@ -1,116 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const request_1 = require("../../../../request");
|
|
4
|
-
const Utils_1 = require("../../../../Utils");
|
|
5
|
-
const GraphCommand_1 = require("../../../base/GraphCommand");
|
|
6
|
-
const commands_1 = require("../../commands");
|
|
7
|
-
class AadServicePrincipalGetCommand extends GraphCommand_1.default {
|
|
8
|
-
get name() {
|
|
9
|
-
return commands_1.default.SERVICEPRINCIPAL_GET;
|
|
10
|
-
}
|
|
11
|
-
get description() {
|
|
12
|
-
return 'Retrieves a service principal from Azure AD directory';
|
|
13
|
-
}
|
|
14
|
-
getTelemetryProperties(args) {
|
|
15
|
-
const telemetryProps = super.getTelemetryProperties(args);
|
|
16
|
-
telemetryProps.id = typeof args.options.id !== 'undefined';
|
|
17
|
-
telemetryProps.appId = typeof args.options.appId !== 'undefined';
|
|
18
|
-
telemetryProps.name = typeof args.options.name !== 'undefined';
|
|
19
|
-
return telemetryProps;
|
|
20
|
-
}
|
|
21
|
-
getServicePrincipalId(args) {
|
|
22
|
-
if (args.options.id) {
|
|
23
|
-
return Promise.resolve(args.options.id);
|
|
24
|
-
}
|
|
25
|
-
let requestURL = '';
|
|
26
|
-
if (args.options.appId) {
|
|
27
|
-
requestURL = `${this.resource}/v1.0/serviceprincipals?$filter=appId eq '${encodeURIComponent(args.options.appId)}'&$select=id`;
|
|
28
|
-
}
|
|
29
|
-
else {
|
|
30
|
-
requestURL = `${this.resource}/v1.0/serviceprincipals?$filter=displayName eq '${encodeURIComponent(args.options.name)}'&$select=id`;
|
|
31
|
-
}
|
|
32
|
-
const requestOptions = {
|
|
33
|
-
url: requestURL,
|
|
34
|
-
headers: {
|
|
35
|
-
accept: 'application/json;odata.metadata=none',
|
|
36
|
-
ConsistencyLevel: 'eventual'
|
|
37
|
-
},
|
|
38
|
-
responseType: 'json'
|
|
39
|
-
};
|
|
40
|
-
return request_1.default
|
|
41
|
-
.get(requestOptions)
|
|
42
|
-
.then(response => {
|
|
43
|
-
const servicePrincipalItem = response.value[0];
|
|
44
|
-
if (!servicePrincipalItem) {
|
|
45
|
-
return Promise.reject(`The specified service principal doesn't exist in Azure AD`);
|
|
46
|
-
}
|
|
47
|
-
if (response.value.length > 1 && args.options.name) {
|
|
48
|
-
return Promise.reject(`Multiple service principals with name ${args.options.name} found: ${response.value.map(x => x.id)}`);
|
|
49
|
-
}
|
|
50
|
-
if (response.value.length > 1 && args.options.appId) {
|
|
51
|
-
return Promise.reject(`Multiple service principals with appId ${args.options.appId} found: ${response.value.map(x => x.id)}`);
|
|
52
|
-
}
|
|
53
|
-
return Promise.resolve(servicePrincipalItem.id);
|
|
54
|
-
});
|
|
55
|
-
}
|
|
56
|
-
commandAction(logger, args, cb) {
|
|
57
|
-
this
|
|
58
|
-
.getServicePrincipalId(args)
|
|
59
|
-
.then((servicePrincipalId) => {
|
|
60
|
-
const requestOptions = {
|
|
61
|
-
url: `${this.resource}/v1.0/serviceprincipals/${encodeURIComponent(servicePrincipalId)}`,
|
|
62
|
-
headers: {
|
|
63
|
-
accept: 'application/json;odata.metadata=none',
|
|
64
|
-
ConsistencyLevel: 'eventual'
|
|
65
|
-
},
|
|
66
|
-
responseType: 'json'
|
|
67
|
-
};
|
|
68
|
-
return request_1.default.get(requestOptions);
|
|
69
|
-
})
|
|
70
|
-
.then((res) => {
|
|
71
|
-
logger.log(res);
|
|
72
|
-
cb();
|
|
73
|
-
}, (err) => this.handleRejectedODataJsonPromise(err, logger, cb));
|
|
74
|
-
}
|
|
75
|
-
options() {
|
|
76
|
-
const options = [
|
|
77
|
-
{
|
|
78
|
-
option: '-i, --id [id]'
|
|
79
|
-
},
|
|
80
|
-
{
|
|
81
|
-
option: '--appId [appId]'
|
|
82
|
-
},
|
|
83
|
-
{
|
|
84
|
-
option: '--n, --name [name]'
|
|
85
|
-
}
|
|
86
|
-
];
|
|
87
|
-
const parentOptions = super.options();
|
|
88
|
-
return options.concat(parentOptions);
|
|
89
|
-
}
|
|
90
|
-
validate(args) {
|
|
91
|
-
if (args.options.id && args.options.appId && args.options.name) {
|
|
92
|
-
return 'Specify either id, appId or name, but not all.';
|
|
93
|
-
}
|
|
94
|
-
if (args.options.id && args.options.appId) {
|
|
95
|
-
return 'Specify either id or appId, but not both.';
|
|
96
|
-
}
|
|
97
|
-
if (args.options.appId && args.options.name) {
|
|
98
|
-
return 'Specify either appId or name, but not both.';
|
|
99
|
-
}
|
|
100
|
-
if (args.options.name && args.options.id) {
|
|
101
|
-
return 'Specify either id or name, but not both.';
|
|
102
|
-
}
|
|
103
|
-
if (!args.options.id && !args.options.appId && !args.options.name) {
|
|
104
|
-
return 'Specify id, appId or name, one is required';
|
|
105
|
-
}
|
|
106
|
-
if (args.options.id && !Utils_1.default.isValidGuid(args.options.id)) {
|
|
107
|
-
return `${args.options.id} is not a valid GUID`;
|
|
108
|
-
}
|
|
109
|
-
if (args.options.appId && !Utils_1.default.isValidGuid(args.options.appId)) {
|
|
110
|
-
return `${args.options.appId} is not a valid GUID`;
|
|
111
|
-
}
|
|
112
|
-
return true;
|
|
113
|
-
}
|
|
114
|
-
}
|
|
115
|
-
module.exports = new AadServicePrincipalGetCommand();
|
|
116
|
-
//# sourceMappingURL=serviceprincipal-get.js.map
|
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
# aad serviceprincipal get
|
|
2
|
-
|
|
3
|
-
Retrieves a service principal from Azure AD directory
|
|
4
|
-
|
|
5
|
-
## Usage
|
|
6
|
-
|
|
7
|
-
```sh
|
|
8
|
-
m365 aad serviceprincipal get
|
|
9
|
-
```
|
|
10
|
-
|
|
11
|
-
## Options
|
|
12
|
-
|
|
13
|
-
`-i, --id [id]`
|
|
14
|
-
: The ID of the service principal to retrieve information for. Specify either `id`, `appId` or `name`
|
|
15
|
-
|
|
16
|
-
`-n, --name [name]`
|
|
17
|
-
: The display name of the service principal to retrieve information for. Specify either `id`, `appId` or `name`
|
|
18
|
-
|
|
19
|
-
`--appId [appId]`
|
|
20
|
-
: The appId of the service principal to retrieve information for. Specify either `id` or `appId` or `name`
|
|
21
|
-
|
|
22
|
-
--8<-- "docs/cmd/_global.md"
|
|
23
|
-
|
|
24
|
-
## Examples
|
|
25
|
-
|
|
26
|
-
Get information about the service principal with id _1caf7dcd-7e83-4c3a-94f7-932a1299c843_
|
|
27
|
-
|
|
28
|
-
```sh
|
|
29
|
-
m365 aad serviceprincipal get --id 1caf7dcd-7e83-4c3a-94f7-932a1299c843
|
|
30
|
-
```
|
|
31
|
-
|
|
32
|
-
Get information about service principal with name _ServicePrincipal App_
|
|
33
|
-
|
|
34
|
-
```sh
|
|
35
|
-
m365 aad serviceprincipal get --name "ServicePrincipal App"
|
|
36
|
-
```
|
|
37
|
-
|
|
38
|
-
Get information about service principal with appId _8a2a376d-5f57-4c14-9639-692f841c00bc_
|
|
39
|
-
|
|
40
|
-
```sh
|
|
41
|
-
m365 aad serviceprincipal get --appId "8a2a376d-5f57-4c14-9639-692f841c00bc"
|
|
42
|
-
```
|