unplugin-stylex 0.6.1 → 0.6.2

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/CHANGELOG.md CHANGED
@@ -1,5 +1,11 @@
1
1
  # unplugin-stylex
2
2
 
3
+ ## 0.6.2
4
+
5
+ ### Patch Changes
6
+
7
+ - [#281](https://github.com/eryue0220/unplugin-stylex/pull/281) [`e3eb53d`](https://github.com/eryue0220/unplugin-stylex/commit/e3eb53d5f30142cffa5578ec872df7244351bc4f) Thanks [@eryue0220](https://github.com/eryue0220)! - fix windows path error
8
+
3
9
  ## 0.6.1
4
10
 
5
11
  ### Patch Changes
package/README.md CHANGED
@@ -164,6 +164,17 @@ Current support argument, which may have change in the future
164
164
 
165
165
  #### options.stylex.unstable_moduleResolution
166
166
 
167
+ ## Monorepo
168
+
169
+ 本仓库使用 [Turborepo](https://turbo.build/repo) 管理 monorepo。在根目录可执行:
170
+
171
+ - `pnpm turbo:build` — 按依赖顺序构建所有包(主包与 examples)
172
+ - `pnpm turbo:test` — 在所有包中运行测试
173
+ - `pnpm turbo:lint` / `pnpm turbo:check` — 在所有包中运行 lint / check
174
+ - `pnpm turbo:dev` — 并行启动所有包的 dev 脚本
175
+
176
+ 仅构建主包:`pnpm turbo run build --filter=unplugin-stylex`。仅构建某个 example:`pnpm turbo run build --filter=vite-example`。
177
+
167
178
  # Acknowledgments
168
179
 
169
180
  - [@stylexjs/rollup-plugin](https://github.com/facebook/stylex/tree/main/packages/rollup-plugin)
package/dist/astro.cjs CHANGED
@@ -1,40 +1,43 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { newObj[key] = obj[key]; } } } newObj.default = obj; return newObj; } } function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } }
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } }
2
2
 
3
- var _chunk7LU6DGX6cjs = require('./chunk-7LU6DGX6.cjs');
3
+ var _chunkO4FQWPVVcjs = require('./chunk-O4FQWPVV.cjs');
4
4
 
5
5
 
6
6
 
7
7
 
8
8
 
9
9
 
10
- var _chunkIU3ZVEOUcjs = require('./chunk-IU3ZVEOU.cjs');
10
+
11
+
12
+ var _chunkKKH6K7REcjs = require('./chunk-KKH6K7RE.cjs');
11
13
  require('./chunk-ZBPRDZS4.cjs');
12
14
 
13
15
  // src/astro.ts
