unplugin-stylex 0.6.1 → 0.6.3

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 (82) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/README.md +143 -73
  3. package/dist/astro.cjs +24 -19
  4. package/dist/astro.d.ts +38 -16
  5. package/dist/astro.d.ts.map +1 -0
  6. package/dist/astro.js +15 -10
  7. package/dist/{chunk-IU3ZVEOU.cjs → chunk-45JWH4GZ.cjs} +57 -38
  8. package/dist/{chunk-F2LYIKCV.js → chunk-5RGNKABP.js} +1 -1
  9. package/dist/{chunk-B3OIQQRZ.js → chunk-SSMUIUHR.js} +41 -22
  10. package/dist/{chunk-7LU6DGX6.cjs → chunk-WDYGV6FU.cjs} +2 -2
  11. package/dist/core/build.d.ts +5 -0
  12. package/dist/core/build.d.ts.map +1 -0
  13. package/dist/core/options.d.ts +5 -0
  14. package/dist/core/options.d.ts.map +1 -0
  15. package/dist/core/plugins.d.ts +2 -0
  16. package/dist/core/plugins.d.ts.map +1 -0
  17. package/dist/core/transformers/astro.d.ts +3 -0
  18. package/dist/core/transformers/astro.d.ts.map +1 -0
  19. package/dist/core/transformers/default.d.ts +3 -0
  20. package/dist/core/transformers/default.d.ts.map +1 -0
  21. package/dist/core/transformers/index.d.ts +3 -0
  22. package/dist/core/transformers/index.d.ts.map +1 -0
  23. package/dist/core/transformers/svelte.d.ts +3 -0
  24. package/dist/core/transformers/svelte.d.ts.map +1 -0
  25. package/dist/esbuild.cjs +2 -2
  26. package/dist/esbuild.d.ts +18 -8
  27. package/dist/esbuild.d.ts.map +1 -0
  28. package/dist/esbuild.js +1 -1
  29. package/dist/farm.cjs +2 -2
  30. package/dist/farm.d.ts +19 -6
  31. package/dist/farm.d.ts.map +1 -0
  32. package/dist/farm.js +1 -1
  33. package/dist/index.cjs +2 -2
  34. package/dist/index.d.ts +7 -11
  35. package/dist/index.d.ts.map +1 -0
  36. package/dist/index.js +1 -1
  37. package/dist/rolldown.cjs +2 -2
  38. package/dist/rolldown.d.ts +20 -8
  39. package/dist/rolldown.d.ts.map +1 -0
  40. package/dist/rolldown.js +1 -1
  41. package/dist/rollup.cjs +2 -2
  42. package/dist/rollup.d.ts +17 -8
  43. package/dist/rollup.d.ts.map +1 -0
  44. package/dist/rollup.js +1 -1
  45. package/dist/rspack.cjs +2 -2
  46. package/dist/rspack.d.ts +17 -8
  47. package/dist/rspack.d.ts.map +1 -0
  48. package/dist/rspack.js +1 -1
  49. package/dist/types.d.ts +16 -10
  50. package/dist/types.d.ts.map +1 -0
  51. package/dist/utils/constants.d.ts +4 -0
  52. package/dist/utils/constants.d.ts.map +1 -0
  53. package/dist/utils/get-aliases.d.ts +4 -0
  54. package/dist/utils/get-aliases.d.ts.map +1 -0
  55. package/dist/utils/index.d.ts +5 -0
  56. package/dist/utils/index.d.ts.map +1 -0
  57. package/dist/utils/store.d.ts +4 -0
  58. package/dist/utils/store.d.ts.map +1 -0
  59. package/dist/utils/stylex-path.d.ts +4 -0
  60. package/dist/utils/stylex-path.d.ts.map +1 -0
  61. package/dist/vite.cjs +3 -3
  62. package/dist/vite.d.ts +18 -8
  63. package/dist/vite.d.ts.map +1 -0
  64. package/dist/vite.js +2 -2
  65. package/dist/webpack.cjs +2 -2
  66. package/dist/webpack.d.ts +17 -8
  67. package/dist/webpack.d.ts.map +1 -0
  68. package/dist/webpack.js +1 -1
  69. package/jsr.json +1 -1
  70. package/package.json +19 -12
  71. package/tsconfig.json +3 -6
  72. package/turbo.json +23 -0
  73. package/dist/astro.d.cts +0 -39
  74. package/dist/esbuild.d.cts +0 -14
  75. package/dist/farm.d.cts +0 -11
  76. package/dist/index.d.cts +0 -20
  77. package/dist/rolldown.d.cts +0 -14
  78. package/dist/rollup.d.cts +0 -14
  79. package/dist/rspack.d.cts +0 -15
  80. package/dist/types.d.cts +0 -41
  81. package/dist/vite.d.cts +0 -14
  82. package/dist/webpack.d.cts +0 -14
@@ -6,7 +6,7 @@
6
6
  });
7
7
 
8
8
  // src/index.ts
9
- var _path = require('path'); var path2 = _interopRequireWildcard(_path);
9
+ var _path = require('path'); var path3 = _interopRequireWildcard(_path); var path2 = _interopRequireWildcard(_path);
10
10
  var _unplugin = require('unplugin');
11
11
 
12
12
  // src/core/build.ts
