@pnp/cli-microsoft365 6.10.0-beta.81a81c0 → 6.10.0-beta.9aa530d

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 (102) hide show
  1. package/README.md +7 -5
  2. package/dist/m365/booking/commands/business/business-get.js +14 -15
  3. package/dist/m365/search/commands/externalconnection/externalconnection-remove.js +35 -34
  4. package/dist/m365/spfx/commands/project/project-doctor/doctor-1.18.0-beta.1.js +23 -0
  5. package/dist/m365/spfx/commands/project/project-doctor.js +2 -1
  6. package/dist/m365/spfx/commands/project/project-externalize/rules/DynamicRule.js +59 -51
  7. package/dist/m365/spfx/commands/project/project-upgrade/rules/FN001022_DEP_office_ui_fabric_react.js +2 -2
  8. package/dist/m365/spfx/commands/project/project-upgrade/upgrade-1.18.0-beta.1.js +61 -0
  9. package/dist/m365/spfx/commands/project/project-upgrade.js +16 -13
  10. package/dist/m365/spfx/commands/spfx-doctor.js +15 -0
  11. package/dist/m365/spo/commands/folder/folder-remove.js +30 -28
  12. package/dist/m365/spo/commands/list/list-roleassignment-add.js +9 -47
  13. package/dist/m365/spo/commands/tenant/tenant-appcatalog-add.js +12 -15
  14. package/dist/m365/spo/commands/tenant/tenant-applicationcustomizer-set.js +80 -2
  15. package/dist/m365/spo/commands/tenant/tenant-recyclebinitem-remove.js +48 -48
  16. package/dist/m365/teams/commands/chat/chat-get.js +4 -4
  17. package/dist/m365/teams/commands/chat/chat-message-send.js +4 -4
  18. package/dist/utils/spo.js +74 -0
  19. package/docs/docs/_clisettings.mdx +17 -0
  20. package/docs/docs/cmd/pa/app/app-get.mdx +1 -1
  21. package/docs/docs/cmd/pa/app/app-list.mdx +1 -1
  22. package/docs/docs/cmd/pp/aibuildermodel/aibuildermodel-get.mdx +1 -1
  23. package/docs/docs/cmd/pp/aibuildermodel/aibuildermodel-list.mdx +1 -1
  24. package/docs/docs/cmd/pp/card/card-clone.mdx +1 -1
  25. package/docs/docs/cmd/pp/card/card-get.mdx +1 -1
  26. package/docs/docs/cmd/pp/card/card-list.mdx +1 -1
  27. package/docs/docs/cmd/pp/chatbot/chatbot-get.mdx +1 -1
  28. package/docs/docs/cmd/pp/chatbot/chatbot-list.mdx +1 -1
  29. package/docs/docs/cmd/pp/dataverse/dataverse-table-get.mdx +1 -1
  30. package/docs/docs/cmd/pp/dataverse/dataverse-table-list.mdx +1 -1
  31. package/docs/docs/cmd/pp/dataverse/dataverse-table-remove.mdx +1 -1
  32. package/docs/docs/cmd/pp/dataverse/dataverse-table-row-list.mdx +1 -1
  33. package/docs/docs/cmd/pp/dataverse/dataverse-table-row-remove.mdx +1 -1
  34. package/docs/docs/cmd/spo/site/site-add.mdx +35 -0
  35. package/docs/docs/cmd/spo/site/site-appcatalog-add.mdx +5 -1
  36. package/docs/docs/cmd/spo/site/site-appcatalog-list.mdx +14 -0
  37. package/docs/docs/cmd/spo/site/site-appcatalog-remove.mdx +4 -0
  38. package/docs/docs/cmd/spo/site/site-apppermission-add.mdx +68 -0
  39. package/docs/docs/cmd/spo/site/site-apppermission-get.mdx +55 -0
  40. package/docs/docs/cmd/spo/site/site-apppermission-list.mdx +55 -0
  41. package/docs/docs/cmd/spo/site/site-apppermission-remove.mdx +4 -0
  42. package/docs/docs/cmd/spo/site/site-apppermission-set.mdx +66 -0
  43. package/docs/docs/cmd/spo/site/site-chrome-set.mdx +4 -0
  44. package/docs/docs/cmd/spo/site/site-ensure.mdx +70 -0
  45. package/docs/docs/cmd/spo/site/site-get.mdx +179 -0
  46. package/docs/docs/cmd/spo/site/site-groupify.mdx +54 -0
  47. package/docs/docs/cmd/spo/site/site-hubsite-connect.mdx +4 -0
  48. package/docs/docs/cmd/spo/site/site-hubsite-disconnect.mdx +4 -0
  49. package/docs/docs/cmd/spo/site/site-hubsite-theme-sync.mdx +5 -1
  50. package/docs/docs/cmd/spo/site/site-inplacerecordsmanagement-set.mdx +4 -0
  51. package/docs/docs/cmd/spo/site/site-list.mdx +303 -0
  52. package/docs/docs/cmd/spo/site/site-recyclebinitem-list.mdx +80 -0
  53. package/docs/docs/cmd/spo/site/site-recyclebinitem-restore.mdx +4 -0
  54. package/docs/docs/cmd/spo/site/site-remove.mdx +4 -0
  55. package/docs/docs/cmd/spo/site/site-rename.mdx +92 -0
  56. package/docs/docs/cmd/spo/site/site-set.mdx +4 -0
  57. package/docs/docs/cmd/spo/sitedesign/sitedesign-add.mdx +116 -0
  58. package/docs/docs/cmd/spo/sitedesign/sitedesign-apply.mdx +125 -0
  59. package/docs/docs/cmd/spo/sitedesign/sitedesign-get.mdx +117 -0
  60. package/docs/docs/cmd/spo/sitedesign/sitedesign-list.mdx +94 -0
  61. package/docs/docs/cmd/spo/sitedesign/sitedesign-remove.mdx +4 -0
  62. package/docs/docs/cmd/spo/sitedesign/sitedesign-rights-grant.mdx +4 -0
  63. package/docs/docs/cmd/spo/sitedesign/sitedesign-rights-list.mdx +54 -0
  64. package/docs/docs/cmd/spo/sitedesign/sitedesign-rights-revoke.mdx +4 -0
  65. package/docs/docs/cmd/spo/sitedesign/sitedesign-run-list.mdx +66 -0
  66. package/docs/docs/cmd/spo/sitedesign/sitedesign-run-status-get.mdx +65 -0
  67. package/docs/docs/cmd/spo/sitedesign/sitedesign-set.mdx +117 -0
  68. package/docs/docs/cmd/spo/sitedesign/sitedesign-task-get.mdx +61 -0
  69. package/docs/docs/cmd/spo/sitedesign/sitedesign-task-list.mdx +60 -0
  70. package/docs/docs/cmd/spo/sitedesign/sitedesign-task-remove.mdx +4 -0
  71. package/docs/docs/cmd/spo/sitescript/sitescript-add.mdx +75 -0
  72. package/docs/docs/cmd/spo/sitescript/sitescript-get.mdx +62 -0
  73. package/docs/docs/cmd/spo/sitescript/sitescript-list.mdx +60 -0
  74. package/docs/docs/cmd/spo/sitescript/sitescript-remove.mdx +4 -0
  75. package/docs/docs/cmd/spo/sitescript/sitescript-set.mdx +63 -0
  76. package/docs/docs/cmd/spo/storageentity/storageentity-get.mdx +53 -0
  77. package/docs/docs/cmd/spo/storageentity/storageentity-list.mdx +54 -0
  78. package/docs/docs/cmd/spo/storageentity/storageentity-remove.mdx +4 -0
  79. package/docs/docs/cmd/spo/storageentity/storageentity-set.mdx +4 -0
  80. package/docs/docs/cmd/spo/tenant/tenant-appcatalog-add.mdx +4 -0
  81. package/docs/docs/cmd/spo/tenant/tenant-appcatalogurl-get.mdx +35 -0
  82. package/docs/docs/cmd/spo/tenant/tenant-applicationcustomizer-get.mdx +1 -1
  83. package/docs/docs/cmd/spo/tenant/tenant-applicationcustomizer-list.mdx +1 -1
  84. package/docs/docs/cmd/spo/tenant/tenant-applicationcustomizer-remove.mdx +1 -1
  85. package/docs/docs/cmd/spo/tenant/tenant-applicationcustomizer-set.mdx +12 -3
  86. package/docs/docs/cmd/spo/tenant/tenant-commandset-get.mdx +1 -1
  87. package/docs/docs/cmd/spo/tenant/tenant-commandset-list.mdx +1 -1
  88. package/docs/docs/cmd/spo/tenant/tenant-commandset-remove.mdx +1 -1
  89. package/docs/docs/cmd/spo/tenant/tenant-commandset-set.mdx +1 -1
  90. package/docs/docs/cmd/spo/tenant/tenant-recyclebinitem-list.mdx +67 -0
  91. package/docs/docs/cmd/spo/tenant/tenant-recyclebinitem-remove.mdx +4 -0
  92. package/docs/docs/cmd/spo/tenant/tenant-recyclebinitem-restore.mdx +50 -0
  93. package/docs/docs/cmd/spo/tenant/tenant-settings-list.mdx +729 -0
  94. package/docs/docs/cmd/spo/tenant/tenant-settings-set.mdx +5 -0
  95. package/docs/docs/cmd/spo/theme/theme-apply.mdx +35 -0
  96. package/docs/docs/cmd/spo/theme/theme-get.mdx +74 -0
  97. package/docs/docs/cmd/spo/theme/theme-list.mdx +52 -0
  98. package/docs/docs/cmd/spo/theme/theme-remove.mdx +4 -0
  99. package/docs/docs/cmd/spo/theme/theme-set.mdx +4 -0
  100. package/docs/docs/cmd/spo/userprofile/userprofile-get.mdx +1 -1
  101. package/npm-shrinkwrap.json +212 -212
  102. package/package.json +10 -10
