@plumeria/turbopack-loader 6.2.0 → 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.
Files changed (2) hide show
  1. package/dist/index.js +133 -43
  2. 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,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, mergedThemeTable, mergedCreateTable, mergedVariantsTable);
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, mergedThemeTable, mergedCreateTable, mergedVariantsTable, (name) => {
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, mergedThemeTable, mergedCreateTable, mergedVariantsTable);
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, mergedThemeTable, mergedCreateTable, mergedVariantsTable);
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, mergedThemeTable, mergedCreateTable, mergedVariantsTable);
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
- scannedTables.createThemeObjectTable[hash] = obj;
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, mergedThemeTable, mergedCreateTable, mergedVariantsTable);
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]) => {
@@ -408,6 +414,35 @@ async function loader(source) {
408
414
  });
409
415
  }
410
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
+ }
411
446
  }
412
447
  },
413
448
  Identifier({ node }) {
@@ -447,6 +482,62 @@ async function loader(source) {
447
482
  });
448
483
  }
449
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
+ }
540
+ }
450
541
  },
451
542
  CallExpression({ node }) {
452
543
  const callee = node.callee;
@@ -473,18 +564,17 @@ async function loader(source) {
473
564
  const args = node.arguments;
474
565
  const resolveStyleObject = (expr) => {
475
566
  if (utils_1.t.isObjectExpression(expr)) {
476
- return (0, utils_1.objectExpressionToObject)(expr, mergedStaticTable, mergedKeyframesTable, mergedViewTransitionTable, mergedThemeTable, mergedCreateTable, mergedVariantsTable);
567
+ return (0, utils_1.objectExpressionToObject)(expr, mergedStaticTable, mergedKeyframesTable, mergedViewTransitionTable, mergedCreateThemeHashTable, scannedTables.createThemeObjectTable, mergedCreateTable, mergedCreateStaticHashTable, scannedTables.createStaticObjectTable, mergedVariantsTable);
477
568
  }
478
569
  else if (utils_1.t.isMemberExpression(expr) &&
479
570
  utils_1.t.isIdentifier(expr.object) &&
480
- (utils_1.t.isIdentifier(expr.property) || expr.property.type === 'Computed')) {
571
+ (utils_1.t.isIdentifier(expr.property) ||
572
+ expr.property.type === 'Computed')) {
481
573
  if (expr.property.type === 'Computed') {
482
574
  return {};
483
575
  }
484
- const varName = expr.object
485
- .value;
486
- const propName = expr.property
487
- .value;
576
+ const varName = expr.object.value;
577
+ const propName = expr.property.value;
488
578
  const styleInfo = localCreateStyles[varName];
489
579
  if (styleInfo && styleInfo.obj[propName]) {
490
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.2.0",
3
+ "version": "6.2.1",
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.2.0"
25
+ "@plumeria/utils": "^6.2.1"
26
26
  },
27
27
  "devDependencies": {
28
28
  "@swc/core": "1.15.8",