@lwc/synthetic-shadow 9.3.4 → 9.3.6

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
@@ -4,7 +4,7 @@
4
4
  if (!globalThis.lwcRuntimeFlags) {
5
5
  Object.defineProperty(globalThis, 'lwcRuntimeFlags', { value: Object.create(null) });
6
6
  }
7
- if (!lwcRuntimeFlags.ENABLE_FORCE_SHADOW_MIGRATE_MODE && !lwcRuntimeFlags.DISABLE_SYNTHETIC_SHADOW) {
7
+ if (!lwcRuntimeFlags.DISABLE_SYNTHETIC_SHADOW) {
8
8
  'use strict';
9
9
 
10
10
  /**
@@ -191,13 +191,10 @@ const KEY__SHADOW_STATIC = '$shadowStaticNode$';
191
191
  const KEY__SHADOW_STATIC_PRIVATE = '$shadowStaticNodeKey$';
192
192
  const KEY__SHADOW_TOKEN = '$shadowToken$';
193
193
  const KEY__SHADOW_TOKEN_PRIVATE = '$$ShadowTokenKey$$';
194
- // TODO [#3733]: remove support for legacy scope tokens
195
- const KEY__LEGACY_SHADOW_TOKEN = '$legacyShadowToken$';
196
- const KEY__LEGACY_SHADOW_TOKEN_PRIVATE = '$$LegacyShadowTokenKey$$';
197
194
  const KEY__SYNTHETIC_MODE = '$$lwc-synthetic-mode';
198
195
  const KEY__NATIVE_GET_ELEMENT_BY_ID = '$nativeGetElementById$';
199
196
  const KEY__NATIVE_QUERY_SELECTOR_ALL = '$nativeQuerySelectorAll$';
200
- /** version: 9.3.4 */
197
+ /** version: 9.3.6 */
201
198
 
202
199
  /**
203
200
  * Copyright (c) 2026 Salesforce, Inc.
@@ -205,7 +202,7 @@ const KEY__NATIVE_QUERY_SELECTOR_ALL = '$nativeQuerySelectorAll$';
205
202
  if (!globalThis.lwcRuntimeFlags) {
206
203
  Object.defineProperty(globalThis, 'lwcRuntimeFlags', { value: create(null) });
207
204
  }
208
- /** version: 9.3.4 */
205
+ /** version: 9.3.6 */
209
206
 
210
207
  /*
211
208
  * Copyright (c) 2018, salesforce.com, inc.
@@ -4231,40 +4228,6 @@ defineProperty(Element.prototype, KEY__SHADOW_STATIC, {
4231
4228
  configurable: true,
4232
4229
  });
4233
4230
 
4234
- /*
4235
- * Copyright (c) 2023, salesforce.com, inc.
4236
- * All rights reserved.
4237
- * SPDX-License-Identifier: MIT
4238
- * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/MIT
4239
- */
4240
- // TODO [#3733]: remove this entire file when we can remove legacy scope tokens
4241
- function getLegacyShadowToken(node) {
4242
- return node[KEY__LEGACY_SHADOW_TOKEN];
4243
- }
4244
- function setLegacyShadowToken(node, shadowToken) {
4245
- node[KEY__LEGACY_SHADOW_TOKEN] = shadowToken;
4246
- }
4247
- /**
4248
- * Patching Element.prototype.$legacyShadowToken$ to mark elements a portal:
4249
- * Same as $shadowToken$ but for legacy CSS scope tokens.
4250
- */
4251
- defineProperty(Element.prototype, KEY__LEGACY_SHADOW_TOKEN, {
4252
- set(shadowToken) {
4253
- const oldShadowToken = this[KEY__LEGACY_SHADOW_TOKEN_PRIVATE];
4254
- if (!isUndefined(oldShadowToken) && oldShadowToken !== shadowToken) {
4255
- removeAttribute.call(this, oldShadowToken);
4256
- }
4257
- if (!isUndefined(shadowToken)) {
4258
- setAttribute.call(this, shadowToken, '');
4259
- }
4260
- this[KEY__LEGACY_SHADOW_TOKEN_PRIVATE] = shadowToken;
4261
- },
4262
- get() {
4263
- return this[KEY__LEGACY_SHADOW_TOKEN_PRIVATE];
4264
- },
4265
- configurable: true,
4266
- });
4267
-
4268
4231
  /*
4269
4232
  * Copyright (c) 2018, salesforce.com, inc.
4270
4233
  * All rights reserved.
@@ -4282,8 +4245,7 @@ let portalObserver;
4282
4245
  const portalObserverConfig = {
4283
4246
  childList: true,
4284
4247
  };
4285
- // TODO [#3733]: remove support for legacy scope tokens
4286
- function adoptChildNode(node, fn, shadowToken, legacyShadowToken) {
4248
+ function adoptChildNode(node, fn, shadowToken) {
4287
4249
  const previousNodeShadowResolver = getShadowRootResolver(node);
4288
4250
  if (previousNodeShadowResolver === fn) {
4289
4251
  return; // nothing to do here, it is already correctly patched
@@ -4291,9 +4253,6 @@ function adoptChildNode(node, fn, shadowToken, legacyShadowToken) {
4291
4253
  setShadowRootResolver(node, fn);
4292
4254
  if (node instanceof Element) {
4293
4255
  setShadowToken(node, shadowToken);
4294
- if (lwcRuntimeFlags.ENABLE_LEGACY_SCOPE_TOKENS) {
4295
- setLegacyShadowToken(node, legacyShadowToken);
4296
- }
4297
4256
  if (isSyntheticShadowHost(node)) {
4298
4257
  // Root LWC elements can't get content slotted into them, therefore we don't observe their children.
4299
4258
  return;
@@ -4305,7 +4264,7 @@ function adoptChildNode(node, fn, shadowToken, legacyShadowToken) {
4305
4264
  // recursively patching all children as well
4306
4265
  const childNodes = childNodesGetter.call(node);
4307
4266
  for (let i = 0, len = childNodes.length; i < len; i += 1) {
4308
- adoptChildNode(childNodes[i], fn, shadowToken, legacyShadowToken);
4267
+ adoptChildNode(childNodes[i], fn, shadowToken);
4309
4268
  }
4310
4269
  }
4311
4270
  }
@@ -4326,20 +4285,17 @@ function initPortalObserver() {
4326
4285
  // the target of the mutation should always have a ShadowRootResolver attached to it
4327
4286
  const fn = getShadowRootResolver(elm);
4328
4287
  const shadowToken = getShadowToken(elm);
4329
- const legacyShadowToken = lwcRuntimeFlags.ENABLE_LEGACY_SCOPE_TOKENS
4330
- ? getLegacyShadowToken(elm)
4331
- : undefined;
4332
4288
  // Process removals first to handle the case where an element is removed and reinserted
4333
4289
  for (let i = 0, len = removedNodes.length; i < len; i += 1) {
4334
4290
  const node = removedNodes[i];
4335
4291
  if (!(compareDocumentPosition.call(elm, node) & _Node.DOCUMENT_POSITION_CONTAINED_BY)) {
4336
- adoptChildNode(node, DocumentResolverFn, undefined, undefined);
4292
+ adoptChildNode(node, DocumentResolverFn, undefined);
4337
4293
  }
4338
4294
  }
4339
4295
  for (let i = 0, len = addedNodes.length; i < len; i += 1) {
4340
4296
  const node = addedNodes[i];
4341
4297
  if (compareDocumentPosition.call(elm, node) & _Node.DOCUMENT_POSITION_CONTAINED_BY) {
4342
- adoptChildNode(node, fn, shadowToken, legacyShadowToken);
4298
+ adoptChildNode(node, fn, shadowToken);
4343
4299
  }
4344
4300
  }
4345
4301
  });
@@ -4382,6 +4338,6 @@ defineProperty(Element.prototype, '$domManual$', {
4382
4338
  },
4383
4339
  configurable: true,
4384
4340
  });
4385
- /** version: 9.3.4 */
4341
+ /** version: 9.3.6 */
4386
4342
  }
4387
4343
  //# sourceMappingURL=index.cjs.map
package/dist/index.js CHANGED
@@ -4,7 +4,7 @@
4
4
  if (!globalThis.lwcRuntimeFlags) {
5
5
  Object.defineProperty(globalThis, 'lwcRuntimeFlags', { value: Object.create(null) });
6
6
  }
7
- if (!lwcRuntimeFlags.ENABLE_FORCE_SHADOW_MIGRATE_MODE && !lwcRuntimeFlags.DISABLE_SYNTHETIC_SHADOW) {
7
+ if (!lwcRuntimeFlags.DISABLE_SYNTHETIC_SHADOW) {
8
8
  /**
9
9
  * Copyright (c) 2026 Salesforce, Inc.
10
10
  */
@@ -189,13 +189,10 @@ const KEY__SHADOW_STATIC = '$shadowStaticNode$';
189
189
  const KEY__SHADOW_STATIC_PRIVATE = '$shadowStaticNodeKey$';
190
190
  const KEY__SHADOW_TOKEN = '$shadowToken$';
191
191
  const KEY__SHADOW_TOKEN_PRIVATE = '$$ShadowTokenKey$$';
192
- // TODO [#3733]: remove support for legacy scope tokens
193
- const KEY__LEGACY_SHADOW_TOKEN = '$legacyShadowToken$';
194
- const KEY__LEGACY_SHADOW_TOKEN_PRIVATE = '$$LegacyShadowTokenKey$$';
195
192
  const KEY__SYNTHETIC_MODE = '$$lwc-synthetic-mode';
196
193
  const KEY__NATIVE_GET_ELEMENT_BY_ID = '$nativeGetElementById$';
197
194
  const KEY__NATIVE_QUERY_SELECTOR_ALL = '$nativeQuerySelectorAll$';
198
- /** version: 9.3.4 */
195
+ /** version: 9.3.6 */
199
196
 
200
197
  /**
201
198
  * Copyright (c) 2026 Salesforce, Inc.
@@ -203,7 +200,7 @@ const KEY__NATIVE_QUERY_SELECTOR_ALL = '$nativeQuerySelectorAll$';
203
200
  if (!globalThis.lwcRuntimeFlags) {
204
201
  Object.defineProperty(globalThis, 'lwcRuntimeFlags', { value: create(null) });
205
202
  }
206
- /** version: 9.3.4 */
203
+ /** version: 9.3.6 */
207
204
 
208
205
  /*
209
206
  * Copyright (c) 2018, salesforce.com, inc.
@@ -4229,40 +4226,6 @@ defineProperty(Element.prototype, KEY__SHADOW_STATIC, {
4229
4226
  configurable: true,
4230
4227
  });
4231
4228
 
4232
- /*
4233
- * Copyright (c) 2023, salesforce.com, inc.
4234
- * All rights reserved.
4235
- * SPDX-License-Identifier: MIT
4236
- * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/MIT
4237
- */
4238
- // TODO [#3733]: remove this entire file when we can remove legacy scope tokens
4239
- function getLegacyShadowToken(node) {
4240
- return node[KEY__LEGACY_SHADOW_TOKEN];
4241
- }
4242
- function setLegacyShadowToken(node, shadowToken) {
4243
- node[KEY__LEGACY_SHADOW_TOKEN] = shadowToken;
4244
- }
4245
- /**
4246
- * Patching Element.prototype.$legacyShadowToken$ to mark elements a portal:
4247
- * Same as $shadowToken$ but for legacy CSS scope tokens.
4248
- */
4249
- defineProperty(Element.prototype, KEY__LEGACY_SHADOW_TOKEN, {
4250
- set(shadowToken) {
4251
- const oldShadowToken = this[KEY__LEGACY_SHADOW_TOKEN_PRIVATE];
4252
- if (!isUndefined(oldShadowToken) && oldShadowToken !== shadowToken) {
4253
- removeAttribute.call(this, oldShadowToken);
4254
- }
4255
- if (!isUndefined(shadowToken)) {
4256
- setAttribute.call(this, shadowToken, '');
4257
- }
4258
- this[KEY__LEGACY_SHADOW_TOKEN_PRIVATE] = shadowToken;
4259
- },
4260
- get() {
4261
- return this[KEY__LEGACY_SHADOW_TOKEN_PRIVATE];
4262
- },
4263
- configurable: true,
4264
- });
4265
-
4266
4229
  /*
4267
4230
  * Copyright (c) 2018, salesforce.com, inc.
4268
4231
  * All rights reserved.
@@ -4280,8 +4243,7 @@ let portalObserver;
4280
4243
  const portalObserverConfig = {
4281
4244
  childList: true,
4282
4245
  };
4283
- // TODO [#3733]: remove support for legacy scope tokens
4284
- function adoptChildNode(node, fn, shadowToken, legacyShadowToken) {
4246
+ function adoptChildNode(node, fn, shadowToken) {
4285
4247
  const previousNodeShadowResolver = getShadowRootResolver(node);
4286
4248
  if (previousNodeShadowResolver === fn) {
4287
4249
  return; // nothing to do here, it is already correctly patched
@@ -4289,9 +4251,6 @@ function adoptChildNode(node, fn, shadowToken, legacyShadowToken) {
4289
4251
  setShadowRootResolver(node, fn);
4290
4252
  if (node instanceof Element) {
4291
4253
  setShadowToken(node, shadowToken);
4292
- if (lwcRuntimeFlags.ENABLE_LEGACY_SCOPE_TOKENS) {
4293
- setLegacyShadowToken(node, legacyShadowToken);
4294
- }
4295
4254
  if (isSyntheticShadowHost(node)) {
4296
4255
  // Root LWC elements can't get content slotted into them, therefore we don't observe their children.
4297
4256
  return;
@@ -4303,7 +4262,7 @@ function adoptChildNode(node, fn, shadowToken, legacyShadowToken) {
4303
4262
  // recursively patching all children as well
4304
4263
  const childNodes = childNodesGetter.call(node);
4305
4264
  for (let i = 0, len = childNodes.length; i < len; i += 1) {
4306
- adoptChildNode(childNodes[i], fn, shadowToken, legacyShadowToken);
4265
+ adoptChildNode(childNodes[i], fn, shadowToken);
4307
4266
  }
4308
4267
  }
4309
4268
  }
@@ -4324,20 +4283,17 @@ function initPortalObserver() {
4324
4283
  // the target of the mutation should always have a ShadowRootResolver attached to it
4325
4284
  const fn = getShadowRootResolver(elm);
4326
4285
  const shadowToken = getShadowToken(elm);
4327
- const legacyShadowToken = lwcRuntimeFlags.ENABLE_LEGACY_SCOPE_TOKENS
4328
- ? getLegacyShadowToken(elm)
4329
- : undefined;
4330
4286
  // Process removals first to handle the case where an element is removed and reinserted
4331
4287
  for (let i = 0, len = removedNodes.length; i < len; i += 1) {
4332
4288
  const node = removedNodes[i];
4333
4289
  if (!(compareDocumentPosition.call(elm, node) & _Node.DOCUMENT_POSITION_CONTAINED_BY)) {
4334
- adoptChildNode(node, DocumentResolverFn, undefined, undefined);
4290
+ adoptChildNode(node, DocumentResolverFn, undefined);
4335
4291
  }
4336
4292
  }
4337
4293
  for (let i = 0, len = addedNodes.length; i < len; i += 1) {
4338
4294
  const node = addedNodes[i];
4339
4295
  if (compareDocumentPosition.call(elm, node) & _Node.DOCUMENT_POSITION_CONTAINED_BY) {
4340
- adoptChildNode(node, fn, shadowToken, legacyShadowToken);
4296
+ adoptChildNode(node, fn, shadowToken);
4341
4297
  }
4342
4298
  }
4343
4299
  });
@@ -4380,6 +4336,6 @@ defineProperty(Element.prototype, '$domManual$', {
4380
4336
  },
4381
4337
  configurable: true,
4382
4338
  });
4383
- /** version: 9.3.4 */
4339
+ /** version: 9.3.6 */
4384
4340
  }
4385
4341
  //# sourceMappingURL=index.js.map
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/synthetic-shadow",
7
- "version": "9.3.4",
7
+ "version": "9.3.6",
8
8
  "description": "Synthetic Shadow Root for LWC",
9
9
  "keywords": [
10
10
  "lwc"
@@ -51,8 +51,8 @@
51
51
  }
52
52
  },
53
53
  "devDependencies": {
54
- "@lwc/features": "9.3.4",
55
- "@lwc/shared": "9.3.4"
54
+ "@lwc/features": "9.3.6",
55
+ "@lwc/shared": "9.3.6"
56
56
  },
57
57
  "lwc": {
58
58
  "modules": [
@@ -1,3 +0,0 @@
1
- export declare function getLegacyShadowToken(node: Node): string | undefined;
2
- export declare function setLegacyShadowToken(node: Node, shadowToken: string | undefined): void;
3
- //# sourceMappingURL=legacy-shadow-token.d.ts.map