@lwc/ssr-runtime 9.3.6 → 9.4.1

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.
package/dist/index.cjs CHANGED
@@ -680,7 +680,7 @@ function normalizeTabIndex(value) {
680
680
  const shouldNormalize = value > 0 && typeof value !== 'boolean';
681
681
  return shouldNormalize ? 0 : value;
682
682
  }
683
- /** version: 9.3.6 */
683
+ /** version: 9.4.1 */
684
684
 
685
685
  /**
686
686
  * Copyright (c) 2026 Salesforce, Inc.
@@ -704,7 +704,7 @@ function normalizeTabIndex(value) {
704
704
  * @param value
705
705
  * @param msg
706
706
  */
707
- /** version: 9.3.6 */
707
+ /** version: 9.4.1 */
708
708
 
709
709
  /*
710
710
  * Copyright (c) 2023, salesforce.com, inc.
@@ -728,7 +728,7 @@ class SignalBaseClass {
728
728
  }
729
729
  }
730
730
  }
731
- /** version: 9.3.6 */
731
+ /** version: 9.4.1 */
732
732
 
733
733
  /**
734
734
  * Copyright (c) 2026 Salesforce, Inc.
@@ -754,6 +754,18 @@ const features = {
754
754
  DISABLE_HOST_ATTACH_SHADOW_GUARD: null,
755
755
  DISABLE_STRICT_VALIDATION: null,
756
756
  DISABLE_DETACHED_REHYDRATION: null,
757
+ DISABLE_BRIDGE_ELEMENT_PROPERTY_GUARD: null,
758
+ // Remove in 270
759
+ ENABLE_LEGACY_ITEM_POLYFILL: null,
760
+ // Remove in 270
761
+ ENABLE_SHADOW_ROOT_UNDEFINED_GET_ELEMENT_BY_ID: null,
762
+ // Remove in 270
763
+ ENABLE_BROKEN_HTML_COLLECTION_NAMED_ITEM: null,
764
+ // Remove in 270
765
+ ENABLE_LEGACY_ATTRIBUTE_CHANGED_CALLBACK: null,
766
+ // Remove in 270
767
+ DISABLE_HYDRATION_CUSTOM_ELEMENT_CHECK: null,
768
+ DISABLE_SANITIZED_HTML_CONTENT_IDENTITY_CHECK: null,
757
769
  };
758
770
  if (!globalThis.lwcRuntimeFlags) {
759
771
  Object.defineProperty(globalThis, 'lwcRuntimeFlags', { value: create(null) });
@@ -814,7 +826,7 @@ function setFeatureFlagForTest(name, value) {
814
826
  setFeatureFlag(name, value);
815
827
  }
816
828
  }
817
- /** version: 9.3.6 */
829
+ /** version: 9.4.1 */
818
830
 
