@pnp/cli-microsoft365 6.5.0-beta.f8b8018 → 6.6.0-beta.e7055b5

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 (34) hide show
  1. package/.eslintrc.js +2 -0
  2. package/dist/Command.js +17 -7
  3. package/dist/cli/Cli.js +15 -11
  4. package/dist/m365/cli/commands/config/config-set.js +1 -0
  5. package/dist/m365/commands/request.js +18 -1
  6. package/dist/m365/pa/commands/app/app-export.js +197 -0
  7. package/dist/m365/pa/commands.js +1 -0
  8. package/dist/m365/pp/commands/tenant/tenant-settings-set.js +261 -0
  9. package/dist/m365/pp/commands.js +2 -1
  10. package/dist/m365/purview/commands/threatassessment/threatassessment-get.js +79 -0
  11. package/dist/m365/purview/commands.js +2 -1
  12. package/dist/m365/spfx/commands/project/project-doctor/doctor-1.17.0.js +23 -0
  13. package/dist/m365/spfx/commands/project/project-doctor.js +2 -1
  14. package/dist/m365/spfx/commands/project/project-upgrade/{upgrade-1.17.0-rc.1.js → upgrade-1.17.0.js} +26 -26
  15. package/dist/m365/spfx/commands/project/project-upgrade.js +13 -15
  16. package/dist/m365/spfx/commands/spfx-doctor.js +15 -0
  17. package/dist/m365/spo/commands/file/file-move.js +1 -1
  18. package/dist/m365/spo/commands/file/file-retentionlabel-ensure.js +22 -1
  19. package/dist/m365/spo/commands/listitem/listitem-get.js +21 -6
  20. package/dist/m365/spo/commands/listitem/listitem-retentionlabel-ensure.js +35 -1
  21. package/dist/m365/spo/commands/web/web-set.js +33 -13
  22. package/dist/settingsNames.js +2 -1
  23. package/docs/docs/_clisettings.md +1 -0
  24. package/docs/docs/cmd/aad/o365group/o365group-add.md +3 -3
  25. package/docs/docs/cmd/pa/app/app-export.md +52 -0
  26. package/docs/docs/cmd/pp/tenant/tenant-settings-set.md +218 -0
  27. package/docs/docs/cmd/purview/threatassessment/threatassessment-get.md +191 -0
  28. package/docs/docs/cmd/request.md +10 -4
  29. package/docs/docs/cmd/spfx/project/project-upgrade.md +2 -2
  30. package/docs/docs/cmd/spo/file/file-retentionlabel-ensure.md +12 -1
  31. package/docs/docs/cmd/spo/listitem/listitem-get.md +14 -5
  32. package/docs/docs/cmd/spo/listitem/listitem-retentionlabel-ensure.md +15 -2
  33. package/npm-shrinkwrap.json +460 -273
  34. package/package.json +13 -12
@@ -31,6 +31,7 @@ exports.default = {
31
31
  SOLUTION_PUBLISHER_GET: `${prefix} solution publisher get`,
32
32
  SOLUTION_PUBLISHER_LIST: `${prefix} solution publisher list`,
33
33
  SOLUTION_PUBLISHER_REMOVE: `${prefix} solution publisher remove`,
34
- TENANT_SETTINGS_LIST: `${prefix} tenant settings list`
34
+ TENANT_SETTINGS_LIST: `${prefix} tenant settings list`,
35
+ TENANT_SETTINGS_SET: `${prefix} tenant settings set`
35
36
  };
36
37
  //# sourceMappingURL=commands.js.map
@@ -0,0 +1,79 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
12
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
13
+ 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");
14
+ return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
15
+ };
16
+ var _PurviewThreatAssessmentGetCommand_instances, _PurviewThreatAssessmentGetCommand_initTelemetry, _PurviewThreatAssessmentGetCommand_initOptions, _PurviewThreatAssessmentGetCommand_initValidators;
17
+ Object.defineProperty(exports, "__esModule", { value: true });
18
+ const request_1 = require("../../../../request");
19
+ const validation_1 = require("../../../../utils/validation");
20
+ const GraphCommand_1 = require("../../../base/GraphCommand");
21
+ const commands_1 = require("../../commands");
22
+ class PurviewThreatAssessmentGetCommand extends GraphCommand_1.default {
23
+ get name() {
24
+ return commands_1.default.THREATASSESSMENT_GET;
25
+ }
26
+ get description() {
27
+ return 'Get a threat assessment';
28
+ }
29
+ constructor() {
30
+ super();
31
+ _PurviewThreatAssessmentGetCommand_instances.add(this);
32
+ __classPrivateFieldGet(this, _PurviewThreatAssessmentGetCommand_instances, "m", _PurviewThreatAssessmentGetCommand_initTelemetry).call(this);
33
+ __classPrivateFieldGet(this, _PurviewThreatAssessmentGetCommand_instances, "m", _PurviewThreatAssessmentGetCommand_initOptions).call(this);
34
+ __classPrivateFieldGet(this, _PurviewThreatAssessmentGetCommand_instances, "m", _PurviewThreatAssessmentGetCommand_initValidators).call(this);
35
+ }
36
+ commandAction(logger, args) {
37
+ return __awaiter(this, void 0, void 0, function* () {
38
+ try {
39
+ if (this.verbose) {
40
+ logger.logToStderr(`Retrieving threat assessment with id ${args.options.id}`);
41
+ }
42
+ const requestOptions = {
43
+ url: `${this.resource}/v1.0/informationProtection/threatAssessmentRequests/${args.options.id}${args.options.includeResults ? '?$expand=results' : ''}`,
44
+ headers: {
45
+ accept: 'application/json;odata.metadata=none'
46
+ },
47
+ responseType: 'json'
48
+ };
49
+ const res = yield request_1.default.get(requestOptions);
50
+ logger.log(res);
51
+ }
52
+ catch (err) {
53
+ this.handleRejectedODataJsonPromise(err);
54
+ }
55
+ });
56
+ }
57
+ }
58
+ _PurviewThreatAssessmentGetCommand_instances = new WeakSet(), _PurviewThreatAssessmentGetCommand_initTelemetry = function _PurviewThreatAssessmentGetCommand_initTelemetry() {
59
+ this.telemetry.push((args) => {
60
+ Object.assign(this.telemetryProperties, {
61
+ includeResults: !!args.options.includeResults
62
+ });
63
+ });
64
+ }, _PurviewThreatAssessmentGetCommand_initOptions = function _PurviewThreatAssessmentGetCommand_initOptions() {
65
+ this.options.unshift({
66
+ option: '-i, --id <id>'
67
+ }, {
68
+ option: '--includeResults'
69
+ });
70
+ }, _PurviewThreatAssessmentGetCommand_initValidators = function _PurviewThreatAssessmentGetCommand_initValidators() {
71
+ this.validators.push((args) => __awaiter(this, void 0, void 0, function* () {
72
+ if (!validation_1.validation.isValidGuid(args.options.id)) {
73
+ return `${args.options.id} is not a valid GUID.`;
74
+ }
75
+ return true;
76
+ }));
77
+ };
78
+ module.exports = new PurviewThreatAssessmentGetCommand();
79
+ //# sourceMappingURL=threatassessment-get.js.map
@@ -16,6 +16,7 @@ exports.default = {
16
16
  RETENTIONLABEL_GET: `${prefix} retentionlabel get`,
17
17
  RETENTIONLABEL_LIST: `${prefix} retentionlabel list`,
18
18
  RETENTIONLABEL_REMOVE: `${prefix} retentionlabel remove`,
19
- RETENTIONLABEL_SET: `${prefix} retentionlabel set`
19
+ RETENTIONLABEL_SET: `${prefix} retentionlabel set`,
20
+ THREATASSESSMENT_GET: `${prefix} threatassessment get`
20
21
  };
