@pnp/cli-microsoft365 10.5.0-beta.d99742c → 10.6.0-beta.195c8d5

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 (133) hide show
  1. package/.eslintrc.cjs +3 -1
  2. package/allCommands.json +1 -1
  3. package/allCommandsFull.json +1 -1
  4. package/dist/Auth.js +60 -3
  5. package/dist/Command.js +14 -26
  6. package/dist/auth/MsalNetworkClient.js +32 -0
  7. package/dist/config.js +2 -0
  8. package/dist/m365/adaptivecard/commands/adaptivecard-send.js +2 -1
  9. package/dist/m365/app/commands/app-get.js +3 -13
  10. package/dist/m365/app/commands/permission/permission-list.js +4 -14
  11. package/dist/m365/base/SpoCommand.js +2 -1
  12. package/dist/m365/booking/commands/business/business-get.js +0 -3
  13. package/dist/m365/commands/login.js +3 -0
  14. package/dist/m365/commands/request.js +3 -12
  15. package/dist/m365/commands/setup.js +2 -0
  16. package/dist/m365/entra/commands/administrativeunit/administrativeunit-add.js +10 -5
  17. package/dist/m365/entra/commands/app/app-add.js +5 -0
  18. package/dist/m365/entra/commands/app/app-get.js +27 -21
  19. package/dist/m365/entra/commands/app/app-permission-list.js +28 -22
  20. package/dist/m365/entra/commands/app/app-remove.js +22 -19
  21. package/dist/m365/entra/commands/app/app-role-add.js +22 -19
  22. package/dist/m365/entra/commands/app/app-role-list.js +22 -19
  23. package/dist/m365/entra/commands/app/app-role-remove.js +39 -36
  24. package/dist/m365/entra/commands/app/app-set.js +45 -19
  25. package/dist/m365/entra/commands/group/group-add.js +1 -0
  26. package/dist/m365/entra/commands/group/group-set.js +12 -6
  27. package/dist/m365/entra/commands/policy/policy-list.js +46 -3
  28. package/dist/m365/entra/commands/user/user-add.js +1 -0
  29. package/dist/m365/entra/commands/user/user-guest-add.js +0 -3
  30. package/dist/m365/entra/commands/user/user-list.js +2 -1
  31. package/dist/m365/external/commands/item/item-add.js +2 -1
  32. package/dist/m365/flow/commands/environment/environment-get.js +0 -3
  33. package/dist/m365/flow/commands/flow-get.js +0 -3
  34. package/dist/m365/flow/commands/flow-list.js +1 -1
  35. package/dist/m365/flow/commands/run/run-get.js +0 -3
  36. package/dist/m365/graph/commands/openextension/openextension-add.js +73 -0
  37. package/dist/m365/graph/commands/openextension/openextension-get.js +57 -0
  38. package/dist/m365/graph/commands/openextension/openextension-list.js +62 -0
  39. package/dist/m365/graph/commands/openextension/openextension-remove.js +68 -0
  40. package/dist/m365/graph/commands.js +4 -0
  41. package/dist/m365/pa/commands/app/app-get.js +0 -3
  42. package/dist/m365/pa/commands/environment/environment-get.js +0 -3
  43. package/dist/m365/planner/commands/bucket/bucket-add.js +0 -3
  44. package/dist/m365/planner/commands/plan/plan-add.js +0 -3
  45. package/dist/m365/planner/commands/plan/plan-get.js +0 -3
  46. package/dist/m365/planner/commands/plan/plan-set.js +0 -3
  47. package/dist/m365/planner/commands/task/task-checklistitem-add.js +0 -3
  48. package/dist/m365/pp/commands/aibuildermodel/aibuildermodel-get.js +0 -3
  49. package/dist/m365/pp/commands/card/card-clone.js +12 -16
  50. package/dist/m365/pp/commands/card/card-get.js +13 -22
  51. package/dist/m365/pp/commands/card/card-remove.js +13 -16
  52. package/dist/m365/pp/commands/copilot/copilot-get.js +0 -3
  53. package/dist/m365/pp/commands/dataverse/dataverse-table-get.js +0 -3
  54. package/dist/m365/pp/commands/environment/environment-get.js +0 -3
  55. package/dist/m365/pp/commands/solution/solution-get.js +5 -14
  56. package/dist/m365/pp/commands/solution/solution-publish.js +6 -16
  57. package/dist/m365/pp/commands/solution/solution-publisher-get.js +0 -3
  58. package/dist/m365/pp/commands/solution/solution-remove.js +4 -13
  59. package/dist/m365/pp/commands/website/website-get.js +0 -3
  60. package/dist/m365/spfx/commands/project/project-doctor/doctor-1.21.0.js +25 -0
  61. package/dist/m365/spfx/commands/project/project-doctor.js +2 -1
  62. package/dist/m365/spfx/commands/project/project-upgrade/rules/FN002029_DEVDEP_microsoft_rush_stack_compiler_5_3.js +13 -0
  63. package/dist/m365/spfx/commands/project/project-upgrade/upgrade-1.21.0.js +63 -0
  64. package/dist/m365/spfx/commands/project/project-upgrade.js +2 -1
  65. package/dist/m365/spfx/commands/spfx-doctor.js +15 -0
  66. package/dist/m365/spo/commands/folder/folder-roleassignment-add.js +12 -47
  67. package/dist/m365/spo/commands/folder/folder-roleassignment-remove.js +13 -31
  68. package/dist/m365/spo/commands/group/group-member-add.js +0 -3
  69. package/dist/m365/spo/commands/homesite/homesite-add.js +66 -0
  70. package/dist/m365/spo/commands/listitem/listitem-roleassignment-add.js +12 -43
  71. package/dist/m365/spo/commands/listitem/listitem-roleassignment-remove.js +8 -27
  72. package/dist/m365/spo/commands/page/page-copy.js +0 -3
  73. package/dist/m365/spo/commands/page/page-get.js +0 -3
  74. package/dist/m365/spo/commands/sitedesign/sitedesign-run-status-get.js +0 -3
  75. package/dist/m365/spo/commands/web/web-roleassignment-add.js +22 -47
  76. package/dist/m365/spo/commands/web/web-roleassignment-remove.js +17 -32
  77. package/dist/m365/spo/commands.js +1 -0
  78. package/dist/m365/tenant/commands/people/people-profilecardproperty-add.js +4 -3
  79. package/dist/m365/tenant/commands/people/people-profilecardproperty-set.js +4 -3
  80. package/dist/m365/tenant/commands/serviceannouncement/serviceannouncement-health-get.js +0 -3
  81. package/dist/m365/todo/commands/list/list-get.js +0 -3
  82. package/dist/m365/todo/commands/list/list-remove.js +1 -1
  83. package/dist/m365/todo/commands/task/task-get.js +0 -3
  84. package/dist/m365/util/commands/accesstoken/accesstoken-get.js +13 -3
  85. package/dist/m365/viva/commands/engage/engage-message-add.js +0 -3
  86. package/dist/m365/viva/commands/engage/engage-message-get.js +0 -3
  87. package/dist/m365/viva/commands/engage/engage-user-get.js +0 -3
  88. package/dist/utils/accessToken.js +8 -0
  89. package/dist/utils/entraApp.js +3 -1
  90. package/dist/utils/optionsUtils.js +28 -0
  91. package/dist/utils/powerPlatform.js +51 -1
  92. package/dist/utils/prompt.js +9 -2
  93. package/dist/utils/spo.js +32 -3
  94. package/docs/docs/cmd/booking/business/business-get.mdx +13 -0
  95. package/docs/docs/cmd/entra/policy/policy-list.mdx +1 -1
  96. package/docs/docs/cmd/entra/user/user-guest-add.mdx +11 -0
  97. package/docs/docs/cmd/flow/environment/environment-get.mdx +2 -0
  98. package/docs/docs/cmd/flow/flow-get.mdx +2 -0
  99. package/docs/docs/cmd/flow/run/run-get.mdx +17 -13
  100. package/docs/docs/cmd/graph/directoryextension/directoryextension-get.mdx +2 -3
  101. package/docs/docs/cmd/graph/openextension/openextension-add.mdx +120 -0
  102. package/docs/docs/cmd/graph/openextension/openextension-get.mdx +111 -0
  103. package/docs/docs/cmd/graph/openextension/openextension-list.mdx +129 -0
  104. package/docs/docs/cmd/graph/openextension/openextension-remove.mdx +59 -0
  105. package/docs/docs/cmd/login.mdx +9 -1
  106. package/docs/docs/cmd/pa/app/app-get.mdx +8 -2
  107. package/docs/docs/cmd/pa/environment/environment-get.mdx +5 -3
  108. package/docs/docs/cmd/planner/plan/plan-add.mdx +2 -0
  109. package/docs/docs/cmd/planner/plan/plan-get.mdx +8 -4
  110. package/docs/docs/cmd/planner/plan/plan-set.mdx +2 -0
  111. package/docs/docs/cmd/planner/task/task-checklistitem-add.mdx +6 -3
  112. package/docs/docs/cmd/pp/aibuildermodel/aibuildermodel-get.mdx +12 -3
  113. package/docs/docs/cmd/pp/card/card-get.mdx +36 -5
  114. package/docs/docs/cmd/pp/copilot/copilot-get.mdx +41 -5
  115. package/docs/docs/cmd/pp/dataverse/dataverse-table-get.mdx +19 -4
  116. package/docs/docs/cmd/pp/environment/environment-get.mdx +5 -2
  117. package/docs/docs/cmd/pp/solution/solution-get.mdx +12 -7
  118. package/docs/docs/cmd/pp/solution/solution-publisher-get.mdx +12 -7
  119. package/docs/docs/cmd/pp/website/website-get.mdx +22 -4
  120. package/docs/docs/cmd/spfx/project/project-upgrade.mdx +1 -4
  121. package/docs/docs/cmd/spo/group/group-member-add.mdx +12 -3
  122. package/docs/docs/cmd/spo/homesite/homesite-add.mdx +124 -0
  123. package/docs/docs/cmd/spo/page/page-copy.mdx +30 -4
  124. package/docs/docs/cmd/spo/page/page-get.mdx +44 -5
  125. package/docs/docs/cmd/spo/sitedesign/sitedesign-run-status-get.mdx +7 -0
  126. package/docs/docs/cmd/todo/list/list-get.mdx +7 -4
  127. package/docs/docs/cmd/todo/task/task-get.mdx +7 -2
  128. package/docs/docs/cmd/util/accesstoken/accesstoken-get.mdx +72 -0
  129. package/docs/docs/cmd/viva/engage/engage-message-add.mdx +37 -12
  130. package/docs/docs/cmd/viva/engage/engage-message-get.mdx +27 -13
  131. package/docs/docs/cmd/viva/engage/engage-user-get.mdx +50 -8
  132. package/npm-shrinkwrap.json +517 -481
  133. package/package.json +14 -14