819
831
  /*
820
832
  * Copyright (c) 2024, Salesforce, Inc.
@@ -2131,6 +2143,36 @@ function* toIteratorDirective(iterable) {
2131
2143
  }
2132
2144
  }
2133
2145
 
2146
+ /** The class property that holds a component's resolved `@api` allowlist. */
2147
+ const PUBLIC_PROPERTIES_KEY = '__lwcPublicProperties__';
2148
+ /**
2149
+ * Union of a class's own `@api` names with its immediate superclass's already-resolved allowlist.
2150
+ * Stored back on each class, so this one-level union chains transitively up the prototype chain —
2151
+ * resolving the actual (incl. dynamically-chosen) superclass the compiler can't see.
2152
+ */
2153
+ function resolvePublicProperties(Component, ownPublicProps) {
2154
+ const SuperClass = Object.getPrototypeOf(Component);
2155
+ const superPublicProps = SuperClass[PUBLIC_PROPERTIES_KEY] ?? [];
2156
+ return new Set([...ownPublicProps, ...superPublicProps]);
2157
+ }
2158
+ /**
2159
+ * Attach the resolved allowlist to a class and return it. This is the single place that writes
2160
+ * `__lwcPublicProperties__`; `setStaticInternals` delegates the write here and layers on the rest
2161
+ * of its machinery (generate-markup, default template, wire adapters). The compiler emits a full
2162
+ * `setStaticInternals` only for the exported component, so it calls this directly for non-exported
2163
+ * in-file base classes, giving them their own allowlist for the runtime union (W-23508928).
2164
+ */
2165
+ function registerPublicProperties(Component, ownPublicProps) {
2166
+ const publicProps = resolvePublicProperties(Component, ownPublicProps);
2167
+ Object.defineProperty(Component, PUBLIC_PROPERTIES_KEY, {
2168
+ configurable: false,
2169
+ enumerable: false,
2170
+ writable: false,
2171
+ value: publicProps,
2172
+ });
2173
+ return publicProps;
2174
+ }
2175
+
2134
2176
  /*
2135
2177
  * Copyright (c) 2026, Salesforce, Inc.
2136
2178
  * All rights reserved.
@@ -2211,15 +2253,7 @@ function makeGenerateMarkupSync(Component, defaultTagName, publicProps, wireAdap
2211
2253
  };
2212
2254
  }
2213
2255
  function setStaticInternals(Component, defaultTagName, cmpPublicProps, wireAdapters, compilationMode, defaultTemplate) {
2214
- const SuperClass = Object.getPrototypeOf(Component);
2215
- const superPublicProps = SuperClass.__lwcPublicProperties__ ?? [];
2216
- const publicProps = new Set([...cmpPublicProps, ...superPublicProps]);
2217
- Object.defineProperty(Component, '__lwcPublicProperties__', {
2218
- configurable: false,
2219
- enumerable: false,
2220
- writable: false,
2221
- value: publicProps,
2222
- });
2256
+ const publicProps = registerPublicProperties(Component, cmpPublicProps);
2223
2257
  Object.defineProperty(Component, SYMBOL__GENERATE_MARKUP, {
2224
2258
  configurable: false,
2225
2259
  enumerable: false,
@@ -2269,6 +2303,7 @@ exports.parseSVGFragment = parseSVGFragment;
2269
2303
  exports.readonly = readonly;
2270
2304
  exports.registerComponent = registerComponent;
2271
2305
  exports.registerDecorators = registerDecorators;
2306
+ exports.registerPublicProperties = registerPublicProperties;
2272
2307
  exports.registerTemplate = registerTemplate;
2273
2308
  exports.renderAttrs = renderAttrs;
2274
2309
  exports.renderAttrsNoYield = renderAttrsNoYield;
@@ -2294,5 +2329,5 @@ exports.track = track;
2294
2329
  exports.unwrap = unwrap$1;
2295
2330
  exports.validateStyleTextContents = validateStyleTextContents;
2296
2331
  exports.wire = wire;
2297
- /** version: 9.3.6 */
2332
+ /** version: 9.4.1 */
2298
2333
  //# sourceMappingURL=index.cjs.map
package/dist/index.d.ts CHANGED
@@ -13,4 +13,5 @@ export { validateStyleTextContents } from './validate-style-text-contents';
13
13
  export { createContextProvider, establishContextfulRelationship, connectContext } from './wire';
14
14
  export { readonly } from './get-read-only-proxy';
15
15
  export { setStaticInternals } from './set-static-internals';
16
+ export { registerPublicProperties } from './register-public-properties';
16
17
  //# sourceMappingURL=index.d.ts.map
package/dist/index.js CHANGED
@@ -676,7 +676,7 @@ function normalizeTabIndex(value) {
676
676
  const shouldNormalize = value > 0 && typeof value !== 'boolean';
677
677
  return shouldNormalize ? 0 : value;
678
678
  }
679
- /** version: 9.3.6 */
679
+ /** version: 9.4.1 */
680
680
 