21
22
  //# sourceMappingURL=commands.js.map
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const FN001008_DEP_react_1 = require("./rules/FN001008_DEP_react");
4
+ const FN001009_DEP_react_dom_1 = require("./rules/FN001009_DEP_react_dom");
5
+ const FN001022_DEP_office_ui_fabric_react_1 = require("./rules/FN001022_DEP_office_ui_fabric_react");
6
+ const FN002004_DEVDEP_gulp_1 = require("./rules/FN002004_DEVDEP_gulp");
7
+ const FN002007_DEVDEP_ajv_1 = require("./rules/FN002007_DEVDEP_ajv");
8
+ const FN002013_DEVDEP_types_webpack_env_1 = require("./rules/FN002013_DEVDEP_types_webpack_env");
9
+ const FN002015_DEVDEP_types_react_1 = require("./rules/FN002015_DEVDEP_types_react");
10
+ const FN002016_DEVDEP_types_react_dom_1 = require("./rules/FN002016_DEVDEP_types_react_dom");
11
+ const FN002019_DEVDEP_microsoft_rush_stack_compiler_1 = require("./rules/FN002019_DEVDEP_microsoft_rush_stack_compiler");
12
+ module.exports = [
13
+ new FN001008_DEP_react_1.FN001008_DEP_react('17'),
14
+ new FN001009_DEP_react_dom_1.FN001009_DEP_react_dom('17'),
15
+ new FN001022_DEP_office_ui_fabric_react_1.FN001022_DEP_office_ui_fabric_react('^7.199.1'),
16
+ new FN002004_DEVDEP_gulp_1.FN002004_DEVDEP_gulp('4.0.2'),
17
+ new FN002007_DEVDEP_ajv_1.FN002007_DEVDEP_ajv('^6.12.5'),
18
+ new FN002013_DEVDEP_types_webpack_env_1.FN002013_DEVDEP_types_webpack_env('~1.15.2'),
19
+ new FN002015_DEVDEP_types_react_1.FN002015_DEVDEP_types_react('17'),
20
+ new FN002016_DEVDEP_types_react_dom_1.FN002016_DEVDEP_types_react_dom('17'),
21
+ new FN002019_DEVDEP_microsoft_rush_stack_compiler_1.FN002019_DEVDEP_microsoft_rush_stack_compiler(['4.5'])
22
+ ];
23
+ //# sourceMappingURL=doctor-1.17.0.js.map
@@ -72,7 +72,8 @@ class SpfxProjectDoctorCommand extends base_project_command_1.BaseProjectCommand
72
72
  '1.15.0',
73
73
  '1.15.2',
74
74
  '1.16.0',
75
- '1.16.1'
75
+ '1.16.1',
76
+ '1.17.0'
76
77
  ];
77
78
  __classPrivateFieldGet(this, _SpfxProjectDoctorCommand_instances, "m", _SpfxProjectDoctorCommand_initTelemetry).call(this);
78
79
  __classPrivateFieldGet(this, _SpfxProjectDoctorCommand_instances, "m", _SpfxProjectDoctorCommand_initOptions).call(this);
