@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 +1 -1
- package/dist/create.js +3 -4
- package/dist/index.d.ts +3 -1
- package/dist/index.js +5 -1
- package/dist/optimizer.d.ts +1 -0
- package/dist/optimizer.js +26 -0
- package/dist/parser.js +35 -19
- package/dist/resolver.js +2 -2
- package/package.json +5 -2
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
|
|
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
|
|
5
|
+
function getStyleRecords(key, styleRule) {
|
|
6
6
|
const flat = {};
|
|
7
7
|
const nonFlat = {};
|
|
8
|
-
const notNormalize =
|
|
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}${
|
|
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
|
-
|
|
629
|
-
|
|
630
|
-
|
|
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' ||
|
|
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
|
|
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 (
|
|
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
|
|
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(
|
|
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:
|
|
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.
|
|
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",
|