@plumeria/webpack-plugin 6.2.1 → 6.3.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/dist/index.js +103 -91
- package/package.json +2 -2
package/dist/index.js
CHANGED
|
@@ -41,6 +41,8 @@ function loader(source) {
|
|
|
41
41
|
const localConsts = (0, utils_1.collectLocalConsts)(ast);
|
|
42
42
|
const resourcePath = this.resourcePath;
|
|
43
43
|
const importMap = {};
|
|
44
|
+
const createThemeImportMap = {};
|
|
45
|
+
const createStaticImportMap = {};
|
|
44
46
|
const plumeriaAliases = {};
|
|
45
47
|
(0, utils_1.traverse)(ast, {
|
|
46
48
|
ImportDeclaration({ node }) {
|
|
@@ -88,11 +90,11 @@ function loader(source) {
|
|
|
88
90
|
importMap[localName] = scannedTables.variantsHashTable[uniqueKey];
|
|
89
91
|
}
|
|
90
92
|
if (scannedTables.createThemeHashTable[uniqueKey]) {
|
|
91
|
-
|
|
93
|
+
createThemeImportMap[localName] =
|
|
92
94
|
scannedTables.createThemeHashTable[uniqueKey];
|
|
93
95
|
}
|
|
94
96
|
if (scannedTables.createStaticHashTable[uniqueKey]) {
|
|
95
|
-
|
|
97
|
+
createStaticImportMap[localName] =
|
|
96
98
|
scannedTables.createStaticHashTable[uniqueKey];
|
|
97
99
|
}
|
|
98
100
|
}
|
|
@@ -124,20 +126,6 @@ function loader(source) {
|
|
|
124
126
|
for (const key of Object.keys(importMap)) {
|
|
125
127
|
mergedViewTransitionTable[key] = importMap[key];
|
|
126
128
|
}
|
|
127
|
-
const mergedCreateThemeHashTable = {};
|
|
128
|
-
for (const key of Object.keys(scannedTables.createThemeHashTable)) {
|
|
129
|
-
mergedCreateThemeHashTable[key] = scannedTables.createThemeHashTable[key];
|
|
130
|
-
}
|
|
131
|
-
for (const key of Object.keys(importMap)) {
|
|
132
|
-
mergedCreateThemeHashTable[key] = importMap[key];
|
|
133
|
-
}
|
|
134
|
-
const mergedCreateStaticHashTable = {};
|
|
135
|
-
for (const key of Object.keys(scannedTables.createStaticHashTable)) {
|
|
136
|
-
mergedCreateStaticHashTable[key] = scannedTables.createStaticHashTable[key];
|
|
137
|
-
}
|
|
138
|
-
for (const key of Object.keys(importMap)) {
|
|
139
|
-
mergedCreateStaticHashTable[key] = importMap[key];
|
|
140
|
-
}
|
|
141
129
|
const mergedCreateTable = {};
|
|
142
130
|
for (const key of Object.keys(scannedTables.createHashTable)) {
|
|
143
131
|
mergedCreateTable[key] = scannedTables.createHashTable[key];
|
|
@@ -152,6 +140,30 @@ function loader(source) {
|
|
|
152
140
|
for (const key of Object.keys(importMap)) {
|
|
153
141
|
mergedVariantsTable[key] = importMap[key];
|
|
154
142
|
}
|
|
143
|
+
const mergedCreateThemeHashTable = {};
|
|
144
|
+
for (const key of Object.keys(scannedTables.createThemeHashTable)) {
|
|
145
|
+
mergedCreateThemeHashTable[key] = scannedTables.createThemeHashTable[key];
|
|
146
|
+
if (key.startsWith(`${resourcePath}-`)) {
|
|
147
|
+
const varName = key.slice(resourcePath.length + 1);
|
|
148
|
+
mergedCreateThemeHashTable[varName] =
|
|
149
|
+
scannedTables.createThemeHashTable[key];
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
for (const key of Object.keys(createThemeImportMap)) {
|
|
153
|
+
mergedCreateThemeHashTable[key] = createThemeImportMap[key];
|
|
154
|
+
}
|
|
155
|
+
const mergedCreateStaticHashTable = {};
|
|
156
|
+
for (const key of Object.keys(scannedTables.createStaticHashTable)) {
|
|
157
|
+
mergedCreateStaticHashTable[key] = scannedTables.createStaticHashTable[key];
|
|
158
|
+
if (key.startsWith(`${resourcePath}-`)) {
|
|
159
|
+
const varName = key.slice(resourcePath.length + 1);
|
|
160
|
+
mergedCreateStaticHashTable[varName] =
|
|
161
|
+
scannedTables.createStaticHashTable[key];
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
for (const key of Object.keys(createStaticImportMap)) {
|
|
165
|
+
mergedCreateStaticHashTable[key] = createStaticImportMap[key];
|
|
166
|
+
}
|
|
155
167
|
const localCreateStyles = {};
|
|
156
168
|
const replacements = [];
|
|
157
169
|
const extractedSheets = [];
|
|
@@ -241,27 +253,11 @@ function loader(source) {
|
|
|
241
253
|
};
|
|
242
254
|
}
|
|
243
255
|
}
|
|
244
|
-
else if ((propName === 'createTheme' || propName === 'createStatic') &&
|
|
245
|
-
(utils_1.t.isObjectExpression(node.init.arguments[0].expression) ||
|
|
246
|
-
utils_1.t.isStringLiteral(node.init.arguments[0].expression))) {
|
|
247
|
-
localCreateStyles[node.id.value] = {
|
|
248
|
-
name: node.id.value,
|
|
249
|
-
type: 'constant',
|
|
250
|
-
obj: {},
|
|
251
|
-
hashMap: {},
|
|
252
|
-
isExported,
|
|
253
|
-
initSpan: {
|
|
254
|
-
start: node.init.span.start - ast.span.start,
|
|
255
|
-
end: node.init.span.end - ast.span.start,
|
|
256
|
-
},
|
|
257
|
-
declSpan: {
|
|
258
|
-
start: declSpan.start - ast.span.start,
|
|
259
|
-
end: declSpan.end - ast.span.start,
|
|
260
|
-
},
|
|
261
|
-
};
|
|
262
|
-
}
|
|
263
256
|
else if (propName === 'variants' &&
|
|
264
257
|
utils_1.t.isObjectExpression(node.init.arguments[0].expression)) {
|
|
258
|
+
if (utils_1.t.isIdentifier(node.id)) {
|
|
259
|
+
idSpans.add(node.id.span.start);
|
|
260
|
+
}
|
|
265
261
|
const obj = (0, utils_1.objectExpressionToObject)(node.init.arguments[0].expression, mergedStaticTable, mergedKeyframesTable, mergedViewTransitionTable, mergedCreateThemeHashTable, scannedTables.createThemeObjectTable, mergedCreateTable, mergedCreateStaticHashTable, scannedTables.createStaticObjectTable, mergedVariantsTable, (name) => {
|
|
266
262
|
if (localCreateStyles[name]) {
|
|
267
263
|
return localCreateStyles[name].obj;
|
|
@@ -290,6 +286,32 @@ function loader(source) {
|
|
|
290
286
|
},
|
|
291
287
|
};
|
|
292
288
|
}
|
|
289
|
+
else if (propName === 'createTheme' &&
|
|
290
|
+
utils_1.t.isObjectExpression(node.init.arguments[0].expression)) {
|
|
291
|
+
if (utils_1.t.isIdentifier(node.id)) {
|
|
292
|
+
idSpans.add(node.id.span.start);
|
|
293
|
+
}
|
|
294
|
+
const obj = (0, utils_1.objectExpressionToObject)(node.init.arguments[0].expression, mergedStaticTable, mergedKeyframesTable, mergedViewTransitionTable, mergedCreateThemeHashTable, scannedTables.createThemeObjectTable, mergedCreateTable, mergedCreateStaticHashTable, scannedTables.createStaticObjectTable, mergedVariantsTable);
|
|
295
|
+
const hash = (0, zss_engine_1.genBase36Hash)(obj, 1, 8);
|
|
296
|
+
const uniqueKey = `${resourcePath}-${node.id.value}`;
|
|
297
|
+
scannedTables.createThemeHashTable[uniqueKey] = hash;
|
|
298
|
+
scannedTables.createThemeObjectTable[hash] = obj;
|
|
299
|
+
localCreateStyles[node.id.value] = {
|
|
300
|
+
name: node.id.value,
|
|
301
|
+
type: 'constant',
|
|
302
|
+
obj,
|
|
303
|
+
hashMap: scannedTables.createAtomicMapTable[hash],
|
|
304
|
+
isExported,
|
|
305
|
+
initSpan: {
|
|
306
|
+
start: node.init.span.start - ast.span.start,
|
|
307
|
+
end: node.init.span.end - ast.span.start,
|
|
308
|
+
},
|
|
309
|
+
declSpan: {
|
|
310
|
+
start: declSpan.start - ast.span.start,
|
|
311
|
+
end: declSpan.end - ast.span.start,
|
|
312
|
+
},
|
|
313
|
+
};
|
|
314
|
+
}
|
|
293
315
|
}
|
|
294
316
|
};
|
|
295
317
|
(0, utils_1.traverse)(ast, {
|
|
@@ -363,7 +385,6 @@ function loader(source) {
|
|
|
363
385
|
const hash = (0, zss_engine_1.genBase36Hash)(obj, 1, 8);
|
|
364
386
|
scannedTables.viewTransitionObjectTable[hash] = obj;
|
|
365
387
|
if (!isProduction) {
|
|
366
|
-
(0, utils_1.extractOndemandStyles)(obj, extractedSheets, scannedTables);
|
|
367
388
|
(0, utils_1.extractOndemandStyles)({ vt: `vt-${hash}` }, extractedSheets, scannedTables);
|
|
368
389
|
}
|
|
369
390
|
replacements.push({
|
|
@@ -372,12 +393,23 @@ function loader(source) {
|
|
|
372
393
|
content: JSON.stringify(`vt-${hash}`),
|
|
373
394
|
});
|
|
374
395
|
}
|
|
375
|
-
else if (propName === 'createTheme' &&
|
|
396
|
+
else if ((propName === 'createTheme' || propName === 'createStatic') &&
|
|
376
397
|
args.length > 0 &&
|
|
377
398
|
utils_1.t.isObjectExpression(args[0].expression)) {
|
|
378
399
|
const obj = (0, utils_1.objectExpressionToObject)(args[0].expression, mergedStaticTable, mergedKeyframesTable, mergedViewTransitionTable, mergedCreateThemeHashTable, scannedTables.createThemeObjectTable, mergedCreateTable, mergedCreateStaticHashTable, scannedTables.createStaticObjectTable, mergedVariantsTable);
|
|
379
400
|
const hash = (0, zss_engine_1.genBase36Hash)(obj, 1, 8);
|
|
380
|
-
|
|
401
|
+
if (propName === 'createTheme') {
|
|
402
|
+
scannedTables.createThemeObjectTable[hash] = obj;
|
|
403
|
+
}
|
|
404
|
+
else {
|
|
405
|
+
scannedTables.createStaticObjectTable[hash] = obj;
|
|
406
|
+
}
|
|
407
|
+
const prefix = propName === 'createTheme' ? 'tm-' : 'st-';
|
|
408
|
+
replacements.push({
|
|
409
|
+
start: node.span.start - ast.span.start,
|
|
410
|
+
end: node.span.end - ast.span.start,
|
|
411
|
+
content: JSON.stringify(`${prefix}${hash}`),
|
|
412
|
+
});
|
|
381
413
|
}
|
|
382
414
|
else if (propName === 'create' &&
|
|
383
415
|
args.length > 0 &&
|
|
@@ -403,7 +435,7 @@ function loader(source) {
|
|
|
403
435
|
if (utils_1.t.isIdentifier(node.object) && utils_1.t.isIdentifier(node.property)) {
|
|
404
436
|
const varName = node.object.value;
|
|
405
437
|
const propName = node.property.value;
|
|
406
|
-
const uniqueKey = `${
|
|
438
|
+
const uniqueKey = `${resourcePath}-${varName}`;
|
|
407
439
|
let hash = scannedTables.createHashTable[uniqueKey];
|
|
408
440
|
if (!hash) {
|
|
409
441
|
hash = mergedCreateTable[varName];
|
|
@@ -426,13 +458,12 @@ function loader(source) {
|
|
|
426
458
|
themeHash = mergedCreateThemeHashTable[varName];
|
|
427
459
|
}
|
|
428
460
|
if (themeHash) {
|
|
429
|
-
const
|
|
430
|
-
if (
|
|
431
|
-
const cssVarName = (0, zss_engine_1.camelToKebabCase)(propName);
|
|
461
|
+
const atomicMap = scannedTables.createAtomicMapTable[themeHash];
|
|
462
|
+
if (atomicMap && atomicMap && atomicMap[propName]) {
|
|
432
463
|
replacements.push({
|
|
433
464
|
start: node.span.start - ast.span.start,
|
|
434
465
|
end: node.span.end - ast.span.start,
|
|
435
|
-
content: JSON.stringify(
|
|
466
|
+
content: JSON.stringify(atomicMap[propName]),
|
|
436
467
|
});
|
|
437
468
|
}
|
|
438
469
|
}
|
|
@@ -467,7 +498,7 @@ function loader(source) {
|
|
|
467
498
|
return;
|
|
468
499
|
}
|
|
469
500
|
const varName = node.value;
|
|
470
|
-
const uniqueKey = `${
|
|
501
|
+
const uniqueKey = `${resourcePath}-${varName}`;
|
|
471
502
|
let hash = scannedTables.createHashTable[uniqueKey];
|
|
472
503
|
if (!hash) {
|
|
473
504
|
hash = mergedCreateTable[varName];
|
|
@@ -489,46 +520,19 @@ function loader(source) {
|
|
|
489
520
|
});
|
|
490
521
|
}
|
|
491
522
|
}
|
|
492
|
-
let kfHash = scannedTables.keyframesHashTable[uniqueKey];
|
|
493
|
-
if (!kfHash) {
|
|
494
|
-
kfHash = mergedKeyframesTable[varName];
|
|
495
|
-
}
|
|
496
|
-
if (kfHash) {
|
|
497
|
-
replacements.push({
|
|
498
|
-
start: node.span.start - ast.span.start,
|
|
499
|
-
end: node.span.end - ast.span.start,
|
|
500
|
-
content: JSON.stringify(`kf-${kfHash}`),
|
|
501
|
-
});
|
|
502
|
-
return;
|
|
503
|
-
}
|
|
504
|
-
let vtHash = scannedTables.viewTransitionHashTable[uniqueKey];
|
|
505
|
-
if (!vtHash) {
|
|
506
|
-
vtHash = mergedViewTransitionTable[varName];
|
|
507
|
-
}
|
|
508
|
-
if (vtHash) {
|
|
509
|
-
replacements.push({
|
|
510
|
-
start: node.span.start - ast.span.start,
|
|
511
|
-
end: node.span.end - ast.span.start,
|
|
512
|
-
content: JSON.stringify(`vt-${vtHash}`),
|
|
513
|
-
});
|
|
514
|
-
return;
|
|
515
|
-
}
|
|
516
523
|
let themeHash = scannedTables.createThemeHashTable[uniqueKey];
|
|
517
524
|
if (!themeHash) {
|
|
518
525
|
themeHash = mergedCreateThemeHashTable[varName];
|
|
519
526
|
}
|
|
520
527
|
if (themeHash) {
|
|
521
|
-
const
|
|
522
|
-
if (
|
|
523
|
-
const themeVars = {};
|
|
524
|
-
Object.keys(themeObj).forEach((key) => {
|
|
525
|
-
themeVars[key] = `var(--${(0, zss_engine_1.camelToKebabCase)(key)})`;
|
|
526
|
-
});
|
|
528
|
+
const atomicMap = scannedTables.createAtomicMapTable[themeHash];
|
|
529
|
+
if (atomicMap) {
|
|
527
530
|
replacements.push({
|
|
528
531
|
start: node.span.start - ast.span.start,
|
|
529
532
|
end: node.span.end - ast.span.start,
|
|
530
|
-
content: JSON.stringify(
|
|
533
|
+
content: JSON.stringify(atomicMap),
|
|
531
534
|
});
|
|
535
|
+
return;
|
|
532
536
|
}
|
|
533
537
|
}
|
|
534
538
|
let staticHash = scannedTables.createStaticHashTable[uniqueKey];
|
|
@@ -602,17 +606,21 @@ function loader(source) {
|
|
|
602
606
|
}
|
|
603
607
|
else if (utils_1.t.isIdentifier(expr)) {
|
|
604
608
|
const varName = expr.value;
|
|
605
|
-
const
|
|
606
|
-
|
|
607
|
-
|
|
609
|
+
const uniqueKey = `${this.resourcePath}-${varName}`;
|
|
610
|
+
let hash = scannedTables.createHashTable[uniqueKey];
|
|
611
|
+
if (!hash) {
|
|
612
|
+
hash = mergedCreateTable[varName];
|
|
608
613
|
}
|
|
609
|
-
const hash = mergedCreateTable[varName];
|
|
610
614
|
if (hash) {
|
|
611
615
|
const obj = scannedTables.createObjectTable[hash];
|
|
612
616
|
if (obj && typeof obj === 'object') {
|
|
613
617
|
return obj;
|
|
614
618
|
}
|
|
615
619
|
}
|
|
620
|
+
const styleInfo = localCreateStyles[varName];
|
|
621
|
+
if (styleInfo && styleInfo.obj) {
|
|
622
|
+
return styleInfo.obj;
|
|
623
|
+
}
|
|
616
624
|
if (localCreateStyles[varName]) {
|
|
617
625
|
return localCreateStyles[varName].obj;
|
|
618
626
|
}
|
|
@@ -632,13 +640,18 @@ function loader(source) {
|
|
|
632
640
|
if (utils_1.t.isCallExpression(expr) && utils_1.t.isIdentifier(expr.callee)) {
|
|
633
641
|
const varName = expr.callee.value;
|
|
634
642
|
let variantObj;
|
|
635
|
-
|
|
636
|
-
|
|
643
|
+
const uniqueKey = `${this.resourcePath}-${varName}`;
|
|
644
|
+
let hash = scannedTables.variantsHashTable[uniqueKey];
|
|
645
|
+
if (!hash) {
|
|
646
|
+
hash = mergedVariantsTable[varName];
|
|
637
647
|
}
|
|
638
|
-
|
|
639
|
-
|
|
640
|
-
|
|
641
|
-
|
|
648
|
+
if (hash && scannedTables.variantsObjectTable[hash]) {
|
|
649
|
+
variantObj = scannedTables.variantsObjectTable[hash];
|
|
650
|
+
}
|
|
651
|
+
if (!variantObj) {
|
|
652
|
+
if (localCreateStyles[varName] &&
|
|
653
|
+
localCreateStyles[varName].obj) {
|
|
654
|
+
variantObj = localCreateStyles[varName].obj;
|
|
642
655
|
}
|
|
643
656
|
}
|
|
644
657
|
if (variantObj) {
|
|
@@ -794,12 +807,12 @@ function loader(source) {
|
|
|
794
807
|
table[i] = '';
|
|
795
808
|
continue;
|
|
796
809
|
}
|
|
797
|
-
if (
|
|
810
|
+
if (process.env.NODE_ENV !== 'production') {
|
|
798
811
|
(0, utils_1.extractOndemandStyles)(currentStyle, extractedSheets, scannedTables);
|
|
799
812
|
}
|
|
800
813
|
const hash = (0, zss_engine_1.genBase36Hash)(currentStyle, 1, 8);
|
|
801
814
|
const records = (0, utils_1.getStyleRecords)(hash, currentStyle, 2);
|
|
802
|
-
if (
|
|
815
|
+
if (process.env.NODE_ENV !== 'production') {
|
|
803
816
|
records.forEach((r) => extractedSheets.push(r.sheet));
|
|
804
817
|
}
|
|
805
818
|
const className = records
|
|
@@ -836,6 +849,9 @@ function loader(source) {
|
|
|
836
849
|
},
|
|
837
850
|
});
|
|
838
851
|
Object.values(localCreateStyles).forEach((info) => {
|
|
852
|
+
if (info.type === 'constant' || info.type === 'variant') {
|
|
853
|
+
return;
|
|
854
|
+
}
|
|
839
855
|
if (info.isExported) {
|
|
840
856
|
replacements.push({
|
|
841
857
|
start: info.declSpan.start,
|
|
@@ -851,10 +867,6 @@ function loader(source) {
|
|
|
851
867
|
});
|
|
852
868
|
}
|
|
853
869
|
});
|
|
854
|
-
if (extractedSheets.length > 0) {
|
|
855
|
-
fileStyles.baseStyles =
|
|
856
|
-
(fileStyles.baseStyles || '') + extractedSheets.join('');
|
|
857
|
-
}
|
|
858
870
|
const buffer = Buffer.from(source);
|
|
859
871
|
let offset = 0;
|
|
860
872
|
const parts = [];
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@plumeria/webpack-plugin",
|
|
3
|
-
"version": "6.
|
|
3
|
+
"version": "6.3.0",
|
|
4
4
|
"description": "Plumeria Webpack plugin",
|
|
5
5
|
"author": "Refirst 11",
|
|
6
6
|
"license": "MIT",
|
|
@@ -22,7 +22,7 @@
|
|
|
22
22
|
"zero-virtual.css"
|
|
23
23
|
],
|
|
24
24
|
"dependencies": {
|
|
25
|
-
"@plumeria/utils": "^6.
|
|
25
|
+
"@plumeria/utils": "^6.3.0"
|
|
26
26
|
},
|
|
27
27
|
"devDependencies": {
|
|
28
28
|
"@swc/core": "1.15.8",
|