@@ -26,10 +26,10 @@ var EXTENSIONS = [".js", ".mjs", ".cjs", ".ts", ".mts", ".cts"];
26
26
  var _fs = require('fs'); var _fs2 = _interopRequireDefault(_fs);
27
27
 
28
28
  function makePathAbsolute(value) {
29
- return path2.default.isAbsolute(value) ? value : path2.default.resolve(process.cwd(), value);
29
+ return path3.default.isAbsolute(value) ? value : path3.default.resolve(process.cwd(), value);
30
30
  }
31
31
  function isTSProject() {
32
- const tsConfigPath = path2.default.resolve(process.cwd(), "tsconfig.json");
32
+ const tsConfigPath = path3.default.resolve(process.cwd(), "tsconfig.json");
33
33
  return _fs2.default.existsSync(tsConfigPath);
34
34
  }
35
35
  function getAliasesFromTSConfig() {
@@ -38,7 +38,7 @@ function getAliasesFromTSConfig() {
38
38
  return void 0;
39
39
  }
40
40
  try {
41
- const tsConfigPath = path2.default.resolve(process.cwd(), "tsconfig.json");
41
+ const tsConfigPath = path3.default.resolve(process.cwd(), "tsconfig.json");
42
42
  const tsConfigContent = _fs2.default.readFileSync(tsConfigPath, "utf8");
43
43
  const tsConfig = JSON.parse(tsConfigContent);
44
44
  const paths = ((_a = tsConfig == null ? void 0 : tsConfig.compilerOptions) == null ? void 0 : _a.paths) || {};
@@ -57,12 +57,12 @@ function getAliasesFromTSConfig() {
57
57
  function getAliasesFromViteConfig() {
58
58
  var _a;
59
59
  const configFiles = EXTENSIONS.map((ext) => `vite.config${ext}`);
60
- const configPath = configFiles.find((file) => _fs2.default.existsSync(path2.default.resolve(process.cwd(), file)));
60
+ const configPath = configFiles.find((file) => _fs2.default.existsSync(path3.default.resolve(process.cwd(), file)));
61
61
  if (!configPath) {
62
62
  return {};
63
63
  }
64
64
  try {
65
- const configModule = __require(path2.default.resolve(process.cwd(), configPath));
65
+ const configModule = __require(path3.default.resolve(process.cwd(), configPath));
66
66
  const config = typeof configModule === "function" ? configModule() : configModule.default || configModule;
67
67
  const aliases = ((_a = config == null ? void 0 : config.resolve) == null ? void 0 : _a.alias) || {};
68
68
  return Object.entries(aliases).reduce(
@@ -79,12 +79,12 @@ function getAliasesFromViteConfig() {
79
79
  function getAliasesFromWebpackConfig() {
80
80
  var _a;
81
81
  const configFiles = EXTENSIONS.map((ext) => `webpack.config${ext}`);
82
- const configPath = configFiles.find((file) => _fs2.default.existsSync(path2.default.resolve(process.cwd(), file)));
82
+ const configPath = configFiles.find((file) => _fs2.default.existsSync(path3.default.resolve(process.cwd(), file)));
83
83
  if (!configPath) {
84
84
  return {};
85
85
  }
86
86
  try {
87
- const configContent = _fs2.default.readFileSync(path2.default.resolve(process.cwd(), configPath), "utf8");
87
+ const configContent = _fs2.default.readFileSync(path3.default.resolve(process.cwd(), configPath), "utf8");
88
88
  const config = JSON.parse(configContent);
89
89
  const aliases = ((_a = config == null ? void 0 : config.resolve) == null ? void 0 : _a.alias) || {};
90
90
  return Object.entries(aliases).reduce(
@@ -101,12 +101,12 @@ function getAliasesFromWebpackConfig() {
101
101
  function getAliasesFromRollupConfig() {
102
102
  var _a, _b;
103
103
  const configFiles = EXTENSIONS.map((ext) => `rollup.config${ext}`);
104
- const configPath = configFiles.find((file) => _fs2.default.existsSync(path2.default.resolve(process.cwd(), file)));
104
+ const configPath = configFiles.find((file) => _fs2.default.existsSync(path3.default.resolve(process.cwd(), file)));
105
105
  if (!configPath) {
106
106
  return {};
107
107
  }
108
108
  try {
109
- const configModule = __require(path2.default.resolve(process.cwd(), configPath));
109
+ const configModule = __require(path3.default.resolve(process.cwd(), configPath));
110
110
  const config = typeof configModule === "function" ? configModule() : configModule.default || configModule;
111
111
  const aliasPlugin = (_a = config == null ? void 0 : config.plugins) == null ? void 0 : _a.find((plugin) => {
112
112
  if (typeof plugin === "object" && plugin !== null) {
@@ -132,12 +132,12 @@ function getAliasesFromRollupConfig() {
132
132
  function getAliasesFromRolldownConfig() {
133
133
  var _a;
134
134
  const configFiles = EXTENSIONS.map((ext) => `vite.config${ext}`);
135
- const configPath = configFiles.find((file) => _fs2.default.existsSync(path2.default.resolve(process.cwd(), file)));
135
+ const configPath = configFiles.find((file) => _fs2.default.existsSync(path3.default.resolve(process.cwd(), file)));
136
136
  if (!configPath) {
137
137
  return {};
138
138
  }
139
139
  try {
140
- const configModule = __require(path2.default.resolve(process.cwd(), configPath));
140
+ const configModule = __require(path3.default.resolve(process.cwd(), configPath));
141
141
  const config = typeof configModule === "function" ? configModule() : configModule.default || configModule;
142
142
  const aliases = ((_a = config == null ? void 0 : config.resolve) == null ? void 0 : _a.alias) || {};
143
143
  return Object.entries(aliases).reduce(
@@ -157,12 +157,12 @@ function getAliasesFromEsbuildConfig() {
157
157
  function getAliasesFromRspackConfig() {
158
158
  var _a;
159
159
  const configFiles = EXTENSIONS.map((ext) => `rspack.config${ext}`);
160
- const configPath = configFiles.find((file) => _fs2.default.existsSync(path2.default.resolve(process.cwd(), file)));
160
+ const configPath = configFiles.find((file) => _fs2.default.existsSync(path3.default.resolve(process.cwd(), file)));
161
161
  if (!configPath) {
162
162
  return {};
163
163
  }
164
164
  try {
165
- const configContent = _fs2.default.readFileSync(path2.default.resolve(process.cwd(), configPath), "utf8");
165
+ const configContent = _fs2.default.readFileSync(path3.default.resolve(process.cwd(), configPath), "utf8");
166
166
  const config = JSON.parse(configContent);
167
167
  const aliases = ((_a = config == null ? void 0 : config.resolve) == null ? void 0 : _a.alias) || {};
168
168
  return Object.entries(aliases).reduce(
@@ -179,12 +179,12 @@ function getAliasesFromRspackConfig() {
179
179
  function getAliasesFromFarmConfig() {
180
180
  var _a;
181
181
  const configFiles = EXTENSIONS.map((ext) => `farm.config${ext}`);
182
- const configPath = configFiles.find((file) => _fs2.default.existsSync(path2.default.resolve(process.cwd(), file)));
182
+ const configPath = configFiles.find((file) => _fs2.default.existsSync(path3.default.resolve(process.cwd(), file)));
183
183
  if (!configPath) {
184
184
  return {};
185
185
  }
186
186
  try {
187
- const configModule = __require(path2.default.resolve(process.cwd(), configPath));
187
+ const configModule = __require(path3.default.resolve(process.cwd(), configPath));
188
188
  const config = typeof configModule === "function" ? configModule() : configModule.default || configModule;
189
189
  const aliases = ((_a = config == null ? void 0 : config.resolve) == null ? void 0 : _a.alias) || {};
190
190
  return Object.entries(aliases).reduce(
@@ -255,6 +255,19 @@ function getAliases(framework) {
255
255
  var STORE_KEY = `stylex-${PLUGIN_NAME}`;
256
256
  var stylexRulesStore = /* @__PURE__ */ new Map();
257
257
 
258
+ // src/utils/stylex-path.ts
259
+
260
+ function getStylexAssetFileName(filename, assetsDir = "assets") {
261
+ const normalizedAssetsDir = assetsDir.replace(/[\\/]+$/, "");
262
+ return normalizedAssetsDir ? `${normalizedAssetsDir}/${filename}` : filename;
263
+ }
264
+ function getStylexPublicPath(base, fileName) {
265
+ return path2.posix.join(_nullishCoalesce(base, () => ( "/")), fileName.replace(/\\/g, "/")).replace(/\/+/g, "/");
266
+ }
267
+ function normalizePath(file) {
268
+ return file.replace(/\\/g, "/");
269
+ }
270
+
258
271
  // src/core/options.ts
259
272
  function getOptions(options) {
260
273
  var _a, _b, _c;
@@ -416,27 +429,30 @@ var transformers = {
416
429
  // src/index.ts
417
430
  var unpluginFactory = (rawOptions, meta) => {
418
431
  const options = getOptions({ ...rawOptions || {}, framework: meta.framework });
432
+ const stylexFilename = _nullishCoalesce(options.stylex.filename, () => ( "stylex.css"));
433
+ const stylexImports = _nullishCoalesce(options.stylex.stylexImports, () => ( ["@stylexjs/stylex"]));
434
+ const useCSSLayers = _nullishCoalesce(options.stylex.useCSSLayers, () => ( false));
419
435
  if (!stylexRulesStore.has(STORE_KEY)) {
420
436
  stylexRulesStore.set(STORE_KEY, {});
421
437
  }
422
- const stylexRules = stylexRulesStore.get(STORE_KEY);
438
+ const stylexRules = _nullishCoalesce(stylexRulesStore.get(STORE_KEY), () => ( {}));
423
439
  let viteConfig = null;
424
440
  return {
425
441
  name: PLUGIN_NAME,
426
442
  transformInclude(id) {
427
443
  const validExts = options.validExts;
428
- const extname2 = path2.extname(id);
444
+ const extname2 = path3.extname(id);
429
445
  const questionMarkIndex = extname2.indexOf("?");
430
446
  const validExtName = questionMarkIndex > -1 ? extname2.slice(0, questionMarkIndex) : extname2;
431
447
  return validExts instanceof RegExp ? validExts.test(validExtName) : validExts.includes(validExtName);
432
448
  },
433
449
  async transform(code, id) {
434
- var _a;
435
- const dir = path2.dirname(id);
436
- const basename2 = path2.basename(id);
437
- const file = path2.join(dir, basename2.includes("?") ? basename2.split("?")[0] : basename2);
438
- const extname2 = path2.extname(file).slice(1);
439
- if (!options.stylex.stylexImports.some((importName) => code.includes(importName))) {
450
+ var _a, _b, _c, _d;
451
+ const file = id.split("?")[0];
452
+ const normalizedFile = normalizePath(file);
453
+ const normalizedId = normalizePath(id);
454
+ const extname2 = path3.extname(file).slice(1);
455
+ if (!stylexImports.some((importName) => code.includes(importName))) {
440
456
  return;
441
457
  }
442
458
  const context = {
@@ -448,18 +464,19 @@ var unpluginFactory = (rawOptions, meta) => {
448
464
  try {
449
465
  const transformer = _nullishCoalesce(transformers[extname2], () => ( transformers.default));
450
466
  const result = await transformer(context);
451
- if ((_a = result.stylexRules) == null ? void 0 : _a[id]) {
452
- stylexRules[id] = result.stylexRules[id];
467
+ const transformedRules = _nullishCoalesce(_nullishCoalesce(_nullishCoalesce(((_a = result.stylexRules) == null ? void 0 : _a[file]), () => ( ((_b = result.stylexRules) == null ? void 0 : _b[normalizedFile]))), () => ( ((_c = result.stylexRules) == null ? void 0 : _c[id]))), () => ( ((_d = result.stylexRules) == null ? void 0 : _d[normalizedId])));
468
+ if (transformedRules) {
469
+ stylexRules[normalizedFile] = transformedRules;
453
470
  }
454
471
  return result;
455
472
  } catch (error) {
456
473
  console.error("transform::error::", error);
457
- this.error(error);
474
+ this.error(error instanceof Error ? error.message : String(error));
458
475
  }
459
476
  },
460
477
  buildEnd() {
461
- const fileName = options.stylex.filename;
462
- const collectedCSS = buildStylexRules(stylexRules, options.stylex.useCSSLayers);
478
+ const fileName = stylexFilename;
479
+ const collectedCSS = buildStylexRules(stylexRules, useCSSLayers);
463
480
  if (!collectedCSS) return;
464
481
  this.emitFile({
465
482
  fileName,
@@ -481,14 +498,14 @@ var unpluginFactory = (rawOptions, meta) => {
481
498
  next();
482
499
  return;
483
500
  }
484
- const fileName = `${_nullishCoalesce(((_a = viteConfig == null ? void 0 : viteConfig.build) == null ? void 0 : _a.assetsDir), () => ( "assets"))}/${options.stylex.filename}`;
485
- const cssPath = path2.posix.join(_nullishCoalesce((viteConfig == null ? void 0 : viteConfig.base), () => ( "/")), fileName.replace(/\\/g, "/")).replace(/\/+/g, "/");
501
+ const fileName = getStylexAssetFileName(stylexFilename, _nullishCoalesce(((_a = viteConfig == null ? void 0 : viteConfig.build) == null ? void 0 : _a.assetsDir), () => ( "assets")));
502
+ const cssPath = getStylexPublicPath(viteConfig == null ? void 0 : viteConfig.base, fileName);
486
503
  const basePath = (_nullishCoalesce((viteConfig == null ? void 0 : viteConfig.base), () => ( "/"))).replace(/\/+$/, "") || "/";
487
- const filename = options.stylex.filename;
504
+ const filename = stylexFilename;
488
505
  const normalizedUrl = req.url.split("?")[0];
489
506
  const isCSSRequest = normalizedUrl === cssPath || normalizedUrl === `${basePath}/${filename}` || normalizedUrl === `/${filename}` || normalizedUrl.endsWith(`/${filename}`) || normalizedUrl === filename;
490
507
  if (isCSSRequest) {
491
- const collectedCSS = buildStylexRules(stylexRules, options.stylex.useCSSLayers);
508
+ const collectedCSS = buildStylexRules(stylexRules, useCSSLayers);
492
509
  res.setHeader("Content-Type", "text/css");
493
510
  res.setHeader("Cache-Control", "no-cache");
494
511
  res.end(collectedCSS || "");
@@ -499,8 +516,8 @@ var unpluginFactory = (rawOptions, meta) => {
499
516
  },
500
517
  buildEnd() {
501
518
  var _a;
502
- const fileName = `${_nullishCoalesce(((_a = viteConfig == null ? void 0 : viteConfig.build) == null ? void 0 : _a.assetsDir), () => ( "assets"))}/${options.stylex.filename}`;
503
- const collectedCSS = buildStylexRules(stylexRules, options.stylex.useCSSLayers);
519
+ const fileName = getStylexAssetFileName(stylexFilename, _nullishCoalesce(((_a = viteConfig == null ? void 0 : viteConfig.build) == null ? void 0 : _a.assetsDir), () => ( "assets")));
520
+ const collectedCSS = buildStylexRules(stylexRules, useCSSLayers);
504
521
  if (!collectedCSS) return;
505
522
  this.emitFile({
506
523
  fileName,
@@ -510,12 +527,12 @@ var unpluginFactory = (rawOptions, meta) => {
510
527
  },
511
528
  transformIndexHtml(html, ctx) {
512
529
  var _a, _b;
513
- const fileName = `${_nullishCoalesce(((_a = viteConfig == null ? void 0 : viteConfig.build) == null ? void 0 : _a.assetsDir), () => ( "assets"))}/${options.stylex.filename}`;
530
+ const fileName = getStylexAssetFileName(stylexFilename, _nullishCoalesce(((_a = viteConfig == null ? void 0 : viteConfig.build) == null ? void 0 : _a.assetsDir), () => ( "assets")));
514
531
  const css = (_b = ctx.bundle) == null ? void 0 : _b[fileName];
515
532
  if (!css) {
516
533
  return html;
517
534
  }
518
- const publicPath = path2.posix.join(_nullishCoalesce((viteConfig == null ? void 0 : viteConfig.base), () => ( "/")), fileName.replace(/\\/g, "/"));
535
+ const publicPath = getStylexPublicPath(viteConfig == null ? void 0 : viteConfig.base, fileName);
519
536
  return [
520
537
  {
521
538
  tag: "link",
@@ -542,4 +559,6 @@ var index_default = unplugin;
542
559
 
543
560
 
544
561
 
545
- exports.buildStylexRules = buildStylexRules; exports.PLUGIN_NAME = PLUGIN_NAME; exports.STORE_KEY = STORE_KEY; exports.stylexRulesStore = stylexRulesStore; exports.getOptions = getOptions; exports.unpluginFactory = unpluginFactory; exports.unplugin = unplugin; exports.index_default = index_default;
562
+
563
+
564
+ exports.buildStylexRules = buildStylexRules; exports.PLUGIN_NAME = PLUGIN_NAME; exports.STORE_KEY = STORE_KEY; exports.stylexRulesStore = stylexRulesStore; exports.getStylexAssetFileName = getStylexAssetFileName; exports.getStylexPublicPath = getStylexPublicPath; exports.getOptions = getOptions; exports.unpluginFactory = unpluginFactory; exports.unplugin = unplugin; exports.index_default = index_default;
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  unpluginFactory
3
- } from "./chunk-B3OIQQRZ.js";
3
+ } from "./chunk-SSMUIUHR.js";
4
4
 
5
5
  // src/vite.ts
6
6
  import { createVitePlugin } from "unplugin";
@@ -6,7 +6,7 @@ var __require = /* @__PURE__ */ ((x) => typeof require !== "undefined" ? require
6
6
  });
7
7
 
8
8
  // src/index.ts
9
- import * as path2 from "path";
9
+ import * as path3 from "path";
10
10
  import { createUnplugin } from "unplugin";
11
11
 
12
12
  // src/core/build.ts
@@ -255,6 +255,19 @@ function getAliases(framework) {
255
255
  var STORE_KEY = `stylex-${PLUGIN_NAME}`;
256
256
  var stylexRulesStore = /* @__PURE__ */ new Map();
257
257
 
258
+ // src/utils/stylex-path.ts
259
+ import * as path2 from "path";
260
+ function getStylexAssetFileName(filename, assetsDir = "assets") {
261
+ const normalizedAssetsDir = assetsDir.replace(/[\\/]+$/, "");
262
+ return normalizedAssetsDir ? `${normalizedAssetsDir}/${filename}` : filename;
263
+ }
264
+ function getStylexPublicPath(base, fileName) {
265
+ return path2.posix.join(base ?? "/", fileName.replace(/\\/g, "/")).replace(/\/+/g, "/");
266
+ }
267
+ function normalizePath(file) {
268
+ return file.replace(/\\/g, "/");
269
+ }
270
+
258
271
  // src/core/options.ts
259
272
  function getOptions(options) {
260
273
  var _a, _b, _c;
@@ -416,27 +429,30 @@ var transformers = {
416
429
  // src/index.ts
417
430
  var unpluginFactory = (rawOptions, meta) => {
418
431
  const options = getOptions({ ...rawOptions || {}, framework: meta.framework });
432
+ const stylexFilename = options.stylex.filename ?? "stylex.css";
433
+ const stylexImports = options.stylex.stylexImports ?? ["@stylexjs/stylex"];
434
+ const useCSSLayers = options.stylex.useCSSLayers ?? false;
419
435
  if (!stylexRulesStore.has(STORE_KEY)) {
420
436
  stylexRulesStore.set(STORE_KEY, {});
421
437
  }
422
- const stylexRules = stylexRulesStore.get(STORE_KEY);
438
+ const stylexRules = stylexRulesStore.get(STORE_KEY) ?? {};
423
439
  let viteConfig = null;
424
440
  return {
425
441
  name: PLUGIN_NAME,
426
442
  transformInclude(id) {
427
443
  const validExts = options.validExts;
428
- const extname2 = path2.extname(id);
444
+ const extname2 = path3.extname(id);
429
445
  const questionMarkIndex = extname2.indexOf("?");
430
446
  const validExtName = questionMarkIndex > -1 ? extname2.slice(0, questionMarkIndex) : extname2;
431
447
  return validExts instanceof RegExp ? validExts.test(validExtName) : validExts.includes(validExtName);
432
448
  },
433
449
  async transform(code, id) {
434
- var _a;
435
- const dir = path2.dirname(id);
436
- const basename2 = path2.basename(id);
437
- const file = path2.join(dir, basename2.includes("?") ? basename2.split("?")[0] : basename2);
438
- const extname2 = path2.extname(file).slice(1);
439
- if (!options.stylex.stylexImports.some((importName) => code.includes(importName))) {
450
+ var _a, _b, _c, _d;
451
+ const file = id.split("?")[0];
452
+ const normalizedFile = normalizePath(file);
453
+ const normalizedId = normalizePath(id);
454
+ const extname2 = path3.extname(file).slice(1);
455
+ if (!stylexImports.some((importName) => code.includes(importName))) {
440
456
  return;
441
457
  }
442
458
  const context = {
@@ -448,18 +464,19 @@ var unpluginFactory = (rawOptions, meta) => {
448
464
  try {
449
465
  const transformer = transformers[extname2] ?? transformers.default;
450
466
  const result = await transformer(context);
451
- if ((_a = result.stylexRules) == null ? void 0 : _a[id]) {
452
- stylexRules[id] = result.stylexRules[id];
467
+ const transformedRules = ((_a = result.stylexRules) == null ? void 0 : _a[file]) ?? ((_b = result.stylexRules) == null ? void 0 : _b[normalizedFile]) ?? ((_c = result.stylexRules) == null ? void 0 : _c[id]) ?? ((_d = result.stylexRules) == null ? void 0 : _d[normalizedId]);
468
+ if (transformedRules) {
469
+ stylexRules[normalizedFile] = transformedRules;
453
470
  }
454
471
  return result;
455
472
  } catch (error) {
456
473
  console.error("transform::error::", error);
457
- this.error(error);
474
+ this.error(error instanceof Error ? error.message : String(error));
458
475
  }
459
476
  },
460
477
  buildEnd() {
461
- const fileName = options.stylex.filename;
462
- const collectedCSS = buildStylexRules(stylexRules, options.stylex.useCSSLayers);
478
+ const fileName = stylexFilename;
479
+ const collectedCSS = buildStylexRules(stylexRules, useCSSLayers);
463
480
  if (!collectedCSS) return;
464
481
  this.emitFile({
465
482
  fileName,
@@ -481,14 +498,14 @@ var unpluginFactory = (rawOptions, meta) => {
481
498
  next();
482
499
  return;
483
500
  }
484
- const fileName = `${((_a = viteConfig == null ? void 0 : viteConfig.build) == null ? void 0 : _a.assetsDir) ?? "assets"}/${options.stylex.filename}`;
485
- const cssPath = path2.posix.join((viteConfig == null ? void 0 : viteConfig.base) ?? "/", fileName.replace(/\\/g, "/")).replace(/\/+/g, "/");
501
+ const fileName = getStylexAssetFileName(stylexFilename, ((_a = viteConfig == null ? void 0 : viteConfig.build) == null ? void 0 : _a.assetsDir) ?? "assets");
502
+ const cssPath = getStylexPublicPath(viteConfig == null ? void 0 : viteConfig.base, fileName);
486
503
  const basePath = ((viteConfig == null ? void 0 : viteConfig.base) ?? "/").replace(/\/+$/, "") || "/";
487
- const filename = options.stylex.filename;
504
+ const filename = stylexFilename;
488
505
  const normalizedUrl = req.url.split("?")[0];
489
506
  const isCSSRequest = normalizedUrl === cssPath || normalizedUrl === `${basePath}/${filename}` || normalizedUrl === `/${filename}` || normalizedUrl.endsWith(`/${filename}`) || normalizedUrl === filename;
490
507
  if (isCSSRequest) {
491
- const collectedCSS = buildStylexRules(stylexRules, options.stylex.useCSSLayers);
508
+ const collectedCSS = buildStylexRules(stylexRules, useCSSLayers);
492
509
  res.setHeader("Content-Type", "text/css");
493
510
  res.setHeader("Cache-Control", "no-cache");
494
511
  res.end(collectedCSS || "");
@@ -499,8 +516,8 @@ var unpluginFactory = (rawOptions, meta) => {
499
516
  },
500
517
  buildEnd() {
501
518
  var _a;
502
- const fileName = `${((_a = viteConfig == null ? void 0 : viteConfig.build) == null ? void 0 : _a.assetsDir) ?? "assets"}/${options.stylex.filename}`;
503
- const collectedCSS = buildStylexRules(stylexRules, options.stylex.useCSSLayers);
519
+ const fileName = getStylexAssetFileName(stylexFilename, ((_a = viteConfig == null ? void 0 : viteConfig.build) == null ? void 0 : _a.assetsDir) ?? "assets");
520
+ const collectedCSS = buildStylexRules(stylexRules, useCSSLayers);
504
521
  if (!collectedCSS) return;
505
522
  this.emitFile({
506
523
  fileName,
@@ -510,12 +527,12 @@ var unpluginFactory = (rawOptions, meta) => {
510
527
  },
511
528
  transformIndexHtml(html, ctx) {
512
529
  var _a, _b;
513
- const fileName = `${((_a = viteConfig == null ? void 0 : viteConfig.build) == null ? void 0 : _a.assetsDir) ?? "assets"}/${options.stylex.filename}`;
530
+ const fileName = getStylexAssetFileName(stylexFilename, ((_a = viteConfig == null ? void 0 : viteConfig.build) == null ? void 0 : _a.assetsDir) ?? "assets");
514
531
  const css = (_b = ctx.bundle) == null ? void 0 : _b[fileName];
515
532
  if (!css) {
516
533
  return html;
517
534
  }
518
- const publicPath = path2.posix.join((viteConfig == null ? void 0 : viteConfig.base) ?? "/", fileName.replace(/\\/g, "/"));
535
+ const publicPath = getStylexPublicPath(viteConfig == null ? void 0 : viteConfig.base, fileName);
519
536
  return [
520
537
  {
521
538
  tag: "link",
@@ -538,6 +555,8 @@ export {
538
555
  PLUGIN_NAME,
539
556
  STORE_KEY,
540
557
  stylexRulesStore,
558
+ getStylexAssetFileName,
559
+ getStylexPublicPath,
541
560
  getOptions,
542
561
  unpluginFactory,
543
562
  unplugin,
@@ -1,10 +1,10 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
2
 
3
- var _chunkIU3ZVEOUcjs = require('./chunk-IU3ZVEOU.cjs');
3
+ var _chunk45JWH4GZcjs = require('./chunk-45JWH4GZ.cjs');
4
4
 
5
5
  // src/vite.ts
6
6
  var _unplugin = require('unplugin');
7
- var vitePlugin = _unplugin.createVitePlugin.call(void 0, _chunkIU3ZVEOUcjs.unpluginFactory);
7
+ var vitePlugin = _unplugin.createVitePlugin.call(void 0, _chunk45JWH4GZcjs.unpluginFactory);
8
8
  var vite_default = vitePlugin;
9
9
 
10
10
 
@@ -0,0 +1,5 @@
1
+ import type { Rule } from '@stylexjs/babel-plugin';
2
+ export declare function buildStylexRules(stylexRules: {
3
+ [key: string]: Rule[];
4
+ }, useCSSLayers: boolean): string;
5
+ //# sourceMappingURL=build.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"build.d.ts","sourceRoot":"","sources":["../../src/core/build.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,wBAAwB,CAAA;AAGlD,wBAAgB,gBAAgB,CAAC,WAAW,EAAE;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,EAAE,CAAA;CAAE,EAAE,YAAY,EAAE,OAAO,GAAG,MAAM,CAKtG"}
@@ -0,0 +1,5 @@
1
+ import type { UnpluginStylexOptions } from '../types';
2
+ export declare function getOptions(options: UnpluginStylexOptions & {
3
+ framework: string;
4
+ }): Required<UnpluginStylexOptions>;
5
+ //# sourceMappingURL=options.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"options.d.ts","sourceRoot":"","sources":["../../src/core/options.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAiB,qBAAqB,EAAE,MAAM,UAAU,CAAA;AAGpE,wBAAgB,UAAU,CAAC,OAAO,EAAE,qBAAqB,GAAG;IAAE,SAAS,EAAE,MAAM,CAAA;CAAE,GAAG,QAAQ,CAAC,qBAAqB,CAAC,CAyBlH"}
@@ -0,0 +1,2 @@
1
+ export declare function getSyntaxPlugins(extname: string): any[];
2
+ //# sourceMappingURL=plugins.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugins.d.ts","sourceRoot":"","sources":["../../src/core/plugins.ts"],"names":[],"mappings":"AAGA,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,SAG/C"}
@@ -0,0 +1,3 @@
1
+ import type { UnpluginStylexTransformer } from '../../types';
2
+ export declare const astro: UnpluginStylexTransformer;
3
+ //# sourceMappingURL=astro.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"astro.d.ts","sourceRoot":"","sources":["../../../src/core/transformers/astro.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAA;AAG5D,eAAO,MAAM,KAAK,EAAE,yBAgDnB,CAAA"}
@@ -0,0 +1,3 @@
1
+ import type { UnpluginStylexTransformer } from '../../types';
2
+ export declare const defaultTransformer: UnpluginStylexTransformer;
3
+ //# sourceMappingURL=default.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"default.d.ts","sourceRoot":"","sources":["../../../src/core/transformers/default.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAA;AAG5D,eAAO,MAAM,kBAAkB,EAAE,yBAwChC,CAAA"}
@@ -0,0 +1,3 @@
1
+ import type { UnpluginStylexTransformer } from '../../types';
2
+ export declare const transformers: Record<string, UnpluginStylexTransformer>;
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/core/transformers/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAA;AAK5D,eAAO,MAAM,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,yBAAyB,CAIzD,CAAA"}
@@ -0,0 +1,3 @@
1
+ import type { UnpluginStylexTransformer } from '../../types';
2
+ export declare const svelte: UnpluginStylexTransformer;
3
+ //# sourceMappingURL=svelte.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"svelte.d.ts","sourceRoot":"","sources":["../../../src/core/transformers/svelte.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAA;AAG5D,eAAO,MAAM,MAAM,EAAE,yBAgCpB,CAAA"}
package/dist/esbuild.cjs CHANGED
@@ -1,11 +1,11 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
2
 
3
- var _chunkIU3ZVEOUcjs = require('./chunk-IU3ZVEOU.cjs');
3
+ var _chunk45JWH4GZcjs = require('./chunk-45JWH4GZ.cjs');
4
4
  require('./chunk-ZBPRDZS4.cjs');
5
5
 
6
6
  // src/esbuild.ts
7
7
  var _unplugin = require('unplugin');
8
- var esbuildPlugin = _unplugin.createEsbuildPlugin.call(void 0, _chunkIU3ZVEOUcjs.unpluginFactory);
8
+ var esbuildPlugin = _unplugin.createEsbuildPlugin.call(void 0, _chunk45JWH4GZcjs.unpluginFactory);
9
9
  var esbuild_default = esbuildPlugin;
10
10
 
11
11
 
package/dist/esbuild.d.ts CHANGED
@@ -1,14 +1,24 @@
1
- import { EsbuildPlugin } from 'unplugin';
2
- import { UnpluginStylexInstance } from './types.js';
3
- import '@babel/core';
4
- import '@stylexjs/babel-plugin';
5
-
6
1
  /**
7
2
  * This entry file is for esbuild plugin. Requires esbuild >= 0.15
8
3
  *
9
4
  * @module
10
5
  */
11
-
6
+ import type { EsbuildPlugin } from 'unplugin';
7
+ import type { UnpluginStylexInstance } from './types';
12
8
  declare const esbuildPlugin: UnpluginStylexInstance<EsbuildPlugin | EsbuildPlugin[]>;
13
-
14
- export { esbuildPlugin as default };
9
+ /**
10
+ * Esbuild plugin
11
+ *
12
+ * @example
13
+ *
14
+ * import { build } from 'esbuild'
15
+ * import stylexPlugin from 'unplugin-stylex/esbuild'
16
+ *
17
+ * export default {
18
+ * plugins: [
19
+ * stylexPlugin(),
20
+ * ],
21
+ * }
22
+ */
23
+ export default esbuildPlugin;
24
+ //# sourceMappingURL=esbuild.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"esbuild.d.ts","sourceRoot":"","sources":["../src/esbuild.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AAG7C,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,SAAS,CAAA;AAErD,QAAA,MAAM,aAAa,EAAE,sBAAsB,CAAC,aAAa,GAAG,aAAa,EAAE,CAAwC,CAAA;AAEnH;;;;;;;;;;;;;GAaG;AACH,eAAe,aAAa,CAAA"}
package/dist/esbuild.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  unpluginFactory
3
- } from "./chunk-B3OIQQRZ.js";
3
+ } from "./chunk-SSMUIUHR.js";
4
4
  import "./chunk-6F4PWJZI.js";
5
5
 
6
6
  // src/esbuild.ts
package/dist/farm.cjs CHANGED
@@ -1,11 +1,11 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
2
 
3
- var _chunkIU3ZVEOUcjs = require('./chunk-IU3ZVEOU.cjs');
3
+ var _chunk45JWH4GZcjs = require('./chunk-45JWH4GZ.cjs');
4
4
  require('./chunk-ZBPRDZS4.cjs');
5
5
 
6
6
  // src/farm.ts
7
7
  var _unplugin = require('unplugin');
8
- var farmPlugin = _unplugin.createFarmPlugin.call(void 0, _chunkIU3ZVEOUcjs.unpluginFactory);
8
+ var farmPlugin = _unplugin.createFarmPlugin.call(void 0, _chunk45JWH4GZcjs.unpluginFactory);
9
9
  var farm_default = farmPlugin;
10
10
 
11
11
 
package/dist/farm.d.ts CHANGED
@@ -1,11 +1,24 @@
1
- import { createFarmPlugin } from 'unplugin';
2
-
3
1
  /**
4
2
  * This entry file is for farm plugin.
5
3
  *
6
4
  * @module
7
5
  */
8
-
9
- declare const farmPlugin: ReturnType<typeof createFarmPlugin>;
10
-
11
- export { farmPlugin as default };
6
+ import type { UnpluginInstance } from 'unplugin';
7
+ import type { UnpluginStylexOptions } from './types';
8
+ declare const farmPlugin: UnpluginInstance<UnpluginStylexOptions | undefined>['farm'];
9
+ /**
10
+ * Farm plugin
11
+ *
12
+ * @example
13
+ *
14
+ * import { build } from 'esbuild'
15
+ * import stylexPlugin from 'unplugin-stylex/farm'
16
+ *
17
+ * export default {
18
+ * plugins: [
19
+ * stylexPlugin(),
20
+ * ],
21
+ * }
22
+ */
23
+ export default farmPlugin;
24
+ //# sourceMappingURL=farm.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"farm.d.ts","sourceRoot":"","sources":["../src/farm.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAA;AAGhD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAA;AAEpD,QAAA,MAAM,UAAU,EAAE,gBAAgB,CAAC,qBAAqB,GAAG,SAAS,CAAC,CAAC,MAAM,CAAqC,CAAA;AAEjH;;;;;;;;;;;;;GAaG;AACH,eAAe,UAAU,CAAA"}
package/dist/farm.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  unpluginFactory
3
- } from "./chunk-B3OIQQRZ.js";
3
+ } from "./chunk-SSMUIUHR.js";
4
4
  import "./chunk-6F4PWJZI.js";
5
5
 
6
6
  // src/farm.ts
package/dist/index.cjs CHANGED
@@ -2,10 +2,10 @@
2
2
 
3
3
 
4
4
 
5
- var _chunkIU3ZVEOUcjs = require('./chunk-IU3ZVEOU.cjs');
5
+ var _chunk45JWH4GZcjs = require('./chunk-45JWH4GZ.cjs');
6
6
  require('./chunk-ZBPRDZS4.cjs');
7
7
 
8
8
 
9
9
 
10
10
 
11
- exports.default = _chunkIU3ZVEOUcjs.index_default; exports.unplugin = _chunkIU3ZVEOUcjs.unplugin; exports.unpluginFactory = _chunkIU3ZVEOUcjs.unpluginFactory;
11
+ exports.default = _chunk45JWH4GZcjs.index_default; exports.unplugin = _chunk45JWH4GZcjs.unplugin; exports.unpluginFactory = _chunk45JWH4GZcjs.unpluginFactory;