681
681
  /**
682
682
  * Copyright (c) 2026 Salesforce, Inc.
@@ -700,7 +700,7 @@ function normalizeTabIndex(value) {
700
700
  * @param value
701
701
  * @param msg
702
702
  */
703
- /** version: 9.3.6 */
703
+ /** version: 9.4.1 */
704
704
 
705
705
  /*
706
706
  * Copyright (c) 2023, salesforce.com, inc.
@@ -724,7 +724,7 @@ class SignalBaseClass {
724
724
  }
725
725
  }
726
726
  }
727
- /** version: 9.3.6 */
727
+ /** version: 9.4.1 */
728
728
 
729
729
  /**
730
730
  * Copyright (c) 2026 Salesforce, Inc.
@@ -750,6 +750,18 @@ const features = {
750
750
  DISABLE_HOST_ATTACH_SHADOW_GUARD: null,
751
751
  DISABLE_STRICT_VALIDATION: null,
752
752
  DISABLE_DETACHED_REHYDRATION: null,
753
+ DISABLE_BRIDGE_ELEMENT_PROPERTY_GUARD: null,
754
+ // Remove in 270
755
+ ENABLE_LEGACY_ITEM_POLYFILL: null,
756
+ // Remove in 270
757
+ ENABLE_SHADOW_ROOT_UNDEFINED_GET_ELEMENT_BY_ID: null,
758
+ // Remove in 270
759
+ ENABLE_BROKEN_HTML_COLLECTION_NAMED_ITEM: null,
760
+ // Remove in 270
761
+ ENABLE_LEGACY_ATTRIBUTE_CHANGED_CALLBACK: null,
762
+ // Remove in 270
763
+ DISABLE_HYDRATION_CUSTOM_ELEMENT_CHECK: null,
764
+ DISABLE_SANITIZED_HTML_CONTENT_IDENTITY_CHECK: null,
753
765
  };
754
766
  if (!globalThis.lwcRuntimeFlags) {
755
767
  Object.defineProperty(globalThis, 'lwcRuntimeFlags', { value: create(null) });
@@ -810,7 +822,7 @@ function setFeatureFlagForTest(name, value) {
810
822
  setFeatureFlag(name, value);
811
823
  }
812
824
  }
813
- /** version: 9.3.6 */
825
+ /** version: 9.4.1 */
814
826
 
