@pnp/cli-microsoft365 11.8.0-beta.ae98113 → 11.9.0-beta.0365d84

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 (69) hide show
  1. package/allCommandsFull.json +1 -1
  2. package/dist/cli/cli.js +49 -13
  3. package/dist/index.js +9 -1
  4. package/dist/m365/adaptivecard/commands/adaptivecard-send.js +4 -1
  5. package/dist/m365/app/commands/permission/permission-add.js +4 -1
  6. package/dist/m365/booking/commands/business/business-get.js +5 -1
  7. package/dist/m365/commands/login.js +26 -6
  8. package/dist/m365/entra/commands/administrativeunit/administrativeunit-get.js +5 -1
  9. package/dist/m365/entra/commands/administrativeunit/administrativeunit-remove.js +10 -2
  10. package/dist/m365/entra/commands/organization/organization-set.js +14 -3
  11. package/dist/m365/entra/commands/roleassignment/roleassignment-add.js +10 -2
  12. package/dist/m365/entra/commands/roledefinition/roledefinition-get.js +10 -2
  13. package/dist/m365/entra/commands/roledefinition/roledefinition-remove.js +10 -2
  14. package/dist/m365/entra/commands/roledefinition/roledefinition-set.js +14 -3
  15. package/dist/m365/entra/commands/user/user-session-revoke.js +5 -1
  16. package/dist/m365/exo/commands/approleassignment/approleassignment-add.js +60 -12
  17. package/dist/m365/flow/commands/environment/environment-get.js +5 -1
  18. package/dist/m365/graph/commands/directoryextension/directoryextension-add.js +5 -1
  19. package/dist/m365/graph/commands/directoryextension/directoryextension-get.js +15 -3
  20. package/dist/m365/graph/commands/directoryextension/directoryextension-list.js +5 -1
  21. package/dist/m365/graph/commands/directoryextension/directoryextension-remove.js +15 -3
  22. package/dist/m365/outlook/commands/mail/mail-searchfolder-add.js +5 -1
  23. package/dist/m365/outlook/commands/mailbox/mailbox-settings-get.js +5 -1
  24. package/dist/m365/outlook/commands/mailbox/mailbox-settings-set.js +9 -2
  25. package/dist/m365/pa/commands/environment/environment-get.js +5 -1
  26. package/dist/m365/pp/commands/environment/environment-get.js +5 -1
  27. package/dist/m365/pp/commands/website/website-get.js +5 -1
  28. package/dist/m365/spe/commands/container/container-add.js +5 -1
  29. package/dist/m365/spe/commands/container/container-recyclebinitem-list.js +5 -1
  30. package/dist/m365/spe/commands/container/container-recyclebinitem-remove.js +10 -2
  31. package/dist/m365/spe/commands/container/container-recyclebinitem-restore.js +10 -2
  32. package/dist/m365/spe/commands/container/container-remove.js +10 -2
  33. package/dist/m365/spe/commands/containertype/containertype-get.js +5 -1
  34. package/dist/m365/spe/commands/containertype/containertype-remove.js +5 -1
  35. package/dist/m365/spfx/commands/SpfxCompatibilityMatrix.js +1 -1
  36. package/dist/m365/spfx/commands/project/project-doctor/{doctor-1.23.0-rc.0.js → doctor-1.23.0.js} +1 -1
  37. package/dist/m365/spfx/commands/project/project-doctor.js +7 -1
  38. package/dist/m365/spfx/commands/project/project-upgrade/rules/DependencyRule.js +11 -5
  39. package/dist/m365/spfx/commands/project/project-upgrade/rules/FN002035_DEVDEP_types_heft_jest.js +2 -2
  40. package/dist/m365/spfx/commands/project/project-upgrade/rules/FN002036_DEVDEP_types_jest.js +10 -0
  41. package/dist/m365/spfx/commands/project/project-upgrade/rules/FN027001_OVERRIDES_rushstack_heft.js +33 -0
  42. package/dist/m365/spfx/commands/project/project-upgrade/upgrade-1.22.0.js +2 -2
  43. package/dist/m365/spfx/commands/project/project-upgrade/{upgrade-1.23.0-rc.0.js → upgrade-1.23.0.js} +39 -31
  44. package/dist/m365/spfx/commands/project/project-upgrade.js +36 -19
  45. package/dist/m365/spo/commands/file/file-version-keep.js +5 -1
  46. package/dist/m365/spo/commands/homesite/homesite-add.js +5 -1
  47. package/dist/m365/spo/commands/homesite/homesite-set.js +9 -2
  48. package/dist/m365/spo/commands/list/list-defaultvalue-clear.js +10 -2
  49. package/dist/m365/spo/commands/list/list-defaultvalue-get.js +5 -1
  50. package/dist/m365/spo/commands/list/list-defaultvalue-list.js +5 -1
  51. package/dist/m365/spo/commands/list/list-defaultvalue-remove.js +5 -1
  52. package/dist/m365/spo/commands/list/list-defaultvalue-set.js +5 -1
  53. package/dist/m365/spo/commands/list/list-view-add.js +17 -4
  54. package/dist/m365/spo/commands/page/page-get.js +5 -1
  55. package/dist/m365/spo/commands/web/web-alert-list.js +10 -2
  56. package/dist/m365/spp/commands/autofillcolumn/autofillcolumn-set.js +10 -2
  57. package/dist/m365/spp/commands/model/model-apply.js +10 -2
  58. package/dist/m365/teams/commands/callrecord/callrecord-list.js +5 -1
  59. package/dist/m365/viva/commands/engage/engage-community-user-add.js +20 -4
  60. package/dist/m365/viva/commands/engage/engage-community-user-list.js +10 -2
  61. package/dist/m365/viva/commands/engage/engage-community-user-remove.js +16 -7
  62. package/dist/m365/viva/commands/engage/engage-role-member-list.js +5 -1
  63. package/dist/request.js +1 -1
  64. package/dist/utils/packageManager.js +38 -7
  65. package/dist/utils/prompt.js +1 -7
  66. package/docs/docs/cmd/spfx/project/project-upgrade.mdx +2 -2
  67. package/npm-shrinkwrap.json +1579 -503
  68. package/package.json +37 -19
  69. package/dist/m365/spfx/commands/project/project-upgrade/rules/FN021009_PKG_overrides_rushstack_heft.js +0 -45
