@commercetools-frontend/mc-html-template 21.23.9 → 21.24.0

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.
@@ -2,20 +2,17 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var _asyncToGenerator = require('@babel/runtime-corejs3/helpers/asyncToGenerator');
6
- var _regeneratorRuntime = require('@babel/runtime-corejs3/regenerator');
7
5
  var fs = require('fs');
8
6
  var applicationConfig = require('@commercetools-frontend/application-config');
9
- var _slicedToArray = require('@babel/runtime-corejs3/helpers/slicedToArray');
10
7
  var _defineProperty = require('@babel/runtime-corejs3/helpers/defineProperty');
11
- var _toConsumableArray = require('@babel/runtime-corejs3/helpers/toConsumableArray');
8
+ var _slicedToArray = require('@babel/runtime-corejs3/helpers/slicedToArray');
12
9
  var _Array$isArray = require('@babel/runtime-corejs3/core-js-stable/array/is-array');
13
10
  var _reduceInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/reduce');
14
11
  var _Object$assign = require('@babel/runtime-corejs3/core-js-stable/object/assign');
15
12
  var _Object$keys = require('@babel/runtime-corejs3/core-js-stable/object/keys');
16
- var _concatInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/concat');
17
13
  var _mapInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/map');
18
14
  var _Object$entries = require('@babel/runtime-corejs3/core-js-stable/object/entries');
15
+ var _concatInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/concat');
19
16
  var _Object$getOwnPropertySymbols = require('@babel/runtime-corejs3/core-js-stable/object/get-own-property-symbols');
20
17
  var _filterInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/filter');
21
18
  var _Object$getOwnPropertyDescriptor = require('@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptor');
