@plumeria/turbopack-loader 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.
Files changed (2) hide show
  1. package/dist/index.js +62 -45
  2. package/package.json +2 -2
package/dist/index.js CHANGED
@@ -5,13 +5,13 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.default = loader;
7
7
  const core_1 = require("@swc/core");
8
- const fs_1 = __importDefault(require("fs"));
8
+ const fs_1 = require("fs");
9
9
  const path_1 = __importDefault(require("path"));
10
10
  const zss_engine_1 = require("zss-engine");
11
11
  const utils_1 = require("@plumeria/utils");
12
12
  const VIRTUAL_FILE_PATH = path_1.default.resolve(__dirname, '..', 'zero-virtual.css');
13
13
  if (process.env.NODE_ENV === 'production') {
14
- fs_1.default.writeFileSync(VIRTUAL_FILE_PATH, '/** Placeholder file */', 'utf-8');
14
+ (0, fs_1.writeFileSync)(VIRTUAL_FILE_PATH, '/** Placeholder file */\n', 'utf-8');
15
15
  }
16
16
  async function loader(source) {
17
17
  const callback = this.async();
@@ -142,6 +142,11 @@ async function loader(source) {
142
142
  const mergedCreateThemeHashTable = {};
143
143
  for (const key of Object.keys(scannedTables.createThemeHashTable)) {
144
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
+ }
145
150
  }
146
151
  for (const key of Object.keys(createThemeImportMap)) {
147
152
  mergedCreateThemeHashTable[key] = createThemeImportMap[key];
@@ -149,6 +154,11 @@ async function loader(source) {
149
154
  const mergedCreateStaticHashTable = {};
150
155
  for (const key of Object.keys(scannedTables.createStaticHashTable)) {
151
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
+ }
152
162
  }
153
163
  for (const key of Object.keys(createStaticImportMap)) {
154
164
  mergedCreateStaticHashTable[key] = createStaticImportMap[key];
@@ -211,7 +221,7 @@ async function loader(source) {
211
221
  if (obj) {
212
222
  const hashMap = {};
213
223
  Object.entries(obj).forEach(([key, style]) => {
214
- const records = (0, utils_1.getStyleRecords)(key, style, 2);
224
+ const records = (0, utils_1.getStyleRecords)(key, style);
215
225
  if (!isProduction) {
216
226
  (0, utils_1.extractOndemandStyles)(style, extractedSheets, scannedTables);
217
227
  records.forEach((r) => {
@@ -244,6 +254,9 @@ async function loader(source) {
244
254
  }
245
255
  else if (propName === 'variants' &&
246
256
  utils_1.t.isObjectExpression(node.init.arguments[0].expression)) {
257
+ if (utils_1.t.isIdentifier(node.id)) {
258
+ idSpans.add(node.id.span.start);
259
+ }
247
260
  const obj = (0, utils_1.objectExpressionToObject)(node.init.arguments[0].expression, mergedStaticTable, mergedKeyframesTable, mergedViewTransitionTable, mergedCreateThemeHashTable, scannedTables.createThemeObjectTable, mergedCreateTable, mergedCreateStaticHashTable, scannedTables.createStaticObjectTable, mergedVariantsTable, (name) => {
248
261
  if (localCreateStyles[name]) {
249
262
  return localCreateStyles[name].obj;
@@ -272,6 +285,32 @@ async function loader(source) {
272
285
  },
273
286
  };
274
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
+ }
275
314
  }
276
315
  };
277
316
  (0, utils_1.traverse)(ast, {
@@ -332,6 +371,9 @@ async function loader(source) {
332
371
  const obj = (0, utils_1.objectExpressionToObject)(args[0].expression, mergedStaticTable, mergedKeyframesTable, mergedViewTransitionTable, mergedCreateThemeHashTable, scannedTables.createThemeObjectTable, mergedCreateTable, mergedCreateStaticHashTable, scannedTables.createStaticObjectTable, mergedVariantsTable);
333
372
  const hash = (0, zss_engine_1.genBase36Hash)(obj, 1, 8);
334
373
  scannedTables.keyframesObjectTable[hash] = obj;
374
+ if (!isProduction) {
375
+ (0, utils_1.extractOndemandStyles)({ kf: `kf-${hash}` }, extractedSheets, scannedTables);
376
+ }
335
377
  replacements.push({
336
378
  start: node.span.start - ast.span.start,
337
379
  end: node.span.end - ast.span.start,
@@ -345,7 +387,6 @@ async function loader(source) {
345
387
  const hash = (0, zss_engine_1.genBase36Hash)(obj, 1, 8);
346
388
  scannedTables.viewTransitionObjectTable[hash] = obj;
347
389
  if (!isProduction) {
348
- (0, utils_1.extractOndemandStyles)(obj, extractedSheets, scannedTables);
349
390
  (0, utils_1.extractOndemandStyles)({ vt: `vt-${hash}` }, extractedSheets, scannedTables);
350
391
  }
351
392
  replacements.push({
@@ -380,7 +421,7 @@ async function loader(source) {
380
421
  scannedTables.createObjectTable[hash] = obj;
381
422
  Object.entries(obj).forEach(([key, style]) => {
382
423
  if (typeof style === 'object' && style !== null) {
383
- const records = (0, utils_1.getStyleRecords)(key, style, 2);
424
+ const records = (0, utils_1.getStyleRecords)(key, style);
384
425
  if (!isProduction) {
385
426
  (0, utils_1.extractOndemandStyles)(style, extractedSheets, scannedTables);
386
427
  records.forEach((r) => addSheet(r.sheet));
@@ -396,7 +437,7 @@ async function loader(source) {
396
437
  if (utils_1.t.isIdentifier(node.object) && utils_1.t.isIdentifier(node.property)) {
397
438
  const varName = node.object.value;
398
439
  const propName = node.property.value;
399
- const uniqueKey = `${this.resourcePath}-${varName}`;
440
+ const uniqueKey = `${resourcePath}-${varName}`;
400
441
  let hash = scannedTables.createHashTable[uniqueKey];
401
442
  if (!hash) {
402
443
  hash = mergedCreateTable[varName];
@@ -419,13 +460,12 @@ async function loader(source) {
419
460
  themeHash = mergedCreateThemeHashTable[varName];
420
461
  }
421
462
  if (themeHash) {
422
- const themeObj = scannedTables.createThemeObjectTable[themeHash];
423
- if (themeObj && themeObj[propName] !== undefined) {
424
- const cssVarName = (0, zss_engine_1.camelToKebabCase)(propName);
463
+ const atomicMap = scannedTables.createAtomicMapTable[themeHash];
464
+ if (atomicMap && atomicMap && atomicMap[propName]) {
425
465
  replacements.push({
426
466
  start: node.span.start - ast.span.start,
427
467
  end: node.span.end - ast.span.start,
428
- content: JSON.stringify(`var(--${cssVarName})`),
468
+ content: JSON.stringify(atomicMap[propName]),
429
469
  });
430
470
  }
431
471
  }
@@ -460,7 +500,7 @@ async function loader(source) {
460
500
  return;
461
501
  }
462
502
  const varName = node.value;
463
- const uniqueKey = `${this.resourcePath}-${varName}`;
503
+ const uniqueKey = `${resourcePath}-${varName}`;
464
504
  let hash = scannedTables.createHashTable[uniqueKey];
465
505
  if (!hash) {
466
506
  hash = mergedCreateTable[varName];
@@ -482,46 +522,19 @@ async function loader(source) {
482
522
  });
483
523
  }
484
524
  }
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
525
  let themeHash = scannedTables.createThemeHashTable[uniqueKey];
510
526
  if (!themeHash) {
511
527
  themeHash = mergedCreateThemeHashTable[varName];
512
528
  }
513
529
  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
- });
530
+ const atomicMap = scannedTables.createAtomicMapTable[themeHash];
531
+ if (atomicMap) {
520
532
  replacements.push({
521
533
  start: node.span.start - ast.span.start,
522
534
  end: node.span.end - ast.span.start,
523
- content: JSON.stringify(themeVars),
535
+ content: JSON.stringify(atomicMap),
524
536
  });
537
+ return;
525
538
  }
526
539
  }
527
540
  let staticHash = scannedTables.createStaticHashTable[uniqueKey];
@@ -759,7 +772,7 @@ async function loader(source) {
759
772
  (0, utils_1.extractOndemandStyles)(baseStyle, extractedSheets, scannedTables);
760
773
  }
761
774
  const hash = (0, zss_engine_1.genBase36Hash)(baseStyle, 1, 8);
762
- const records = (0, utils_1.getStyleRecords)(hash, baseStyle, 2);
775
+ const records = (0, utils_1.getStyleRecords)(hash, baseStyle);
763
776
  if (!isProduction) {
764
777
  records.forEach((r) => addSheet(r.sheet));
765
778
  }
@@ -800,7 +813,7 @@ async function loader(source) {
800
813
  (0, utils_1.extractOndemandStyles)(currentStyle, extractedSheets, scannedTables);
801
814
  }
802
815
  const hash = (0, zss_engine_1.genBase36Hash)(currentStyle, 1, 8);
803
- const records = (0, utils_1.getStyleRecords)(hash, currentStyle, 2);
816
+ const records = (0, utils_1.getStyleRecords)(hash, currentStyle);
804
817
  if (process.env.NODE_ENV !== 'production') {
805
818
  records.forEach((r) => extractedSheets.push(r.sheet));
806
819
  }
@@ -838,6 +851,9 @@ async function loader(source) {
838
851
  },
839
852
  });
840
853
  Object.values(localCreateStyles).forEach((info) => {
854
+ if (info.type === 'constant') {
855
+ return;
856
+ }
841
857
  if (info.isExported) {
842
858
  replacements.push({
843
859
  start: info.declSpan.start,
@@ -853,6 +869,7 @@ async function loader(source) {
853
869
  });
854
870
  }
855
871
  });
872
+ const optInCSS = await (0, utils_1.optimizer)(extractedSheets.join(''));
856
873
  const buffer = Buffer.from(source);
857
874
  let offset = 0;
858
875
  const parts = [];
@@ -886,7 +903,7 @@ async function loader(source) {
886
903
  if (process.env.NODE_ENV === 'production')
887
904
  return callback(null, transformedSource);
888
905
  if (extractedSheets.length > 0 && process.env.NODE_ENV === 'development') {
889
- fs_1.default.appendFileSync(VIRTUAL_FILE_PATH, extractedSheets.join(''), 'utf-8');
906
+ (0, fs_1.appendFileSync)(VIRTUAL_FILE_PATH, optInCSS, 'utf-8');
890
907
  }
891
908
  return callback(null, transformedSource + postfix);
892
909
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@plumeria/turbopack-loader",
3
- "version": "6.2.1",
3
+ "version": "6.3.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.1"
25
+ "@plumeria/utils": "^6.3.1"
26
26
  },
27
27
  "devDependencies": {
28
28
  "@swc/core": "1.15.8",