@lwrjs/client-modules 0.5.11-alpha.2 → 0.6.0-alpha.11

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.
@@ -1 +1 @@
1
- import{createElement as e}from"lwc";function o(o,t){return e(o,{is:t})}function t(e){return e.replace(/\/v\/[a-zA-Z0-9-_.]+$/,"").replace("/","-").replace(/([A-Z])/g,(e=>`-${e.toLowerCase()}`))}const n=/-([a-z])/g;function r(e){return e.replace(n,(e=>e[1].toUpperCase()))}function c(e){if("undefined"!=typeof customElements&&"undefined"!=typeof document){const n=document.querySelector("[lwr-root]");e.forEach((([e,c])=>{const l=t(e);let a=document.body.querySelector(l);if(a){document.querySelectorAll(l).forEach((e=>{const t=o(l,c);for(const{name:o,value:n}of e.attributes){t.setAttribute(o,n);const e=r(o);e in t&&(t[e]=n)}for(;e.childNodes.length>0;)t.appendChild(e.childNodes[0]);if(e.parentElement.replaceChild(t,e),globalThis.performance){const e="lwr-bootstrap-on-app-init";globalThis.performance.measure(e)}}))}else a=o(l,c),n?n.appendChild(a):document.body.appendChild(a)}))}}export{r as getPropFromAttrName,c as init,t as toKebabCase};
1
+ import{BOOTSTRAP_END as e}from"lwr/metrics";import{logOperationStart as o}from"lwr/profiler";import{createElement as t}from"lwc";function r(e,o){return t(e,{is:o})}function n(e){return e.replace(/\/v\/[a-zA-Z0-9-_.]+$/,"").replace("/","-").replace(/([A-Z])/g,(e=>`-${e.toLowerCase()}`))}const c=/-([a-z])/g;function l(e){return e.replace(c,(e=>e[1].toUpperCase()))}function i(t){if("undefined"!=typeof customElements&&"undefined"!=typeof document){const e=document.querySelector("[lwr-root]");t.forEach((([o,t])=>{const c=n(o);let i=document.body.querySelector(c);if(i){document.querySelectorAll(c).forEach((e=>{const o=r(c,t);for(const{name:t,value:r}of e.attributes){o.setAttribute(t,r);const e=l(t);e in o&&(o[e]=r)}for(;e.childNodes.length>0;)o.appendChild(e.childNodes[0]);if(e.parentElement.replaceChild(o,e),globalThis.performance){const e="lwr-bootstrap-on-app-init";globalThis.performance.measure(e)}}))}else i=r(c,t),e?e.appendChild(i):document.body.appendChild(i)}))}o({id:e})}export{l as getPropFromAttrName,i as init,n as toKebabCase};
@@ -1 +1 @@
1
- const e=[];let n;const o={addLoaderPlugin:()=>{console.warn("API is not supported in ESM format")},handleStaleModule:function(o){e.push(o),n||(n=new WebSocket(`ws://${location.host}`),n.addEventListener("message",(async({data:n})=>{const o=JSON.parse(n);if("moduleUpdate"===o.eventType){const{oldHash:n,newHash:a,module:{specifier:t}}=o.payload;for(let o=0;o<e.length;o++){if(null!==(0,e[o])({name:t,oldHash:n,newHash:a}))break}}})))}};export{o as services};
1
+ const o=[];let e;const t=globalThis.LWR;globalThis.LWR.define?globalThis.LWR=Object.freeze({define:globalThis.LWR.define}):delete globalThis.LWR;const n={addLoaderPlugin:()=>{console.warn("API is not supported in ESM format")},handleStaleModule:function(t){o.push(t),e||(e=new WebSocket(`ws://${location.host}`),e.addEventListener("message",(async({data:e})=>{const t=JSON.parse(e);if("moduleUpdate"===t.eventType){const{oldHash:e,newHash:n,module:{specifier:a}}=t.payload;for(let t=0;t<o.length;t++){if(null!==(0,o[t])({name:a,oldHash:e,newHash:n}))break}}})))},appMetadata:function(){const{bootstrapModule:o,rootComponent:e,rootComponents:n}=t;return{bootstrapModule:o,rootComponent:e,rootComponents:n}}()};export{n as services};
@@ -1,6 +1,8 @@
1
- // TODO: This is a temporal workaround until https://github.com/salesforce/lwc/pull/2083 is sorted
1
+ import { BOOTSTRAP_END } from 'lwr/metrics';
2
+ import { logOperationStart } from 'lwr/profiler'; // TODO: This is a temporal workaround until https://github.com/salesforce/lwc/pull/2083 is sorted
2
3
  // eslint-disable-next-line @typescript-eslint/ban-ts-comment