@@ -26,19 +23,18 @@ var _Object$defineProperty = require('@babel/runtime-corejs3/core-js-stable/obje
26
23
  var constants = require('@commercetools-frontend/constants');
27
24
  var crypto = require('crypto');
28
25
  var serialize = require('serialize-javascript');
29
- var generateTemplate = require('./generate-template-ffe36451.cjs.dev.js');
26
+ var generateTemplate = require('./generate-template-f3bd2e44.cjs.dev.js');
30
27
 
31
28
  function _interopDefault (e) { return e && e.__esModule ? e : { 'default': e }; }
32
29
 
33
- var _regeneratorRuntime__default = /*#__PURE__*/_interopDefault(_regeneratorRuntime);
34
30
  var fs__default = /*#__PURE__*/_interopDefault(fs);
35
31
  var _Array$isArray__default = /*#__PURE__*/_interopDefault(_Array$isArray);
36
32
  var _reduceInstanceProperty__default = /*#__PURE__*/_interopDefault(_reduceInstanceProperty);
37
33
  var _Object$assign__default = /*#__PURE__*/_interopDefault(_Object$assign);
38
34
  var _Object$keys__default = /*#__PURE__*/_interopDefault(_Object$keys);
39
- var _concatInstanceProperty__default = /*#__PURE__*/_interopDefault(_concatInstanceProperty);
40
35
  var _mapInstanceProperty__default = /*#__PURE__*/_interopDefault(_mapInstanceProperty);
41
36
  var _Object$entries__default = /*#__PURE__*/_interopDefault(_Object$entries);
37
+ var _concatInstanceProperty__default = /*#__PURE__*/_interopDefault(_concatInstanceProperty);
42
38
  var _Object$getOwnPropertySymbols__default = /*#__PURE__*/_interopDefault(_Object$getOwnPropertySymbols);
43
39
  var _filterInstanceProperty__default = /*#__PURE__*/_interopDefault(_filterInstanceProperty);
44
40
  var _Object$getOwnPropertyDescriptor__default = /*#__PURE__*/_interopDefault(_Object$getOwnPropertyDescriptor);
@@ -50,7 +46,7 @@ var crypto__default = /*#__PURE__*/_interopDefault(crypto);
50
46
  var serialize__default = /*#__PURE__*/_interopDefault(serialize);
51
47
 
52
48
  function createAssetHash(content) {
53
- var sha256Hash = crypto__default["default"].createHash('sha256').update(content).digest('base64');
49
+ const sha256Hash = crypto__default["default"].createHash('sha256').update(content).digest('base64');
54
50
  /**
55
51
  * NOTE:
56
52
  * We prefix the hash function type as the browser
@@ -62,79 +58,72 @@ function createAssetHash(content) {
62
58
  return "sha256-".concat(sha256Hash);
63
59
  }
64
60
 
65
- var sanitizeAppEnvironment = function sanitizeAppEnvironment(env) {
66
- return serialize__default["default"](env, {
67
- isJSON: true
68
- });
69
- };
61
+ const sanitizeAppEnvironment = env => serialize__default["default"](env, {
62
+ isJSON: true
63
+ });
70
64
 
71
65
  function ownKeys(object, enumerableOnly) { var keys = _Object$keys__default["default"](object); if (_Object$getOwnPropertySymbols__default["default"]) { var symbols = _Object$getOwnPropertySymbols__default["default"](object); enumerableOnly && (symbols = _filterInstanceProperty__default["default"](symbols).call(symbols, function (sym) { return _Object$getOwnPropertyDescriptor__default["default"](object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
72
66
 
73
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var _context11, _context12; var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? _forEachInstanceProperty__default["default"](_context11 = ownKeys(Object(source), !0)).call(_context11, function (key) { _defineProperty(target, key, source[key]); }) : _Object$getOwnPropertyDescriptors__default["default"] ? _Object$defineProperties__default["default"](target, _Object$getOwnPropertyDescriptors__default["default"](source)) : _forEachInstanceProperty__default["default"](_context12 = ownKeys(Object(source))).call(_context12, function (key) { _Object$defineProperty__default["default"](target, key, _Object$getOwnPropertyDescriptor__default["default"](source, key)); }); } return target; }
74
-
75
- var htmlScripts$1 = {
67
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var _context9, _context10; var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? _forEachInstanceProperty__default["default"](_context9 = ownKeys(Object(source), !0)).call(_context9, function (key) { _defineProperty(target, key, source[key]); }) : _Object$getOwnPropertyDescriptors__default["default"] ? _Object$defineProperties__default["default"](target, _Object$getOwnPropertyDescriptors__default["default"](source)) : _forEachInstanceProperty__default["default"](_context10 = ownKeys(Object(source))).call(_context10, function (key) { _Object$defineProperty__default["default"](target, key, _Object$getOwnPropertyDescriptor__default["default"](source, key)); }); } return target; }
68
+ const htmlScripts$1 = {
76
69
  "dataLayer": "window.dataLayer=[{\"gtm.start\":(new Date).getTime(),event:\"gtm.js\"}];",
77
70
  "loadingScreen": "window.onAppLoaded=function(){var e=document.querySelector(\"#app-loader\");e&&e.parentNode.removeChild(e)},setTimeout(function(){var e=document.querySelector(\".loading-screen\");e&&e.classList.remove(\"loading-screen--hidden\")},250),setTimeout(function(){var e=document.querySelector(\".long-loading-notice\");e&&e.classList.remove(\"long-loading-notice--hidden\")},2e3);",
78
71
  "publicPath": "window.__dynamicImportHandler__=function(n){return window.app.cdnUrl.replace(/\\/$/,\"\")+\"/\"+n.replace(/^(\\.\\/)?/,\"\")},window.__dynamicImportPreload__=function(n){return n.map(n=>window.app.cdnUrl.replace(/\\/$/,\"\")+\"/\"+n)};"
79
72
  };
80
73
 
81
- var toArray = function toArray(value) {
82
- return _Array$isArray__default["default"](value) ? value : [value];
83
- };
74
+ const toArray = value => _Array$isArray__default["default"](value) ? value : [value];
84
75
 
85
- var mergeCspDirectives = function mergeCspDirectives() {
76
+ const mergeCspDirectives = function () {
86
77
  for (var _len = arguments.length, directives = new Array(_len), _key = 0; _key < _len; _key++) {
87
78
  directives[_key] = arguments[_key];
88
79
  }
89
80
 
90
- return _reduceInstanceProperty__default["default"](directives).call(directives, function (mergedCsp, csp) {
81
+ return _reduceInstanceProperty__default["default"](directives).call(directives, (mergedCsp, csp) => {
91
82
  var _context;
92
83
 
93
- return _Object$assign__default["default"](mergedCsp, _reduceInstanceProperty__default["default"](_context = _Object$keys__default["default"](csp)).call(_context, function (acc, directiveKey) {
94
- var _context2;
95
-
96
- return _Object$assign__default["default"](acc, _defineProperty({}, directiveKey, _concatInstanceProperty__default["default"](_context2 = []).call(_context2, _toConsumableArray(toArray(mergedCsp[directiveKey] ? mergedCsp[directiveKey] : [])), _toConsumableArray(toArray(csp[directiveKey])))));
97
- }, {}));
84
+ return _Object$assign__default["default"](mergedCsp, _reduceInstanceProperty__default["default"](_context = _Object$keys__default["default"](csp)).call(_context, (acc, directiveKey) => _Object$assign__default["default"](acc, {
85
+ [directiveKey]: [...toArray(mergedCsp[directiveKey] ? mergedCsp[directiveKey] : []), ...toArray(csp[directiveKey])]
86
+ }), {}));
98
87
  }, {});
99
88
  };
100
89
 
101
- var toHeaderString = function toHeaderString() {
102
- var _context3;
90
+ const toHeaderString = function () {
91
+ var _context2;
103
92
 
104
- var directives = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
105
- return _mapInstanceProperty__default["default"](_context3 = _Object$entries__default["default"](directives)).call(_context3, function (_ref) {
106
- var _context4;
93
+ let directives = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
94
+ return _mapInstanceProperty__default["default"](_context2 = _Object$entries__default["default"](directives)).call(_context2, _ref => {
95
+ var _context3;
107
96
 
108
- var _ref2 = _slicedToArray(_ref, 2),
97
+ let _ref2 = _slicedToArray(_ref, 2),
109
98
  directive = _ref2[0],
110
99
  value = _ref2[1];
111
100
 
112
- return _concatInstanceProperty__default["default"](_context4 = "".concat(directive, " ")).call(_context4, _Array$isArray__default["default"](value) ? value.join(' ') : value);
101
+ return _concatInstanceProperty__default["default"](_context3 = "".concat(directive, " ")).call(_context3, _Array$isArray__default["default"](value) ? value.join(' ') : value);
113
102
  }).join('; ');
114
103
  };
115
104
 
116
- var toStructuredHeaderString = function toStructuredHeaderString() {
117
- var _context5;
105
+ const toStructuredHeaderString = function () {
106
+ var _context4;
118
107
 
119
- var directives = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
120
- return _mapInstanceProperty__default["default"](_context5 = _Object$entries__default["default"](directives)).call(_context5, function (_ref3) {
121
- var _context6;
108
+ let directives = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
109
+ return _mapInstanceProperty__default["default"](_context4 = _Object$entries__default["default"](directives)).call(_context4, _ref3 => {
110
+ var _context5;
122
111
 
123
- var _ref4 = _slicedToArray(_ref3, 2),
112
+ let _ref4 = _slicedToArray(_ref3, 2),
124
113
  directive = _ref4[0],
125
114
  value = _ref4[1];
126
115
 
127
- return _concatInstanceProperty__default["default"](_context6 = "".concat(directive, "=")).call(_context6, _Array$isArray__default["default"](value) ? value.join(' ') : value);
116
+ return _concatInstanceProperty__default["default"](_context5 = "".concat(directive, "=")).call(_context5, _Array$isArray__default["default"](value) ? value.join(' ') : value);
128
117
  }).join(', ');
129
118
  };
130
119
 
131
- var processHeaders = function processHeaders(applicationConfig) {
132
- var _context7, _context8, _context9, _applicationConfig$he, _applicationConfig$he2, _applicationConfig$he3, _context10, _applicationConfig$he4;
120
+ const processHeaders = applicationConfig => {
121
+ var _context6, _context7, _context8, _applicationConfig$he, _applicationConfig$he2, _applicationConfig$he3, _applicationConfig$he4;
133
122
 
134
- var isMcDevEnv = applicationConfig.env.env === 'development'; // List hashes for injected inline scripts.
123
+ const isMcDevEnv = applicationConfig.env.env === 'development'; // List hashes for injected inline scripts.
135
124
  // https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/script-src
136
125
 
137
- var htmlScriptsHashes = [createAssetHash(htmlScripts$1.loadingScreen), createAssetHash("window.app = ".concat(sanitizeAppEnvironment(applicationConfig.env), ";")), createAssetHash(htmlScripts$1.publicPath), createAssetHash(htmlScripts$1.dataLayer)]; // // List hashes for injected inline styles.
126
+ const htmlScriptsHashes = [createAssetHash(htmlScripts$1.loadingScreen), createAssetHash("window.app = ".concat(sanitizeAppEnvironment(applicationConfig.env), ";")), createAssetHash(htmlScripts$1.publicPath), createAssetHash(htmlScripts$1.dataLayer)]; // // List hashes for injected inline styles.
138
127
  // // https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/style-src
139
128
  // const htmlStylesHashes = [createAssetHash(htmlStyles.loadingScreen)];
140
129
 
@@ -143,17 +132,15 @@ var processHeaders = function processHeaders(applicationConfig) {
143
132
  * https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy
144
133
  */
145
134
 
146
- var cspDirectives = _Object$assign__default["default"]({
135
+ const cspDirectives = _Object$assign__default["default"]({
147
136
  'default-src': "'none'",
148
- 'script-src': _concatInstanceProperty__default["default"](_context7 = ["'self'", 'www.googletagmanager.com/gtm.js', 'www.google-analytics.com/analytics.js']).call(_context7, isMcDevEnv ? // Allow webpack to load source maps on runtime when errors occur
137
+ 'script-src': _concatInstanceProperty__default["default"](_context6 = ["'self'", 'www.googletagmanager.com/gtm.js', 'www.google-analytics.com/analytics.js']).call(_context6, isMcDevEnv ? // Allow webpack to load source maps on runtime when errors occur
149
138
  // using script tags
150
- ['localhost:*', "'unsafe-inline'"] : _mapInstanceProperty__default["default"](htmlScriptsHashes).call(htmlScriptsHashes, function (assetHash) {
151
- return "'".concat(assetHash, "'");
152
- })),
153
- 'connect-src': _concatInstanceProperty__default["default"](_context8 = ["'self'", 'app.launchdarkly.com', 'clientstream.launchdarkly.com', 'events.launchdarkly.com', 'app.getsentry.com', // Match all attempts to load from any subdomain of `sentry.io`
154
- '*.sentry.io', 'www.google-analytics.com']).call(_context8, isMcDevEnv ? ['ws:', 'localhost:8080', 'webpack-internal:'] : []),
139
+ ['localhost:*', "'unsafe-inline'"] : _mapInstanceProperty__default["default"](htmlScriptsHashes).call(htmlScriptsHashes, assetHash => "'".concat(assetHash, "'"))),
140
+ 'connect-src': _concatInstanceProperty__default["default"](_context7 = ["'self'", 'app.launchdarkly.com', 'clientstream.launchdarkly.com', 'events.launchdarkly.com', 'app.getsentry.com', // Match all attempts to load from any subdomain of `sentry.io`
141
+ '*.sentry.io', 'www.google-analytics.com']).call(_context7, isMcDevEnv ? ['ws:', 'localhost:8080', 'webpack-internal:'] : []),
155
142
  'img-src': ['*', 'data:'],
156
- 'style-src': _concatInstanceProperty__default["default"](_context9 = ["'self'", 'fonts.googleapis.com', 'data:']).call(_context9, // TODO: investigate what needs to be done to avoid unsafe-inline styles
143
+ 'style-src': _concatInstanceProperty__default["default"](_context8 = ["'self'", 'fonts.googleapis.com', 'data:']).call(_context8, // TODO: investigate what needs to be done to avoid unsafe-inline styles
157
144
  // https://github.com/commercetools/merchant-center-frontend/pull/5223#discussion_r210367636
158
145
  ["'unsafe-inline'"] // TODO: enable this once we can avoid unsafe-inline
159
146
  // htmlStylesHashes.map(assetHash => `'${assetHash}'`)
@@ -174,77 +161,57 @@ var processHeaders = function processHeaders(applicationConfig) {
174
161
  ); // Recursively merge the directives
175
162
 
176
163
 
177
- var mergedCsp = mergeCspDirectives(cspDirectives, (_applicationConfig$he = (_applicationConfig$he2 = applicationConfig.headers) === null || _applicationConfig$he2 === void 0 ? void 0 : _applicationConfig$he2.csp) !== null && _applicationConfig$he !== void 0 ? _applicationConfig$he : {});
164
+ const mergedCsp = mergeCspDirectives(cspDirectives, (_applicationConfig$he = (_applicationConfig$he2 = applicationConfig.headers) === null || _applicationConfig$he2 === void 0 ? void 0 : _applicationConfig$he2.csp) !== null && _applicationConfig$he !== void 0 ? _applicationConfig$he : {});
178
165
  return _objectSpread(_objectSpread(_objectSpread({}, constants.HTTP_SECURITY_HEADERS), {}, {
179
166
  // The `Content-Security-Policy` header is always generated
180
167
  // based on the Custom Application config.
181
168
  'Content-Security-Policy': toHeaderString(mergedCsp)
182
169
  }, ((_applicationConfig$he3 = applicationConfig.headers) === null || _applicationConfig$he3 === void 0 ? void 0 : _applicationConfig$he3.strictTransportSecurity) && {
183
- 'Strict-Transport-Security': _concatInstanceProperty__default["default"](_context10 = [constants.HTTP_SECURITY_HEADERS['Strict-Transport-Security']]).call(_context10, _toConsumableArray(applicationConfig.headers.strictTransportSecurity)).join('; ')
170
+ 'Strict-Transport-Security': [constants.HTTP_SECURITY_HEADERS['Strict-Transport-Security'], ...applicationConfig.headers.strictTransportSecurity].join('; ')
184
171
  }), ((_applicationConfig$he4 = applicationConfig.headers) === null || _applicationConfig$he4 === void 0 ? void 0 : _applicationConfig$he4.permissionsPolicies) && {
185
172
  'Permissions-Policy': toStructuredHeaderString(applicationConfig.headers.permissionsPolicies)
186
173
  });
187
174
  };
188
175
 
189
- var htmlScripts = {
176
+ // https://babeljs.io/blog/2017/09/11/zero-config-with-babel-macros
177
+ const htmlScripts = {
190
178
  "dataLayer": "window.dataLayer=[{\"gtm.start\":(new Date).getTime(),event:\"gtm.js\"}];",
191
179
  "loadingScreen": "window.onAppLoaded=function(){var e=document.querySelector(\"#app-loader\");e&&e.parentNode.removeChild(e)},setTimeout(function(){var e=document.querySelector(\".loading-screen\");e&&e.classList.remove(\"loading-screen--hidden\")},250),setTimeout(function(){var e=document.querySelector(\".long-loading-notice\");e&&e.classList.remove(\"long-loading-notice--hidden\")},2e3);",
192
180
  "publicPath": "window.__dynamicImportHandler__=function(n){return window.app.cdnUrl.replace(/\\/$/,\"\")+\"/\"+n.replace(/^(\\.\\/)?/,\"\")},window.__dynamicImportPreload__=function(n){return n.map(n=>window.app.cdnUrl.replace(/\\/$/,\"\")+\"/\"+n)};"
193
181
  }; // https://babeljs.io/blog/2017/09/11/zero-config-with-babel-macros
194
182
 
195
- var htmlStyles = {
183
+ const htmlStyles = {
196
184
  "loadingScreen": ".loading-screen{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100vh;width:100vw}.loading-screen--hidden{display:none}.loading-screen>*+*{margin:24px 0 0}.loading-spinner{width:32px;height:32px}.long-loading-notice{color:#999;font-family:'Open Sans',sans-serif;font-size:12px}.long-loading-notice--hidden{visibility:hidden}.loading-spinner-circle{fill:#213c45;opacity:.2}@keyframes loading-spinner-animation{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}.loading-spinner-pointer{transform-origin:20px 20px 0;animation:loading-spinner-animation .5s infinite linear}"
197
185
  };
198
186
 
199
- var trimTrailingSlash = function trimTrailingSlash(value) {
200
- return value.replace(/\/$/, '');
201
- };
187
+ const trimTrailingSlash = value => value.replace(/\/$/, '');
202
188
 
203
- var getGtmTrackingScript = function getGtmTrackingScript(gtmId) {
189
+ const getGtmTrackingScript = gtmId => {
204
190
  if (!gtmId) return '';
205
- var url = "https://www.googletagmanager.com/gtm.js?id=".concat(gtmId);
191
+ const url = "https://www.googletagmanager.com/gtm.js?id=".concat(gtmId);
206
192
  return "<script async fetchpriority=\"low\" type=\"text/javascript\" src=\"".concat(url, "\" referrerpolicy=\"no-referrer\"></script>");
207
193
  };
208
194
 
209
- var replaceHtmlPlaceholders = function replaceHtmlPlaceholders(indexHtmlContent, options) {
195
+ const replaceHtmlPlaceholders = (indexHtmlContent, options) => {
210
196
  var _options$headers$Cont, _options$headers;
211
197
 
212
198
  return indexHtmlContent.replace(new RegExp('__CSP__', 'g'), (_options$headers$Cont = (_options$headers = options.headers) === null || _options$headers === void 0 ? void 0 : _options$headers['Content-Security-Policy']) !== null && _options$headers$Cont !== void 0 ? _options$headers$Cont : '').replace(new RegExp('__CDN_URL__', 'g'), options.env.cdnUrl ? // Ensure there is a trailing slash
213
199
  "".concat(trimTrailingSlash(options.env.cdnUrl), "/") : '').replace(new RegExp('__MC_API_URL__', 'g'), trimTrailingSlash(options.env.mcApiUrl)).replace(new RegExp('__APPLICATION_ENVIRONMENT__', 'g'), sanitizeAppEnvironment(options.env)).replace(new RegExp('__GTM_SCRIPT__', 'g'), getGtmTrackingScript(options.env.trackingGtm)).replace(new RegExp('__DATALAYER_JS__', 'g'), "<script>".concat(htmlScripts.dataLayer, "</script>")).replace(new RegExp('__LOADING_SCREEN_JS__', 'g'), "<script>".concat(htmlScripts.loadingScreen, "</script>")).replace(new RegExp('__LOADING_SCREEN_CSS__', 'g'), "<style>".concat(htmlStyles.loadingScreen, "</style>"));
214
200
  };
215
201
 
216
- function compileHtml(_x) {
217
- return _compileHtml.apply(this, arguments);
218
- }
219
-
220
- function _compileHtml() {
221
- _compileHtml = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime__default["default"].mark(function _callee(indexHtmlTemplatePath) {
222
- var applicationConfig$1, compiledHeaders, indexHtmlTemplateContent, indexHtmlContent;
223
- return _regeneratorRuntime__default["default"].wrap(function _callee$(_context) {
224
- while (1) {
225
- switch (_context.prev = _context.next) {
226
- case 0:
227
- applicationConfig$1 = applicationConfig.processConfig();
228
- compiledHeaders = processHeaders(applicationConfig$1);
229
- indexHtmlTemplateContent = fs__default["default"].readFileSync(indexHtmlTemplatePath, 'utf8');
230
- indexHtmlContent = replaceHtmlPlaceholders(indexHtmlTemplateContent, {
231
- env: applicationConfig$1.env,
232
- headers: compiledHeaders
233
- });
234
- return _context.abrupt("return", {
235
- env: applicationConfig$1.env,
236
- headers: compiledHeaders,
237
- indexHtmlContent: indexHtmlContent
238
- });
239
-
240
- case 5:
241
- case "end":
242
- return _context.stop();
243
- }
244
- }
245
- }, _callee);
246
- }));
247
- return _compileHtml.apply(this, arguments);
202
+ async function compileHtml(indexHtmlTemplatePath) {
203
+ const applicationConfig$1 = applicationConfig.processConfig();
204
+ const compiledHeaders = processHeaders(applicationConfig$1);
205
+ const indexHtmlTemplateContent = fs__default["default"].readFileSync(indexHtmlTemplatePath, 'utf8');
206
+ const indexHtmlContent = replaceHtmlPlaceholders(indexHtmlTemplateContent, {
207
+ env: applicationConfig$1.env,
208
+ headers: compiledHeaders
209
+ });
210
+ return {
211
+ env: applicationConfig$1.env,
212
+ headers: compiledHeaders,
213
+ indexHtmlContent
214
+ };
248
215
  }
249
216
 
250
217
  exports.generateTemplate = generateTemplate.generateTemplate;
@@ -2,20 +2,17 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var _asyncToGenerator = require('@babel/runtime-corejs3/helpers/asyncToGenerator');
6
- var _regeneratorRuntime = require('@babel/runtime-corejs3/regenerator');
7
5
  var fs = require('fs');
8
6
  var applicationConfig = require('@commercetools-frontend/application-config');
9
- var _slicedToArray = require('@babel/runtime-corejs3/helpers/slicedToArray');
10
7
  var _defineProperty = require('@babel/runtime-corejs3/helpers/defineProperty');
11
- var _toConsumableArray = require('@babel/runtime-corejs3/helpers/toConsumableArray');
8
+ var _slicedToArray = require('@babel/runtime-corejs3/helpers/slicedToArray');
12
9
  var _Array$isArray = require('@babel/runtime-corejs3/core-js-stable/array/is-array');
13
10
  var _reduceInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/reduce');
14
11
  var _Object$assign = require('@babel/runtime-corejs3/core-js-stable/object/assign');
15
12
  var _Object$keys = require('@babel/runtime-corejs3/core-js-stable/object/keys');
16
- var _concatInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/concat');
17
13
  var _mapInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/map');
18
14
  var _Object$entries = require('@babel/runtime-corejs3/core-js-stable/object/entries');
15
+ var _concatInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/concat');
19
16
  var _Object$getOwnPropertySymbols = require('@babel/runtime-corejs3/core-js-stable/object/get-own-property-symbols');
20
17
  var _filterInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/filter');
21
18
  var _Object$getOwnPropertyDescriptor = require('@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptor');
@@ -26,19 +23,18 @@ var _Object$defineProperty = require('@babel/runtime-corejs3/core-js-stable/obje
26
23
  var constants = require('@commercetools-frontend/constants');
27
24
  var crypto = require('crypto');
28
25
  var serialize = require('serialize-javascript');
29
- var generateTemplate = require('./generate-template-a47e70b1.cjs.prod.js');
26
+ var generateTemplate = require('./generate-template-11aec1ac.cjs.prod.js');
30
27
 
31
28
  function _interopDefault (e) { return e && e.__esModule ? e : { 'default': e }; }
32
29
 
33
- var _regeneratorRuntime__default = /*#__PURE__*/_interopDefault(_regeneratorRuntime);
34
30
  var fs__default = /*#__PURE__*/_interopDefault(fs);
35
31
  var _Array$isArray__default = /*#__PURE__*/_interopDefault(_Array$isArray);
36
32
  var _reduceInstanceProperty__default = /*#__PURE__*/_interopDefault(_reduceInstanceProperty);
37
33
  var _Object$assign__default = /*#__PURE__*/_interopDefault(_Object$assign);
38
34
  var _Object$keys__default = /*#__PURE__*/_interopDefault(_Object$keys);
39
- var _concatInstanceProperty__default = /*#__PURE__*/_interopDefault(_concatInstanceProperty);
40
35
  var _mapInstanceProperty__default = /*#__PURE__*/_interopDefault(_mapInstanceProperty);
41
36
  var _Object$entries__default = /*#__PURE__*/_interopDefault(_Object$entries);
37
+ var _concatInstanceProperty__default = /*#__PURE__*/_interopDefault(_concatInstanceProperty);
42
38
  var _Object$getOwnPropertySymbols__default = /*#__PURE__*/_interopDefault(_Object$getOwnPropertySymbols);
43
39
  var _filterInstanceProperty__default = /*#__PURE__*/_interopDefault(_filterInstanceProperty);
44
40
  var _Object$getOwnPropertyDescriptor__default = /*#__PURE__*/_interopDefault(_Object$getOwnPropertyDescriptor);
@@ -50,7 +46,7 @@ var crypto__default = /*#__PURE__*/_interopDefault(crypto);
50
46
  var serialize__default = /*#__PURE__*/_interopDefault(serialize);
51
47
 
52
48
  function createAssetHash(content) {
53
- var sha256Hash = crypto__default["default"].createHash('sha256').update(content).digest('base64');
49
+ const sha256Hash = crypto__default["default"].createHash('sha256').update(content).digest('base64');
54
50
  /**
55
51
  * NOTE:
56
52
  * We prefix the hash function type as the browser
@@ -62,79 +58,72 @@ function createAssetHash(content) {
62
58
  return "sha256-".concat(sha256Hash);
63
59
  }
64
60
 
65
- var sanitizeAppEnvironment = function sanitizeAppEnvironment(env) {
66
- return serialize__default["default"](env, {
67
- isJSON: true
68
- });
69
- };
61
+ const sanitizeAppEnvironment = env => serialize__default["default"](env, {
62
+ isJSON: true
63
+ });
70
64
 
71
65
  function ownKeys(object, enumerableOnly) { var keys = _Object$keys__default["default"](object); if (_Object$getOwnPropertySymbols__default["default"]) { var symbols = _Object$getOwnPropertySymbols__default["default"](object); enumerableOnly && (symbols = _filterInstanceProperty__default["default"](symbols).call(symbols, function (sym) { return _Object$getOwnPropertyDescriptor__default["default"](object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
72
66
 
73
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var _context11, _context12; var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? _forEachInstanceProperty__default["default"](_context11 = ownKeys(Object(source), !0)).call(_context11, function (key) { _defineProperty(target, key, source[key]); }) : _Object$getOwnPropertyDescriptors__default["default"] ? _Object$defineProperties__default["default"](target, _Object$getOwnPropertyDescriptors__default["default"](source)) : _forEachInstanceProperty__default["default"](_context12 = ownKeys(Object(source))).call(_context12, function (key) { _Object$defineProperty__default["default"](target, key, _Object$getOwnPropertyDescriptor__default["default"](source, key)); }); } return target; }
74
-
75
- var htmlScripts$1 = {
67
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var _context9, _context10; var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? _forEachInstanceProperty__default["default"](_context9 = ownKeys(Object(source), !0)).call(_context9, function (key) { _defineProperty(target, key, source[key]); }) : _Object$getOwnPropertyDescriptors__default["default"] ? _Object$defineProperties__default["default"](target, _Object$getOwnPropertyDescriptors__default["default"](source)) : _forEachInstanceProperty__default["default"](_context10 = ownKeys(Object(source))).call(_context10, function (key) { _Object$defineProperty__default["default"](target, key, _Object$getOwnPropertyDescriptor__default["default"](source, key)); }); } return target; }
68
+ const htmlScripts$1 = {
76
69
  "dataLayer": "window.dataLayer=[{\"gtm.start\":(new Date).getTime(),event:\"gtm.js\"}];",
77
70
  "loadingScreen": "window.onAppLoaded=function(){var e=document.querySelector(\"#app-loader\");e&&e.parentNode.removeChild(e)},setTimeout(function(){var e=document.querySelector(\".loading-screen\");e&&e.classList.remove(\"loading-screen--hidden\")},250),setTimeout(function(){var e=document.querySelector(\".long-loading-notice\");e&&e.classList.remove(\"long-loading-notice--hidden\")},2e3);",
78
71
  "publicPath": "window.__dynamicImportHandler__=function(n){return window.app.cdnUrl.replace(/\\/$/,\"\")+\"/\"+n.replace(/^(\\.\\/)?/,\"\")},window.__dynamicImportPreload__=function(n){return n.map(n=>window.app.cdnUrl.replace(/\\/$/,\"\")+\"/\"+n)};"
79
72
  };
80
73
 
81
- var toArray = function toArray(value) {
82
- return _Array$isArray__default["default"](value) ? value : [value];
83
- };
74
+ const toArray = value => _Array$isArray__default["default"](value) ? value : [value];
84
75
 
85
- var mergeCspDirectives = function mergeCspDirectives() {
76
+ const mergeCspDirectives = function () {
86
77
  for (var _len = arguments.length, directives = new Array(_len), _key = 0; _key < _len; _key++) {
87
78
  directives[_key] = arguments[_key];
88
79
  }
89
80
 
90
- return _reduceInstanceProperty__default["default"](directives).call(directives, function (mergedCsp, csp) {
81
+ return _reduceInstanceProperty__default["default"](directives).call(directives, (mergedCsp, csp) => {
91
82
  var _context;
92
83
 
93
- return _Object$assign__default["default"](mergedCsp, _reduceInstanceProperty__default["default"](_context = _Object$keys__default["default"](csp)).call(_context, function (acc, directiveKey) {
94
- var _context2;
95
-
96
- return _Object$assign__default["default"](acc, _defineProperty({}, directiveKey, _concatInstanceProperty__default["default"](_context2 = []).call(_context2, _toConsumableArray(toArray(mergedCsp[directiveKey] ? mergedCsp[directiveKey] : [])), _toConsumableArray(toArray(csp[directiveKey])))));
97
- }, {}));
84
+ return _Object$assign__default["default"](mergedCsp, _reduceInstanceProperty__default["default"](_context = _Object$keys__default["default"](csp)).call(_context, (acc, directiveKey) => _Object$assign__default["default"](acc, {
85
+ [directiveKey]: [...toArray(mergedCsp[directiveKey] ? mergedCsp[directiveKey] : []), ...toArray(csp[directiveKey])]
86
+ }), {}));
98
87
  }, {});
99
88
  };
100
89
 
101
- var toHeaderString = function toHeaderString() {
102
- var _context3;
90
+ const toHeaderString = function () {
91
+ var _context2;
103
92
 
104
- var directives = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
105
- return _mapInstanceProperty__default["default"](_context3 = _Object$entries__default["default"](directives)).call(_context3, function (_ref) {
106
- var _context4;
93
+ let directives = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
94
+ return _mapInstanceProperty__default["default"](_context2 = _Object$entries__default["default"](directives)).call(_context2, _ref => {
95
+ var _context3;
107
96
 
108
- var _ref2 = _slicedToArray(_ref, 2),
97
+ let _ref2 = _slicedToArray(_ref, 2),
109
98
  directive = _ref2[0],
110
99
  value = _ref2[1];
111
100
 
112
- return _concatInstanceProperty__default["default"](_context4 = "".concat(directive, " ")).call(_context4, _Array$isArray__default["default"](value) ? value.join(' ') : value);
101
+ return _concatInstanceProperty__default["default"](_context3 = "".concat(directive, " ")).call(_context3, _Array$isArray__default["default"](value) ? value.join(' ') : value);
113
102
  }).join('; ');
114
103
  };
115
104
 
116
- var toStructuredHeaderString = function toStructuredHeaderString() {
117
- var _context5;
105
+ const toStructuredHeaderString = function () {
106
+ var _context4;
118
107
 
119
- var directives = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
120
- return _mapInstanceProperty__default["default"](_context5 = _Object$entries__default["default"](directives)).call(_context5, function (_ref3) {
121
- var _context6;
108
+ let directives = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
109
+ return _mapInstanceProperty__default["default"](_context4 = _Object$entries__default["default"](directives)).call(_context4, _ref3 => {
110
+ var _context5;
122
111
 
123
- var _ref4 = _slicedToArray(_ref3, 2),
112
+ let _ref4 = _slicedToArray(_ref3, 2),
124
113
  directive = _ref4[0],
125
114
  value = _ref4[1];
126
115
 
127
- return _concatInstanceProperty__default["default"](_context6 = "".concat(directive, "=")).call(_context6, _Array$isArray__default["default"](value) ? value.join(' ') : value);
116
+ return _concatInstanceProperty__default["default"](_context5 = "".concat(directive, "=")).call(_context5, _Array$isArray__default["default"](value) ? value.join(' ') : value);
128
117
  }).join(', ');
129
118
  };
130
119
 
131
- var processHeaders = function processHeaders(applicationConfig) {
132
- var _context7, _context8, _context9, _applicationConfig$he, _applicationConfig$he2, _applicationConfig$he3, _context10, _applicationConfig$he4;
120
+ const processHeaders = applicationConfig => {
121
+ var _context6, _context7, _context8, _applicationConfig$he, _applicationConfig$he2, _applicationConfig$he3, _applicationConfig$he4;
133
122
 
134
- var isMcDevEnv = applicationConfig.env.env === 'development'; // List hashes for injected inline scripts.
123
+ const isMcDevEnv = applicationConfig.env.env === 'development'; // List hashes for injected inline scripts.
135
124
  // https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/script-src
136
125
 
137
- var htmlScriptsHashes = [createAssetHash(htmlScripts$1.loadingScreen), createAssetHash("window.app = ".concat(sanitizeAppEnvironment(applicationConfig.env), ";")), createAssetHash(htmlScripts$1.publicPath), createAssetHash(htmlScripts$1.dataLayer)]; // // List hashes for injected inline styles.
126
+ const htmlScriptsHashes = [createAssetHash(htmlScripts$1.loadingScreen), createAssetHash("window.app = ".concat(sanitizeAppEnvironment(applicationConfig.env), ";")), createAssetHash(htmlScripts$1.publicPath), createAssetHash(htmlScripts$1.dataLayer)]; // // List hashes for injected inline styles.
138
127
  // // https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/style-src
139
128
  // const htmlStylesHashes = [createAssetHash(htmlStyles.loadingScreen)];
140
129
 
@@ -143,17 +132,15 @@ var processHeaders = function processHeaders(applicationConfig) {
143
132
  * https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy
144
133
  */
145
134
 
146
- var cspDirectives = _Object$assign__default["default"]({
135
+ const cspDirectives = _Object$assign__default["default"]({
147
136
  'default-src': "'none'",
148
- 'script-src': _concatInstanceProperty__default["default"](_context7 = ["'self'", 'www.googletagmanager.com/gtm.js', 'www.google-analytics.com/analytics.js']).call(_context7, isMcDevEnv ? // Allow webpack to load source maps on runtime when errors occur
137
+ 'script-src': _concatInstanceProperty__default["default"](_context6 = ["'self'", 'www.googletagmanager.com/gtm.js', 'www.google-analytics.com/analytics.js']).call(_context6, isMcDevEnv ? // Allow webpack to load source maps on runtime when errors occur
149
138
  // using script tags
150
- ['localhost:*', "'unsafe-inline'"] : _mapInstanceProperty__default["default"](htmlScriptsHashes).call(htmlScriptsHashes, function (assetHash) {
151
- return "'".concat(assetHash, "'");
152
- })),
153
- 'connect-src': _concatInstanceProperty__default["default"](_context8 = ["'self'", 'app.launchdarkly.com', 'clientstream.launchdarkly.com', 'events.launchdarkly.com', 'app.getsentry.com', // Match all attempts to load from any subdomain of `sentry.io`
154
- '*.sentry.io', 'www.google-analytics.com']).call(_context8, isMcDevEnv ? ['ws:', 'localhost:8080', 'webpack-internal:'] : []),
139
+ ['localhost:*', "'unsafe-inline'"] : _mapInstanceProperty__default["default"](htmlScriptsHashes).call(htmlScriptsHashes, assetHash => "'".concat(assetHash, "'"))),
140
+ 'connect-src': _concatInstanceProperty__default["default"](_context7 = ["'self'", 'app.launchdarkly.com', 'clientstream.launchdarkly.com', 'events.launchdarkly.com', 'app.getsentry.com', // Match all attempts to load from any subdomain of `sentry.io`
141
+ '*.sentry.io', 'www.google-analytics.com']).call(_context7, isMcDevEnv ? ['ws:', 'localhost:8080', 'webpack-internal:'] : []),
155
142
  'img-src': ['*', 'data:'],
156
- 'style-src': _concatInstanceProperty__default["default"](_context9 = ["'self'", 'fonts.googleapis.com', 'data:']).call(_context9, // TODO: investigate what needs to be done to avoid unsafe-inline styles
143
+ 'style-src': _concatInstanceProperty__default["default"](_context8 = ["'self'", 'fonts.googleapis.com', 'data:']).call(_context8, // TODO: investigate what needs to be done to avoid unsafe-inline styles
157
144
  // https://github.com/commercetools/merchant-center-frontend/pull/5223#discussion_r210367636
158
145
  ["'unsafe-inline'"] // TODO: enable this once we can avoid unsafe-inline
159
146
  // htmlStylesHashes.map(assetHash => `'${assetHash}'`)
@@ -174,77 +161,57 @@ var processHeaders = function processHeaders(applicationConfig) {
174
161
  ); // Recursively merge the directives
175
162
 
176
163
 
177
- var mergedCsp = mergeCspDirectives(cspDirectives, (_applicationConfig$he = (_applicationConfig$he2 = applicationConfig.headers) === null || _applicationConfig$he2 === void 0 ? void 0 : _applicationConfig$he2.csp) !== null && _applicationConfig$he !== void 0 ? _applicationConfig$he : {});
164
+ const mergedCsp = mergeCspDirectives(cspDirectives, (_applicationConfig$he = (_applicationConfig$he2 = applicationConfig.headers) === null || _applicationConfig$he2 === void 0 ? void 0 : _applicationConfig$he2.csp) !== null && _applicationConfig$he !== void 0 ? _applicationConfig$he : {});
178
165
  return _objectSpread(_objectSpread(_objectSpread({}, constants.HTTP_SECURITY_HEADERS), {}, {
179
166
  // The `Content-Security-Policy` header is always generated
180
167
  // based on the Custom Application config.
181
168
  'Content-Security-Policy': toHeaderString(mergedCsp)
182
169
  }, ((_applicationConfig$he3 = applicationConfig.headers) === null || _applicationConfig$he3 === void 0 ? void 0 : _applicationConfig$he3.strictTransportSecurity) && {
183
- 'Strict-Transport-Security': _concatInstanceProperty__default["default"](_context10 = [constants.HTTP_SECURITY_HEADERS['Strict-Transport-Security']]).call(_context10, _toConsumableArray(applicationConfig.headers.strictTransportSecurity)).join('; ')
170
+ 'Strict-Transport-Security': [constants.HTTP_SECURITY_HEADERS['Strict-Transport-Security'], ...applicationConfig.headers.strictTransportSecurity].join('; ')
184
171
  }), ((_applicationConfig$he4 = applicationConfig.headers) === null || _applicationConfig$he4 === void 0 ? void 0 : _applicationConfig$he4.permissionsPolicies) && {
185
172
  'Permissions-Policy': toStructuredHeaderString(applicationConfig.headers.permissionsPolicies)
186
173
  });
187
174
  };
188
175
 
189
- var htmlScripts = {
176
+ // https://babeljs.io/blog/2017/09/11/zero-config-with-babel-macros
177
+ const htmlScripts = {
190
178
  "dataLayer": "window.dataLayer=[{\"gtm.start\":(new Date).getTime(),event:\"gtm.js\"}];",
191
179
  "loadingScreen": "window.onAppLoaded=function(){var e=document.querySelector(\"#app-loader\");e&&e.parentNode.removeChild(e)},setTimeout(function(){var e=document.querySelector(\".loading-screen\");e&&e.classList.remove(\"loading-screen--hidden\")},250),setTimeout(function(){var e=document.querySelector(\".long-loading-notice\");e&&e.classList.remove(\"long-loading-notice--hidden\")},2e3);",
192
180
  "publicPath": "window.__dynamicImportHandler__=function(n){return window.app.cdnUrl.replace(/\\/$/,\"\")+\"/\"+n.replace(/^(\\.\\/)?/,\"\")},window.__dynamicImportPreload__=function(n){return n.map(n=>window.app.cdnUrl.replace(/\\/$/,\"\")+\"/\"+n)};"
193
181
  }; // https://babeljs.io/blog/2017/09/11/zero-config-with-babel-macros
194
182
 
195
- var htmlStyles = {
183
+ const htmlStyles = {
196
184
  "loadingScreen": ".loading-screen{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100vh;width:100vw}.loading-screen--hidden{display:none}.loading-screen>*+*{margin:24px 0 0}.loading-spinner{width:32px;height:32px}.long-loading-notice{color:#999;font-family:'Open Sans',sans-serif;font-size:12px}.long-loading-notice--hidden{visibility:hidden}.loading-spinner-circle{fill:#213c45;opacity:.2}@keyframes loading-spinner-animation{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}.loading-spinner-pointer{transform-origin:20px 20px 0;animation:loading-spinner-animation .5s infinite linear}"
197
185
  };
198
186
 
199
- var trimTrailingSlash = function trimTrailingSlash(value) {
200
- return value.replace(/\/$/, '');
201
- };
187
+ const trimTrailingSlash = value => value.replace(/\/$/, '');
202
188
 
203
- var getGtmTrackingScript = function getGtmTrackingScript(gtmId) {
189
+ const getGtmTrackingScript = gtmId => {
204
190
  if (!gtmId) return '';
205
- var url = "https://www.googletagmanager.com/gtm.js?id=".concat(gtmId);
191
+ const url = "https://www.googletagmanager.com/gtm.js?id=".concat(gtmId);
206
192
  return "<script async fetchpriority=\"low\" type=\"text/javascript\" src=\"".concat(url, "\" referrerpolicy=\"no-referrer\"></script>");
207
193
  };
208
194
 
209
- var replaceHtmlPlaceholders = function replaceHtmlPlaceholders(indexHtmlContent, options) {
195
+ const replaceHtmlPlaceholders = (indexHtmlContent, options) => {
210
196
  var _options$headers$Cont, _options$headers;
211
197
 
212
198
  return indexHtmlContent.replace(new RegExp('__CSP__', 'g'), (_options$headers$Cont = (_options$headers = options.headers) === null || _options$headers === void 0 ? void 0 : _options$headers['Content-Security-Policy']) !== null && _options$headers$Cont !== void 0 ? _options$headers$Cont : '').replace(new RegExp('__CDN_URL__', 'g'), options.env.cdnUrl ? // Ensure there is a trailing slash
213
199
  "".concat(trimTrailingSlash(options.env.cdnUrl), "/") : '').replace(new RegExp('__MC_API_URL__', 'g'), trimTrailingSlash(options.env.mcApiUrl)).replace(new RegExp('__APPLICATION_ENVIRONMENT__', 'g'), sanitizeAppEnvironment(options.env)).replace(new RegExp('__GTM_SCRIPT__', 'g'), getGtmTrackingScript(options.env.trackingGtm)).replace(new RegExp('__DATALAYER_JS__', 'g'), "<script>".concat(htmlScripts.dataLayer, "</script>")).replace(new RegExp('__LOADING_SCREEN_JS__', 'g'), "<script>".concat(htmlScripts.loadingScreen, "</script>")).replace(new RegExp('__LOADING_SCREEN_CSS__', 'g'), "<style>".concat(htmlStyles.loadingScreen, "</style>"));
214
200
  };
215
201
 
216
- function compileHtml(_x) {
217
- return _compileHtml.apply(this, arguments);
218
- }
219
-
220
- function _compileHtml() {
221
- _compileHtml = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime__default["default"].mark(function _callee(indexHtmlTemplatePath) {
222
- var applicationConfig$1, compiledHeaders, indexHtmlTemplateContent, indexHtmlContent;
223
- return _regeneratorRuntime__default["default"].wrap(function _callee$(_context) {
224
- while (1) {
225
- switch (_context.prev = _context.next) {
226
- case 0:
227
- applicationConfig$1 = applicationConfig.processConfig();
228
- compiledHeaders = processHeaders(applicationConfig$1);
229
- indexHtmlTemplateContent = fs__default["default"].readFileSync(indexHtmlTemplatePath, 'utf8');
230
- indexHtmlContent = replaceHtmlPlaceholders(indexHtmlTemplateContent, {
231
- env: applicationConfig$1.env,
232
- headers: compiledHeaders
233
- });
234
- return _context.abrupt("return", {
235
- env: applicationConfig$1.env,
236
- headers: compiledHeaders,
237
- indexHtmlContent: indexHtmlContent
238
- });
239
-
240
- case 5:
241
- case "end":
242
- return _context.stop();
243
- }
244
- }
245
- }, _callee);
246
- }));
247
- return _compileHtml.apply(this, arguments);
202
+ async function compileHtml(indexHtmlTemplatePath) {
203
+ const applicationConfig$1 = applicationConfig.processConfig();
204
+ const compiledHeaders = processHeaders(applicationConfig$1);
205
+ const indexHtmlTemplateContent = fs__default["default"].readFileSync(indexHtmlTemplatePath, 'utf8');
206
+ const indexHtmlContent = replaceHtmlPlaceholders(indexHtmlTemplateContent, {
207
+ env: applicationConfig$1.env,
208
+ headers: compiledHeaders
209
+ });
210
+ return {
211
+ env: applicationConfig$1.env,
212
+ headers: compiledHeaders,
213
+ indexHtmlContent
214
+ };
248
215
  }
249
216
 
250
217
  exports.generateTemplate = generateTemplate.generateTemplate;
@@ -1,17 +1,14 @@
1
- import _asyncToGenerator from '@babel/runtime-corejs3/helpers/esm/asyncToGenerator';
2
- import _regeneratorRuntime from '@babel/runtime-corejs3/regenerator';
3
1
  import fs from 'fs';
4
2
  import { processConfig } from '@commercetools-frontend/application-config';
5
- import _slicedToArray from '@babel/runtime-corejs3/helpers/esm/slicedToArray';
6
3
  import _defineProperty from '@babel/runtime-corejs3/helpers/esm/defineProperty';
7
- import _toConsumableArray from '@babel/runtime-corejs3/helpers/esm/toConsumableArray';
4
+ import _slicedToArray from '@babel/runtime-corejs3/helpers/esm/slicedToArray';
8
5
  import _Array$isArray from '@babel/runtime-corejs3/core-js-stable/array/is-array';
9
6
  import _reduceInstanceProperty from '@babel/runtime-corejs3/core-js-stable/instance/reduce';
10
7
  import _Object$assign from '@babel/runtime-corejs3/core-js-stable/object/assign';
11
8
  import _Object$keys from '@babel/runtime-corejs3/core-js-stable/object/keys';
12
- import _concatInstanceProperty from '@babel/runtime-corejs3/core-js-stable/instance/concat';
13
9
  import _mapInstanceProperty from '@babel/runtime-corejs3/core-js-stable/instance/map';
14
10
  import _Object$entries from '@babel/runtime-corejs3/core-js-stable/object/entries';
11
+ import _concatInstanceProperty from '@babel/runtime-corejs3/core-js-stable/instance/concat';
15
12
  import _Object$getOwnPropertySymbols from '@babel/runtime-corejs3/core-js-stable/object/get-own-property-symbols';
16
13
  import _filterInstanceProperty from '@babel/runtime-corejs3/core-js-stable/instance/filter';
17
14
  import _Object$getOwnPropertyDescriptor from '@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptor';
@@ -22,10 +19,10 @@ import _Object$defineProperty from '@babel/runtime-corejs3/core-js-stable/object
22
19
  import { HTTP_SECURITY_HEADERS } from '@commercetools-frontend/constants';
23
20
  import crypto from 'crypto';
24
21
  import serialize from 'serialize-javascript';
25
- export { g as generateTemplate } from './generate-template-3cbf5e40.esm.js';
22
+ export { g as generateTemplate } from './generate-template-3fe062f9.esm.js';
26
23
 
27
24
  function createAssetHash(content) {
28
- var sha256Hash = crypto.createHash('sha256').update(content).digest('base64');
25
+ const sha256Hash = crypto.createHash('sha256').update(content).digest('base64');
29
26
  /**
30
27
  * NOTE:
31
28
  * We prefix the hash function type as the browser
@@ -37,79 +34,72 @@ function createAssetHash(content) {
37
34
  return "sha256-".concat(sha256Hash);
38
35
  }
39
36
 
40
- var sanitizeAppEnvironment = function sanitizeAppEnvironment(env) {
41
- return serialize(env, {
42
- isJSON: true
43
- });
44
- };
37
+ const sanitizeAppEnvironment = env => serialize(env, {
38
+ isJSON: true
39
+ });
45
40
 
46
41
  function ownKeys(object, enumerableOnly) { var keys = _Object$keys(object); if (_Object$getOwnPropertySymbols) { var symbols = _Object$getOwnPropertySymbols(object); enumerableOnly && (symbols = _filterInstanceProperty(symbols).call(symbols, function (sym) { return _Object$getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
47
42
 
48
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var _context11, _context12; var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? _forEachInstanceProperty(_context11 = ownKeys(Object(source), !0)).call(_context11, function (key) { _defineProperty(target, key, source[key]); }) : _Object$getOwnPropertyDescriptors ? _Object$defineProperties(target, _Object$getOwnPropertyDescriptors(source)) : _forEachInstanceProperty(_context12 = ownKeys(Object(source))).call(_context12, function (key) { _Object$defineProperty(target, key, _Object$getOwnPropertyDescriptor(source, key)); }); } return target; }
49
-
50
- var htmlScripts$1 = {
43
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var _context9, _context10; var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? _forEachInstanceProperty(_context9 = ownKeys(Object(source), !0)).call(_context9, function (key) { _defineProperty(target, key, source[key]); }) : _Object$getOwnPropertyDescriptors ? _Object$defineProperties(target, _Object$getOwnPropertyDescriptors(source)) : _forEachInstanceProperty(_context10 = ownKeys(Object(source))).call(_context10, function (key) { _Object$defineProperty(target, key, _Object$getOwnPropertyDescriptor(source, key)); }); } return target; }
44
+ const htmlScripts$1 = {
51
45
  "dataLayer": "window.dataLayer=[{\"gtm.start\":(new Date).getTime(),event:\"gtm.js\"}];",
52
46
  "loadingScreen": "window.onAppLoaded=function(){var e=document.querySelector(\"#app-loader\");e&&e.parentNode.removeChild(e)},setTimeout(function(){var e=document.querySelector(\".loading-screen\");e&&e.classList.remove(\"loading-screen--hidden\")},250),setTimeout(function(){var e=document.querySelector(\".long-loading-notice\");e&&e.classList.remove(\"long-loading-notice--hidden\")},2e3);",
53
47
  "publicPath": "window.__dynamicImportHandler__=function(n){return window.app.cdnUrl.replace(/\\/$/,\"\")+\"/\"+n.replace(/^(\\.\\/)?/,\"\")},window.__dynamicImportPreload__=function(n){return n.map(n=>window.app.cdnUrl.replace(/\\/$/,\"\")+\"/\"+n)};"
54
48
  };
55
49
 
56
- var toArray = function toArray(value) {
57
- return _Array$isArray(value) ? value : [value];
58
- };
50
+ const toArray = value => _Array$isArray(value) ? value : [value];
59
51
 
60
- var mergeCspDirectives = function mergeCspDirectives() {
52
+ const mergeCspDirectives = function () {
61
53
  for (var _len = arguments.length, directives = new Array(_len), _key = 0; _key < _len; _key++) {
62
54
  directives[_key] = arguments[_key];
63
55
  }
64
56
 
65
- return _reduceInstanceProperty(directives).call(directives, function (mergedCsp, csp) {
57
+ return _reduceInstanceProperty(directives).call(directives, (mergedCsp, csp) => {
66
58
  var _context;
67
59
 
68
- return _Object$assign(mergedCsp, _reduceInstanceProperty(_context = _Object$keys(csp)).call(_context, function (acc, directiveKey) {
69
- var _context2;
70
-
71
- return _Object$assign(acc, _defineProperty({}, directiveKey, _concatInstanceProperty(_context2 = []).call(_context2, _toConsumableArray(toArray(mergedCsp[directiveKey] ? mergedCsp[directiveKey] : [])), _toConsumableArray(toArray(csp[directiveKey])))));
72
- }, {}));
60
+ return _Object$assign(mergedCsp, _reduceInstanceProperty(_context = _Object$keys(csp)).call(_context, (acc, directiveKey) => _Object$assign(acc, {
61
+ [directiveKey]: [...toArray(mergedCsp[directiveKey] ? mergedCsp[directiveKey] : []), ...toArray(csp[directiveKey])]
62
+ }), {}));
73
63
  }, {});
74
64
  };
75
65
 
76
- var toHeaderString = function toHeaderString() {
77
- var _context3;
66
+ const toHeaderString = function () {
67
+ var _context2;
78
68
 
79
- var directives = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
80
- return _mapInstanceProperty(_context3 = _Object$entries(directives)).call(_context3, function (_ref) {
81
- var _context4;
69
+ let directives = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
70
+ return _mapInstanceProperty(_context2 = _Object$entries(directives)).call(_context2, _ref => {
71
+ var _context3;
82
72
 
83
- var _ref2 = _slicedToArray(_ref, 2),
73
+ let _ref2 = _slicedToArray(_ref, 2),
84
74
  directive = _ref2[0],
85
75
  value = _ref2[1];
86
76
 
87
- return _concatInstanceProperty(_context4 = "".concat(directive, " ")).call(_context4, _Array$isArray(value) ? value.join(' ') : value);
77
+ return _concatInstanceProperty(_context3 = "".concat(directive, " ")).call(_context3, _Array$isArray(value) ? value.join(' ') : value);
88
78
  }).join('; ');
89
79
  };
90
80
 
91
- var toStructuredHeaderString = function toStructuredHeaderString() {
92
- var _context5;
81
+ const toStructuredHeaderString = function () {
82
+ var _context4;
93
83
 
94
- var directives = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
95
- return _mapInstanceProperty(_context5 = _Object$entries(directives)).call(_context5, function (_ref3) {
96
- var _context6;
84
+ let directives = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
85
+ return _mapInstanceProperty(_context4 = _Object$entries(directives)).call(_context4, _ref3 => {
86
+ var _context5;
97
87
 
98
- var _ref4 = _slicedToArray(_ref3, 2),
88
+ let _ref4 = _slicedToArray(_ref3, 2),
99
89
  directive = _ref4[0],
100
90
  value = _ref4[1];
101
91
 
102
- return _concatInstanceProperty(_context6 = "".concat(directive, "=")).call(_context6, _Array$isArray(value) ? value.join(' ') : value);
92
+ return _concatInstanceProperty(_context5 = "".concat(directive, "=")).call(_context5, _Array$isArray(value) ? value.join(' ') : value);
103
93
  }).join(', ');
104
94
  };
105
95
 
106
- var processHeaders = function processHeaders(applicationConfig) {
107
- var _context7, _context8, _context9, _applicationConfig$he, _applicationConfig$he2, _applicationConfig$he3, _context10, _applicationConfig$he4;
96
+ const processHeaders = applicationConfig => {
97
+ var _context6, _context7, _context8, _applicationConfig$he, _applicationConfig$he2, _applicationConfig$he3, _applicationConfig$he4;
108
98
 
109
- var isMcDevEnv = applicationConfig.env.env === 'development'; // List hashes for injected inline scripts.
99
+ const isMcDevEnv = applicationConfig.env.env === 'development'; // List hashes for injected inline scripts.
110
100
  // https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/script-src
111
101
 
112
- var htmlScriptsHashes = [createAssetHash(htmlScripts$1.loadingScreen), createAssetHash("window.app = ".concat(sanitizeAppEnvironment(applicationConfig.env), ";")), createAssetHash(htmlScripts$1.publicPath), createAssetHash(htmlScripts$1.dataLayer)]; // // List hashes for injected inline styles.
102
+ const htmlScriptsHashes = [createAssetHash(htmlScripts$1.loadingScreen), createAssetHash("window.app = ".concat(sanitizeAppEnvironment(applicationConfig.env), ";")), createAssetHash(htmlScripts$1.publicPath), createAssetHash(htmlScripts$1.dataLayer)]; // // List hashes for injected inline styles.
113
103
  // // https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/style-src
114
104
  // const htmlStylesHashes = [createAssetHash(htmlStyles.loadingScreen)];
115
105
 
@@ -118,17 +108,15 @@ var processHeaders = function processHeaders(applicationConfig) {
118
108
  * https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy
119
109
  */
120
110
 
121
- var cspDirectives = _Object$assign({
111
+ const cspDirectives = _Object$assign({
122
112
  'default-src': "'none'",
123
- 'script-src': _concatInstanceProperty(_context7 = ["'self'", 'www.googletagmanager.com/gtm.js', 'www.google-analytics.com/analytics.js']).call(_context7, isMcDevEnv ? // Allow webpack to load source maps on runtime when errors occur
113
+ 'script-src': _concatInstanceProperty(_context6 = ["'self'", 'www.googletagmanager.com/gtm.js', 'www.google-analytics.com/analytics.js']).call(_context6, isMcDevEnv ? // Allow webpack to load source maps on runtime when errors occur
124
114
  // using script tags
125
- ['localhost:*', "'unsafe-inline'"] : _mapInstanceProperty(htmlScriptsHashes).call(htmlScriptsHashes, function (assetHash) {
126
- return "'".concat(assetHash, "'");
127
- })),
128
- 'connect-src': _concatInstanceProperty(_context8 = ["'self'", 'app.launchdarkly.com', 'clientstream.launchdarkly.com', 'events.launchdarkly.com', 'app.getsentry.com', // Match all attempts to load from any subdomain of `sentry.io`
129
- '*.sentry.io', 'www.google-analytics.com']).call(_context8, isMcDevEnv ? ['ws:', 'localhost:8080', 'webpack-internal:'] : []),
115
+ ['localhost:*', "'unsafe-inline'"] : _mapInstanceProperty(htmlScriptsHashes).call(htmlScriptsHashes, assetHash => "'".concat(assetHash, "'"))),
116
+ 'connect-src': _concatInstanceProperty(_context7 = ["'self'", 'app.launchdarkly.com', 'clientstream.launchdarkly.com', 'events.launchdarkly.com', 'app.getsentry.com', // Match all attempts to load from any subdomain of `sentry.io`
117
+ '*.sentry.io', 'www.google-analytics.com']).call(_context7, isMcDevEnv ? ['ws:', 'localhost:8080', 'webpack-internal:'] : []),
130
118
  'img-src': ['*', 'data:'],
131
- 'style-src': _concatInstanceProperty(_context9 = ["'self'", 'fonts.googleapis.com', 'data:']).call(_context9, // TODO: investigate what needs to be done to avoid unsafe-inline styles
119
+ 'style-src': _concatInstanceProperty(_context8 = ["'self'", 'fonts.googleapis.com', 'data:']).call(_context8, // TODO: investigate what needs to be done to avoid unsafe-inline styles
132
120
  // https://github.com/commercetools/merchant-center-frontend/pull/5223#discussion_r210367636
133
121
  ["'unsafe-inline'"] // TODO: enable this once we can avoid unsafe-inline
134
122
  // htmlStylesHashes.map(assetHash => `'${assetHash}'`)
@@ -149,77 +137,57 @@ var processHeaders = function processHeaders(applicationConfig) {
149
137
  ); // Recursively merge the directives
150
138
 
151
139
 
152
- var mergedCsp = mergeCspDirectives(cspDirectives, (_applicationConfig$he = (_applicationConfig$he2 = applicationConfig.headers) === null || _applicationConfig$he2 === void 0 ? void 0 : _applicationConfig$he2.csp) !== null && _applicationConfig$he !== void 0 ? _applicationConfig$he : {});
140
+ const mergedCsp = mergeCspDirectives(cspDirectives, (_applicationConfig$he = (_applicationConfig$he2 = applicationConfig.headers) === null || _applicationConfig$he2 === void 0 ? void 0 : _applicationConfig$he2.csp) !== null && _applicationConfig$he !== void 0 ? _applicationConfig$he : {});
153
141
  return _objectSpread(_objectSpread(_objectSpread({}, HTTP_SECURITY_HEADERS), {}, {
154
142
  // The `Content-Security-Policy` header is always generated
155
143
  // based on the Custom Application config.
156
144
  'Content-Security-Policy': toHeaderString(mergedCsp)
157
145
  }, ((_applicationConfig$he3 = applicationConfig.headers) === null || _applicationConfig$he3 === void 0 ? void 0 : _applicationConfig$he3.strictTransportSecurity) && {
158
- 'Strict-Transport-Security': _concatInstanceProperty(_context10 = [HTTP_SECURITY_HEADERS['Strict-Transport-Security']]).call(_context10, _toConsumableArray(applicationConfig.headers.strictTransportSecurity)).join('; ')
146
+ 'Strict-Transport-Security': [HTTP_SECURITY_HEADERS['Strict-Transport-Security'], ...applicationConfig.headers.strictTransportSecurity].join('; ')
159
147
  }), ((_applicationConfig$he4 = applicationConfig.headers) === null || _applicationConfig$he4 === void 0 ? void 0 : _applicationConfig$he4.permissionsPolicies) && {
160
148
  'Permissions-Policy': toStructuredHeaderString(applicationConfig.headers.permissionsPolicies)
161
149
  });
162
150
  };
163
151
 
164
- var htmlScripts = {
152
+ // https://babeljs.io/blog/2017/09/11/zero-config-with-babel-macros
153
+ const htmlScripts = {
165
154
  "dataLayer": "window.dataLayer=[{\"gtm.start\":(new Date).getTime(),event:\"gtm.js\"}];",
166
155
  "loadingScreen": "window.onAppLoaded=function(){var e=document.querySelector(\"#app-loader\");e&&e.parentNode.removeChild(e)},setTimeout(function(){var e=document.querySelector(\".loading-screen\");e&&e.classList.remove(\"loading-screen--hidden\")},250),setTimeout(function(){var e=document.querySelector(\".long-loading-notice\");e&&e.classList.remove(\"long-loading-notice--hidden\")},2e3);",
167
156
  "publicPath": "window.__dynamicImportHandler__=function(n){return window.app.cdnUrl.replace(/\\/$/,\"\")+\"/\"+n.replace(/^(\\.\\/)?/,\"\")},window.__dynamicImportPreload__=function(n){return n.map(n=>window.app.cdnUrl.replace(/\\/$/,\"\")+\"/\"+n)};"
168
157
  }; // https://babeljs.io/blog/2017/09/11/zero-config-with-babel-macros
169
158
 
170
- var htmlStyles = {
159
+ const htmlStyles = {
171
160
  "loadingScreen": ".loading-screen{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100vh;width:100vw}.loading-screen--hidden{display:none}.loading-screen>*+*{margin:24px 0 0}.loading-spinner{width:32px;height:32px}.long-loading-notice{color:#999;font-family:'Open Sans',sans-serif;font-size:12px}.long-loading-notice--hidden{visibility:hidden}.loading-spinner-circle{fill:#213c45;opacity:.2}@keyframes loading-spinner-animation{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}.loading-spinner-pointer{transform-origin:20px 20px 0;animation:loading-spinner-animation .5s infinite linear}"
172
161
  };
173
162
 
174
- var trimTrailingSlash = function trimTrailingSlash(value) {
175
- return value.replace(/\/$/, '');
176
- };
163
+ const trimTrailingSlash = value => value.replace(/\/$/, '');
177
164
 
178
- var getGtmTrackingScript = function getGtmTrackingScript(gtmId) {
165
+ const getGtmTrackingScript = gtmId => {
179
166
  if (!gtmId) return '';
180
- var url = "https://www.googletagmanager.com/gtm.js?id=".concat(gtmId);
167
+ const url = "https://www.googletagmanager.com/gtm.js?id=".concat(gtmId);
181
168
  return "<script async fetchpriority=\"low\" type=\"text/javascript\" src=\"".concat(url, "\" referrerpolicy=\"no-referrer\"></script>");
182
169
  };
183
170
 
184
- var replaceHtmlPlaceholders = function replaceHtmlPlaceholders(indexHtmlContent, options) {
171
+ const replaceHtmlPlaceholders = (indexHtmlContent, options) => {
185
172
  var _options$headers$Cont, _options$headers;
186
173
 
187
174
  return indexHtmlContent.replace(new RegExp('__CSP__', 'g'), (_options$headers$Cont = (_options$headers = options.headers) === null || _options$headers === void 0 ? void 0 : _options$headers['Content-Security-Policy']) !== null && _options$headers$Cont !== void 0 ? _options$headers$Cont : '').replace(new RegExp('__CDN_URL__', 'g'), options.env.cdnUrl ? // Ensure there is a trailing slash
188
175
  "".concat(trimTrailingSlash(options.env.cdnUrl), "/") : '').replace(new RegExp('__MC_API_URL__', 'g'), trimTrailingSlash(options.env.mcApiUrl)).replace(new RegExp('__APPLICATION_ENVIRONMENT__', 'g'), sanitizeAppEnvironment(options.env)).replace(new RegExp('__GTM_SCRIPT__', 'g'), getGtmTrackingScript(options.env.trackingGtm)).replace(new RegExp('__DATALAYER_JS__', 'g'), "<script>".concat(htmlScripts.dataLayer, "</script>")).replace(new RegExp('__LOADING_SCREEN_JS__', 'g'), "<script>".concat(htmlScripts.loadingScreen, "</script>")).replace(new RegExp('__LOADING_SCREEN_CSS__', 'g'), "<style>".concat(htmlStyles.loadingScreen, "</style>"));
189
176
  };
190
177
 
191
- function compileHtml(_x) {
192
- return _compileHtml.apply(this, arguments);
193
- }
194
-
195
- function _compileHtml() {
196
- _compileHtml = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(indexHtmlTemplatePath) {
197
- var applicationConfig, compiledHeaders, indexHtmlTemplateContent, indexHtmlContent;
198
- return _regeneratorRuntime.wrap(function _callee$(_context) {
199
- while (1) {
200
- switch (_context.prev = _context.next) {
201
- case 0:
202
- applicationConfig = processConfig();
203
- compiledHeaders = processHeaders(applicationConfig);
204
- indexHtmlTemplateContent = fs.readFileSync(indexHtmlTemplatePath, 'utf8');
205
- indexHtmlContent = replaceHtmlPlaceholders(indexHtmlTemplateContent, {
206
- env: applicationConfig.env,
207
- headers: compiledHeaders
208
- });
209
- return _context.abrupt("return", {
210
- env: applicationConfig.env,
211
- headers: compiledHeaders,
212
- indexHtmlContent: indexHtmlContent
213
- });
214
-
215
- case 5:
216
- case "end":
217
- return _context.stop();
218
- }
219
- }
220
- }, _callee);
221
- }));
222
- return _compileHtml.apply(this, arguments);
178
+ async function compileHtml(indexHtmlTemplatePath) {
179
+ const applicationConfig = processConfig();
180
+ const compiledHeaders = processHeaders(applicationConfig);
181
+ const indexHtmlTemplateContent = fs.readFileSync(indexHtmlTemplatePath, 'utf8');
182
+ const indexHtmlContent = replaceHtmlPlaceholders(indexHtmlTemplateContent, {
183
+ env: applicationConfig.env,
184
+ headers: compiledHeaders
185
+ });
186
+ return {
187
+ env: applicationConfig.env,
188
+ headers: compiledHeaders,
189
+ indexHtmlContent
190
+ };
223
191
  }
224
192
 
225
193
  export { compileHtml, processHeaders, replaceHtmlPlaceholders };
@@ -1,12 +1,12 @@
1
1
  'use strict';
2
2
 
3
3
  // https://babeljs.io/blog/2017/09/11/zero-config-with-babel-macros
4
- var htmlDocs = {
4
+ const htmlDocs = {
5
5
  "application": "<!DOCTYPE html>\n<html lang=\"en\">\n <head>\n <meta charset=\"utf-8\">\n <meta name=\"viewport\" content=\"width=device-width, initial-scale=1, maximum-scale=1\">\n <meta name=\"referrer\" content=\"no-referrer\">\n\n <meta http-equiv=\"Content-Security-Policy\" content=\"__CSP__\">\n\n <!-- Preconnects -->\n <link rel=\"preconnect\" href=\"__CDN_URL__\">\n <link rel=\"preconnect\" href=\"__MC_API_URL__\">\n <link rel=\"preconnect\" href=\"https://fonts.googleapis.com\">\n <link rel=\"preconnect\" href=\"https://fonts.gstatic.com\" crossorigin>\n <link rel=\"preconnect\" href=\"https://app.launchdarkly.com\">\n <link rel=\"preconnect\" href=\"https://clientstream.launchdarkly.com\">\n <link rel=\"preconnect\" href=\"https://events.launchdarkly.com\">\n\n <!-- Fav and touch icons -->\n <link rel=\"shortcut icon\" type=\"image/png\" href=\"__CDN_URL__favicon.png\">\n <!-- Standard iPhone -->\n <link rel=\"apple-touch-icon\" sizes=\"57x57\" href=\"__CDN_URL__favicon_57x57px.png\">\n <link rel=\"apple-touch-icon-precomposed\" sizes=\"57x57\" href=\"__CDN_URL__favicon_57x57px.png\">\n <!-- Standard iPad -->\n <link rel=\"apple-touch-icon\" sizes=\"72x72\" href=\"__CDN_URL__favicon_72x72px.png\">\n <link rel=\"apple-touch-icon-precomposed\" sizes=\"72x72\" href=\"__CDN_URL__favicon_72x72px.png\">\n <!-- Retina iPad -->\n <link rel=\"apple-touch-icon\" sizes=\"144x144\" href=\"__CDN_URL__favicon_144x144px.png\">\n <link rel=\"apple-touch-icon-precomposed\" sizes=\"144x144\" href=\"__CDN_URL__favicon_144x144px.png\">\n\n <!-- Fonts -->\n <link href=\"https://fonts.googleapis.com/css2?family=Inter:slnt,wght@-10,400;-10,500;0,400;0,500;0,600;0,700&family=Open+Sans:ital,wght@0,300;0,400;0,700;1,400;1,700&display=swap\" rel=\"stylesheet\">\n\n __APPLICATION_CSS_IMPORTS__\n\n <title>Merchant Center</title>\n </head>\n <body>\n <noscript>You need to enable JavaScript to run this app.</noscript>\n\n <div id=\"app-loader\">\n <!-- Loading screen styles -->\n __LOADING_SCREEN_CSS__\n\n <div class=\"loading-screen loading-screen--hidden\">\n <svg class=\"loading-spinner\" viewBox=\"0 0 40 40\">\n <path class=\"loading-spinner-circle\" d=\"M20.201,5.169c-8.254,0-14.946,6.692-14.946,14.946c0,8.255,6.692,14.946, 14.946,14.946 s14.946-6.691,14.946-14.946C35.146,11.861,28.455,5.169,20.201,5.169z M20.201,31.749c-6.425,0-11.634-5.208-11.634-11.634c0-6.425,5.209-11.634,11.634-11.634c6.425,0,11.633,5.209,11.633,11.634C31.834,26.541,26.626,31.749,20.201,31.749z\"></path>\n <path class=\"loading-spinner-pointer\" d=\"M26.013,10.047l1.654-2.866c-2.198-1.272-4.743-2.012-7.466-2.012h0v3.312h0 C22.32,8.481,24.301,9.057,26.013,10.047z\"></path>\n </svg>\n <svg width=\"200\" height=\"29\" xmlns=\"http://www.w3.org/2000/svg\">\n <g fill=\"none\" fill-rule=\"evenodd\">\n <path d=\"M38.342 20.486c1.102 0 1.738-.073 3.133-.367l.343 2.35c-1.077.293-2.276.44-3.476.44-5.358 0-6.9-3.353-6.9-7.268.049-3.818 2.35-7.048 6.876-7.048 1.2 0 2.227.147 3.475.465l-.465 2.325c-1.321-.294-2.104-.342-2.936-.342-2.839.048-4.234 2.153-4.283 4.6 0 2.422.906 4.845 4.233 4.845M49.304 20.51c2.814-.024 3.72-2.3 3.72-4.77-.024-2.253-.98-4.798-3.744-4.798-2.692.025-3.745 2.521-3.745 4.797 0 2.569 1.126 4.771 3.769 4.771zm0-11.917c4.405.025 6.363 3.304 6.363 7.146 0 3.744-1.689 7.096-6.387 7.12-4.601-.048-6.363-3.376-6.363-7.12 0-3.842 1.982-7.097 6.387-7.146zM73.896 22.615v-8.81c0-2.226-.832-2.838-2.227-2.838-.954 0-2.031.539-3.01 1.346.05.294.073.88.073 1.052v9.25h-2.74v-8.907c0-2.227-.661-2.766-2.056-2.766-.88 0-2.104.588-3.157 1.371v10.302h-2.716V8.838h2.716v1.174c.832-.66 2.154-1.419 3.597-1.443 1.91-.024 3.01.636 3.623 1.664 1.125-1.052 2.79-1.64 4.062-1.664 4.478-.074 4.55 3.523 4.55 5.04v9.006h-2.715M95.427 22.615v-8.81c0-2.226-.831-2.838-2.226-2.838-.955 0-2.032.539-3.01 1.346.049.294.073.88.073 1.052v9.25h-2.74v-8.907c0-2.227-.662-2.766-2.057-2.766-.88 0-2.104.588-3.157 1.371v10.302h-2.716V8.838h2.716v1.174c.833-.66 2.154-1.419 3.598-1.443 1.908-.024 3.01.636 3.622 1.664 1.126-1.052 2.79-1.64 4.062-1.664 4.478-.074 4.551 3.523 4.551 5.04v9.006h-2.716M103.035 14.124h6.044c-.098-2.79-1.492-3.353-2.789-3.353-2.056-.024-3.01 1.37-3.255 3.353zm7.782 5.97l.416 2.227c-1.224.416-2.912.612-4.233.612-5.433 0-6.755-3.646-6.755-7.292s1.616-7.023 6.167-7.023c2.814 0 5.163 1.737 5.188 6.166l-.025 1.444h-8.662c.049 2.692 1.493 4.331 4.209 4.331 1.076 0 2.202-.122 3.695-.465zM121.582 11.358a7.379 7.379 0 0 0-1.762-.195c-1.689-.025-2.57.808-3.206 1.468v9.984h-2.716V8.838h2.716v1.223a4.503 4.503 0 0 1 3.182-1.395 6.356 6.356 0 0 1 2.275.368l-.489 2.324M129.533 20.486c1.102 0 1.738-.073 3.132-.367l.344 2.35c-1.077.293-2.276.44-3.476.44-5.359 0-6.9-3.353-6.9-7.268.049-3.818 2.349-7.048 6.876-7.048 1.2 0 2.227.147 3.475.465l-.465 2.325c-1.322-.294-2.105-.342-2.936-.342-2.839.048-4.234 2.153-4.284 4.6 0 2.422.907 4.845 4.234 4.845M136.898 14.124h6.045c-.098-2.79-1.493-3.353-2.79-3.353-2.056-.024-3.01 1.37-3.255 3.353zm7.782 5.97l.416 2.227c-1.224.416-2.912.612-4.234.612-5.432 0-6.754-3.646-6.754-7.292s1.616-7.023 6.167-7.023c2.815 0 5.164 1.737 5.188 6.166l-.024 1.444h-8.663c.049 2.692 1.493 4.331 4.209 4.331 1.076 0 2.202-.122 3.695-.465zM154.662 11.09h-3.744v6.68c0 1.394.171 2.374 1.59 2.569.784.074 1.591 0 2.374-.098l.171 2.35c-.807.146-1.957.17-2.422.17-3.206-.121-4.405-1.761-4.405-4.33v-7.342h-1.982V9.205l1.982-.22V5.779h2.692v3.06h3.744v2.25M162.565 20.51c2.815-.024 3.72-2.3 3.72-4.77-.024-2.253-.979-4.798-3.744-4.798-2.692.025-3.745 2.521-3.745 4.797 0 2.569 1.127 4.771 3.77 4.771zm0-11.917c4.405.025 6.363 3.304 6.363 7.146 0 3.744-1.689 7.096-6.387 7.12-4.6-.048-6.363-3.376-6.363-7.12 0-3.842 1.982-7.097 6.387-7.146zM177.197 20.51c2.814-.024 3.72-2.3 3.72-4.77-.025-2.253-.98-4.798-3.744-4.798-2.692.025-3.745 2.521-3.745 4.797 0 2.569 1.126 4.771 3.769 4.771zm0-11.917c4.405.025 6.363 3.304 6.363 7.146 0 3.744-1.69 7.096-6.387 7.12-4.601-.048-6.363-3.376-6.363-7.12 0-3.842 1.982-7.097 6.387-7.146zM185.71 22.615h2.619V3.919h-2.619zM191.094 19.948c1.542.391 2.985.587 3.89.587 1.078 0 2.179-.22 2.252-1.517.074-1.37-1.346-1.787-2.96-2.472-1.836-.758-3.818-1.786-3.77-4.331.05-1.273.808-3.769 4.87-3.646 1.224.024 2.692.22 3.915.538l-.464 2.251c-1.444-.342-2.52-.49-3.573-.513-1.175 0-2.08.367-2.129 1.468-.024.93.71 1.42 2.52 2.153 1.836.759 4.43 1.738 4.308 4.625-.074 1.835-1.273 3.842-4.968 3.793-1.175-.024-3.059-.171-4.453-.66l.562-2.276\" fill=\"#27373C\"/>\n <path d=\"M.349 22.312a.601.601 0 0 0-.002 1.091l11.663 5.46c.156.074.325.112.493.113V16.787c-.173 0-.346.037-.508.112L.35 22.312\" fill=\"#E3712C\"/>\n <path d=\"M12.503 16.787v12.19c.18.003.361-.035.528-.113l11.63-5.444a.6.6 0 0 0-.002-1.09L13.011 16.9a1.2 1.2 0 0 0-.508-.113\" fill=\"#EBA13B\"/>\n <path d=\"M0 6.363a.596.596 0 0 0 .347.546l11.663 5.46a1.194 1.194 0 0 0 .93.039l.327-.152c1.203-.56.406-.187 11.394-5.33a.6.6 0 0 0-.002-1.091L13.011.405a1.205 1.205 0 0 0-1.016 0L.35 5.818A.603.603 0 0 0 0 6.363\" fill=\"#23A486\"/>\n <path d=\"M12.503 13.168v3.62c-.173 0-.346.036-.508.111L.35 22.312a.601.601 0 0 0-.348.545L0 6.77v-.407c0 .234.134.447.346.546l11.664 5.46a1.194 1.194 0 0 0 .93.039l-.02.009c-.362.167-.417.334-.417.75\" fill=\"#CCCCC7\"/>\n </g>\n </svg>\n <p class=\"long-loading-notice long-loading-notice--hidden\">Sorry, this is taking an unusually long time.</p>\n </div>\n </div>\n <div id=\"app\"></div>\n\n <!-- Loading screen handling -->\n __LOADING_SCREEN_JS__\n\n <!-- Application globals -->\n <script>window.app = __APPLICATION_ENVIRONMENT__;</script>\n\n <!-- Tracking scripts (load before application bundles) -->\n __DATALAYER_JS__\n __GTM_SCRIPT__\n\n <!-- Main application chunks -->\n __APPLICATION_SCRIPT_IMPORTS__\n </body>\n</html>\n"
6
6
  };
7
7
 
8
8
  function generateTemplate(_ref) {
9
- var _ref$cssImports = _ref.cssImports,
9
+ let _ref$cssImports = _ref.cssImports,
10
10
  cssImports = _ref$cssImports === void 0 ? [] : _ref$cssImports,
11
11
  _ref$scriptImports = _ref.scriptImports,
12
12
  scriptImports = _ref$scriptImports === void 0 ? [] : _ref$scriptImports;
@@ -1,10 +1,10 @@
1
1
  // https://babeljs.io/blog/2017/09/11/zero-config-with-babel-macros
2
- var htmlDocs = {
2
+ const htmlDocs = {
3
3
  "application": "<!DOCTYPE html>\n<html lang=\"en\">\n <head>\n <meta charset=\"utf-8\">\n <meta name=\"viewport\" content=\"width=device-width, initial-scale=1, maximum-scale=1\">\n <meta name=\"referrer\" content=\"no-referrer\">\n\n <meta http-equiv=\"Content-Security-Policy\" content=\"__CSP__\">\n\n <!-- Preconnects -->\n <link rel=\"preconnect\" href=\"__CDN_URL__\">\n <link rel=\"preconnect\" href=\"__MC_API_URL__\">\n <link rel=\"preconnect\" href=\"https://fonts.googleapis.com\">\n <link rel=\"preconnect\" href=\"https://fonts.gstatic.com\" crossorigin>\n <link rel=\"preconnect\" href=\"https://app.launchdarkly.com\">\n <link rel=\"preconnect\" href=\"https://clientstream.launchdarkly.com\">\n <link rel=\"preconnect\" href=\"https://events.launchdarkly.com\">\n\n <!-- Fav and touch icons -->\n <link rel=\"shortcut icon\" type=\"image/png\" href=\"__CDN_URL__favicon.png\">\n <!-- Standard iPhone -->\n <link rel=\"apple-touch-icon\" sizes=\"57x57\" href=\"__CDN_URL__favicon_57x57px.png\">\n <link rel=\"apple-touch-icon-precomposed\" sizes=\"57x57\" href=\"__CDN_URL__favicon_57x57px.png\">\n <!-- Standard iPad -->\n <link rel=\"apple-touch-icon\" sizes=\"72x72\" href=\"__CDN_URL__favicon_72x72px.png\">\n <link rel=\"apple-touch-icon-precomposed\" sizes=\"72x72\" href=\"__CDN_URL__favicon_72x72px.png\">\n <!-- Retina iPad -->\n <link rel=\"apple-touch-icon\" sizes=\"144x144\" href=\"__CDN_URL__favicon_144x144px.png\">\n <link rel=\"apple-touch-icon-precomposed\" sizes=\"144x144\" href=\"__CDN_URL__favicon_144x144px.png\">\n\n <!-- Fonts -->\n <link href=\"https://fonts.googleapis.com/css2?family=Inter:slnt,wght@-10,400;-10,500;0,400;0,500;0,600;0,700&family=Open+Sans:ital,wght@0,300;0,400;0,700;1,400;1,700&display=swap\" rel=\"stylesheet\">\n\n __APPLICATION_CSS_IMPORTS__\n\n <title>Merchant Center</title>\n </head>\n <body>\n <noscript>You need to enable JavaScript to run this app.</noscript>\n\n <div id=\"app-loader\">\n <!-- Loading screen styles -->\n __LOADING_SCREEN_CSS__\n\n <div class=\"loading-screen loading-screen--hidden\">\n <svg class=\"loading-spinner\" viewBox=\"0 0 40 40\">\n <path class=\"loading-spinner-circle\" d=\"M20.201,5.169c-8.254,0-14.946,6.692-14.946,14.946c0,8.255,6.692,14.946, 14.946,14.946 s14.946-6.691,14.946-14.946C35.146,11.861,28.455,5.169,20.201,5.169z M20.201,31.749c-6.425,0-11.634-5.208-11.634-11.634c0-6.425,5.209-11.634,11.634-11.634c6.425,0,11.633,5.209,11.633,11.634C31.834,26.541,26.626,31.749,20.201,31.749z\"></path>\n <path class=\"loading-spinner-pointer\" d=\"M26.013,10.047l1.654-2.866c-2.198-1.272-4.743-2.012-7.466-2.012h0v3.312h0 C22.32,8.481,24.301,9.057,26.013,10.047z\"></path>\n </svg>\n <svg width=\"200\" height=\"29\" xmlns=\"http://www.w3.org/2000/svg\">\n <g fill=\"none\" fill-rule=\"evenodd\">\n <path d=\"M38.342 20.486c1.102 0 1.738-.073 3.133-.367l.343 2.35c-1.077.293-2.276.44-3.476.44-5.358 0-6.9-3.353-6.9-7.268.049-3.818 2.35-7.048 6.876-7.048 1.2 0 2.227.147 3.475.465l-.465 2.325c-1.321-.294-2.104-.342-2.936-.342-2.839.048-4.234 2.153-4.283 4.6 0 2.422.906 4.845 4.233 4.845M49.304 20.51c2.814-.024 3.72-2.3 3.72-4.77-.024-2.253-.98-4.798-3.744-4.798-2.692.025-3.745 2.521-3.745 4.797 0 2.569 1.126 4.771 3.769 4.771zm0-11.917c4.405.025 6.363 3.304 6.363 7.146 0 3.744-1.689 7.096-6.387 7.12-4.601-.048-6.363-3.376-6.363-7.12 0-3.842 1.982-7.097 6.387-7.146zM73.896 22.615v-8.81c0-2.226-.832-2.838-2.227-2.838-.954 0-2.031.539-3.01 1.346.05.294.073.88.073 1.052v9.25h-2.74v-8.907c0-2.227-.661-2.766-2.056-2.766-.88 0-2.104.588-3.157 1.371v10.302h-2.716V8.838h2.716v1.174c.832-.66 2.154-1.419 3.597-1.443 1.91-.024 3.01.636 3.623 1.664 1.125-1.052 2.79-1.64 4.062-1.664 4.478-.074 4.55 3.523 4.55 5.04v9.006h-2.715M95.427 22.615v-8.81c0-2.226-.831-2.838-2.226-2.838-.955 0-2.032.539-3.01 1.346.049.294.073.88.073 1.052v9.25h-2.74v-8.907c0-2.227-.662-2.766-2.057-2.766-.88 0-2.104.588-3.157 1.371v10.302h-2.716V8.838h2.716v1.174c.833-.66 2.154-1.419 3.598-1.443 1.908-.024 3.01.636 3.622 1.664 1.126-1.052 2.79-1.64 4.062-1.664 4.478-.074 4.551 3.523 4.551 5.04v9.006h-2.716M103.035 14.124h6.044c-.098-2.79-1.492-3.353-2.789-3.353-2.056-.024-3.01 1.37-3.255 3.353zm7.782 5.97l.416 2.227c-1.224.416-2.912.612-4.233.612-5.433 0-6.755-3.646-6.755-7.292s1.616-7.023 6.167-7.023c2.814 0 5.163 1.737 5.188 6.166l-.025 1.444h-8.662c.049 2.692 1.493 4.331 4.209 4.331 1.076 0 2.202-.122 3.695-.465zM121.582 11.358a7.379 7.379 0 0 0-1.762-.195c-1.689-.025-2.57.808-3.206 1.468v9.984h-2.716V8.838h2.716v1.223a4.503 4.503 0 0 1 3.182-1.395 6.356 6.356 0 0 1 2.275.368l-.489 2.324M129.533 20.486c1.102 0 1.738-.073 3.132-.367l.344 2.35c-1.077.293-2.276.44-3.476.44-5.359 0-6.9-3.353-6.9-7.268.049-3.818 2.349-7.048 6.876-7.048 1.2 0 2.227.147 3.475.465l-.465 2.325c-1.322-.294-2.105-.342-2.936-.342-2.839.048-4.234 2.153-4.284 4.6 0 2.422.907 4.845 4.234 4.845M136.898 14.124h6.045c-.098-2.79-1.493-3.353-2.79-3.353-2.056-.024-3.01 1.37-3.255 3.353zm7.782 5.97l.416 2.227c-1.224.416-2.912.612-4.234.612-5.432 0-6.754-3.646-6.754-7.292s1.616-7.023 6.167-7.023c2.815 0 5.164 1.737 5.188 6.166l-.024 1.444h-8.663c.049 2.692 1.493 4.331 4.209 4.331 1.076 0 2.202-.122 3.695-.465zM154.662 11.09h-3.744v6.68c0 1.394.171 2.374 1.59 2.569.784.074 1.591 0 2.374-.098l.171 2.35c-.807.146-1.957.17-2.422.17-3.206-.121-4.405-1.761-4.405-4.33v-7.342h-1.982V9.205l1.982-.22V5.779h2.692v3.06h3.744v2.25M162.565 20.51c2.815-.024 3.72-2.3 3.72-4.77-.024-2.253-.979-4.798-3.744-4.798-2.692.025-3.745 2.521-3.745 4.797 0 2.569 1.127 4.771 3.77 4.771zm0-11.917c4.405.025 6.363 3.304 6.363 7.146 0 3.744-1.689 7.096-6.387 7.12-4.6-.048-6.363-3.376-6.363-7.12 0-3.842 1.982-7.097 6.387-7.146zM177.197 20.51c2.814-.024 3.72-2.3 3.72-4.77-.025-2.253-.98-4.798-3.744-4.798-2.692.025-3.745 2.521-3.745 4.797 0 2.569 1.126 4.771 3.769 4.771zm0-11.917c4.405.025 6.363 3.304 6.363 7.146 0 3.744-1.69 7.096-6.387 7.12-4.601-.048-6.363-3.376-6.363-7.12 0-3.842 1.982-7.097 6.387-7.146zM185.71 22.615h2.619V3.919h-2.619zM191.094 19.948c1.542.391 2.985.587 3.89.587 1.078 0 2.179-.22 2.252-1.517.074-1.37-1.346-1.787-2.96-2.472-1.836-.758-3.818-1.786-3.77-4.331.05-1.273.808-3.769 4.87-3.646 1.224.024 2.692.22 3.915.538l-.464 2.251c-1.444-.342-2.52-.49-3.573-.513-1.175 0-2.08.367-2.129 1.468-.024.93.71 1.42 2.52 2.153 1.836.759 4.43 1.738 4.308 4.625-.074 1.835-1.273 3.842-4.968 3.793-1.175-.024-3.059-.171-4.453-.66l.562-2.276\" fill=\"#27373C\"/>\n <path d=\"M.349 22.312a.601.601 0 0 0-.002 1.091l11.663 5.46c.156.074.325.112.493.113V16.787c-.173 0-.346.037-.508.112L.35 22.312\" fill=\"#E3712C\"/>\n <path d=\"M12.503 16.787v12.19c.18.003.361-.035.528-.113l11.63-5.444a.6.6 0 0 0-.002-1.09L13.011 16.9a1.2 1.2 0 0 0-.508-.113\" fill=\"#EBA13B\"/>\n <path d=\"M0 6.363a.596.596 0 0 0 .347.546l11.663 5.46a1.194 1.194 0 0 0 .93.039l.327-.152c1.203-.56.406-.187 11.394-5.33a.6.6 0 0 0-.002-1.091L13.011.405a1.205 1.205 0 0 0-1.016 0L.35 5.818A.603.603 0 0 0 0 6.363\" fill=\"#23A486\"/>\n <path d=\"M12.503 13.168v3.62c-.173 0-.346.036-.508.111L.35 22.312a.601.601 0 0 0-.348.545L0 6.77v-.407c0 .234.134.447.346.546l11.664 5.46a1.194 1.194 0 0 0 .93.039l-.02.009c-.362.167-.417.334-.417.75\" fill=\"#CCCCC7\"/>\n </g>\n </svg>\n <p class=\"long-loading-notice long-loading-notice--hidden\">Sorry, this is taking an unusually long time.</p>\n </div>\n </div>\n <div id=\"app\"></div>\n\n <!-- Loading screen handling -->\n __LOADING_SCREEN_JS__\n\n <!-- Application globals -->\n <script>window.app = __APPLICATION_ENVIRONMENT__;</script>\n\n <!-- Tracking scripts (load before application bundles) -->\n __DATALAYER_JS__\n __GTM_SCRIPT__\n\n <!-- Main application chunks -->\n __APPLICATION_SCRIPT_IMPORTS__\n </body>\n</html>\n"
4
4
  };
5
5
 
6
6
  function generateTemplate(_ref) {
7
- var _ref$cssImports = _ref.cssImports,
7
+ let _ref$cssImports = _ref.cssImports,
8
8
  cssImports = _ref$cssImports === void 0 ? [] : _ref$cssImports,
9
9
  _ref$scriptImports = _ref.scriptImports,
10
10
  scriptImports = _ref$scriptImports === void 0 ? [] : _ref$scriptImports;
@@ -1,12 +1,12 @@
1
1
  'use strict';
2
2
 
3
3
  // https://babeljs.io/blog/2017/09/11/zero-config-with-babel-macros
4
- var htmlDocs = {
4
+ const htmlDocs = {
5
5
  "application": "<!DOCTYPE html>\n<html lang=\"en\">\n <head>\n <meta charset=\"utf-8\">\n <meta name=\"viewport\" content=\"width=device-width, initial-scale=1, maximum-scale=1\">\n <meta name=\"referrer\" content=\"no-referrer\">\n\n <meta http-equiv=\"Content-Security-Policy\" content=\"__CSP__\">\n\n <!-- Preconnects -->\n <link rel=\"preconnect\" href=\"__CDN_URL__\">\n <link rel=\"preconnect\" href=\"__MC_API_URL__\">\n <link rel=\"preconnect\" href=\"https://fonts.googleapis.com\">\n <link rel=\"preconnect\" href=\"https://fonts.gstatic.com\" crossorigin>\n <link rel=\"preconnect\" href=\"https://app.launchdarkly.com\">\n <link rel=\"preconnect\" href=\"https://clientstream.launchdarkly.com\">\n <link rel=\"preconnect\" href=\"https://events.launchdarkly.com\">\n\n <!-- Fav and touch icons -->\n <link rel=\"shortcut icon\" type=\"image/png\" href=\"__CDN_URL__favicon.png\">\n <!-- Standard iPhone -->\n <link rel=\"apple-touch-icon\" sizes=\"57x57\" href=\"__CDN_URL__favicon_57x57px.png\">\n <link rel=\"apple-touch-icon-precomposed\" sizes=\"57x57\" href=\"__CDN_URL__favicon_57x57px.png\">\n <!-- Standard iPad -->\n <link rel=\"apple-touch-icon\" sizes=\"72x72\" href=\"__CDN_URL__favicon_72x72px.png\">\n <link rel=\"apple-touch-icon-precomposed\" sizes=\"72x72\" href=\"__CDN_URL__favicon_72x72px.png\">\n <!-- Retina iPad -->\n <link rel=\"apple-touch-icon\" sizes=\"144x144\" href=\"__CDN_URL__favicon_144x144px.png\">\n <link rel=\"apple-touch-icon-precomposed\" sizes=\"144x144\" href=\"__CDN_URL__favicon_144x144px.png\">\n\n <!-- Fonts -->\n <link href=\"https://fonts.googleapis.com/css2?family=Inter:slnt,wght@-10,400;-10,500;0,400;0,500;0,600;0,700&family=Open+Sans:ital,wght@0,300;0,400;0,700;1,400;1,700&display=swap\" rel=\"stylesheet\">\n\n __APPLICATION_CSS_IMPORTS__\n\n <title>Merchant Center</title>\n </head>\n <body>\n <noscript>You need to enable JavaScript to run this app.</noscript>\n\n <div id=\"app-loader\">\n <!-- Loading screen styles -->\n __LOADING_SCREEN_CSS__\n\n <div class=\"loading-screen loading-screen--hidden\">\n <svg class=\"loading-spinner\" viewBox=\"0 0 40 40\">\n <path class=\"loading-spinner-circle\" d=\"M20.201,5.169c-8.254,0-14.946,6.692-14.946,14.946c0,8.255,6.692,14.946, 14.946,14.946 s14.946-6.691,14.946-14.946C35.146,11.861,28.455,5.169,20.201,5.169z M20.201,31.749c-6.425,0-11.634-5.208-11.634-11.634c0-6.425,5.209-11.634,11.634-11.634c6.425,0,11.633,5.209,11.633,11.634C31.834,26.541,26.626,31.749,20.201,31.749z\"></path>\n <path class=\"loading-spinner-pointer\" d=\"M26.013,10.047l1.654-2.866c-2.198-1.272-4.743-2.012-7.466-2.012h0v3.312h0 C22.32,8.481,24.301,9.057,26.013,10.047z\"></path>\n </svg>\n <svg width=\"200\" height=\"29\" xmlns=\"http://www.w3.org/2000/svg\">\n <g fill=\"none\" fill-rule=\"evenodd\">\n <path d=\"M38.342 20.486c1.102 0 1.738-.073 3.133-.367l.343 2.35c-1.077.293-2.276.44-3.476.44-5.358 0-6.9-3.353-6.9-7.268.049-3.818 2.35-7.048 6.876-7.048 1.2 0 2.227.147 3.475.465l-.465 2.325c-1.321-.294-2.104-.342-2.936-.342-2.839.048-4.234 2.153-4.283 4.6 0 2.422.906 4.845 4.233 4.845M49.304 20.51c2.814-.024 3.72-2.3 3.72-4.77-.024-2.253-.98-4.798-3.744-4.798-2.692.025-3.745 2.521-3.745 4.797 0 2.569 1.126 4.771 3.769 4.771zm0-11.917c4.405.025 6.363 3.304 6.363 7.146 0 3.744-1.689 7.096-6.387 7.12-4.601-.048-6.363-3.376-6.363-7.12 0-3.842 1.982-7.097 6.387-7.146zM73.896 22.615v-8.81c0-2.226-.832-2.838-2.227-2.838-.954 0-2.031.539-3.01 1.346.05.294.073.88.073 1.052v9.25h-2.74v-8.907c0-2.227-.661-2.766-2.056-2.766-.88 0-2.104.588-3.157 1.371v10.302h-2.716V8.838h2.716v1.174c.832-.66 2.154-1.419 3.597-1.443 1.91-.024 3.01.636 3.623 1.664 1.125-1.052 2.79-1.64 4.062-1.664 4.478-.074 4.55 3.523 4.55 5.04v9.006h-2.715M95.427 22.615v-8.81c0-2.226-.831-2.838-2.226-2.838-.955 0-2.032.539-3.01 1.346.049.294.073.88.073 1.052v9.25h-2.74v-8.907c0-2.227-.662-2.766-2.057-2.766-.88 0-2.104.588-3.157 1.371v10.302h-2.716V8.838h2.716v1.174c.833-.66 2.154-1.419 3.598-1.443 1.908-.024 3.01.636 3.622 1.664 1.126-1.052 2.79-1.64 4.062-1.664 4.478-.074 4.551 3.523 4.551 5.04v9.006h-2.716M103.035 14.124h6.044c-.098-2.79-1.492-3.353-2.789-3.353-2.056-.024-3.01 1.37-3.255 3.353zm7.782 5.97l.416 2.227c-1.224.416-2.912.612-4.233.612-5.433 0-6.755-3.646-6.755-7.292s1.616-7.023 6.167-7.023c2.814 0 5.163 1.737 5.188 6.166l-.025 1.444h-8.662c.049 2.692 1.493 4.331 4.209 4.331 1.076 0 2.202-.122 3.695-.465zM121.582 11.358a7.379 7.379 0 0 0-1.762-.195c-1.689-.025-2.57.808-3.206 1.468v9.984h-2.716V8.838h2.716v1.223a4.503 4.503 0 0 1 3.182-1.395 6.356 6.356 0 0 1 2.275.368l-.489 2.324M129.533 20.486c1.102 0 1.738-.073 3.132-.367l.344 2.35c-1.077.293-2.276.44-3.476.44-5.359 0-6.9-3.353-6.9-7.268.049-3.818 2.349-7.048 6.876-7.048 1.2 0 2.227.147 3.475.465l-.465 2.325c-1.322-.294-2.105-.342-2.936-.342-2.839.048-4.234 2.153-4.284 4.6 0 2.422.907 4.845 4.234 4.845M136.898 14.124h6.045c-.098-2.79-1.493-3.353-2.79-3.353-2.056-.024-3.01 1.37-3.255 3.353zm7.782 5.97l.416 2.227c-1.224.416-2.912.612-4.234.612-5.432 0-6.754-3.646-6.754-7.292s1.616-7.023 6.167-7.023c2.815 0 5.164 1.737 5.188 6.166l-.024 1.444h-8.663c.049 2.692 1.493 4.331 4.209 4.331 1.076 0 2.202-.122 3.695-.465zM154.662 11.09h-3.744v6.68c0 1.394.171 2.374 1.59 2.569.784.074 1.591 0 2.374-.098l.171 2.35c-.807.146-1.957.17-2.422.17-3.206-.121-4.405-1.761-4.405-4.33v-7.342h-1.982V9.205l1.982-.22V5.779h2.692v3.06h3.744v2.25M162.565 20.51c2.815-.024 3.72-2.3 3.72-4.77-.024-2.253-.979-4.798-3.744-4.798-2.692.025-3.745 2.521-3.745 4.797 0 2.569 1.127 4.771 3.77 4.771zm0-11.917c4.405.025 6.363 3.304 6.363 7.146 0 3.744-1.689 7.096-6.387 7.12-4.6-.048-6.363-3.376-6.363-7.12 0-3.842 1.982-7.097 6.387-7.146zM177.197 20.51c2.814-.024 3.72-2.3 3.72-4.77-.025-2.253-.98-4.798-3.744-4.798-2.692.025-3.745 2.521-3.745 4.797 0 2.569 1.126 4.771 3.769 4.771zm0-11.917c4.405.025 6.363 3.304 6.363 7.146 0 3.744-1.69 7.096-6.387 7.12-4.601-.048-6.363-3.376-6.363-7.12 0-3.842 1.982-7.097 6.387-7.146zM185.71 22.615h2.619V3.919h-2.619zM191.094 19.948c1.542.391 2.985.587 3.89.587 1.078 0 2.179-.22 2.252-1.517.074-1.37-1.346-1.787-2.96-2.472-1.836-.758-3.818-1.786-3.77-4.331.05-1.273.808-3.769 4.87-3.646 1.224.024 2.692.22 3.915.538l-.464 2.251c-1.444-.342-2.52-.49-3.573-.513-1.175 0-2.08.367-2.129 1.468-.024.93.71 1.42 2.52 2.153 1.836.759 4.43 1.738 4.308 4.625-.074 1.835-1.273 3.842-4.968 3.793-1.175-.024-3.059-.171-4.453-.66l.562-2.276\" fill=\"#27373C\"/>\n <path d=\"M.349 22.312a.601.601 0 0 0-.002 1.091l11.663 5.46c.156.074.325.112.493.113V16.787c-.173 0-.346.037-.508.112L.35 22.312\" fill=\"#E3712C\"/>\n <path d=\"M12.503 16.787v12.19c.18.003.361-.035.528-.113l11.63-5.444a.6.6 0 0 0-.002-1.09L13.011 16.9a1.2 1.2 0 0 0-.508-.113\" fill=\"#EBA13B\"/>\n <path d=\"M0 6.363a.596.596 0 0 0 .347.546l11.663 5.46a1.194 1.194 0 0 0 .93.039l.327-.152c1.203-.56.406-.187 11.394-5.33a.6.6 0 0 0-.002-1.091L13.011.405a1.205 1.205 0 0 0-1.016 0L.35 5.818A.603.603 0 0 0 0 6.363\" fill=\"#23A486\"/>\n <path d=\"M12.503 13.168v3.62c-.173 0-.346.036-.508.111L.35 22.312a.601.601 0 0 0-.348.545L0 6.77v-.407c0 .234.134.447.346.546l11.664 5.46a1.194 1.194 0 0 0 .93.039l-.02.009c-.362.167-.417.334-.417.75\" fill=\"#CCCCC7\"/>\n </g>\n </svg>\n <p class=\"long-loading-notice long-loading-notice--hidden\">Sorry, this is taking an unusually long time.</p>\n </div>\n </div>\n <div id=\"app\"></div>\n\n <!-- Loading screen handling -->\n __LOADING_SCREEN_JS__\n\n <!-- Application globals -->\n <script>window.app = __APPLICATION_ENVIRONMENT__;</script>\n\n <!-- Tracking scripts (load before application bundles) -->\n __DATALAYER_JS__\n __GTM_SCRIPT__\n\n <!-- Main application chunks -->\n __APPLICATION_SCRIPT_IMPORTS__\n </body>\n</html>\n"
6
6
  };
7
7
 
8
8
  function generateTemplate(_ref) {
9
- var _ref$cssImports = _ref.cssImports,
9
+ let _ref$cssImports = _ref.cssImports,
10
10
  cssImports = _ref$cssImports === void 0 ? [] : _ref$cssImports,
11
11
  _ref$scriptImports = _ref.scriptImports,
12
12
  scriptImports = _ref$scriptImports === void 0 ? [] : _ref$scriptImports;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@commercetools-frontend/mc-html-template",
3
- "version": "21.23.9",
3
+ "version": "21.24.0",
4
4
  "description": "Everything related to render the index.html for a MC application",
5
5
  "bugs": "https://github.com/commercetools/merchant-center-application-kit/issues",
6
6
  "repository": {
@@ -30,8 +30,8 @@
30
30
  "dependencies": {
31
31
  "@babel/runtime": "^7.20.13",
32
32
  "@babel/runtime-corejs3": "^7.20.13",
33
- "@commercetools-frontend/application-config": "21.23.9",
34
- "@commercetools-frontend/constants": "21.23.9",
33
+ "@commercetools-frontend/application-config": "21.24.0",
34
+ "@commercetools-frontend/constants": "21.24.0",
35
35
  "serialize-javascript": "6.0.1",
36
36
  "uglify-js": "3.17.4",
37
37
  "uglifycss": "0.0.29"
@@ -6,7 +6,7 @@ var _forEachInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/in
6
6
  var _indexOfInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/index-of');
7
7
  var _mapInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/map');
8
8
  var _concatInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/concat');
9
- var generateTemplate = require('../../dist/generate-template-ffe36451.cjs.dev.js');
9
+ var generateTemplate = require('../../dist/generate-template-f3bd2e44.cjs.dev.js');
10
10
 
11
11
  function _interopDefault (e) { return e && e.__esModule ? e : { 'default': e }; }
12
12
 
@@ -18,10 +18,10 @@ var _concatInstanceProperty__default = /*#__PURE__*/_interopDefault(_concatInsta
18
18
  function webpackHtmlTemplate(templateParams) {
19
19
  var _context, _context2, _context3;
20
20
 
21
- var cssVendorChunks = [];
22
- var cssAppChunks = [];
21
+ const cssVendorChunks = [];
22
+ const cssAppChunks = [];
23
23
 
24
- _forEachInstanceProperty__default["default"](_context = templateParams.htmlWebpackPlugin.files.css).call(_context, function (file) {
24
+ _forEachInstanceProperty__default["default"](_context = templateParams.htmlWebpackPlugin.files.css).call(_context, file => {
25
25
  if (_indexOfInstanceProperty__default["default"](file).call(file, 'vendor') === -1) {
26
26
  cssAppChunks.push(file);
27
27
  } else {
@@ -29,28 +29,19 @@ function webpackHtmlTemplate(templateParams) {
29
29
  }
30
30
  });
31
31
 
32
- var cssChunks = _mapInstanceProperty__default["default"](_context2 = _concatInstanceProperty__default["default"](cssVendorChunks).call(cssVendorChunks, cssAppChunks)).call(_context2, function (fileName) {
33
- return fileName.replace(/^\//, '');
34
- });
32
+ const cssChunks = _mapInstanceProperty__default["default"](_context2 = _concatInstanceProperty__default["default"](cssVendorChunks).call(cssVendorChunks, cssAppChunks)).call(_context2, fileName => fileName.replace(/^\//, ''));
35
33
 
36
- var scriptChunks = _mapInstanceProperty__default["default"](_context3 = templateParams.htmlWebpackPlugin.files.js).call(_context3, function (fileName) {
37
- return (// Trim leading slash, the CDN_URL will ensure to have a trailing slash
38
- // (see `replaceHtmlPlaceholders`)
39
- fileName.replace(/^\//, '')
40
- );
41
- });
34
+ const scriptChunks = _mapInstanceProperty__default["default"](_context3 = templateParams.htmlWebpackPlugin.files.js).call(_context3, fileName => // Trim leading slash, the CDN_URL will ensure to have a trailing slash
35
+ // (see `replaceHtmlPlaceholders`)
36
+ fileName.replace(/^\//, ''));
42
37
 
43
- var cssImports = _mapInstanceProperty__default["default"](cssChunks).call(cssChunks, function (chunkPath) {
44
- return "<link href=\"__CDN_URL__".concat(chunkPath, "\" rel='stylesheet' type='text/css'>");
45
- });
38
+ const cssImports = _mapInstanceProperty__default["default"](cssChunks).call(cssChunks, chunkPath => "<link href=\"__CDN_URL__".concat(chunkPath, "\" rel='stylesheet' type='text/css'>"));
46
39
 
47
- var scriptImports = _mapInstanceProperty__default["default"](scriptChunks).call(scriptChunks, function (chunkPath) {
48
- return "<script src=\"__CDN_URL__".concat(chunkPath, "\"></script>");
49
- });
40
+ const scriptImports = _mapInstanceProperty__default["default"](scriptChunks).call(scriptChunks, chunkPath => "<script src=\"__CDN_URL__".concat(chunkPath, "\"></script>"));
50
41
 
51
42
  return generateTemplate.generateTemplate({
52
- cssImports: cssImports,
53
- scriptImports: scriptImports
43
+ cssImports,
44
+ scriptImports
54
45
  });
55
46
  }
56
47
 
@@ -6,7 +6,7 @@ var _forEachInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/in
6
6
  var _indexOfInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/index-of');
7
7
  var _mapInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/map');
8
8
  var _concatInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/concat');
9
- var generateTemplate = require('../../dist/generate-template-a47e70b1.cjs.prod.js');
9
+ var generateTemplate = require('../../dist/generate-template-11aec1ac.cjs.prod.js');
10
10
 
11
11
  function _interopDefault (e) { return e && e.__esModule ? e : { 'default': e }; }
12
12
 
@@ -18,10 +18,10 @@ var _concatInstanceProperty__default = /*#__PURE__*/_interopDefault(_concatInsta
18
18
  function webpackHtmlTemplate(templateParams) {
19
19
  var _context, _context2, _context3;
20
20
 
21
- var cssVendorChunks = [];
22
- var cssAppChunks = [];
21
+ const cssVendorChunks = [];
22
+ const cssAppChunks = [];
23
23
 
24
- _forEachInstanceProperty__default["default"](_context = templateParams.htmlWebpackPlugin.files.css).call(_context, function (file) {
24
+ _forEachInstanceProperty__default["default"](_context = templateParams.htmlWebpackPlugin.files.css).call(_context, file => {
25
25
  if (_indexOfInstanceProperty__default["default"](file).call(file, 'vendor') === -1) {
26
26
  cssAppChunks.push(file);
27
27
  } else {
@@ -29,28 +29,19 @@ function webpackHtmlTemplate(templateParams) {
29
29
  }
30
30
  });
31
31
 
32
- var cssChunks = _mapInstanceProperty__default["default"](_context2 = _concatInstanceProperty__default["default"](cssVendorChunks).call(cssVendorChunks, cssAppChunks)).call(_context2, function (fileName) {
33
- return fileName.replace(/^\//, '');
34
- });
32
+ const cssChunks = _mapInstanceProperty__default["default"](_context2 = _concatInstanceProperty__default["default"](cssVendorChunks).call(cssVendorChunks, cssAppChunks)).call(_context2, fileName => fileName.replace(/^\//, ''));
35
33
 
36
- var scriptChunks = _mapInstanceProperty__default["default"](_context3 = templateParams.htmlWebpackPlugin.files.js).call(_context3, function (fileName) {
37
- return (// Trim leading slash, the CDN_URL will ensure to have a trailing slash
38
- // (see `replaceHtmlPlaceholders`)
39
- fileName.replace(/^\//, '')
40
- );
41
- });
34
+ const scriptChunks = _mapInstanceProperty__default["default"](_context3 = templateParams.htmlWebpackPlugin.files.js).call(_context3, fileName => // Trim leading slash, the CDN_URL will ensure to have a trailing slash
35
+ // (see `replaceHtmlPlaceholders`)
36
+ fileName.replace(/^\//, ''));
42
37
 
43
- var cssImports = _mapInstanceProperty__default["default"](cssChunks).call(cssChunks, function (chunkPath) {
44
- return "<link href=\"__CDN_URL__".concat(chunkPath, "\" rel='stylesheet' type='text/css'>");
45
- });
38
+ const cssImports = _mapInstanceProperty__default["default"](cssChunks).call(cssChunks, chunkPath => "<link href=\"__CDN_URL__".concat(chunkPath, "\" rel='stylesheet' type='text/css'>"));
46
39
 
47
- var scriptImports = _mapInstanceProperty__default["default"](scriptChunks).call(scriptChunks, function (chunkPath) {
48
- return "<script src=\"__CDN_URL__".concat(chunkPath, "\"></script>");
49
- });
40
+ const scriptImports = _mapInstanceProperty__default["default"](scriptChunks).call(scriptChunks, chunkPath => "<script src=\"__CDN_URL__".concat(chunkPath, "\"></script>"));
50
41
 
51
42
  return generateTemplate.generateTemplate({
52
- cssImports: cssImports,
53
- scriptImports: scriptImports
43
+ cssImports,
44
+ scriptImports
54
45
  });
55
46
  }
56
47
 
@@ -2,15 +2,15 @@ import _forEachInstanceProperty from '@babel/runtime-corejs3/core-js-stable/inst
2
2
  import _indexOfInstanceProperty from '@babel/runtime-corejs3/core-js-stable/instance/index-of';
3
3
  import _mapInstanceProperty from '@babel/runtime-corejs3/core-js-stable/instance/map';
4
4
  import _concatInstanceProperty from '@babel/runtime-corejs3/core-js-stable/instance/concat';
5
- import { g as generateTemplate } from '../../dist/generate-template-3cbf5e40.esm.js';
5
+ import { g as generateTemplate } from '../../dist/generate-template-3fe062f9.esm.js';
6
6
 
7
7
  function webpackHtmlTemplate(templateParams) {
8
8
  var _context, _context2, _context3;
9
9
 
10
- var cssVendorChunks = [];
11
- var cssAppChunks = [];
10
+ const cssVendorChunks = [];
11
+ const cssAppChunks = [];
12
12
 
13
- _forEachInstanceProperty(_context = templateParams.htmlWebpackPlugin.files.css).call(_context, function (file) {
13
+ _forEachInstanceProperty(_context = templateParams.htmlWebpackPlugin.files.css).call(_context, file => {
14
14
  if (_indexOfInstanceProperty(file).call(file, 'vendor') === -1) {
15
15
  cssAppChunks.push(file);
16
16
  } else {
@@ -18,28 +18,19 @@ function webpackHtmlTemplate(templateParams) {
18
18
  }
19
19
  });
20
20
 
21
- var cssChunks = _mapInstanceProperty(_context2 = _concatInstanceProperty(cssVendorChunks).call(cssVendorChunks, cssAppChunks)).call(_context2, function (fileName) {
22
- return fileName.replace(/^\//, '');
23
- });
21
+ const cssChunks = _mapInstanceProperty(_context2 = _concatInstanceProperty(cssVendorChunks).call(cssVendorChunks, cssAppChunks)).call(_context2, fileName => fileName.replace(/^\//, ''));
24
22
 
25
- var scriptChunks = _mapInstanceProperty(_context3 = templateParams.htmlWebpackPlugin.files.js).call(_context3, function (fileName) {
26
- return (// Trim leading slash, the CDN_URL will ensure to have a trailing slash
27
- // (see `replaceHtmlPlaceholders`)
28
- fileName.replace(/^\//, '')
29
- );
30
- });
23
+ const scriptChunks = _mapInstanceProperty(_context3 = templateParams.htmlWebpackPlugin.files.js).call(_context3, fileName => // Trim leading slash, the CDN_URL will ensure to have a trailing slash
24
+ // (see `replaceHtmlPlaceholders`)
25
+ fileName.replace(/^\//, ''));
31
26
 
32
- var cssImports = _mapInstanceProperty(cssChunks).call(cssChunks, function (chunkPath) {
33
- return "<link href=\"__CDN_URL__".concat(chunkPath, "\" rel='stylesheet' type='text/css'>");
34
- });
27
+ const cssImports = _mapInstanceProperty(cssChunks).call(cssChunks, chunkPath => "<link href=\"__CDN_URL__".concat(chunkPath, "\" rel='stylesheet' type='text/css'>"));
35
28
 
36
- var scriptImports = _mapInstanceProperty(scriptChunks).call(scriptChunks, function (chunkPath) {
37
- return "<script src=\"__CDN_URL__".concat(chunkPath, "\"></script>");
38
- });
29
+ const scriptImports = _mapInstanceProperty(scriptChunks).call(scriptChunks, chunkPath => "<script src=\"__CDN_URL__".concat(chunkPath, "\"></script>"));
39
30
 
40
31
  return generateTemplate({
41
- cssImports: cssImports,
42
- scriptImports: scriptImports
32
+ cssImports,
33
+ scriptImports
43
34
  });
44
35
  }
45
36