@plumeria/utils 6.2.1 → 6.3.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/create.d.ts CHANGED
@@ -4,4 +4,4 @@ export interface StyleRecord {
4
4
  hash: string;
5
5
  sheet: string;
6
6
  }
7
- export declare function getStyleRecords(key: string, styleRule: CSSProperties, priority?: number): StyleRecord[];
7
+ export declare function getStyleRecords(key: string, styleRule: CSSProperties): StyleRecord[];
package/dist/create.js CHANGED
@@ -2,10 +2,10 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.getStyleRecords = getStyleRecords;
4
4
  const zss_engine_1 = require("zss-engine");
5
- function getStyleRecords(key, styleRule, priority = 1 | 2) {
5
+ function getStyleRecords(key, styleRule) {
6
6
  const flat = {};
7
7
  const nonFlat = {};
8
- const notNormalize = priority === 1 ? ':not(#\\#)' : ':not(#\\#):not(#\\#)';
8
+ const notNormalize = ':not(#\\#)';
9
9
  (0, zss_engine_1.splitAtomicAndNested)(styleRule, flat, nonFlat);
10
10
  const finalFlat = (0, zss_engine_1.overrideLonghand)(flat);
11
11
  const records = [];
@@ -73,10 +73,9 @@ function getStyleRecords(key, styleRule, priority = 1 | 2) {
73
73
  else {
74
74
  hashSource = { [selector]: hashSource };
75
75
  }
76
- const suffix = atRule ? notNormalize : ':not(#\\#)';
77
76
  const hash = (0, zss_engine_1.genBase36Hash)(hashSource, 1, 8);
78
77
  let sheet = (0, zss_engine_1.transpileAtomic)(prop, value, hash, normalizedSelector);
79
- sheet = sheet.replace(`.${hash}`, `.${hash}${suffix}`);
78
+ sheet = sheet.replace(`.${hash}`, `.${hash}${notNormalize}`);
80
79
  if (atRule) {
81
80
  sheet = `${atRule} { ${sheet} }`;
82
81
  }
package/dist/index.d.ts CHANGED
@@ -1,5 +1,7 @@
1
1
  export type { CSSObject, FileStyles, StaticTable, KeyframesHashTable, KeyframesObjectTable, ViewTransitionHashTable, ViewTransitionObjectTable, CreateThemeObjectTable, CreateHashTable, CreateObjectTable, VariantsHashTable, VariantsObjectTable, CreateThemeHashTable, CreateStaticHashTable, CreateStaticObjectTable, } from './types';
2
2
  export { objectExpressionToObject, collectLocalConsts, traverse, t, extractOndemandStyles, deepMerge, scanAll, } from './parser';
3
- export { getStyleRecords } from './create';
4
3
  export type { StyleRecord } from './create';
4
+ export { getStyleRecords } from './create';
5
+ export { createTheme } from './createTheme';
5
6
  export { resolveImportPath } from './resolver';
7
+ export { optimizer } from './optimizer';
package/dist/index.js CHANGED
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.resolveImportPath = exports.getStyleRecords = exports.scanAll = exports.deepMerge = exports.extractOndemandStyles = exports.t = exports.traverse = exports.collectLocalConsts = exports.objectExpressionToObject = void 0;
3
+ exports.optimizer = exports.resolveImportPath = exports.createTheme = exports.getStyleRecords = exports.scanAll = exports.deepMerge = exports.extractOndemandStyles = 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; } });
@@ -11,5 +11,9 @@ Object.defineProperty(exports, "deepMerge", { enumerable: true, get: function ()
11
11
  Object.defineProperty(exports, "scanAll", { enumerable: true, get: function () { return parser_1.scanAll; } });
12
12
  var create_1 = require("./create");
13
13
  Object.defineProperty(exports, "getStyleRecords", { enumerable: true, get: function () { return create_1.getStyleRecords; } });
14
+ var createTheme_1 = require("./createTheme");
15
+ Object.defineProperty(exports, "createTheme", { enumerable: true, get: function () { return createTheme_1.createTheme; } });
14
16
  var resolver_1 = require("./resolver");
15
17
  Object.defineProperty(exports, "resolveImportPath", { enumerable: true, get: function () { return resolver_1.resolveImportPath; } });
18
+ var optimizer_1 = require("./optimizer");
19
+ Object.defineProperty(exports, "optimizer", { enumerable: true, get: function () { return optimizer_1.optimizer; } });
@@ -0,0 +1 @@
1
+ export declare function optimizer(cssCode: string): Promise<string>;
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.optimizer = optimizer;
7
+ const postcss_1 = __importDefault(require("postcss"));
8
+ const postcss_combine_media_query_1 = __importDefault(require("postcss-combine-media-query"));
9
+ const lightningcss_1 = require("lightningcss");
10
+ async function optimizer(cssCode) {
11
+ const merged = await (0, postcss_1.default)([(0, postcss_combine_media_query_1.default)()]).process(cssCode, {
12
+ from: undefined,
13
+ });
14
+ const light = (0, lightningcss_1.transform)({
15
+ filename: 'global.css',
16
+ code: Buffer.from(merged.css),
17
+ minify: true,
18
+ targets: {
19
+ safari: 16,
20
+ edge: 110,
21
+ firefox: 110,
22
+ chrome: 110,
23
+ },
24
+ });
25
+ return Buffer.from(light.code).toString('utf-8');
26
+ }
package/dist/parser.js CHANGED
@@ -227,6 +227,9 @@ function getPropertyKey(node, staticTable, keyframesHashTable, viewTransitionHas
227
227
  const staticResult = resolveCreateStaticTableMemberExpression(expr, createStaticHashTable, createStaticObjectTable);
228
228
  if (typeof staticResult === 'string')
229
229
  return staticResult;
230
+ const themeResult = resolveCreateThemeTableMemberExpressionByNode(expr, createThemeHashTable, createThemeObjectTable);
231
+ if (typeof themeResult === 'string')
232
+ return themeResult;
230
233
  }
231
234
  if (exports.t.isTemplateLiteral(expr)) {
232
235
  return evaluateTemplateLiteral(expr, staticTable, keyframesHashTable, viewTransitionHashTable, createThemeHashTable, createThemeObjectTable, createStaticHashTable, createStaticObjectTable);
@@ -453,18 +456,8 @@ function scanAll() {
453
456
  extractedSheet: '',
454
457
  };
455
458
  const files = fs_1.default.globSync(PATTERN_PATH, GLOB_OPTIONS);
456
- files.sort((a, b) => {
457
- const aPriority = a.includes('/lib/') || a.includes('/utils/') || a.includes('/common/')
458
- ? 0
459
- : 1;
460
- const bPriority = b.includes('/lib/') || b.includes('/utils/') || b.includes('/common/')
461
- ? 0
462
- : 1;
463
- if (aPriority !== bPriority)
464
- return aPriority - bPriority;
465
- return a.localeCompare(b);
466
- });
467
459
  const totalExtractedSheets = [];
460
+ const currentScanThemeObjectTable = {};
468
461
  for (let passNumber = 1; passNumber <= 2; passNumber++) {
469
462
  const isFirstPass = passNumber === 1;
470
463
  for (const filePath of files) {
@@ -500,6 +493,8 @@ function scanAll() {
500
493
  for (const key of Object.keys(cached.createThemeObjectTable)) {
501
494
  localTables.createThemeObjectTable[key] =
502
495
  cached.createThemeObjectTable[key];
496
+ currentScanThemeObjectTable[key] =
497
+ cached.createThemeObjectTable[key];
503
498
  }
504
499
  for (const key of Object.keys(cached.createStaticHashTable)) {
505
500
  localTables.createStaticHashTable[`${filePath}-${key}`] =
@@ -625,9 +620,21 @@ function scanAll() {
625
620
  if (localTables.createThemeHashTable[uniqueKey]) {
626
621
  const hash = localTables.createThemeHashTable[uniqueKey];
627
622
  localCreateThemeHashTable[localName] = hash;
628
- if (localTables.createThemeObjectTable[hash]) {
629
- localCreateThemeObjectTable[hash] =
630
- localTables.createThemeObjectTable[hash];
623
+ }
624
+ if (localTables.keyframesHashTable[uniqueKey]) {
625
+ const hash = localTables.keyframesHashTable[uniqueKey];
626
+ localKeyframesHashTable[localName] = hash;
627
+ if (localTables.keyframesObjectTable[hash]) {
628
+ localKeyframesObjectTable[hash] =
629
+ localTables.keyframesObjectTable[hash];
630
+ }
631
+ }
632
+ if (localTables.viewTransitionHashTable[uniqueKey]) {
633
+ const hash = localTables.viewTransitionHashTable[uniqueKey];
634
+ localViewTransitionHashTable[localName] = hash;
635
+ if (localTables.viewTransitionObjectTable[hash]) {
636
+ localViewTransitionObjectTable[hash] =
637
+ localTables.viewTransitionObjectTable[hash];
631
638
  }
632
639
  }
633
640
  }
@@ -684,7 +691,10 @@ function scanAll() {
684
691
  };
685
692
  const obj = objectExpressionToObject(init.arguments[0].expression, localStaticTable, localKeyframesHashTable, localViewTransitionHashTable, localCreateThemeHashTable, localCreateThemeObjectTable, localCreateHashTable, localCreateStaticHashTable, localCreateStaticObjectTable, localVariantsHashTable, resolveVariable);
686
693
  const uniqueKey = `${filePath}-${name}`;
687
- const isPassOneMethod = method === 'createStatic' || method === 'createTheme';
694
+ const isPassOneMethod = method === 'createStatic' ||
695
+ method === 'createTheme' ||
696
+ method === 'keyframes' ||
697
+ method === 'viewTransition';
688
698
  if (isFirstPass && !isPassOneMethod)
689
699
  continue;
690
700
  if (method === 'createStatic') {
@@ -724,7 +734,6 @@ function scanAll() {
724
734
  localTables.viewTransitionObjectTable[hash] = obj;
725
735
  localViewTransitionObjectTable[hash] = obj;
726
736
  if (!isProduction) {
727
- extractOndemandStyles(obj, fileExtractedSheets, localTables);
728
737
  extractOndemandStyles({ vt: `vt-${hash}` }, fileExtractedSheets, localTables);
729
738
  }
730
739
  }
@@ -734,6 +743,13 @@ function scanAll() {
734
743
  localCreateThemeObjectTable[hash] = obj;
735
744
  localCreateThemeHashTable[name] = hash;
736
745
  localTables.createThemeHashTable[uniqueKey] = hash;
746
+ currentScanThemeObjectTable[hash] = obj;
747
+ const hashMap = {};
748
+ for (const [key] of Object.entries(obj)) {
749
+ const cssVarName = (0, zss_engine_1.camelToKebabCase)(key);
750
+ hashMap[key] = `var(--${cssVarName})`;
751
+ }
752
+ localTables.createAtomicMapTable[hash] = hashMap;
737
753
  }
738
754
  else if (method === 'create') {
739
755
  const hash = (0, zss_engine_1.genBase36Hash)(obj, 1, 8);
@@ -743,7 +759,7 @@ function scanAll() {
743
759
  localCreateObjectTable[hash] = obj;
744
760
  const hashMap = {};
745
761
  Object.entries(obj).forEach(([key, style]) => {
746
- const records = (0, create_1.getStyleRecords)(key, style, 2);
762
+ const records = (0, create_1.getStyleRecords)(key, style);
747
763
  const atomMap = {};
748
764
  records.forEach((r) => (atomMap[r.key] = r.hash));
749
765
  hashMap[key] = atomMap;
@@ -828,7 +844,7 @@ function extractOndemandStyles(obj, extractedSheets, t) {
828
844
  else if (val.startsWith('cr-')) {
829
845
  createHashes.add(val.slice(3));
830
846
  }
831
- else if (!needsTheme && val.includes('var(--')) {
847
+ else if (val.includes('var(--')) {
832
848
  needsTheme = true;
833
849
  }
834
850
  }
@@ -868,7 +884,7 @@ function extractOndemandStyles(obj, extractedSheets, t) {
868
884
  const obj = t.createObjectTable[hash];
869
885
  if (obj) {
870
886
  Object.entries(obj).forEach(([key, style]) => {
871
- const records = (0, create_1.getStyleRecords)(key, style, 2);
887
+ const records = (0, create_1.getStyleRecords)(key, style);
872
888
  records.forEach((r) => addSheet(r.sheet));
873
889
  });
874
890
  }
package/dist/resolver.js CHANGED
@@ -20,7 +20,7 @@ function getTsConfig(startDir) {
20
20
  };
21
21
  }
22
22
  while (currentDir !== path_1.default.parse(currentDir).root) {
23
- const tsConfigPath = path_1.default.join(currentDir, 'tsconfig.json');
23
+ const tsConfigPath = path_1.default.join(process.cwd(), 'tsconfig.json');
24
24
  if (fs_1.default.existsSync(tsConfigPath)) {
25
25
  if (!tsConfigCache.has(tsConfigPath)) {
26
26
  try {
@@ -34,7 +34,7 @@ function getTsConfig(startDir) {
34
34
  tsConfigPathCache.set(startDir, tsConfigPath);
35
35
  return {
36
36
  config: tsConfigCache.get(tsConfigPath) ?? null,
37
- basePath: currentDir,
37
+ basePath: path_1.default.dirname(tsConfigPath),
38
38
  };
39
39
  }
40
40
  currentDir = path_1.default.dirname(currentDir);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@plumeria/utils",
3
- "version": "6.2.1",
3
+ "version": "6.3.1",
4
4
  "description": "Plumeria Utils",
5
5
  "author": "Refirst 11",
6
6
  "license": "MIT",
@@ -22,7 +22,10 @@
22
22
  ],
23
23
  "dependencies": {
24
24
  "@swc/core": "1.15.8",
25
- "zss-engine": "2.2.0"
25
+ "zss-engine": "2.2.0",
26
+ "postcss": "8.5.6",
27
+ "postcss-combine-media-query": "^2.1.0",
28
+ "lightningcss": "^1.30.2"
26
29
  },
27
30
  "publishConfig": {
28
31
  "access": "public",