@@ -4,14 +4,12 @@ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (
4
4
  return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
5
5
  };
6
6
  var _PpSolutionPublishCommand_instances, _PpSolutionPublishCommand_initTelemetry, _PpSolutionPublishCommand_initOptions, _PpSolutionPublishCommand_initOptionSets, _PpSolutionPublishCommand_initValidators;
7
- import { cli } from '../../../../cli/cli.js';
8
7
  import request from '../../../../request.js';
9
8
  import { formatting } from '../../../../utils/formatting.js';
10
9
  import { powerPlatform } from '../../../../utils/powerPlatform.js';
11
10
  import { validation } from '../../../../utils/validation.js';
12
11
  import PowerPlatformCommand from '../../../base/PowerPlatformCommand.js';
13
12
  import commands from '../../commands.js';
14
- import ppSolutionGetCommand from './solution-get.js';
15
13
  class PpSolutionPublishCommand extends PowerPlatformCommand {
16
14
  get name() {
17
15
  return commands.SOLUTION_PUBLISH;
@@ -29,8 +27,8 @@ class PpSolutionPublishCommand extends PowerPlatformCommand {
29
27
  }
30
28
  async commandAction(logger, args) {
31
29
  try {
32
- const dynamicsApiUrl = await powerPlatform.getDynamicsInstanceApiUrl(args.options.environmentName, args.options.asAdmin);
33
- const solutionId = await this.getSolutionId(args, logger);
30
+ const dynamicsApiUrl = await powerPlatform.getDynamicsInstanceApiUrl(args.options.environment, args.options.asAdmin);
31
+ const solutionId = await this.getSolutionId(args, dynamicsApiUrl, logger);
34
32
  const solutionComponents = await this.getSolutionComponents(dynamicsApiUrl, solutionId, logger);
35
33
  const parameterXml = await this.buildXmlRequestObject(solutionComponents, logger);
36
34
  const requestOptions = {
@@ -71,23 +69,15 @@ class PpSolutionPublishCommand extends PowerPlatformCommand {
71
69
  const response = await request.get(requestOptions);
72
70
  return response.value;
73
71
  }
74
- async getSolutionId(args, logger) {
72
+ async getSolutionId(args, dynamicsApiUrl, logger) {
75
73
  if (args.options.id) {
76
74
  return args.options.id;
77
75
  }
78
76
  if (this.verbose) {
79
- await logger.logToStderr(`Retrieving solutionId`);
77
+ await logger.logToStderr(`Retrieving solutionId...`);
80
78
  }
81
- const options = {
82
- environmentName: args.options.environmentName,
83
- name: args.options.name,
84
- output: 'json',
85
- debug: this.debug,
86
- verbose: this.verbose
87
- };
88
- const output = await cli.executeCommandWithOutput(ppSolutionGetCommand, { options: { ...options, _: [] } });
89
- const getSolutionOutput = JSON.parse(output.stdout);
90
- return getSolutionOutput.solutionid;
79
+ const solution = await powerPlatform.getSolutionByName(dynamicsApiUrl, args.options.name);
80
+ return solution.solutionid;
91
81
  }
92
82
  async buildXmlRequestObject(solutionComponents, logger) {
93
83
  if (this.verbose) {
@@ -16,9 +16,6 @@ class PpSolutionPublisherGetCommand extends PowerPlatformCommand {
16
16
  get description() {
17
17
  return 'Get information about the specified publisher in a given environment.';
18
18
  }
19
- defaultProperties() {
20
- return ['publisherid', 'uniquename', 'friendlyname'];
21
- }
22
19
  constructor() {
23
20
  super();
24
21
  _PpSolutionPublisherGetCommand_instances.add(this);
@@ -10,7 +10,6 @@ import { powerPlatform } from '../../../../utils/powerPlatform.js';
10
10
  import { validation } from '../../../../utils/validation.js';
11
11
  import PowerPlatformCommand from '../../../base/PowerPlatformCommand.js';
12
12
  import commands from '../../commands.js';
13
- import ppSolutionGetCommand from './solution-get.js';
14
13
  class PpSolutionRemoveCommand extends PowerPlatformCommand {
15
14
  get name() {
16
15
  return commands.SOLUTION_REMOVE;
@@ -40,25 +39,17 @@ class PpSolutionRemoveCommand extends PowerPlatformCommand {
40
39
  }
41
40
  }
42
41
  }
43
- async getSolutionId(args) {
42
+ async getSolutionId(args, dynamicsApiUrl) {
44
43
  if (args.options.id) {
45
44
  return args.options.id;
46
45
  }
47
- const options = {
48
- environmentName: args.options.environmentName,
49
- name: args.options.name,
50
- output: 'json',
51
- debug: this.debug,
52
- verbose: this.verbose
53
- };
54
- const output = await cli.executeCommandWithOutput(ppSolutionGetCommand, { options: { ...options, _: [] } });
55
- const getSolutionOutput = JSON.parse(output.stdout);
56
- return getSolutionOutput.solutionid;
46
+ const solution = await powerPlatform.getSolutionByName(dynamicsApiUrl, args.options.name);
47
+ return solution.solutionid;
57
48
  }
58
49
  async deleteSolution(args) {
59
50
  try {
60
51
  const dynamicsApiUrl = await powerPlatform.getDynamicsInstanceApiUrl(args.options.environmentName, args.options.asAdmin);
61
- const solutionId = await this.getSolutionId(args);
52
+ const solutionId = await this.getSolutionId(args, dynamicsApiUrl);
62
53
  const requestOptions = {
63
54
  url: `${dynamicsApiUrl}/api/data/v9.1/solutions(${solutionId})`,
64
55
  headers: {
@@ -22,9 +22,6 @@ class PpWebSiteGetCommand extends PowerPlatformCommand {
22
22
  get description() {
23
23
  return 'Gets information about the specified Power Pages website.';
24
24
  }
25
- defaultProperties() {
26
- return ['id', 'name', 'websiteUrl', 'tenantId', 'subdomain', 'type', 'status', 'siteVisibility'];
27
- }
28
25
  get schema() {
29
26
  return options;
30
27
  }
@@ -0,0 +1,25 @@
1
+ import { FN002021_DEVDEP_rushstack_eslint_config } from '../project-upgrade/rules/FN002021_DEVDEP_rushstack_eslint_config.js';
2
+ import { FN001008_DEP_react } from './rules/FN001008_DEP_react.js';
3
+ import { FN001009_DEP_react_dom } from './rules/FN001009_DEP_react_dom.js';
4
+ import { FN001035_DEP_fluentui_react } from './rules/FN001035_DEP_fluentui_react.js';
5
+ import { FN002004_DEVDEP_gulp } from './rules/FN002004_DEVDEP_gulp.js';
6
+ import { FN002007_DEVDEP_ajv } from './rules/FN002007_DEVDEP_ajv.js';
7
+ import { FN002013_DEVDEP_types_webpack_env } from './rules/FN002013_DEVDEP_types_webpack_env.js';
8
+ import { FN002015_DEVDEP_types_react } from './rules/FN002015_DEVDEP_types_react.js';
9
+ import { FN002016_DEVDEP_types_react_dom } from './rules/FN002016_DEVDEP_types_react_dom.js';
10
+ import { FN002019_DEVDEP_microsoft_rush_stack_compiler } from './rules/FN002019_DEVDEP_microsoft_rush_stack_compiler.js';
11
+ import { FN021001_PKG_spfx_deps_versions_match_project_version } from './rules/FN021001_PKG_spfx_deps_versions_match_project_version.js';
12
+ export default [
13
+ new FN001008_DEP_react('17'),
14
+ new FN001009_DEP_react_dom('17'),
15
+ new FN001035_DEP_fluentui_react('^8.106.4'),
16
+ new FN002004_DEVDEP_gulp('4.0.2'),
17
+ new FN002007_DEVDEP_ajv('^6.12.5'),
18
+ new FN002013_DEVDEP_types_webpack_env('~1.15.2'),
19
+ new FN002015_DEVDEP_types_react('17'),
20
+ new FN002016_DEVDEP_types_react_dom('17'),
21
+ new FN002019_DEVDEP_microsoft_rush_stack_compiler(['5.3']),
22
+ new FN002021_DEVDEP_rushstack_eslint_config('4.0.1'),
23
+ new FN021001_PKG_spfx_deps_versions_match_project_version(true)
24
+ ];
25
+ //# sourceMappingURL=doctor-1.21.0.js.map
@@ -71,7 +71,8 @@ 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
+ '1.21.0'
75
76
  ];
76
77
  __classPrivateFieldGet(this, _SpfxProjectDoctorCommand_instances, "m", _SpfxProjectDoctorCommand_initTelemetry).call(this);
77
78
  __classPrivateFieldGet(this, _SpfxProjectDoctorCommand_instances, "m", _SpfxProjectDoctorCommand_initOptions).call(this);
@@ -0,0 +1,13 @@
1
+ import { DependencyRule } from "./DependencyRule.js";
2
+ export class FN002029_DEVDEP_microsoft_rush_stack_compiler_5_3 extends DependencyRule {
3
+ constructor(packageVersion) {
4
+ super('@microsoft/rush-stack-compiler-5.3', packageVersion, true);
5
+ }
6
+ get id() {
7
+ return 'FN002029';
8
+ }
9
+ get supersedes() {
10
+ return ['FN002010', 'FN002011', 'FN002012', 'FN002017', 'FN002018', 'FN002020', 'FN002028'];
11
+ }
12
+ }
13
+ //# sourceMappingURL=FN002029_DEVDEP_microsoft_rush_stack_compiler_5_3.js.map
@@ -0,0 +1,63 @@
1
+ import { FN001001_DEP_microsoft_sp_core_library } from './rules/FN001001_DEP_microsoft_sp_core_library.js';
2
+ import { FN001002_DEP_microsoft_sp_lodash_subset } from './rules/FN001002_DEP_microsoft_sp_lodash_subset.js';
3
+ import { FN001003_DEP_microsoft_sp_office_ui_fabric_core } from './rules/FN001003_DEP_microsoft_sp_office_ui_fabric_core.js';
4
+ import { FN001004_DEP_microsoft_sp_webpart_base } from './rules/FN001004_DEP_microsoft_sp_webpart_base.js';
5
+ import { FN001011_DEP_microsoft_sp_dialog } from './rules/FN001011_DEP_microsoft_sp_dialog.js';
6
+ import { FN001012_DEP_microsoft_sp_application_base } from './rules/FN001012_DEP_microsoft_sp_application_base.js';
7
+ import { FN001013_DEP_microsoft_decorators } from './rules/FN001013_DEP_microsoft_decorators.js';
8
+ import { FN001014_DEP_microsoft_sp_listview_extensibility } from './rules/FN001014_DEP_microsoft_sp_listview_extensibility.js';
9
+ import { FN001021_DEP_microsoft_sp_property_pane } from './rules/FN001021_DEP_microsoft_sp_property_pane.js';
10
+ import { FN001023_DEP_microsoft_sp_component_base } from './rules/FN001023_DEP_microsoft_sp_component_base.js';
11
+ import { FN001024_DEP_microsoft_sp_diagnostics } from './rules/FN001024_DEP_microsoft_sp_diagnostics.js';
12
+ import { FN001025_DEP_microsoft_sp_dynamic_data } from './rules/FN001025_DEP_microsoft_sp_dynamic_data.js';
13
+ import { FN001026_DEP_microsoft_sp_extension_base } from './rules/FN001026_DEP_microsoft_sp_extension_base.js';
14
+ import { FN001027_DEP_microsoft_sp_http } from './rules/FN001027_DEP_microsoft_sp_http.js';
15
+ import { FN001028_DEP_microsoft_sp_list_subscription } from './rules/FN001028_DEP_microsoft_sp_list_subscription.js';
16
+ import { FN001029_DEP_microsoft_sp_loader } from './rules/FN001029_DEP_microsoft_sp_loader.js';
17
+ import { FN001030_DEP_microsoft_sp_module_interfaces } from './rules/FN001030_DEP_microsoft_sp_module_interfaces.js';
18
+ import { FN001031_DEP_microsoft_sp_odata_types } from './rules/FN001031_DEP_microsoft_sp_odata_types.js';
19
+ import { FN001032_DEP_microsoft_sp_page_context } from './rules/FN001032_DEP_microsoft_sp_page_context.js';
20
+ import { FN001034_DEP_microsoft_sp_adaptive_card_extension_base } from './rules/FN001034_DEP_microsoft_sp_adaptive_card_extension_base.js';
21
+ import { FN002001_DEVDEP_microsoft_sp_build_web } from './rules/FN002001_DEVDEP_microsoft_sp_build_web.js';
22
+ import { FN002002_DEVDEP_microsoft_sp_module_interfaces } from './rules/FN002002_DEVDEP_microsoft_sp_module_interfaces.js';
23
+ import { FN002022_DEVDEP_microsoft_eslint_plugin_spfx } from './rules/FN002022_DEVDEP_microsoft_eslint_plugin_spfx.js';
24
+ import { FN002023_DEVDEP_microsoft_eslint_config_spfx } from './rules/FN002023_DEVDEP_microsoft_eslint_config_spfx.js';
25
+ import { FN002024_DEVDEP_eslint } from './rules/FN002024_DEVDEP_eslint.js';
26
+ import { FN002026_DEVDEP_typescript } from './rules/FN002026_DEVDEP_typescript.js';
27
+ import { FN002029_DEVDEP_microsoft_rush_stack_compiler_5_3 } from './rules/FN002029_DEVDEP_microsoft_rush_stack_compiler_5_3.js';
28
+ import { FN010001_YORC_version } from './rules/FN010001_YORC_version.js';
29
+ import { FN012017_TSC_extends } from './rules/FN012017_TSC_extends.js';
30
+ import { FN021003_PKG_engines_node } from './rules/FN021003_PKG_engines_node.js';
31
+ export default [
32
+ new FN001001_DEP_microsoft_sp_core_library('1.21.0'),
33
+ new FN001002_DEP_microsoft_sp_lodash_subset('1.21.0'),
34
+ new FN001003_DEP_microsoft_sp_office_ui_fabric_core('1.21.0'),
35
+ new FN001004_DEP_microsoft_sp_webpart_base('1.21.0'),
36
+ new FN001011_DEP_microsoft_sp_dialog('1.21.0'),
37
+ new FN001012_DEP_microsoft_sp_application_base('1.21.0'),
38
+ new FN001014_DEP_microsoft_sp_listview_extensibility('1.21.0'),
39
+ new FN001021_DEP_microsoft_sp_property_pane('1.21.0'),
40
+ new FN001023_DEP_microsoft_sp_component_base('1.21.0'),
41
+ new FN001024_DEP_microsoft_sp_diagnostics('1.21.0'),
42
+ new FN001025_DEP_microsoft_sp_dynamic_data('1.21.0'),
43
+ new FN001026_DEP_microsoft_sp_extension_base('1.21.0'),
44
+ new FN001027_DEP_microsoft_sp_http('1.21.0'),
45
+ new FN001028_DEP_microsoft_sp_list_subscription('1.21.0'),
46
+ new FN001029_DEP_microsoft_sp_loader('1.21.0'),
47
+ new FN001030_DEP_microsoft_sp_module_interfaces('1.21.0'),
48
+ new FN001031_DEP_microsoft_sp_odata_types('1.21.0'),
49
+ new FN001032_DEP_microsoft_sp_page_context('1.21.0'),
50
+ new FN001013_DEP_microsoft_decorators('1.21.0'),
51
+ new FN001034_DEP_microsoft_sp_adaptive_card_extension_base('1.21.0'),
52
+ new FN002001_DEVDEP_microsoft_sp_build_web('1.21.0'),
53
+ new FN002002_DEVDEP_microsoft_sp_module_interfaces('1.21.0'),
54
+ new FN002024_DEVDEP_eslint('8.57.1'),
55
+ new FN002022_DEVDEP_microsoft_eslint_plugin_spfx('1.21.0'),
56
+ new FN002023_DEVDEP_microsoft_eslint_config_spfx('1.21.0'),
57
+ new FN002026_DEVDEP_typescript('5.3.3'),
58
+ new FN002029_DEVDEP_microsoft_rush_stack_compiler_5_3('0.1.0'),
59
+ new FN010001_YORC_version('1.21.0'),
60
+ new FN012017_TSC_extends('./node_modules/@microsoft/rush-stack-compiler-5.3/includes/tsconfig-web.json'),
61
+ new FN021003_PKG_engines_node('>=22.14.0 < 23.0.0')
62
+ ];
63
+ //# sourceMappingURL=upgrade-1.21.0.js.map
@@ -73,7 +73,8 @@ class SpfxProjectUpgradeCommand extends BaseProjectCommand {
73
73
  '1.18.1',
74
74
  '1.18.2',
75
75
  '1.19.0',
76
- '1.20.0'
76
+ '1.20.0',
77
+ '1.21.0'
77
78
  ];
78
79
  __classPrivateFieldGet(this, _SpfxProjectUpgradeCommand_instances, "m", _SpfxProjectUpgradeCommand_initTelemetry).call(this);
79
80
  __classPrivateFieldGet(this, _SpfxProjectUpgradeCommand_instances, "m", _SpfxProjectUpgradeCommand_initOptions).call(this);
@@ -590,6 +590,21 @@ class SpfxDoctorCommand extends BaseProjectCommand {
590
590
  range: '^4 || ^5',
591
591
  fix: 'npm i -g yo@5'
592
592
  }
593
+ },
594
+ '1.21.0': {
595
+ gulpCli: {
596
+ range: '^1 || ^2 || ^3',
597
+ fix: 'npm i -g gulp-cli@3'
598
+ },
599
+ node: {
600
+ range: '>=22.14.0 < 23.0.0',
601
+ fix: 'Install Node.js >=22.14.0 < 23.0.0'
602
+ },
603
+ sp: SharePointVersion.SPO,
604
+ yo: {
605
+ range: '^4 || ^5',
606
+ fix: 'npm i -g yo@5'
607
+ }
593
608
  }
594
609
  };
595
610
  this.output = '';
@@ -4,16 +4,12 @@ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (
4
4
  return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
5
5
  };
6
6
  var _SpoFolderRoleAssignmentAddCommand_instances, _SpoFolderRoleAssignmentAddCommand_initTelemetry, _SpoFolderRoleAssignmentAddCommand_initOptions, _SpoFolderRoleAssignmentAddCommand_initValidators, _SpoFolderRoleAssignmentAddCommand_initTypes;
7
- import { cli } from '../../../../cli/cli.js';
8
7
  import request from '../../../../request.js';
9
8
  import { formatting } from '../../../../utils/formatting.js';
10
9
  import { urlUtil } from '../../../../utils/urlUtil.js';
11
10
  import { validation } from '../../../../utils/validation.js';
12
11
  import SpoCommand from '../../../base/SpoCommand.js';
13
12
  import commands from '../../commands.js';
14
- import spoGroupGetCommand from '../group/group-get.js';
15
- import spoRoleDefinitionFolderCommand from '../roledefinition/roledefinition-list.js';
16
- import spoUserGetCommand from '../user/user-get.js';
17
13
  import { entraGroup } from '../../../../utils/entraGroup.js';
18
14
  import { spo } from '../../../../utils/spo.js';
19
15
  class SpoFolderRoleAssignmentAddCommand extends SpoCommand {
@@ -38,7 +34,6 @@ class SpoFolderRoleAssignmentAddCommand extends SpoCommand {
38
34
  const serverRelativeUrl = urlUtil.getServerRelativePath(args.options.webUrl, args.options.folderUrl);
39
35
  const roleFolderUrl = urlUtil.getWebRelativePath(args.options.webUrl, args.options.folderUrl);
40
36
  try {
41
- //await this.getFolderUrl(args.options);
42
37
  let requestUrl = `${args.options.webUrl}/_api/web/`;
43
38
  if (roleFolderUrl.split('/').length === 2) {
44
39
  requestUrl += `GetList('${formatting.encodeQueryParameter(serverRelativeUrl)}')`;
@@ -46,13 +41,13 @@ class SpoFolderRoleAssignmentAddCommand extends SpoCommand {
46
41
  else {
47
42
  requestUrl += `GetFolderByServerRelativePath(DecodedUrl='${formatting.encodeQueryParameter(serverRelativeUrl)}')/ListItemAllFields`;
48
43
  }
49
- const roleDefinitionId = await this.getRoleDefinitionId(args.options);
44
+ const roleDefinitionId = await this.getRoleDefinitionId(args.options, logger);
50
45
  let principalId = args.options.principalId;
51
46
  if (args.options.upn) {
52
- principalId = await this.getUserPrincipalId(args.options);
47
+ principalId = await this.getUserPrincipalId(args.options, logger);
53
48
  }
54
49
  else if (args.options.groupName) {
55
- principalId = await this.getGroupPrincipalId(args.options);
50
+ principalId = await this.getGroupPrincipalId(args.options, logger);
56
51
  }
57
52
  else if (args.options.entraGroupId || args.options.entraGroupName) {
58
53
  if (this.verbose) {
@@ -82,50 +77,20 @@ class SpoFolderRoleAssignmentAddCommand extends SpoCommand {
82
77
  };
83
78
  return request.post(requestOptions);
84
79
  }
85
- async getRoleDefinitionId(options) {
80
+ async getRoleDefinitionId(options, logger) {
86
81
  if (!options.roleDefinitionName) {
87
82
  return options.roleDefinitionId;
88
83
  }
89
- const roleDefinitionFolderCommandOptions = {
90
- webUrl: options.webUrl,
91
- output: 'json',
92
- debug: this.debug,
93
- verbose: this.verbose
94
- };
95
- const output = await cli.executeCommandWithOutput(spoRoleDefinitionFolderCommand, { options: { ...roleDefinitionFolderCommandOptions, _: [] } });
96
- const getRoleDefinitionFolderOutput = JSON.parse(output.stdout);
97
- const roleDefinition = getRoleDefinitionFolderOutput.find((role) => role.Name === options.roleDefinitionName);
98
- if (roleDefinition) {
99
- return roleDefinition.Id;
100
- }
101
- else {
102
- throw Error(`The specified role definition name '${options.roleDefinitionName}' does not exist.`);
103
- }
84
+ const roleDefintion = await spo.getRoleDefintionByName(options.webUrl, options.roleDefinitionName, logger, this.verbose);
85
+ return roleDefintion.Id;
104
86
  }
105
- async getGroupPrincipalId(options) {
106
- const groupGetCommandOptions = {
107
- webUrl: options.webUrl,
108
- name: options.groupName,
109
- output: 'json',
110
- debug: this.debug,
111
- verbose: this.verbose
112
- };
113
- const output = await cli.executeCommandWithOutput(spoGroupGetCommand, { options: { ...groupGetCommandOptions, _: [] } });
114
- const getGroupOutput = JSON.parse(output.stdout);
115
- return getGroupOutput.Id;
87
+ async getGroupPrincipalId(options, logger) {
88
+ const group = await spo.getGroupByName(options.webUrl, options.groupName, logger, this.verbose);
89
+ return group.Id;
116
90
  }
117
- async getUserPrincipalId(options) {
118
- const userGetCommandOptions = {
119
- webUrl: options.webUrl,
120
- email: options.upn,
121
- id: undefined,
122
- output: 'json',
123
- debug: this.debug,
124
- verbose: this.verbose
125
- };
126
- const output = await cli.executeCommandWithOutput(spoUserGetCommand, { options: { ...userGetCommandOptions, _: [] } });
127
- const getUserOutput = JSON.parse(output.stdout);
128
- return getUserOutput.Id;
91
+ async getUserPrincipalId(options, logger) {
92
+ const user = await spo.getUserByEmail(options.webUrl, options.upn, logger, this.verbose);
93
+ return user.Id;
129
94
  }
130
95
  }
131
96
  _SpoFolderRoleAssignmentAddCommand_instances = new WeakSet(), _SpoFolderRoleAssignmentAddCommand_initTelemetry = function _SpoFolderRoleAssignmentAddCommand_initTelemetry() {
@@ -11,8 +11,6 @@ import { urlUtil } from '../../../../utils/urlUtil.js';
11
11
  import { validation } from '../../../../utils/validation.js';
12
12
  import SpoCommand from '../../../base/SpoCommand.js';
13
13
  import commands from '../../commands.js';
14
- import spoGroupGetCommand from '../group/group-get.js';
15
- import spoUserGetCommand from '../user/user-get.js';
16
14
  import { entraGroup } from '../../../../utils/entraGroup.js';
17
15
  import { spo } from '../../../../utils/spo.js';
18
16
  class SpoFolderRoleAssignmentRemoveCommand extends SpoCommand {
@@ -38,11 +36,12 @@ class SpoFolderRoleAssignmentRemoveCommand extends SpoCommand {
38
36
  const serverRelativeUrl = urlUtil.getServerRelativePath(args.options.webUrl, args.options.folderUrl);
39
37
  const requestUrl = `${args.options.webUrl}/_api/web/GetFolderByServerRelativePath(DecodedUrl='${formatting.encodeQueryParameter(serverRelativeUrl)}')/ListItemAllFields`;
40
38
  try {
39
+ let principalId = args.options.principalId;
41
40
  if (args.options.upn) {
42
- args.options.principalId = await this.getUserPrincipalId(args.options);
41
+ principalId = await this.getUserPrincipalId(args.options, logger);
43
42
  }
44
43
  else if (args.options.groupName) {
45
- args.options.principalId = await this.getGroupPrincipalId(args.options);
44
+ principalId = await this.getGroupPrincipalId(args.options, logger);
46
45
  }
47
46
  else if (args.options.entraGroupId || args.options.entraGroupName) {
48
47
  if (this.verbose) {
@@ -52,9 +51,9 @@ class SpoFolderRoleAssignmentRemoveCommand extends SpoCommand {
52
51
  ? await entraGroup.getGroupById(args.options.entraGroupId)
53
52
  : await entraGroup.getGroupByDisplayName(args.options.entraGroupName);
54
53
  const siteUser = await spo.ensureEntraGroup(args.options.webUrl, group);
55
- args.options.principalId = siteUser.Id;
54
+ principalId = siteUser.Id;
56
55
  }
57
- await this.removeRoleAssignment(requestUrl, logger, args.options);
56
+ await this.removeRoleAssignment(requestUrl, principalId);
58
57
  }
59
58
  catch (err) {
60
59
  this.handleRejectedODataJsonPromise(err);
@@ -70,9 +69,9 @@ class SpoFolderRoleAssignmentRemoveCommand extends SpoCommand {
70
69
  }
71
70
  }
72
71
  }
73
- async removeRoleAssignment(requestUrl, logger, options) {
72
+ async removeRoleAssignment(requestUrl, principalId) {
74
73
  const requestOptions = {
75
- url: `${requestUrl}/roleassignments/removeroleassignment(principalid='${options.principalId}')`,
74
+ url: `${requestUrl}/roleassignments/removeroleassignment(principalid='${principalId}')`,
76
75
  method: 'POST',
77
76
  headers: {
78
77
  'accept': 'application/json;odata=nometadata',
@@ -82,30 +81,13 @@ class SpoFolderRoleAssignmentRemoveCommand extends SpoCommand {
82
81
  };
83
82
  return request.post(requestOptions);
84
83
  }
85
- async getGroupPrincipalId(options) {
86
- const groupGetCommandOptions = {
87
- webUrl: options.webUrl,
88
- name: options.groupName,
89
- output: 'json',
90
- debug: this.debug,
91
- verbose: this.verbose
92
- };
93
- const output = await cli.executeCommandWithOutput(spoGroupGetCommand, { options: { ...groupGetCommandOptions, _: [] } });
94
- const getGroupOutput = JSON.parse(output.stdout);
95
- return getGroupOutput.Id;
84
+ async getGroupPrincipalId(options, logger) {
85
+ const group = await spo.getGroupByName(options.webUrl, options.groupName, logger, this.verbose);
86
+ return group.Id;
96
87
  }
97
- async getUserPrincipalId(options) {
98
- const userGetCommandOptions = {
99
- webUrl: options.webUrl,
100
- email: options.upn,
101
- id: undefined,
102
- output: 'json',
103
- debug: this.debug,
104
- verbose: this.verbose
105
- };
106
- const output = await cli.executeCommandWithOutput(spoUserGetCommand, { options: { ...userGetCommandOptions, _: [] } });
107
- const getUserOutput = JSON.parse(output.stdout);
108
- return getUserOutput.Id;
88
+ async getUserPrincipalId(options, logger) {
89
+ const user = await spo.getUserByEmail(options.webUrl, options.upn, logger, this.verbose);
90
+ return user.Id;
109
91
  }
110
92
  }
111
93
  _SpoFolderRoleAssignmentRemoveCommand_instances = new WeakSet(), _SpoFolderRoleAssignmentRemoveCommand_initTelemetry = function _SpoFolderRoleAssignmentRemoveCommand_initTelemetry() {
@@ -17,9 +17,6 @@ class SpoGroupMemberAddCommand extends SpoCommand {
17
17
  get description() {
18
18
  return 'Add members to a SharePoint Group';
19
19
  }
20
- defaultProperties() {
21
- return ['Title', 'UserPrincipalName'];
22
- }
23
20
  constructor() {
24
21
  super();
25
22
  _SpoGroupMemberAddCommand_instances.add(this);
@@ -0,0 +1,66 @@
1
+ import { z } from 'zod';
2
+ import { zod } from '../../../../utils/zod.js';
3
+ import { globalOptionsZod } from '../../../../Command.js';
4
+ import { spo } from '../../../../utils/spo.js';
5
+ import { validation } from '../../../../utils/validation.js';
6
+ import SpoCommand from '../../../base/SpoCommand.js';
7
+ import commands from '../../commands.js';
8
+ import request from '../../../../request.js';
9
+ const options = globalOptionsZod
10
+ .extend({
11
+ url: zod.alias('u', z.string()
12
+ .refine((url) => validation.isValidSharePointUrl(url) === true, url => ({
13
+ message: `'${url}' is not a valid SharePoint Online site URL.`
14
+ }))),
15
+ audiences: z.string()
16
+ .refine(audiences => validation.isValidGuidArray(audiences) === true, audiences => ({
17
+ message: `The following GUIDs are invalid: ${validation.isValidGuidArray(audiences)}.`
18
+ })).optional(),
19
+ vivaConnectionsDefaultStart: z.boolean().optional(),
20
+ isInDraftMode: z.boolean().optional(),
21
+ order: z.number()
22
+ .refine(order => validation.isValidPositiveInteger(order) === true, order => ({
23
+ message: `'${order}' is not a positive integer.`
24
+ })).optional()
25
+ })
26
+ .strict();
27
+ class SpoHomeSiteAddCommand extends SpoCommand {
28
+ get name() {
29
+ return commands.HOMESITE_ADD;
30
+ }
31
+ get description() {
32
+ return 'Adds a home site';
33
+ }
34
+ get schema() {
35
+ return options;
36
+ }
37
+ async commandAction(logger, args) {
38
+ try {
39
+ const spoAdminUrl = await spo.getSpoAdminUrl(logger, this.verbose);
40
+ const requestOptions = {
41
+ url: `${spoAdminUrl}/_api/SPHSite/AddHomeSite`,
42
+ headers: {
43
+ accept: 'application/json;odata=nometadata'
44
+ },
45
+ responseType: 'json',
46
+ data: {
47
+ siteUrl: args.options.url,
48
+ audiences: args.options.audiences?.split(','),
49
+ vivaConnectionsDefaultStart: args.options.vivaConnectionsDefaultStart ?? true,
50
+ isInDraftMode: args.options.isInDraftMode ?? false,
51
+ order: args.options.order
52
+ }
53
+ };
54
+ if (this.verbose) {
55
+ await logger.logToStderr(`Adding home site with URL: ${args.options.url}...`);
56
+ }
57
+ const res = await request.post(requestOptions);
58
+ await logger.log(res);
59
+ }
60
+ catch (err) {
61
+ this.handleRejectedODataJsonPromise(err);
62
+ }
63
+ }
64
+ }
65
+ export default new SpoHomeSiteAddCommand();
66
+ //# sourceMappingURL=homesite-add.js.map
@@ -4,7 +4,6 @@ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (
4
4
  return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
5
5
  };
6
6
  var _SpoListItemRoleAssignmentAddCommand_instances, _SpoListItemRoleAssignmentAddCommand_initTelemetry, _SpoListItemRoleAssignmentAddCommand_initOptions, _SpoListItemRoleAssignmentAddCommand_initValidators;
7
- import { cli } from '../../../../cli/cli.js';
8
7
  import request from '../../../../request.js';
9
8
  import { entraGroup } from '../../../../utils/entraGroup.js';
10
9
  import { formatting } from '../../../../utils/formatting.js';
@@ -12,9 +11,6 @@ import { urlUtil } from '../../../../utils/urlUtil.js';
12
11
  import { validation } from '../../../../utils/validation.js';
13
12
  import SpoCommand from '../../../base/SpoCommand.js';
14
13
  import commands from '../../commands.js';
15
- import spoGroupGetCommand from '../group/group-get.js';
16
- import spoRoleDefinitionListCommand from '../roledefinition/roledefinition-list.js';
17
- import spoUserGetCommand from '../user/user-get.js';
18
14
  import { spo } from '../../../../utils/spo.js';
19
15
  class SpoListItemRoleAssignmentAddCommand extends SpoCommand {
20
16
  get name() {
@@ -47,15 +43,13 @@ class SpoListItemRoleAssignmentAddCommand extends SpoCommand {
47
43
  requestUrl += `GetList('${formatting.encodeQueryParameter(listServerRelativeUrl)}')/`;
48
44
  }
49
45
  requestUrl += `items(${args.options.listItemId})/`;
50
- const roleDefinitionId = await this.getRoleDefinitionId(args.options);
46
+ const roleDefinitionId = await this.getRoleDefinitionId(args.options, logger);
51
47
  let principalId = args.options.principalId;
52
48
  if (args.options.upn) {
53
- principalId = await this.getUserPrincipalId(args.options);
54
- await this.addRoleAssignment(requestUrl, roleDefinitionId, principalId);
49
+ principalId = await this.getUserPrincipalId(args.options, logger);
55
50
  }
56
51
  else if (args.options.groupName) {
57
- principalId = await this.getGroupPrincipalId(args.options);
58
- await this.addRoleAssignment(requestUrl, roleDefinitionId, principalId);
52
+ principalId = await this.getGroupPrincipalId(args.options, logger);
59
53
  }
60
54
  else if (args.options.entraGroupId || args.options.entraGroupName) {
61
55
  if (this.verbose) {
@@ -85,45 +79,20 @@ class SpoListItemRoleAssignmentAddCommand extends SpoCommand {
85
79
  };
86
80
  await request.post(requestOptions);
87
81
  }
88
- async getRoleDefinitionId(options) {
82
+ async getRoleDefinitionId(options, logger) {
89
83
  if (!options.roleDefinitionName) {
90
84
  return options.roleDefinitionId;
91
85
  }
92
- const roleDefinitionListCommandOptions = {
93
- webUrl: options.webUrl,
94
- output: 'json',
95
- debug: this.debug,
96
- verbose: this.verbose
97
- };
98
- const output = await cli.executeCommandWithOutput(spoRoleDefinitionListCommand, { options: { ...roleDefinitionListCommandOptions, _: [] } });
99
- const getRoleDefinitionListOutput = JSON.parse(output.stdout);
100
- const roleDefinitionId = getRoleDefinitionListOutput.find((role) => role.Name === options.roleDefinitionName).Id;
101
- return roleDefinitionId;
86
+ const roleDefintion = await spo.getRoleDefinitionByName(options.webUrl, options.roleDefinitionName, logger, this.verbose);
87
+ return roleDefintion.Id;
102
88
  }
103
- async getGroupPrincipalId(options) {
104
- const groupGetCommandOptions = {
105
- webUrl: options.webUrl,
106
- name: options.groupName,
107
- output: 'json',
108
- debug: this.debug,
109
- verbose: this.verbose
110
- };
111
- const output = await cli.executeCommandWithOutput(spoGroupGetCommand, { options: { ...groupGetCommandOptions, _: [] } });
112
- const getGroupOutput = JSON.parse(output.stdout);
113
- return getGroupOutput.Id;
89
+ async getGroupPrincipalId(options, logger) {
90
+ const group = await spo.getGroupByName(options.webUrl, options.groupName, logger, this.verbose);
91
+ return group.Id;
114
92
  }
115
- async getUserPrincipalId(options) {
116
- const userGetCommandOptions = {
117
- webUrl: options.webUrl,
118
- email: options.upn,
119
- id: undefined,
120
- output: 'json',
121
- debug: this.debug,
122
- verbose: this.verbose
123
- };
124
- const output = await cli.executeCommandWithOutput(spoUserGetCommand, { options: { ...userGetCommandOptions, _: [] } });
125
- const getUserOutput = JSON.parse(output.stdout);
126
- return getUserOutput.Id;
93
+ async getUserPrincipalId(options, logger) {
94
+ const user = await spo.getUserByEmail(options.webUrl, options.upn, logger, this.verbose);
95
+ return user.Id;
127
96
  }
128
97
  }
129
98
  _SpoListItemRoleAssignmentAddCommand_instances = new WeakSet(), _SpoListItemRoleAssignmentAddCommand_initTelemetry = function _SpoListItemRoleAssignmentAddCommand_initTelemetry() {