815
827
  /*
816
828
  * Copyright (c) 2024, Salesforce, Inc.
@@ -2127,6 +2139,36 @@ function* toIteratorDirective(iterable) {
2127
2139
  }
2128
2140
  }
2129
2141
 
2142
+ /** The class property that holds a component's resolved `@api` allowlist. */
2143
+ const PUBLIC_PROPERTIES_KEY = '__lwcPublicProperties__';
2144
+ /**
2145
+ * Union of a class's own `@api` names with its immediate superclass's already-resolved allowlist.
2146
+ * Stored back on each class, so this one-level union chains transitively up the prototype chain —
2147
+ * resolving the actual (incl. dynamically-chosen) superclass the compiler can't see.
2148
+ */
2149
+ function resolvePublicProperties(Component, ownPublicProps) {
2150
+ const SuperClass = Object.getPrototypeOf(Component);
2151
+ const superPublicProps = SuperClass[PUBLIC_PROPERTIES_KEY] ?? [];
2152
+ return new Set([...ownPublicProps, ...superPublicProps]);
2153
+ }
2154
+ /**
2155
+ * Attach the resolved allowlist to a class and return it. This is the single place that writes
2156
+ * `__lwcPublicProperties__`; `setStaticInternals` delegates the write here and layers on the rest
2157
+ * of its machinery (generate-markup, default template, wire adapters). The compiler emits a full
2158
+ * `setStaticInternals` only for the exported component, so it calls this directly for non-exported
2159
+ * in-file base classes, giving them their own allowlist for the runtime union (W-23508928).
2160
+ */
2161
+ function registerPublicProperties(Component, ownPublicProps) {
2162
+ const publicProps = resolvePublicProperties(Component, ownPublicProps);
2163
+ Object.defineProperty(Component, PUBLIC_PROPERTIES_KEY, {
2164
+ configurable: false,
2165
+ enumerable: false,
2166
+ writable: false,
2167
+ value: publicProps,
2168
+ });
2169
+ return publicProps;
2170
+ }
2171
+
2130
2172
  /*
2131
2173
  * Copyright (c) 2026, Salesforce, Inc.
2132
2174
  * All rights reserved.
@@ -2207,15 +2249,7 @@ function makeGenerateMarkupSync(Component, defaultTagName, publicProps, wireAdap
2207
2249
  };
2208
2250
  }
2209
2251
  function setStaticInternals(Component, defaultTagName, cmpPublicProps, wireAdapters, compilationMode, defaultTemplate) {
2210
- const SuperClass = Object.getPrototypeOf(Component);
2211
- const superPublicProps = SuperClass.__lwcPublicProperties__ ?? [];
2212
- const publicProps = new Set([...cmpPublicProps, ...superPublicProps]);
2213
- Object.defineProperty(Component, '__lwcPublicProperties__', {
2214
- configurable: false,
2215
- enumerable: false,
2216
- writable: false,
2217
- value: publicProps,
2218
- });
2252
+ const publicProps = registerPublicProperties(Component, cmpPublicProps);
2219
2253
  Object.defineProperty(Component, SYMBOL__GENERATE_MARKUP, {
2220
2254
  configurable: false,
2221
2255
  enumerable: false,
@@ -2234,6 +2268,6 @@ function setStaticInternals(Component, defaultTagName, cmpPublicProps, wireAdapt
2234
2268
  }
2235
2269
  }
2236
2270
 
2237
- export { ClassList, LightningElement, SYMBOL__DEFAULT_TEMPLATE, SYMBOL__GENERATE_MARKUP, SYMBOL__SET_INTERNALS, SignalBaseClass, addTrustedContext as __dangerous_do_not_use_addTrustedContext, addSlottedContent, api, connectContext$1 as connectContext, createContextProvider, createElement, establishContextfulRelationship, fallbackTmpl, fallbackTmplNoYield, freezeTemplate, getComponentDef, hasScopedStaticStylesheets, hot, htmlEscape, isComponentConstructor, isTrustedSignal, mutationTracker, normalizeClass, normalizeTabIndex, normalizeTextContent, parseFragment, parseSVGFragment, readonly, registerComponent, registerDecorators, registerTemplate, renderAttrs, renderAttrsNoYield, serverSideRenderComponent as renderComponent, renderStylesheets, renderTextContent, renderer, sanitizeAttribute, sanitizeHtmlContent, serverSideRenderComponent, setContextKeys, setFeatureFlag, setFeatureFlagForTest, setHooks, setStaticInternals, setTrustedContextSet, setTrustedSignalSet, swapComponent, swapStyle, swapTemplate, toIteratorDirective, track, unwrap$1 as unwrap, validateStyleTextContents, wire };
2238
- /** version: 9.3.6 */
2271
+ export { ClassList, LightningElement, SYMBOL__DEFAULT_TEMPLATE, SYMBOL__GENERATE_MARKUP, SYMBOL__SET_INTERNALS, SignalBaseClass, addTrustedContext as __dangerous_do_not_use_addTrustedContext, addSlottedContent, api, connectContext$1 as connectContext, createContextProvider, createElement, establishContextfulRelationship, fallbackTmpl, fallbackTmplNoYield, freezeTemplate, getComponentDef, hasScopedStaticStylesheets, hot, htmlEscape, isComponentConstructor, isTrustedSignal, mutationTracker, normalizeClass, normalizeTabIndex, normalizeTextContent, parseFragment, parseSVGFragment, readonly, registerComponent, registerDecorators, registerPublicProperties, registerTemplate, renderAttrs, renderAttrsNoYield, serverSideRenderComponent as renderComponent, renderStylesheets, renderTextContent, renderer, sanitizeAttribute, sanitizeHtmlContent, serverSideRenderComponent, setContextKeys, setFeatureFlag, setFeatureFlagForTest, setHooks, setStaticInternals, setTrustedContextSet, setTrustedSignalSet, swapComponent, swapStyle, swapTemplate, toIteratorDirective, track, unwrap$1 as unwrap, validateStyleTextContents, wire };
2272
+ /** version: 9.4.1 */
2239
2273
  //# sourceMappingURL=index.js.map