@@ -32,36 +32,36 @@ const FN010010_YORC_sdkVersions_teams_js_1 = require("./rules/FN010010_YORC_sdkV
32
32
  const FN014008_CODE_launch_hostedWorkbench_type_1 = require("./rules/FN014008_CODE_launch_hostedWorkbench_type");
33
33
  const FN014009_CODE_launch_hostedWorkbench_url_1 = require("./rules/FN014009_CODE_launch_hostedWorkbench_url");
34
34
  module.exports = [
35
- new FN001001_DEP_microsoft_sp_core_library_1.FN001001_DEP_microsoft_sp_core_library('1.17.0-rc.1'),
36
- new FN001002_DEP_microsoft_sp_lodash_subset_1.FN001002_DEP_microsoft_sp_lodash_subset('1.17.0-rc.1'),
37
- new FN001003_DEP_microsoft_sp_office_ui_fabric_core_1.FN001003_DEP_microsoft_sp_office_ui_fabric_core('1.17.0-rc.1'),
38
- new FN001004_DEP_microsoft_sp_webpart_base_1.FN001004_DEP_microsoft_sp_webpart_base('1.17.0-rc.1'),
39
- new FN001011_DEP_microsoft_sp_dialog_1.FN001011_DEP_microsoft_sp_dialog('1.17.0-rc.1'),
40
- new FN001012_DEP_microsoft_sp_application_base_1.FN001012_DEP_microsoft_sp_application_base('1.17.0-rc.1'),
41
- new FN001014_DEP_microsoft_sp_listview_extensibility_1.FN001014_DEP_microsoft_sp_listview_extensibility('1.17.0-rc.1'),
42
- new FN001021_DEP_microsoft_sp_property_pane_1.FN001021_DEP_microsoft_sp_property_pane('1.17.0-rc.1'),
43
- new FN001023_DEP_microsoft_sp_component_base_1.FN001023_DEP_microsoft_sp_component_base('1.17.0-rc.1'),
44
- new FN001024_DEP_microsoft_sp_diagnostics_1.FN001024_DEP_microsoft_sp_diagnostics('1.17.0-rc.1'),
45
- new FN001025_DEP_microsoft_sp_dynamic_data_1.FN001025_DEP_microsoft_sp_dynamic_data('1.17.0-rc.1'),
46
- new FN001026_DEP_microsoft_sp_extension_base_1.FN001026_DEP_microsoft_sp_extension_base('1.17.0-rc.1'),
47
- new FN001027_DEP_microsoft_sp_http_1.FN001027_DEP_microsoft_sp_http('1.17.0-rc.1'),
48
- new FN001028_DEP_microsoft_sp_list_subscription_1.FN001028_DEP_microsoft_sp_list_subscription('1.17.0-rc.1'),
49
- new FN001029_DEP_microsoft_sp_loader_1.FN001029_DEP_microsoft_sp_loader('1.17.0-rc.1'),
50
- new FN001030_DEP_microsoft_sp_module_interfaces_1.FN001030_DEP_microsoft_sp_module_interfaces('1.17.0-rc.1'),
51
- new FN001031_DEP_microsoft_sp_odata_types_1.FN001031_DEP_microsoft_sp_odata_types('1.17.0-rc.1'),
52
- new FN001032_DEP_microsoft_sp_page_context_1.FN001032_DEP_microsoft_sp_page_context('1.17.0-rc.1'),
53
- new FN001013_DEP_microsoft_decorators_1.FN001013_DEP_microsoft_decorators('1.17.0-rc.1'),
54
- new FN001034_DEP_microsoft_sp_adaptive_card_extension_base_1.FN001034_DEP_microsoft_sp_adaptive_card_extension_base('1.17.0-rc.1'),
55
- new FN002022_DEVDEP_microsoft_eslint_plugin_spfx_1.FN002022_DEVDEP_microsoft_eslint_plugin_spfx('1.17.0-rc.1'),
56
- new FN002023_DEVDEP_microsoft_eslint_config_spfx_1.FN002023_DEVDEP_microsoft_eslint_config_spfx('1.17.0-rc.1'),
57
- new FN002001_DEVDEP_microsoft_sp_build_web_1.FN002001_DEVDEP_microsoft_sp_build_web('1.17.0-rc.1'),
58
- new FN002002_DEVDEP_microsoft_sp_module_interfaces_1.FN002002_DEVDEP_microsoft_sp_module_interfaces('1.17.0-rc.1'),
35
+ new FN001001_DEP_microsoft_sp_core_library_1.FN001001_DEP_microsoft_sp_core_library('1.17.0'),
36
+ new FN001002_DEP_microsoft_sp_lodash_subset_1.FN001002_DEP_microsoft_sp_lodash_subset('1.17.0'),
37
+ new FN001003_DEP_microsoft_sp_office_ui_fabric_core_1.FN001003_DEP_microsoft_sp_office_ui_fabric_core('1.17.0'),
38
+ new FN001004_DEP_microsoft_sp_webpart_base_1.FN001004_DEP_microsoft_sp_webpart_base('1.17.0'),
39
+ new FN001011_DEP_microsoft_sp_dialog_1.FN001011_DEP_microsoft_sp_dialog('1.17.0'),
40
+ new FN001012_DEP_microsoft_sp_application_base_1.FN001012_DEP_microsoft_sp_application_base('1.17.0'),
41
+ new FN001014_DEP_microsoft_sp_listview_extensibility_1.FN001014_DEP_microsoft_sp_listview_extensibility('1.17.0'),
42
+ new FN001021_DEP_microsoft_sp_property_pane_1.FN001021_DEP_microsoft_sp_property_pane('1.17.0'),
43
+ new FN001023_DEP_microsoft_sp_component_base_1.FN001023_DEP_microsoft_sp_component_base('1.17.0'),
44
+ new FN001024_DEP_microsoft_sp_diagnostics_1.FN001024_DEP_microsoft_sp_diagnostics('1.17.0'),
45
+ new FN001025_DEP_microsoft_sp_dynamic_data_1.FN001025_DEP_microsoft_sp_dynamic_data('1.17.0'),
46
+ new FN001026_DEP_microsoft_sp_extension_base_1.FN001026_DEP_microsoft_sp_extension_base('1.17.0'),
47
+ new FN001027_DEP_microsoft_sp_http_1.FN001027_DEP_microsoft_sp_http('1.17.0'),
48
+ new FN001028_DEP_microsoft_sp_list_subscription_1.FN001028_DEP_microsoft_sp_list_subscription('1.17.0'),
49
+ new FN001029_DEP_microsoft_sp_loader_1.FN001029_DEP_microsoft_sp_loader('1.17.0'),
50
+ new FN001030_DEP_microsoft_sp_module_interfaces_1.FN001030_DEP_microsoft_sp_module_interfaces('1.17.0'),
51
+ new FN001031_DEP_microsoft_sp_odata_types_1.FN001031_DEP_microsoft_sp_odata_types('1.17.0'),
52
+ new FN001032_DEP_microsoft_sp_page_context_1.FN001032_DEP_microsoft_sp_page_context('1.17.0'),
53
+ new FN001013_DEP_microsoft_decorators_1.FN001013_DEP_microsoft_decorators('1.17.0'),
54
+ new FN001034_DEP_microsoft_sp_adaptive_card_extension_base_1.FN001034_DEP_microsoft_sp_adaptive_card_extension_base('1.17.0'),
55
+ new FN002022_DEVDEP_microsoft_eslint_plugin_spfx_1.FN002022_DEVDEP_microsoft_eslint_plugin_spfx('1.17.0'),
56
+ new FN002023_DEVDEP_microsoft_eslint_config_spfx_1.FN002023_DEVDEP_microsoft_eslint_config_spfx('1.17.0'),
57
+ new FN002001_DEVDEP_microsoft_sp_build_web_1.FN002001_DEVDEP_microsoft_sp_build_web('1.17.0'),
58
+ new FN002002_DEVDEP_microsoft_sp_module_interfaces_1.FN002002_DEVDEP_microsoft_sp_module_interfaces('1.17.0'),
59
59
  new FN002020_DEVDEP_microsoft_rush_stack_compiler_4_5_1.FN002020_DEVDEP_microsoft_rush_stack_compiler_4_5('0.4.0'),
60
60
  new FN002024_DEVDEP_eslint_1.FN002024_DEVDEP_eslint('8.7.0'),
61
61
  new FN007002_CFG_S_initialPage_1.FN007002_CFG_S_initialPage('https://{tenantDomain}/_layouts/workbench.aspx'),
62
- new FN010001_YORC_version_1.FN010001_YORC_version('1.17.0-rc.1'),
62
+ new FN010001_YORC_version_1.FN010001_YORC_version('1.17.0'),
63
63
  new FN010010_YORC_sdkVersions_teams_js_1.FN010010_YORC_sdkVersions_teams_js('2.9.1'),
64
64
  new FN014008_CODE_launch_hostedWorkbench_type_1.FN014008_CODE_launch_hostedWorkbench_type('edge'),
65
65
  new FN014009_CODE_launch_hostedWorkbench_url_1.FN014009_CODE_launch_hostedWorkbench_url('https://{tenantDomain}/_layouts/workbench.aspx')
66
66
  ];
67
- //# sourceMappingURL=upgrade-1.17.0-rc.1.js.map
67
+ //# sourceMappingURL=upgrade-1.17.0.js.map
@@ -18,8 +18,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
18
18
  const fs = require("fs");
19
19
  const os = require("os");
20
20
  const path = require("path");
21
- // uncomment to support upgrading to preview releases
22
- const semver_1 = require("semver");
23
21
  const Command_1 = require("../../../../Command");
24
22
  const fsUtil_1 = require("../../../../utils/fsUtil");
25
23
  const packageManager_1 = require("../../../../utils/packageManager");
@@ -77,7 +75,7 @@ class SpfxProjectUpgradeCommand extends base_project_command_1.BaseProjectComman
77
75
  '1.15.2',
78
76
  '1.16.0',
79
77
  '1.16.1',
80
- '1.17.0-rc.1'
78
+ '1.17.0'
81
79
  ];
