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);
+});
diff --git a/website/app/pages/blog/index.vue b/website/app/pages/blog/index.vue
index e91b1a6..0ce4cca 100644
--- a/website/app/pages/blog/index.vue
+++ b/website/app/pages/blog/index.vue
@@ -20,9 +20,16 @@ function formatArticleDate(article: ResolvedPageEntry) {
}).format(date);
}
-const { data: articles, pending } = useAsyncData("blog:index", () =>
- queryCollection("blog").all(),
-);
+const { data: articles, pending } = useAsyncData("blog:index", async () => {
+ const entries = await queryCollection("blog").all();
+
+ return [...entries].sort((first, second) => {
+ const firstDate = getArticleDate(first)?.getTime() ?? 0;
+ const secondDate = getArticleDate(second)?.getTime() ?? 0;
+
+ return secondDate - firstDate;
+ });
+});
useHead({
title: "Blog",
diff --git a/website/app/pages/changelog.vue b/website/app/pages/changelog.vue
index 4b99072..f3d5898 100644
--- a/website/app/pages/changelog.vue
+++ b/website/app/pages/changelog.vue
@@ -1,12 +1,64 @@
+
+
+ Loading…
+ {{ error.message }}
+
+
+```
+
+During SSR, Runable waits for the request, stores its result, and renders the page. The cache is serialized into the response and restored before hydration, so the browser does not immediately request the same data again.
+
+`useFetch()` builds on the same system for reactive requests, transformations, key selection, deduplication, timeouts, manual execution, and cache control.
+
+## Extensions at the right level
+
+Runable has two complementary extension points.
+
+Plugins initialize each Vue application instance. Use them to install Vue libraries, register directives, provide services, or connect lifecycle hooks.
+
+Modules package broader conventions. A module can contribute configuration, plugins, components, composables, layouts, middleware, styles, and other modules. Module options receive generated types, and module-owned paths resolve from the module itself.
+
+Configuration hooks can extend the resolved configuration and the complete route tree. This gives integrations room to participate in code generation without requiring applications to patch framework internals.
+
+## Tooling that explains the generated application
+
+Conventions are most useful when developers can inspect what they produce. Runable generates its application files in `.app/`, including the route table, auto-import declarations, module options, and TypeScript configuration.
+
+The public Inspector API exposes the same resolved project model to tools. It can report routes, layouts, middleware, plugins, modules, auto-imports, and configuration as serializable data without modifying the project.
+
+The CLI supports project preparation and production builds, and it can create applications for the supported server frameworks. Runable also ships Agent Skills and an MCP integration so coding agents can work from the framework's actual conventions instead of guessing from generic Vue patterns.
+
+## Stable does not mean finished
+
+Version 1.0 establishes the public foundation: the application structure, adapter boundary, rendering pipeline, extension model, data APIs, generated types, and tooling surface are ready for real projects.
+
+There is still a great deal to build. The module ecosystem will grow. Runtime integrations will become deeper. Documentation, diagnostics, and developer tools will keep improving through feedback from applications using Runable in different server environments.
+
+Stability means that this work now has a dependable base.
+
+## Start with the server you want
+
+Install Runable alongside Vue, Vue Router, and the backend framework used by your project:
+
+```bash
+pnpm add runable vue vue-router express
+pnpm add -D @runablejs/cli tsx typescript @types/node @types/express
+```
+
+Create `app/pages/index.vue`, connect the matching adapter after your API routes, and start the server as usual.
+
+Follow Installation for the complete setup, continue with the Quick Start, or compare the architecture in Runable vs Nuxt.
+
+Runable 1.0 is the framework experience for teams that want all the Vue conventions—and their own server runtime.
diff --git a/website/public/images/blog/v1dot0.png b/website/public/images/blog/v1dot0.png
new file mode 100644
index 0000000..aca5223
Binary files /dev/null and b/website/public/images/blog/v1dot0.png differ