@plumeria/utils 18.3.4 → 18.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.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  export type { CSSObject, StaticTable, KeyframesHashTable, ViewTransitionHashTable, CreateHashTable, CreateFunctionTable, VariantsHashTable, CreateThemeHashTable, CreateStaticHashTable, } from './types';
2
- export { objectExpressionToObject, collectLocalConsts, traverse, t, getRootIdentifier, extractOndemandStyles, deepMerge, scanAll, getFileDependencies, resolveExport, resolveComponentKey, } from './parser';
2
+ export { objectExpressionToObject, collectLocalConsts, traverse, t, getRootIdentifier, extractOndemandStyles, deepMerge, scanAll, getFileDependencies, resolveExport, resolveComponentKey, resolveThemeSelector, } from './parser';
3
3
  export type { StyleRecord } from './create';
4
4
  export { getStyleRecords } from './create';
5
5
  export type { Specificity } from 'zss-engine';
package/dist/index.js CHANGED
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.DEFAULT_STYLE_PROP = exports.timedAsync = exports.timed = exports.tally = exports.measure = exports.mark = exports.profiling = exports.collectReferenceIdentifiers = exports.getLeadingCommentLength = exports.processVariants = exports.optimizer = exports.resolveImportPath = exports.themeHashOf = exports.getStateWeights = exports.getPseudoElement = exports.getSpecificity = exports.getStyleRecords = exports.resolveComponentKey = exports.resolveExport = exports.getFileDependencies = exports.scanAll = exports.deepMerge = exports.extractOndemandStyles = exports.getRootIdentifier = exports.t = exports.traverse = exports.collectLocalConsts = exports.objectExpressionToObject = void 0;
3
+ exports.DEFAULT_STYLE_PROP = exports.timedAsync = exports.timed = exports.tally = exports.measure = exports.mark = exports.profiling = exports.collectReferenceIdentifiers = exports.getLeadingCommentLength = exports.processVariants = exports.optimizer = exports.resolveImportPath = exports.themeHashOf = exports.getStateWeights = exports.getPseudoElement = exports.getSpecificity = exports.getStyleRecords = exports.resolveThemeSelector = exports.resolveComponentKey = exports.resolveExport = exports.getFileDependencies = exports.scanAll = exports.deepMerge = exports.extractOndemandStyles = exports.getRootIdentifier = exports.t = exports.traverse = exports.collectLocalConsts = exports.objectExpressionToObject = void 0;
4
4
  var parser_1 = require("./parser");
5
5
  Object.defineProperty(exports, "objectExpressionToObject", { enumerable: true, get: function () { return parser_1.objectExpressionToObject; } });
6
6
  Object.defineProperty(exports, "collectLocalConsts", { enumerable: true, get: function () { return parser_1.collectLocalConsts; } });