@@ -26,7 +26,11 @@ class OutlookMailboxSettingsGetCommand extends GraphCommand {
26
26
  getRefinedSchema(schema) {
27
27
  return schema
28
28
  .refine(options => !(options.userId && options.userName), {
29
- error: 'Specify either userId or userName, but not both'
29
+ error: 'Specify either userId or userName, but not both',
30
+ params: {
31
+ customCode: 'optionSet',
32
+ options: ['userId', 'userName']
33
+ }
30
34
  });
31
35
  }
32
36
  async commandAction(logger, args) {
@@ -45,7 +45,11 @@ class OutlookMailboxSettingsSetCommand extends GraphCommand {
45
45
  getRefinedSchema(schema) {
46
46
  return schema
47
47
  .refine(options => !(options.userId && options.userName), {
48
- error: 'Specify either userId or userName, but not both'
48
+ error: 'Specify either userId or userName, but not both',
49
+ params: {
50
+ customCode: 'optionSet',
51
+ options: ['userId', 'userName']
52
+ }
49
53
  })
50
54
  .refine(options => [
51
55
  options.workingDays, options.workingHoursStartTime, options.workingHoursEndTime, options.workingHoursTimeZone,
@@ -53,7 +57,10 @@ class OutlookMailboxSettingsSetCommand extends GraphCommand {
53
57
  options.autoReplyStartDateTime, options.autoReplyStartTimeZone, options.autoReplyEndDateTime, options.autoReplyEndTimeZone,
54
58
  options.timeFormat, options.timeZone, options.dateFormat, options.delegateMeetingMessageDeliveryOptions, options.language
55
59
  ].filter(o => o !== undefined).length > 0, {
56
- error: 'Specify at least one of the following options: workingDays, workingHoursStartTime, workingHoursEndTime, workingHoursTimeZone, autoReplyStatus, autoReplyExternalAudience, autoReplyExternalMessage, autoReplyInternalMessage, autoReplyStartDateTime, autoReplyStartTimeZone, autoReplyEndDateTime, autoReplyEndTimeZone, timeFormat, timeZone, dateFormat, delegateMeetingMessageDeliveryOptions, or language'
60
+ error: 'Specify at least one of the following options: workingDays, workingHoursStartTime, workingHoursEndTime, workingHoursTimeZone, autoReplyStatus, autoReplyExternalAudience, autoReplyExternalMessage, autoReplyInternalMessage, autoReplyStartDateTime, autoReplyStartTimeZone, autoReplyEndDateTime, autoReplyEndTimeZone, timeFormat, timeZone, dateFormat, delegateMeetingMessageDeliveryOptions, or language',
61
+ params: {
62
+ customCode: 'required'
63
+ }
57
64
  });
58
65
  }
59
66
  async commandAction(logger, args) {
@@ -22,7 +22,11 @@ class PaEnvironmentGetCommand extends PowerAppsCommand {
22
22
  getRefinedSchema(schema) {
23
23
  return schema
24
24
  .refine(options => !!options.name !== !!options.default, {
25
- error: `Specify either name or default, but not both.`
25
+ error: `Specify either name or default, but not both.`,
26
+ params: {
27
+ customCode: 'optionSet',
28
+ options: ['name', 'default']
29
+ }
26
30
  });
27
31
  }
28
32
  async commandAction(logger, args) {
@@ -23,7 +23,11 @@ class PpEnvironmentGetCommand extends PowerPlatformCommand {
23
23
  getRefinedSchema(schema) {
24
24
  return schema
25
25
  .refine(options => !!options.name !== !!options.default, {
26
- error: `Specify either name or default, but not both.`
26
+ error: `Specify either name or default, but not both.`,
27
+ params: {
28
+ customCode: 'optionSet',
29
+ options: ['name', 'default']
30
+ }
27
31
  });
28
32
  }
29
33
  async commandAction(logger, args) {
@@ -28,7 +28,11 @@ class PpWebSiteGetCommand extends PowerPlatformCommand {
28
28
  getRefinedSchema(schema) {
29
29
  return schema
30
30
  .refine(options => [options.url, options.id, options.name].filter(x => x !== undefined).length === 1, {
31
- error: `Specify either url, id or name, but not multiple.`
31
+ error: `Specify either url, id or name, but not multiple.`,
32
+ params: {
33
+ customCode: 'optionSet',
34
+ options: ['url', 'id', 'name']
35
+ }
32
36
  });
33
37
  }
34
38
  async commandAction(logger, args) {
@@ -31,7 +31,11 @@ class SpeContainerAddCommand extends GraphCommand {
31
31
  getRefinedSchema(schema) {
32
32
  return schema
33
33
  .refine((options) => [options.containerTypeId, options.containerTypeName].filter(o => o !== undefined).length === 1, {
34
- error: 'Use one of the following options: containerTypeId or containerTypeName.'
34
+ error: 'Use one of the following options: containerTypeId or containerTypeName.',
35
+ params: {
36
+ customCode: 'optionSet',
37
+ options: ['containerTypeId', 'containerTypeName']
38
+ }
35
39
  });
36
40
  }
37
41
  async commandAction(logger, args) {
@@ -25,7 +25,11 @@ class SpeContainerRecycleBinItemListCommand extends GraphCommand {
25
25
  getRefinedSchema(schema) {
26
26
  return schema
27
27
  .refine((options) => [options.containerTypeId, options.containerTypeName].filter(o => o !== undefined).length === 1, {
28
- error: 'Use one of the following options: containerTypeId or containerTypeName.'
28
+ error: 'Use one of the following options: containerTypeId or containerTypeName.',
29
+ params: {
30
+ customCode: 'optionSet',
31
+ options: ['containerTypeId', 'containerTypeName']
32
+ }
29
33
  });
30
34
  }
31
35
  async commandAction(logger, args) {
@@ -28,10 +28,18 @@ class SpeContainerRecycleBinItemRemoveCommand extends GraphCommand {
28
28
  getRefinedSchema(schema) {
29
29
  return schema
30
30
  .refine((options) => [options.id, options.name].filter(o => o !== undefined).length === 1, {
31
- error: 'Use one of the following options: id or name.'
31
+ error: 'Use one of the following options: id or name.',
32
+ params: {
33
+ customCode: 'optionSet',
34
+ options: ['id', 'name']
35
+ }
32
36
  })
33
37
  .refine((options) => !options.name || [options.containerTypeId, options.containerTypeName].filter(o => o !== undefined).length === 1, {
34
- error: 'Use one of the following options when specifying the container name: containerTypeId or containerTypeName.'
38
+ error: 'Use one of the following options when specifying the container name: containerTypeId or containerTypeName.',
39
+ params: {
40
+ customCode: 'optionSet',
41
+ options: ['containerTypeId', 'containerTypeName']
42
+ }
35
43
  })
36
44
  .refine((options) => options.name || [options.containerTypeId, options.containerTypeName].filter(o => o !== undefined).length === 0, {
37
45
  error: 'Options containerTypeId and containerTypeName are only required when removing a container by name.'
@@ -27,10 +27,18 @@ class SpeContainerRecycleBinItemRestoreCommand extends GraphCommand {
27
27
  getRefinedSchema(schema) {
28
28
  return schema
29
29
  .refine((options) => [options.id, options.name].filter(o => o !== undefined).length === 1, {
30
- error: 'Use one of the following options: id or name.'
30
+ error: 'Use one of the following options: id or name.',
31
+ params: {
32
+ customCode: 'optionSet',
33
+ options: ['id', 'name']
34
+ }
31
35
  })
32
36
  .refine((options) => !options.name || [options.containerTypeId, options.containerTypeName].filter(o => o !== undefined).length === 1, {
33
- error: 'Use one of the following options when specifying the container name: containerTypeId or containerTypeName.'
37
+ error: 'Use one of the following options when specifying the container name: containerTypeId or containerTypeName.',
38
+ params: {
39
+ customCode: 'optionSet',
40
+ options: ['containerTypeId', 'containerTypeName']
41
+ }
34
42
  })
35
43
  .refine((options) => options.name || [options.containerTypeId, options.containerTypeName].filter(o => o !== undefined).length === 0, {
36
44
  error: 'Options containerTypeId and containerTypeName are only required when restoring a container by name.'
@@ -27,10 +27,18 @@ class SpeContainerRemoveCommand extends GraphCommand {
27
27
  getRefinedSchema(schema) {
28
28
  return schema
29
29
  .refine((options) => [options.id, options.name].filter(o => o !== undefined).length === 1, {
30
- error: 'Use one of the following options: id or name.'
30
+ error: 'Use one of the following options: id or name.',
31
+ params: {
32
+ customCode: 'optionSet',
33
+ options: ['id', 'name']
34
+ }
31
35
  })
32
36
  .refine((options) => !options.name || [options.containerTypeId, options.containerTypeName].filter(o => o !== undefined).length === 1, {
33
- error: 'Use one of the following options when specifying the container name: containerTypeId or containerTypeName.'
37
+ error: 'Use one of the following options when specifying the container name: containerTypeId or containerTypeName.',
38
+ params: {
39
+ customCode: 'optionSet',
40
+ options: ['containerTypeId', 'containerTypeName']
41
+ }
34
42
  })
35
43
  .refine((options) => options.name || [options.containerTypeId, options.containerTypeName].filter(o => o !== undefined).length === 0, {
36
44
  error: 'Options containerTypeId and containerTypeName are only required when deleting a container by name.'
@@ -24,7 +24,11 @@ class SpeContainerTypeGetCommand extends GraphDelegatedCommand {
24
24
  getRefinedSchema(schema) {
25
25
  return schema
26
26
  .refine(options => [options.id, options.name].filter(o => o !== undefined).length === 1, {
27
- error: 'Use one of the following options: id or name.'
27
+ error: 'Use one of the following options: id or name.',
28
+ params: {
29
+ customCode: 'optionSet',
30
+ options: ['id', 'name']
31
+ }
28
32
  });
29
33
  }
30
34
  async commandAction(logger, args) {
@@ -26,7 +26,11 @@ class SpeContainerTypeRemoveCommand extends SpoCommand {
26
26
  getRefinedSchema(schema) {
27
27
  return schema
28
28
  .refine(options => [options.id, options.name].filter(o => o !== undefined).length === 1, {
29
- error: 'Use one of the following options: id, name.'
29
+ error: 'Use one of the following options: id, name.',
30
+ params: {
31
+ customCode: 'optionSet',
32
+ options: ['id', 'name']
33
+ }
30
34
  });
31
35
  }
32
36
  async commandAction(logger, args) {
@@ -624,7 +624,7 @@ export const versions = {
624
624
  fix: 'npm i -g yo@7'
625
625
  }
626
626
  },
627
- '1.23.0-rc.0': {
627
+ '1.23.0': {
628
628
  heft: {
629
629
  range: '^1',
630
630
  fix: 'npm i -g @rushstack/heft@1'
@@ -16,4 +16,4 @@ export default [
16
16
  new FN002022_DEVDEP_typescript('~5.8.0'),
17
17
  new FN021001_PKG_spfx_deps_versions_match_project_version(true)
18
18
  ];
19
- //# sourceMappingURL=doctor-1.23.0-rc.0.js.map
19
+ //# sourceMappingURL=doctor-1.23.0.js.map
@@ -77,7 +77,7 @@ class SpfxProjectDoctorCommand extends BaseProjectCommand {
77
77
  '1.22.0',
78
78
  '1.22.1',
79
79
  '1.22.2',
80
- '1.23.0-rc.0'
80
+ '1.23.0'
81
81
  ];
82
82
  __classPrivateFieldGet(this, _SpfxProjectDoctorCommand_instances, "m", _SpfxProjectDoctorCommand_initTelemetry).call(this);
83
83
  __classPrivateFieldGet(this, _SpfxProjectDoctorCommand_instances, "m", _SpfxProjectDoctorCommand_initOptions).call(this);
@@ -308,6 +308,8 @@ ${f.resolution}
308
308
  const packagesDepExact = [];
309
309
  const packagesDepUn = [];
310
310
  const packagesDevUn = [];
311
+ const packagesOverride = [];
312
+ const packagesOverrideRemove = [];
311
313
  findings.forEach(f => {
312
314
  packageManager.mapPackageManagerCommand({
313
315
  command: f.resolution,
@@ -315,6 +317,8 @@ ${f.resolution}
315
317
  packagesDepExact,
316
318
  packagesDepUn,
317
319
  packagesDevUn,
320
+ packagesOverride,
321
+ packagesOverrideRemove,
318
322
  packageMgr: this.packageManager
319
323
  });
320
324
  });
@@ -323,6 +327,8 @@ ${f.resolution}
323
327
  packagesDevExact,
324
328
  packagesDepUn,
325
329
  packagesDevUn,
330
+ packagesOverride,
331
+ packagesOverrideRemove,
326
332
  packageMgr: this.packageManager
327
333
  });
328
334
  if (this.packageManager === 'npm') {
@@ -7,7 +7,7 @@ var _DependencyRule_instances, _DependencyRule_needsUpdate, _DependencyRule_getM
7
7
  import semver from 'semver';
8
8
  import { JsonRule } from '../../JsonRule.js';
9
9
  export class DependencyRule extends JsonRule {
10
- constructor(packageName, packageVersion, isDevDep = false, isOptional = false, add = true) {
10
+ constructor(packageName, packageVersion, isDevDep = false, isOptional = false, add = true, isOverride = false) {
11
11
  super();
12
12
  _DependencyRule_instances.add(this);
13
13
  this.packageName = packageName;
@@ -15,14 +15,20 @@ export class DependencyRule extends JsonRule {
15
15
  this.isDevDep = isDevDep;
16
16
  this.isOptional = isOptional;
17
17
  this.add = add;
18
+ this.isOverride = isOverride;
18
19
  }
19
20
  get title() {
20
21
  return this.packageName;
21
22
  }
22
23
  get description() {
23
- return `${(this.add ? 'Upgrade' : 'Remove')} SharePoint Framework ${(this.isDevDep ? 'dev ' : '')}dependency package ${this.packageName}`;
24
+ return `${(this.add ? 'Upgrade' : 'Remove')} SharePoint Framework ${(this.isOverride ? 'override ' : this.isDevDep ? 'dev ' : '')}dependency package ${this.packageName}`;
24
25
  }
25
26
  get resolution() {
27
+ if (this.isOverride) {
28
+ return this.add ?
29
+ `override overrides.${this.packageName}=${this.packageVersion}` :
30
+ `removeOverride overrides.${this.packageName}`;
31
+ }
26
32
  return this.add ?
27
33
  `${(this.isDevDep ? 'installDev' : 'install')} ${this.packageName}@${this.packageVersion}` :
28
34
  `${(this.isDevDep ? 'uninstallDev' : 'uninstall')} ${this.packageName}`;
@@ -44,10 +50,10 @@ export class DependencyRule extends JsonRule {
44
50
  if (!project.packageJson) {
45
51
  return;
46
52
  }
47
- const projectDependencies = this.isDevDep ? project.packageJson.devDependencies : project.packageJson.dependencies;
53
+ const projectDependencies = this.isOverride ? project.packageJson.overrides : this.isDevDep ? project.packageJson.devDependencies : project.packageJson.dependencies;
48
54
  const versionEntry = projectDependencies ? projectDependencies[this.packageName] : '';
49
55
  if (this.add) {
50
- let jsonProperty = this.isDevDep ? 'devDependencies' : 'dependencies';
56
+ let jsonProperty = this.isOverride ? 'overrides' : this.isDevDep ? 'devDependencies' : 'dependencies';
51
57
  if (versionEntry) {
52
58
  jsonProperty += `.${this.packageName}`;
53
59
  if (__classPrivateFieldGet(this, _DependencyRule_instances, "m", _DependencyRule_needsUpdate).call(this, this.packageVersion, versionEntry)) {
@@ -67,7 +73,7 @@ export class DependencyRule extends JsonRule {
67
73
  }
68
74
  }
69
75
  else {
70
- const jsonProperty = `${(this.isDevDep ? 'devDependencies' : 'dependencies')}.${this.packageName}`;
76
+ const jsonProperty = `${(this.isOverride ? 'overrides' : this.isDevDep ? 'devDependencies' : 'dependencies')}.${this.packageName}`;
71
77
  if (versionEntry) {
72
78
  const node = this.getAstNodeFromFile(project.packageJson, jsonProperty);
73
79
  this.addFindingWithPosition(findings, node);
@@ -1,7 +1,7 @@
1
1
  import { DependencyRule } from "./DependencyRule.js";
2
2
  export class FN002035_DEVDEP_types_heft_jest extends DependencyRule {
3
- constructor(packageVersion) {
4
- super('@types/heft-jest', packageVersion, true);
3
+ constructor(packageVersion, add = true) {
4
+ super('@types/heft-jest', packageVersion, true, false, add);
5
5
  }
6
6
  get id() {
7
7
  return 'FN002035';
@@ -0,0 +1,10 @@
1
+ import { DependencyRule } from "./DependencyRule.js";
2
+ export class FN002036_DEVDEP_types_jest extends DependencyRule {
3
+ constructor(packageVersion) {
4
+ super('@types/jest', packageVersion, true);
5
+ }
6
+ get id() {
7
+ return 'FN002036';
8
+ }
9
+ }
10
+ //# sourceMappingURL=FN002036_DEVDEP_types_jest.js.map
@@ -0,0 +1,33 @@
1
+ import { DependencyRule } from "./DependencyRule.js";
2
+ export class FN027001_OVERRIDES_rushstack_heft extends DependencyRule {
3
+ constructor(version) {
4
+ super('@rushstack/heft', version, false, false, true, true);
5
+ }
6
+ get id() {
7
+ return 'FN027001';
8
+ }
9
+ visit(project, findings) {
10
+ // If an override entry for the package already exists in package.json,
11
+ // emit an extra finding to remove the existing override first. This avoids
12
+ // having to use a separate remove-override rule (e.g. FN027002) in the upgrade scripts.
13
+ if (project.packageJson?.overrides?.[this.packageName] &&
14
+ project.packageJson.overrides[this.packageName] !== this.packageVersion) {
15
+ const node = this.getAstNodeFromFile(project.packageJson, `overrides.${this.packageName}`);
16
+ findings.push({
17
+ id: `${this.id}_REMOVE`,
18
+ title: this.packageName,
19
+ description: `Remove existing SharePoint Framework override dependency package ${this.packageName}`,
20
+ occurrences: [{
21
+ file: this.file,
22
+ resolution: `removeOverride overrides.${this.packageName}`,
23
+ position: this.getPositionFromNode(node)
24
+ }],
25
+ resolutionType: 'cmd',
26
+ severity: 'Required',
27
+ supersedes: []
28
+ });
29
+ }
30
+ super.visit(project, findings);
31
+ }
32
+ }
33
+ //# sourceMappingURL=FN027001_OVERRIDES_rushstack_heft.js.map
@@ -48,7 +48,7 @@ import { FN021005_PKG_scripts_test } from './rules/FN021005_PKG_scripts_test.js'
48
48
  import { FN021006_PKG_scripts_clean } from './rules/FN021006_PKG_scripts_clean.js';
49
49
  import { FN021007_PKG_scripts_start } from './rules/FN021007_PKG_scripts_start.js';
50
50
  import { FN021008_PKG_scripts_eject_webpack } from './rules/FN021008_PKG_scripts_eject_webpack.js';
51
- import { FN021009_PKG_overrides_rushstack_heft } from './rules/FN021009_PKG_overrides_rushstack_heft.js';
51
+ import { FN027001_OVERRIDES_rushstack_heft } from './rules/FN027001_OVERRIDES_rushstack_heft.js';
52
52
  import { FN023003_GITIGNORE_libdts } from './rules/FN023003_GITIGNORE_libdts.js';
53
53
  import { FN023004_GITIGNORE_libcommonjs } from './rules/FN023004_GITIGNORE_libcommonjs.js';
54
54
  import { FN023005_GITIGNORE_libesm } from './rules/FN023005_GITIGNORE_libesm.js';
@@ -151,7 +151,7 @@ export default [
151
151
  new FN021006_PKG_scripts_clean('heft clean'),
152
152
  new FN021007_PKG_scripts_start('heft start --clean'),
153
153
  new FN021008_PKG_scripts_eject_webpack('heft eject-webpack'),
154
- new FN021009_PKG_overrides_rushstack_heft('1.1.2'),
154
+ new FN027001_OVERRIDES_rushstack_heft('1.1.2'),
155
155
  new FN023003_GITIGNORE_libdts(),
156
156
  new FN023004_GITIGNORE_libcommonjs(),
157
157
  new FN023005_GITIGNORE_libesm(),
@@ -28,39 +28,43 @@ import { FN002030_DEVDEP_microsoft_spfx_web_build_rig } from './rules/FN002030_D
28
28
  import { FN002031_DEVDEP_rushstack_heft } from './rules/FN002031_DEVDEP_rushstack_heft.js';
29
29
  import { FN002032_DEVDEP_typescript_eslint_parser } from './rules/FN002032_DEVDEP_typescript_eslint_parser.js';
30
30
  import { FN002034_DEVDEP_microsoft_spfx_heft_plugins } from './rules/FN002034_DEVDEP_microsoft_spfx_heft_plugins.js';
31
+ import { FN002035_DEVDEP_types_heft_jest } from './rules/FN002035_DEVDEP_types_heft_jest.js';
32
+ import { FN002036_DEVDEP_types_jest } from './rules/FN002036_DEVDEP_types_jest.js';
31
33
  import { FN010001_YORC_version } from './rules/FN010001_YORC_version.js';
32
34
  import { FN015008_FILE_eslintrc_js } from './rules/FN015008_FILE_eslintrc_js.js';
33
35
  import { FN015016_FILE_eslint_config_js } from './rules/FN015016_FILE_eslint_config_js.js';
34
- import { FN021009_PKG_overrides_rushstack_heft } from './rules/FN021009_PKG_overrides_rushstack_heft.js';
36
+ import { FN022001_SCSS_remove_fabric_react } from './rules/FN022001_SCSS_remove_fabric_react.js';
37
+ import { FN022002_SCSS_add_fabric_react } from './rules/FN022002_SCSS_add_fabric_react.js';
38
+ import { FN027001_OVERRIDES_rushstack_heft } from './rules/FN027001_OVERRIDES_rushstack_heft.js';
35
39
  export default [
36
- new FN001001_DEP_microsoft_sp_core_library('1.23.0-rc.0'),
37
- new FN001002_DEP_microsoft_sp_lodash_subset('1.23.0-rc.0'),
38
- new FN001003_DEP_microsoft_sp_office_ui_fabric_core('1.23.0-rc.0'),
39
- new FN001004_DEP_microsoft_sp_webpart_base('1.23.0-rc.0'),
40
- new FN001011_DEP_microsoft_sp_dialog('1.23.0-rc.0'),
41
- new FN001012_DEP_microsoft_sp_application_base('1.23.0-rc.0'),
42
- new FN001014_DEP_microsoft_sp_listview_extensibility('1.23.0-rc.0'),
43
- new FN001021_DEP_microsoft_sp_property_pane('1.23.0-rc.0'),
44
- new FN001023_DEP_microsoft_sp_component_base('1.23.0-rc.0'),
45
- new FN001024_DEP_microsoft_sp_diagnostics('1.23.0-rc.0'),
46
- new FN001025_DEP_microsoft_sp_dynamic_data('1.23.0-rc.0'),
47
- new FN001026_DEP_microsoft_sp_extension_base('1.23.0-rc.0'),
48
- new FN001027_DEP_microsoft_sp_http('1.23.0-rc.0'),
49
- new FN001028_DEP_microsoft_sp_list_subscription('1.23.0-rc.0'),
50
- new FN001029_DEP_microsoft_sp_loader('1.23.0-rc.0'),
51
- new FN001030_DEP_microsoft_sp_module_interfaces('1.23.0-rc.0'),
52
- new FN001031_DEP_microsoft_sp_odata_types('1.23.0-rc.0'),
53
- new FN001032_DEP_microsoft_sp_page_context('1.23.0-rc.0'),
54
- new FN001013_DEP_microsoft_decorators('1.23.0-rc.0'),
55
- new FN001034_DEP_microsoft_sp_adaptive_card_extension_base('1.23.0-rc.0'),
56
- new FN002002_DEVDEP_microsoft_sp_module_interfaces('1.23.0-rc.0'),
57
- new FN002022_DEVDEP_microsoft_eslint_plugin_spfx('1.23.0-rc.0'),
58
- new FN002023_DEVDEP_microsoft_eslint_config_spfx('1.23.0-rc.0'),
59
- new FN002030_DEVDEP_microsoft_spfx_web_build_rig('1.23.0-rc.0'),
60
- new FN002034_DEVDEP_microsoft_spfx_heft_plugins('1.23.0-rc.0'),
61
- new FN010001_YORC_version('1.23.0-rc.0'),
62
- new FN002031_DEVDEP_rushstack_heft('1.2.7'),
63
- new FN021009_PKG_overrides_rushstack_heft('1.2.7'),
40
+ new FN001001_DEP_microsoft_sp_core_library('1.23.0'),
41
+ new FN001002_DEP_microsoft_sp_lodash_subset('1.23.0'),
42
+ new FN001003_DEP_microsoft_sp_office_ui_fabric_core('1.23.0'),
43
+ new FN001004_DEP_microsoft_sp_webpart_base('1.23.0'),
44
+ new FN001011_DEP_microsoft_sp_dialog('1.23.0'),
45
+ new FN001012_DEP_microsoft_sp_application_base('1.23.0'),
46
+ new FN001014_DEP_microsoft_sp_listview_extensibility('1.23.0'),
47
+ new FN001021_DEP_microsoft_sp_property_pane('1.23.0'),
48
+ new FN001023_DEP_microsoft_sp_component_base('1.23.0'),
49
+ new FN001024_DEP_microsoft_sp_diagnostics('1.23.0'),
50
+ new FN001025_DEP_microsoft_sp_dynamic_data('1.23.0'),
51
+ new FN001026_DEP_microsoft_sp_extension_base('1.23.0'),
52
+ new FN001027_DEP_microsoft_sp_http('1.23.0'),
53
+ new FN001028_DEP_microsoft_sp_list_subscription('1.23.0'),
54
+ new FN001029_DEP_microsoft_sp_loader('1.23.0'),
55
+ new FN001030_DEP_microsoft_sp_module_interfaces('1.23.0'),
56
+ new FN001031_DEP_microsoft_sp_odata_types('1.23.0'),
57
+ new FN001032_DEP_microsoft_sp_page_context('1.23.0'),
58
+ new FN001013_DEP_microsoft_decorators('1.23.0'),
59
+ new FN001034_DEP_microsoft_sp_adaptive_card_extension_base('1.23.0'),
60
+ new FN002002_DEVDEP_microsoft_sp_module_interfaces('1.23.0'),
61
+ new FN002022_DEVDEP_microsoft_eslint_plugin_spfx('1.23.0'),
62
+ new FN002023_DEVDEP_microsoft_eslint_config_spfx('1.23.0'),
63
+ new FN002030_DEVDEP_microsoft_spfx_web_build_rig('1.23.0'),
64
+ new FN002034_DEVDEP_microsoft_spfx_heft_plugins('1.23.0'),
65
+ new FN010001_YORC_version('1.23.0'),
66
+ new FN002031_DEVDEP_rushstack_heft('1.2.17'),
67
+ new FN027001_OVERRIDES_rushstack_heft('1.2.17'),
64
68
  new FN002025_DEVDEP_eslint_plugin_react_hooks('5.2.0'),
65
69
  new FN002024_DEVDEP_eslint('9.37.0'),
66
70
  new FN015016_FILE_eslint_config_js(true, `const spfxProfile = require('@microsoft/eslint-config-spfx/lib/flat-profiles/react');
@@ -79,6 +83,10 @@ module.exports = [
79
83
  ];`),
80
84
  new FN015008_FILE_eslintrc_js(false),
81
85
  new FN002021_DEVDEP_rushstack_eslint_config('4.5.2', false),
82
- new FN002032_DEVDEP_typescript_eslint_parser('8.46.2', false)
86
+ new FN002032_DEVDEP_typescript_eslint_parser('8.46.2', false),
87
+ new FN002035_DEVDEP_types_heft_jest('1.0.2', false),
88
+ new FN002036_DEVDEP_types_jest('30.0.0'),
89
+ new FN022001_SCSS_remove_fabric_react('~@fluentui/react/dist/sass/References.scss'),
90
+ new FN022002_SCSS_add_fabric_react('pkg:@fluentui/react/dist/sass/References.scss')
83
91
  ];
84
- //# sourceMappingURL=upgrade-1.23.0-rc.0.js.map
92
+ //# sourceMappingURL=upgrade-1.23.0.js.map
@@ -1,8 +1,8 @@
1
1
  import fs from 'fs';
2
2
  import os from 'os';
3
3
  import path from 'path';
4
- // uncomment to support upgrading to preview releases
5
- import { prerelease } from 'semver';
4
+ // Uncomment to support upgrading to preview releases
5
+ // import { prerelease } from 'semver';
6
6
  import { z } from 'zod';
7
7
  import { CommandError, globalOptionsZod } from '../../../../Command.js';
8
8
  import { fsUtil } from '../../../../utils/fsUtil.js';
@@ -12,7 +12,7 @@ import { BaseProjectCommand } from './base-project-command.js';
12
12
  import { FN017001_MISC_npm_dedupe } from './project-upgrade/rules/FN017001_MISC_npm_dedupe.js';
13
13
  export const options = z.strictObject({
14
14
  ...globalOptionsZod.shape,
15
- packageManager: z.enum(['npm', 'pnpm', 'yarn']).default('npm'),
15
+ packageManager: z.enum(['npm', 'pnpm']).default('npm'),
16
16
  preview: z.boolean().optional(),
17
17
  toVersion: z.string().optional().alias('v'),
18
18
  shell: z.enum(['bash', 'powershell', 'cmd']).default('powershell'),
@@ -86,7 +86,7 @@ class SpfxProjectUpgradeCommand extends BaseProjectCommand {
86
86
  '1.22.0',
87
87
  '1.22.1',
88
88
  '1.22.2',
89
- '1.23.0-rc.0'
89
+ '1.23.0'
90
90
  ];
91
91
  }
92
92
  async commandAction(logger, args) {
@@ -95,16 +95,16 @@ class SpfxProjectUpgradeCommand extends BaseProjectCommand {
95
95
  throw new CommandError(`Couldn't find project root folder`, SpfxProjectUpgradeCommand.ERROR_NO_PROJECT_ROOT_FOLDER);
96
96
  }
97
97
  this.toVersion = args.options.toVersion ? args.options.toVersion : this.supportedVersions[this.supportedVersions.length - 1];
98
- // uncomment to support upgrading to preview releases
99
- if (!args.options.toVersion &&
100
- !args.options.preview &&
101
- prerelease(this.toVersion)) {
102
- // no version and no preview specified while the current version to
103
- // upgrade to is a prerelease so let's grab the first non-preview version
104
- // since we're supporting only one preview version, it's sufficient for
105
- // us to take second to last version
106
- this.toVersion = this.supportedVersions[this.supportedVersions.length - 2];
107
- }
98
+ // Uncomment to support upgrading to preview releases
99
+ // if (!args.options.toVersion &&
100
+ // !args.options.preview &&
101
+ // prerelease(this.toVersion)) {
102
+ // // no version and no preview specified while the current version to
103
+ // // upgrade to is a prerelease so let's grab the first non-preview version
104
+ // // since we're supporting only one preview version, it's sufficient for
105
+ // // us to take second to last version
106
+ // this.toVersion = this.supportedVersions[this.supportedVersions.length - 2];
107
+ // }
108
108
  this.packageManager = args.options.packageManager || 'npm';
109
109
  this.shell = args.options.shell || 'powershell';
110
110
  if (this.supportedVersions.indexOf(this.toVersion) < 0) {
@@ -201,7 +201,15 @@ class SpfxProjectUpgradeCommand extends BaseProjectCommand {
201
201
  // replace package operation tokens with command for the specific package manager
202
202
  findingsToReport.forEach(f => {
203
203
  // matches must be in this particular order to avoid false matches, eg.
204
- // uninstallDev contains install
204
+ // uninstallDev contains install, removeOverride contains override
205
+ if (f.resolution.startsWith('removeOverride')) {
206
+ f.resolution = f.resolution.replace('removeOverride', packageManager.getPackageManagerCommand('removeOverride', this.packageManager));
207
+ return;
208
+ }
209
+ if (f.resolution.startsWith('override')) {
210
+ f.resolution = f.resolution.replace('override', packageManager.getPackageManagerCommand('override', this.packageManager));
211
+ return;
212
+ }
205
213
  if (f.resolution.startsWith('uninstallDev')) {
206
214
  f.resolution = f.resolution.replace('uninstallDev', packageManager.getPackageManagerCommand('uninstallDev', this.packageManager));
207
215
  return;
@@ -296,7 +304,9 @@ class SpfxProjectUpgradeCommand extends BaseProjectCommand {
296
304
  .filter((command) => command.indexOf(packageManager.getPackageManagerCommand('install', this.packageManager)) === -1 &&
297
305
  command.indexOf(packageManager.getPackageManagerCommand('installDev', this.packageManager)) === -1 &&
298
306
  command.indexOf(packageManager.getPackageManagerCommand('uninstall', this.packageManager)) === -1 &&
299
- command.indexOf(packageManager.getPackageManagerCommand('uninstallDev', this.packageManager)) === -1))).join(os.EOL), os.EOL,
307
+ command.indexOf(packageManager.getPackageManagerCommand('uninstallDev', this.packageManager)) === -1 &&
308
+ command.indexOf(packageManager.getPackageManagerCommand('override', this.packageManager)) === -1 &&
309
+ command.indexOf(packageManager.getPackageManagerCommand('removeOverride', this.packageManager)) === -1))).join(os.EOL), os.EOL,
300
310
  os.EOL,
301
311
  Object.keys(reportData.modificationPerFile).map(file => {
302
312
  return [
@@ -356,7 +366,9 @@ ${f.resolution}
356
366
  .filter((command) => command.indexOf(packageManager.getPackageManagerCommand('install', this.packageManager)) === -1 &&
357
367
  command.indexOf(packageManager.getPackageManagerCommand('installDev', this.packageManager)) === -1 &&
358
368
  command.indexOf(packageManager.getPackageManagerCommand('uninstall', this.packageManager)) === -1 &&
359
- command.indexOf(packageManager.getPackageManagerCommand('uninstallDev', this.packageManager)) === -1))).join(os.EOL), os.EOL,
369
+ command.indexOf(packageManager.getPackageManagerCommand('uninstallDev', this.packageManager)) === -1 &&
370
+ command.indexOf(packageManager.getPackageManagerCommand('override', this.packageManager)) === -1 &&
371
+ command.indexOf(packageManager.getPackageManagerCommand('removeOverride', this.packageManager)) === -1))).join(os.EOL), os.EOL,
360
372
  '```', os.EOL,
361
373
  os.EOL,
362
374
  '### Modify files', os.EOL,
@@ -433,16 +445,19 @@ ${f.resolution}
433
445
  const packagesDepExact = [];
434
446
  const packagesDepUn = [];
435
447
  const packagesDevUn = [];
448
+ const packagesOverride = [];
449
+ const packagesOverrideRemove = [];
436
450
  findings.forEach(f => {
437
451
  if (f.resolutionType === 'cmd') {
438
- if (f.resolution.indexOf('npm') > -1 ||
439
- f.resolution.indexOf('yarn') > -1) {
452
+ if (f.resolution.indexOf('npm') > -1) {
440
453
  packageManager.mapPackageManagerCommand({
441
454
  command: f.resolution,
442
455
  packagesDevExact,
443
456
  packagesDepExact,
444
457
  packagesDepUn,
445
458
  packagesDevUn,
459
+ packagesOverride,
460
+ packagesOverrideRemove,
446
461
  packageMgr: this.packageManager
447
462
  });
448
463
  }
@@ -468,6 +483,8 @@ ${f.resolution}
468
483
  packagesDevExact,
469
484
  packagesDepUn,
470
485
  packagesDevUn,
486
+ packagesOverride,
487
+ packagesOverrideRemove,
471
488
  packageMgr: this.packageManager
472
489
  });
473
490
  if (this.packageManager === 'npm') {
@@ -31,7 +31,11 @@ class SpoFileVersionKeepCommand extends SpoCommand {
31
31
  getRefinedSchema(schema) {
32
32
  return schema
33
33
  .refine(options => [options.fileUrl, options.fileId].filter(o => o !== undefined).length === 1, {
34
- error: `Specify 'fileUrl' or 'fileId', but not both.`
34
+ error: `Specify 'fileUrl' or 'fileId', but not both.`,
35
+ params: {
36
+ customCode: 'optionSet',
37
+ options: ['fileUrl', 'fileId']
38
+ }
35
39
  });
36
40
  }
37
41
  async commandAction(logger, args) {
@@ -37,7 +37,11 @@ class SpoHomeSiteAddCommand extends SpoCommand {
37
37
  getRefinedSchema(schema) {
38
38
  return schema
39
39
  .refine((options) => [options.audienceIds, options.audienceNames].filter(o => o !== undefined).length <= 1, {
40
- message: 'You must specify either audienceIds or audienceNames but not both.'
40
+ message: 'You must specify either audienceIds or audienceNames but not both.',
41
+ params: {
42
+ customCode: 'optionSet',
43
+ options: ['audienceIds', 'audienceNames']
44
+ }
41
45
  });
42
46
  }
43
47
  async commandAction(logger, args) {