3
4
  // @ts-ignore
5
+
4
6
  import { createElement } from 'lwc';
5
7
 
6
8
  function initializeWebComponent(elementName, Ctor) {
@@ -96,4 +98,8 @@ export function init(rootModules) {
96
98
  }
97
99
  });
98
100
  }
101
+
102
+ logOperationStart({
103
+ id: BOOTSTRAP_END
104
+ });
99
105
  }
@@ -0,0 +1,40 @@
1
+ // TODO: This is a temporal workaround until https://github.com/salesforce/lwc/pull/2083 is sorted
2
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
3
+ // @ts-ignore
4
+ import { hydrateComponent } from 'lwc';
5
+ export function toKebabCase(specifier) {
6
+ return specifier.replace(/\/v\/[a-zA-Z0-9-_.]+$/, '').replace('/', '-').replace(/([A-Z])/g, c => `-${c.toLowerCase()}`);
7
+ }
8
+ /**
9
+ * This method maps between attribute names
10
+ * and the corresponding props name.
11
+ */
12
+
13
+ const CAMEL_REGEX = /-([a-z])/g;
14
+ export function getPropFromAttrName(propName) {
15
+ return propName.replace(CAMEL_REGEX, g => g[1].toUpperCase());
16
+ }
17
+ /**
18
+ * Hydrate the given components component(s).
19
+ * @param components - An array of arrays, each one holding a pair of
20
+ * bare specifier and corresponding LightningElement constructor
21
+ * @example - [['x/appRoot', appCtor], ['x/nav', navCtor]]
22
+ */
23
+
24
+ export function init(components) {
25
+ if (typeof document !== 'undefined') {
26
+ components.forEach(([moduleSpecifier, ctor]) => {
27
+ // Kebab-case the specifier
28
+ const elementName = toKebabCase(moduleSpecifier);
29
+ const customElements = document.querySelectorAll(elementName);
30
+ customElements.forEach(customElement => {
31
+ hydrateComponent(customElement, ctor, {});
32
+ });
33
+ });
34
+
35
+ if (globalThis.performance) {
36
+ const metric = 'lwr-bootstrap-on-app-init';
37
+ globalThis.performance.measure(metric);
38
+ }
39
+ }
40
+ }
@@ -440,7 +440,7 @@ function WeakMapGet(weakMap, key) {
440
440
  function WeakMapSet(weakMap, key, value) {
441
441
  return ReflectApply$3(WeakMapProtoSet$1, weakMap, [key, value]);
442
442
  }
443
- /*! version: 0.14.17 */
443
+ /*! version: 0.14.19 */
444
444
 
445
445
  /*!
446
446
  * Copyright (C) 2019 salesforce.com, inc.
@@ -1177,7 +1177,7 @@ function XhrStatusGetter(xhr) {
1177
1177
  function XhrWithCredentialsSetter(xhr, bool) {
1178
1178
  ReflectApply$3(XhrProtoWithCredentialsSetter, xhr, [bool]);
1179
1179
  }
1180
- /*! version: 0.14.17 */
1180
+ /*! version: 0.14.19 */
1181
1181
 
1182
1182
  /*!
1183
1183
  * Copyright (C) 2019 salesforce.com, inc.
@@ -1215,7 +1215,7 @@ function sanitizeURLForElement(url) {
1215
1215
  function sanitizeURLString(urlString) {
1216
1216
  return urlString === '' ? urlString : StringReplace(urlString, REMOVE_URL_CHARS_REGEXP, '');
1217
1217
  }
1218
- /*! version: 0.14.17 */
1218
+ /*! version: 0.14.19 */
1219
1219
 
1220
1220
  /*! @license DOMPurify | (c) Cure53 and other contributors | Released under the Apache license 2.0 and Mozilla Public License 2.0 | github.com/cure53/DOMPurify/blob/2.2.2/LICENSE */
1221
1221
 
@@ -2783,7 +2783,7 @@ function sanitizeSvgTextReturnDOM(dirty) {
2783
2783
  const sanitizer = svgSanitizer();
2784
2784
  return sanitizer.sanitize(dirty);
2785
2785
  }
2786
- /*! version: 0.14.17 */
2786
+ /*! version: 0.14.19 */
2787
2787
 
2788
2788
  /*!
2789
2789
  * Copyright (C) 2019 salesforce.com, inc.
@@ -5456,7 +5456,7 @@ function createExternalDistortionEntries(globalObject, key, evaluator, config) {
5456
5456
  ReflectApply$3(ArrayProtoPush, entries, makeElementDistortionsForSandboxKey(key));
5457
5457
  return entries;
5458
5458
  } // @TODO: [Issue #373] Abstract common code in sandbox and distortion packages
5459
- /*! version: 0.14.17 */
5459
+ /*! version: 0.14.19 */
5460
5460
 
5461
5461
  /*!
5462
5462
  * Copyright (C) 2021 salesforce.com, inc.
@@ -5617,7 +5617,7 @@ class DefaultInstrumentation {
5617
5617
 
5618
5618
 
5619
5619
  const defaultInstrumentation = new DefaultInstrumentation();
5620
- /*! version: 0.14.17 */
5620
+ /*! version: 0.14.19 */
5621
5621
 
5622
5622
  /*!
5623
5623
  * Copyright (C) 2019 salesforce.com, inc.
@@ -8181,7 +8181,7 @@ function evaluateInSandbox(key, sourceText, context, endowments, instrumentation
8181
8181
  activityEvaluateInSandbox.stop();
8182
8182
  return result;
8183
8183
  }
8184
- /*! version: 0.14.17 */
8184
+ /*! version: 0.14.19 */
8185
8185
 
8186
8186
  const loaderDefine = globalThis.LWR.define;
8187
8187
  /**
@@ -440,7 +440,7 @@ function WeakMapGet(weakMap, key) {
440
440
  function WeakMapSet(weakMap, key, value) {
441
441
  return ReflectApply$3(WeakMapProtoSet$1, weakMap, [key, value]);
442
442
  }
443
- /*! version: 0.14.17 */
443
+ /*! version: 0.14.19 */
444
444
 
445
445
  /*!
446
446
  * Copyright (C) 2019 salesforce.com, inc.
@@ -1177,7 +1177,7 @@ function XhrStatusGetter(xhr) {
1177
1177
  function XhrWithCredentialsSetter(xhr, bool) {
1178
1178
  ReflectApply$3(XhrProtoWithCredentialsSetter, xhr, [bool]);
1179
1179
  }
1180
- /*! version: 0.14.17 */
1180
+ /*! version: 0.14.19 */
1181
1181
 
1182
1182
  /*!
1183
1183
  * Copyright (C) 2019 salesforce.com, inc.
@@ -1215,7 +1215,7 @@ function sanitizeURLForElement(url) {
1215
1215
  function sanitizeURLString(urlString) {
1216
1216
  return urlString === '' ? urlString : StringReplace(urlString, REMOVE_URL_CHARS_REGEXP, '');
1217
1217
  }
1218
- /*! version: 0.14.17 */
1218
+ /*! version: 0.14.19 */
1219
1219
 
1220
1220
  /*! @license DOMPurify | (c) Cure53 and other contributors | Released under the Apache license 2.0 and Mozilla Public License 2.0 | github.com/cure53/DOMPurify/blob/2.2.2/LICENSE */
1221
1221
 
@@ -2783,7 +2783,7 @@ function sanitizeSvgTextReturnDOM(dirty) {
2783
2783
  const sanitizer = svgSanitizer();
2784
2784
  return sanitizer.sanitize(dirty);
2785
2785
  }
2786
- /*! version: 0.14.17 */
2786
+ /*! version: 0.14.19 */
2787
2787
 
2788
2788
  /*!
2789
2789
  * Copyright (C) 2019 salesforce.com, inc.
@@ -5519,7 +5519,7 @@ function createInternalDistortionEntries(globalObject, key, evaluator, config) {
5519
5519
  ReflectApply$3(ArrayProtoPush, entries, makeElementDistortionsForSandboxKey(key));
5520
5520
  return entries;
5521
5521
  }
5522
- /*! version: 0.14.17 */
5522
+ /*! version: 0.14.19 */
5523
5523
 
5524
5524
  /*!
5525
5525
  * Copyright (C) 2021 salesforce.com, inc.
@@ -5680,7 +5680,7 @@ class DefaultInstrumentation {
5680
5680
 
5681
5681
 
5682
5682
  const defaultInstrumentation = new DefaultInstrumentation();
5683
- /*! version: 0.14.17 */
5683
+ /*! version: 0.14.19 */
5684
5684
 
5685
5685
  /*!
5686
5686
  * Copyright (C) 2019 salesforce.com, inc.
@@ -8316,6 +8316,6 @@ function evaluateInCoreSandbox(_key, sourceText, context, endowments, instrument
8316
8316
  activityEvaluateInCoreSandbox.stop();
8317
8317
  return result;
8318
8318
  }
8319
- /*! version: 0.14.17 */
8319
+ /*! version: 0.14.19 */
8320
8320
 
8321
8321
  export { CORE_SANDBOX_KEY, evaluateInCoreSandbox, evaluateInSandbox };
@@ -0,0 +1,18 @@
1
+ /**
2
+ * This module is called in the ABS module (app bootstrap module) to perform neccesary pre initialization steps for an LWR app.
3
+ * Note: this module should be imported before other dependencies in the ABS
4
+ */
5
+ const lwrGlobals = globalThis.LWR;
6
+
7
+ if (globalThis.LWR.define) {
8
+ // AMD only
9
+ globalThis.LWR = Object.freeze({
10
+ define: globalThis.LWR.define
11
+ });
12
+ } else {
13
+ delete globalThis.LWR;
14
+ }
15
+
16
+ export function getClientBootstrapConfig() {
17
+ return lwrGlobals;
18
+ }
@@ -1,11 +1,26 @@
1
1
  import { registerHandleStaleModuleHook } from './handleStaleModuleESM';
2
+ import { getClientBootstrapConfig } from 'lwr/preInit';
2
3
 
3
4
  const noop = () => {
4
5
  console.warn('API is not supported in ESM format');
5
6
  };
6
7
 
8
+ function getAppMetadata() {
9
+ const {
10
+ bootstrapModule,
11
+ rootComponent,
12
+ rootComponents
13
+ } = getClientBootstrapConfig();
14
+ return {
15
+ bootstrapModule,
16
+ rootComponent,
17
+ rootComponents
18
+ };
19
+ }
20
+
7
21
  export const services = {
8
22
  // addLoaderPlugin is only supported in AMD
9
23
  addLoaderPlugin: noop,
10
- handleStaleModule: registerHandleStaleModuleHook
24
+ handleStaleModule: registerHandleStaleModuleHook,
25
+ appMetadata: getAppMetadata()
11
26
  };
package/package.json CHANGED
@@ -4,8 +4,8 @@
4
4
  "publishConfig": {
5
5
  "access": "public"
6
6
  },
7
- "version": "0.5.11-alpha.2",
8
- "homepage": "https://lwr.dev/",
7
+ "version": "0.6.0-alpha.11",
8
+ "homepage": "https://developer.salesforce.com/docs/platform/lwr/overview",
9
9
  "repository": {
10
10
  "type": "git",
11
11
  "url": "https://github.com/salesforce/lwr.git",
@@ -31,8 +31,8 @@
31
31
  "build:bundle": "rollup --config scripts/rollup.moduleBundle.config.cjs"
32
32
  },
33
33
  "dependencies": {
34
- "@locker/sandbox": "0.14.17",
35
- "@lwrjs/shared-utils": "0.5.11-alpha.2"
34
+ "@locker/sandbox": "0.14.19",
35
+ "@lwrjs/shared-utils": "0.6.0-alpha.11"
36
36
  },
37
37
  "devDependencies": {
38
38
  "rollup-plugin-terser": "^7.0.2"
@@ -45,7 +45,9 @@
45
45
  ],
46
46
  "expose": [
47
47
  "lwr/hmr",
48
+ "lwr/preInit",
48
49
  "lwr/init",
50
+ "lwr/initSsr",
49
51
  "lwr/servicesESM",
50
52
  "lwr/lockerDefine",
51
53
  "lwr/lockerSandbox"
@@ -54,5 +56,5 @@
54
56
  "engines": {
55
57
  "node": ">=14.15.4 <17"
56
58
  },
57
- "gitHead": "83785c79e6adbfb1ead85e0c23e9164a22cb5755"
59
+ "gitHead": "18ab72188c2d52e32cca47333951a9c76f996039"
58
60
  }