@pnp/cli-microsoft365 9.1.0-beta.d9b8f73 → 9.1.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.
- package/allCommands.json +1 -1
- package/allCommandsFull.json +1 -1
- package/dist/m365/spfx/commands/project/project-doctor/{doctor-1.20.0-rc.1.js → doctor-1.20.0.js} +4 -2
- package/dist/m365/spfx/commands/project/project-doctor/rules/FN002021_DEVDEP_rushstack_eslint_config.js +10 -0
- package/dist/m365/spfx/commands/project/project-doctor.js +1 -1
- package/dist/m365/spfx/commands/project/project-upgrade/{upgrade-1.20.0-rc.1.js → upgrade-1.20.0.js} +28 -26
- package/dist/m365/spfx/commands/project/project-upgrade.js +13 -15
- package/dist/m365/spfx/commands/spfx-doctor.js +1 -1
- package/dist/m365/spo/commands/page/page-remove.js +37 -16
- package/dist/m365/spo/commands/site/site-sharingpermission-set.js +68 -0
- package/dist/m365/spo/commands.js +1 -0
- package/dist/utils/urlUtil.js +8 -0
- package/docs/docs/cmd/spfx/project/project-upgrade.mdx +1 -1
- package/docs/docs/cmd/spo/page/page-remove.mdx +30 -12
- package/docs/docs/cmd/spo/site/site-sharingpermission-set.mdx +58 -0
- package/package.json +2 -2
package/dist/m365/spfx/commands/project/project-doctor/{doctor-1.20.0-rc.1.js → doctor-1.20.0.js}
RENAMED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { FN002021_DEVDEP_rushstack_eslint_config } from '../project-upgrade/rules/FN002021_DEVDEP_rushstack_eslint_config.js';
|
|
1
2
|
import { FN001008_DEP_react } from './rules/FN001008_DEP_react.js';
|
|
2
3
|
import { FN001009_DEP_react_dom } from './rules/FN001009_DEP_react_dom.js';
|
|
3
4
|
import { FN001035_DEP_fluentui_react } from './rules/FN001035_DEP_fluentui_react.js';
|
|
@@ -19,7 +20,8 @@ export default [
|
|
|
19
20
|
new FN002015_DEVDEP_types_react('17'),
|
|
20
21
|
new FN002016_DEVDEP_types_react_dom('17'),
|
|
21
22
|
new FN002019_DEVDEP_microsoft_rush_stack_compiler(['4.7']),
|
|
23
|
+
new FN002021_DEVDEP_rushstack_eslint_config('4.0.1'),
|
|
22
24
|
new FN021001_PKG_spfx_deps_versions_match_project_version(false),
|
|
23
|
-
new FN021013_PKG_spfx_devdeps_match_version('1.20.
|
|
25
|
+
new FN021013_PKG_spfx_devdeps_match_version('1.20.2')
|
|
24
26
|
];
|
|
25
|
-
//# sourceMappingURL=doctor-1.20.0
|
|
27
|
+
//# sourceMappingURL=doctor-1.20.0.js.map
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { DependencyRule } from './DependencyRule.js';
|
|
2
|
+
export class FN002021_DEVDEP_rushstack_eslint_config extends DependencyRule {
|
|
3
|
+
constructor(supportedRange) {
|
|
4
|
+
super('@rushstack/eslint-config', supportedRange, true);
|
|
5
|
+
}
|
|
6
|
+
get id() {
|
|
7
|
+
return 'FN002021';
|
|
8
|
+
}
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=FN002021_DEVDEP_rushstack_eslint_config.js.map
|
|
@@ -71,7 +71,7 @@ class SpfxProjectDoctorCommand extends BaseProjectCommand {
|
|
|
71
71
|
'1.18.1',
|
|
72
72
|
'1.18.2',
|
|
73
73
|
'1.19.0',
|
|
74
|
-
'1.20.0
|
|
74
|
+
'1.20.0'
|
|
75
75
|
];
|
|
76
76
|
__classPrivateFieldGet(this, _SpfxProjectDoctorCommand_instances, "m", _SpfxProjectDoctorCommand_initTelemetry).call(this);
|
|
77
77
|
__classPrivateFieldGet(this, _SpfxProjectDoctorCommand_instances, "m", _SpfxProjectDoctorCommand_initOptions).call(this);
|
package/dist/m365/spfx/commands/project/project-upgrade/{upgrade-1.20.0-rc.1.js → upgrade-1.20.0.js}
RENAMED
|
@@ -20,38 +20,40 @@ import { FN001032_DEP_microsoft_sp_page_context } from './rules/FN001032_DEP_mic
|
|
|
20
20
|
import { FN001034_DEP_microsoft_sp_adaptive_card_extension_base } from './rules/FN001034_DEP_microsoft_sp_adaptive_card_extension_base.js';
|
|
21
21
|
import { FN002001_DEVDEP_microsoft_sp_build_web } from './rules/FN002001_DEVDEP_microsoft_sp_build_web.js';
|
|
22
22
|
import { FN002002_DEVDEP_microsoft_sp_module_interfaces } from './rules/FN002002_DEVDEP_microsoft_sp_module_interfaces.js';
|
|
23
|
+
import { FN002021_DEVDEP_rushstack_eslint_config } from './rules/FN002021_DEVDEP_rushstack_eslint_config.js';
|
|
23
24
|
import { FN002022_DEVDEP_microsoft_eslint_plugin_spfx } from './rules/FN002022_DEVDEP_microsoft_eslint_plugin_spfx.js';
|
|
24
25
|
import { FN002023_DEVDEP_microsoft_eslint_config_spfx } from './rules/FN002023_DEVDEP_microsoft_eslint_config_spfx.js';
|
|
25
26
|
import { FN002024_DEVDEP_eslint } from './rules/FN002024_DEVDEP_eslint.js';
|
|
26
27
|
import { FN010001_YORC_version } from './rules/FN010001_YORC_version.js';
|
|
27
28
|
import { FN010010_YORC_sdkVersions_teams_js } from './rules/FN010010_YORC_sdkVersions_teams_js.js';
|
|
28
29
|
export default [
|
|
29
|
-
new FN001001_DEP_microsoft_sp_core_library('1.20.0
|
|
30
|
-
new FN001002_DEP_microsoft_sp_lodash_subset('1.20.0
|
|
31
|
-
new FN001003_DEP_microsoft_sp_office_ui_fabric_core('1.20.0
|
|
32
|
-
new FN001004_DEP_microsoft_sp_webpart_base('1.20.0
|
|
33
|
-
new FN001011_DEP_microsoft_sp_dialog('1.20.0
|
|
34
|
-
new FN001012_DEP_microsoft_sp_application_base('1.20.0
|
|
35
|
-
new FN001014_DEP_microsoft_sp_listview_extensibility('1.20.0
|
|
36
|
-
new FN001021_DEP_microsoft_sp_property_pane('1.20.0
|
|
37
|
-
new FN001023_DEP_microsoft_sp_component_base('1.20.0
|
|
38
|
-
new FN001024_DEP_microsoft_sp_diagnostics('1.20.0
|
|
39
|
-
new FN001025_DEP_microsoft_sp_dynamic_data('1.20.0
|
|
40
|
-
new FN001026_DEP_microsoft_sp_extension_base('1.20.0
|
|
41
|
-
new FN001027_DEP_microsoft_sp_http('1.20.0
|
|
42
|
-
new FN001028_DEP_microsoft_sp_list_subscription('1.20.0
|
|
43
|
-
new FN001029_DEP_microsoft_sp_loader('1.20.0
|
|
44
|
-
new FN001030_DEP_microsoft_sp_module_interfaces('1.20.0
|
|
45
|
-
new FN001031_DEP_microsoft_sp_odata_types('1.20.0
|
|
46
|
-
new FN001032_DEP_microsoft_sp_page_context('1.20.0
|
|
47
|
-
new FN001013_DEP_microsoft_decorators('1.20.0
|
|
48
|
-
new FN001034_DEP_microsoft_sp_adaptive_card_extension_base('1.20.0
|
|
49
|
-
new FN002001_DEVDEP_microsoft_sp_build_web('1.20.
|
|
50
|
-
new FN002002_DEVDEP_microsoft_sp_module_interfaces('1.20.
|
|
30
|
+
new FN001001_DEP_microsoft_sp_core_library('1.20.0'),
|
|
31
|
+
new FN001002_DEP_microsoft_sp_lodash_subset('1.20.0'),
|
|
32
|
+
new FN001003_DEP_microsoft_sp_office_ui_fabric_core('1.20.0'),
|
|
33
|
+
new FN001004_DEP_microsoft_sp_webpart_base('1.20.0'),
|
|
34
|
+
new FN001011_DEP_microsoft_sp_dialog('1.20.0'),
|
|
35
|
+
new FN001012_DEP_microsoft_sp_application_base('1.20.0'),
|
|
36
|
+
new FN001014_DEP_microsoft_sp_listview_extensibility('1.20.0'),
|
|
37
|
+
new FN001021_DEP_microsoft_sp_property_pane('1.20.0'),
|
|
38
|
+
new FN001023_DEP_microsoft_sp_component_base('1.20.0'),
|
|
39
|
+
new FN001024_DEP_microsoft_sp_diagnostics('1.20.0'),
|
|
40
|
+
new FN001025_DEP_microsoft_sp_dynamic_data('1.20.0'),
|
|
41
|
+
new FN001026_DEP_microsoft_sp_extension_base('1.20.0'),
|
|
42
|
+
new FN001027_DEP_microsoft_sp_http('1.20.0'),
|
|
43
|
+
new FN001028_DEP_microsoft_sp_list_subscription('1.20.0'),
|
|
44
|
+
new FN001029_DEP_microsoft_sp_loader('1.20.0'),
|
|
45
|
+
new FN001030_DEP_microsoft_sp_module_interfaces('1.20.0'),
|
|
46
|
+
new FN001031_DEP_microsoft_sp_odata_types('1.20.0'),
|
|
47
|
+
new FN001032_DEP_microsoft_sp_page_context('1.20.0'),
|
|
48
|
+
new FN001013_DEP_microsoft_decorators('1.20.0'),
|
|
49
|
+
new FN001034_DEP_microsoft_sp_adaptive_card_extension_base('1.20.0'),
|
|
50
|
+
new FN002001_DEVDEP_microsoft_sp_build_web('1.20.2'),
|
|
51
|
+
new FN002002_DEVDEP_microsoft_sp_module_interfaces('1.20.2'),
|
|
52
|
+
new FN002021_DEVDEP_rushstack_eslint_config('4.0.1'),
|
|
51
53
|
new FN002024_DEVDEP_eslint('8.57.0'),
|
|
52
|
-
new FN002022_DEVDEP_microsoft_eslint_plugin_spfx('1.20.
|
|
53
|
-
new FN002023_DEVDEP_microsoft_eslint_config_spfx('1.20.
|
|
54
|
-
new FN010001_YORC_version('1.20.0
|
|
54
|
+
new FN002022_DEVDEP_microsoft_eslint_plugin_spfx('1.20.2'),
|
|
55
|
+
new FN002023_DEVDEP_microsoft_eslint_config_spfx('1.20.2'),
|
|
56
|
+
new FN010001_YORC_version('1.20.0'),
|
|
55
57
|
new FN010010_YORC_sdkVersions_teams_js('2.24.0')
|
|
56
58
|
];
|
|
57
|
-
//# sourceMappingURL=upgrade-1.20.0
|
|
59
|
+
//# sourceMappingURL=upgrade-1.20.0.js.map
|
|
@@ -7,8 +7,6 @@ var _SpfxProjectUpgradeCommand_instances, _a, _SpfxProjectUpgradeCommand_initTel
|
|
|
7
7
|
import fs from 'fs';
|
|
8
8
|
import os from 'os';
|
|
9
9
|
import path from 'path';
|
|
10
|
-
// uncomment to support upgrading to preview releases
|
|
11
|
-
import { prerelease } from 'semver';
|
|
12
10
|
import { CommandError } from '../../../../Command.js';
|
|
13
11
|
import { fsUtil } from '../../../../utils/fsUtil.js';
|
|
14
12
|
import { packageManager } from '../../../../utils/packageManager.js';
|
|
@@ -75,7 +73,7 @@ class SpfxProjectUpgradeCommand extends BaseProjectCommand {
|
|
|
75
73
|
'1.18.1',
|
|
76
74
|
'1.18.2',
|
|
77
75
|
'1.19.0',
|
|
78
|
-
'1.20.0
|
|
76
|
+
'1.20.0'
|
|
79
77
|
];
|
|
80
78
|
__classPrivateFieldGet(this, _SpfxProjectUpgradeCommand_instances, "m", _SpfxProjectUpgradeCommand_initTelemetry).call(this);
|
|
81
79
|
__classPrivateFieldGet(this, _SpfxProjectUpgradeCommand_instances, "m", _SpfxProjectUpgradeCommand_initOptions).call(this);
|
|
@@ -88,15 +86,15 @@ class SpfxProjectUpgradeCommand extends BaseProjectCommand {
|
|
|
88
86
|
}
|
|
89
87
|
this.toVersion = args.options.toVersion ? args.options.toVersion : this.supportedVersions[this.supportedVersions.length - 1];
|
|
90
88
|
// uncomment to support upgrading to preview releases
|
|
91
|
-
if (!args.options.toVersion &&
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
}
|
|
89
|
+
// if (!args.options.toVersion &&
|
|
90
|
+
// !args.options.preview &&
|
|
91
|
+
// prerelease(this.toVersion)) {
|
|
92
|
+
// // no version and no preview specified while the current version to
|
|
93
|
+
// // upgrade to is a prerelease so let's grab the first non-preview version
|
|
94
|
+
// // since we're supporting only one preview version, it's sufficient for
|
|
95
|
+
// // us to take second to last version
|
|
96
|
+
// this.toVersion = this.supportedVersions[this.supportedVersions.length - 2];
|
|
97
|
+
// }
|
|
100
98
|
this.packageManager = args.options.packageManager || 'npm';
|
|
101
99
|
this.shell = args.options.shell || 'bash';
|
|
102
100
|
if (this.supportedVersions.indexOf(this.toVersion) < 0) {
|
|
@@ -485,9 +483,9 @@ _a = SpfxProjectUpgradeCommand, _SpfxProjectUpgradeCommand_instances = new WeakS
|
|
|
485
483
|
preview: args.options.preview
|
|
486
484
|
});
|
|
487
485
|
// uncomment to support upgrading to preview releases
|
|
488
|
-
if (prerelease(this.telemetryProperties.toVersion) && !args.options.preview) {
|
|
489
|
-
|
|
490
|
-
}
|
|
486
|
+
// if (prerelease(this.telemetryProperties.toVersion) && !args.options.preview) {
|
|
487
|
+
// this.telemetryProperties.toVersion = this.supportedVersions[this.supportedVersions.length - 2];
|
|
488
|
+
// }
|
|
491
489
|
});
|
|
492
490
|
}, _SpfxProjectUpgradeCommand_initOptions = function _SpfxProjectUpgradeCommand_initOptions() {
|
|
493
491
|
this.options.unshift({
|
|
@@ -3,10 +3,10 @@ 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 _SpoPageRemoveCommand_instances, _SpoPageRemoveCommand_initOptions, _SpoPageRemoveCommand_initValidators;
|
|
6
|
+
var _SpoPageRemoveCommand_instances, _SpoPageRemoveCommand_initTelemetry, _SpoPageRemoveCommand_initOptions, _SpoPageRemoveCommand_initValidators, _SpoPageRemoveCommand_initTypes;
|
|
7
7
|
import { cli } from '../../../../cli/cli.js';
|
|
8
8
|
import request from '../../../../request.js';
|
|
9
|
-
import {
|
|
9
|
+
import { formatting } from '../../../../utils/formatting.js';
|
|
10
10
|
import { urlUtil } from '../../../../utils/urlUtil.js';
|
|
11
11
|
import { validation } from '../../../../utils/validation.js';
|
|
12
12
|
import SpoCommand from '../../../base/SpoCommand.js';
|
|
@@ -21,15 +21,17 @@ class SpoPageRemoveCommand extends SpoCommand {
|
|
|
21
21
|
constructor() {
|
|
22
22
|
super();
|
|
23
23
|
_SpoPageRemoveCommand_instances.add(this);
|
|
24
|
+
__classPrivateFieldGet(this, _SpoPageRemoveCommand_instances, "m", _SpoPageRemoveCommand_initTelemetry).call(this);
|
|
24
25
|
__classPrivateFieldGet(this, _SpoPageRemoveCommand_instances, "m", _SpoPageRemoveCommand_initOptions).call(this);
|
|
25
26
|
__classPrivateFieldGet(this, _SpoPageRemoveCommand_instances, "m", _SpoPageRemoveCommand_initValidators).call(this);
|
|
27
|
+
__classPrivateFieldGet(this, _SpoPageRemoveCommand_instances, "m", _SpoPageRemoveCommand_initTypes).call(this);
|
|
26
28
|
}
|
|
27
29
|
async commandAction(logger, args) {
|
|
28
30
|
if (args.options.force) {
|
|
29
31
|
await this.removePage(logger, args);
|
|
30
32
|
}
|
|
31
33
|
else {
|
|
32
|
-
const result = await cli.promptForConfirmation({ message: `Are you sure you want to remove
|
|
34
|
+
const result = await cli.promptForConfirmation({ message: `Are you sure you want to remove page '${args.options.name}'?` });
|
|
33
35
|
if (result) {
|
|
34
36
|
await this.removePage(logger, args);
|
|
35
37
|
}
|
|
@@ -37,44 +39,63 @@ class SpoPageRemoveCommand extends SpoCommand {
|
|
|
37
39
|
}
|
|
38
40
|
async removePage(logger, args) {
|
|
39
41
|
try {
|
|
40
|
-
|
|
41
|
-
let pageName = args.options.name;
|
|
42
|
-
|
|
43
|
-
requestDigest = reqDigest.FormDigestValue;
|
|
44
|
-
if (!pageName.endsWith('.aspx')) {
|
|
42
|
+
// Remove leading slashes from the page name (page can be nested in folders)
|
|
43
|
+
let pageName = urlUtil.removeLeadingSlashes(args.options.name);
|
|
44
|
+
if (!pageName.toLowerCase().endsWith('.aspx')) {
|
|
45
45
|
pageName += '.aspx';
|
|
46
46
|
}
|
|
47
47
|
if (this.verbose) {
|
|
48
48
|
await logger.logToStderr(`Removing page ${pageName}...`);
|
|
49
49
|
}
|
|
50
|
+
const filePath = `${urlUtil.getServerRelativeSiteUrl(args.options.webUrl)}/SitePages/${pageName}`;
|
|
50
51
|
const requestOptions = {
|
|
51
|
-
url: `${args.options
|
|
52
|
-
.webUrl}/_api/web/GetFileByServerRelativePath(DecodedUrl='${urlUtil.getServerRelativeSiteUrl(args.options.webUrl)}/sitepages/${pageName}')`,
|
|
52
|
+
url: `${args.options.webUrl}/_api/web/GetFileByServerRelativePath(DecodedUrl='${formatting.encodeQueryParameter(filePath)}')`,
|
|
53
53
|
headers: {
|
|
54
|
-
'X-RequestDigest': requestDigest,
|
|
55
|
-
'X-HTTP-Method': 'DELETE',
|
|
56
|
-
'content-type': 'application/json;odata=nometadata',
|
|
57
54
|
accept: 'application/json;odata=nometadata'
|
|
58
55
|
},
|
|
59
56
|
responseType: 'json'
|
|
60
57
|
};
|
|
61
|
-
|
|
58
|
+
if (args.options.bypassSharedLock) {
|
|
59
|
+
requestOptions.headers.Prefer = 'bypass-shared-lock';
|
|
60
|
+
}
|
|
61
|
+
if (args.options.recycle) {
|
|
62
|
+
requestOptions.url += '/Recycle';
|
|
63
|
+
await request.post(requestOptions);
|
|
64
|
+
}
|
|
65
|
+
else {
|
|
66
|
+
await request.delete(requestOptions);
|
|
67
|
+
}
|
|
62
68
|
}
|
|
63
69
|
catch (err) {
|
|
64
70
|
this.handleRejectedODataJsonPromise(err);
|
|
65
71
|
}
|
|
66
72
|
}
|
|
67
73
|
}
|
|
68
|
-
_SpoPageRemoveCommand_instances = new WeakSet(),
|
|
74
|
+
_SpoPageRemoveCommand_instances = new WeakSet(), _SpoPageRemoveCommand_initTelemetry = function _SpoPageRemoveCommand_initTelemetry() {
|
|
75
|
+
this.telemetry.push((args) => {
|
|
76
|
+
Object.assign(this.telemetryProperties, {
|
|
77
|
+
force: !!args.options.force,
|
|
78
|
+
recycle: !!args.options.recycle,
|
|
79
|
+
bypassSharedLock: !!args.options.bypassSharedLock
|
|
80
|
+
});
|
|
81
|
+
});
|
|
82
|
+
}, _SpoPageRemoveCommand_initOptions = function _SpoPageRemoveCommand_initOptions() {
|
|
69
83
|
this.options.unshift({
|
|
84
|
+
option: '-u, --webUrl <webUrl>'
|
|
85
|
+
}, {
|
|
70
86
|
option: '-n, --name <name>'
|
|
71
87
|
}, {
|
|
72
|
-
option: '
|
|
88
|
+
option: '--recycle'
|
|
89
|
+
}, {
|
|
90
|
+
option: '--bypassSharedLock'
|
|
73
91
|
}, {
|
|
74
92
|
option: '-f, --force'
|
|
75
93
|
});
|
|
76
94
|
}, _SpoPageRemoveCommand_initValidators = function _SpoPageRemoveCommand_initValidators() {
|
|
77
95
|
this.validators.push(async (args) => validation.isValidSharePointUrl(args.options.webUrl));
|
|
96
|
+
}, _SpoPageRemoveCommand_initTypes = function _SpoPageRemoveCommand_initTypes() {
|
|
97
|
+
this.types.string.push('name', 'webUrl');
|
|
98
|
+
this.types.boolean.push('force', 'bypassSharedLock', 'recycle');
|
|
78
99
|
};
|
|
79
100
|
export default new SpoPageRemoveCommand();
|
|
80
101
|
//# sourceMappingURL=page-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
|
|
@@ -273,6 +273,7 @@ export default {
|
|
|
273
273
|
SITE_REMOVE: `${prefix} site remove`,
|
|
274
274
|
SITE_RENAME: `${prefix} site rename`,
|
|
275
275
|
SITE_SET: `${prefix} site set`,
|
|
276
|
+
SITE_SHARINGPERMISSION_SET: `${prefix} site sharingpermission set`,
|
|
276
277
|
SITE_CHROME_SET: `${prefix} site chrome set`,
|
|
277
278
|
SITEDESIGN_ADD: `${prefix} sitedesign add`,
|
|
278
279
|
SITEDESIGN_APPLY: `${prefix} sitedesign apply`,
|
package/dist/utils/urlUtil.js
CHANGED
|
@@ -198,6 +198,14 @@ export const urlUtil = {
|
|
|
198
198
|
return rootUrl.origin;
|
|
199
199
|
}
|
|
200
200
|
},
|
|
201
|
+
/**
|
|
202
|
+
* Removes leading slashes from the URL.
|
|
203
|
+
* @param url The URL to process.
|
|
204
|
+
* @returns The URL without leading slashes.
|
|
205
|
+
*/
|
|
206
|
+
removeLeadingSlashes(url) {
|
|
207
|
+
return url.replace(/^\/+/, '');
|
|
208
|
+
},
|
|
201
209
|
/**
|
|
202
210
|
* Removes trailing slashes from the URL.
|
|
203
211
|
* @param url The URL to process.
|
|
@@ -35,7 +35,7 @@ m365 spfx project upgrade [options]
|
|
|
35
35
|
|
|
36
36
|
## Remarks
|
|
37
37
|
|
|
38
|
-
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.
|
|
38
|
+
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.20.0).
|
|
39
39
|
|
|
40
40
|
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.
|
|
41
41
|
|
|
@@ -13,36 +13,54 @@ m365 spo page remove [options]
|
|
|
13
13
|
## Options
|
|
14
14
|
|
|
15
15
|
```md definition-list
|
|
16
|
+
`-u, --webUrl <webUrl>`
|
|
17
|
+
: URL of the site where the page is located.
|
|
18
|
+
|
|
16
19
|
`-n, --name <name>`
|
|
17
|
-
: Name of the page
|
|
20
|
+
: Name of the page.
|
|
18
21
|
|
|
19
|
-
|
|
20
|
-
:
|
|
22
|
+
`--recycle`
|
|
23
|
+
: Send the page to the recycle bin instead of permanently deleting it.
|
|
24
|
+
|
|
25
|
+
`--bypassSharedLock`
|
|
26
|
+
: Remove the page even if it is locked for shared use.
|
|
21
27
|
|
|
22
28
|
`-f, --force`
|
|
23
|
-
: Do not prompt for confirmation
|
|
29
|
+
: Do not prompt for confirmation.
|
|
24
30
|
```
|
|
25
31
|
|
|
26
32
|
<Global />
|
|
27
33
|
|
|
28
|
-
## Remarks
|
|
29
|
-
|
|
30
|
-
If you try to remove a page with that does not exist, you will get a `The file does not exist` error.
|
|
31
|
-
|
|
32
|
-
If you set the `-f, --force` flag, you will not be prompted for confirmation before the page is actually removed.
|
|
33
|
-
|
|
34
34
|
## Examples
|
|
35
35
|
|
|
36
36
|
Remove a modern page
|
|
37
37
|
|
|
38
38
|
```sh
|
|
39
|
-
m365 spo page remove --name
|
|
39
|
+
m365 spo page remove --name HR.aspx --webUrl https://contoso.sharepoint.com/sites/Marketing
|
|
40
40
|
```
|
|
41
41
|
|
|
42
42
|
Remove a modern page without a confirmation prompt
|
|
43
43
|
|
|
44
44
|
```sh
|
|
45
|
-
m365 spo page remove --name
|
|
45
|
+
m365 spo page remove --name HR.aspx --webUrl https://contoso.sharepoint.com/sites/Marketing --force
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
Send a page to the recycle bin
|
|
49
|
+
|
|
50
|
+
```sh
|
|
51
|
+
m365 spo page remove --name HR.aspx --webUrl https://contoso.sharepoint.com/sites/Marketing --recycle
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
Remove a page that is locked
|
|
55
|
+
|
|
56
|
+
```sh
|
|
57
|
+
m365 spo page remove --name HR.aspx --webUrl https://contoso.sharepoint.com/sites/Marketing --bypassSharedLock
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
Remove a page that is located in a subfolder
|
|
61
|
+
|
|
62
|
+
```sh
|
|
63
|
+
m365 spo page remove --name /Departments/People/HR.aspx --webUrl https://contoso.sharepoint.com/sites/Marketing
|
|
46
64
|
```
|
|
47
65
|
|
|
48
66
|
## Response
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import Global from '/docs/cmd/_global.mdx';
|
|
2
|
+
|
|
3
|
+
# spo site sharingpermission set
|
|
4
|
+
|
|
5
|
+
Controls how a site and its components can be shared
|
|
6
|
+
|
|
7
|
+
## Usage
|
|
8
|
+
|
|
9
|
+
```sh
|
|
10
|
+
m365 spo site sharingpermission set [options]
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
## Options
|
|
14
|
+
|
|
15
|
+
```md definition-list
|
|
16
|
+
`-u, --url <url>`
|
|
17
|
+
: URL of the site.
|
|
18
|
+
|
|
19
|
+
`--capability <capability>`
|
|
20
|
+
: Define how the site is shared. Possible values: `full`, `limited`, `ownersOnly`.
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
<Global />
|
|
24
|
+
|
|
25
|
+
## Remarks
|
|
26
|
+
|
|
27
|
+
When specifying `capability`, consider the following:
|
|
28
|
+
- `full`: Site owners and members can share files, folders, and the site. People with Edit permissions can share files and folders.
|
|
29
|
+
- `limited`: Site owners and members, and people with Edit permissions can share files and folders, but only site owners can share the site.
|
|
30
|
+
- `ownersOnly`: Only site owners can share files, folders, and the site.
|
|
31
|
+
|
|
32
|
+
## Examples
|
|
33
|
+
|
|
34
|
+
Update the sharing permissions for a site so only owners can share files and the site
|
|
35
|
+
|
|
36
|
+
```sh
|
|
37
|
+
m365 spo site sharingpermission set --siteUrl https://siteaddress.com/sites/sitename --capability ownersOnly
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
Update the sharing permissions for a site where so both owners and members can share files and the site
|
|
41
|
+
|
|
42
|
+
```sh
|
|
43
|
+
m365 spo site sharingpermission set --siteUrl https://siteaddress.com/sites/sitename --capability full
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
Update the sharing permissions for a site where so owners can share the site, but members can only share files
|
|
47
|
+
|
|
48
|
+
```sh
|
|
49
|
+
m365 spo site sharingpermission set --siteUrl https://siteaddress.com/sites/sitename --capability full
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
## Response
|
|
53
|
+
|
|
54
|
+
The command won't return a response on success.
|
|
55
|
+
|
|
56
|
+
## More information
|
|
57
|
+
|
|
58
|
+
- Sharing a SharePoint site: [https://support.microsoft.com/office/share-a-site-958771a8-d041-4eb8-b51c-afea2eae3658](https://support.microsoft.com/office/share-a-site-958771a8-d041-4eb8-b51c-afea2eae3658)
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pnp/cli-microsoft365",
|
|
3
|
-
"version": "9.1.0
|
|
3
|
+
"version": "9.1.0",
|
|
4
4
|
"description": "Manage Microsoft 365 and SharePoint Framework projects on any platform",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"main": "./dist/api.js",
|
|
@@ -310,4 +310,4 @@
|
|
|
310
310
|
"sinon": "^18.0.0",
|
|
311
311
|
"source-map-support": "^0.5.21"
|
|
312
312
|
}
|
|
313
|
-
}
|
|
313
|
+
}
|