package/README.md CHANGED
@@ -49,11 +49,13 @@
49
49
  <a href="#contribute">Contribute</a>
50
50
  </p>
51
51
  <p align="center">
52
- <a href="#sharing-is-caring">Sharing is Caring</a> |
53
- <a href="#code-of-conduct">Code of Conduct</a> |
52
+ <a href="https://github.com/pnp/cli-microsoft365/blob/main/CODE_OF_CONDUCT.md">Code of Conduct</a> |
53
+ <a href="#need-help">Need help?</a> |
54
54
  <a href="#disclaimer">Disclaimer</a>
55
55
  </p>
56
-
56
+ <p align="center">
57
+ <a href="#microsoft-365--power-platform-community">Microsoft 365 & Power Platform Community</a>
58
+ </p>
57
59
  <p align="center">
58
60
  <img alt="CLI for Microsoft 365" src="./docs/docs/images/cli-microsoft365.gif" height="500" />
59
61
  </p>
@@ -229,9 +231,9 @@ Checkout our [Wiki](https://github.com/pnp/cli-microsoft365/wiki) for guides on
229
231
  </a>
230
232
  </p>
231
233
 
232
- ## Microsoft 365 Platform Community
234
+ ## Microsoft 365 & Power Platform Community
233
235
 
234
- CLI for Microsoft 365 is a [Microsoft 365 Platform Community](https://pnp.github.io) (PnP) project. Microsoft 365 Platform Community is a virtual team consisting of Microsoft employees and community members focused on helping the community make the best use of Microsoft products. CLI for Microsoft 365 is an open-source project not affiliated with Microsoft and not covered by Microsoft support. If you experience any issues using the CLI, please submit an issue in the [issues list](https://github.com/pnp/cli-microsoft365/issues).
236
+ CLI for Microsoft 365 is a [Microsoft 365 & Power Platform Community](https://pnp.github.io) (PnP) project. Microsoft 365 & Power Platform Community is a virtual team consisting of Microsoft employees and community members focused on helping the community make the best use of Microsoft products. CLI for Microsoft 365 is an open-source project not affiliated with Microsoft and not covered by Microsoft support. If you experience any issues using the CLI, please submit an issue in the [issues list](https://github.com/pnp/cli-microsoft365/issues).
235
237
 
236
238
  ## Disclaimer
237
239
 
@@ -56,26 +56,25 @@ class BookingBusinessGetCommand extends GraphCommand_1.default {
56
56
  });
57
57
  }
58
58
  getBusinessId(options) {
59
- if (options.id) {
60
- return Promise.resolve(options.id);
61
- }
62
- const requestOptions = {
63
- url: `${this.resource}/v1.0/solutions/bookingBusinesses`,
64
- headers: {
65
- accept: 'application/json;odata.metadata=none'
66
- },
67
- responseType: 'json'
68
- };
69
- return request_1.default
70
- .get(requestOptions)
71
- .then((response) => {
59
+ return __awaiter(this, void 0, void 0, function* () {
60
+ if (options.id) {
61
+ return options.id;
62
+ }
63
+ const requestOptions = {
64
+ url: `${this.resource}/v1.0/solutions/bookingBusinesses`,
65
+ headers: {
66
+ accept: 'application/json;odata.metadata=none'
67
+ },
68
+ responseType: 'json'
69
+ };
70
+ const response = yield request_1.default.get(requestOptions);
72
71
  const name = options.name;
73
72
  const bookingBusinesses = response.value.filter(val => { var _a; return ((_a = val.displayName) === null || _a === void 0 ? void 0 : _a.toLocaleLowerCase()) === name.toLocaleLowerCase(); });
74
73
  if (!bookingBusinesses.length) {
75
- return Promise.reject(`The specified business with name ${options.name} does not exist.`);
74
+ throw `The specified business with name ${options.name} does not exist.`;
76
75
  }
77
76
  if (bookingBusinesses.length > 1) {
78
- return Promise.reject(`Multiple businesses with name ${options.name} found. Please disambiguate: ${bookingBusinesses.map(x => x.id).join(', ')}`);
77
+ throw `Multiple businesses with name ${options.name} found. Please disambiguate: ${bookingBusinesses.map(x => x.id).join(', ')}`;
79
78
  }
80
79
  return bookingBusinesses[0].id;
81
80
  });
@@ -35,48 +35,31 @@ class SearchExternalConnectionRemoveCommand extends GraphCommand_1.default {
35
35
  __classPrivateFieldGet(this, _SearchExternalConnectionRemoveCommand_instances, "m", _SearchExternalConnectionRemoveCommand_initOptionSets).call(this);
36
36
  }
37
37
  getExternalConnectionId(args) {
38
- if (args.options.id) {
39
- return Promise.resolve(args.options.id);
40
- }
41
- const requestOptions = {
42
- url: `${this.resource}/v1.0/external/connections?$filter=name eq '${formatting_1.formatting.encodeQueryParameter(args.options.name)}'&$select=id`,
43
- headers: {
44
- accept: 'application/json;odata.metadata=none'
45
- },
46
- responseType: 'json'
47
- };
48
- return request_1.default
49
- .get(requestOptions)
50
- .then((res) => {
38
+ return __awaiter(this, void 0, void 0, function* () {
39
+ if (args.options.id) {
40
+ return args.options.id;
41
+ }
42
+ const requestOptions = {
43
+ url: `${this.resource}/v1.0/external/connections?$filter=name eq '${formatting_1.formatting.encodeQueryParameter(args.options.name)}'&$select=id`,
44
+ headers: {
45
+ accept: 'application/json;odata.metadata=none'
46
+ },
47
+ responseType: 'json'
48
+ };
49
+ const res = yield request_1.default.get(requestOptions);
51
50
  if (res.value.length === 1) {
52
- return Promise.resolve(res.value[0].id);
51
+ return res.value[0].id;
53
52
  }
54
53
  if (res.value.length === 0) {
55
- return Promise.reject(`The specified connection does not exist in Microsoft Search`);
54
+ throw `The specified connection does not exist in Microsoft Search`;
56
55
  }
57
- return Promise.reject(`Multiple external connections with name ${args.options.name} found. Please disambiguate (IDs): ${res.value.map(x => x.id).join(', ')}`);
56
+ throw `Multiple external connections with name ${args.options.name} found. Please disambiguate (IDs): ${res.value.map(x => x.id).join(', ')}`;
58
57
  });
59
58
  }
60
59
  commandAction(logger, args) {
61
60
  return __awaiter(this, void 0, void 0, function* () {
62
- const removeExternalConnection = () => __awaiter(this, void 0, void 0, function* () {
63
- try {
64
- const externalConnectionId = yield this.getExternalConnectionId(args);
65
- const requestOptions = {
66
- url: `${this.resource}/v1.0/external/connections/${formatting_1.formatting.encodeQueryParameter(externalConnectionId)}`,
67
- headers: {
68
- accept: 'application/json;odata.metadata=none'
69
- },
70
- responseType: 'json'
71
- };
72
- yield request_1.default.delete(requestOptions);
73
- }
74
- catch (err) {
75
- this.handleRejectedODataJsonPromise(err);
76
- }
77
- });
78
61
  if (args.options.confirm) {
79
- yield removeExternalConnection();
62
+ yield this.removeExternalConnection(args);
80
63
  }
81
64
  else {
82
65
  const result = yield Cli_1.Cli.prompt({
@@ -86,11 +69,29 @@ class SearchExternalConnectionRemoveCommand extends GraphCommand_1.default {
86
69
  message: `Are you sure you want to remove the external connection '${args.options.id || args.options.name}'?`
87
70
  });
88
71
  if (result.continue) {
89
- yield removeExternalConnection();
72
+ yield this.removeExternalConnection(args);
90
73
  }
91
74
  }
92
75
  });
93
76
  }
77
+ removeExternalConnection(args) {
78
+ return __awaiter(this, void 0, void 0, function* () {
79
+ try {
80
+ const externalConnectionId = yield this.getExternalConnectionId(args);
81
+ const requestOptions = {
82
+ url: `${this.resource}/v1.0/external/connections/${formatting_1.formatting.encodeQueryParameter(externalConnectionId)}`,
83
+ headers: {
84
+ accept: 'application/json;odata.metadata=none'
85
+ },
86
+ responseType: 'json'
87
+ };
88
+ yield request_1.default.delete(requestOptions);
89
+ }
90
+ catch (err) {
91
+ this.handleRejectedODataJsonPromise(err);
92
+ }
93
+ });
94
+ }
94
95
  }
95
96
  _SearchExternalConnectionRemoveCommand_instances = new WeakSet(), _SearchExternalConnectionRemoveCommand_initTelemetry = function _SearchExternalConnectionRemoveCommand_initTelemetry() {
96
97
  this.telemetry.push((args) => {
@@ -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 FN001035_DEP_fluentui_react_1 = require("./rules/FN001035_DEP_fluentui_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 FN001035_DEP_fluentui_react_1.FN001035_DEP_fluentui_react('^8.106.4'),
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.18.0-beta.1.js.map
@@ -77,7 +77,8 @@ class SpfxProjectDoctorCommand extends base_project_command_1.BaseProjectCommand
77
77
  '1.17.1',
78
78
  '1.17.2',
79
79
  '1.17.3',
80
- '1.17.4'
80
+ '1.17.4',
81
+ '1.18.0-beta.1'
81
82
  ];
82
83
  __classPrivateFieldGet(this, _SpfxProjectDoctorCommand_instances, "m", _SpfxProjectDoctorCommand_initTelemetry).call(this);
83
84
  __classPrivateFieldGet(this, _SpfxProjectDoctorCommand_instances, "m", _SpfxProjectDoctorCommand_initOptions).call(this);
@@ -1,4 +1,13 @@
1
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
+ };
2
11
  Object.defineProperty(exports, "__esModule", { value: true });
3
12
  exports.DynamicRule = void 0;
4
13
  const fs = require("fs");
@@ -12,36 +21,32 @@ class DynamicRule extends BasicDependencyRule_1.BasicDependencyRule {
12
21
  this.fileVariationSuffixes = ['.min', '.bundle', '-min', '.bundle.min'];
13
22
  }
14
23
  visit(project) {
15
- if (!project.packageJson ||
16
- !project.packageJson.dependencies) {
17
- return Promise.resolve({ entries: [], suggestions: [] });
18
- }
19
- const validPackageNames = Object.getOwnPropertyNames(project.packageJson.dependencies)
20
- .filter(x => this.restrictedNamespaces.map(y => x.indexOf(y) === -1).reduce((y, z) => y && z))
21
- .filter(x => this.restrictedModules.indexOf(x) === -1);
22
- return Promise
23
- .all(validPackageNames.map((x) => this.getExternalEntryForPackage(x, project)))
24
- .then((res) => {
24
+ return __awaiter(this, void 0, void 0, function* () {
25
+ if (!project.packageJson || !project.packageJson.dependencies) {
26
+ return { entries: [], suggestions: [] };
27
+ }
28
+ const validPackageNames = Object.getOwnPropertyNames(project.packageJson.dependencies)
29
+ .filter(x => this.restrictedNamespaces.map(y => x.indexOf(y) === -1).reduce((y, z) => y && z))
30
+ .filter(x => this.restrictedModules.indexOf(x) === -1);
31
+ const res = yield Promise.all(validPackageNames.map((x) => this.getExternalEntryForPackage(x, project)));
25
32
  return {
26
- entries: res
27
- .filter(x => x !== undefined)
28
- .map(x => x),
33
+ entries: res.filter(x => x !== undefined),
29
34
  suggestions: []
30
35
  };
31
36
  });
32
37
  }
33
38
  getExternalEntryForPackage(packageName, project) {
34
- const version = project.packageJson.dependencies[packageName];
35
- const filesPaths = this.getFilePath(packageName).map(x => this.cleanFilePath(x));
36
- if (!version || filesPaths.length === 0) {
37
- return Promise.resolve(undefined);
38
- }
39
- const filesPathsVariations = filesPaths
40
- .map(x => this.fileVariationSuffixes.map(y => x.indexOf(y) === -1 ? x.replace('.js', `${y}.js`) : x))
41
- .reduce((x, y) => [...x, ...y]);
42
- const pathsAndVariations = [...filesPaths, ...filesPathsVariations];
43
- return Promise.all(pathsAndVariations.map(x => this.getExternalEntryForFilePath(x, packageName, version)))
44
- .then((externalizeEntryCandidates) => {
39
+ return __awaiter(this, void 0, void 0, function* () {
40
+ const version = project.packageJson.dependencies[packageName];
41
+ const filesPaths = this.getFilePath(packageName).map(x => this.cleanFilePath(x));
42
+ if (!version || filesPaths.length === 0) {
43
+ return undefined;
44
+ }
45
+ const filesPathsVariations = filesPaths
46
+ .map(x => this.fileVariationSuffixes.map(y => x.indexOf(y) === -1 ? x.replace('.js', `${y}.js`) : x))
47
+ .reduce((x, y) => [...x, ...y]);
48
+ const pathsAndVariations = [...filesPaths, ...filesPathsVariations];
49
+ const externalizeEntryCandidates = yield Promise.all(pathsAndVariations.map(x => this.getExternalEntryForFilePath(x, packageName, version)));
45
50
  const dExternalizeEntryCandidates = externalizeEntryCandidates.filter(x => x !== undefined);
46
51
  const minifiedModule = dExternalizeEntryCandidates.find(x => !x.globalName && this.pathContainsMinifySuffix(x.path));
47
52
  const minifiedNonModule = dExternalizeEntryCandidates.find(x => x.globalName && this.pathContainsMinifySuffix(x.path));
@@ -57,31 +62,29 @@ class DynamicRule extends BasicDependencyRule_1.BasicDependencyRule {
57
62
  .filter(y => y > -1).length > 0;
58
63
  }
59
64
  getExternalEntryForFilePath(filePath, packageName, version) {
60
- const url = this.getFileUrl(packageName, version, filePath);
61
- return this
62
- .testUrl(url)
63
- .then((testResult) => {
65
+ return __awaiter(this, void 0, void 0, function* () {
66
+ const url = this.getFileUrl(packageName, version, filePath);
67
+ const testResult = yield this.testUrl(url);
64
68
  if (!testResult) {
65
- return Promise.resolve(undefined);
69
+ return undefined;
70
+ }
71
+ const moduleInfo = yield this.getModuleType(url);
72
+ if (moduleInfo.scriptType === 'CommonJs') {
73
+ return undefined; //browsers don't support those module types without an additional library
74
+ }
75
+ else if (moduleInfo.scriptType === 'ES2015' || moduleInfo.scriptType === 'AMD') {
76
+ return {
77
+ key: packageName,
78
+ path: url
79
+ };
80
+ }
81
+ else { //TODO for non-module and UMD we should technically add dependencies as well
82
+ return {
83
+ key: packageName,
84
+ path: url,
85
+ globalName: moduleInfo.exports && moduleInfo.exports.length > 0 ? moduleInfo.exports[0] : packageName // examples where this is not good https://unpkg.com/@pnp/polyfill-ie11@^1.0.2/dist/index.js https://unpkg.com/moment-timezone@^0.5.27/builds/moment-timezone-with-data.js
86
+ };
66
87
  }
67
- return this.getModuleType(url).then((moduleInfo) => {
68
- if (moduleInfo.scriptType === 'CommonJs') {
69
- return Promise.resolve(undefined); //browsers don't support those module types without an additional library
70
- }
71
- else if (moduleInfo.scriptType === 'ES2015' || moduleInfo.scriptType === 'AMD') {
72
- return {
73
- key: packageName,
74
- path: url
75
- };
76
- }
77
- else { //TODO for non-module and UMD we should technically add dependencies as well
78
- return {
79
- key: packageName,
80
- path: url,
81
- globalName: moduleInfo.exports && moduleInfo.exports.length > 0 ? moduleInfo.exports[0] : packageName // examples where this is not good https://unpkg.com/@pnp/polyfill-ie11@^1.0.2/dist/index.js https://unpkg.com/moment-timezone@^0.5.27/builds/moment-timezone-with-data.js
82
- };
83
- }
84
- });
85
88
  });
86
89
  }
87
90
  getModuleType(url) {
@@ -101,10 +104,15 @@ class DynamicRule extends BasicDependencyRule_1.BasicDependencyRule {
101
104
  return `https://unpkg.com/${packageName}@${version}/${filePath}`;
102
105
  }
103
106
  testUrl(url) {
104
- return request_1.default
105
- .head({ url: url, headers: { 'x-anonymous': 'true' } })
106
- .then(() => true)
107
- .catch(() => false);
107
+ return __awaiter(this, void 0, void 0, function* () {
108
+ try {
109
+ yield request_1.default.head({ url: url, headers: { 'x-anonymous': 'true' } });
110
+ return true;
111
+ }
112
+ catch (_a) {
113
+ return false;
114
+ }
115
+ });
108
116
  }
109
117
  getFilePath(packageName) {
110
118
  const packageJsonFilePath = `node_modules/${packageName}/package.json`;
@@ -4,8 +4,8 @@ exports.FN001022_DEP_office_ui_fabric_react = void 0;
4
4
  const spfx_1 = require("../../../../../../utils/spfx");
5
5
  const DependencyRule_1 = require("./DependencyRule");
6
6
  class FN001022_DEP_office_ui_fabric_react extends DependencyRule_1.DependencyRule {
7
- constructor(packageVersion) {
8
- super('office-ui-fabric-react', packageVersion, false, true);
7
+ constructor(packageVersion, add = true) {
8
+ super('office-ui-fabric-react', packageVersion, false, add);
9
9
  }
10
10
  get id() {
11
11
  return 'FN001022';
@@ -0,0 +1,61 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const FN001001_DEP_microsoft_sp_core_library_1 = require("./rules/FN001001_DEP_microsoft_sp_core_library");
4
+ const FN001002_DEP_microsoft_sp_lodash_subset_1 = require("./rules/FN001002_DEP_microsoft_sp_lodash_subset");
5
+ const FN001003_DEP_microsoft_sp_office_ui_fabric_core_1 = require("./rules/FN001003_DEP_microsoft_sp_office_ui_fabric_core");
6
+ const FN001004_DEP_microsoft_sp_webpart_base_1 = require("./rules/FN001004_DEP_microsoft_sp_webpart_base");
7
+ const FN001011_DEP_microsoft_sp_dialog_1 = require("./rules/FN001011_DEP_microsoft_sp_dialog");
8
+ const FN001012_DEP_microsoft_sp_application_base_1 = require("./rules/FN001012_DEP_microsoft_sp_application_base");
9
+ const FN001013_DEP_microsoft_decorators_1 = require("./rules/FN001013_DEP_microsoft_decorators");
10
+ const FN001014_DEP_microsoft_sp_listview_extensibility_1 = require("./rules/FN001014_DEP_microsoft_sp_listview_extensibility");
11
+ const FN001021_DEP_microsoft_sp_property_pane_1 = require("./rules/FN001021_DEP_microsoft_sp_property_pane");
12
+ const FN001022_DEP_office_ui_fabric_react_1 = require("./rules/FN001022_DEP_office_ui_fabric_react");
13
+ const FN001023_DEP_microsoft_sp_component_base_1 = require("./rules/FN001023_DEP_microsoft_sp_component_base");
14
+ const FN001024_DEP_microsoft_sp_diagnostics_1 = require("./rules/FN001024_DEP_microsoft_sp_diagnostics");
15
+ const FN001025_DEP_microsoft_sp_dynamic_data_1 = require("./rules/FN001025_DEP_microsoft_sp_dynamic_data");
16
+ const FN001026_DEP_microsoft_sp_extension_base_1 = require("./rules/FN001026_DEP_microsoft_sp_extension_base");
17
+ const FN001027_DEP_microsoft_sp_http_1 = require("./rules/FN001027_DEP_microsoft_sp_http");
18
+ const FN001028_DEP_microsoft_sp_list_subscription_1 = require("./rules/FN001028_DEP_microsoft_sp_list_subscription");
19
+ const FN001029_DEP_microsoft_sp_loader_1 = require("./rules/FN001029_DEP_microsoft_sp_loader");
20
+ const FN001030_DEP_microsoft_sp_module_interfaces_1 = require("./rules/FN001030_DEP_microsoft_sp_module_interfaces");
21
+ const FN001031_DEP_microsoft_sp_odata_types_1 = require("./rules/FN001031_DEP_microsoft_sp_odata_types");
22
+ const FN001032_DEP_microsoft_sp_page_context_1 = require("./rules/FN001032_DEP_microsoft_sp_page_context");
23
+ const FN001034_DEP_microsoft_sp_adaptive_card_extension_base_1 = require("./rules/FN001034_DEP_microsoft_sp_adaptive_card_extension_base");
24
+ const FN001035_DEP_fluentui_react_1 = require("./rules/FN001035_DEP_fluentui_react");
25
+ const FN002001_DEVDEP_microsoft_sp_build_web_1 = require("./rules/FN002001_DEVDEP_microsoft_sp_build_web");
26
+ const FN002002_DEVDEP_microsoft_sp_module_interfaces_1 = require("./rules/FN002002_DEVDEP_microsoft_sp_module_interfaces");
27
+ const FN002022_DEVDEP_microsoft_eslint_plugin_spfx_1 = require("./rules/FN002022_DEVDEP_microsoft_eslint_plugin_spfx");
28
+ const FN002023_DEVDEP_microsoft_eslint_config_spfx_1 = require("./rules/FN002023_DEVDEP_microsoft_eslint_config_spfx");
29
+ const FN010001_YORC_version_1 = require("./rules/FN010001_YORC_version");
30
+ const FN010010_YORC_sdkVersions_teams_js_1 = require("./rules/FN010010_YORC_sdkVersions_teams_js");
31
+ module.exports = [
32
+ new FN001001_DEP_microsoft_sp_core_library_1.FN001001_DEP_microsoft_sp_core_library('1.18.0-beta.1'),
33
+ new FN001002_DEP_microsoft_sp_lodash_subset_1.FN001002_DEP_microsoft_sp_lodash_subset('1.18.0-beta.1'),
34
+ new FN001003_DEP_microsoft_sp_office_ui_fabric_core_1.FN001003_DEP_microsoft_sp_office_ui_fabric_core('1.18.0-beta.1'),
35
+ new FN001004_DEP_microsoft_sp_webpart_base_1.FN001004_DEP_microsoft_sp_webpart_base('1.18.0-beta.1'),
36
+ new FN001011_DEP_microsoft_sp_dialog_1.FN001011_DEP_microsoft_sp_dialog('1.18.0-beta.1'),
37
+ new FN001012_DEP_microsoft_sp_application_base_1.FN001012_DEP_microsoft_sp_application_base('1.18.0-beta.1'),
38
+ new FN001014_DEP_microsoft_sp_listview_extensibility_1.FN001014_DEP_microsoft_sp_listview_extensibility('1.18.0-beta.1'),
39
+ new FN001021_DEP_microsoft_sp_property_pane_1.FN001021_DEP_microsoft_sp_property_pane('1.18.0-beta.1'),
40
+ new FN001022_DEP_office_ui_fabric_react_1.FN001022_DEP_office_ui_fabric_react('', false),
41
+ new FN001023_DEP_microsoft_sp_component_base_1.FN001023_DEP_microsoft_sp_component_base('1.18.0-beta.1'),
42
+ new FN001024_DEP_microsoft_sp_diagnostics_1.FN001024_DEP_microsoft_sp_diagnostics('1.18.0-beta.1'),
43
+ new FN001025_DEP_microsoft_sp_dynamic_data_1.FN001025_DEP_microsoft_sp_dynamic_data('1.18.0-beta.1'),
44
+ new FN001026_DEP_microsoft_sp_extension_base_1.FN001026_DEP_microsoft_sp_extension_base('1.18.0-beta.1'),
45
+ new FN001027_DEP_microsoft_sp_http_1.FN001027_DEP_microsoft_sp_http('1.18.0-beta.1'),
46
+ new FN001028_DEP_microsoft_sp_list_subscription_1.FN001028_DEP_microsoft_sp_list_subscription('1.18.0-beta.1'),
47
+ new FN001029_DEP_microsoft_sp_loader_1.FN001029_DEP_microsoft_sp_loader('1.18.0-beta.1'),
48
+ new FN001030_DEP_microsoft_sp_module_interfaces_1.FN001030_DEP_microsoft_sp_module_interfaces('1.18.0-beta.1'),
49
+ new FN001031_DEP_microsoft_sp_odata_types_1.FN001031_DEP_microsoft_sp_odata_types('1.18.0-beta.1'),
50
+ new FN001032_DEP_microsoft_sp_page_context_1.FN001032_DEP_microsoft_sp_page_context('1.18.0-beta.1'),
51
+ new FN001035_DEP_fluentui_react_1.FN001035_DEP_fluentui_react('8.106.4'),
52
+ new FN001013_DEP_microsoft_decorators_1.FN001013_DEP_microsoft_decorators('1.18.0-beta.1'),
53
+ new FN001034_DEP_microsoft_sp_adaptive_card_extension_base_1.FN001034_DEP_microsoft_sp_adaptive_card_extension_base('1.18.0-beta.1'),
54
+ new FN002022_DEVDEP_microsoft_eslint_plugin_spfx_1.FN002022_DEVDEP_microsoft_eslint_plugin_spfx('1.18.0-beta.1'),
55
+ new FN002023_DEVDEP_microsoft_eslint_config_spfx_1.FN002023_DEVDEP_microsoft_eslint_config_spfx('1.18.0-beta.1'),
56
+ new FN002001_DEVDEP_microsoft_sp_build_web_1.FN002001_DEVDEP_microsoft_sp_build_web('1.18.0-beta.1'),
57
+ new FN002002_DEVDEP_microsoft_sp_module_interfaces_1.FN002002_DEVDEP_microsoft_sp_module_interfaces('1.18.0-beta.1'),
58
+ new FN010001_YORC_version_1.FN010001_YORC_version('1.18.0-beta.1'),
59
+ new FN010010_YORC_sdkVersions_teams_js_1.FN010010_YORC_sdkVersions_teams_js('2.12.0')
60
+ ];
61
+ //# sourceMappingURL=upgrade-1.18.0-beta.1.js.map
@@ -18,6 +18,8 @@ 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");
21
23
  const Command_1 = require("../../../../Command");
22
24
  const fsUtil_1 = require("../../../../utils/fsUtil");
23
25
  const packageManager_1 = require("../../../../utils/packageManager");
@@ -79,7 +81,8 @@ class SpfxProjectUpgradeCommand extends base_project_command_1.BaseProjectComman
79
81
  '1.17.1',
80
82
  '1.17.2',
81
83
  '1.17.3',
82
- '1.17.4'
84
+ '1.17.4',
85
+ '1.18.0-beta.1'
83
86
  ];
84
87
  __classPrivateFieldGet(this, _SpfxProjectUpgradeCommand_instances, "m", _SpfxProjectUpgradeCommand_initTelemetry).call(this);
85
88
  __classPrivateFieldGet(this, _SpfxProjectUpgradeCommand_instances, "m", _SpfxProjectUpgradeCommand_initOptions).call(this);
@@ -93,15 +96,15 @@ class SpfxProjectUpgradeCommand extends base_project_command_1.BaseProjectComman
93
96
  }
94
97
  this.toVersion = args.options.toVersion ? args.options.toVersion : this.supportedVersions[this.supportedVersions.length - 1];
95
98
  // uncomment to support upgrading to preview releases
96
- // if (!args.options.toVersion &&
97
- // !args.options.preview &&
98
- // prerelease(this.toVersion)) {
99
- // // no version and no preview specified while the current version to
100
- // // upgrade to is a prerelease so let's grab the first non-preview version
101
- // // since we're supporting only one preview version, it's sufficient for
102
- // // us to take second to last version
103
- // this.toVersion = this.supportedVersions[this.supportedVersions.length - 2];
104
- // }
99
+ if (!args.options.toVersion &&
100
+ !args.options.preview &&
101
+ (0, semver_1.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
+ }
105
108
  this.packageManager = args.options.packageManager || 'npm';
106
109
  this.shell = args.options.shell || 'bash';
107
110
  if (this.supportedVersions.indexOf(this.toVersion) < 0) {
@@ -488,9 +491,9 @@ _SpfxProjectUpgradeCommand_instances = new WeakSet(), _SpfxProjectUpgradeCommand
488
491
  preview: args.options.preview
489
492
  });
490
493
  // uncomment to support upgrading to preview releases
491
- // if (prerelease(this.telemetryProperties.toVersion) && !args.options.preview) {
492
- // this.telemetryProperties.toVersion = this.supportedVersions[this.supportedVersions.length - 2];
493
- // }
494
+ if ((0, semver_1.prerelease)(this.telemetryProperties.toVersion) && !args.options.preview) {
495
+ this.telemetryProperties.toVersion = this.supportedVersions[this.supportedVersions.length - 2];
496
+ }
494
497
  });
495
498
  }, _SpfxProjectUpgradeCommand_initOptions = function _SpfxProjectUpgradeCommand_initOptions() {
496
499
  this.options.unshift({
@@ -534,6 +534,21 @@ class SpfxDoctorCommand extends base_project_command_1.BaseProjectCommand {
534
534
  range: '^4',
535
535
  fix: 'npm i -g yo@4'
536
536
  }
537
+ },
538
+ '1.18.0-beta.1': {
539
+ gulpCli: {
540
+ range: '^1 || ^2',
541
+ fix: 'npm i -g gulp-cli@2'
542
+ },
543
+ node: {
544
+ range: '>=16.13.0 <17.0.0',
545
+ fix: 'Install Node.js >=16.13.0 <17.0.0'
546
+ },
547
+ sp: SharePointVersion.SPO,
548
+ yo: {
549
+ range: '^4',
550
+ fix: 'npm i -g yo@4'
551
+ }
537
552
  }
538
553
  };
539
554
  __classPrivateFieldGet(this, _SpfxDoctorCommand_instances, "m", _SpfxDoctorCommand_initTelemetry).call(this);
@@ -38,34 +38,8 @@ class SpoFolderRemoveCommand extends SpoCommand_1.default {
38
38
  }
39
39
  commandAction(logger, args) {
40
40
  return __awaiter(this, void 0, void 0, function* () {
41
- const removeFolder = () => __awaiter(this, void 0, void 0, function* () {
42
- if (this.verbose) {
43
- logger.logToStderr(`Removing folder in site at ${args.options.webUrl}...`);
44
- }
45
- const serverRelativeUrl = urlUtil_1.urlUtil.getServerRelativePath(args.options.webUrl, args.options.url);
46
- let requestUrl = `${args.options.webUrl}/_api/web/GetFolderByServerRelativeUrl('${formatting_1.formatting.encodeQueryParameter(serverRelativeUrl)}')`;
47
- if (args.options.recycle) {
48
- requestUrl += `/recycle()`;
49
- }
50
- const requestOptions = {
51
- url: requestUrl,
52
- method: 'POST',
53
- headers: {
54
- 'X-HTTP-Method': 'DELETE',
55
- 'If-Match': '*',
56
- 'accept': 'application/json;odata=nometadata'
57
- },
58
- responseType: 'json'
59
- };
60
- try {
61
- yield request_1.default.post(requestOptions);
62
- }
63
- catch (err) {
64
- this.handleRejectedODataJsonPromise(err);
65
- }
66
- });
67
41
  if (args.options.confirm) {
68
- yield removeFolder();
42
+ yield this.removeFolder(logger, args.options);
69
43
  }
70
44
  else {
71
45
  const result = yield Cli_1.Cli.prompt({
@@ -75,11 +49,39 @@ class SpoFolderRemoveCommand extends SpoCommand_1.default {
75
49
  message: `Are you sure you want to ${args.options.recycle ? "recycle" : "remove"} the folder ${args.options.url} located in site ${args.options.webUrl}?`
76
50
  });
77
51
  if (result.continue) {
78
- yield removeFolder();
52
+ yield this.removeFolder(logger, args.options);
79
53
  }
80
54
  }
81
55
  });
82
56
  }
57
+ removeFolder(logger, options) {
58
+ return __awaiter(this, void 0, void 0, function* () {
59
+ if (this.verbose) {
60
+ logger.logToStderr(`Removing folder in site at ${options.webUrl}...`);
61
+ }
62
+ const serverRelativeUrl = urlUtil_1.urlUtil.getServerRelativePath(options.webUrl, options.url);
63
+ let requestUrl = `${options.webUrl}/_api/web/GetFolderByServerRelativeUrl('${formatting_1.formatting.encodeQueryParameter(serverRelativeUrl)}')`;
64
+ if (options.recycle) {
65
+ requestUrl += `/recycle()`;
66
+ }
67
+ const requestOptions = {
68
+ url: requestUrl,
69
+ method: 'POST',
70
+ headers: {
71
+ 'X-HTTP-Method': 'DELETE',
72
+ 'If-Match': '*',
73
+ 'accept': 'application/json;odata=nometadata'
74
+ },
75
+ responseType: 'json'
76
+ };
77
+ try {
78
+ yield request_1.default.post(requestOptions);
79
+ }
80
+ catch (err) {
81
+ this.handleRejectedODataJsonPromise(err);
82
+ }
83
+ });
84
+ }
83
85
  }
84
86
  _SpoFolderRemoveCommand_instances = new WeakSet(), _SpoFolderRemoveCommand_initTelemetry = function _SpoFolderRemoveCommand_initTelemetry() {
85
87
  this.telemetry.push((args) => {