82
80
  __classPrivateFieldGet(this, _SpfxProjectUpgradeCommand_instances, "m", _SpfxProjectUpgradeCommand_initTelemetry).call(this);
83
81
  __classPrivateFieldGet(this, _SpfxProjectUpgradeCommand_instances, "m", _SpfxProjectUpgradeCommand_initOptions).call(this);
@@ -91,15 +89,15 @@ class SpfxProjectUpgradeCommand extends base_project_command_1.BaseProjectComman
91
89
  }
92
90
  this.toVersion = args.options.toVersion ? args.options.toVersion : this.supportedVersions[this.supportedVersions.length - 1];
93
91
  // uncomment to support upgrading to preview releases
94
- if (!args.options.toVersion &&
95
- !args.options.preview &&
96
- (0, semver_1.prerelease)(this.toVersion)) {
97
- // no version and no preview specified while the current version to
98
- // upgrade to is a prerelease so let's grab the first non-preview version
99
- // since we're supporting only one preview version, it's sufficient for
100
- // us to take second to last version
101
- this.toVersion = this.supportedVersions[this.supportedVersions.length - 2];
102
- }
92
+ // if (!args.options.toVersion &&
93
+ // !args.options.preview &&
94
+ // prerelease(this.toVersion)) {
95
+ // // no version and no preview specified while the current version to
96
+ // // upgrade to is a prerelease so let's grab the first non-preview version
97
+ // // since we're supporting only one preview version, it's sufficient for
98
+ // // us to take second to last version
99
+ // this.toVersion = this.supportedVersions[this.supportedVersions.length - 2];
100
+ // }
103
101
  this.packageManager = args.options.packageManager || 'npm';
