@rindo/core 4.23.2 → 4.26.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.
- package/cli/index.cjs +2 -5
- package/cli/index.js +2 -5
- package/cli/package.json +1 -1
- package/compiler/package.json +1 -1
- package/compiler/rindo.js +2463 -839
- package/dev-server/client/index.js +1 -1
- package/dev-server/client/package.json +1 -1
- package/dev-server/connector.html +2 -2
- package/dev-server/index.js +1 -1
- package/dev-server/package.json +1 -1
- package/dev-server/server-process.js +10 -10
- package/internal/app-data/package.json +1 -1
- package/internal/client/index.js +2389 -1873
- package/internal/client/package.json +1 -1
- package/internal/client/patch-browser.js +1 -1
- package/internal/client/shadow-css.js +30 -6
- package/internal/hydrate/index.js +2450 -1854
- package/internal/hydrate/package.json +1 -1
- package/internal/hydrate/runner.d.ts +22 -5
- package/internal/hydrate/runner.js +139 -45
- package/internal/package.json +1 -1
- package/internal/rindo-private.d.ts +70 -2
- package/internal/rindo-public-compiler.d.ts +31 -16
- package/internal/testing/index.js +2192 -1693
- package/internal/testing/package.json +1 -1
- package/mock-doc/index.cjs +71 -7
- package/mock-doc/index.d.ts +14 -1
- package/mock-doc/index.js +71 -7
- package/mock-doc/package.json +1 -1
- package/package.json +3 -3
- package/screenshot/index.js +1 -1
- package/screenshot/package.json +1 -1
- package/screenshot/pixel-match.js +1 -1
- package/sys/node/autoprefixer.js +2 -2
- package/sys/node/glob.js +1 -1
- package/sys/node/index.js +1 -1
- package/sys/node/package.json +1 -1
- package/sys/node/worker.js +1 -1
- package/testing/index.js +28 -19
- package/testing/jest/jest-27-and-under/matchers/html.d.ts +2 -1
- package/testing/jest/jest-28/matchers/html.d.ts +2 -1
- package/testing/jest/jest-29/matchers/html.d.ts +2 -1
- package/testing/package.json +1 -1
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@rindo/core/internal/client",
|
|
3
|
-
"version": "4.
|
|
3
|
+
"version": "4.26.0",
|
|
4
4
|
"description": "Rindo internal client platform to be imported by the Rindo Compiler and internal runtime. Breaking changes can and will happen at any time.",
|
|
5
5
|
"main": "./index.js",
|
|
6
6
|
"exports": "./index.js",
|
|
@@ -274,14 +274,14 @@ var scopeSelector = (selector, scopeSelectorText, hostSelector, slotSelector) =>
|
|
|
274
274
|
}
|
|
275
275
|
}).join(", ");
|
|
276
276
|
};
|
|
277
|
-
var scopeSelectors = (cssText, scopeSelectorText, hostSelector, slotSelector) => {
|
|
277
|
+
var scopeSelectors = (cssText, scopeSelectorText, hostSelector, slotSelector, commentOriginalSelector) => {
|
|
278
278
|
return processRules(cssText, (rule) => {
|
|
279
279
|
let selector = rule.selector;
|
|
280
280
|
let content = rule.content;
|
|
281
281
|
if (rule.selector[0] !== "@") {
|
|
282
282
|
selector = scopeSelector(rule.selector, scopeSelectorText, hostSelector, slotSelector);
|
|
283
283
|
} else if (rule.selector.startsWith("@media") || rule.selector.startsWith("@supports") || rule.selector.startsWith("@page") || rule.selector.startsWith("@document")) {
|
|
284
|
-
content = scopeSelectors(rule.content, scopeSelectorText, hostSelector, slotSelector);
|
|
284
|
+
content = scopeSelectors(rule.content, scopeSelectorText, hostSelector, slotSelector, commentOriginalSelector);
|
|
285
285
|
}
|
|
286
286
|
const cssRule = {
|
|
287
287
|
selector: selector.replace(/\s{2,}/g, " ").trim(),
|
|
@@ -290,7 +290,7 @@ var scopeSelectors = (cssText, scopeSelectorText, hostSelector, slotSelector) =>
|
|
|
290
290
|
return cssRule;
|
|
291
291
|
});
|
|
292
292
|
};
|
|
293
|
-
var scopeCssText = (cssText, scopeId, hostScopeId, slotScopeId) => {
|
|
293
|
+
var scopeCssText = (cssText, scopeId, hostScopeId, slotScopeId, commentOriginalSelector) => {
|
|
294
294
|
cssText = insertPolyfillHostInCssText(cssText);
|
|
295
295
|
cssText = convertColonHost(cssText);
|
|
296
296
|
cssText = convertColonHostContext(cssText);
|
|
@@ -298,7 +298,7 @@ var scopeCssText = (cssText, scopeId, hostScopeId, slotScopeId) => {
|
|
|
298
298
|
cssText = slotted.cssText;
|
|
299
299
|
cssText = convertShadowDOMSelectors(cssText);
|
|
300
300
|
if (scopeId) {
|
|
301
|
-
cssText = scopeSelectors(cssText, scopeId, hostScopeId, slotScopeId);
|
|
301
|
+
cssText = scopeSelectors(cssText, scopeId, hostScopeId, slotScopeId, commentOriginalSelector);
|
|
302
302
|
}
|
|
303
303
|
cssText = replaceShadowCssHost(cssText, hostScopeId);
|
|
304
304
|
cssText = cssText.replace(/>\s*\*\s+([^{, ]+)/gm, " $1 ");
|
|
@@ -315,13 +315,37 @@ var scopeCssText = (cssText, scopeId, hostScopeId, slotScopeId) => {
|
|
|
315
315
|
var replaceShadowCssHost = (cssText, hostScopeId) => {
|
|
316
316
|
return cssText.replace(/-shadowcsshost-no-combinator/g, `.${hostScopeId}`);
|
|
317
317
|
};
|
|
318
|
-
var scopeCss = (cssText, scopeId) => {
|
|
318
|
+
var scopeCss = (cssText, scopeId, commentOriginalSelector) => {
|
|
319
319
|
const hostScopeId = scopeId + "-h";
|
|
320
320
|
const slotScopeId = scopeId + "-s";
|
|
321
321
|
const commentsWithHash = extractCommentsWithHash(cssText);
|
|
322
322
|
cssText = stripComments(cssText);
|
|
323
|
-
const
|
|
323
|
+
const orgSelectors = [];
|
|
324
|
+
if (commentOriginalSelector) {
|
|
325
|
+
const processCommentedSelector = (rule) => {
|
|
326
|
+
const placeholder = `/*!@___${orgSelectors.length}___*/`;
|
|
327
|
+
const comment = `/*!@${rule.selector}*/`;
|
|
328
|
+
orgSelectors.push({ placeholder, comment });
|
|
329
|
+
rule.selector = placeholder + rule.selector;
|
|
330
|
+
return rule;
|
|
331
|
+
};
|
|
332
|
+
cssText = processRules(cssText, (rule) => {
|
|
333
|
+
if (rule.selector[0] !== "@") {
|
|
334
|
+
return processCommentedSelector(rule);
|
|
335
|
+
} else if (rule.selector.startsWith("@media") || rule.selector.startsWith("@supports") || rule.selector.startsWith("@page") || rule.selector.startsWith("@document")) {
|
|
336
|
+
rule.content = processRules(rule.content, processCommentedSelector);
|
|
337
|
+
return rule;
|
|
338
|
+
}
|
|
339
|
+
return rule;
|
|
340
|
+
});
|
|
341
|
+
}
|
|
342
|
+
const scoped = scopeCssText(cssText, scopeId, hostScopeId, slotScopeId, commentOriginalSelector);
|
|
324
343
|
cssText = [scoped.cssText, ...commentsWithHash].join("\n");
|
|
344
|
+
if (commentOriginalSelector) {
|
|
345
|
+
orgSelectors.forEach(({ placeholder, comment }) => {
|
|
346
|
+
cssText = cssText.replace(placeholder, comment);
|
|
347
|
+
});
|
|
348
|
+
}
|
|
325
349
|
scoped.slottedSelectors.forEach((slottedSelector) => {
|
|
326
350
|
const regex = new RegExp(escapeRegExpSpecialCharacters(slottedSelector.orgSelector), "g");
|
|
327
351
|
cssText = cssText.replace(regex, slottedSelector.updatedSelector);
|