@plumeria/turbopack-loader 6.2.0 → 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 +149 -46
- package/package.json +2 -2
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,30 @@ 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
|
+
if (key.startsWith(`${resourcePath}-`)) {
|
|
146
|
+
const varName = key.slice(resourcePath.length + 1);
|
|
147
|
+
mergedCreateThemeHashTable[varName] =
|
|
148
|
+
scannedTables.createThemeHashTable[key];
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
for (const key of Object.keys(createThemeImportMap)) {
|
|
152
|
+
mergedCreateThemeHashTable[key] = createThemeImportMap[key];
|
|
153
|
+
}
|
|
154
|
+
const mergedCreateStaticHashTable = {};
|
|
155
|
+
for (const key of Object.keys(scannedTables.createStaticHashTable)) {
|
|
156
|
+
mergedCreateStaticHashTable[key] = scannedTables.createStaticHashTable[key];
|
|
157
|
+
if (key.startsWith(`${resourcePath}-`)) {
|
|
158
|
+
const varName = key.slice(resourcePath.length + 1);
|
|
159
|
+
mergedCreateStaticHashTable[varName] =
|
|
160
|
+
scannedTables.createStaticHashTable[key];
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
for (const key of Object.keys(createStaticImportMap)) {
|
|
164
|
+
mergedCreateStaticHashTable[key] = createStaticImportMap[key];
|
|
165
|
+
}
|
|
142
166
|
const localCreateStyles = {};
|
|
143
167
|
const replacements = [];
|
|
144
168
|
const extractedSheets = [];
|
|
@@ -193,7 +217,7 @@ async function loader(source) {
|
|
|
193
217
|
if (propName) {
|
|
194
218
|
if (propName === 'create' &&
|
|
195
219
|
utils_1.t.isObjectExpression(node.init.arguments[0].expression)) {
|
|
196
|
-
const obj = (0, utils_1.objectExpressionToObject)(node.init.arguments[0].expression, mergedStaticTable, mergedKeyframesTable, mergedViewTransitionTable,
|
|
220
|
+
const obj = (0, utils_1.objectExpressionToObject)(node.init.arguments[0].expression, mergedStaticTable, mergedKeyframesTable, mergedViewTransitionTable, mergedCreateThemeHashTable, scannedTables.createThemeObjectTable, mergedCreateTable, mergedCreateStaticHashTable, scannedTables.createStaticObjectTable, mergedVariantsTable);
|
|
197
221
|
if (obj) {
|
|
198
222
|
const hashMap = {};
|
|
199
223
|
Object.entries(obj).forEach(([key, style]) => {
|
|
@@ -228,28 +252,12 @@ async function loader(source) {
|
|
|
228
252
|
};
|
|
229
253
|
}
|
|
230
254
|
}
|
|
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
255
|
else if (propName === 'variants' &&
|
|
251
256
|
utils_1.t.isObjectExpression(node.init.arguments[0].expression)) {
|
|
252
|
-
|
|
257
|
+
if (utils_1.t.isIdentifier(node.id)) {
|
|
258
|
+
idSpans.add(node.id.span.start);
|
|
259
|
+
}
|
|
260
|
+
const obj = (0, utils_1.objectExpressionToObject)(node.init.arguments[0].expression, mergedStaticTable, mergedKeyframesTable, mergedViewTransitionTable, mergedCreateThemeHashTable, scannedTables.createThemeObjectTable, mergedCreateTable, mergedCreateStaticHashTable, scannedTables.createStaticObjectTable, mergedVariantsTable, (name) => {
|
|
253
261
|
if (localCreateStyles[name]) {
|
|
254
262
|
return localCreateStyles[name].obj;
|
|
255
263
|
}
|
|
@@ -277,6 +285,32 @@ async function loader(source) {
|
|
|
277
285
|
},
|
|
278
286
|
};
|
|
279
287
|
}
|
|
288
|
+
else if (propName === 'createTheme' &&
|
|
289
|
+
utils_1.t.isObjectExpression(node.init.arguments[0].expression)) {
|
|
290
|
+
if (utils_1.t.isIdentifier(node.id)) {
|
|
291
|
+
idSpans.add(node.id.span.start);
|
|
292
|
+
}
|
|
293
|
+
const obj = (0, utils_1.objectExpressionToObject)(node.init.arguments[0].expression, mergedStaticTable, mergedKeyframesTable, mergedViewTransitionTable, mergedCreateThemeHashTable, scannedTables.createThemeObjectTable, mergedCreateTable, mergedCreateStaticHashTable, scannedTables.createStaticObjectTable, mergedVariantsTable);
|
|
294
|
+
const hash = (0, zss_engine_1.genBase36Hash)(obj, 1, 8);
|
|
295
|
+
const uniqueKey = `${resourcePath}-${node.id.value}`;
|
|
296
|
+
scannedTables.createThemeHashTable[uniqueKey] = hash;
|
|
297
|
+
scannedTables.createThemeObjectTable[hash] = obj;
|
|
298
|
+
localCreateStyles[node.id.value] = {
|
|
299
|
+
name: node.id.value,
|
|
300
|
+
type: 'constant',
|
|
301
|
+
obj,
|
|
302
|
+
hashMap: scannedTables.createAtomicMapTable[hash],
|
|
303
|
+
isExported,
|
|
304
|
+
initSpan: {
|
|
305
|
+
start: node.init.span.start - ast.span.start,
|
|
306
|
+
end: node.init.span.end - ast.span.start,
|
|
307
|
+
},
|
|
308
|
+
declSpan: {
|
|
309
|
+
start: declSpan.start - ast.span.start,
|
|
310
|
+
end: declSpan.end - ast.span.start,
|
|
311
|
+
},
|
|
312
|
+
};
|
|
313
|
+
}
|
|
280
314
|
}
|
|
281
315
|
};
|
|
282
316
|
(0, utils_1.traverse)(ast, {
|
|
@@ -334,7 +368,7 @@ async function loader(source) {
|
|
|
334
368
|
if (propName === 'keyframes' &&
|
|
335
369
|
args.length > 0 &&
|
|
336
370
|
utils_1.t.isObjectExpression(args[0].expression)) {
|
|
337
|
-
const obj = (0, utils_1.objectExpressionToObject)(args[0].expression, mergedStaticTable, mergedKeyframesTable, mergedViewTransitionTable,
|
|
371
|
+
const obj = (0, utils_1.objectExpressionToObject)(args[0].expression, mergedStaticTable, mergedKeyframesTable, mergedViewTransitionTable, mergedCreateThemeHashTable, scannedTables.createThemeObjectTable, mergedCreateTable, mergedCreateStaticHashTable, scannedTables.createStaticObjectTable, mergedVariantsTable);
|
|
338
372
|
const hash = (0, zss_engine_1.genBase36Hash)(obj, 1, 8);
|
|
339
373
|
scannedTables.keyframesObjectTable[hash] = obj;
|
|
340
374
|
replacements.push({
|
|
@@ -346,11 +380,10 @@ async function loader(source) {
|
|
|
346
380
|
else if (propName === 'viewTransition' &&
|
|
347
381
|
args.length > 0 &&
|
|
348
382
|
utils_1.t.isObjectExpression(args[0].expression)) {
|
|
349
|
-
const obj = (0, utils_1.objectExpressionToObject)(args[0].expression, mergedStaticTable, mergedKeyframesTable, mergedViewTransitionTable,
|
|
383
|
+
const obj = (0, utils_1.objectExpressionToObject)(args[0].expression, mergedStaticTable, mergedKeyframesTable, mergedViewTransitionTable, mergedCreateThemeHashTable, scannedTables.createThemeObjectTable, mergedCreateTable, mergedCreateStaticHashTable, scannedTables.createStaticObjectTable, mergedVariantsTable);
|
|
350
384
|
const hash = (0, zss_engine_1.genBase36Hash)(obj, 1, 8);
|
|
351
385
|
scannedTables.viewTransitionObjectTable[hash] = obj;
|
|
352
386
|
if (!isProduction) {
|
|
353
|
-
(0, utils_1.extractOndemandStyles)(obj, extractedSheets, scannedTables);
|
|
354
387
|
(0, utils_1.extractOndemandStyles)({ vt: `vt-${hash}` }, extractedSheets, scannedTables);
|
|
355
388
|
}
|
|
356
389
|
replacements.push({
|
|
@@ -359,17 +392,28 @@ async function loader(source) {
|
|
|
359
392
|
content: JSON.stringify(`vt-${hash}`),
|
|
360
393
|
});
|
|
361
394
|
}
|
|
362
|
-
else if (propName === 'createTheme' &&
|
|
395
|
+
else if ((propName === 'createTheme' || propName === 'createStatic') &&
|
|
363
396
|
args.length > 0 &&
|
|
364
397
|
utils_1.t.isObjectExpression(args[0].expression)) {
|
|
365
|
-
const obj = (0, utils_1.objectExpressionToObject)(args[0].expression, mergedStaticTable, mergedKeyframesTable, mergedViewTransitionTable,
|
|
398
|
+
const obj = (0, utils_1.objectExpressionToObject)(args[0].expression, mergedStaticTable, mergedKeyframesTable, mergedViewTransitionTable, mergedCreateThemeHashTable, scannedTables.createThemeObjectTable, mergedCreateTable, mergedCreateStaticHashTable, scannedTables.createStaticObjectTable, mergedVariantsTable);
|
|
366
399
|
const hash = (0, zss_engine_1.genBase36Hash)(obj, 1, 8);
|
|
367
|
-
|
|
400
|
+
if (propName === 'createTheme') {
|
|
401
|
+
scannedTables.createThemeObjectTable[hash] = obj;
|
|
402
|
+
}
|
|
403
|
+
else {
|
|
404
|
+
scannedTables.createStaticObjectTable[hash] = obj;
|
|
405
|
+
}
|
|
406
|
+
const prefix = propName === 'createTheme' ? 'tm-' : 'st-';
|
|
407
|
+
replacements.push({
|
|
408
|
+
start: node.span.start - ast.span.start,
|
|
409
|
+
end: node.span.end - ast.span.start,
|
|
410
|
+
content: JSON.stringify(`${prefix}${hash}`),
|
|
411
|
+
});
|
|
368
412
|
}
|
|
369
413
|
else if (propName === 'create' &&
|
|
370
414
|
args.length > 0 &&
|
|
371
415
|
utils_1.t.isObjectExpression(args[0].expression)) {
|
|
372
|
-
const obj = (0, utils_1.objectExpressionToObject)(args[0].expression, mergedStaticTable, mergedKeyframesTable, mergedViewTransitionTable,
|
|
416
|
+
const obj = (0, utils_1.objectExpressionToObject)(args[0].expression, mergedStaticTable, mergedKeyframesTable, mergedViewTransitionTable, mergedCreateThemeHashTable, scannedTables.createThemeObjectTable, mergedCreateTable, mergedCreateStaticHashTable, scannedTables.createStaticObjectTable, mergedVariantsTable);
|
|
373
417
|
const hash = (0, zss_engine_1.genBase36Hash)(obj, 1, 8);
|
|
374
418
|
scannedTables.createObjectTable[hash] = obj;
|
|
375
419
|
Object.entries(obj).forEach(([key, style]) => {
|
|
@@ -390,7 +434,7 @@ async function loader(source) {
|
|
|
390
434
|
if (utils_1.t.isIdentifier(node.object) && utils_1.t.isIdentifier(node.property)) {
|
|
391
435
|
const varName = node.object.value;
|
|
392
436
|
const propName = node.property.value;
|
|
393
|
-
const uniqueKey = `${
|
|
437
|
+
const uniqueKey = `${resourcePath}-${varName}`;
|
|
394
438
|
let hash = scannedTables.createHashTable[uniqueKey];
|
|
395
439
|
if (!hash) {
|
|
396
440
|
hash = mergedCreateTable[varName];
|
|
@@ -408,6 +452,34 @@ async function loader(source) {
|
|
|
408
452
|
});
|
|
409
453
|
}
|
|
410
454
|
}
|
|
455
|
+
let themeHash = scannedTables.createThemeHashTable[uniqueKey];
|
|
456
|
+
if (!themeHash) {
|
|
457
|
+
themeHash = mergedCreateThemeHashTable[varName];
|
|
458
|
+
}
|
|
459
|
+
if (themeHash) {
|
|
460
|
+
const atomicMap = scannedTables.createAtomicMapTable[themeHash];
|
|
461
|
+
if (atomicMap && atomicMap && atomicMap[propName]) {
|
|
462
|
+
replacements.push({
|
|
463
|
+
start: node.span.start - ast.span.start,
|
|
464
|
+
end: node.span.end - ast.span.start,
|
|
465
|
+
content: JSON.stringify(atomicMap[propName]),
|
|
466
|
+
});
|
|
467
|
+
}
|
|
468
|
+
}
|
|
469
|
+
let staticHash = scannedTables.createStaticHashTable[uniqueKey];
|
|
470
|
+
if (!staticHash) {
|
|
471
|
+
staticHash = mergedCreateStaticHashTable[varName];
|
|
472
|
+
}
|
|
473
|
+
if (staticHash) {
|
|
474
|
+
const staticObj = scannedTables.createStaticObjectTable[staticHash];
|
|
475
|
+
if (staticObj && staticObj[propName] !== undefined) {
|
|
476
|
+
replacements.push({
|
|
477
|
+
start: node.span.start - ast.span.start,
|
|
478
|
+
end: node.span.end - ast.span.start,
|
|
479
|
+
content: JSON.stringify(staticObj[propName]),
|
|
480
|
+
});
|
|
481
|
+
}
|
|
482
|
+
}
|
|
411
483
|
}
|
|
412
484
|
},
|
|
413
485
|
Identifier({ node }) {
|
|
@@ -425,7 +497,7 @@ async function loader(source) {
|
|
|
425
497
|
return;
|
|
426
498
|
}
|
|
427
499
|
const varName = node.value;
|
|
428
|
-
const uniqueKey = `${
|
|
500
|
+
const uniqueKey = `${resourcePath}-${varName}`;
|
|
429
501
|
let hash = scannedTables.createHashTable[uniqueKey];
|
|
430
502
|
if (!hash) {
|
|
431
503
|
hash = mergedCreateTable[varName];
|
|
@@ -447,6 +519,35 @@ async function loader(source) {
|
|
|
447
519
|
});
|
|
448
520
|
}
|
|
449
521
|
}
|
|
522
|
+
let themeHash = scannedTables.createThemeHashTable[uniqueKey];
|
|
523
|
+
if (!themeHash) {
|
|
524
|
+
themeHash = mergedCreateThemeHashTable[varName];
|
|
525
|
+
}
|
|
526
|
+
if (themeHash) {
|
|
527
|
+
const atomicMap = scannedTables.createAtomicMapTable[themeHash];
|
|
528
|
+
if (atomicMap) {
|
|
529
|
+
replacements.push({
|
|
530
|
+
start: node.span.start - ast.span.start,
|
|
531
|
+
end: node.span.end - ast.span.start,
|
|
532
|
+
content: JSON.stringify(atomicMap),
|
|
533
|
+
});
|
|
534
|
+
return;
|
|
535
|
+
}
|
|
536
|
+
}
|
|
537
|
+
let staticHash = scannedTables.createStaticHashTable[uniqueKey];
|
|
538
|
+
if (!staticHash) {
|
|
539
|
+
staticHash = mergedCreateStaticHashTable[varName];
|
|
540
|
+
}
|
|
541
|
+
if (staticHash) {
|
|
542
|
+
const staticObj = scannedTables.createStaticObjectTable[staticHash];
|
|
543
|
+
if (staticObj) {
|
|
544
|
+
replacements.push({
|
|
545
|
+
start: node.span.start - ast.span.start,
|
|
546
|
+
end: node.span.end - ast.span.start,
|
|
547
|
+
content: JSON.stringify(staticObj),
|
|
548
|
+
});
|
|
549
|
+
}
|
|
550
|
+
}
|
|
450
551
|
},
|
|
451
552
|
CallExpression({ node }) {
|
|
452
553
|
const callee = node.callee;
|
|
@@ -473,18 +574,17 @@ async function loader(source) {
|
|
|
473
574
|
const args = node.arguments;
|
|
474
575
|
const resolveStyleObject = (expr) => {
|
|
475
576
|
if (utils_1.t.isObjectExpression(expr)) {
|
|
476
|
-
return (0, utils_1.objectExpressionToObject)(expr, mergedStaticTable, mergedKeyframesTable, mergedViewTransitionTable,
|
|
577
|
+
return (0, utils_1.objectExpressionToObject)(expr, mergedStaticTable, mergedKeyframesTable, mergedViewTransitionTable, mergedCreateThemeHashTable, scannedTables.createThemeObjectTable, mergedCreateTable, mergedCreateStaticHashTable, scannedTables.createStaticObjectTable, mergedVariantsTable);
|
|
477
578
|
}
|
|
478
579
|
else if (utils_1.t.isMemberExpression(expr) &&
|
|
479
580
|
utils_1.t.isIdentifier(expr.object) &&
|
|
480
|
-
(utils_1.t.isIdentifier(expr.property) ||
|
|
581
|
+
(utils_1.t.isIdentifier(expr.property) ||
|
|
582
|
+
expr.property.type === 'Computed')) {
|
|
481
583
|
if (expr.property.type === 'Computed') {
|
|
482
584
|
return {};
|
|
483
585
|
}
|
|
484
|
-
const varName = expr.object
|
|
485
|
-
|
|
486
|
-
const propName = expr.property
|
|
487
|
-
.value;
|
|
586
|
+
const varName = expr.object.value;
|
|
587
|
+
const propName = expr.property.value;
|
|
488
588
|
const styleInfo = localCreateStyles[varName];
|
|
489
589
|
if (styleInfo && styleInfo.obj[propName]) {
|
|
490
590
|
const style = styleInfo.obj[propName];
|
|
@@ -748,6 +848,9 @@ async function loader(source) {
|
|
|
748
848
|
},
|
|
749
849
|
});
|
|
750
850
|
Object.values(localCreateStyles).forEach((info) => {
|
|
851
|
+
if (info.type === 'constant' || info.type === 'variant') {
|
|
852
|
+
return;
|
|
853
|
+
}
|
|
751
854
|
if (info.isExported) {
|
|
752
855
|
replacements.push({
|
|
753
856
|
start: info.declSpan.start,
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@plumeria/turbopack-loader",
|
|
3
|
-
"version": "6.
|
|
3
|
+
"version": "6.3.0",
|
|
4
4
|
"description": "Plumeria Turbopack-loader",
|
|
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",
|