@@ -0,0 +1,18 @@
1
+ import type { LightningElementConstructor } from './lightning-element';
2
+ /** The class property that holds a component's resolved `@api` allowlist. */
3
+ export declare const PUBLIC_PROPERTIES_KEY = "__lwcPublicProperties__";
4
+ /**
5
+ * Union of a class's own `@api` names with its immediate superclass's already-resolved allowlist.
6
+ * Stored back on each class, so this one-level union chains transitively up the prototype chain —
7
+ * resolving the actual (incl. dynamically-chosen) superclass the compiler can't see.
8
+ */
9
+ export declare function resolvePublicProperties(Component: LightningElementConstructor, ownPublicProps: string[]): Set<string>;
10
+ /**
11
+ * Attach the resolved allowlist to a class and return it. This is the single place that writes
12
+ * `__lwcPublicProperties__`; `setStaticInternals` delegates the write here and layers on the rest
13
+ * of its machinery (generate-markup, default template, wire adapters). The compiler emits a full
14
+ * `setStaticInternals` only for the exported component, so it calls this directly for non-exported
15
+ * in-file base classes, giving them their own allowlist for the runtime union (W-23508928).
16
+ */
17
+ export declare function registerPublicProperties(Component: LightningElementConstructor, ownPublicProps: string[]): Set<string>;
18
+ //# sourceMappingURL=register-public-properties.d.ts.map
@@ -1,4 +1,5 @@
1
1
  import { SYMBOL__DEFAULT_TEMPLATE, type LightningElementConstructor } from './lightning-element';
2
+ import { type PUBLIC_PROPERTIES_KEY } from './register-public-properties';
2
3
  import type { CompilationMode } from '@lwc/shared';
3
4
  import type { LightningElement } from './lightning-element';
4
5
  import type { WireAdapterConstructor } from '@lwc/engine-core';
@@ -8,7 +9,7 @@ interface Template {
8
9
  stylesheetScopeToken?: string;
9
10
  }
10
11
  interface ComponentStaticInternals {
11
- __lwcPublicProperties__?: Set<string>;
12
+ [PUBLIC_PROPERTIES_KEY]?: Set<string>;
12
13
  [SYMBOL__DEFAULT_TEMPLATE]: Template;
13
14
  }
14
15
  interface WireAdapterInfo<Config extends object = object, Value = unknown> {
package/package.json CHANGED
@@ -4,7 +4,7 @@
4
4
  "You can safely modify dependencies, devDependencies, keywords, etc., but other props will be overwritten."
5
5
  ],
6
6
  "name": "@lwc/ssr-runtime",
7
- "version": "9.3.6",
7
+ "version": "9.4.1",
8
8
  "description": "Runtime complement to @lwc/ssr-compiler",
9
9
  "keywords": [
10
10
  "lwc",
@@ -53,10 +53,10 @@
53
53
  }
54
54
  },
55
55
  "devDependencies": {
56
- "@lwc/shared": "9.3.6",
57
- "@lwc/engine-core": "9.3.6",
58
- "@lwc/features": "9.3.6",
59
- "@lwc/signals": "9.3.6",
56
+ "@lwc/shared": "9.4.1",
57
+ "@lwc/engine-core": "9.4.1",
58
+ "@lwc/features": "9.4.1",
59
+ "@lwc/signals": "9.4.1",
60
60
  "observable-membrane": "2.0.0"
61
61
  }
62
62
  }