@plumeria/turbopack-loader 6.1.2 → 6.2.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/index.js +171 -58
- package/package.json +3 -3
package/dist/index.js
CHANGED
|
@@ -40,6 +40,8 @@ async function loader(source) {
|
|
|
40
40
|
const localConsts = (0, utils_1.collectLocalConsts)(ast);
|
|
41
41
|
const resourcePath = this.resourcePath;
|
|
42
42
|
const importMap = {};
|
|
43
|
+
const createThemeImportMap = {};
|
|
44
|
+
const createStaticImportMap = {};
|
|
43
45
|
const plumeriaAliases = {};
|
|
44
46
|
(0, utils_1.traverse)(ast, {
|
|
45
47
|
ImportDeclaration({ node }) {
|
|
@@ -80,15 +82,20 @@ async function loader(source) {
|
|
|
80
82
|
importMap[localName] =
|
|
81
83
|
scannedTables.viewTransitionHashTable[uniqueKey];
|
|
82
84
|
}
|
|
83
|
-
if (scannedTables.themeTable[uniqueKey]) {
|
|
84
|
-
importMap[localName] = scannedTables.themeTable[uniqueKey];
|
|
85
|
-
}
|
|
86
85
|
if (scannedTables.createHashTable[uniqueKey]) {
|
|
87
86
|
importMap[localName] = scannedTables.createHashTable[uniqueKey];
|
|
88
87
|
}
|
|
89
88
|
if (scannedTables.variantsHashTable[uniqueKey]) {
|
|
90
89
|
importMap[localName] = scannedTables.variantsHashTable[uniqueKey];
|
|
91
90
|
}
|
|
91
|
+
if (scannedTables.createThemeHashTable[uniqueKey]) {
|
|
92
|
+
createThemeImportMap[localName] =
|
|
93
|
+
scannedTables.createThemeHashTable[uniqueKey];
|
|
94
|
+
}
|
|
95
|
+
if (scannedTables.createStaticHashTable[uniqueKey]) {
|
|
96
|
+
createStaticImportMap[localName] =
|
|
97
|
+
scannedTables.createStaticHashTable[uniqueKey];
|
|
98
|
+
}
|
|
92
99
|
}
|
|
93
100
|
});
|
|
94
101
|
}
|
|
@@ -118,13 +125,6 @@ async function loader(source) {
|
|
|
118
125
|
for (const key of Object.keys(importMap)) {
|
|
119
126
|
mergedViewTransitionTable[key] = importMap[key];
|
|
120
127
|
}
|
|
121
|
-
const mergedThemeTable = {};
|
|
122
|
-
for (const key of Object.keys(scannedTables.themeTable)) {
|
|
123
|
-
mergedThemeTable[key] = scannedTables.themeTable[key];
|
|
124
|
-
}
|
|
125
|
-
for (const key of Object.keys(importMap)) {
|
|
126
|
-
mergedThemeTable[key] = importMap[key];
|
|
127
|
-
}
|
|
128
128
|
const mergedCreateTable = {};
|
|
129
129
|
for (const key of Object.keys(scannedTables.createHashTable)) {
|
|
130
130
|
mergedCreateTable[key] = scannedTables.createHashTable[key];
|
|
@@ -139,6 +139,20 @@ async function loader(source) {
|
|
|
139
139
|
for (const key of Object.keys(importMap)) {
|
|
140
140
|
mergedVariantsTable[key] = importMap[key];
|
|
141
141
|
}
|
|
142
|
+
const mergedCreateThemeHashTable = {};
|
|
143
|
+
for (const key of Object.keys(scannedTables.createThemeHashTable)) {
|
|
144
|
+
mergedCreateThemeHashTable[key] = scannedTables.createThemeHashTable[key];
|
|
145
|
+
}
|
|
146
|
+
for (const key of Object.keys(createThemeImportMap)) {
|
|
147
|
+
mergedCreateThemeHashTable[key] = createThemeImportMap[key];
|
|
148
|
+
}
|
|
149
|
+
const mergedCreateStaticHashTable = {};
|
|
150
|
+
for (const key of Object.keys(scannedTables.createStaticHashTable)) {
|
|
151
|
+
mergedCreateStaticHashTable[key] = scannedTables.createStaticHashTable[key];
|
|
152
|
+
}
|
|
153
|
+
for (const key of Object.keys(createStaticImportMap)) {
|
|
154
|
+
mergedCreateStaticHashTable[key] = createStaticImportMap[key];
|
|
155
|
+
}
|
|
142
156
|
const localCreateStyles = {};
|
|
143
157
|
const replacements = [];
|
|
144
158
|
const extractedSheets = [];
|
|
@@ -193,7 +207,7 @@ async function loader(source) {
|
|
|
193
207
|
if (propName) {
|
|
194
208
|
if (propName === 'create' &&
|
|
195
209
|
utils_1.t.isObjectExpression(node.init.arguments[0].expression)) {
|
|
196
|
-
const obj = (0, utils_1.objectExpressionToObject)(node.init.arguments[0].expression, mergedStaticTable, mergedKeyframesTable, mergedViewTransitionTable,
|
|
210
|
+
const obj = (0, utils_1.objectExpressionToObject)(node.init.arguments[0].expression, mergedStaticTable, mergedKeyframesTable, mergedViewTransitionTable, mergedCreateThemeHashTable, scannedTables.createThemeObjectTable, mergedCreateTable, mergedCreateStaticHashTable, scannedTables.createStaticObjectTable, mergedVariantsTable);
|
|
197
211
|
if (obj) {
|
|
198
212
|
const hashMap = {};
|
|
199
213
|
Object.entries(obj).forEach(([key, style]) => {
|
|
@@ -228,28 +242,9 @@ async function loader(source) {
|
|
|
228
242
|
};
|
|
229
243
|
}
|
|
230
244
|
}
|
|
231
|
-
else if ((propName === 'createTheme' || propName === 'createStatic') &&
|
|
232
|
-
(utils_1.t.isObjectExpression(node.init.arguments[0].expression) ||
|
|
233
|
-
utils_1.t.isStringLiteral(node.init.arguments[0].expression))) {
|
|
234
|
-
localCreateStyles[node.id.value] = {
|
|
235
|
-
name: node.id.value,
|
|
236
|
-
type: 'constant',
|
|
237
|
-
obj: {},
|
|
238
|
-
hashMap: {},
|
|
239
|
-
isExported,
|
|
240
|
-
initSpan: {
|
|
241
|
-
start: node.init.span.start - ast.span.start,
|
|
242
|
-
end: node.init.span.end - ast.span.start,
|
|
243
|
-
},
|
|
244
|
-
declSpan: {
|
|
245
|
-
start: declSpan.start - ast.span.start,
|
|
246
|
-
end: declSpan.end - ast.span.start,
|
|
247
|
-
},
|
|
248
|
-
};
|
|
249
|
-
}
|
|
250
245
|
else if (propName === 'variants' &&
|
|
251
246
|
utils_1.t.isObjectExpression(node.init.arguments[0].expression)) {
|
|
252
|
-
const obj = (0, utils_1.objectExpressionToObject)(node.init.arguments[0].expression, mergedStaticTable, mergedKeyframesTable, mergedViewTransitionTable,
|
|
247
|
+
const obj = (0, utils_1.objectExpressionToObject)(node.init.arguments[0].expression, mergedStaticTable, mergedKeyframesTable, mergedViewTransitionTable, mergedCreateThemeHashTable, scannedTables.createThemeObjectTable, mergedCreateTable, mergedCreateStaticHashTable, scannedTables.createStaticObjectTable, mergedVariantsTable, (name) => {
|
|
253
248
|
if (localCreateStyles[name]) {
|
|
254
249
|
return localCreateStyles[name].obj;
|
|
255
250
|
}
|
|
@@ -334,7 +329,7 @@ async function loader(source) {
|
|
|
334
329
|
if (propName === 'keyframes' &&
|
|
335
330
|
args.length > 0 &&
|
|
336
331
|
utils_1.t.isObjectExpression(args[0].expression)) {
|
|
337
|
-
const obj = (0, utils_1.objectExpressionToObject)(args[0].expression, mergedStaticTable, mergedKeyframesTable, mergedViewTransitionTable,
|
|
332
|
+
const obj = (0, utils_1.objectExpressionToObject)(args[0].expression, mergedStaticTable, mergedKeyframesTable, mergedViewTransitionTable, mergedCreateThemeHashTable, scannedTables.createThemeObjectTable, mergedCreateTable, mergedCreateStaticHashTable, scannedTables.createStaticObjectTable, mergedVariantsTable);
|
|
338
333
|
const hash = (0, zss_engine_1.genBase36Hash)(obj, 1, 8);
|
|
339
334
|
scannedTables.keyframesObjectTable[hash] = obj;
|
|
340
335
|
replacements.push({
|
|
@@ -346,7 +341,7 @@ async function loader(source) {
|
|
|
346
341
|
else if (propName === 'viewTransition' &&
|
|
347
342
|
args.length > 0 &&
|
|
348
343
|
utils_1.t.isObjectExpression(args[0].expression)) {
|
|
349
|
-
const obj = (0, utils_1.objectExpressionToObject)(args[0].expression, mergedStaticTable, mergedKeyframesTable, mergedViewTransitionTable,
|
|
344
|
+
const obj = (0, utils_1.objectExpressionToObject)(args[0].expression, mergedStaticTable, mergedKeyframesTable, mergedViewTransitionTable, mergedCreateThemeHashTable, scannedTables.createThemeObjectTable, mergedCreateTable, mergedCreateStaticHashTable, scannedTables.createStaticObjectTable, mergedVariantsTable);
|
|
350
345
|
const hash = (0, zss_engine_1.genBase36Hash)(obj, 1, 8);
|
|
351
346
|
scannedTables.viewTransitionObjectTable[hash] = obj;
|
|
352
347
|
if (!isProduction) {
|
|
@@ -359,17 +354,28 @@ async function loader(source) {
|
|
|
359
354
|
content: JSON.stringify(`vt-${hash}`),
|
|
360
355
|
});
|
|
361
356
|
}
|
|
362
|
-
else if (propName === 'createTheme' &&
|
|
357
|
+
else if ((propName === 'createTheme' || propName === 'createStatic') &&
|
|
363
358
|
args.length > 0 &&
|
|
364
359
|
utils_1.t.isObjectExpression(args[0].expression)) {
|
|
365
|
-
const obj = (0, utils_1.objectExpressionToObject)(args[0].expression, mergedStaticTable, mergedKeyframesTable, mergedViewTransitionTable,
|
|
360
|
+
const obj = (0, utils_1.objectExpressionToObject)(args[0].expression, mergedStaticTable, mergedKeyframesTable, mergedViewTransitionTable, mergedCreateThemeHashTable, scannedTables.createThemeObjectTable, mergedCreateTable, mergedCreateStaticHashTable, scannedTables.createStaticObjectTable, mergedVariantsTable);
|
|
366
361
|
const hash = (0, zss_engine_1.genBase36Hash)(obj, 1, 8);
|
|
367
|
-
|
|
362
|
+
if (propName === 'createTheme') {
|
|
363
|
+
scannedTables.createThemeObjectTable[hash] = obj;
|
|
364
|
+
}
|
|
365
|
+
else {
|
|
366
|
+
scannedTables.createStaticObjectTable[hash] = obj;
|
|
367
|
+
}
|
|
368
|
+
const prefix = propName === 'createTheme' ? 'tm-' : 'st-';
|
|
369
|
+
replacements.push({
|
|
370
|
+
start: node.span.start - ast.span.start,
|
|
371
|
+
end: node.span.end - ast.span.start,
|
|
372
|
+
content: JSON.stringify(`${prefix}${hash}`),
|
|
373
|
+
});
|
|
368
374
|
}
|
|
369
375
|
else if (propName === 'create' &&
|
|
370
376
|
args.length > 0 &&
|
|
371
377
|
utils_1.t.isObjectExpression(args[0].expression)) {
|
|
372
|
-
const obj = (0, utils_1.objectExpressionToObject)(args[0].expression, mergedStaticTable, mergedKeyframesTable, mergedViewTransitionTable,
|
|
378
|
+
const obj = (0, utils_1.objectExpressionToObject)(args[0].expression, mergedStaticTable, mergedKeyframesTable, mergedViewTransitionTable, mergedCreateThemeHashTable, scannedTables.createThemeObjectTable, mergedCreateTable, mergedCreateStaticHashTable, scannedTables.createStaticObjectTable, mergedVariantsTable);
|
|
373
379
|
const hash = (0, zss_engine_1.genBase36Hash)(obj, 1, 8);
|
|
374
380
|
scannedTables.createObjectTable[hash] = obj;
|
|
375
381
|
Object.entries(obj).forEach(([key, style]) => {
|
|
@@ -395,20 +401,6 @@ async function loader(source) {
|
|
|
395
401
|
if (!hash) {
|
|
396
402
|
hash = mergedCreateTable[varName];
|
|
397
403
|
}
|
|
398
|
-
if (!hash) {
|
|
399
|
-
const styleInfo = localCreateStyles[varName];
|
|
400
|
-
if (styleInfo) {
|
|
401
|
-
const atomMap = styleInfo.hashMap[propName];
|
|
402
|
-
if (atomMap) {
|
|
403
|
-
replacements.push({
|
|
404
|
-
start: node.span.start - ast.span.start,
|
|
405
|
-
end: node.span.end - ast.span.start,
|
|
406
|
-
content: JSON.stringify(atomMap),
|
|
407
|
-
});
|
|
408
|
-
return;
|
|
409
|
-
}
|
|
410
|
-
}
|
|
411
|
-
}
|
|
412
404
|
if (hash) {
|
|
413
405
|
let atomMap;
|
|
414
406
|
if (scannedTables.createAtomicMapTable[hash]) {
|
|
@@ -420,9 +412,131 @@ async function loader(source) {
|
|
|
420
412
|
end: node.span.end - ast.span.start,
|
|
421
413
|
content: JSON.stringify(atomMap),
|
|
422
414
|
});
|
|
423
|
-
return;
|
|
424
415
|
}
|
|
425
416
|
}
|
|
417
|
+
let themeHash = scannedTables.createThemeHashTable[uniqueKey];
|
|
418
|
+
if (!themeHash) {
|
|
419
|
+
themeHash = mergedCreateThemeHashTable[varName];
|
|
420
|
+
}
|
|
421
|
+
if (themeHash) {
|
|
422
|
+
const themeObj = scannedTables.createThemeObjectTable[themeHash];
|
|
423
|
+
if (themeObj && themeObj[propName] !== undefined) {
|
|
424
|
+
const cssVarName = (0, zss_engine_1.camelToKebabCase)(propName);
|
|
425
|
+
replacements.push({
|
|
426
|
+
start: node.span.start - ast.span.start,
|
|
427
|
+
end: node.span.end - ast.span.start,
|
|
428
|
+
content: JSON.stringify(`var(--${cssVarName})`),
|
|
429
|
+
});
|
|
430
|
+
}
|
|
431
|
+
}
|
|
432
|
+
let staticHash = scannedTables.createStaticHashTable[uniqueKey];
|
|
433
|
+
if (!staticHash) {
|
|
434
|
+
staticHash = mergedCreateStaticHashTable[varName];
|
|
435
|
+
}
|
|
436
|
+
if (staticHash) {
|
|
437
|
+
const staticObj = scannedTables.createStaticObjectTable[staticHash];
|
|
438
|
+
if (staticObj && staticObj[propName] !== undefined) {
|
|
439
|
+
replacements.push({
|
|
440
|
+
start: node.span.start - ast.span.start,
|
|
441
|
+
end: node.span.end - ast.span.start,
|
|
442
|
+
content: JSON.stringify(staticObj[propName]),
|
|
443
|
+
});
|
|
444
|
+
}
|
|
445
|
+
}
|
|
446
|
+
}
|
|
447
|
+
},
|
|
448
|
+
Identifier({ node }) {
|
|
449
|
+
if (excludedSpans.has(node.span.start))
|
|
450
|
+
return;
|
|
451
|
+
if (idSpans.has(node.span.start))
|
|
452
|
+
return;
|
|
453
|
+
const styleInfo = localCreateStyles[node.value];
|
|
454
|
+
if (styleInfo) {
|
|
455
|
+
replacements.push({
|
|
456
|
+
start: node.span.start - ast.span.start,
|
|
457
|
+
end: node.span.end - ast.span.start,
|
|
458
|
+
content: JSON.stringify(styleInfo.hashMap),
|
|
459
|
+
});
|
|
460
|
+
return;
|
|
461
|
+
}
|
|
462
|
+
const varName = node.value;
|
|
463
|
+
const uniqueKey = `${this.resourcePath}-${varName}`;
|
|
464
|
+
let hash = scannedTables.createHashTable[uniqueKey];
|
|
465
|
+
if (!hash) {
|
|
466
|
+
hash = mergedCreateTable[varName];
|
|
467
|
+
}
|
|
468
|
+
if (hash) {
|
|
469
|
+
const obj = scannedTables.createObjectTable[hash];
|
|
470
|
+
const atomicMap = scannedTables.createAtomicMapTable[hash];
|
|
471
|
+
if (obj && atomicMap) {
|
|
472
|
+
const hashMap = {};
|
|
473
|
+
Object.keys(obj).forEach((key) => {
|
|
474
|
+
if (atomicMap[key]) {
|
|
475
|
+
hashMap[key] = atomicMap[key];
|
|
476
|
+
}
|
|
477
|
+
});
|
|
478
|
+
replacements.push({
|
|
479
|
+
start: node.span.start - ast.span.start,
|
|
480
|
+
end: node.span.end - ast.span.start,
|
|
481
|
+
content: JSON.stringify(hashMap),
|
|
482
|
+
});
|
|
483
|
+
}
|
|
484
|
+
}
|
|
485
|
+
let kfHash = scannedTables.keyframesHashTable[uniqueKey];
|
|
486
|
+
if (!kfHash) {
|
|
487
|
+
kfHash = mergedKeyframesTable[varName];
|
|
488
|
+
}
|
|
489
|
+
if (kfHash) {
|
|
490
|
+
replacements.push({
|
|
491
|
+
start: node.span.start - ast.span.start,
|
|
492
|
+
end: node.span.end - ast.span.start,
|
|
493
|
+
content: JSON.stringify(`kf-${kfHash}`),
|
|
494
|
+
});
|
|
495
|
+
return;
|
|
496
|
+
}
|
|
497
|
+
let vtHash = scannedTables.viewTransitionHashTable[uniqueKey];
|
|
498
|
+
if (!vtHash) {
|
|
499
|
+
vtHash = mergedViewTransitionTable[varName];
|
|
500
|
+
}
|
|
501
|
+
if (vtHash) {
|
|
502
|
+
replacements.push({
|
|
503
|
+
start: node.span.start - ast.span.start,
|
|
504
|
+
end: node.span.end - ast.span.start,
|
|
505
|
+
content: JSON.stringify(`vt-${vtHash}`),
|
|
506
|
+
});
|
|
507
|
+
return;
|
|
508
|
+
}
|
|
509
|
+
let themeHash = scannedTables.createThemeHashTable[uniqueKey];
|
|
510
|
+
if (!themeHash) {
|
|
511
|
+
themeHash = mergedCreateThemeHashTable[varName];
|
|
512
|
+
}
|
|
513
|
+
if (themeHash) {
|
|
514
|
+
const themeObj = scannedTables.createThemeObjectTable[themeHash];
|
|
515
|
+
if (themeObj) {
|
|
516
|
+
const themeVars = {};
|
|
517
|
+
Object.keys(themeObj).forEach((key) => {
|
|
518
|
+
themeVars[key] = `var(--${(0, zss_engine_1.camelToKebabCase)(key)})`;
|
|
519
|
+
});
|
|
520
|
+
replacements.push({
|
|
521
|
+
start: node.span.start - ast.span.start,
|
|
522
|
+
end: node.span.end - ast.span.start,
|
|
523
|
+
content: JSON.stringify(themeVars),
|
|
524
|
+
});
|
|
525
|
+
}
|
|
526
|
+
}
|
|
527
|
+
let staticHash = scannedTables.createStaticHashTable[uniqueKey];
|
|
528
|
+
if (!staticHash) {
|
|
529
|
+
staticHash = mergedCreateStaticHashTable[varName];
|
|
530
|
+
}
|
|
531
|
+
if (staticHash) {
|
|
532
|
+
const staticObj = scannedTables.createStaticObjectTable[staticHash];
|
|
533
|
+
if (staticObj) {
|
|
534
|
+
replacements.push({
|
|
535
|
+
start: node.span.start - ast.span.start,
|
|
536
|
+
end: node.span.end - ast.span.start,
|
|
537
|
+
content: JSON.stringify(staticObj),
|
|
538
|
+
});
|
|
539
|
+
}
|
|
426
540
|
}
|
|
427
541
|
},
|
|
428
542
|
CallExpression({ node }) {
|
|
@@ -450,18 +564,17 @@ async function loader(source) {
|
|
|
450
564
|
const args = node.arguments;
|
|
451
565
|
const resolveStyleObject = (expr) => {
|
|
452
566
|
if (utils_1.t.isObjectExpression(expr)) {
|
|
453
|
-
return (0, utils_1.objectExpressionToObject)(expr, mergedStaticTable, mergedKeyframesTable, mergedViewTransitionTable,
|
|
567
|
+
return (0, utils_1.objectExpressionToObject)(expr, mergedStaticTable, mergedKeyframesTable, mergedViewTransitionTable, mergedCreateThemeHashTable, scannedTables.createThemeObjectTable, mergedCreateTable, mergedCreateStaticHashTable, scannedTables.createStaticObjectTable, mergedVariantsTable);
|
|
454
568
|
}
|
|
455
569
|
else if (utils_1.t.isMemberExpression(expr) &&
|
|
456
570
|
utils_1.t.isIdentifier(expr.object) &&
|
|
457
|
-
(utils_1.t.isIdentifier(expr.property) ||
|
|
571
|
+
(utils_1.t.isIdentifier(expr.property) ||
|
|
572
|
+
expr.property.type === 'Computed')) {
|
|
458
573
|
if (expr.property.type === 'Computed') {
|
|
459
574
|
return {};
|
|
460
575
|
}
|
|
461
|
-
const varName = expr.object
|
|
462
|
-
|
|
463
|
-
const propName = expr.property
|
|
464
|
-
.value;
|
|
576
|
+
const varName = expr.object.value;
|
|
577
|
+
const propName = expr.property.value;
|
|
465
578
|
const styleInfo = localCreateStyles[varName];
|
|
466
579
|
if (styleInfo && styleInfo.obj[propName]) {
|
|
467
580
|
const style = styleInfo.obj[propName];
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@plumeria/turbopack-loader",
|
|
3
|
-
"version": "6.1
|
|
3
|
+
"version": "6.2.1",
|
|
4
4
|
"description": "Plumeria Turbopack-loader",
|
|
5
5
|
"author": "Refirst 11",
|
|
6
6
|
"license": "MIT",
|
|
@@ -22,11 +22,11 @@
|
|
|
22
22
|
"zero-virtual.css"
|
|
23
23
|
],
|
|
24
24
|
"dependencies": {
|
|
25
|
-
"@plumeria/utils": "^6.1
|
|
25
|
+
"@plumeria/utils": "^6.2.1"
|
|
26
26
|
},
|
|
27
27
|
"devDependencies": {
|
|
28
28
|
"@swc/core": "1.15.8",
|
|
29
|
-
"zss-engine": "2.
|
|
29
|
+
"zss-engine": "2.2.0"
|
|
30
30
|
},
|
|
31
31
|
"publishConfig": {
|
|
32
32
|
"access": "public",
|