From bbc38a1d622d0dac6f96291e06a11353ed537cd1 Mon Sep 17 00:00:00 2001 From: Mamadou Talla DIA Date: Sun, 20 Sep 2026 15:54:45 +0100 Subject: [PATCH 1/4] fix(build): preserve remote CSS imports in module builds Use PostCSS when building module styles so remote @import URLs are not resolved as local files. Add the required dependency and regression coverage. --- .changeset/preserve-remote-css-imports.md | 5 + packages/runable/package.json | 1 + packages/runable/src/vite/build/module.ts | 4 +- pnpm-lock.yaml | 350 +++++++------------ pnpm-workspace.yaml | 1 + tests/regressions/module-css-imports.test.ts | 56 +++ 6 files changed, 195 insertions(+), 222 deletions(-) create mode 100644 .changeset/preserve-remote-css-imports.md create mode 100644 tests/regressions/module-css-imports.test.ts diff --git a/.changeset/preserve-remote-css-imports.md b/.changeset/preserve-remote-css-imports.md new file mode 100644 index 0000000..503ff1a --- /dev/null +++ b/.changeset/preserve-remote-css-imports.md @@ -0,0 +1,5 @@ +--- +"runable": patch +--- + +Preserve remote CSS imports when building Runable modules instead of resolving their URLs as local files. diff --git a/packages/runable/package.json b/packages/runable/package.json index dd4a052..2b65f54 100644 --- a/packages/runable/package.json +++ b/packages/runable/package.json @@ -97,6 +97,7 @@ "magic-string": "catalog:", "mlly": "catalog:", "ofetch": "catalog:", + "postcss-import": "catalog:", "syt": "catalog:", "tsdown": "catalog:", "typescript": "catalog:", diff --git a/packages/runable/src/vite/build/module.ts b/packages/runable/src/vite/build/module.ts index e19a849..749bbbb 100644 --- a/packages/runable/src/vite/build/module.ts +++ b/packages/runable/src/vite/build/module.ts @@ -149,7 +149,9 @@ export async function buildModule() { unbundle: true, minify: false, - css: {}, + // PostCSS keeps remote `@import` URLs external. Lightning CSS attempts + // to resolve them as local files while bundling. + css: { transformer: "postcss" }, plugins: [ Vue(), diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 3c45382..8c4c4c1 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -412,6 +412,9 @@ catalogs: pkg-types: specifier: ^2.3.1 version: 2.3.1 + postcss-import: + specifier: ^16.0.0 + version: 16.2.0 std-env: specifier: ^4.1.0 version: 4.2.0 @@ -591,13 +594,13 @@ importers: version: 24.13.3 tsdown: specifier: 'catalog:' - version: 0.22.14(@tsdown/css@0.22.14)(@volar/typescript@2.4.28)(tsx@4.23.12)(typescript@6.0.3)(vue-tsc@3.3.9(typescript@6.0.3)) + version: 0.22.14(@tsdown/css@0.22.14)(@volar/typescript@2.4.28(typescript@6.0.3))(tsx@4.23.12)(typescript@6.0.3)(vue-tsc@3.3.9(typescript@6.0.3)) typescript: specifier: 'catalog:' version: 6.0.3 typescript-eslint: specifier: 'catalog:' - version: 8.67.0(eslint@10.8.1(jiti@2.7.0))(typescript@6.0.3) + version: 8.67.0(eslint@10.8.1(jiti@2.7.0)(supports-color@10.2.2))(supports-color@10.2.2)(typescript@6.0.3) packages/create-syora: dependencies: @@ -621,7 +624,7 @@ importers: version: 0.147.0 '@tsdown/css': specifier: 'catalog:' - version: 0.22.14(jiti@2.7.0)(postcss@8.5.26)(sass-embedded@1.102.0)(sass@1.102.0)(tsdown@0.22.14)(tsx@4.23.12)(yaml@2.9.0) + version: 0.22.14(jiti@2.7.0)(postcss-import@16.2.0(postcss@8.5.26))(postcss@8.5.26)(sass-embedded@1.102.0)(sass@1.102.0)(tsdown@0.22.14)(tsx@4.23.12)(yaml@2.9.0) '@unhead/schema-org': specifier: 'catalog:' version: 3.3.2(@unhead/vue@3.3.2(@oxc-project/types@0.143.0)(esbuild@0.28.2)(lightningcss@1.33.0)(rolldown@1.2.3)(vite@8.2.1(@types/node@24.13.3)(esbuild@0.28.2)(jiti@2.7.0)(sass-embedded@1.102.0)(sass@1.102.0)(tsx@4.23.12)(yaml@2.9.0))(vue@3.5.41(typescript@6.0.3)))(esbuild@0.28.2)(rolldown@1.2.3)(vite@8.2.1(@types/node@24.13.3)(esbuild@0.28.2)(jiti@2.7.0)(sass-embedded@1.102.0)(sass@1.102.0)(tsx@4.23.12)(yaml@2.9.0)) @@ -667,12 +670,15 @@ importers: ofetch: specifier: 'catalog:' version: 1.5.1 + postcss-import: + specifier: 'catalog:' + version: 16.2.0(postcss@8.5.26) syt: specifier: 'catalog:' version: 0.2.0 tsdown: specifier: 'catalog:' - version: 0.22.14(@tsdown/css@0.22.14)(@volar/typescript@2.4.28)(tsx@4.23.12)(typescript@6.0.3)(vue-tsc@3.3.9(typescript@6.0.3)) + version: 0.22.14(@tsdown/css@0.22.14)(@volar/typescript@2.4.28(typescript@6.0.3))(tsx@4.23.12)(typescript@6.0.3)(vue-tsc@3.3.9(typescript@6.0.3)) typescript: specifier: 'catalog:' version: 6.0.3 @@ -706,7 +712,7 @@ importers: devDependencies: '@adonisjs/core': specifier: 'catalog:' - version: 7.4.0(youch@4.1.1) + version: 7.4.0(supports-color@10.2.2)(youch@4.1.1) '@nestjs/common': specifier: 'catalog:' version: 11.1.29(reflect-metadata@0.2.2)(rxjs@7.8.2)(supports-color@10.2.2) @@ -715,7 +721,7 @@ importers: version: 11.1.29(@nestjs/common@11.1.29(reflect-metadata@0.2.2)(rxjs@7.8.2)(supports-color@10.2.2))(@nestjs/platform-express@11.1.29)(reflect-metadata@0.2.2)(rxjs@7.8.2) '@nestjs/platform-express': specifier: 'catalog:' - version: 11.1.29(@nestjs/common@11.1.29(reflect-metadata@0.2.2)(rxjs@7.8.2)(supports-color@10.2.2))(@nestjs/core@11.1.29) + version: 11.1.29(@nestjs/common@11.1.29(reflect-metadata@0.2.2)(rxjs@7.8.2)(supports-color@10.2.2))(@nestjs/core@11.1.29)(supports-color@10.2.2) '@types/estree': specifier: 'catalog:' version: 1.0.9 @@ -736,7 +742,7 @@ importers: version: 24.13.3 express: specifier: 'catalog:' - version: 5.2.1 + version: 5.2.1(supports-color@10.2.2) fastify: specifier: 'catalog:' version: 5.11.3 @@ -763,16 +769,16 @@ importers: version: 11.1.29(reflect-metadata@0.2.2)(rxjs@7.8.2)(supports-color@10.2.2) '@nestjs/core': specifier: 'catalog:' - version: 11.1.29(@nestjs/common@11.1.29(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/platform-express@11.1.29)(reflect-metadata@0.2.2)(rxjs@7.8.2) + version: 11.1.29(@nestjs/common@11.1.29(reflect-metadata@0.2.2)(rxjs@7.8.2)(supports-color@10.2.2))(@nestjs/platform-express@11.1.29)(reflect-metadata@0.2.2)(rxjs@7.8.2) '@nestjs/platform-express': specifier: 'catalog:' - version: 11.1.29(@nestjs/common@11.1.29(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/core@11.1.29) + version: 11.1.29(@nestjs/common@11.1.29(reflect-metadata@0.2.2)(rxjs@7.8.2)(supports-color@10.2.2))(@nestjs/core@11.1.29)(supports-color@10.2.2) '@runablejs/cli': specifier: workspace:* version: link:../packages/cli express: specifier: 'catalog:' - version: 5.2.1 + version: 5.2.1(supports-color@10.2.2) fastify: specifier: 'catalog:' version: 5.11.3 @@ -824,7 +830,7 @@ importers: version: 24.13.3 typescript-eslint: specifier: ^8.63.0 - version: 8.67.0(eslint@10.8.1(jiti@2.7.0))(typescript@6.0.3) + version: 8.67.0(eslint@10.8.1(jiti@2.7.0)(supports-color@10.2.2))(supports-color@10.2.2)(typescript@6.0.3) website: dependencies: @@ -857,7 +863,7 @@ importers: version: 9.1.2(vue@3.5.41(typescript@6.0.3)) '@unovis/vue': specifier: ^1.6.7 - version: 1.6.7(@unovis/ts@1.6.7)(vue@3.5.41(typescript@6.0.3)) + version: 1.6.7(@unovis/ts@1.6.7(supports-color@10.2.2))(vue@3.5.41(typescript@6.0.3)) '@vee-validate/zod': specifier: ^4.15.1 version: 4.15.1(vue@3.5.41(typescript@6.0.3))(zod@3.25.76) @@ -881,7 +887,7 @@ importers: version: 8.6.0(vue@3.5.41(typescript@6.0.3)) express: specifier: 'catalog:' - version: 5.2.1 + version: 5.2.1(supports-color@10.2.2) fast-glob: specifier: ^3.3.3 version: 3.3.3 @@ -917,7 +923,7 @@ importers: version: 5.1.0 v-content: specifier: ^1.4.3 - version: 1.4.3(@vue/compiler-sfc@3.5.41)(better-sqlite3@13.0.3)(esbuild@0.28.2)(oxc-parser@0.106.0(@emnapi/core@1.11.3)(@emnapi/runtime@1.11.3))(rolldown@1.2.3)(typescript@6.0.3)(vite@8.2.1(@types/node@26.4.0)(esbuild@0.28.2)(jiti@2.7.0)(sass-embedded@1.102.0)(sass@1.102.0)(tsx@4.23.12)(yaml@2.9.0)) + version: 1.4.3(@vue/compiler-sfc@3.5.41)(better-sqlite3@13.0.3)(esbuild@0.28.2)(oxc-parser@0.106.0(@emnapi/core@1.11.3)(@emnapi/runtime@1.11.3))(rolldown@1.2.3)(supports-color@10.2.2)(typescript@6.0.3)(vite@8.2.1(@types/node@26.4.0)(esbuild@0.28.2)(jiti@2.7.0)(sass-embedded@1.102.0)(sass@1.102.0)(tsx@4.23.12)(yaml@2.9.0)) vee-validate: specifier: ^4.15.1 version: 4.15.1(vue@3.5.41(typescript@6.0.3)) @@ -969,7 +975,7 @@ importers: version: 1.102.0 tsdown: specifier: 'catalog:' - version: 0.22.14(@tsdown/css@0.22.14)(@volar/typescript@2.4.28)(tsx@4.23.12)(typescript@6.0.3)(vue-tsc@3.3.9(typescript@6.0.3)) + version: 0.22.14(@tsdown/css@0.22.14)(@volar/typescript@2.4.28(typescript@6.0.3))(tsx@4.23.12)(typescript@6.0.3)(vue-tsc@3.3.9(typescript@6.0.3)) tsx: specifier: 'catalog:' version: 4.23.12 @@ -2831,6 +2837,11 @@ packages: '@volar/typescript@2.4.28': resolution: {integrity: sha512-Ja6yvWrbis2QtN4ClAKreeUZPVYMARDYZl9LMEv1iQ1QdepB6wn0jTRxA9MftYmYa4DQ4k/DaSZpFPUfxl8giw==} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true '@vue-macros/common@3.1.4': resolution: {integrity: sha512-/5Fv+6DgIcM9ajY05ZmKBv+LMX1M9A0X+IUwDRVdt67ciw8OV9bvG2r34p3RiEadlsQybjhKPRKNXDC8Bp23cw==} @@ -5259,6 +5270,12 @@ packages: resolution: {integrity: sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==} engines: {node: '>=4'} + postcss-import@16.2.0: + resolution: {integrity: sha512-0mQUGlSp87Zl70K58RNwQAN1WS9plFE6KWGui9nyK6ninduMyjW/Khaoy/BpBoFTBh7ndAvAKrSKVbwy6vd/BA==} + engines: {node: '>=18.0.0'} + peerDependencies: + postcss: ^8.0.0 + postcss-load-config@6.0.1: resolution: {integrity: sha512-oPtTM4oerL+UXmx+93ytZVN82RrlY/wPUV8IeDxFrzIjXOLF1pN+EmKPLbubvKHT2HC20xXsCAH2Z+CKV6Oz/g==} engines: {node: '>= 18'} @@ -5277,6 +5294,9 @@ packages: yaml: optional: true + postcss-value-parser@4.2.0: + resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} + postcss@8.5.26: resolution: {integrity: sha512-u82N74LFzG8ca+dD8puPnplTXoGH4fTPpVGuIbt36G3qvNlkvfD0lEAZSxaly3KX8TS/L1A1gsCEmvKmBcVbkQ==} engines: {node: ^10 || ^12 || >=14} @@ -5365,6 +5385,9 @@ packages: resolution: {integrity: sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==} hasBin: true + read-cache@1.0.2: + resolution: {integrity: sha512-/peqiBB/n07gQGLsWaHho3WfvUyRscw0gYTsEFMhrIe/nWLkYaf5SbKYjGYqtRV3aPwykJgF2VEMo1ac4bnsGA==} + read-package-json-fast@6.0.0: resolution: {integrity: sha512-PNaGjoCnw9DBA2Kl8D+8po957z778q/HOPuY2u3Bkw/JO3eC8MDx7jn/PgMtSgpcBbs+6UOjDbwReGpXmRvs0g==} engines: {node: ^22.22.2 || ^24.15.0 || >=26.0.0} @@ -6589,7 +6612,7 @@ snapshots: glob-parent: 6.0.2 tempura: 0.4.1 - '@adonisjs/bodyparser@11.0.4(@adonisjs/http-server@9.2.0(@adonisjs/application@9.0.1(@adonisjs/config@6.1.0)(@adonisjs/fold@11.0.0))(@adonisjs/events@10.2.0(@adonisjs/application@9.0.1(@adonisjs/config@6.1.0)(@adonisjs/fold@11.0.0))(@adonisjs/fold@11.0.0))(@adonisjs/fold@11.0.0)(@adonisjs/logger@7.1.1)(@boringnode/encryption@1.0.1)(youch@4.1.1))': + '@adonisjs/bodyparser@11.0.4(@adonisjs/http-server@9.2.0(@adonisjs/application@9.0.1(@adonisjs/config@6.1.0)(@adonisjs/fold@11.0.0))(@adonisjs/events@10.2.0(@adonisjs/application@9.0.1(@adonisjs/config@6.1.0)(@adonisjs/fold@11.0.0))(@adonisjs/fold@11.0.0))(@adonisjs/fold@11.0.0)(@adonisjs/logger@7.1.1)(@boringnode/encryption@1.0.1)(youch@4.1.1))(supports-color@10.2.2)': dependencies: '@adonisjs/http-server': 9.2.0(@adonisjs/application@9.0.1(@adonisjs/config@6.1.0)(@adonisjs/fold@11.0.0))(@adonisjs/events@10.2.0(@adonisjs/application@9.0.1(@adonisjs/config@6.1.0)(@adonisjs/fold@11.0.0))(@adonisjs/fold@11.0.0))(@adonisjs/fold@11.0.0)(@adonisjs/logger@7.1.1)(@boringnode/encryption@1.0.1)(youch@4.1.1) '@poppinss/macroable': 1.1.2 @@ -6597,7 +6620,7 @@ snapshots: '@poppinss/multiparty': 3.0.0 '@poppinss/qs': 6.15.0 '@poppinss/utils': 7.0.1 - file-type: 22.0.2 + file-type: 22.0.2(supports-color@10.2.2) inflation: 2.1.0 media-typer: 1.1.1 raw-body: 3.0.2 @@ -6608,11 +6631,11 @@ snapshots: dependencies: '@poppinss/utils': 7.0.1 - '@adonisjs/core@7.4.0(youch@4.1.1)': + '@adonisjs/core@7.4.0(supports-color@10.2.2)(youch@4.1.1)': dependencies: '@adonisjs/ace': 14.1.0(youch@4.1.1) '@adonisjs/application': 9.0.1(@adonisjs/config@6.1.0)(@adonisjs/fold@11.0.0) - '@adonisjs/bodyparser': 11.0.4(@adonisjs/http-server@9.2.0(@adonisjs/application@9.0.1(@adonisjs/config@6.1.0)(@adonisjs/fold@11.0.0))(@adonisjs/events@10.2.0(@adonisjs/application@9.0.1(@adonisjs/config@6.1.0)(@adonisjs/fold@11.0.0))(@adonisjs/fold@11.0.0))(@adonisjs/fold@11.0.0)(@adonisjs/logger@7.1.1)(@boringnode/encryption@1.0.1)(youch@4.1.1)) + '@adonisjs/bodyparser': 11.0.4(@adonisjs/http-server@9.2.0(@adonisjs/application@9.0.1(@adonisjs/config@6.1.0)(@adonisjs/fold@11.0.0))(@adonisjs/events@10.2.0(@adonisjs/application@9.0.1(@adonisjs/config@6.1.0)(@adonisjs/fold@11.0.0))(@adonisjs/fold@11.0.0))(@adonisjs/fold@11.0.0)(@adonisjs/logger@7.1.1)(@boringnode/encryption@1.0.1)(youch@4.1.1))(supports-color@10.2.2) '@adonisjs/config': 6.1.0 '@adonisjs/env': 7.0.0 '@adonisjs/events': 10.2.0(@adonisjs/application@9.0.1(@adonisjs/config@6.1.0)(@adonisjs/fold@11.0.0))(@adonisjs/fold@11.0.0) @@ -6754,9 +6777,9 @@ snapshots: '@babel/helper-globals@8.0.0': {} - '@babel/helper-module-imports@7.29.7': + '@babel/helper-module-imports@7.29.7(supports-color@10.2.2)': dependencies: - '@babel/traverse': 7.29.8 + '@babel/traverse': 7.29.8(supports-color@10.2.2) '@babel/types': 7.29.8 transitivePeerDependencies: - supports-color @@ -6795,7 +6818,7 @@ snapshots: '@babel/parser': 8.0.4 '@babel/types': 8.0.4 - '@babel/traverse@7.29.8': + '@babel/traverse@7.29.8(supports-color@10.2.2)': dependencies: '@babel/code-frame': 7.29.7 '@babel/generator': 7.29.8 @@ -6990,9 +7013,9 @@ snapshots: tslib: 2.8.1 optional: true - '@emotion/babel-plugin@11.13.5': + '@emotion/babel-plugin@11.13.5(supports-color@10.2.2)': dependencies: - '@babel/helper-module-imports': 7.29.7 + '@babel/helper-module-imports': 7.29.7(supports-color@10.2.2) '@babel/runtime': 7.29.7 '@emotion/hash': 0.9.2 '@emotion/memoize': 0.9.0 @@ -7014,9 +7037,9 @@ snapshots: '@emotion/weak-memoize': 0.4.0 stylis: 4.2.0 - '@emotion/css@11.13.5': + '@emotion/css@11.13.5(supports-color@10.2.2)': dependencies: - '@emotion/babel-plugin': 11.13.5 + '@emotion/babel-plugin': 11.13.5(supports-color@10.2.2) '@emotion/cache': 11.14.0 '@emotion/serialize': 1.3.3 '@emotion/sheet': 1.4.0 @@ -7127,11 +7150,6 @@ snapshots: eslint: 10.8.1(jiti@2.7.0)(supports-color@10.2.2) eslint-visitor-keys: 3.4.3 - '@eslint-community/eslint-utils@4.10.1(eslint@10.8.1(jiti@2.7.0))': - dependencies: - eslint: 10.8.1(jiti@2.7.0) - eslint-visitor-keys: 3.4.3 - '@eslint-community/regexpp@4.12.2': {} '@eslint/config-array@0.23.5(supports-color@10.2.2)': @@ -7167,9 +7185,9 @@ snapshots: '@eslint/plugin-kit': 0.7.2 github-slugger: 2.0.0 mdast-util-from-markdown: 2.0.3(supports-color@10.2.2) - mdast-util-frontmatter: 2.0.1 - mdast-util-gfm: 3.1.0 - mdast-util-math: 3.0.0 + mdast-util-frontmatter: 2.0.1(supports-color@10.2.2) + mdast-util-gfm: 3.1.0(supports-color@10.2.2) + mdast-util-math: 3.0.0(supports-color@10.2.2) micromark-extension-frontmatter: 2.0.0 micromark-extension-gfm: 3.0.0 micromark-extension-math: 3.1.0 @@ -7392,39 +7410,14 @@ snapshots: tslib: 2.8.1 uid: 2.0.2 optionalDependencies: - '@nestjs/platform-express': 11.1.29(@nestjs/common@11.1.29(reflect-metadata@0.2.2)(rxjs@7.8.2)(supports-color@10.2.2))(@nestjs/core@11.1.29) - - '@nestjs/core@11.1.29(@nestjs/common@11.1.29(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/platform-express@11.1.29)(reflect-metadata@0.2.2)(rxjs@7.8.2)': - dependencies: - '@nestjs/common': 11.1.29(reflect-metadata@0.2.2)(rxjs@7.8.2)(supports-color@10.2.2) - fast-safe-stringify: 2.1.1 - iterare: 1.2.1 - path-to-regexp: 8.4.2 - reflect-metadata: 0.2.2 - rxjs: 7.8.2 - tslib: 2.8.1 - uid: 2.0.2 - optionalDependencies: - '@nestjs/platform-express': 11.1.29(@nestjs/common@11.1.29(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/core@11.1.29) + '@nestjs/platform-express': 11.1.29(@nestjs/common@11.1.29(reflect-metadata@0.2.2)(rxjs@7.8.2)(supports-color@10.2.2))(@nestjs/core@11.1.29)(supports-color@10.2.2) - '@nestjs/platform-express@11.1.29(@nestjs/common@11.1.29(reflect-metadata@0.2.2)(rxjs@7.8.2)(supports-color@10.2.2))(@nestjs/core@11.1.29)': + '@nestjs/platform-express@11.1.29(@nestjs/common@11.1.29(reflect-metadata@0.2.2)(rxjs@7.8.2)(supports-color@10.2.2))(@nestjs/core@11.1.29)(supports-color@10.2.2)': dependencies: '@nestjs/common': 11.1.29(reflect-metadata@0.2.2)(rxjs@7.8.2)(supports-color@10.2.2) '@nestjs/core': 11.1.29(@nestjs/common@11.1.29(reflect-metadata@0.2.2)(rxjs@7.8.2)(supports-color@10.2.2))(@nestjs/platform-express@11.1.29)(reflect-metadata@0.2.2)(rxjs@7.8.2) cors: 2.8.6 - express: 5.2.1 - multer: 2.2.0 - path-to-regexp: 8.4.2 - tslib: 2.8.1 - transitivePeerDependencies: - - supports-color - - '@nestjs/platform-express@11.1.29(@nestjs/common@11.1.29(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/core@11.1.29)': - dependencies: - '@nestjs/common': 11.1.29(reflect-metadata@0.2.2)(rxjs@7.8.2)(supports-color@10.2.2) - '@nestjs/core': 11.1.29(@nestjs/common@11.1.29(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/platform-express@11.1.29)(reflect-metadata@0.2.2)(rxjs@7.8.2) - cors: 2.8.6 - express: 5.2.1 + express: 5.2.1(supports-color@10.2.2) multer: 2.2.0 path-to-regexp: 8.4.2 tslib: 2.8.1 @@ -7882,14 +7875,15 @@ snapshots: '@tsconfig/node24@24.0.4': {} - '@tsdown/css@0.22.14(jiti@2.7.0)(postcss@8.5.26)(sass-embedded@1.102.0)(sass@1.102.0)(tsdown@0.22.14)(tsx@4.23.12)(yaml@2.9.0)': + '@tsdown/css@0.22.14(jiti@2.7.0)(postcss-import@16.2.0(postcss@8.5.26))(postcss@8.5.26)(sass-embedded@1.102.0)(sass@1.102.0)(tsdown@0.22.14)(tsx@4.23.12)(yaml@2.9.0)': dependencies: lightningcss: 1.33.0 postcss-load-config: 6.0.1(jiti@2.7.0)(postcss@8.5.26)(tsx@4.23.12)(yaml@2.9.0) rolldown: 1.2.3 - tsdown: 0.22.14(@tsdown/css@0.22.14)(@volar/typescript@2.4.28)(tsx@4.23.12)(typescript@6.0.3)(vue-tsc@3.3.9(typescript@6.0.3)) + tsdown: 0.22.14(@tsdown/css@0.22.14)(@volar/typescript@2.4.28(typescript@6.0.3))(tsx@4.23.12)(typescript@6.0.3)(vue-tsc@3.3.9(typescript@6.0.3)) optionalDependencies: postcss: 8.5.26 + postcss-import: 16.2.0(postcss@8.5.26) sass: 1.102.0 sass-embedded: 1.102.0 transitivePeerDependencies: @@ -8233,7 +8227,7 @@ snapshots: '@typescript-eslint/parser': 8.67.0(eslint@10.8.1(jiti@2.7.0)(supports-color@10.2.2))(supports-color@10.2.2)(typescript@6.0.3) '@typescript-eslint/scope-manager': 8.67.0 '@typescript-eslint/type-utils': 8.67.0(eslint@10.8.1(jiti@2.7.0)(supports-color@10.2.2))(supports-color@10.2.2)(typescript@6.0.3) - '@typescript-eslint/utils': 8.67.0(eslint@10.8.1(jiti@2.7.0)(supports-color@10.2.2))(typescript@6.0.3) + '@typescript-eslint/utils': 8.67.0(eslint@10.8.1(jiti@2.7.0)(supports-color@10.2.2))(supports-color@10.2.2)(typescript@6.0.3) '@typescript-eslint/visitor-keys': 8.67.0 eslint: 10.8.1(jiti@2.7.0)(supports-color@10.2.2) ignore: 7.0.6 @@ -8243,27 +8237,11 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/eslint-plugin@8.67.0(@typescript-eslint/parser@8.67.0(eslint@10.8.1(jiti@2.7.0)(supports-color@10.2.2))(supports-color@10.2.2)(typescript@6.0.3))(eslint@10.8.1(jiti@2.7.0))(typescript@6.0.3)': - dependencies: - '@eslint-community/regexpp': 4.12.2 - '@typescript-eslint/parser': 8.67.0(eslint@10.8.1(jiti@2.7.0)(supports-color@10.2.2))(supports-color@10.2.2)(typescript@6.0.3) - '@typescript-eslint/scope-manager': 8.67.0 - '@typescript-eslint/type-utils': 8.67.0(eslint@10.8.1(jiti@2.7.0))(typescript@6.0.3) - '@typescript-eslint/utils': 8.67.0(eslint@10.8.1(jiti@2.7.0))(typescript@6.0.3) - '@typescript-eslint/visitor-keys': 8.67.0 - eslint: 10.8.1(jiti@2.7.0) - ignore: 7.0.6 - natural-compare: 1.4.0 - ts-api-utils: 2.5.0(typescript@6.0.3) - typescript: 6.0.3 - transitivePeerDependencies: - - supports-color - '@typescript-eslint/parser@8.67.0(eslint@10.8.1(jiti@2.7.0)(supports-color@10.2.2))(supports-color@10.2.2)(typescript@6.0.3)': dependencies: '@typescript-eslint/scope-manager': 8.67.0 '@typescript-eslint/types': 8.67.0 - '@typescript-eslint/typescript-estree': 8.67.0(typescript@6.0.3) + '@typescript-eslint/typescript-estree': 8.67.0(supports-color@10.2.2)(typescript@6.0.3) '@typescript-eslint/visitor-keys': 8.67.0 debug: 4.4.3(supports-color@10.2.2) eslint: 10.8.1(jiti@2.7.0)(supports-color@10.2.2) @@ -8271,19 +8249,7 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@8.67.0(eslint@10.8.1(jiti@2.7.0))(typescript@6.0.3)': - dependencies: - '@typescript-eslint/scope-manager': 8.67.0 - '@typescript-eslint/types': 8.67.0 - '@typescript-eslint/typescript-estree': 8.67.0(typescript@6.0.3) - '@typescript-eslint/visitor-keys': 8.67.0 - debug: 4.4.3(supports-color@10.2.2) - eslint: 10.8.1(jiti@2.7.0) - typescript: 6.0.3 - transitivePeerDependencies: - - supports-color - - '@typescript-eslint/project-service@8.67.0(typescript@6.0.3)': + '@typescript-eslint/project-service@8.67.0(supports-color@10.2.2)(typescript@6.0.3)': dependencies: '@typescript-eslint/tsconfig-utils': 8.67.0(typescript@6.0.3) '@typescript-eslint/types': 8.67.0 @@ -8304,8 +8270,8 @@ snapshots: '@typescript-eslint/type-utils@8.67.0(eslint@10.8.1(jiti@2.7.0)(supports-color@10.2.2))(supports-color@10.2.2)(typescript@6.0.3)': dependencies: '@typescript-eslint/types': 8.67.0 - '@typescript-eslint/typescript-estree': 8.67.0(typescript@6.0.3) - '@typescript-eslint/utils': 8.67.0(eslint@10.8.1(jiti@2.7.0)(supports-color@10.2.2))(typescript@6.0.3) + '@typescript-eslint/typescript-estree': 8.67.0(supports-color@10.2.2)(typescript@6.0.3) + '@typescript-eslint/utils': 8.67.0(eslint@10.8.1(jiti@2.7.0)(supports-color@10.2.2))(supports-color@10.2.2)(typescript@6.0.3) debug: 4.4.3(supports-color@10.2.2) eslint: 10.8.1(jiti@2.7.0)(supports-color@10.2.2) ts-api-utils: 2.5.0(typescript@6.0.3) @@ -8313,23 +8279,11 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/type-utils@8.67.0(eslint@10.8.1(jiti@2.7.0))(typescript@6.0.3)': - dependencies: - '@typescript-eslint/types': 8.67.0 - '@typescript-eslint/typescript-estree': 8.67.0(typescript@6.0.3) - '@typescript-eslint/utils': 8.67.0(eslint@10.8.1(jiti@2.7.0))(typescript@6.0.3) - debug: 4.4.3(supports-color@10.2.2) - eslint: 10.8.1(jiti@2.7.0) - ts-api-utils: 2.5.0(typescript@6.0.3) - typescript: 6.0.3 - transitivePeerDependencies: - - supports-color - '@typescript-eslint/types@8.67.0': {} - '@typescript-eslint/typescript-estree@8.67.0(typescript@6.0.3)': + '@typescript-eslint/typescript-estree@8.67.0(supports-color@10.2.2)(typescript@6.0.3)': dependencies: - '@typescript-eslint/project-service': 8.67.0(typescript@6.0.3) + '@typescript-eslint/project-service': 8.67.0(supports-color@10.2.2)(typescript@6.0.3) '@typescript-eslint/tsconfig-utils': 8.67.0(typescript@6.0.3) '@typescript-eslint/types': 8.67.0 '@typescript-eslint/visitor-keys': 8.67.0 @@ -8342,28 +8296,17 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@8.67.0(eslint@10.8.1(jiti@2.7.0)(supports-color@10.2.2))(typescript@6.0.3)': + '@typescript-eslint/utils@8.67.0(eslint@10.8.1(jiti@2.7.0)(supports-color@10.2.2))(supports-color@10.2.2)(typescript@6.0.3)': dependencies: '@eslint-community/eslint-utils': 4.10.1(eslint@10.8.1(jiti@2.7.0)(supports-color@10.2.2)) '@typescript-eslint/scope-manager': 8.67.0 '@typescript-eslint/types': 8.67.0 - '@typescript-eslint/typescript-estree': 8.67.0(typescript@6.0.3) + '@typescript-eslint/typescript-estree': 8.67.0(supports-color@10.2.2)(typescript@6.0.3) eslint: 10.8.1(jiti@2.7.0)(supports-color@10.2.2) typescript: 6.0.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@8.67.0(eslint@10.8.1(jiti@2.7.0))(typescript@6.0.3)': - dependencies: - '@eslint-community/eslint-utils': 4.10.1(eslint@10.8.1(jiti@2.7.0)) - '@typescript-eslint/scope-manager': 8.67.0 - '@typescript-eslint/types': 8.67.0 - '@typescript-eslint/typescript-estree': 8.67.0(typescript@6.0.3) - eslint: 10.8.1(jiti@2.7.0) - typescript: 6.0.3 - transitivePeerDependencies: - - supports-color - '@typescript-eslint/visitor-keys@8.67.0': dependencies: '@typescript-eslint/types': 8.67.0 @@ -8438,9 +8381,9 @@ snapshots: dependencies: lodash-es: 4.18.1 - '@unovis/ts@1.6.7': + '@unovis/ts@1.6.7(supports-color@10.2.2)': dependencies: - '@emotion/css': 11.13.5 + '@emotion/css': 11.13.5(supports-color@10.2.2) '@juggle/resize-observer': 3.4.0 '@types/d3': 7.4.3 '@types/d3-array': 3.2.2 @@ -8510,9 +8453,9 @@ snapshots: transitivePeerDependencies: - supports-color - '@unovis/vue@1.6.7(@unovis/ts@1.6.7)(vue@3.5.41(typescript@6.0.3))': + '@unovis/vue@1.6.7(@unovis/ts@1.6.7(supports-color@10.2.2))(vue@3.5.41(typescript@6.0.3))': dependencies: - '@unovis/ts': 1.6.7 + '@unovis/ts': 1.6.7(supports-color@10.2.2) vue: 3.5.41(typescript@6.0.3) '@vee-validate/zod@4.15.1(vue@3.5.41(typescript@6.0.3))(zod@3.25.76)': @@ -8584,11 +8527,13 @@ snapshots: '@volar/source-map@2.4.28': {} - '@volar/typescript@2.4.28': + '@volar/typescript@2.4.28(typescript@6.0.3)': dependencies: '@volar/language-core': 2.4.28 path-browserify: 1.0.1 vscode-uri: 3.1.0 + optionalDependencies: + typescript: 6.0.3 '@vue-macros/common@3.1.4(vue@3.5.41(typescript@6.0.3))': dependencies: @@ -8941,7 +8886,7 @@ snapshots: inherits: 2.0.4 readable-stream: 3.6.2 - body-parser@2.3.0: + body-parser@2.3.0(supports-color@10.2.2): dependencies: bytes: 3.1.2 content-type: 2.0.0 @@ -9546,43 +9491,6 @@ snapshots: eslint-visitor-keys@5.0.1: {} - eslint@10.8.1(jiti@2.7.0): - dependencies: - '@eslint-community/eslint-utils': 4.10.1(eslint@10.8.1(jiti@2.7.0)) - '@eslint-community/regexpp': 4.12.2 - '@eslint/config-array': 0.23.5(supports-color@10.2.2) - '@eslint/config-helpers': 0.7.0 - '@eslint/core': 1.2.1 - '@eslint/plugin-kit': 0.7.2 - '@humanfs/node': 0.16.8 - '@humanwhocodes/module-importer': 1.0.1 - '@humanwhocodes/retry': 0.4.3 - '@types/estree': 1.0.9 - ajv: 6.15.0 - cross-spawn: 7.0.6 - debug: 4.4.3(supports-color@10.2.2) - escape-string-regexp: 4.0.0 - eslint-scope: 9.1.2 - eslint-visitor-keys: 5.0.1 - espree: 11.2.0 - esquery: 1.7.0 - esutils: 2.0.3 - fast-deep-equal: 3.1.3 - file-entry-cache: 8.0.0 - find-up: 5.0.0 - glob-parent: 6.0.2 - ignore: 5.3.2 - imurmurhash: 0.1.4 - is-glob: 4.0.3 - json-stable-stringify-without-jsonify: 1.0.1 - minimatch: 10.2.6 - natural-compare: 1.4.0 - optionator: 0.9.4 - optionalDependencies: - jiti: 2.7.0 - transitivePeerDependencies: - - supports-color - eslint@10.8.1(jiti@2.7.0)(supports-color@10.2.2): dependencies: '@eslint-community/eslint-utils': 4.10.1(eslint@10.8.1(jiti@2.7.0)(supports-color@10.2.2)) @@ -9650,10 +9558,10 @@ snapshots: expect-type@1.4.0: {} - express@5.2.1: + express@5.2.1(supports-color@10.2.2): dependencies: accepts: 2.0.0 - body-parser: 2.3.0 + body-parser: 2.3.0(supports-color@10.2.2) content-disposition: 1.1.0 content-type: 1.0.5 cookie: 0.7.2 @@ -9663,7 +9571,7 @@ snapshots: encodeurl: 2.0.0 escape-html: 1.0.3 etag: 1.8.1 - finalhandler: 2.1.1 + finalhandler: 2.1.1(supports-color@10.2.2) fresh: 2.0.0 http-errors: 2.0.1 merge-descriptors: 2.0.0 @@ -9674,9 +9582,9 @@ snapshots: proxy-addr: 2.0.7 qs: 6.15.3 range-parser: 1.3.0 - router: 2.2.0 - send: 1.2.1 - serve-static: 2.2.1 + router: 2.2.0(supports-color@10.2.2) + send: 1.2.1(supports-color@10.2.2) + serve-static: 2.2.1(supports-color@10.2.2) statuses: 2.0.2 type-is: 2.1.0 vary: 1.1.2 @@ -9779,7 +9687,7 @@ snapshots: transitivePeerDependencies: - supports-color - file-type@22.0.2: + file-type@22.0.2(supports-color@10.2.2): dependencies: '@tokenizer/inflate': 0.4.1(supports-color@10.2.2) strtok3: 10.3.5 @@ -9792,7 +9700,7 @@ snapshots: dependencies: to-regex-range: 5.0.1 - finalhandler@2.1.1: + finalhandler@2.1.1(supports-color@10.2.2): dependencies: debug: 4.4.3(supports-color@10.2.2) encodeurl: 2.0.0 @@ -10590,7 +10498,7 @@ snapshots: transitivePeerDependencies: - supports-color - mdast-util-frontmatter@2.0.1: + mdast-util-frontmatter@2.0.1(supports-color@10.2.2): dependencies: '@types/mdast': 4.0.4 devlop: 1.1.0 @@ -10609,7 +10517,7 @@ snapshots: mdast-util-find-and-replace: 3.0.2 micromark-util-character: 2.1.1 - mdast-util-gfm-footnote@2.1.0: + mdast-util-gfm-footnote@2.1.0(supports-color@10.2.2): dependencies: '@types/mdast': 4.0.4 devlop: 1.1.0 @@ -10619,7 +10527,7 @@ snapshots: transitivePeerDependencies: - supports-color - mdast-util-gfm-strikethrough@2.0.0: + mdast-util-gfm-strikethrough@2.0.0(supports-color@10.2.2): dependencies: '@types/mdast': 4.0.4 mdast-util-from-markdown: 2.0.3(supports-color@10.2.2) @@ -10627,7 +10535,7 @@ snapshots: transitivePeerDependencies: - supports-color - mdast-util-gfm-table@2.0.0: + mdast-util-gfm-table@2.0.0(supports-color@10.2.2): dependencies: '@types/mdast': 4.0.4 devlop: 1.1.0 @@ -10637,7 +10545,7 @@ snapshots: transitivePeerDependencies: - supports-color - mdast-util-gfm-task-list-item@2.0.0: + mdast-util-gfm-task-list-item@2.0.0(supports-color@10.2.2): dependencies: '@types/mdast': 4.0.4 devlop: 1.1.0 @@ -10646,19 +10554,19 @@ snapshots: transitivePeerDependencies: - supports-color - mdast-util-gfm@3.1.0: + mdast-util-gfm@3.1.0(supports-color@10.2.2): dependencies: mdast-util-from-markdown: 2.0.3(supports-color@10.2.2) mdast-util-gfm-autolink-literal: 2.0.1 - mdast-util-gfm-footnote: 2.1.0 - mdast-util-gfm-strikethrough: 2.0.0 - mdast-util-gfm-table: 2.0.0 - mdast-util-gfm-task-list-item: 2.0.0 + mdast-util-gfm-footnote: 2.1.0(supports-color@10.2.2) + mdast-util-gfm-strikethrough: 2.0.0(supports-color@10.2.2) + mdast-util-gfm-table: 2.0.0(supports-color@10.2.2) + mdast-util-gfm-task-list-item: 2.0.0(supports-color@10.2.2) mdast-util-to-markdown: 2.1.2 transitivePeerDependencies: - supports-color - mdast-util-math@3.0.0: + mdast-util-math@3.0.0(supports-color@10.2.2): dependencies: '@types/hast': 3.0.5 '@types/mdast': 4.0.4 @@ -11294,6 +11202,13 @@ snapshots: pluralize@8.0.0: {} + postcss-import@16.2.0(postcss@8.5.26): + dependencies: + postcss: 8.5.26 + postcss-value-parser: 4.2.0 + read-cache: 1.0.2 + resolve: 1.22.12 + postcss-load-config@6.0.1(jiti@2.7.0)(postcss@8.5.26)(tsx@4.23.12)(yaml@2.9.0): dependencies: lilconfig: 3.1.3 @@ -11303,6 +11218,8 @@ snapshots: tsx: 4.23.12 yaml: 2.9.0 + postcss-value-parser@4.2.0: {} + postcss@8.5.26: dependencies: nanoid: 3.3.18 @@ -11392,6 +11309,8 @@ snapshots: minimist: 1.2.8 strip-json-comments: 2.0.1 + read-cache@1.0.2: {} + read-package-json-fast@6.0.0: dependencies: json-parse-even-better-errors: 6.0.0 @@ -11529,27 +11448,27 @@ snapshots: unified: 11.0.5 unist-util-visit: 5.1.0 - remark-frontmatter@5.0.0: + remark-frontmatter@5.0.0(supports-color@10.2.2): dependencies: '@types/mdast': 4.0.4 - mdast-util-frontmatter: 2.0.1 + mdast-util-frontmatter: 2.0.1(supports-color@10.2.2) micromark-extension-frontmatter: 2.0.0 unified: 11.0.5 transitivePeerDependencies: - supports-color - remark-gfm@4.0.1: + remark-gfm@4.0.1(supports-color@10.2.2): dependencies: '@types/mdast': 4.0.4 - mdast-util-gfm: 3.1.0 + mdast-util-gfm: 3.1.0(supports-color@10.2.2) micromark-extension-gfm: 3.0.0 - remark-parse: 11.0.0 + remark-parse: 11.0.0(supports-color@10.2.2) remark-stringify: 11.0.0 unified: 11.0.5 transitivePeerDependencies: - supports-color - remark-mdc@3.11.1: + remark-mdc@3.11.1(supports-color@10.2.2): dependencies: '@types/mdast': 4.0.4 '@types/unist': 3.0.3 @@ -11572,7 +11491,7 @@ snapshots: transitivePeerDependencies: - supports-color - remark-parse@11.0.0: + remark-parse@11.0.0(supports-color@10.2.2): dependencies: '@types/mdast': 4.0.4 mdast-util-from-markdown: 2.0.3(supports-color@10.2.2) @@ -11637,7 +11556,7 @@ snapshots: robust-predicates@3.0.3: {} - rolldown-plugin-dts@0.27.14(@volar/typescript@2.4.28)(rolldown@1.2.3)(typescript@6.0.3)(vue-tsc@3.3.9(typescript@6.0.3)): + rolldown-plugin-dts@0.27.14(@volar/typescript@2.4.28(typescript@6.0.3))(rolldown@1.2.3)(typescript@6.0.3)(vue-tsc@3.3.9(typescript@6.0.3)): dependencies: dts-resolver: 3.0.0 get-tsconfig: 5.0.0-beta.5 @@ -11647,7 +11566,7 @@ snapshots: yuku-codegen: 0.8.5 yuku-parser: 0.8.5 optionalDependencies: - '@volar/typescript': 2.4.28 + '@volar/typescript': 2.4.28(typescript@6.0.3) typescript: 6.0.3 vue-tsc: 3.3.9(typescript@6.0.3) transitivePeerDependencies: @@ -11673,7 +11592,7 @@ snapshots: '@rolldown/binding-win32-arm64-msvc': 1.2.3 '@rolldown/binding-win32-x64-msvc': 1.2.3 - router@2.2.0: + router@2.2.0(supports-color@10.2.2): dependencies: debug: 4.4.3(supports-color@10.2.2) depd: 2.0.0 @@ -11807,7 +11726,7 @@ snapshots: semver@7.8.5: {} - send@1.2.1: + send@1.2.1(supports-color@10.2.2): dependencies: debug: 4.4.3(supports-color@10.2.2) encodeurl: 2.0.0 @@ -11823,12 +11742,12 @@ snapshots: transitivePeerDependencies: - supports-color - serve-static@2.2.1: + serve-static@2.2.1(supports-color@10.2.2): dependencies: encodeurl: 2.0.0 escape-html: 1.0.3 parseurl: 1.3.3 - send: 1.2.1 + send: 1.2.1(supports-color@10.2.2) transitivePeerDependencies: - supports-color @@ -12127,7 +12046,7 @@ snapshots: dependencies: typescript: 6.0.3 - tsdown@0.22.14(@tsdown/css@0.22.14)(@volar/typescript@2.4.28)(tsx@4.23.12)(typescript@6.0.3)(vue-tsc@3.3.9(typescript@6.0.3)): + tsdown@0.22.14(@tsdown/css@0.22.14)(@volar/typescript@2.4.28(typescript@6.0.3))(tsx@4.23.12)(typescript@6.0.3)(vue-tsc@3.3.9(typescript@6.0.3)): dependencies: ansis: 4.3.1 cac: 7.0.0 @@ -12138,14 +12057,14 @@ snapshots: obug: 2.1.4 picomatch: 4.0.5 rolldown: 1.2.3 - rolldown-plugin-dts: 0.27.14(@volar/typescript@2.4.28)(rolldown@1.2.3)(typescript@6.0.3)(vue-tsc@3.3.9(typescript@6.0.3)) + rolldown-plugin-dts: 0.27.14(@volar/typescript@2.4.28(typescript@6.0.3))(rolldown@1.2.3)(typescript@6.0.3)(vue-tsc@3.3.9(typescript@6.0.3)) tinyexec: 1.3.0 tinyglobby: 0.2.17 tree-kill: 1.2.2 unconfig-core: 7.5.0 verkit: 0.3.2 optionalDependencies: - '@tsdown/css': 0.22.14(jiti@2.7.0)(postcss@8.5.26)(sass-embedded@1.102.0)(sass@1.102.0)(tsdown@0.22.14)(tsx@4.23.12)(yaml@2.9.0) + '@tsdown/css': 0.22.14(jiti@2.7.0)(postcss-import@16.2.0(postcss@8.5.26))(postcss@8.5.26)(sass-embedded@1.102.0)(sass@1.102.0)(tsdown@0.22.14)(tsx@4.23.12)(yaml@2.9.0) tsx: 4.23.12 typescript: 6.0.3 transitivePeerDependencies: @@ -12193,24 +12112,13 @@ snapshots: dependencies: '@typescript-eslint/eslint-plugin': 8.67.0(@typescript-eslint/parser@8.67.0(eslint@10.8.1(jiti@2.7.0)(supports-color@10.2.2))(supports-color@10.2.2)(typescript@6.0.3))(eslint@10.8.1(jiti@2.7.0)(supports-color@10.2.2))(supports-color@10.2.2)(typescript@6.0.3) '@typescript-eslint/parser': 8.67.0(eslint@10.8.1(jiti@2.7.0)(supports-color@10.2.2))(supports-color@10.2.2)(typescript@6.0.3) - '@typescript-eslint/typescript-estree': 8.67.0(typescript@6.0.3) - '@typescript-eslint/utils': 8.67.0(eslint@10.8.1(jiti@2.7.0)(supports-color@10.2.2))(typescript@6.0.3) + '@typescript-eslint/typescript-estree': 8.67.0(supports-color@10.2.2)(typescript@6.0.3) + '@typescript-eslint/utils': 8.67.0(eslint@10.8.1(jiti@2.7.0)(supports-color@10.2.2))(supports-color@10.2.2)(typescript@6.0.3) eslint: 10.8.1(jiti@2.7.0)(supports-color@10.2.2) typescript: 6.0.3 transitivePeerDependencies: - supports-color - typescript-eslint@8.67.0(eslint@10.8.1(jiti@2.7.0))(typescript@6.0.3): - dependencies: - '@typescript-eslint/eslint-plugin': 8.67.0(@typescript-eslint/parser@8.67.0(eslint@10.8.1(jiti@2.7.0)(supports-color@10.2.2))(supports-color@10.2.2)(typescript@6.0.3))(eslint@10.8.1(jiti@2.7.0))(typescript@6.0.3) - '@typescript-eslint/parser': 8.67.0(eslint@10.8.1(jiti@2.7.0))(typescript@6.0.3) - '@typescript-eslint/typescript-estree': 8.67.0(typescript@6.0.3) - '@typescript-eslint/utils': 8.67.0(eslint@10.8.1(jiti@2.7.0))(typescript@6.0.3) - eslint: 10.8.1(jiti@2.7.0) - typescript: 6.0.3 - transitivePeerDependencies: - - supports-color - typescript@6.0.3: {} ufo@1.6.4: {} @@ -12419,7 +12327,7 @@ snapshots: util-deprecate@1.0.2: {} - v-content@1.4.3(@vue/compiler-sfc@3.5.41)(better-sqlite3@13.0.3)(esbuild@0.28.2)(oxc-parser@0.106.0(@emnapi/core@1.11.3)(@emnapi/runtime@1.11.3))(rolldown@1.2.3)(typescript@6.0.3)(vite@8.2.1(@types/node@26.4.0)(esbuild@0.28.2)(jiti@2.7.0)(sass-embedded@1.102.0)(sass@1.102.0)(tsx@4.23.12)(yaml@2.9.0)): + v-content@1.4.3(@vue/compiler-sfc@3.5.41)(better-sqlite3@13.0.3)(esbuild@0.28.2)(oxc-parser@0.106.0(@emnapi/core@1.11.3)(@emnapi/runtime@1.11.3))(rolldown@1.2.3)(supports-color@10.2.2)(typescript@6.0.3)(vite@8.2.1(@types/node@26.4.0)(esbuild@0.28.2)(jiti@2.7.0)(sass-embedded@1.102.0)(sass@1.102.0)(tsx@4.23.12)(yaml@2.9.0)): dependencies: '@shikijs/rehype': 4.4.3 '@shikijs/transformers': 4.4.3 @@ -12442,10 +12350,10 @@ snapshots: rehype-stringify: 10.0.1 remark-emoji: 5.0.2 remark-flexible-toc: 1.2.6(unified@11.0.5) - remark-frontmatter: 5.0.0 - remark-gfm: 4.0.1 - remark-mdc: 3.11.1 - remark-parse: 11.0.0 + remark-frontmatter: 5.0.0(supports-color@10.2.2) + remark-gfm: 4.0.1(supports-color@10.2.2) + remark-mdc: 3.11.1(supports-color@10.2.2) + remark-parse: 11.0.0(supports-color@10.2.2) remark-rehype: 11.1.2 remark-toc: 9.0.0 to-vfile: 8.0.0 @@ -12694,7 +12602,7 @@ snapshots: vue-tsc@3.3.9(typescript@6.0.3): dependencies: - '@volar/typescript': 2.4.28 + '@volar/typescript': 2.4.28(typescript@6.0.3) '@vue/language-core': 3.3.9 typescript: 6.0.3 diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index 9090f52..ba0f5c5 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -73,6 +73,7 @@ catalog: tsdown: ^0.22.14 "@tsdown/css": ^0.22.14 + postcss-import: ^16.0.0 tsx: ^4.23.12 npm-run-all2: ^9.0.2 diff --git a/tests/regressions/module-css-imports.test.ts b/tests/regressions/module-css-imports.test.ts new file mode 100644 index 0000000..79563f6 --- /dev/null +++ b/tests/regressions/module-css-imports.test.ts @@ -0,0 +1,56 @@ +import { existsSync, readFileSync, readdirSync } from "node:fs"; +import path from "node:path"; +import { describe, expect, it } from "vitest"; + +import { + cleanupFixtureDir, + createFixtureDir, + linkWorkspacePackage, + runInFixture, + writeFixtureFile, +} from "../fixtures.js"; + +describe("module CSS imports", () => { + it("preserves remote @import URLs when building a module", () => { + const directory = createFixtureDir("module-remote-css-import-"); + + try { + linkWorkspacePackage(directory, "runable", "packages/runable"); + writeFixtureFile( + directory, + "runable.config.ts", + `import { defineModule } from "runable"; + +export default defineModule({ css: ["./app/css/main.css"] }); +`, + ); + writeFixtureFile( + directory, + "app/css/main.css", + `@import url("https://fonts.googleapis.com/css2?family=Inter:wght@400;700&display=swap"); + +.example { font-family: Inter, sans-serif; } +`, + ); + + const result = runInFixture( + directory, + `import { build } from "runable"; +await build(); +`, + { timeout: 30_000 }, + ); + + expect(result.status, result.stderr || result.stdout).toBe(0); + const cssDir = path.join(directory, "dist/app/css"); + expect(existsSync(cssDir)).toBe(true); + const cssFile = readdirSync(cssDir).find((file) => file.endsWith(".css")); + expect(cssFile).toBeDefined(); + expect(readFileSync(path.join(cssDir, cssFile!), "utf8")).toContain( + "https://fonts.googleapis.com/css2?family=Inter", + ); + } finally { + cleanupFixtureDir(directory); + } + }, 30_000); +}); From bebe59d8fc7740891415dfad0f21119ccd714956 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Sun, 20 Sep 2026 14:59:19 +0000 Subject: [PATCH 2/4] chore(release): version packages --- .changeset/preserve-remote-css-imports.md | 5 ----- packages/cli/CHANGELOG.md | 7 +++++++ packages/cli/package.json | 2 +- packages/create-syora/CHANGELOG.md | 7 +++++++ packages/create-syora/package.json | 2 +- packages/runable/CHANGELOG.md | 6 ++++++ packages/runable/package.json | 2 +- 7 files changed, 23 insertions(+), 8 deletions(-) delete mode 100644 .changeset/preserve-remote-css-imports.md diff --git a/.changeset/preserve-remote-css-imports.md b/.changeset/preserve-remote-css-imports.md deleted file mode 100644 index 503ff1a..0000000 --- a/.changeset/preserve-remote-css-imports.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"runable": patch ---- - -Preserve remote CSS imports when building Runable modules instead of resolving their URLs as local files. diff --git a/packages/cli/CHANGELOG.md b/packages/cli/CHANGELOG.md index 3723089..7a3ef67 100644 --- a/packages/cli/CHANGELOG.md +++ b/packages/cli/CHANGELOG.md @@ -1,5 +1,12 @@ # @runablejs/cli +## 1.2.1 + +### Patch Changes + +- Updated dependencies [[`bbc38a1`](https://github.com/runablejs/runable/commit/bbc38a1d622d0dac6f96291e06a11353ed537cd1)]: + - runable@1.2.1 + ## 1.2.0 ### Minor Changes diff --git a/packages/cli/package.json b/packages/cli/package.json index 7fa2528..965380e 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -1,6 +1,6 @@ { "name": "@runablejs/cli", - "version": "1.2.0", + "version": "1.2.1", "private": false, "license": "MIT", "repository": { diff --git a/packages/create-syora/CHANGELOG.md b/packages/create-syora/CHANGELOG.md index accfef5..e67a215 100644 --- a/packages/create-syora/CHANGELOG.md +++ b/packages/create-syora/CHANGELOG.md @@ -1,5 +1,12 @@ # create-runable +## 1.2.1 + +### Patch Changes + +- Updated dependencies []: + - @runablejs/cli@1.2.1 + ## 1.2.0 ### Patch Changes diff --git a/packages/create-syora/package.json b/packages/create-syora/package.json index 40eb91b..aa3898d 100644 --- a/packages/create-syora/package.json +++ b/packages/create-syora/package.json @@ -1,6 +1,6 @@ { "name": "create-runable", - "version": "1.2.0", + "version": "1.2.1", "description": "Create a Runable project", "private": false, "license": "MIT", diff --git a/packages/runable/CHANGELOG.md b/packages/runable/CHANGELOG.md index 49a1e10..6ba22cf 100644 --- a/packages/runable/CHANGELOG.md +++ b/packages/runable/CHANGELOG.md @@ -1,5 +1,11 @@ # runable +## 1.2.1 + +### Patch Changes + +- [#95](https://github.com/runablejs/runable/pull/95) [`bbc38a1`](https://github.com/runablejs/runable/commit/bbc38a1d622d0dac6f96291e06a11353ed537cd1) Thanks [@domutala](https://github.com/domutala)! - Preserve remote CSS imports when building Runable modules instead of resolving their URLs as local files. + ## 1.2.0 ### Patch Changes diff --git a/packages/runable/package.json b/packages/runable/package.json index 2b65f54..ddd9ac9 100644 --- a/packages/runable/package.json +++ b/packages/runable/package.json @@ -1,6 +1,6 @@ { "name": "runable", - "version": "1.2.0", + "version": "1.2.1", "private": false, "license": "MIT", "repository": { From a28ac24029ddd1e4300f0dcf934aa894a6af6d3d Mon Sep 17 00:00:00 2001 From: Mamadou Talla DIA Date: Sun, 20 Sep 2026 16:50:19 +0100 Subject: [PATCH 3/4] feat(config): ajouter le fichier de configuration .coderabbit.yaml pour les revues automatiques et les instructions de chemin --- .coderabbit.yaml | 77 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 77 insertions(+) create mode 100644 .coderabbit.yaml diff --git a/.coderabbit.yaml b/.coderabbit.yaml new file mode 100644 index 0000000..5590d1f --- /dev/null +++ b/.coderabbit.yaml @@ -0,0 +1,77 @@ +# yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json + +language: "en-US" +early_access: false + +reviews: + profile: "chill" + request_changes_workflow: false + high_level_summary: true + poem: false + review_status: true + commit_status: false + collapse_walkthrough: true + + auto_review: + enabled: true + drafts: false + auto_incremental_review: true + ignore_title_keywords: + - "WIP" + - "DO NOT MERGE" + + path_filters: + - "!**/dist/**" + - "!**/.app/**" + - "!**/.output/**" + - "!**/coverage/**" + - "!**/node_modules/**" + - "!pnpm-lock.yaml" + + path_instructions: + - path: "packages/runable/src/**" + instructions: | + Focus on correctness, TypeScript type safety, Vue 3 and SSR behavior, + server/client boundaries, error handling, and backward compatibility of + public APIs and generated types. Check behavior across the supported + server adapters. Flag missing regression tests for behavioral fixes. + + - path: "packages/cli/**" + instructions: | + Check that CLI behavior and generated starters work outside this + workspace with supported package managers. Do not suggest commands that + the CLI does not implement. Verify that published files and dependency + declarations are sufficient for clean consumer installations. + + - path: "packages/create-syora/**" + instructions: | + Review scaffolding changes for clean-project behavior, correct package + versions, portable file paths, and compatibility with every starter and + supported package manager. + + - path: "tests/**" + instructions: | + Prefer behavior-based integration and regression tests using the real + toolchain. Check that new tests would fail before the corresponding fix, + cover important edge cases, and avoid brittle source-text assertions. + + - path: "website/content/docs/**" + instructions: | + Check that documented APIs, options, examples, and CLI commands match + the implementation and current starter structure. + + - path: ".changeset/**" + instructions: | + Check that release impact and package selection match the change. This + repository is in prerelease mode; follow CONTRIBUTING.md for whether a + patch, minor, or major changeset is appropriate. + +chat: + auto_reply: true + +knowledge_base: + code_guidelines: + enabled: true + filePatterns: + - "**/AGENTS.md" + - "CONTRIBUTING.md" From 9634ed1d758c2c93fd248e163abe9ad6962761b7 Mon Sep 17 00:00:00 2001 From: Mamadou Talla DIA Date: Sun, 20 Sep 2026 17:01:07 +0100 Subject: [PATCH 4/4] feat(config): ajouter les branches de base pour les revues automatiques --- .coderabbit.yaml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.coderabbit.yaml b/.coderabbit.yaml index 5590d1f..91b1fff 100644 --- a/.coderabbit.yaml +++ b/.coderabbit.yaml @@ -16,6 +16,9 @@ reviews: enabled: true drafts: false auto_incremental_review: true + base_branches: + - "main" + - "dev" ignore_title_keywords: - "WIP" - "DO NOT MERGE"