@@ -13,6 +13,7 @@ Object.defineProperty(exports, "scanAll", { enumerable: true, get: function () {
13
13
  Object.defineProperty(exports, "getFileDependencies", { enumerable: true, get: function () { return parser_1.getFileDependencies; } });
14
14
  Object.defineProperty(exports, "resolveExport", { enumerable: true, get: function () { return parser_1.resolveExport; } });
15
15
  Object.defineProperty(exports, "resolveComponentKey", { enumerable: true, get: function () { return parser_1.resolveComponentKey; } });
16
+ Object.defineProperty(exports, "resolveThemeSelector", { enumerable: true, get: function () { return parser_1.resolveThemeSelector; } });
16
17
  var create_1 = require("./create");
17
18
  Object.defineProperty(exports, "getStyleRecords", { enumerable: true, get: function () { return create_1.getStyleRecords; } });
18
19
  var zss_engine_1 = require("zss-engine");
package/dist/parser.d.ts CHANGED
@@ -36,6 +36,7 @@ export declare function traverse(node: Module | JSXExpression, visitor: {
36
36
  }): void;
37
37
  export declare function objectExpressionToObject(node: ObjectExpression, staticTable: StaticTable, keyframesHashTable: KeyframesHashTable, viewTransitionHashTable: ViewTransitionHashTable, createThemeHashTable: CreateThemeHashTable, createThemeObjectTable: CreateThemeObjectTable, createHashTable: CreateHashTable, createStaticHashTable: CreateStaticHashTable, createStaticObjectTable: CreateStaticObjectTable, variantsHashTable: VariantsHashTable, resolveVariable?: (name: string) => any): CSSObject;
38
38
  export declare function collectLocalConsts(ast: Module): Record<string, any>;
39
+ export declare function resolveThemeSelector(node: Expression, staticTable: StaticTable, createStaticHashTable: CreateStaticHashTable, createStaticObjectTable: CreateStaticObjectTable): string;
39
40
  export declare function scanAll(): Tables;
40
41
  export declare function getFileDependencies(filePath: string): string[];
41
42
  export declare function resolveExport(filePath: string, exportName: string, visited?: Set<string>): {
package/dist/parser.js CHANGED
@@ -38,6 +38,7 @@ exports.resolveComponentKey = resolveComponentKey;
38
38
  exports.traverse = traverse;
39
39
  exports.objectExpressionToObject = objectExpressionToObject;
40
40
  exports.collectLocalConsts = collectLocalConsts;
41
+ exports.resolveThemeSelector = resolveThemeSelector;
41
42
  exports.scanAll = scanAll;
42
43
  exports.getFileDependencies = getFileDependencies;
43
44
  exports.resolveExport = resolveExport;
@@ -725,10 +726,10 @@ function evaluateExpression(node, staticTable, keyframesHashTable, viewTransitio
725
726
  return staticTable[node.value];
726
727
  }
727
728
  if (keyframesHashTable[node.value] !== undefined) {
728
- return keyframesHashTable[node.value];
729
+ return 'kf-' + keyframesHashTable[node.value];
729
730
  }
730
731
  if (viewTransitionHashTable[node.value] !== undefined) {
731
- return viewTransitionHashTable[node.value];
732
+ return 'vt-' + viewTransitionHashTable[node.value];
732
733
  }
733
734
  if (createStaticHashTable[node.value] !== undefined) {
734
735
  const hash = createStaticHashTable[node.value];
@@ -883,6 +884,15 @@ function resolveCreateStaticTableMemberExpression(node, createStaticHashTable, c
883
884
  }
884
885
  return undefined;
885
886
  }
887
+ function resolveThemeSelector(node, staticTable, createStaticHashTable, createStaticObjectTable) {
888
+ try {
889
+ const value = evaluateExpression(node, staticTable, {}, {}, {}, {}, createStaticHashTable, createStaticObjectTable);
890
+ return typeof value === 'string' ? value : '';
891
+ }
892
+ catch {
893
+ return '';
894
+ }
895
+ }
886
896
  const fileCache = {};
887
897
  const dependentsMap = new Map();
888
898
  let knownFiles = new Set();
@@ -1342,11 +1352,7 @@ function scanAll() {
1342
1352
  registerObjectOwner('viewTransitionObjectTable', hash, filePath);
1343
1353
  }
1344
1354
  else if (method === 'createTheme') {
1345
- let selector = '';
1346
- const selectorExpr = init.arguments[0].expression;
1347
- if (exports.t.isStringLiteral(selectorExpr)) {
1348
- selector = selectorExpr.value;
1349
- }
1355
+ const selector = resolveThemeSelector(init.arguments[0].expression, scopedStaticTable, localCreateStaticHashTable, localCreateStaticObjectTable);
1350
1356
  const hash = (0, createTheme_1.themeHashOf)(selector, obj);
1351
1357
  localTables.createThemeObjectTable[hash] = obj;
1352
1358
  localCreateThemeObjectTable[hash] = obj;
@@ -1830,6 +1836,7 @@ function resolveExport(filePath, exportName, visited = new Set()) {
1830
1836
  }
1831
1837
  return null;
1832
1838
  }
1839
+ const REFERENCE_MARKER = /(kf|vt|cr)-([0-9a-z]+)/g;
1833
1840
  function extractOndemandStyles(obj, extractedSheets, t) {
1834
1841
  if (!obj || typeof obj !== 'object')
1835
1842
  return;
@@ -1844,28 +1851,26 @@ function extractOndemandStyles(obj, extractedSheets, t) {
1844
1851
  visited.add(n);
1845
1852
  Object.values(n).forEach((val) => {
1846
1853
  if (typeof val === 'string') {
1847
- if (val.startsWith('kf-')) {
1848
- const hash = val.slice(3);
1849
- if (!keyframesHashes.has(hash)) {
1850
- keyframesHashes.add(hash);
1851
- walk(t.keyframesObjectTable[hash]);
1854
+ for (const [, kind, hash] of val.matchAll(REFERENCE_MARKER)) {
1855
+ if (kind === 'kf') {
1856
+ if (!keyframesHashes.has(hash) && t.keyframesObjectTable[hash]) {
1857
+ keyframesHashes.add(hash);
1858
+ walk(t.keyframesObjectTable[hash]);
1859
+ }
1852
1860
  }
1853
- }
1854
- else if (val.startsWith('vt-')) {
1855
- const hash = val.slice(3);
1856
- if (!viewTransitionHashes.has(hash)) {
1857
- viewTransitionHashes.add(hash);
1858
- walk(t.viewTransitionObjectTable[hash]);
1861
+ else if (kind === 'vt') {
1862
+ if (!viewTransitionHashes.has(hash) &&
1863
+ t.viewTransitionObjectTable[hash]) {
1864
+ viewTransitionHashes.add(hash);
1865
+ walk(t.viewTransitionObjectTable[hash]);
1866
+ }
1859
1867
  }
1860
- }
1861
- else if (val.startsWith('cr-')) {
1862
- const hash = val.slice(3);
1863
- if (!createHashes.has(hash)) {
1868
+ else if (!createHashes.has(hash) && t.createObjectTable[hash]) {
1864
1869
  createHashes.add(hash);
1865
1870
  walk(t.createObjectTable[hash]);
1866
1871
  }
1867
1872
  }
1868
- else if (val.includes('var(--')) {
1873
+ if (val.includes('var(--')) {
1869
1874
  let startIdx = 0;
1870
1875
  while ((startIdx = val.indexOf('var(--', startIdx)) !== -1) {
1871
1876
  startIdx += 4;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@plumeria/utils",
3
- "version": "18.3.4",
3
+ "version": "18.3.6",
4
4
  "description": "Internal helpers shared by the Plumeria compiler and bundler plugins.",
5
5
  "author": "Refirst 11",
6
6
  "license": "MIT",