@salesforce/pwa-kit-dev 4.0.0-extensibility-preview.2 → 4.0.0-extensibility-preview.3

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.
@@ -299,7 +299,7 @@ const main = async () => {
299
299
  ? projectWebpack
300
300
  : p.join(__dirname, '..', 'configs', 'webpack', 'config.js')
301
301
  fse.emptyDirSync(buildDirectory)
302
- execSync(`${webpack} --config ${webpackConf}`, {
302
+ execSync(`"${webpack}" --config "${webpackConf}"`, {
303
303
  env: {
304
304
  NODE_ENV: 'production',
305
305
  ...process.env,
@@ -6,6 +6,8 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.default = void 0;
7
7
  var _utils = require("@salesforce/pwa-kit-extension-sdk/shared/utils");
8
8
  var _ssrConfig = require("@salesforce/pwa-kit-runtime/utils/ssr-config");
9
+ var _path = _interopRequireDefault(require("path"));
10
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
9
11
  /*
10
12
  * Copyright (c) 2021, salesforce.com, inc.
11
13
  * All rights reserved.
@@ -34,5 +36,22 @@ var _default = exports.default = {
34
36
  presets: [require('@babel/preset-env'), require('@babel/preset-react')],
35
37
  plugins: [require('babel-plugin-dynamic-import-node-babel-7')]
36
38
  }
37
- }
39
+ },
40
+ ignore: [function (filepath) {
41
+ const normalizedPath = _path.default.normalize(filepath);
42
+ const extensionRegex = new RegExp(`node_modules\\${_path.default.sep}[^\\${_path.default.sep}]+\\${_path.default.sep}(pwa-kit-extension-sdk|@[^\\${_path.default.sep}]+\\${_path.default.sep}extension-|extension-)`);
43
+
44
+ // Return false if it's an allowed extension package @salesforce/pwa-kit-extension-sdk and extension-*
45
+ if (extensionRegex.test(normalizedPath)) {
46
+ return false;
47
+ }
48
+
49
+ // Return true if it's in node_modules (excluding allowed packages handled above)
50
+ if (/node_modules/.test(normalizedPath)) {
51
+ return true;
52
+ }
53
+
54
+ // Return false for all other files
55
+ return false;
56
+ }]
38
57
  };
@@ -5,7 +5,7 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.SUPPORTED_FILE_EXTENSIONS = exports.EXTENIONS_NAMESPACE = exports.DEPS_TO_DEDUPE = void 0;
7
7
  var _webpackBundleAnalyzer = require("webpack-bundle-analyzer");
8
- var _path = require("path");
8
+ var _path = _interopRequireWildcard(require("path"));
9
9
  var _fsExtra = _interopRequireDefault(require("fs-extra"));
10
10
  var _webpack = _interopRequireDefault(require("webpack"));
11
11
  var _copyWebpackPlugin = _interopRequireDefault(require("copy-webpack-plugin"));
@@ -20,6 +20,8 @@ var _webpack2 = require("@salesforce/pwa-kit-extension-sdk/configs/webpack");
20
20
  var _ssrConfig = require("@salesforce/pwa-kit-runtime/utils/ssr-config");
21
21
  var _utils = require("@salesforce/pwa-kit-extension-sdk/shared/utils");
22
22
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
23
+ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
24
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
23
25
  function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
24
26
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
25
27
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
@@ -39,6 +41,7 @@ function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e =
39
41
  const projectDir = process.cwd();
40
42
  const pkg = _fsExtra.default.readJsonSync((0, _path.resolve)(projectDir, 'package.json'));
41
43
  const buildDir = process.env.PWA_KIT_BUILD_DIR ? (0, _path.resolve)(process.env.PWA_KIT_BUILD_DIR) : (0, _path.resolve)(projectDir, 'build');
44
+ const isMonoRepo = _fsExtra.default.existsSync((0, _path.resolve)(projectDir, '..', '..', 'lerna.json'));
42
45
  const production = 'production';
43
46
  const development = 'development';
44
47
  const analyzeBundle = process.env.MOBIFY_ANALYZE === 'true';
@@ -198,6 +201,10 @@ const baseConfig = target => {
198
201
  configured: (0, _utils.getConfiguredExtensions)((0, _ssrConfig.getConfig)()),
199
202
  target: 'node'
200
203
  }
204
+ }), (0, _webpack2.ruleForOverrideResolver)({
205
+ target,
206
+ projectDir,
207
+ isMonoRepo
201
208
  })].filter(Boolean)
202
209
  }
203
210
  });
@@ -253,6 +260,8 @@ const ruleForBabelLoader = babelPlugins => {
253
260
  id: 'babel-loader',
254
261
  test: /(\.js(x?)|\.ts(x?))$/,
255
262
  // NOTE: Because our extensions are just folders containing source code, we need to ensure that the babel-loader processes them.
263
+ // This regex exclude everything in node_modules, but node_modules/extensions-*/ folders
264
+ exclude: new RegExp(`node_modules\\${_path.default.sep}(?!(@?[^\\${_path.default.sep}]+\\${_path.default.sep})?extension-).*`, 'i'),
256
265
  use: [{
257
266
  loader: findDepInStack('babel-loader'),
258
267
  options: _objectSpread({
@@ -7,7 +7,6 @@ exports.sdkReplacementPlugin = void 0;
7
7
  var _webpack = _interopRequireDefault(require("webpack"));
8
8
  var _path = _interopRequireWildcard(require("path"));
9
9
  var _glob = _interopRequireDefault(require("glob"));
10
- var _config = require("./config");
11
10
  var _utils = require("./utils");
12
11
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
13
12
  function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
@@ -24,23 +23,7 @@ const projectDir = process.cwd();
24
23
  const pkg = require((0, _path.resolve)(projectDir, 'package.json'));
25
24
  const OVERRIDES_EXTENSIONS = '.+(js|jsx|ts|tsx)';
26
25
  const getOverridePath = relativePath => {
27
- var _pkg$ccExtensibility;
28
- const extendPath = pkg !== null && pkg !== void 0 && (_pkg$ccExtensibility = pkg.ccExtensibility) !== null && _pkg$ccExtensibility !== void 0 && _pkg$ccExtensibility.extends ? `node_modules/${_config.EXT_EXTENDS}` : '';
29
- const overridePath = _config.EXT_OVERRIDES_DIR === null || _config.EXT_OVERRIDES_DIR === void 0 ? void 0 : _config.EXT_OVERRIDES_DIR.replace(/^\//, '');
30
-
31
- // order matters here, we perform look ups starting in the following order:
32
- // pkg.ccExtensibility.overridesDir => pkg.ccExtensibility.extends => current projectDir
33
- if (_config.EXT_EXTENDS && _config.EXT_OVERRIDES_DIR) {
34
- const filePath = `${(0, _path.resolve)(projectDir, overridePath, ...relativePath)}${OVERRIDES_EXTENSIONS}`;
35
- const overrideFile = _glob.default.sync(filePath);
36
- if (overrideFile !== null && overrideFile !== void 0 && overrideFile.length) {
37
- return overrideFile === null || overrideFile === void 0 ? void 0 : overrideFile[0];
38
- }
39
- const extendFile = _glob.default.sync(`${(0, _path.resolve)(projectDir, extendPath, ...relativePath)}${OVERRIDES_EXTENSIONS}`);
40
- if (extendFile !== null && extendFile !== void 0 && extendFile.length) {
41
- return extendFile === null || extendFile === void 0 ? void 0 : extendFile[0];
42
- }
43
- }
26
+ // Perform lookups starting in the current projectDir
44
27
  const generatedProjectOverride = _glob.default.sync(`${(0, _path.resolve)(projectDir, ...relativePath)}${OVERRIDES_EXTENSIONS}`);
45
28
  return generatedProjectOverride !== null && generatedProjectOverride !== void 0 && generatedProjectOverride.length ? generatedProjectOverride === null || generatedProjectOverride === void 0 ? void 0 : generatedProjectOverride[0] : (0, _path.resolve)('node_modules', '@salesforce', 'pwa-kit-react-sdk', 'ssr', 'universal', ...relativePath.filter(item => item !== 'app'));
46
29
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@salesforce/pwa-kit-dev",
3
- "version": "4.0.0-extensibility-preview.2",
3
+ "version": "4.0.0-extensibility-preview.3",
4
4
  "description": "Build tools for pwa-kit",
5
5
  "homepage": "https://github.com/SalesforceCommerceCloud/pwa-kit/tree/develop/packages/pwa-kit-dev#readme",
6
6
  "bugs": {
@@ -58,8 +58,8 @@
58
58
  "@loadable/server": "^5.15.3",
59
59
  "@loadable/webpack-plugin": "^5.15.2",
60
60
  "@pmmmwh/react-refresh-webpack-plugin": "^0.5.10",
61
- "@salesforce/pwa-kit-extension-sdk": "4.0.0-extensibility-preview.2",
62
- "@salesforce/pwa-kit-runtime": "4.0.0-extensibility-preview.2",
61
+ "@salesforce/pwa-kit-extension-sdk": "4.0.0-extensibility-preview.3",
62
+ "@salesforce/pwa-kit-runtime": "4.0.0-extensibility-preview.3",
63
63
  "@typescript-eslint/eslint-plugin": "^5.57.0",
64
64
  "@typescript-eslint/parser": "^5.57.0",
65
65
  "archiver": "1.3.0",
@@ -123,7 +123,7 @@
123
123
  "@types/node": "~16.0.3",
124
124
  "@types/node-fetch": "~2.6.3",
125
125
  "@types/validator": "~13.7.14",
126
- "internal-lib-build": "4.0.0-extensibility-preview.2",
126
+ "internal-lib-build": "4.0.0-extensibility-preview.3",
127
127
  "nock": "^13.3.0",
128
128
  "nodemon": "^2.0.22",
129
129
  "superagent": "^6.1.0",
@@ -149,5 +149,5 @@
149
149
  "publishConfig": {
150
150
  "directory": "dist"
151
151
  },
152
- "gitHead": "6b5da20f750f39d89c490cf77f1bf160c7e3d8f7"
152
+ "gitHead": "904de01e826117febeea952e034478349e16ea4d"
153
153
  }
@@ -43,7 +43,10 @@ const DevServerMixin = exports.DevServerMixin = {
43
43
  * @private
44
44
  */
45
45
  _logStartupMessage(options) {
46
- _loggerInstance.default.log(`Starting the DevServer on ${_chalk.default.cyan(this._getDevServerURL(options))}`);
46
+ const {
47
+ startPath = '/'
48
+ } = options;
49
+ _loggerInstance.default.log(`Starting the DevServer on ${_chalk.default.cyan(this._getDevServerURL(options) + startPath)}`);
47
50
  },
48
51
  /**
49
52
  * @private
@@ -210,6 +213,11 @@ const DevServerMixin = exports.DevServerMixin = {
210
213
  next();
211
214
  });
212
215
  },
216
+ /**
217
+ * Serve static files from the app directory.
218
+ * @param filePath - The path to the file to serve.
219
+ * @param opts - Additional options.
220
+ */
213
221
  serveStaticFile(filePath, opts = {}) {
214
222
  // Warning: Ugly part of the Bundle spec that we need to maintain.
215
223
  //
@@ -233,8 +241,7 @@ const DevServerMixin = exports.DevServerMixin = {
233
241
  // eslint-disable-next-line @typescript-eslint/no-var-requires
234
242
  const pkg = require(_path.default.resolve(process.cwd(), 'package.json'));
235
243
  return (req, res) => {
236
- var _pkg$ccExtensibility, _pkg$ccExtensibility2, _pkg$ccExtensibility3;
237
- const baseDir = _path.default.resolve(req.app.options.projectDir, pkg !== null && pkg !== void 0 && (_pkg$ccExtensibility = pkg.ccExtensibility) !== null && _pkg$ccExtensibility !== void 0 && _pkg$ccExtensibility.overridesDir ? pkg === null || pkg === void 0 ? void 0 : (_pkg$ccExtensibility2 = pkg.ccExtensibility) === null || _pkg$ccExtensibility2 === void 0 ? void 0 : (_pkg$ccExtensibility3 = _pkg$ccExtensibility2.overridesDir) === null || _pkg$ccExtensibility3 === void 0 ? void 0 : _pkg$ccExtensibility3.replace(/^\//, '') : '', 'app');
244
+ const baseDir = _path.default.resolve(req.app.options.projectDir, 'app');
238
245
  return this._serveStaticFile(req, res, baseDir, filePath, opts);
239
246
  };
240
247
  },
@@ -306,7 +313,8 @@ const DevServerMixin = exports.DevServerMixin = {
306
313
  _createHandler(app) {
307
314
  const {
308
315
  protocol,
309
- sslFilePath
316
+ sslFilePath,
317
+ startPath = '/'
310
318
  } = app.options;
311
319
  const {
312
320
  hostname,
@@ -330,7 +338,9 @@ const DevServerMixin = exports.DevServerMixin = {
330
338
  }, () => {
331
339
  /* istanbul ignore next */
332
340
  if (process.env.NODE_ENV !== 'test') {
333
- (0, _open.default)(`${this._getDevServerURL(app.options)}/__mrt/loading-screen/index.html?loading=1`);
341
+ const targetPath = encodeURIComponent(startPath);
342
+ const loadingPage = `${this._getDevServerURL(app.options)}/__mrt/loading-screen/index.html?loading=1&path=${targetPath}`;
343
+ (0, _open.default)(loadingPage);
334
344
  }
335
345
  });
336
346
  return {
@@ -378,18 +378,9 @@ const createBundle = exports.createBundle = /*#__PURE__*/function () {
378
378
  })).then(/*#__PURE__*/_asyncToGenerator(function* () {
379
379
  const {
380
380
  dependencies = {},
381
- devDependencies = {},
382
- ccExtensibility = {
383
- extends: '',
384
- overridesDir: ''
385
- }
381
+ devDependencies = {}
386
382
  } = yield getProjectPkg();
387
- const extendsTemplate = 'node_modules/' + ccExtensibility.extends;
388
- let cc_overrides = [];
389
- if (ccExtensibility.overridesDir) {
390
- const overrides_files = yield _walkDir(ccExtensibility.overridesDir, ccExtensibility.overridesDir);
391
- cc_overrides = Array.from(overrides_files).filter(item => (0, _fsExtra.existsSync)(_path.default.join(extendsTemplate, item)));
392
- }
383
+ const cc_overrides = [];
393
384
  const dependencyTree = yield getProjectDependencyTree();
394
385
  // If we can't load the dependency tree, pretend that it's empty.
395
386
  // TODO: Should we report an error?