104
102
  this.shell = args.options.shell || 'bash';
105
103
  if (this.supportedVersions.indexOf(this.toVersion) < 0) {
@@ -486,9 +484,9 @@ _SpfxProjectUpgradeCommand_instances = new WeakSet(), _SpfxProjectUpgradeCommand
486
484
  preview: args.options.preview
487
485
  });
488
486
  // uncomment to support upgrading to preview releases
489
- if ((0, semver_1.prerelease)(this.telemetryProperties.toVersion) && !args.options.preview) {
490
- this.telemetryProperties.toVersion = this.supportedVersions[this.supportedVersions.length - 2];
491
- }
487
+ // if (prerelease(this.telemetryProperties.toVersion) && !args.options.preview) {
488
+ // this.telemetryProperties.toVersion = this.supportedVersions[this.supportedVersions.length - 2];
489
+ // }
492
490
  });
493
491
  }, _SpfxProjectUpgradeCommand_initOptions = function _SpfxProjectUpgradeCommand_initOptions() {
494
492
  this.options.unshift({
@@ -467,6 +467,21 @@ class SpfxDoctorCommand extends base_project_command_1.BaseProjectCommand {
467
467
  range: '^4',
468
468
  fix: 'npm i -g yo@4'
469
469
  }
470
+ },
471
+ '1.17.0': {
472
+ gulpCli: {
473
+ range: '^1 || ^2',
474
+ fix: 'npm i -g gulp-cli@2'
475
+ },
476
+ node: {
477
+ range: '>=16.13.0 <17.0.0',
478
+ fix: 'Install Node.js >=16.13.0 <17.0.0'
479
+ },
480
+ sp: SharePointVersion.SPO,
481
+ yo: {
482
+ range: '^4',
483
+ fix: 'npm i -g yo@4'
484
+ }
470
485
  }
471
486
  };
472
487
  __classPrivateFieldGet(this, _SpfxDoctorCommand_instances, "m", _SpfxDoctorCommand_initTelemetry).call(this);
@@ -147,7 +147,7 @@ class SpoFileMoveCommand extends SpoCommand_1.default {
147
147
  yield Cli_1.Cli.executeCommand(removeCommand, { options: Object.assign(Object.assign({}, removeOptions), { _: [] }) });
148
148
  }
149
149
  catch (err) {
150
- if (err.error !== undefined && err.error.message !== undefined && err.error.message.includes('does not exist')) {
150
+ if (err !== undefined && err.message !== undefined && err.message.includes('does not exist')) {
151
151
  }
152
152
  else {
153
153
  throw err;
@@ -42,6 +42,9 @@ class SpoFileRetentionLabelEnsureCommand extends SpoCommand_1.default {
42
42
  return __awaiter(this, void 0, void 0, function* () {
43
43
  try {
44
44
  const fileProperties = yield this.getFileProperties(logger, args);
45
+ if (args.options.assetId) {
46
+ yield this.applyAssetId(args.options.webUrl, fileProperties.ListItemAllFields.ParentList.Id, fileProperties.ListItemAllFields.Id, args.options.assetId);
47
+ }
45
48
  const options = {
46
49
  webUrl: args.options.webUrl,
47
50
  listId: fileProperties.ListItemAllFields.ParentList.Id,
@@ -84,12 +87,28 @@ class SpoFileRetentionLabelEnsureCommand extends SpoCommand_1.default {
84
87
  return yield request_1.default.get(requestOptions);
85
88
  });
86
89
  }
90
+ applyAssetId(webUrl, listId, listItemId, assetId) {
91
+ return __awaiter(this, void 0, void 0, function* () {
92
+ const requestUrl = `${webUrl}/_api/web/lists(guid'${formatting_1.formatting.encodeQueryParameter(listId)}')`;
93
+ const requestBody = { "formValues": [{ "FieldName": "ComplianceAssetId", "FieldValue": assetId }] };
94
+ const requestOptions = {
95
+ url: `${requestUrl}/items(${listItemId})/ValidateUpdateListItem()`,
96
+ headers: {
97
+ 'accept': 'application/json;odata=nometadata'
98
+ },
99
+ data: requestBody,
100
+ responseType: 'json'
101
+ };
102
+ yield request_1.default.post(requestOptions);
103
+ });
104
+ }
87
105
  }
88
106
  _SpoFileRetentionLabelEnsureCommand_instances = new WeakSet(), _SpoFileRetentionLabelEnsureCommand_initTelemetry = function _SpoFileRetentionLabelEnsureCommand_initTelemetry() {
89
107
  this.telemetry.push((args) => {
90
108
  Object.assign(this.telemetryProperties, {
91
109
  fileUrl: typeof args.options.fileUrl !== 'undefined',
92
- fileId: typeof args.options.fileId !== 'undefined'
110
+ fileId: typeof args.options.fileId !== 'undefined',
111
+ assetId: typeof args.options.assetId !== 'undefined'
93
112
  });
94
113
  });
95
114
  }, _SpoFileRetentionLabelEnsureCommand_initOptions = function _SpoFileRetentionLabelEnsureCommand_initOptions() {
@@ -101,6 +120,8 @@ _SpoFileRetentionLabelEnsureCommand_instances = new WeakSet(), _SpoFileRetention
101
120
  option: '--fileUrl [fileUrl]'
102
121
  }, {
103
122
  option: '-i, --fileId [fileId]'
123
+ }, {
124
+ option: '-a, --assetId [assetId]'
104
125
  });
105
126
  }, _SpoFileRetentionLabelEnsureCommand_initValidators = function _SpoFileRetentionLabelEnsureCommand_initValidators() {
106
127
  this.validators.push((args) => __awaiter(this, void 0, void 0, function* () {
@@ -58,8 +58,14 @@ class SpoListItemGetCommand extends SpoCommand_1.default {
58
58
  const propertiesToExpand = propertiesWithSlash.map(e => e.split('/')[0]);
59
59
  const expandPropertiesArray = propertiesToExpand.filter((item, pos) => propertiesToExpand.indexOf(item) === pos);
60
60
  const fieldExpand = expandPropertiesArray.length > 0 ? `&$expand=${expandPropertiesArray.join(",")}` : ``;
61
+ if (args.options.id) {
62
+ requestUrl += `/items(${args.options.id})`;
63
+ }
64
+ else {
65
+ requestUrl += `/GetItemByUniqueId(guid'${args.options.uniqueId}')`;
66
+ }
61
67
  const requestOptions = {
62
- url: `${requestUrl}/items(${args.options.id})?$select=${formatting_1.formatting.encodeQueryParameter(propertiesSelect.join(","))}${fieldExpand}`,
68
+ url: `${requestUrl}?$select=${formatting_1.formatting.encodeQueryParameter(propertiesSelect.join(","))}${fieldExpand}`,
63
69
  headers: {
64
70
  'accept': 'application/json;odata=nometadata'
65
71
  },
@@ -68,7 +74,7 @@ class SpoListItemGetCommand extends SpoCommand_1.default {
68
74
  try {
69
75
  const itemProperties = yield request_1.default.get(requestOptions);
70
76
  if (args.options.withPermissions) {
71
- requestOptions.url = `${requestUrl}/items(${args.options.id})/RoleAssignments?$expand=Member,RoleDefinitionBindings`;
77
+ requestOptions.url = `${requestUrl}/RoleAssignments?$expand=Member,RoleDefinitionBindings`;
72
78
  const response = yield request_1.default.get(requestOptions);
73
79
  response.value.forEach((r) => {
74
80
  r.RoleDefinitionBindings = formatting_1.formatting.setFriendlyPermissions(r.RoleDefinitionBindings);
@@ -90,6 +96,8 @@ _SpoListItemGetCommand_instances = new WeakSet(), _SpoListItemGetCommand_initTel
90
96
  listId: typeof args.options.listId !== 'undefined',
91
97
  listTitle: typeof args.options.listTitle !== 'undefined',
92
98
  listUrl: typeof args.options.listUrl !== 'undefined',
99
+ id: typeof args.options.id !== 'undefined',
100
+ uniqueId: typeof args.options.uniqueId !== 'undefined',
93
101
  withPermissions: !!args.options.withPermissions
94
102
  });
95
103
  });
@@ -97,7 +105,9 @@ _SpoListItemGetCommand_instances = new WeakSet(), _SpoListItemGetCommand_initTel
97
105
  this.options.unshift({
98
106
  option: '-u, --webUrl <webUrl>'
99
107
  }, {
100
- option: '-i, --id <id>'
108
+ option: '-i, --id [id]'
109
+ }, {
110
+ option: '--uniqueId [uniqueId]'
101
111
  }, {
102
112
  option: '-l, --listId [listId]'
103
113
  }, {
@@ -119,15 +129,20 @@ _SpoListItemGetCommand_instances = new WeakSet(), _SpoListItemGetCommand_initTel
119
129
  !validation_1.validation.isValidGuid(args.options.listId)) {
120
130
  return `${args.options.listId} in option listId is not a valid GUID`;
121
131
  }
122
- if (isNaN(parseInt(args.options.id))) {
132
+ if (args.options.id &&
133
+ isNaN(parseInt(args.options.id))) {
123
134
  return `${args.options.id} is not a number`;
124
135
  }
136
+ if (args.options.uniqueId &&
137
+ !validation_1.validation.isValidGuid(args.options.uniqueId)) {
138
+ return `${args.options.uniqueId} in option uniqueId is not a valid GUID`;
139
+ }
125
140
  return true;
126
141
  }));
127
142
  }, _SpoListItemGetCommand_initTypes = function _SpoListItemGetCommand_initTypes() {
128
- this.types.string.push('webUrl', 'listId', 'listTitle', 'id', 'properties');
143
+ this.types.string.push('webUrl', 'listId', 'listTitle', 'id', 'uniqueId', 'properties');
129
144
  }, _SpoListItemGetCommand_initOptionSets = function _SpoListItemGetCommand_initOptionSets() {
130
- this.optionSets.push({ options: ['listId', 'listTitle', 'listUrl'] });
145
+ this.optionSets.push({ options: ['listId', 'listTitle', 'listUrl'] }, { options: ['id', 'uniqueId'] });
131
146
  };
132
147
  module.exports = new SpoListItemGetCommand();
133
148
  //# sourceMappingURL=listitem-get.js.map
@@ -42,6 +42,9 @@ class SpoListItemRetentionLabelEnsureCommand extends SpoCommand_1.default {
42
42
  return __awaiter(this, void 0, void 0, function* () {
43
43
  try {
44
44
  const labelInformation = yield this.getLabelInformation(args.options, logger);
45
+ if (args.options.assetId) {
46
+ yield this.applyAssetId(args.options, logger);
47
+ }
45
48
  yield this.applyLabel(args.options, labelInformation, logger);
46
49
  }
47
50
  catch (err) {
@@ -106,6 +109,34 @@ class SpoListItemRetentionLabelEnsureCommand extends SpoCommand_1.default {
106
109
  yield request_1.default.post(requestOptions);
107
110
  });
108
111
  }
112
+ applyAssetId(options, logger) {
113
+ return __awaiter(this, void 0, void 0, function* () {
114
+ if (this.verbose) {
115
+ logger.logToStderr(`Applying the asset Id ${options.assetId}...`);
116
+ }
117
+ let requestUrl = `${options.webUrl}/_api/web`;
118
+ if (options.listId) {
119
+ requestUrl += `/lists(guid'${formatting_1.formatting.encodeQueryParameter(options.listId)}')/items(${options.listItemId})/ValidateUpdateListItem()`;
120
+ }
121
+ else if (options.listTitle) {
122
+ requestUrl += `/lists/getByTitle('${formatting_1.formatting.encodeQueryParameter(options.listTitle)}')/items(${options.listItemId})/ValidateUpdateListItem()`;
123
+ }
124
+ else if (options.listUrl) {
125
+ const listServerRelativeUrl = urlUtil_1.urlUtil.getServerRelativePath(options.webUrl, options.listUrl);
126
+ requestUrl += `/GetList(@listUrl)/items(${options.listItemId})/ValidateUpdateListItem()?@listUrl='${formatting_1.formatting.encodeQueryParameter(listServerRelativeUrl)}'`;
127
+ }
128
+ const requestBody = { "formValues": [{ "FieldName": "ComplianceAssetId", "FieldValue": options.assetId }] };
129
+ const requestOptions = {
130
+ url: requestUrl,
131
+ headers: {
132
+ 'accept': 'application/json;odata=nometadata'
133
+ },
134
+ data: requestBody,
135
+ responseType: 'json'
136
+ };
137
+ yield request_1.default.post(requestOptions);
138
+ });
139
+ }
109
140
  }
110
141
  _SpoListItemRetentionLabelEnsureCommand_instances = new WeakSet(), _SpoListItemRetentionLabelEnsureCommand_initTelemetry = function _SpoListItemRetentionLabelEnsureCommand_initTelemetry() {
111
142
  this.telemetry.push((args) => {
@@ -114,7 +145,8 @@ _SpoListItemRetentionLabelEnsureCommand_instances = new WeakSet(), _SpoListItemR
114
145
  listTitle: typeof args.options.listTitle !== 'undefined',
115
146
  listUrl: typeof args.options.listUrl !== 'undefined',
116
147
  name: typeof args.options.name !== 'undefined',
117
- id: typeof args.options.id !== 'undefined'
148
+ id: typeof args.options.id !== 'undefined',
149
+ assetId: typeof args.options.assetId !== 'undefined'
118
150
  });
119
151
  });
120
152
  }, _SpoListItemRetentionLabelEnsureCommand_initOptions = function _SpoListItemRetentionLabelEnsureCommand_initOptions() {
@@ -132,6 +164,8 @@ _SpoListItemRetentionLabelEnsureCommand_instances = new WeakSet(), _SpoListItemR
132
164
  option: '-n, --name [name]'
133
165
  }, {
134
166
  option: '-i, --id [id]'
167
+ }, {
168
+ option: '-a, --assetId [assetId]'
135
169
  });
136
170
  }, _SpoListItemRetentionLabelEnsureCommand_initValidators = function _SpoListItemRetentionLabelEnsureCommand_initValidators() {
137
171
  this.validators.push((args) => __awaiter(this, void 0, void 0, function* () {
@@ -69,20 +69,37 @@ class SpoWebSetCommand extends SpoCommand_1.default {
69
69
  const searchScope = args.options.searchScope.toLowerCase();
70
70
  payload.SearchScope = SpoWebSetCommand.searchScopeOptions.indexOf(searchScope);
71
71
  }
72
- const requestOptions = {
73
- url: `${args.options.url}/_api/web`,
74
- headers: {
75
- 'content-type': 'application/json;odata=nometadata',
76
- accept: 'application/json;odata=nometadata'
77
- },
78
- responseType: 'json',
79
- data: payload
80
- };
81
- if (this.verbose) {
82
- logger.logToStderr(`Updating properties of subsite ${args.options.url}...`);
83
- }
84
72
  try {
73
+ const requestOptions = {
74
+ url: `${args.options.url}/_api/web`,
75
+ headers: {
76
+ 'content-type': 'application/json;odata=nometadata',
77
+ accept: 'application/json;odata=nometadata'
78
+ },
79
+ responseType: 'json',
80
+ data: payload
81
+ };
82
+ if (this.verbose) {
83
+ logger.logToStderr(`Updating properties of subsite ${args.options.url}...`);
84
+ }
85
85
  yield request_1.default.patch(requestOptions);
86
+ if (typeof args.options.welcomePage !== 'undefined') {
87
+ if (this.verbose) {
88
+ logger.logToStderr(`Setting welcome page to: ${args.options.welcomePage}...`);
89
+ }
90
+ const requestOptions = {
91
+ url: `${args.options.url}/_api/web/RootFolder`,
92
+ headers: {
93
+ 'content-type': 'application/json;odata=nometadata',
94
+ accept: 'application/json;odata=nometadata'
95
+ },
96
+ responseType: 'json',
97
+ data: {
98
+ WelcomePage: args.options.welcomePage
99
+ }
100
+ };
101
+ yield request_1.default.patch(requestOptions);
102
+ }
86
103
  }
87
104
  catch (err) {
88
105
  this.handleRejectedODataJsonPromise(err);
@@ -105,7 +122,8 @@ _SpoWebSetCommand_instances = new WeakSet(), _SpoWebSetCommand_initTelemetry = f
105
122
  quickLaunchEnabled: typeof args.options.quickLaunchEnabled !== 'undefined',
106
123
  footerEnabled: typeof args.options.footerEnabled !== 'undefined',
107
124
  navAudienceTargetingEnabled: typeof args.options.navAudienceTargetingEnabled !== 'undefined',
108
- searchScope: args.options.searchScope !== 'undefined'
125
+ searchScope: typeof args.options.searchScope !== 'undefined',
126
+ welcomePage: typeof args.options.welcomePage !== 'undefined'
109
127
  });
110
128
  this.trackUnknownOptions(this.telemetryProperties, args.options);
111
129
  });
@@ -139,6 +157,8 @@ _SpoWebSetCommand_instances = new WeakSet(), _SpoWebSetCommand_initTelemetry = f
139
157
  }, {
140
158
  option: '--searchScope [searchScope]',
141
159
  autocomplete: SpoWebSetCommand.searchScopeOptions
160
+ }, {
161
+ option: '--welcomePage [welcomePage]'
142
162
  });
143
163
  }, _SpoWebSetCommand_initTypes = function _SpoWebSetCommand_initTypes() {
144
164
  this.types.boolean.push('megaMenuEnabled', 'footerEnabled', 'quickLaunchEnabled', 'navAudienceTargetingEnabled');
@@ -15,7 +15,8 @@ const settingsNames = {
15
15
  output: 'output',
16
16
  printErrorsAsPlainText: 'printErrorsAsPlainText',
17
17
  prompt: 'prompt',
18
- showHelpOnFailure: 'showHelpOnFailure'
18
+ showHelpOnFailure: 'showHelpOnFailure',
19
+ showSpinner: 'showSpinner'
19
20
  };
20
21
  exports.settingsNames = settingsNames;
21
22
  //# sourceMappingURL=settingsNames.js.map
@@ -18,3 +18,4 @@ Setting name|Definition|Default value
18
18
  `printErrorsAsPlainText`|When output mode is set to `json`, print error messages as plain-text rather than JSON|`true`
19
19
  `prompt`|Prompts for missing values in required options|`false`
20
20
  `showHelpOnFailure`|Automatically display help when executing a command failed|`true`
21
+ `showSpinner`|Display spinner when executing commands|`true`
@@ -48,7 +48,7 @@ m365 aad o365group add [options]
48
48
  ## Remarks
49
49
 
50
50
  When specifying the path to the logo image you can use both relative and absolute paths. Note, that ~ in the path, will not be resolved and will most likely result in an error.
51
- If an invalid user is provided in the comma-separated list or Owners or Members, the command operation will fail and the Micrsoft 365 Group will not be created.
51
+ If an invalid user is provided in the comma-separated list of Owners or Members, the command operation will fail and the Microsoft 365 Group will not be created.
52
52
 
53
53
  ## Examples
54
54
 
@@ -76,13 +76,13 @@ Create a public Microsoft 365 Group and set specified users as its members
76
76
  m365 aad o365group add --displayName Finance --description "This is the Contoso Finance Group. Please come here and check out the latest news, posts, files, and more." --mailNickname finance --members "DebraB@contoso.onmicrosoft.com,DiegoS@contoso.onmicrosoft.com"
77
77
  ```
78
78
 
79
- Create a public Microsoft 365 Group and allows only group members to be able to post conversations to the group.
79
+ Create a public Microsoft 365 Group and allow only group members to be able to post conversations to the group.
80
80
 
81
81
  ```sh
82
82
  m365 aad o365group add --displayName Finance --description "This is the Contoso Finance Group. Please come here and check out the latest news, posts, files, and more." --mailNickname finance --allowMembersToPost
83
83
  ```
84
84
 
85
- Create a public Microsoft 365 Group and hides it from the Outlook experiences (web and client).
85
+ Create a public Microsoft 365 Group and hide it from the Outlook experiences (web and client).
86
86
 
87
87
  ```sh
88
88
  m365 aad o365group add --displayName Finance --description "This is the Contoso Finance Group. Please come here and check out the latest news, posts, files, and more." --mailNickname finance --hideGroupInOutlook
@@ -0,0 +1,52 @@
1
+ # pa app export
2
+
3
+ Exports the specified Power App
4
+
5
+ ## Usage
6
+
7
+ ```sh
8
+ m365 pa app export [options]
9
+ ```
10
+
11
+ ## Options
12
+
13
+ `-i, --id <id>`
14
+ : The id of the Power App to export
15
+
16
+ `-e, --environment <environment>`
17
+ : The name of the environment for which to export the app
18
+
19
+ `-n, --packageDisplayName [packageDisplayName]`
20
+ : The display name to use in the exported package
21
+
22
+ `-d, --packageDescription [packageDescription]`
23
+ : The description to use in the exported package
24
+
25
+ `-c, --packageCreatedBy [packageCreatedBy]`
26
+ : The name of the person to be used as the creator of the exported package
27
+
28
+ `-s, --packageSourceEnvironment [packageSourceEnvironment]`
29
+ : The name of the source environment from which the exported package was taken
30
+
31
+ `-p, --path [path]`
32
+ : The path to save the exported package to. If not specified the app will be exported in the current working directory
33
+
34
+ --8<-- "docs/cmd/_global.md"
35
+
36
+ ## Examples
37
+
38
+ Export the specified Power App as a ZIP file
39
+
40
+ ```sh
41
+ m365 pa app export --environment Default-d87a7535-dd31-4437-bfe1-95340acd55c5 --id 3989cb59-ce1a-4a5c-bb78-257c5c39381d
42
+ ```
43
+
44
+ Export the specified Power App as a ZIP file with the package displayname, package description, the one who created it, the package source environment and the path
45
+
46
+ ```sh
47
+ m365 pa app export --environment Default-d87a7535-dd31-4437-bfe1-95340acd55c5 --id 3989cb59-ce1a-4a5c-bb78-257c5c39381d --packageDisplayName "PowerApp" --packageDescription "Power App Description" --packageCreatedBy "John Doe" --packageSourceEnvironment "Contoso" --path "C:/Users/John/Documents"
48
+ ```
49
+
50
+ ## Response
51
+
52
+ The command won't return a response on success.