14
- var _path = require('path'); var path = _interopRequireWildcard(_path);
15
16
  function astro(options = {}) {
16
- const configured = _chunkIU3ZVEOUcjs.getOptions.call(void 0, { ...options, framework: "vite" });
17
+ const configured = _chunkKKH6K7REcjs.getOptions.call(void 0, { ...options, framework: "vite" });
17
18
  const filename = configured.stylex.filename;
18
19
  return {
19
- name: _chunkIU3ZVEOUcjs.PLUGIN_NAME,
20
+ name: _chunkKKH6K7REcjs.PLUGIN_NAME,
20
21
  hooks: {
21
22
  "astro:config:setup": async ({ config, updateConfig, injectScript }) => {
22
- var _a;
23
+ var _a, _b;
23
24
  const astroOptions = {
24
25
  ...options,
25
26
  validExts: _nullishCoalesce(options.validExts, () => ( /\.[mc]?[jt]sx?$|\.astro$|\.stylex$/))
26
27
  };
27
- if (!_chunkIU3ZVEOUcjs.stylexRulesStore.has(_chunkIU3ZVEOUcjs.STORE_KEY)) {
28
- _chunkIU3ZVEOUcjs.stylexRulesStore.set(_chunkIU3ZVEOUcjs.STORE_KEY, {});
28
+ if (!_chunkKKH6K7REcjs.stylexRulesStore.has(_chunkKKH6K7REcjs.STORE_KEY)) {
29
+ _chunkKKH6K7REcjs.stylexRulesStore.set(_chunkKKH6K7REcjs.STORE_KEY, {});
29
30
  }
30
31
  config.vite.plugins ??= [];
31
- const basePlugin = _chunk7LU6DGX6cjs.vite_default.call(void 0, astroOptions);
32
+ const basePlugin = _chunkO4FQWPVVcjs.vite_default.call(void 0, astroOptions);
32
33
  const wrappedPlugin = {
33
34
  ...basePlugin,
34
- getStylexRules: () => _chunkIU3ZVEOUcjs.stylexRulesStore.get(_chunkIU3ZVEOUcjs.STORE_KEY) || {}
35
+ getStylexRules: () => _chunkKKH6K7REcjs.stylexRulesStore.get(_chunkKKH6K7REcjs.STORE_KEY) || {}
35
36
  };
36
37
  const base = _nullishCoalesce(config.base, () => ( "/"));
37
- const cssPath = path.posix.join(base, filename).replace(/\/+/g, "/");
38
+ const assetsDir = typeof ((_a = config.build) == null ? void 0 : _a.assets) === "string" ? config.build.assets : "_astro";
39
+ const fileName = _chunkKKH6K7REcjs.getStylexAssetFileName.call(void 0, filename, assetsDir);
40
+ const cssPath = _chunkKKH6K7REcjs.getStylexPublicPath.call(void 0, base, fileName);
38
41
  injectScript(
39
42
  "head-inline",
40
43
  `
@@ -47,7 +50,7 @@ function astro(options = {}) {
47
50
  `
48
51
  );
49
52
  config.vite.plugins.push(wrappedPlugin);
50
- const currentNoExternal = _nullishCoalesce(((_a = config.vite.ssr) == null ? void 0 : _a.noExternal), () => ( []));
53
+ const currentNoExternal = _nullishCoalesce(((_b = config.vite.ssr) == null ? void 0 : _b.noExternal), () => ( []));
51
54
  const noExternal = Array.isArray(currentNoExternal) ? [...currentNoExternal] : [];
52
55
  if (!noExternal.includes("@stylexjs/stylex")) {
53
56
  noExternal.push("@stylexjs/stylex");
@@ -63,11 +66,13 @@ function astro(options = {}) {
63
66
  "astro:server:setup": ({ server }) => {
64
67
  server.middlewares.use((req, res, next) => {
65
68
  var _a, _b;
66
- const base = "/";
67
- const cssPath = path.posix.join(base, filename).replace(/\/+/g, base);
68
- if (req.url === cssPath || req.url === `/${filename}` || ((_a = req.url) == null ? void 0 : _a.endsWith(`/${filename}`))) {
69
- const stylexRules = _nullishCoalesce(_chunkIU3ZVEOUcjs.stylexRulesStore.get(_chunkIU3ZVEOUcjs.STORE_KEY), () => ( {}));
70
- const collectedCSS = _chunkIU3ZVEOUcjs.buildStylexRules.call(void 0, stylexRules, _nullishCoalesce(((_b = options.stylex) == null ? void 0 : _b.useCSSLayers), () => ( false)));
69
+ const assetsDir = "_astro";
70
+ const fileName = _chunkKKH6K7REcjs.getStylexAssetFileName.call(void 0, filename, assetsDir);
71
+ const cssPath = _chunkKKH6K7REcjs.getStylexPublicPath.call(void 0, "/", fileName);
72
+ const normalizedUrl = (_a = req.url) == null ? void 0 : _a.split("?")[0];
73
+ if (normalizedUrl === cssPath || normalizedUrl === `/${filename}` || (normalizedUrl == null ? void 0 : normalizedUrl.endsWith(`/${filename}`)) || normalizedUrl === filename) {
74
+ const stylexRules = _nullishCoalesce(_chunkKKH6K7REcjs.stylexRulesStore.get(_chunkKKH6K7REcjs.STORE_KEY), () => ( {}));
75
+ const collectedCSS = _chunkKKH6K7REcjs.buildStylexRules.call(void 0, stylexRules, _nullishCoalesce(((_b = options.stylex) == null ? void 0 : _b.useCSSLayers), () => ( false)));
71
76
  res.setHeader("Content-Type", "text/css");
72
77
  res.setHeader("Cache-Control", "no-cache");
73
78
  res.end(_nullishCoalesce(collectedCSS, () => ( "")));
package/dist/astro.js CHANGED
@@ -1,17 +1,18 @@
1
1
  import {
2
2
  vite_default
3
- } from "./chunk-F2LYIKCV.js";
3
+ } from "./chunk-WUKLRLI4.js";
4
4
  import {
5
5
  PLUGIN_NAME,
6
6
  STORE_KEY,
7
7
  buildStylexRules,
8
8
  getOptions,
9
+ getStylexAssetFileName,
10
+ getStylexPublicPath,
9
11
  stylexRulesStore
10
- } from "./chunk-B3OIQQRZ.js";
12
+ } from "./chunk-FEGNQ7CQ.js";
11
13
  import "./chunk-6F4PWJZI.js";
12
14
 
13
15
  // src/astro.ts
14
- import * as path from "path";
15
16
  function astro(options = {}) {
16
17
  const configured = getOptions({ ...options, framework: "vite" });
17
18
  const filename = configured.stylex.filename;
@@ -19,7 +20,7 @@ function astro(options = {}) {
19
20
  name: PLUGIN_NAME,
20
21
  hooks: {
21
22
  "astro:config:setup": async ({ config, updateConfig, injectScript }) => {
22
- var _a;
23
+ var _a, _b;
23
24
  const astroOptions = {
24
25
  ...options,
25
26
  validExts: options.validExts ?? /\.[mc]?[jt]sx?$|\.astro$|\.stylex$/
@@ -34,7 +35,9 @@ function astro(options = {}) {
34
35
  getStylexRules: () => stylexRulesStore.get(STORE_KEY) || {}
35
36
  };
36
37
  const base = config.base ?? "/";
37
- const cssPath = path.posix.join(base, filename).replace(/\/+/g, "/");
38
+ const assetsDir = typeof ((_a = config.build) == null ? void 0 : _a.assets) === "string" ? config.build.assets : "_astro";
39
+ const fileName = getStylexAssetFileName(filename, assetsDir);
40
+ const cssPath = getStylexPublicPath(base, fileName);
38
41
  injectScript(
39
42
  "head-inline",
40
43
  `
@@ -47,7 +50,7 @@ function astro(options = {}) {
47
50
  `
48
51
  );
49
52
  config.vite.plugins.push(wrappedPlugin);
50
- const currentNoExternal = ((_a = config.vite.ssr) == null ? void 0 : _a.noExternal) ?? [];
53
+ const currentNoExternal = ((_b = config.vite.ssr) == null ? void 0 : _b.noExternal) ?? [];
51
54
  const noExternal = Array.isArray(currentNoExternal) ? [...currentNoExternal] : [];
52
55
  if (!noExternal.includes("@stylexjs/stylex")) {
53
56
  noExternal.push("@stylexjs/stylex");
@@ -63,9 +66,11 @@ function astro(options = {}) {
63
66
  "astro:server:setup": ({ server }) => {
64
67
  server.middlewares.use((req, res, next) => {
65
68
  var _a, _b;
66
- const base = "/";
67
- const cssPath = path.posix.join(base, filename).replace(/\/+/g, base);
68
- if (req.url === cssPath || req.url === `/${filename}` || ((_a = req.url) == null ? void 0 : _a.endsWith(`/${filename}`))) {
69
+ const assetsDir = "_astro";
70
+ const fileName = getStylexAssetFileName(filename, assetsDir);
71
+ const cssPath = getStylexPublicPath("/", fileName);
72
+ const normalizedUrl = (_a = req.url) == null ? void 0 : _a.split("?")[0];
73
+ if (normalizedUrl === cssPath || normalizedUrl === `/${filename}` || (normalizedUrl == null ? void 0 : normalizedUrl.endsWith(`/${filename}`)) || normalizedUrl === filename) {
69
74
  const stylexRules = stylexRulesStore.get(STORE_KEY) ?? {};
70
75
  const collectedCSS = buildStylexRules(stylexRules, ((_b = options.stylex) == null ? void 0 : _b.useCSSLayers) ?? false);
71
76
  res.setHeader("Content-Type", "text/css");
@@ -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;
@@ -425,17 +438,17 @@ var unpluginFactory = (rawOptions, meta) => {
425
438
  name: PLUGIN_NAME,
426
439
  transformInclude(id) {
427
440
  const validExts = options.validExts;
428
- const extname2 = path2.extname(id);
441
+ const extname2 = path3.extname(id);
429
442
  const questionMarkIndex = extname2.indexOf("?");
430
443
  const validExtName = questionMarkIndex > -1 ? extname2.slice(0, questionMarkIndex) : extname2;
431
444
  return validExts instanceof RegExp ? validExts.test(validExtName) : validExts.includes(validExtName);
432
445
  },
433
446
  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);
447
+ var _a, _b, _c, _d;
448
+ const file = id.split("?")[0];
449
+ const normalizedFile = normalizePath(file);
450
+ const normalizedId = normalizePath(id);
451
+ const extname2 = path3.extname(file).slice(1);
439
452
  if (!options.stylex.stylexImports.some((importName) => code.includes(importName))) {
440
453
  return;
441
454
  }
@@ -448,8 +461,9 @@ var unpluginFactory = (rawOptions, meta) => {
448
461
  try {
449
462
  const transformer = transformers[extname2] ?? transformers.default;
450
463
  const result = await transformer(context);
451
- if ((_a = result.stylexRules) == null ? void 0 : _a[id]) {
452
- stylexRules[id] = result.stylexRules[id];
464
+ 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]);
465
+ if (transformedRules) {
466
+ stylexRules[normalizedFile] = transformedRules;
453
467
  }
454
468
  return result;
455
469
  } catch (error) {
@@ -481,8 +495,8 @@ var unpluginFactory = (rawOptions, meta) => {
481
495
  next();
482
496
  return;
483
497
  }
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, "/");
498
+ const fileName = getStylexAssetFileName(options.stylex.filename, ((_a = viteConfig == null ? void 0 : viteConfig.build) == null ? void 0 : _a.assetsDir) ?? "assets");
499
+ const cssPath = getStylexPublicPath(viteConfig == null ? void 0 : viteConfig.base, fileName);
486
500
  const basePath = ((viteConfig == null ? void 0 : viteConfig.base) ?? "/").replace(/\/+$/, "") || "/";
487
501
  const filename = options.stylex.filename;
488
502
  const normalizedUrl = req.url.split("?")[0];
@@ -499,7 +513,7 @@ var unpluginFactory = (rawOptions, meta) => {
499
513
  },
500
514
  buildEnd() {
501
515
  var _a;
502
- const fileName = `${((_a = viteConfig == null ? void 0 : viteConfig.build) == null ? void 0 : _a.assetsDir) ?? "assets"}/${options.stylex.filename}`;
516
+ const fileName = getStylexAssetFileName(options.stylex.filename, ((_a = viteConfig == null ? void 0 : viteConfig.build) == null ? void 0 : _a.assetsDir) ?? "assets");
503
517
  const collectedCSS = buildStylexRules(stylexRules, options.stylex.useCSSLayers);
504
518
  if (!collectedCSS) return;
505
519
  this.emitFile({
@@ -510,12 +524,12 @@ var unpluginFactory = (rawOptions, meta) => {
510
524
  },
511
525
  transformIndexHtml(html, ctx) {
512
526
  var _a, _b;
513
- const fileName = `${((_a = viteConfig == null ? void 0 : viteConfig.build) == null ? void 0 : _a.assetsDir) ?? "assets"}/${options.stylex.filename}`;
527
+ const fileName = getStylexAssetFileName(options.stylex.filename, ((_a = viteConfig == null ? void 0 : viteConfig.build) == null ? void 0 : _a.assetsDir) ?? "assets");
514
528
  const css = (_b = ctx.bundle) == null ? void 0 : _b[fileName];
515
529
  if (!css) {
516
530
  return html;
517
531
  }
518
- const publicPath = path2.posix.join((viteConfig == null ? void 0 : viteConfig.base) ?? "/", fileName.replace(/\\/g, "/"));
532
+ const publicPath = getStylexPublicPath(viteConfig == null ? void 0 : viteConfig.base, fileName);
519
533
  return [
520
534
  {
521
535
  tag: "link",
@@ -538,6 +552,8 @@ export {
538
552
  PLUGIN_NAME,
539
553
  STORE_KEY,
540
554
  stylexRulesStore,
555
+ getStylexAssetFileName,
556
+ getStylexPublicPath,
541
557
  getOptions,
542
558
  unpluginFactory,
543
559
  unplugin,
@@ -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;
@@ -425,17 +438,17 @@ var unpluginFactory = (rawOptions, meta) => {
425
438
  name: PLUGIN_NAME,
426
439
  transformInclude(id) {
427
440
  const validExts = options.validExts;
428
- const extname2 = path2.extname(id);
441
+ const extname2 = path3.extname(id);
429
442
  const questionMarkIndex = extname2.indexOf("?");
430
443
  const validExtName = questionMarkIndex > -1 ? extname2.slice(0, questionMarkIndex) : extname2;
431
444
  return validExts instanceof RegExp ? validExts.test(validExtName) : validExts.includes(validExtName);
432
445
  },
433
446
  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);
447
+ var _a, _b, _c, _d;
448
+ const file = id.split("?")[0];
449
+ const normalizedFile = normalizePath(file);
450
+ const normalizedId = normalizePath(id);
451
+ const extname2 = path3.extname(file).slice(1);
439
452
  if (!options.stylex.stylexImports.some((importName) => code.includes(importName))) {
440
453
  return;
441
454
  }
@@ -448,8 +461,9 @@ var unpluginFactory = (rawOptions, meta) => {
448
461
  try {
449
462
  const transformer = _nullishCoalesce(transformers[extname2], () => ( transformers.default));
450
463
  const result = await transformer(context);
451
- if ((_a = result.stylexRules) == null ? void 0 : _a[id]) {
452
- stylexRules[id] = result.stylexRules[id];
464
+ 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])));
465
+ if (transformedRules) {
466
+ stylexRules[normalizedFile] = transformedRules;
453
467
  }
454
468
  return result;
455
469
  } catch (error) {
@@ -481,8 +495,8 @@ var unpluginFactory = (rawOptions, meta) => {
481
495
  next();
482
496
  return;
483
497
  }
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, "/");
498
+ const fileName = getStylexAssetFileName(options.stylex.filename, _nullishCoalesce(((_a = viteConfig == null ? void 0 : viteConfig.build) == null ? void 0 : _a.assetsDir), () => ( "assets")));
499
+ const cssPath = getStylexPublicPath(viteConfig == null ? void 0 : viteConfig.base, fileName);
486
500
  const basePath = (_nullishCoalesce((viteConfig == null ? void 0 : viteConfig.base), () => ( "/"))).replace(/\/+$/, "") || "/";
487
501
  const filename = options.stylex.filename;
488
502
  const normalizedUrl = req.url.split("?")[0];
@@ -499,7 +513,7 @@ var unpluginFactory = (rawOptions, meta) => {
499
513
  },
500
514
  buildEnd() {
501
515
  var _a;
502
- const fileName = `${_nullishCoalesce(((_a = viteConfig == null ? void 0 : viteConfig.build) == null ? void 0 : _a.assetsDir), () => ( "assets"))}/${options.stylex.filename}`;
516
+ const fileName = getStylexAssetFileName(options.stylex.filename, _nullishCoalesce(((_a = viteConfig == null ? void 0 : viteConfig.build) == null ? void 0 : _a.assetsDir), () => ( "assets")));
503
517
  const collectedCSS = buildStylexRules(stylexRules, options.stylex.useCSSLayers);
504
518
  if (!collectedCSS) return;
505
519
  this.emitFile({
@@ -510,12 +524,12 @@ var unpluginFactory = (rawOptions, meta) => {
510
524
  },
511
525
  transformIndexHtml(html, ctx) {
512
526
  var _a, _b;
513
- const fileName = `${_nullishCoalesce(((_a = viteConfig == null ? void 0 : viteConfig.build) == null ? void 0 : _a.assetsDir), () => ( "assets"))}/${options.stylex.filename}`;
527
+ const fileName = getStylexAssetFileName(options.stylex.filename, _nullishCoalesce(((_a = viteConfig == null ? void 0 : viteConfig.build) == null ? void 0 : _a.assetsDir), () => ( "assets")));
514
528
  const css = (_b = ctx.bundle) == null ? void 0 : _b[fileName];
515
529
  if (!css) {
516
530
  return html;
517
531
  }
518
- const publicPath = path2.posix.join(_nullishCoalesce((viteConfig == null ? void 0 : viteConfig.base), () => ( "/")), fileName.replace(/\\/g, "/"));
532
+ const publicPath = getStylexPublicPath(viteConfig == null ? void 0 : viteConfig.base, fileName);
519
533
  return [
520
534
  {
521
535
  tag: "link",
@@ -542,4 +556,6 @@ var index_default = unplugin;
542
556
 
543
557
 
544
558
 
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;
559
+
560
+
561
+ 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,10 +1,10 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
2
 
3
- var _chunkIU3ZVEOUcjs = require('./chunk-IU3ZVEOU.cjs');
3
+ var _chunkKKH6K7REcjs = require('./chunk-KKH6K7RE.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, _chunkKKH6K7REcjs.unpluginFactory);
8
8
  var vite_default = vitePlugin;
9
9
 
10
10
 
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  unpluginFactory
3
- } from "./chunk-B3OIQQRZ.js";
3
+ } from "./chunk-FEGNQ7CQ.js";
4
4
 
5
5
  // src/vite.ts
6
6
  import { createVitePlugin } from "unplugin";
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 _chunkKKH6K7REcjs = require('./chunk-KKH6K7RE.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, _chunkKKH6K7REcjs.unpluginFactory);
9
9
  var esbuild_default = esbuildPlugin;
10
10
 
11
11
 
package/dist/esbuild.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  unpluginFactory
3
- } from "./chunk-B3OIQQRZ.js";
3
+ } from "./chunk-FEGNQ7CQ.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 _chunkKKH6K7REcjs = require('./chunk-KKH6K7RE.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, _chunkKKH6K7REcjs.unpluginFactory);
9
9
  var farm_default = farmPlugin;
10
10
 
11
11
 
package/dist/farm.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  unpluginFactory
3
- } from "./chunk-B3OIQQRZ.js";
3
+ } from "./chunk-FEGNQ7CQ.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 _chunkKKH6K7REcjs = require('./chunk-KKH6K7RE.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 = _chunkKKH6K7REcjs.index_default; exports.unplugin = _chunkKKH6K7REcjs.unplugin; exports.unpluginFactory = _chunkKKH6K7REcjs.unpluginFactory;
package/dist/index.js CHANGED
@@ -2,7 +2,7 @@ import {
2
2
  index_default,
3
3
  unplugin,
4
4
  unpluginFactory
5
- } from "./chunk-B3OIQQRZ.js";
5
+ } from "./chunk-FEGNQ7CQ.js";
6
6
  import "./chunk-6F4PWJZI.js";
7
7
  export {
8
8
  index_default as default,
package/dist/rolldown.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 _chunkKKH6K7REcjs = require('./chunk-KKH6K7RE.cjs');
4
4
  require('./chunk-ZBPRDZS4.cjs');
5
5
 
6
6
  // src/rolldown.ts
7
7
  var _unplugin = require('unplugin');
8
- var rolldownPlugin = _unplugin.createRolldownPlugin.call(void 0, _chunkIU3ZVEOUcjs.unpluginFactory);
8
+ var rolldownPlugin = _unplugin.createRolldownPlugin.call(void 0, _chunkKKH6K7REcjs.unpluginFactory);
9
9
  var rolldown_default = rolldownPlugin;
10
10
 
11
11
 
package/dist/rolldown.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  unpluginFactory
3
- } from "./chunk-B3OIQQRZ.js";
3
+ } from "./chunk-FEGNQ7CQ.js";
4
4
  import "./chunk-6F4PWJZI.js";
5
5
 
6
6
  // src/rolldown.ts
package/dist/rollup.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 _chunkKKH6K7REcjs = require('./chunk-KKH6K7RE.cjs');
4
4
  require('./chunk-ZBPRDZS4.cjs');
5
5
 
6
6
  // src/rollup.ts
7
7
  var _unplugin = require('unplugin');
8
- var rollupPlugin = _unplugin.createRollupPlugin.call(void 0, _chunkIU3ZVEOUcjs.unpluginFactory);
8
+ var rollupPlugin = _unplugin.createRollupPlugin.call(void 0, _chunkKKH6K7REcjs.unpluginFactory);
9
9
  var rollup_default = rollupPlugin;
10
10
 
11
11
 
package/dist/rollup.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  unpluginFactory
3
- } from "./chunk-B3OIQQRZ.js";
3
+ } from "./chunk-FEGNQ7CQ.js";
4
4
  import "./chunk-6F4PWJZI.js";
5
5
 
6
6
  // src/rollup.ts
package/dist/rspack.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 _chunkKKH6K7REcjs = require('./chunk-KKH6K7RE.cjs');
4
4
  require('./chunk-ZBPRDZS4.cjs');
5
5
 
6
6
  // src/rspack.ts
7
7
  var _unplugin = require('unplugin');
8
- var rspackPlugin = _unplugin.createRspackPlugin.call(void 0, _chunkIU3ZVEOUcjs.unpluginFactory);
8
+ var rspackPlugin = _unplugin.createRspackPlugin.call(void 0, _chunkKKH6K7REcjs.unpluginFactory);
9
9
  var rspack_default = rspackPlugin;
10
10
 
11
11
 
package/dist/rspack.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  unpluginFactory
3
- } from "./chunk-B3OIQQRZ.js";
3
+ } from "./chunk-FEGNQ7CQ.js";
4
4
  import "./chunk-6F4PWJZI.js";
5
5
 
6
6
  // src/rspack.ts
package/dist/vite.cjs CHANGED
@@ -1,8 +1,8 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
2
 
3
- var _chunk7LU6DGX6cjs = require('./chunk-7LU6DGX6.cjs');
4
- require('./chunk-IU3ZVEOU.cjs');
3
+ var _chunkO4FQWPVVcjs = require('./chunk-O4FQWPVV.cjs');
4
+ require('./chunk-KKH6K7RE.cjs');
5
5
  require('./chunk-ZBPRDZS4.cjs');
6
6
 
7
7
 
8
- exports.default = _chunk7LU6DGX6cjs.vite_default;
8
+ exports.default = _chunkO4FQWPVVcjs.vite_default;
package/dist/vite.js CHANGED
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  vite_default
3
- } from "./chunk-F2LYIKCV.js";
4
- import "./chunk-B3OIQQRZ.js";
3
+ } from "./chunk-WUKLRLI4.js";
4
+ import "./chunk-FEGNQ7CQ.js";
5
5
  import "./chunk-6F4PWJZI.js";
6
6
  export {
7
7
  vite_default as default
package/dist/webpack.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 _chunkKKH6K7REcjs = require('./chunk-KKH6K7RE.cjs');
4
4
  require('./chunk-ZBPRDZS4.cjs');
5
5
 
6
6
  // src/webpack.ts
7
7
  var _unplugin = require('unplugin');
8
- var webpackPlugin = _unplugin.createWebpackPlugin.call(void 0, _chunkIU3ZVEOUcjs.unpluginFactory);
8
+ var webpackPlugin = _unplugin.createWebpackPlugin.call(void 0, _chunkKKH6K7REcjs.unpluginFactory);
9
9
  var webpack_default = webpackPlugin;
10
10
 
11
11
 
package/dist/webpack.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  unpluginFactory
3
- } from "./chunk-B3OIQQRZ.js";
3
+ } from "./chunk-FEGNQ7CQ.js";
4
4
  import "./chunk-6F4PWJZI.js";
5
5
 
6
6
  // src/webpack.ts
package/jsr.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@eryue0220/unplugin-stylex",
3
- "version": "0.6.1",
3
+ "version": "0.6.2",
4
4
  "exports": {
5
5
  "./index": "./src/index.ts",
6
6
  "./esbuild": "./src/esbuild.ts",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "unplugin-stylex",
3
- "version": "0.6.1",
3
+ "version": "0.6.2",
4
4
  "description": "Unplugin for stylex",
5
5
  "repository": "https://github.com/eryue0220/unplugin-stylex",
6
6
  "keywords": [
@@ -75,7 +75,7 @@
75
75
  "./*": "./*"
76
76
  },
77
77
  "engines": {
78
- "node": ">=18"
78
+ "node": "^20.19.0 || >=22.12.0"
79
79
  },
80
80
  "peerDependencies": {
81
81
  "@stylexjs/stylex": "0.x"
@@ -86,20 +86,20 @@
86
86
  "@babel/plugin-syntax-jsx": "^7.28.6",
87
87
  "@babel/plugin-syntax-typescript": "^7.28.6",
88
88
  "@rollup/pluginutils": "^5.1.4",
89
- "@stylexjs/babel-plugin": "^0.17.5",
89
+ "@stylexjs/babel-plugin": "^0.18.1",
90
90
  "unplugin": "^3.0.0"
91
91
  },
92
92
  "devDependencies": {
93
- "@biomejs/biome": "2.4.6",
94
- "@changesets/changelog-github": "^0.5.2",
95
- "@changesets/cli": "^2.29.8",
96
- "@types/node": "^25.3.0",
93
+ "@biomejs/biome": "2.4.7",
94
+ "@changesets/changelog-github": "^0.6.0",
95
+ "@changesets/cli": "^2.30.0",
96
+ "@types/node": "^25.5.0",
97
97
  "@vitest/coverage-v8": "^4.0.15",
98
- "babel-plugin-syntax-hermes-parser": "^0.33.3",
99
- "jsr": "^0.14.2",
98
+ "babel-plugin-syntax-hermes-parser": "^0.34.0",
99
+ "jsr": "^0.14.3",
100
100
  "tsup": "^8.5.1",
101
101
  "typescript": "^5.9.3",
102
- "vite": "^7.3.1",
102
+ "vite": "^8.0.0",
103
103
  "vitest": "^4.0.15"
104
104
  },
105
105
  "scripts": {
@@ -113,6 +113,11 @@
113
113
  "format": "pnpm biome format .",
114
114
  "format:fix": "pnpm biome format --write .",
115
115
  "ci": "pnpm run lint && pnpm run check && pnpm run build",
116
+ "turbo:build": "turbo run build",
117
+ "turbo:test": "turbo run test",
118
+ "turbo:lint": "turbo run lint",
119
+ "turbo:check": "turbo run check",
120
+ "turbo:dev": "turbo run dev",
116
121
  "jsr": "pnpm dlx jsr publish",
117
122
  "sync:jsr-version": "node scripts/sync-jsr-version.mjs",
118
123
  "changeset": "pnpm dlx @changesets/cli add",
package/tsconfig.json CHANGED
@@ -7,7 +7,7 @@
7
7
  "declarationDir": "dist",
8
8
  "outDir": "./dist",
9
9
  "lib": ["ESNext"],
10
- "moduleResolution": "Node",
10
+ "moduleResolution": "bundler",
11
11
  "preserveSymlinks": true,
12
12
  "module": "esnext",
13
13
  "skipLibCheck": true,
package/turbo.json ADDED
@@ -0,0 +1,23 @@
1
+ {
2
+ "$schema": "https://turbo.build/schema.json",
3
+ "tasks": {
4
+ "build": {
5
+ "dependsOn": ["^build"],
6
+ "outputs": ["dist/**", "build/**", ".astro/**", ".vite/**"]
7
+ },
8
+ "dev": {
9
+ "cache": false,
10
+ "persistent": true
11
+ },
12
+ "test": {
13
+ "outputs": ["coverage/**"]
14
+ },
15
+ "lint": {
16
+ "outputs": []
17
+ },
18
+ "check": {
19
+ "outputs": []
20
+ }
21
+ },
22
+ "globalDependencies": ["tsconfig.json", "biome.json"]
23
+ }