diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -119,8 +119,8 @@
specifier: 1.2.27
version: 1.2.27
'@orpc/contract':
- specifier: 1.13.4
- version: 1.13.4
+ specifier: 1.13.9
+ version: 1.13.9
'@pinia/colada':
specifier: 0.19.1
version: 0.19.1(pinia@3.0.3(typescript@5.9.3)(vue@3.5.25(typescript@5.9.3)))(vue@3.5.25(typescript@5.9.3))
@@ -183,8 +183,8 @@
specifier: 2.0.0-alpha.16
version: 2.0.0-alpha.16(patch_hash=828e6d2347338f051e3210f9d54e3a79212e9afb26e6b8a746d7ad5f58e9385b)(@types/node@25.2.1)(axios@1.13.4)(fuse.js@7.1.0)(jiti@2.6.1)(jwt-decode@4.0.0)(less@4.4.2)(oxc-minify@0.110.0)(postcss@8.5.6)(sass@1.97.1)(terser@5.44.1)(tsx@4.21.0)(typescript@5.9.3)(yaml@2.8.2)
vitepress-plugin-llms:
- specifier: 1.11.0
- version: 1.11.0
+ specifier: 1.12.0
+ version: 1.12.0
vue:
specifier: 3.5.25
version: 3.5.25(typescript@5.9.3)
@@ -1312,7 +1312,7 @@
version: 1.8.0
nuxt:
specifier: '>=3.0.0'
- version: 3.14.1592(@netlify/blobs@9.1.2)(@parcel/watcher@2.5.1)(@types/node@25.2.1)(db0@0.3.2)(encoding@0.1.13)(eslint@9.39.2(jiti@2.6.1))(ioredis@5.7.0)(less@4.4.2)(magicast@0.3.5)(optionator@0.9.4)(rolldown@1.0.0-rc.9)(rollup@3.29.5)(sass@1.97.1)(terser@5.44.1)(typescript@5.9.3)(vite@7.3.1(@types/node@25.2.1)(jiti@2.6.1)(less@4.4.2)(sass@1.97.1)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2))(vue-tsc@3.2.4(typescript@5.9.3))
+ version: 3.14.1592(@netlify/blobs@9.1.2)(@parcel/watcher@2.5.1)(@types/node@25.2.1)(db0@0.3.4)(encoding@0.1.13)(eslint@9.39.2(jiti@2.6.1))(ioredis@5.9.2)(less@4.4.2)(magicast@0.3.5)(optionator@0.9.4)(rolldown@1.0.0-rc.9)(rollup@3.29.5)(sass@1.97.1)(terser@5.44.1)(typescript@5.9.3)(vite@7.3.1(@types/node@25.2.1)(jiti@2.6.1)(less@4.4.2)(sass@1.97.1)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2))(vue-tsc@3.2.4(typescript@5.9.3))
vue:
specifier: '>=3.5.13'
version: 3.5.13(typescript@5.9.3)
@@ -1444,7 +1444,7 @@
version: 1.14.3
nuxt:
specifier: 3.14.1592
- version: 3.14.1592(@netlify/blobs@9.1.2)(@parcel/watcher@2.5.1)(@types/node@25.2.1)(db0@0.3.4)(encoding@0.1.13)(eslint@9.39.1(jiti@2.6.1))(ioredis@5.9.2)(less@4.4.2)(magicast@0.3.5)(optionator@0.9.4)(rolldown@1.0.0-rc.9)(rollup@4.56.0)(sass@1.97.1)(terser@5.44.1)(typescript@5.9.3)(vite@7.3.1(@types/node@25.2.1)(jiti@2.6.1)(less@4.4.2)(sass@1.97.1)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2))(vue-tsc@3.2.4(typescript@5.9.3))
+ version: 3.14.1592(@netlify/blobs@9.1.2)(@parcel/watcher@2.5.1)(@types/node@25.2.1)(db0@0.3.2)(encoding@0.1.13)(eslint@9.39.1(jiti@2.6.1))(ioredis@5.7.0)(less@4.4.2)(magicast@0.3.5)(optionator@0.9.4)(rolldown@1.0.0-rc.9)(rollup@4.56.0)(sass@1.97.1)(terser@5.44.1)(typescript@5.9.3)(vite@5.4.19(@types/node@25.2.1)(less@4.4.2)(sass@1.97.1)(terser@5.44.1))(vue-tsc@3.2.4(typescript@5.9.3))
ofetch:
specifier: 1.5.1
version: 1.5.1
@@ -1593,8 +1593,8 @@
specifier: workspace:*
version: link:../../../openapi-ts
'@orpc/contract':
- specifier: 1.13.4
- version: 1.13.4
+ specifier: 1.13.9
+ version: 1.13.9
typescript:
specifier: 5.9.3
version: 5.9.3
@@ -2886,14 +2886,14 @@
resolution: {integrity: sha512-4B4OijXeVNOPZlYA2oEwWOTkzyltLao+xbotHQeqN++Rv27Y6s818+n2Qkp8q+Fxhn0t/5lA5X1Mxktud8eayQ==}
engines: {node: '>=14.17.0'}
- '@docsearch/css@4.5.3':
- resolution: {integrity: sha512-kUpHaxn0AgI3LQfyzTYkNUuaFY4uEz/Ym9/N/FvyDE+PzSgZsCyDH9jE49B6N6f1eLCm9Yp64J9wENd6vypdxA==}
+ '@docsearch/css@4.6.0':
+ resolution: {integrity: sha512-YlcAimkXclvqta47g47efzCM5CFxDwv2ClkDfEs/fC/Ak0OxPH2b3czwa4o8O1TRBf+ujFF2RiUwszz2fPVNJQ==}
- '@docsearch/js@4.5.3':
- resolution: {integrity: sha512-rcBiUMCXbZLqrLIT6F6FDcrG/tyvM2WM0zum6NPbIiQNDQxbSgmNc+/bToS0rxBsXaxiU64esiWoS02WqrWLsg==}
+ '@docsearch/js@4.6.0':
+ resolution: {integrity: sha512-9/rbgkm/BgTq46cwxIohvSAz3koOFjnPpg0mwkJItAfzKbQIj+310PvwtgUY1YITDuGCag6yOL50GW2DBkaaBw==}
- '@docsearch/sidepanel-js@4.5.3':
- resolution: {integrity: sha512-DmcZYc1ZMMcabtKrCU2RIf1z09LwazKCyoPFU/ijJiBg2LdqMLmkyDKHGy1OIYEyUx4ok5RIbkVGaRfD55BqZQ==}
+ '@docsearch/sidepanel-js@4.6.0':
+ resolution: {integrity: sha512-lFT5KLwlzUmpoGArCScNoK41l9a22JYsEPwBzMrz+/ILVR5Ax87UphCuiyDFQWEvEmbwzn/kJx5W/O5BUlN1Rw==}
'@dxup/nuxt@0.3.2':
resolution: {integrity: sha512-2f2usP4oLNsIGjPprvABe3f3GWuIhIDp0169pGLFxTDRI5A4d4sBbGpR+tD9bGZCT+1Btb6Q2GKlyv3LkDCW5g==}
@@ -4395,10 +4395,6 @@
resolution: {integrity: sha512-yzMTt9lEb8Gv7zRioUilSglI0c0smZ9k5D65677DLWLtWJaXIS3CqcGyUFByYKlnUj6TkjLVs54fBl6+TiGQDQ==}
engines: {node: 20 || >=22}
- '@isaacs/brace-expansion@5.0.0':
- resolution: {integrity: sha512-ZT55BDLV0yv0RBm2czMiZ+SqCGO7AvmOM3G/w2xhVPH+te0aKgFjmBvGlL1dH+ql2tgGO3MVrbb3jCKyvpgnxA==}
- engines: {node: 20 || >=22}
-
'@isaacs/brace-expansion@5.0.1':
resolution: {integrity: sha512-WMz71T1JS624nWj2n2fnYAuPovhv7EUhk69R6i9dsVyzxt5eM3bjwvgk9L+APE1TRscGysAVMANkB0jh0LQZrQ==}
engines: {node: 20 || >=22}
@@ -5152,28 +5148,28 @@
'@opencode-ai/sdk@1.2.27':
resolution: {integrity: sha512-Wk0o/I+Fo+wE3zgvlJDs8Fb67KlKqX0PrV8dK5adSDkANq6r4Z25zXJg2iOir+a8ntg3rAcpel1OY4FV/TwRUA==}
- '@orpc/client@1.13.4':
- resolution: {integrity: sha512-s13GPMeoooJc5Th2EaYT5HMFtWG8S03DUVytYfJv8pIhP87RYKl94w52A36denH6r/B4LaAgBeC9nTAOslK+Og==}
+ '@orpc/client@1.13.9':
+ resolution: {integrity: sha512-RmD2HDgmGgF6zgHHdybE4zH6QJoHjC+/C3n56yLf+fmWbiZtwnOUETgGCroY6S8aK2fpy6hJ3wZaJUjfWVuGHg==}
- '@orpc/contract@1.13.4':
- resolution: {integrity: sha512-TIxyaF67uOlihCRcasjHZxguZpbqfNK7aMrDLnhoufmQBE4OKvguNzmrOFHgsuM0OXoopX0Nuhun1ccaxKP10A==}
+ '@orpc/contract@1.13.9':
+ resolution: {integrity: sha512-0zxMyF82pxE8DwHzarCsCtOHQK96PE23qubMMBkxkP0XTtLJ7f8aYhrG8F16pNApypmTHiRlQlqNX8VXNViMqQ==}
- '@orpc/shared@1.13.4':
- resolution: {integrity: sha512-TYt9rLG/BUkNQBeQ6C1tEiHS/Seb8OojHgj9GlvqyjHJhMZx5qjsIyTW6RqLPZJ4U2vgK6x4Her36+tlFCKJug==}
+ '@orpc/shared@1.13.9':
+ resolution: {integrity: sha512-gpMY2e9jDsSyikh4DjBCO2Cs0wGj2I6xo2juIcmogYK5ecsTGO/U5huIftQn+2NUMk1cItwmykJBwc4pqHWVHw==}
peerDependencies:
'@opentelemetry/api': '>=1.9.0'
peerDependenciesMeta:
'@opentelemetry/api':
optional: true
- '@orpc/standard-server-fetch@1.13.4':
- resolution: {integrity: sha512-/zmKwnuxfAXbppJpgr1CMnQX3ptPlYcDzLz1TaVzz9VG/Xg58Ov3YhabS2Oi1utLVhy5t4kaCppUducAvoKN+A==}
+ '@orpc/standard-server-fetch@1.13.9':
+ resolution: {integrity: sha512-/dJmHO+EVONyvmX3CFZkRjlRHeBfq0+6nnpFIVueGo4fNUbtQc+qurKEtpQqPxL/b7GSehskNH21XKLE0IE0gQ==}
- '@orpc/standard-server-peer@1.13.4':
- resolution: {integrity: sha512-UfqnTLqevjCKUk4cmImOG8cQUwANpV1dp9e9u2O1ki6BRBsg/zlXFg6G2N6wP0zr9ayIiO1d2qJdH55yl/1BNw==}
+ '@orpc/standard-server-peer@1.13.9':
+ resolution: {integrity: sha512-r8hSykxNIKwXSMuLYWBxQx1c3DU8b6nU8V76DZhtwC5g1SLYIzw+dzT/EgHplOfmsFeyodiEDXXX1k/twRLuzw==}
- '@orpc/standard-server@1.13.4':
- resolution: {integrity: sha512-ZOzgfVp6XUg+wVYw+gqesfRfGPtQbnBIrIiSnFMtZF+6ncmFJeF2Shc4RI2Guqc0Qz25juy8Ogo4tX3YqysOcg==}
+ '@orpc/standard-server@1.13.9':
+ resolution: {integrity: sha512-dwsky7CScgOaDBa7CBF85aPGk/3UoB4fJjitVghb/sZD0Nt+CGIeiPHMsjEgxw5rJwgawMWLI5KxFH9euAJlWw==}
'@oxc-minify/binding-android-arm-eabi@0.110.0':
resolution: {integrity: sha512-43fMTO8/5bMlqfOiNSZNKUzIqeLIYuB9Hr1Ohyf58B1wU11S2dPGibTXOGNaWsfgHy99eeZ1bSgeIHy/fEYqbw==}
@@ -7135,26 +7131,26 @@
resolution: {integrity: sha512-OEd7RYlSwmq4zpaHPOnf+yyzWN6aON4RrA+Dd3PGo5JPBY8G5peofQpJZDwxdJJKPOvqU0C7aZ8LeL2CE2XTdA==}
hasBin: true
- '@shikijs/core@3.22.0':
- resolution: {integrity: sha512-iAlTtSDDbJiRpvgL5ugKEATDtHdUVkqgHDm/gbD2ZS9c88mx7G1zSYjjOxp5Qa0eaW0MAQosFRmJSk354PRoQA==}
+ '@shikijs/core@3.23.0':
+ resolution: {integrity: sha512-NSWQz0riNb67xthdm5br6lAkvpDJRTgB36fxlo37ZzM2yq0PQFFzbd8psqC2XMPgCzo1fW6cVi18+ArJ44wqgA==}
- '@shikijs/engine-javascript@3.22.0':
- resolution: {integrity: sha512-jdKhfgW9CRtj3Tor0L7+yPwdG3CgP7W+ZEqSsojrMzCjD1e0IxIbwUMDDpYlVBlC08TACg4puwFGkZfLS+56Tw==}
+ '@shikijs/engine-javascript@3.23.0':
+ resolution: {integrity: sha512-aHt9eiGFobmWR5uqJUViySI1bHMqrAgamWE1TYSUoftkAeCCAiGawPMwM+VCadylQtF4V3VNOZ5LmfItH5f3yA==}
- '@shikijs/engine-oniguruma@3.22.0':
- resolution: {integrity: sha512-DyXsOG0vGtNtl7ygvabHd7Mt5EY8gCNqR9Y7Lpbbd/PbJvgWrqaKzH1JW6H6qFkuUa8aCxoiYVv8/YfFljiQxA==}
+ '@shikijs/engine-oniguruma@3.23.0':
+ resolution: {integrity: sha512-1nWINwKXxKKLqPibT5f4pAFLej9oZzQTsby8942OTlsJzOBZ0MWKiwzMsd+jhzu8YPCHAswGnnN1YtQfirL35g==}
- '@shikijs/langs@3.22.0':
- resolution: {integrity: sha512-x/42TfhWmp6H00T6uwVrdTJGKgNdFbrEdhaDwSR5fd5zhQ1Q46bHq9EO61SCEWJR0HY7z2HNDMaBZp8JRmKiIA==}
+ '@shikijs/langs@3.23.0':
+ resolution: {integrity: sha512-2Ep4W3Re5aB1/62RSYQInK9mM3HsLeB91cHqznAJMuylqjzNVAVCMnNWRHFtcNHXsoNRayP9z1qj4Sq3nMqYXg==}
- '@shikijs/themes@3.22.0':
- resolution: {integrity: sha512-o+tlOKqsr6FE4+mYJG08tfCFDS+3CG20HbldXeVoyP+cYSUxDhrFf3GPjE60U55iOkkjbpY2uC3It/eeja35/g==}
+ '@shikijs/themes@3.23.0':
+ resolution: {integrity: sha512-5qySYa1ZgAT18HR/ypENL9cUSGOeI2x+4IvYJu4JgVJdizn6kG4ia5Q1jDEOi7gTbN4RbuYtmHh0W3eccOrjMA==}
- '@shikijs/transformers@3.22.0':
- resolution: {integrity: sha512-E7eRV7mwDBjueLF6852n2oYeJYxBq3NSsDk+uyruYAXONv4U8holGmIrT+mPRJQ1J1SNOH6L8G19KRzmBawrFw==}
+ '@shikijs/transformers@3.23.0':
+ resolution: {integrity: sha512-F9msZVxdF+krQNSdQ4V+Ja5QemeAoTQ2jxt7nJCwhDsdF1JWS3KxIQXA3lQbyKwS3J61oHRUSv4jYWv3CkaKTQ==}
- '@shikijs/types@3.22.0':
- resolution: {integrity: sha512-491iAekgKDBFE67z70Ok5a8KBMsQ2IJwOWw3us/7ffQkIBCyOQfm/aNwVMBUriP02QshIfgHCBSIYAl3u2eWjg==}
+ '@shikijs/types@3.23.0':
+ resolution: {integrity: sha512-3JZ5HXOZfYjsYSk0yPwBrkupyYSLpAE26Qc0HLghhZNGTZg/SKxXIIgoxOpmmeQP0RRSDJTk1/vPfw9tbw+jSQ==}
'@shikijs/vscode-textmate@10.0.2':
resolution: {integrity: sha512-83yeghZ2xxin3Nj8z1NMd/NCuca+gsYXswywDy5bHvwlWL8tpTQmzGeUuHd9FC3E/SBEMvzJRwWEOz5gGes9Qg==}
@@ -8328,19 +8324,19 @@
vue:
optional: true
- '@vueuse/core@14.1.0':
- resolution: {integrity: sha512-rgBinKs07hAYyPF834mDTigH7BtPqvZ3Pryuzt1SD/lg5wEcWqvwzXXYGEDb2/cP0Sj5zSvHl3WkmMELr5kfWw==}
+ '@vueuse/core@14.2.1':
+ resolution: {integrity: sha512-3vwDzV+GDUNpdegRY6kzpLm4Igptq+GA0QkJ3W61Iv27YWwW/ufSlOfgQIpN6FZRMG0mkaz4gglJRtq5SeJyIQ==}
peerDependencies:
vue: ^3.5.0
- '@vueuse/integrations@14.1.0':
- resolution: {integrity: sha512-eNQPdisnO9SvdydTIXnTE7c29yOsJBD/xkwEyQLdhDC/LKbqrFpXHb3uS//7NcIrQO3fWVuvMGp8dbK6mNEMCA==}
+ '@vueuse/integrations@14.2.1':
+ resolution: {integrity: sha512-2LIUpBi/67PoXJGqSDQUF0pgQWpNHh7beiA+KG2AbybcNm+pTGWT6oPGlBgUoDWmYwfeQqM/uzOHqcILpKL7nA==}
peerDependencies:
async-validator: ^4
axios: ^1
change-case: ^5
drauu: ^0.4
- focus-trap: ^7
+ focus-trap: ^7 || ^8
fuse.js: ^7
idb-keyval: ^6
jwt-decode: ^4
@@ -8375,11 +8371,11 @@
universal-cookie:
optional: true
- '@vueuse/metadata@14.1.0':
- resolution: {integrity: sha512-7hK4g015rWn2PhKcZ99NyT+ZD9sbwm7SGvp7k+k+rKGWnLjS/oQozoIZzWfCewSUeBmnJkIb+CNr7Zc/EyRnnA==}
+ '@vueuse/metadata@14.2.1':
+ resolution: {integrity: sha512-1ButlVtj5Sb/HDtIy1HFr1VqCP4G6Ypqt5MAo0lCgjokrk2mvQKsK2uuy0vqu/Ks+sHfuHo0B9Y9jn9xKdjZsw==}
- '@vueuse/shared@14.1.0':
- resolution: {integrity: sha512-EcKxtYvn6gx1F8z9J5/rsg3+lTQnvOruQd8fUecW99DCK04BkWD7z5KQ/wTAx+DazyoEE9dJt/zV8OIEQbM6kw==}
+ '@vueuse/shared@14.2.1':
+ resolution: {integrity: sha512-shTJncjV9JTI4oVNyF1FQonetYAiTBd+Qj7cY89SWbXSkx7gyhrgtEdF2ZAVWS1S3SHlaROO6F2IesJxQEkZBw==}
peerDependencies:
vue: ^3.5.0
@@ -8821,6 +8817,10 @@
balanced-match@1.0.2:
resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==}
+ balanced-match@4.0.4:
+ resolution: {integrity: sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==}
+ engines: {node: 18 || 20 || >=22}
+
bare-events@2.6.1:
resolution: {integrity: sha512-AuTJkq9XmE6Vk0FJVNq5QxETrSA/vKHarWVBG5l/JbdCL1prJemiyJqUS0jrlXO0MftuPq4m3YVYhoNc5+aE/g==}
@@ -8890,6 +8890,10 @@
brace-expansion@2.0.2:
resolution: {integrity: sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==}
+
+ brace-expansion@5.0.4:
+ resolution: {integrity: sha512-h+DEnpVvxmfVefa4jFbCf5HdH5YMDXRsmKflpf1pILZWRFlTbJpxeU55nJl4Smt5HQaGzg1o6RHFPJaOqnmBDg==}
+ engines: {node: 18 || 20 || >=22}
braces@3.0.3:
resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==}
@@ -11828,8 +11832,8 @@
resolution: {integrity: sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==}
engines: {node: '>= 0.4'}
- mdast-util-from-markdown@2.0.2:
- resolution: {integrity: sha512-uZhTV/8NBuw0WHkPTrCqDOl0zVe1BIng5ZtHoDk49ME1qqcjYmmLmOf0gELgcRMxN4w2iuIeVso5/6QymSrgmA==}
+ mdast-util-from-markdown@2.0.3:
+ resolution: {integrity: sha512-W4mAWTvSlKvf8L6J+VN9yLSqQ9AOAAvHuoDAmPkz4dHf553m5gVj2ejadHJhoJmcmxEnOv6Pa8XJhpxE93kb8Q==}
mdast-util-frontmatter@2.0.1:
resolution: {integrity: sha512-LRqI9+wdgC25P0URIJY9vwocIzCcksduHQ9OF2joxQoyTNVduwLAFUzjoopuRJbJAReaKrNQKAZKL3uCMugWJA==}
@@ -12029,13 +12033,13 @@
minimalistic-assert@1.0.1:
resolution: {integrity: sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==}
- minimatch@10.1.1:
- resolution: {integrity: sha512-enIvLvRAFZYXJzkCYG5RKmPfrFArdLv+R+lbQ53BmIMLIry74bjKzX6iHAm8WYamJkhSSEabrWN5D97XnKObjQ==}
- engines: {node: 20 || >=22}
-
minimatch@10.1.2:
resolution: {integrity: sha512-fu656aJ0n2kcXwsnwnv9g24tkU5uSmOlTjd6WyyaKm2Z+h1qmY6bAjrcaIxF/BslFqbZ8UBtbJi7KgQOZD2PTw==}
engines: {node: 20 || >=22}
+
+ minimatch@10.2.4:
+ resolution: {integrity: sha512-oRjTw/97aTBN0RHbYCdtF1MQfvusSIBQM0IZEgzl6426+8jSC0nF1a/GmnVLpfB9yyr6g6FTqWqiZVbxrtaCIg==}
+ engines: {node: 18 || 20 || >=22}
minimatch@3.1.2:
resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==}
@@ -12571,8 +12575,8 @@
oniguruma-parser@0.12.1:
resolution: {integrity: sha512-8Unqkvk1RYc6yq2WBYRj4hdnsAxVze8i7iPfQr8e4uSP3tRv0rpZcbGUDvxfQQcdwHt/e9PrMvGCsa8OqG9X3w==}
- oniguruma-to-es@4.3.4:
- resolution: {integrity: sha512-3VhUGN3w2eYxnTzHn+ikMI+fp/96KoRSVK9/kMTcFqj1NRDh2IhQCKvYxDnWePKRXY/AqH+Fuiyb7VHSzBjHfA==}
+ oniguruma-to-es@4.3.5:
+ resolution: {integrity: sha512-Zjygswjpsewa0NLTsiizVuMQZbp0MDyM6lIt66OxsF21npUDlzpHi1Mgb/qhQdkb+dWFTzJmFbEWdvZgRho8eQ==}
open@10.2.0:
resolution: {integrity: sha512-YgBpdJHPyQ2UE5x+hlSXcnejzAvD0b22U2OuAP+8OnlJT+PjWPxtgmGqKKc+RgTM63U9gN0YzrYc71R2WT/hTA==}
@@ -13517,8 +13521,8 @@
regex-utilities@2.3.0:
resolution: {integrity: sha512-8VhliFJAWRaUiVvREIiW2NXXTmHs4vMNnSzuJVhscgmGav3g9VDxLrQndI3dZZVVdp0ZO/5v0xmX516/7M9cng==}
- regex@6.0.1:
- resolution: {integrity: sha512-uorlqlzAKjKQZ5P+kTJr3eeJGSVroLKoHmquUj4zHWuR+hEyNqlXsSKlYYF5F4NI6nl7tWCs0apKJ0lmfsXAPA==}
+ regex@6.1.0:
+ resolution: {integrity: sha512-6VwtthbV4o/7+OaAF9I5L5V3llLEsoPyq9P1JVXkedTP33c7MfCG0/5NOPcSJn0TzXcG9YUrR0gQSWioew3LDg==}
regexp-tree@0.1.27:
resolution: {integrity: sha512-iETxpjK6YoRWJG5o6hXLwvjYAoW+FEZn9os0PD/b6AP6xQwsa/Y7lCVgIixBbUPMfhu+i2LtdeAqVTgGlQarfA==}
@@ -13939,8 +13943,8 @@
resolution: {integrity: sha512-ObmnIF4hXNg1BqhnHmgbDETF8dLPCggZWBjkQfhZpbszZnYur5DUljTcCHii5LC3J5E0yeO/1LIMyH+UvHQgyw==}
engines: {node: '>= 0.4'}
- shiki@3.22.0:
- resolution: {integrity: sha512-LBnhsoYEe0Eou4e1VgJACes+O6S6QC0w71fCSp5Oya79inkwkm15gQ1UF6VtQ8j/taMDh79hAB49WUk8ALQW3g==}
+ shiki@3.23.0:
+ resolution: {integrity: sha512-55Dj73uq9ZXL5zyeRPzHQsK7Nbyt6Y10k5s7OjuFZGMhpp4r/rsLBH0o/0fstIzX1Lep9VxefWljK/SKCzygIA==}
side-channel-list@1.0.0:
resolution: {integrity: sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==}
@@ -14516,8 +14520,8 @@
resolution: {integrity: sha512-dRXchy+C0IgK8WPC6xvCHFRIWYUbqqdEIKPaKo/AcTUNzwLTK6AH7RjdLWsEZcAN/TBdtfUw3PYEgPr5VPr6ww==}
engines: {node: '>=14.16'}
- tokenx@1.2.1:
- resolution: {integrity: sha512-lVhFIhR2qh3uUyUA8Ype+HGzcokUJbHmRSN1TJKOe4Y26HkawQuLiGkUCkR5LD9dx+Rtp+njrwzPL8AHHYQSYA==}
+ tokenx@1.3.0:
+ resolution: {integrity: sha512-NLdXTEZkKiO0gZuLtMoZKjCXTREXeZZt8nnnNeyoXtNZAfG/GKGSbQtLU5STspc0rMSwcA+UJfWZkbNU01iKmQ==}
toml@3.0.0:
resolution: {integrity: sha512-y/mWCZinnvxjTKYhJ+pYxwD0mRLVvOtdS2Awbgxln6iEnt4rk0yBxeSBHkGJcPucRiG0e55mwWp+g/05rsrd6w==}
@@ -14706,6 +14710,10 @@
type-fest@5.4.3:
resolution: {integrity: sha512-AXSAQJu79WGc79/3e9/CR77I/KQgeY1AhNvcShIH4PTcGYyC4xv6H4R4AUOwkPS5799KlVDAu8zExeCrkGquiA==}
+ engines: {node: '>=20'}
+
+ type-fest@5.5.0:
+ resolution: {integrity: sha512-PlBfpQwiUvGViBNX84Yxwjsdhd1TUlXr6zjX7eoirtCPIr08NAmxwa+fcYBTeRQxHo9YC9wwF3m9i700sHma8g==}
engines: {node: '>=20'}
type-is@1.6.18:
@@ -14909,8 +14917,8 @@
unist-util-visit-parents@6.0.1:
resolution: {integrity: sha512-L/PqWzfTP9lzzEa6CKs0k2nARxTdZduw3zyh8d2NVBnsyvHjSX4TWse388YrrQKbvI8w20fGjGlhgT96WwKykw==}
- unist-util-visit@5.0.0:
- resolution: {integrity: sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==}
+ unist-util-visit@5.1.0:
+ resolution: {integrity: sha512-m+vIdyeCOpdr/QeQCu2EzxX/ohgS8KbnPDgFni4dQsfSCtpz8UqDyY5GjRru8PDKuYn7Fq19j1CQ+nJSsGKOzg==}
universalify@0.1.2:
resolution: {integrity: sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==}
@@ -15483,8 +15491,9 @@
vite:
optional: true
- vitepress-plugin-llms@1.11.0:
- resolution: {integrity: sha512-n6fjWzBNKy40p8cij+d2cHiC2asNW1eQKdmc06gX9VAv7vWppIoVLH/f7Ht1bK0vSpGzzW2QimvNfbfv1oCdJw==}
+ vitepress-plugin-llms@1.12.0:
+ resolution: {integrity: sha512-zuzL7a8UJuGl46le5cAy/QxKMGlpSylcsLjDDn6BYPc1u+eP3nzoQk9ne9XFBqrE7exoJlIYJELVN8HMgYlFKQ==}
+ engines: {node: '>=18.0.0'}
vitepress@2.0.0-alpha.16:
resolution: {integrity: sha512-w1nwsefDVIsje7BZr2tsKxkZutDGjG0YoQ2yxO7+a9tvYVqfljYbwj5LMYkPy8Tb7YbPwa22HtIhk62jbrvuEQ==}
@@ -18021,11 +18030,11 @@
'@discoveryjs/json-ext@0.6.3': {}
- '@docsearch/css@4.5.3': {}
+ '@docsearch/css@4.6.0': {}
- '@docsearch/js@4.5.3': {}
+ '@docsearch/js@4.6.0': {}
- '@docsearch/sidepanel-js@4.5.3': {}
+ '@docsearch/sidepanel-js@4.6.0': {}
'@dxup/nuxt@0.3.2(magicast@0.5.2)':
dependencies:
@@ -19122,10 +19131,6 @@
'@isaacs/balanced-match@4.0.1': {}
- '@isaacs/brace-expansion@5.0.0':
- dependencies:
- '@isaacs/balanced-match': 4.0.1
-
'@isaacs/brace-expansion@5.0.1':
dependencies:
'@isaacs/balanced-match': 4.0.1
@@ -19798,6 +19803,15 @@
'@nuxt/devalue@2.0.2': {}
+ '@nuxt/devtools-kit@1.7.0(magicast@0.3.5)(vite@5.4.19(@types/node@25.2.1)(less@4.4.2)(sass@1.97.1)(terser@5.44.1))':
+ dependencies:
+ '@nuxt/kit': 3.21.0(magicast@0.3.5)
+ '@nuxt/schema': 3.16.2
+ execa: 7.2.0
+ vite: 5.4.19(@types/node@25.2.1)(less@4.4.2)(sass@1.97.1)(terser@5.44.1)
+ transitivePeerDependencies:
+ - magicast
+
'@nuxt/devtools-kit@1.7.0(magicast@0.3.5)(vite@7.3.1(@types/node@25.2.1)(jiti@2.6.1)(less@4.4.2)(sass@1.97.1)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2))':
dependencies:
'@nuxt/kit': 3.21.0(magicast@0.3.5)
@@ -19885,6 +19899,53 @@
vite: 7.3.1(@types/node@25.2.1)(jiti@2.6.1)(less@4.4.2)(sass@1.97.1)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2)
vite-plugin-inspect: 0.8.9(@nuxt/kit@3.21.0(magicast@0.3.5))(rollup@3.29.5)(vite@7.3.1(@types/node@25.2.1)(jiti@2.6.1)(less@4.4.2)(sass@1.97.1)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2))
vite-plugin-vue-inspector: 5.3.2(vite@7.3.1(@types/node@25.2.1)(jiti@2.6.1)(less@4.4.2)(sass@1.97.1)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2))
+ which: 3.0.1
+ ws: 8.18.3
+ transitivePeerDependencies:
+ - bufferutil
+ - rollup
+ - supports-color
+ - utf-8-validate
+ - vue
+
+ '@nuxt/devtools@1.7.0(rollup@4.56.0)(vite@5.4.19(@types/node@25.2.1)(less@4.4.2)(sass@1.97.1)(terser@5.44.1))(vue@3.5.25(typescript@5.9.3))':
+ dependencies:
+ '@antfu/utils': 0.7.10
+ '@nuxt/devtools-kit': 1.7.0(magicast@0.3.5)(vite@5.4.19(@types/node@25.2.1)(less@4.4.2)(sass@1.97.1)(terser@5.44.1))
+ '@nuxt/devtools-wizard': 1.7.0
+ '@nuxt/kit': 3.21.0(magicast@0.3.5)
+ '@vue/devtools-core': 7.6.8(vite@5.4.19(@types/node@25.2.1)(less@4.4.2)(sass@1.97.1)(terser@5.44.1))(vue@3.5.25(typescript@5.9.3))
+ '@vue/devtools-kit': 7.6.8
+ birpc: 0.2.19
+ consola: 3.4.2
+ cronstrue: 2.59.0
+ destr: 2.0.5
+ error-stack-parser-es: 0.1.5
+ execa: 7.2.0
+ fast-npm-meta: 0.2.2
+ flatted: 3.3.3
+ get-port-please: 3.2.0
+ hookable: 5.5.3
+ image-meta: 0.2.1
+ is-installed-globally: 1.0.0
+ launch-editor: 2.11.1
+ local-pkg: 0.5.1
+ magicast: 0.3.5
+ nypm: 0.4.1
+ ohash: 1.1.6
+ pathe: 1.1.2
+ perfect-debounce: 1.0.0
+ pkg-types: 1.3.1
+ rc9: 2.1.2
+ scule: 1.3.0
+ semver: 7.7.3
+ simple-git: 3.28.0
+ sirv: 3.0.2
+ tinyglobby: 0.2.15
+ unimport: 3.14.6(rollup@4.56.0)
+ vite: 5.4.19(@types/node@25.2.1)(less@4.4.2)(sass@1.97.1)(terser@5.44.1)
+ vite-plugin-inspect: 0.8.9(@nuxt/kit@3.21.0(magicast@0.3.5))(rollup@4.56.0)(vite@5.4.19(@types/node@25.2.1)(less@4.4.2)(sass@1.97.1)(terser@5.44.1))
+ vite-plugin-vue-inspector: 5.3.2(vite@5.4.19(@types/node@25.2.1)(less@4.4.2)(sass@1.97.1)(terser@5.44.1))
which: 3.0.1
ws: 8.18.3
transitivePeerDependencies:
@@ -20601,46 +20662,46 @@
'@opencode-ai/sdk@1.2.27': {}
- '@orpc/client@1.13.4':
+ '@orpc/client@1.13.9':
dependencies:
- '@orpc/shared': 1.13.4
- '@orpc/standard-server': 1.13.4
- '@orpc/standard-server-fetch': 1.13.4
- '@orpc/standard-server-peer': 1.13.4
+ '@orpc/shared': 1.13.9
+ '@orpc/standard-server': 1.13.9
+ '@orpc/standard-server-fetch': 1.13.9
+ '@orpc/standard-server-peer': 1.13.9
transitivePeerDependencies:
- '@opentelemetry/api'
- '@orpc/contract@1.13.4':
+ '@orpc/contract@1.13.9':
dependencies:
- '@orpc/client': 1.13.4
- '@orpc/shared': 1.13.4
+ '@orpc/client': 1.13.9
+ '@orpc/shared': 1.13.9
'@standard-schema/spec': 1.1.0
openapi-types: 12.1.3
transitivePeerDependencies:
- '@opentelemetry/api'
- '@orpc/shared@1.13.4':
+ '@orpc/shared@1.13.9':
dependencies:
radash: 12.1.1
- type-fest: 5.4.3
+ type-fest: 5.5.0
- '@orpc/standard-server-fetch@1.13.4':
+ '@orpc/standard-server-fetch@1.13.9':
dependencies:
- '@orpc/shared': 1.13.4
- '@orpc/standard-server': 1.13.4
+ '@orpc/shared': 1.13.9
+ '@orpc/standard-server': 1.13.9
transitivePeerDependencies:
- '@opentelemetry/api'
- '@orpc/standard-server-peer@1.13.4':
+ '@orpc/standard-server-peer@1.13.9':
dependencies:
- '@orpc/shared': 1.13.4
- '@orpc/standard-server': 1.13.4
+ '@orpc/shared': 1.13.9
+ '@orpc/standard-server': 1.13.9
transitivePeerDependencies:
- '@opentelemetry/api'
- '@orpc/standard-server@1.13.4':
+ '@orpc/standard-server@1.13.9':
dependencies:
- '@orpc/shared': 1.13.4
+ '@orpc/shared': 1.13.9
transitivePeerDependencies:
- '@opentelemetry/api'
@@ -22147,38 +22208,38 @@
ajv-formats: 3.0.1(ajv@8.17.1)
js-yaml: 4.1.1
- '@shikijs/core@3.22.0':
+ '@shikijs/core@3.23.0':
dependencies:
- '@shikijs/types': 3.22.0
+ '@shikijs/types': 3.23.0
'@shikijs/vscode-textmate': 10.0.2
'@types/hast': 3.0.4
hast-util-to-html: 9.0.5
- '@shikijs/engine-javascript@3.22.0':
+ '@shikijs/engine-javascript@3.23.0':
dependencies:
- '@shikijs/types': 3.22.0
+ '@shikijs/types': 3.23.0
'@shikijs/vscode-textmate': 10.0.2
- oniguruma-to-es: 4.3.4
+ oniguruma-to-es: 4.3.5
- '@shikijs/engine-oniguruma@3.22.0':
+ '@shikijs/engine-oniguruma@3.23.0':
dependencies:
- '@shikijs/types': 3.22.0
+ '@shikijs/types': 3.23.0
'@shikijs/vscode-textmate': 10.0.2
- '@shikijs/langs@3.22.0':
+ '@shikijs/langs@3.23.0':
dependencies:
- '@shikijs/types': 3.22.0
+ '@shikijs/types': 3.23.0
- '@shikijs/themes@3.22.0':
+ '@shikijs/themes@3.23.0':
dependencies:
- '@shikijs/types': 3.22.0
+ '@shikijs/types': 3.23.0
- '@shikijs/transformers@3.22.0':
+ '@shikijs/transformers@3.23.0':
dependencies:
- '@shikijs/core': 3.22.0
- '@shikijs/types': 3.22.0
+ '@shikijs/core': 3.23.0
+ '@shikijs/types': 3.23.0
- '@shikijs/types@3.22.0':
+ '@shikijs/types@3.23.0':
dependencies:
'@shikijs/vscode-textmate': 10.0.2
'@types/hast': 3.0.4
@@ -23579,6 +23640,18 @@
dependencies:
'@vue/devtools-kit': 8.0.5
+ '@vue/devtools-core@7.6.8(vite@5.4.19(@types/node@25.2.1)(less@4.4.2)(sass@1.97.1)(terser@5.44.1))(vue@3.5.25(typescript@5.9.3))':
+ dependencies:
+ '@vue/devtools-kit': 7.7.7
+ '@vue/devtools-shared': 7.7.7
+ mitt: 3.0.1
+ nanoid: 5.1.5
+ pathe: 1.1.2
+ vite-hot-client: 0.2.4(vite@5.4.19(@types/node@25.2.1)(less@4.4.2)(sass@1.97.1)(terser@5.44.1))
+ vue: 3.5.25(typescript@5.9.3)
+ transitivePeerDependencies:
+ - vite
+
'@vue/devtools-core@7.6.8(vite@7.3.1(@types/node@25.2.1)(jiti@2.6.1)(less@4.4.2)(sass@1.97.1)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2))(vue@3.5.25(typescript@5.9.3))':
dependencies:
'@vue/devtools-kit': 7.7.7
@@ -23800,17 +23873,17 @@
typescript: 5.9.3
vue: 3.5.13(typescript@5.9.3)
- '@vueuse/core@14.1.0(vue@3.5.27(typescript@5.9.3))':
+ '@vueuse/core@14.2.1(vue@3.5.27(typescript@5.9.3))':
dependencies:
'@types/web-bluetooth': 0.0.21
- '@vueuse/metadata': 14.1.0
- '@vueuse/shared': 14.1.0(vue@3.5.27(typescript@5.9.3))
+ '@vueuse/metadata': 14.2.1
+ '@vueuse/shared': 14.2.1(vue@3.5.27(typescript@5.9.3))
vue: 3.5.27(typescript@5.9.3)
- '@vueuse/integrations@14.1.0(axios@1.13.4)(focus-trap@7.8.0)(fuse.js@7.1.0)(jwt-decode@4.0.0)(vue@3.5.27(typescript@5.9.3))':
+ '@vueuse/integrations@14.2.1(axios@1.13.4)(focus-trap@7.8.0)(fuse.js@7.1.0)(jwt-decode@4.0.0)(vue@3.5.27(typescript@5.9.3))':
dependencies:
- '@vueuse/core': 14.1.0(vue@3.5.27(typescript@5.9.3))
- '@vueuse/shared': 14.1.0(vue@3.5.27(typescript@5.9.3))
+ '@vueuse/core': 14.2.1(vue@3.5.27(typescript@5.9.3))
+ '@vueuse/shared': 14.2.1(vue@3.5.27(typescript@5.9.3))
vue: 3.5.27(typescript@5.9.3)
optionalDependencies:
axios: 1.13.4
@@ -23818,9 +23891,9 @@
fuse.js: 7.1.0
jwt-decode: 4.0.0
- '@vueuse/metadata@14.1.0': {}
+ '@vueuse/metadata@14.2.1': {}
- '@vueuse/shared@14.1.0(vue@3.5.27(typescript@5.9.3))':
+ '@vueuse/shared@14.2.1(vue@3.5.27(typescript@5.9.3))':
dependencies:
vue: 3.5.27(typescript@5.9.3)
@@ -24353,6 +24426,8 @@
balanced-match@1.0.2: {}
+ balanced-match@4.0.4: {}
+
bare-events@2.6.1:
optional: true
@@ -24445,6 +24520,10 @@
brace-expansion@2.0.2:
dependencies:
balanced-match: 1.0.2
+
+ brace-expansion@5.0.4:
+ dependencies:
+ balanced-match: 4.0.4
braces@3.0.3:
dependencies:
@@ -28028,7 +28107,7 @@
math-intrinsics@1.1.0: {}
- mdast-util-from-markdown@2.0.2:
+ mdast-util-from-markdown@2.0.3:
dependencies:
'@types/mdast': 4.0.4
'@types/unist': 3.0.3
@@ -28050,7 +28129,7 @@
'@types/mdast': 4.0.4
devlop: 1.1.0
escape-string-regexp: 5.0.0
- mdast-util-from-markdown: 2.0.2
+ mdast-util-from-markdown: 2.0.3
mdast-util-to-markdown: 2.1.2
micromark-extension-frontmatter: 2.0.0
transitivePeerDependencies:
@@ -28070,7 +28149,7 @@
micromark-util-sanitize-uri: 2.0.1
trim-lines: 3.0.1
unist-util-position: 5.0.0
- unist-util-visit: 5.0.0
+ unist-util-visit: 5.1.0
vfile: 6.0.3
mdast-util-to-markdown@2.1.2:
@@ -28082,7 +28161,7 @@
mdast-util-to-string: 4.0.0
micromark-util-classify-character: 2.0.1
micromark-util-decode-string: 2.0.1
- unist-util-visit: 5.0.0
+ unist-util-visit: 5.1.0
zwitch: 2.0.4
mdast-util-to-string@4.0.0:
@@ -28317,13 +28396,13 @@
minimalistic-assert@1.0.1: {}
- minimatch@10.1.1:
- dependencies:
- '@isaacs/brace-expansion': 5.0.0
-
minimatch@10.1.2:
dependencies:
'@isaacs/brace-expansion': 5.0.1
+
+ minimatch@10.2.4:
+ dependencies:
+ brace-expansion: 5.0.4
minimatch@3.1.2:
dependencies:
@@ -28908,14 +28987,14 @@
nuxi@3.28.0: {}
- nuxt@3.14.1592(@netlify/blobs@9.1.2)(@parcel/watcher@2.5.1)(@types/node@25.2.1)(db0@0.3.2)(encoding@0.1.13)(eslint@9.39.2(jiti@2.6.1))(ioredis@5.7.0)(less@4.4.2)(magicast@0.3.5)(optionator@0.9.4)(rolldown@1.0.0-rc.9)(rollup@3.29.5)(sass@1.97.1)(terser@5.44.1)(typescript@5.9.3)(vite@7.3.1(@types/node@25.2.1)(jiti@2.6.1)(less@4.4.2)(sass@1.97.1)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2))(vue-tsc@3.2.4(typescript@5.9.3)):
+ nuxt@3.14.1592(@netlify/blobs@9.1.2)(@parcel/watcher@2.5.1)(@types/node@25.2.1)(db0@0.3.2)(encoding@0.1.13)(eslint@9.39.1(jiti@2.6.1))(ioredis@5.7.0)(less@4.4.2)(magicast@0.3.5)(optionator@0.9.4)(rolldown@1.0.0-rc.9)(rollup@4.56.0)(sass@1.97.1)(terser@5.44.1)(typescript@5.9.3)(vite@5.4.19(@types/node@25.2.1)(less@4.4.2)(sass@1.97.1)(terser@5.44.1))(vue-tsc@3.2.4(typescript@5.9.3)):
dependencies:
'@nuxt/devalue': 2.0.2
- '@nuxt/devtools': 1.7.0(rollup@3.29.5)(vite@7.3.1(@types/node@25.2.1)(jiti@2.6.1)(less@4.4.2)(sass@1.97.1)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2))(vue@3.5.25(typescript@5.9.3))
- '@nuxt/kit': 3.14.1592(magicast@0.3.5)(rollup@3.29.5)
- '@nuxt/schema': 3.14.1592(magicast@0.3.5)(rollup@3.29.5)
+ '@nuxt/devtools': 1.7.0(rollup@4.56.0)(vite@5.4.19(@types/node@25.2.1)(less@4.4.2)(sass@1.97.1)(terser@5.44.1))(vue@3.5.25(typescript@5.9.3))
+ '@nuxt/kit': 3.14.1592(magicast@0.3.5)(rollup@4.56.0)
+ '@nuxt/schema': 3.14.1592(magicast@0.3.5)(rollup@4.56.0)
'@nuxt/telemetry': 2.6.6(magicast@0.3.5)
- '@nuxt/vite-builder': 3.14.1592(@types/node@25.2.1)(eslint@9.39.2(jiti@2.6.1))(less@4.4.2)(magicast@0.3.5)(optionator@0.9.4)(rolldown@1.0.0-rc.9)(rollup@3.29.5)(sass@1.97.1)(terser@5.44.1)(typescript@5.9.3)(vue-tsc@3.2.4(typescript@5.9.3))(vue@3.5.25(typescript@5.9.3))
+ '@nuxt/vite-builder': 3.14.1592(@types/node@25.2.1)(eslint@9.39.1(jiti@2.6.1))(less@4.4.2)(magicast@0.3.5)(optionator@0.9.4)(rolldown@1.0.0-rc.9)(rollup@4.56.0)(sass@1.97.1)(terser@5.44.1)(typescript@5.9.3)(vue-tsc@3.2.4(typescript@5.9.3))(vue@3.5.25(typescript@5.9.3))
'@unhead/dom': 1.11.20
'@unhead/shared': 1.11.20
'@unhead/ssr': 1.11.20
@@ -28938,7 +29017,7 @@
h3: 1.15.4
hookable: 5.5.3
ignore: 6.0.2
- impound: 0.2.2(rollup@3.29.5)
+ impound: 0.2.2(rollup@4.56.0)
jiti: 2.6.1
klona: 2.0.6
knitwork: 1.3.0
@@ -28965,15 +29044,15 @@
unctx: 2.4.1
unenv: 1.10.0
unhead: 1.11.20
- unimport: 3.14.6(rollup@3.29.5)
+ unimport: 3.14.6(rollup@4.56.0)
unplugin: 1.16.1
- unplugin-vue-router: 0.10.9(rollup@3.29.5)(vue-router@4.5.0(vue@3.5.25(typescript@5.9.3)))(vue@3.5.25(typescript@5.9.3))
+ unplugin-vue-router: 0.10.9(rollup@4.56.0)(vue-router@4.5.0(vue@3.5.25(typescript@5.9.3)))(vue@3.5.25(typescript@5.9.3))
unstorage: 1.17.0(@netlify/blobs@9.1.2)(db0@0.3.2)(ioredis@5.7.0)
untyped: 1.5.2
vue: 3.5.25(typescript@5.9.3)
vue-bundle-renderer: 2.1.2
vue-devtools-stub: 0.1.0
- vue-router: 4.5.0(vue@3.5.13(typescript@5.9.3))
+ vue-router: 4.5.0(vue@3.5.25(typescript@5.9.3))
optionalDependencies:
'@parcel/watcher': 2.5.1
'@types/node': 25.2.1
@@ -29089,6 +29168,127 @@
unimport: 3.14.6(rollup@4.56.0)
unplugin: 1.16.1
unplugin-vue-router: 0.10.9(rollup@4.56.0)(vue-router@4.5.0(vue@3.5.25(typescript@5.9.3)))(vue@3.5.25(typescript@5.9.3))
+ unstorage: 1.17.0(@netlify/blobs@9.1.2)(db0@0.3.4)(ioredis@5.9.2)
+ untyped: 1.5.2
+ vue: 3.5.25(typescript@5.9.3)
+ vue-bundle-renderer: 2.1.2
+ vue-devtools-stub: 0.1.0
+ vue-router: 4.5.0(vue@3.5.25(typescript@5.9.3))
+ optionalDependencies:
+ '@parcel/watcher': 2.5.1
+ '@types/node': 25.2.1
+ transitivePeerDependencies:
+ - '@azure/app-configuration'
+ - '@azure/cosmos'
+ - '@azure/data-tables'
+ - '@azure/identity'
+ - '@azure/keyvault-secrets'
+ - '@azure/storage-blob'
+ - '@biomejs/biome'
+ - '@capacitor/preferences'
+ - '@deno/kv'
+ - '@electric-sql/pglite'
+ - '@libsql/client'
+ - '@netlify/blobs'
+ - '@planetscale/database'
+ - '@upstash/redis'
+ - '@vercel/blob'
+ - '@vercel/functions'
+ - '@vercel/kv'
+ - aws4fetch
+ - better-sqlite3
+ - bufferutil
+ - db0
+ - drizzle-orm
+ - encoding
+ - eslint
+ - idb-keyval
+ - ioredis
+ - less
+ - lightningcss
+ - magicast
+ - meow
+ - mysql2
+ - optionator
+ - rolldown
+ - rollup
+ - sass
+ - sass-embedded
+ - sqlite3
+ - stylelint
+ - stylus
+ - sugarss
+ - supports-color
+ - terser
+ - typescript
+ - uploadthing
+ - utf-8-validate
+ - vite
+ - vls
+ - vti
+ - vue-tsc
+ - xml2js
+
+ nuxt@3.14.1592(@netlify/blobs@9.1.2)(@parcel/watcher@2.5.1)(@types/node@25.2.1)(db0@0.3.4)(encoding@0.1.13)(eslint@9.39.2(jiti@2.6.1))(ioredis@5.9.2)(less@4.4.2)(magicast@0.3.5)(optionator@0.9.4)(rolldown@1.0.0-rc.9)(rollup@3.29.5)(sass@1.97.1)(terser@5.44.1)(typescript@5.9.3)(vite@7.3.1(@types/node@25.2.1)(jiti@2.6.1)(less@4.4.2)(sass@1.97.1)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2))(vue-tsc@3.2.4(typescript@5.9.3)):
+ dependencies:
+ '@nuxt/devalue': 2.0.2
+ '@nuxt/devtools': 1.7.0(rollup@3.29.5)(vite@7.3.1(@types/node@25.2.1)(jiti@2.6.1)(less@4.4.2)(sass@1.97.1)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2))(vue@3.5.25(typescript@5.9.3))
+ '@nuxt/kit': 3.14.1592(magicast@0.3.5)(rollup@3.29.5)
+ '@nuxt/schema': 3.14.1592(magicast@0.3.5)(rollup@3.29.5)
+ '@nuxt/telemetry': 2.6.6(magicast@0.3.5)
+ '@nuxt/vite-builder': 3.14.1592(@types/node@25.2.1)(eslint@9.39.2(jiti@2.6.1))(less@4.4.2)(magicast@0.3.5)(optionator@0.9.4)(rolldown@1.0.0-rc.9)(rollup@3.29.5)(sass@1.97.1)(terser@5.44.1)(typescript@5.9.3)(vue-tsc@3.2.4(typescript@5.9.3))(vue@3.5.25(typescript@5.9.3))
+ '@unhead/dom': 1.11.20
+ '@unhead/shared': 1.11.20
+ '@unhead/ssr': 1.11.20
+ '@unhead/vue': 1.11.20(vue@3.5.25(typescript@5.9.3))
+ '@vue/shared': 3.5.25
+ acorn: 8.14.0
+ c12: 2.0.1(magicast@0.3.5)
+ chokidar: 4.0.3
+ compatx: 0.1.8
+ consola: 3.4.2
+ cookie-es: 1.2.2
+ defu: 6.1.4
+ destr: 2.0.5
+ devalue: 5.3.2
+ errx: 0.1.0
+ esbuild: 0.24.2
+ escape-string-regexp: 5.0.0
+ estree-walker: 3.0.3
+ globby: 14.1.0
+ h3: 1.15.4
+ hookable: 5.5.3
+ ignore: 6.0.2
+ impound: 0.2.2(rollup@3.29.5)
+ jiti: 2.6.1
+ klona: 2.0.6
+ knitwork: 1.3.0
+ magic-string: 0.30.21
+ mlly: 1.8.0
+ nanotar: 0.1.1
+ nitropack: 2.12.4(@netlify/blobs@9.1.2)(encoding@0.1.13)(rolldown@1.0.0-rc.9)
+ nuxi: 3.28.0
+ nypm: 0.3.12
+ ofetch: 1.5.1
+ ohash: 1.1.6
+ pathe: 1.1.2
+ perfect-debounce: 1.0.0
+ pkg-types: 1.3.1
+ radix3: 1.1.2
+ scule: 1.3.0
+ semver: 7.7.3
+ std-env: 3.10.0
+ strip-literal: 2.1.1
+ tinyglobby: 0.2.10
+ ufo: 1.6.1
+ ultrahtml: 1.6.0
+ uncrypto: 0.1.3
+ unctx: 2.4.1
+ unenv: 1.10.0
+ unhead: 1.11.20
+ unimport: 3.14.6(rollup@3.29.5)
+ unplugin: 1.16.1
+ unplugin-vue-router: 0.10.9(rollup@3.29.5)(vue-router@4.5.0(vue@3.5.25(typescript@5.9.3)))(vue@3.5.25(typescript@5.9.3))
unstorage: 1.17.0(@netlify/blobs@9.1.2)(db0@0.3.4)(ioredis@5.9.2)
untyped: 1.5.2
vue: 3.5.25(typescript@5.9.3)
@@ -29529,10 +29729,10 @@
oniguruma-parser@0.12.1: {}
- oniguruma-to-es@4.3.4:
+ oniguruma-to-es@4.3.5:
dependencies:
oniguruma-parser: 0.12.1
- regex: 6.0.1
+ regex: 6.1.0
regex-recursion: 6.0.2
open@10.2.0:
@@ -30592,7 +30792,7 @@
regex-utilities@2.3.0: {}
- regex@6.0.1:
+ regex@6.1.0:
dependencies:
regex-utilities: 2.3.0
@@ -30634,7 +30834,7 @@
remark-parse@11.0.0:
dependencies:
'@types/mdast': 4.0.4
- mdast-util-from-markdown: 2.0.2
+ mdast-util-from-markdown: 2.0.3
micromark-util-types: 2.0.2
unified: 11.0.5
transitivePeerDependencies:
@@ -31178,14 +31378,14 @@
shell-quote@1.8.3: {}
- shiki@3.22.0:
+ shiki@3.23.0:
dependencies:
- '@shikijs/core': 3.22.0
- '@shikijs/engine-javascript': 3.22.0
- '@shikijs/engine-oniguruma': 3.22.0
- '@shikijs/langs': 3.22.0
- '@shikijs/themes': 3.22.0
- '@shikijs/types': 3.22.0
+ '@shikijs/core': 3.23.0
+ '@shikijs/engine-javascript': 3.23.0
+ '@shikijs/engine-oniguruma': 3.23.0
+ '@shikijs/langs': 3.23.0
+ '@shikijs/themes': 3.23.0
+ '@shikijs/types': 3.23.0
'@shikijs/vscode-textmate': 10.0.2
'@types/hast': 3.0.4
@@ -31945,7 +32145,7 @@
'@tokenizer/token': 0.3.0
ieee754: 1.2.1
- tokenx@1.2.1: {}
+ tokenx@1.3.0: {}
toml@3.0.0: {}
@@ -32130,6 +32330,10 @@
type-fest@4.41.0: {}
type-fest@5.4.3:
+ dependencies:
+ tagged-tag: 1.0.0
+
+ type-fest@5.5.0:
dependencies:
tagged-tag: 1.0.0
@@ -32465,7 +32669,7 @@
'@types/unist': 3.0.3
unist-util-is: 6.0.0
- unist-util-visit@5.0.0:
+ unist-util-visit@5.1.0:
dependencies:
'@types/unist': 3.0.3
unist-util-is: 6.0.0
@@ -32522,7 +32726,7 @@
unplugin: 2.0.0-beta.1
yaml: 2.8.2
optionalDependencies:
- vue-router: 4.5.0(vue@3.5.13(typescript@5.9.3))
+ vue-router: 4.5.0(vue@3.5.25(typescript@5.9.3))
transitivePeerDependencies:
- rollup
- vue
@@ -32828,6 +33032,10 @@
vite: 7.3.1(@types/node@25.2.1)(jiti@2.6.1)(less@4.4.2)(sass@1.97.1)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2)
vite-hot-client: 2.1.0(vite@7.3.1(@types/node@25.2.1)(jiti@2.6.1)(less@4.4.2)(sass@1.97.1)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2))
+ vite-hot-client@0.2.4(vite@5.4.19(@types/node@25.2.1)(less@4.4.2)(sass@1.97.1)(terser@5.44.1)):
+ dependencies:
+ vite: 5.4.19(@types/node@25.2.1)(less@4.4.2)(sass@1.97.1)(terser@5.44.1)
+
vite-hot-client@0.2.4(vite@7.3.1(@types/node@25.2.1)(jiti@2.6.1)(less@4.4.2)(sass@1.97.1)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2)):
dependencies:
vite: 7.3.1(@types/node@25.2.1)(jiti@2.6.1)(less@4.4.2)(sass@1.97.1)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2)
@@ -32959,6 +33167,24 @@
- rollup
- supports-color
+ vite-plugin-inspect@0.8.9(@nuxt/kit@3.21.0(magicast@0.3.5))(rollup@4.56.0)(vite@5.4.19(@types/node@25.2.1)(less@4.4.2)(sass@1.97.1)(terser@5.44.1)):
+ dependencies:
+ '@antfu/utils': 0.7.10
+ '@rollup/pluginutils': 5.2.0(rollup@4.56.0)
+ debug: 4.4.3
+ error-stack-parser-es: 0.1.5
+ fs-extra: 11.3.1
+ open: 10.2.0
+ perfect-debounce: 1.0.0
+ picocolors: 1.1.1
+ sirv: 3.0.2
+ vite: 5.4.19(@types/node@25.2.1)(less@4.4.2)(sass@1.97.1)(terser@5.44.1)
+ optionalDependencies:
+ '@nuxt/kit': 3.21.0(magicast@0.3.5)
+ transitivePeerDependencies:
+ - rollup
+ - supports-color
+
vite-plugin-inspect@0.8.9(@nuxt/kit@3.21.0(magicast@0.3.5))(rollup@4.56.0)(vite@7.3.1(@types/node@25.2.1)(jiti@2.6.1)(less@4.4.2)(sass@1.97.1)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2)):
dependencies:
'@antfu/utils': 0.7.10
@@ -33023,6 +33249,21 @@
- '@nuxt/kit'
- supports-color
- vue
+
+ vite-plugin-vue-inspector@5.3.2(vite@5.4.19(@types/node@25.2.1)(less@4.4.2)(sass@1.97.1)(terser@5.44.1)):
+ dependencies:
+ '@babel/core': 7.28.3
+ '@babel/plugin-proposal-decorators': 7.28.0(@babel/core@7.28.3)
+ '@babel/plugin-syntax-import-attributes': 7.27.1(@babel/core@7.28.3)
+ '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.28.3)
+ '@babel/plugin-transform-typescript': 7.28.0(@babel/core@7.28.3)
+ '@vue/babel-plugin-jsx': 1.5.0(@babel/core@7.28.3)
+ '@vue/compiler-dom': 3.5.25
+ kolorist: 1.8.0
+ magic-string: 0.30.21
+ vite: 5.4.19(@types/node@25.2.1)(less@4.4.2)(sass@1.97.1)(terser@5.44.1)
+ transitivePeerDependencies:
+ - supports-color
vite-plugin-vue-inspector@5.3.2(vite@7.3.1(@types/node@24.10.10)(jiti@2.6.1)(less@4.4.2)(sass@1.97.1)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2)):
dependencies:
@@ -33152,44 +33393,44 @@
optionalDependencies:
vite: 7.3.1(@types/node@25.2.1)(jiti@2.6.1)(less@4.4.2)(sass@1.97.1)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2)
- vitepress-plugin-llms@1.11.0:
+ vitepress-plugin-llms@1.12.0:
dependencies:
gray-matter: 4.0.3
markdown-it: 14.1.0
markdown-title: 1.0.2
- mdast-util-from-markdown: 2.0.2
+ mdast-util-from-markdown: 2.0.3
millify: 6.1.0
- minimatch: 10.1.1
+ minimatch: 10.2.4
path-to-regexp: 6.3.0
picocolors: 1.1.1
pretty-bytes: 7.1.0
remark: 15.0.1
remark-frontmatter: 5.0.0
- tokenx: 1.2.1
+ tokenx: 1.3.0
unist-util-remove: 4.0.0
- unist-util-visit: 5.0.0
+ unist-util-visit: 5.1.0
transitivePeerDependencies:
- supports-color
vitepress@2.0.0-alpha.16(patch_hash=828e6d2347338f051e3210f9d54e3a79212e9afb26e6b8a746d7ad5f58e9385b)(@types/node@25.2.1)(axios@1.13.4)(fuse.js@7.1.0)(jiti@2.6.1)(jwt-decode@4.0.0)(less@4.4.2)(oxc-minify@0.110.0)(postcss@8.5.6)(sass@1.97.1)(terser@5.44.1)(tsx@4.21.0)(typescript@5.9.3)(yaml@2.8.2):
dependencies:
- '@docsearch/css': 4.5.3
- '@docsearch/js': 4.5.3
- '@docsearch/sidepanel-js': 4.5.3
+ '@docsearch/css': 4.6.0
+ '@docsearch/js': 4.6.0
+ '@docsearch/sidepanel-js': 4.6.0
'@iconify-json/simple-icons': 1.2.69
- '@shikijs/core': 3.22.0
- '@shikijs/transformers': 3.22.0
- '@shikijs/types': 3.22.0
+ '@shikijs/core': 3.23.0
+ '@shikijs/transformers': 3.23.0
+ '@shikijs/types': 3.23.0
'@types/markdown-it': 14.1.2
'@vitejs/plugin-vue': 6.0.4(vite@7.3.1(@types/node@25.2.1)(jiti@2.6.1)(less@4.4.2)(sass@1.97.1)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2))(vue@3.5.27(typescript@5.9.3))
'@vue/devtools-api': 8.0.5
'@vue/shared': 3.5.27
- '@vueuse/core': 14.1.0(vue@3.5.27(typescript@5.9.3))
- '@vueuse/integrations': 14.1.0(axios@1.13.4)(focus-trap@7.8.0)(fuse.js@7.1.0)(jwt-decode@4.0.0)(vue@3.5.27(typescript@5.9.3))
+ '@vueuse/core': 14.2.1(vue@3.5.27(typescript@5.9.3))
+ '@vueuse/integrations': 14.2.1(axios@1.13.4)(focus-trap@7.8.0)(fuse.js@7.1.0)(jwt-decode@4.0.0)(vue@3.5.27(typescript@5.9.3))
focus-trap: 7.8.0
mark.js: 8.11.1
minisearch: 7.2.0
- shiki: 3.22.0
+ shiki: 3.23.0
vite: 7.3.1(@types/node@25.2.1)(jiti@2.6.1)(less@4.4.2)(sass@1.97.1)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2)
vue: 3.5.27(typescript@5.9.3)
optionalDependencies:
diff --git a/.changeset/five-crabs-relate.md b/.changeset/five-crabs-relate.md
new file mode 100644
--- /dev/null
+++ b/.changeset/five-crabs-relate.md
@@ -0,0 +1,5 @@
+---
+"@hey-api/openapi-ts": patch
+---
+
+**plugin(orpc)**: remove `base` export
diff --git a/dev/package.json b/dev/package.json
--- a/dev/package.json
+++ b/dev/package.json
@@ -13,7 +13,7 @@
"@hey-api/openapi-python": "workspace:*",
"@hey-api/openapi-ts": "workspace:*",
"@opencode-ai/sdk": "1.2.27",
- "@orpc/contract": "1.13.4",
+ "@orpc/contract": "1.13.9",
"@pinia/colada": "0.19.1",
"@tanstack/angular-query-experimental": "5.90.25",
"@tanstack/preact-query": "5.93.0",
diff --git a/docs/package.json b/docs/package.json
--- a/docs/package.json
+++ b/docs/package.json
@@ -16,7 +16,7 @@
"devDependencies": {
"sharp": "0.34.5",
"vitepress": "2.0.0-alpha.16",
- "vitepress-plugin-llms": "1.11.0",
+ "vitepress-plugin-llms": "1.12.0",
"vue": "3.5.25"
}
}
diff --git a/docs/data/people.ts b/docs/data/people.ts
--- a/docs/data/people.ts
+++ b/docs/data/people.ts
@@ -28,6 +28,11 @@
name: 'Sebastiaan Wouters',
};
+export const stephenZhou: Person = {
+ github: 'https://github.com/hyoban',
+ name: 'Stephen Zhou',
+};
+
export const yuriMikhin: Person = {
github: 'https://github.com/mikhin',
name: 'Yuri Mikhin',
diff --git a/docs/openapi-ts/web-frameworks.md b/docs/openapi-ts/web-frameworks.md
--- a/docs/openapi-ts/web-frameworks.md
+++ b/docs/openapi-ts/web-frameworks.md
@@ -14,6 +14,7 @@
- [Angular](/openapi-ts/plugins/angular)
- [Fastify](/openapi-ts/plugins/fastify)
- [Nest](/openapi-ts/plugins/nest)
+- [oRPC](/openapi-ts/plugins/orpc)
- [Adonis](/openapi-ts/plugins/adonis) Soon
- [Elysia](/openapi-ts/plugins/elysia) Soon
- [Express](/openapi-ts/plugins/express) Soon
diff --git a/packages/openapi-ts/README.md b/packages/openapi-ts/README.md
--- a/packages/openapi-ts/README.md
+++ b/packages/openapi-ts/README.md
@@ -306,9 +306,9 @@
### Client
-Clients are responsible for sending the actual HTTP requests. Using clients is not required, but you must add a client to `plugins` if you're generating SDKs (we default to Fetch).
+Clients are responsible for sending the actual HTTP requests. We default to Fetch client if you're generating SDKs, but you can choose a different option from the available clients.
-### Native Clients
+### Available Clients
- [`@hey-api/client-fetch`](https://heyapi.dev/openapi-ts/clients/fetch)
- [`@hey-api/client-angular`](https://heyapi.dev/openapi-ts/clients/angular)
@@ -318,15 +318,15 @@
- [`@hey-api/client-nuxt`](https://heyapi.dev/openapi-ts/clients/nuxt)
- [`@hey-api/client-ofetch`](https://heyapi.dev/openapi-ts/clients/ofetch)
-### Planned Clients
+### Proposed Clients (Vote to Prioritize)
-The following clients are planned but not in development yet. You can help us prioritize them by voting on [GitHub](https://github.com/hey-api/openapi-ts/labels/RSVP%20%F0%9F%91%8D%F0%9F%91%8E).
+The following clients are roadmap proposals and are not started yet. You can help us prioritize them by voting on [GitHub](https://github.com/hey-api/openapi-ts/issues?q=state%3Aopen%20label%3A%22vote%20%F0%9F%93%A9%22).
- [`@hey-api/client-effect`](https://heyapi.dev/openapi-ts/clients/effect)
Don't see your client? [Build your own](https://heyapi.dev/openapi-ts/clients/custom) or let us know your interest by [opening an issue](https://github.com/hey-api/openapi-ts/issues).
-### Native Plugins
+### Available Plugins
These plugins help reduce boilerplate associated with third-party dependencies. Hey API natively supports the most popular packages. Please open an issue on [GitHub](https://github.com/hey-api/openapi-ts/issues) if you'd like us to support your favorite package.
@@ -343,13 +343,14 @@
- [`@tanstack/svelte-query`](https://heyapi.dev/openapi-ts/plugins/tanstack-query)
- [`@tanstack/vue-query`](https://heyapi.dev/openapi-ts/plugins/tanstack-query)
- [`fastify`](https://heyapi.dev/openapi-ts/plugins/fastify)
+- [`orpc`](https://heyapi.dev/openapi-ts/plugins/orpc)
- [`nestjs`](https://heyapi.dev/openapi-ts/plugins/nest)
- [`valibot`](https://heyapi.dev/openapi-ts/plugins/valibot)
- [`zod`](https://heyapi.dev/openapi-ts/plugins/zod)
-### Planned Plugins
+### Proposed Plugins (Vote to Prioritize)
-The following plugins are planned but not in development yet. You can help us prioritize them by voting on [GitHub](https://github.com/hey-api/openapi-ts/labels/RSVP%20%F0%9F%91%8D%F0%9F%91%8E).
+The following plugins are roadmap proposals and are not started yet. You can help us prioritize them by voting on [GitHub](https://github.com/hey-api/openapi-ts/issues?q=state%3Aopen%20label%3A%22vote%20%F0%9F%93%A9%22).
- [Adonis](https://heyapi.dev/openapi-ts/plugins/adonis)
- [Ajv](https://heyapi.dev/openapi-ts/plugins/ajv)
diff --git a/docs/.vitepress/config/en.ts b/docs/.vitepress/config/en.ts
--- a/docs/.vitepress/config/en.ts
+++ b/docs/.vitepress/config/en.ts
@@ -232,6 +232,10 @@
text: 'Nest',
},
{
+ link: '/openapi-ts/plugins/orpc',
+ text: 'oRPC',
+ },
+ {
link: '/openapi-ts/plugins/adonis',
text: 'Adonis soon',
},
@@ -330,7 +334,7 @@
text: 'License',
},
{
- link: 'https://github.com/orgs/hey-api/discussions/1495',
+ link: 'https://github.com/orgs/hey-api/discussions/3159',
text: 'Roadmap',
},
],
diff --git a/docs/.vitepress/theme/custom.css b/docs/.vitepress/theme/custom.css
--- a/docs/.vitepress/theme/custom.css
+++ b/docs/.vitepress/theme/custom.css
@@ -303,6 +303,10 @@
display: none;
}
+.vp-doc img {
+ margin: 0;
+}
+
.authors-list li > a:hover,
.authors-list li > a:focus,
.sponsors-list li:has(> a:hover),
diff --git a/docs/openapi-ts/plugins/fastify.md b/docs/openapi-ts/plugins/fastify.md
--- a/docs/openapi-ts/plugins/fastify.md
+++ b/docs/openapi-ts/plugins/fastify.md
@@ -87,9 +87,7 @@
output: 'src/client',
plugins: [
// ...other plugins
- {
- name: 'fastify',
- },
+ 'fastify',
],
};
```
diff --git a/docs/openapi-ts/plugins/orpc.md b/docs/openapi-ts/plugins/orpc.md
new file mode 100644
--- /dev/null
+++ b/docs/openapi-ts/plugins/orpc.md
@@ -0,0 +1,183 @@
+---
+title: oRPC v1 Plugin
+description: Generate oRPC v1 contracts from OpenAPI with the oRPC plugin for openapi-ts. Fully compatible with validators, transformers, and all core features.
+---
+
+
+
+
+ oRPC v1
+
+
+
+::: warning
+oRPC plugin is currently in beta. The interface might change before it becomes stable. We encourage you to leave feedback on [GitHub](https://github.com/hey-api/openapi-ts/issues).
+:::
+
+### About
+
+[oRPC](https://orpc.dev) combines RPC with OpenAPI, allowing you to define and call remote or local procedures through a type-safe API while adhering to the OpenAPI specification.
+
+The oRPC plugin for Hey API generates contracts from your OpenAPI spec, fully compatible with all core features.
+
+### Collaborators
+
+
+
+## Features
+
+- oRPC v1 support
+- seamless integration with `@hey-api/openapi-ts` ecosystem
+- generated contracts
+- minimal learning curve thanks to extending the underlying technology
+
+## Installation
+
+In your [configuration](/openapi-ts/get-started), add `orpc` to your plugins and you'll be ready to generate oRPC artifacts. :tada:
+
+```js
+export default {
+ input: 'hey-api/backend', // sign up at app.heyapi.dev
+ output: 'src/client',
+ plugins: [
+ // ...other plugins
+ 'orpc', // [!code ++]
+ ],
+};
+```
+
+## Output
+
+The oRPC plugin will generate the following artifacts, depending on the input specification.
+
+## Contracts
+
+Contracts are generated from all endpoints.
+
+::: code-group
+
+```js [example]
+import { oc } from '@orpc/contract';
+
+const addPet = oc.route({
+ description: 'Add a new pet to the store.',
+ inputStructure: 'detailed',
+ method: 'POST',
+ operationId: 'addPet',
+ path: '/pet',
+ summary: 'Add a new pet to the store.',
+ tags: ['pet'],
+});
+```
+
+```js [config]
+export default {
+ input: 'hey-api/backend', // sign up at app.heyapi.dev
+ output: 'src/client',
+ plugins: [
+ // ...other plugins
+ 'orpc',
+ ],
+};
+```
+
+:::
+
+### Validators
+
+To enable schema validation, set `validator` to `zod` or one of the available [validator plugins](/openapi-ts/validators). This will implicitly add the selected plugin with default values.
+
+For a more granular approach, manually add a validator plugin and set `validator` to the plugin name or `true` to automatically select a compatible plugin. Until you customize the validator plugin, both approaches will produce the same default output.
+
+::: code-group
+
+```js [example]
+import { oc } from '@orpc/contract';
+
+import { vAddPetData, vAddPetResponse } from './valibot.gen';
+
+const addPet = oc
+ .route({
+ description: 'Add a new pet to the store.',
+ inputStructure: 'detailed',
+ method: 'POST',
+ operationId: 'addPet',
+ path: '/pet',
+ summary: 'Add a new pet to the store.',
+ tags: ['pet'],
+ })
+ .input(vAddPetData) // [!code ++]
+ .output(vAddPetResponse); // [!code ++]
+```
+
+```js [config]
+export default {
+ input: 'hey-api/backend', // sign up at app.heyapi.dev
+ output: 'src/client',
+ plugins: [
+ // ...other plugins
+ {
+ name: 'orpc',
+ validator: true, // or 'valibot' // [!code ++]
+ },
+ {
+ name: 'valibot', // customize (optional) // [!code ++]
+ // other options
+ },
+ ],
+};
+```
+
+:::
+
+You can choose to validate only inputs or outputs.
+
+::: code-group
+
+```js [inputs]
+export default {
+ input: 'hey-api/backend', // sign up at app.heyapi.dev
+ output: 'src/client',
+ plugins: [
+ // ...other plugins
+ {
+ name: 'orpc',
+ validator: {
+ input: 'zod', // [!code ++]
+ },
+ },
+ ],
+};
+```
+
+```js [outputs]
+export default {
+ input: 'hey-api/backend', // sign up at app.heyapi.dev
+ output: 'src/client',
+ plugins: [
+ // ...other plugins
+ {
+ name: 'orpc',
+ validator: {
+ output: 'zod', // [!code ++]
+ },
+ },
+ ],
+};
+```
+
+:::
+
+Learn more about available validators on the [Validators](/openapi-ts/validators) page.
+
+## API
+
+You can view the complete list of options in the [UserConfig](https://github.com/hey-api/openapi-ts/blob/main/packages/openapi-ts/src/plugins/orpc/types.ts) interface.
+
+
+
diff --git a/docs/openapi-ts/plugins/transformers.md b/docs/openapi-ts/plugins/transformers.md
--- a/docs/openapi-ts/plugins/transformers.md
+++ b/docs/openapi-ts/plugins/transformers.md
@@ -153,4 +153,4 @@
You can view the complete list of options in the [UserConfig](https://github.com/hey-api/openapi-ts/blob/main/packages/openapi-ts/src/plugins/@hey-api/transformers/types.ts) interface.
-
+
diff --git a/docs/openapi-ts/plugins/angular/v19.md b/docs/openapi-ts/plugins/angular/v19.md
--- a/docs/openapi-ts/plugins/angular/v19.md
+++ b/docs/openapi-ts/plugins/angular/v19.md
@@ -118,5 +118,5 @@
You can view the complete list of options in the [UserConfig](https://github.com/hey-api/openapi-ts/blob/main/packages/openapi-ts/src/plugins/@angular/common/types.ts) interface.
-
-
+
+
diff --git a/packages/openapi-ts-tests/orpc/v1/package.json b/packages/openapi-ts-tests/orpc/v1/package.json
--- a/packages/openapi-ts-tests/orpc/v1/package.json
+++ b/packages/openapi-ts-tests/orpc/v1/package.json
@@ -8,7 +8,7 @@
},
"devDependencies": {
"@hey-api/openapi-ts": "workspace:*",
- "@orpc/contract": "1.13.4",
+ "@orpc/contract": "1.13.9",
"typescript": "5.9.3",
"valibot": "1.2.0",
"zod": "4.3.6"
diff --git a/packages/openapi-ts/src/plugins/orpc/contracts/node.ts b/packages/openapi-ts/src/plugins/orpc/contracts/node.ts
--- a/packages/openapi-ts/src/plugins/orpc/contracts/node.ts
+++ b/packages/openapi-ts/src/plugins/orpc/contracts/node.ts
@@ -52,17 +52,17 @@
function createContractExpression(
plugin: OrpcPlugin['Instance'],
operation: IR.OperationObject,
- baseSymbol: Symbol,
-) {
+): ReturnType {
const successResponse = getSuccessResponse(operation);
const tags = getTags(operation, plugin.config.contracts.strategyDefaultTag);
- let expression = $(baseSymbol)
+ let expression = $(plugin.external('@orpc/contract.oc'))
.attr('route')
.call(
$.object()
.$if(operation.deprecated, (o, v) => o.prop('deprecated', $.literal(v)))
.$if(operation.description, (o, v) => o.prop('description', $.literal(v)))
+ .prop('inputStructure', $.literal('detailed'))
.prop('method', $.literal(operation.method.toUpperCase()))
.$if(operation.operationId, (o, v) => o.prop('operationId', $.literal(v)))
.prop('path', $.literal(operation.path))
@@ -164,7 +164,6 @@
export function toNode(
model: StructureNode,
plugin: OrpcPlugin['Instance'],
- baseSymbol: Symbol,
): {
nodes: ReadonlyArray>;
symbols?: Map;
@@ -176,7 +175,7 @@
for (const item of model.itemsFrom(source)) {
const { operation } = item.data;
const contractSymbol = createContractSymbol(plugin, item);
- const expression = createContractExpression(plugin, operation, baseSymbol);
+ const expression = createContractExpression(plugin, operation);
const node = $.const(contractSymbol)
.export()
@@ -198,7 +197,7 @@
for (const item of model.itemsFrom(source)) {
const { operation } = item.data;
const contractSymbol = createContractSymbol(plugin, item);
- const expression = createContractExpression(plugin, operation, baseSymbol);
+ const expression = createContractExpression(plugin, operation);
const node = $.const(contractSymbol)
.export()
diff --git a/packages/openapi-ts/src/plugins/orpc/v1/plugin.ts b/packages/openapi-ts/src/plugins/orpc/v1/plugin.ts
--- a/packages/openapi-ts/src/plugins/orpc/v1/plugin.ts
+++ b/packages/openapi-ts/src/plugins/orpc/v1/plugin.ts
@@ -1,24 +1,18 @@
import { StructureModel } from '@hey-api/codegen-core';
-import { $ } from '../../../ts-dsl';
+import type { $ } from '../../../ts-dsl';
import type { ContractItem } from '../contracts';
import { createShell, resolveStrategy, source, toNode } from '../contracts';
import type { OrpcPlugin } from '../types';
export const handlerV1: OrpcPlugin['Handler'] = ({ plugin }) => {
- const oc = plugin.symbol('oc', {
+ plugin.symbol('oc', {
external: '@orpc/contract',
+ meta: {
+ category: 'external',
+ resource: '@orpc/contract.oc',
+ },
});
- const baseSymbol = plugin.symbol('base');
-
- const baseNode = $.const(baseSymbol)
- .export()
- .assign(
- $(oc)
- .attr('$route')
- .call($.object().prop('inputStructure', $.literal('detailed'))),
- );
- plugin.node(baseNode);
const structure = new StructureModel();
const shell = createShell(plugin);
@@ -43,7 +37,7 @@
const allNodes: Array> = [];
for (const node of structure.walk()) {
- const { nodes } = toNode(node, plugin, baseSymbol);
+ const { nodes } = toNode(node, plugin);
allNodes.push(...nodes);
}
diff --git a/packages/openapi-ts-tests/orpc/v1/__snapshots__/3.0.x/custom-names/orpc.gen.ts b/packages/openapi-ts-tests/orpc/v1/__snapshots__/3.0.x/custom-names/orpc.gen.ts
--- a/packages/openapi-ts-tests/orpc/v1/__snapshots__/3.0.x/custom-names/orpc.gen.ts
+++ b/packages/openapi-ts-tests/orpc/v1/__snapshots__/3.0.x/custom-names/orpc.gen.ts
@@ -4,12 +4,11 @@
import { vCreatePostData, vCreatePostResponse, vCreateUserData, vCreateUserResponse, vDeleteUserData, vGetPostByIdData, vGetPostByIdResponse, vGetPostsData, vGetPostsResponse, vGetUserByIdData, vGetUserByIdResponse, vGetUsersData, vGetUsersResponse, vUpdateUserData, vUpdateUserResponse } from './valibot.gen';
-export const base = oc.$route({ inputStructure: 'detailed' });
-
/**
* Get all users
*/
-export const getUsersRpc = base.route({
+export const getUsersRpc = oc.route({
+ inputStructure: 'detailed',
method: 'GET',
operationId: 'getUsers',
path: '/users',
@@ -20,7 +19,8 @@
/**
* Create a new user
*/
-export const createUserRpc = base.route({
+export const createUserRpc = oc.route({
+ inputStructure: 'detailed',
method: 'POST',
operationId: 'createUser',
path: '/users',
@@ -32,7 +32,8 @@
/**
* Delete a user
*/
-export const deleteUserRpc = base.route({
+export const deleteUserRpc = oc.route({
+ inputStructure: 'detailed',
method: 'DELETE',
operationId: 'deleteUser',
path: '/users/{userId}',
@@ -43,7 +44,8 @@
/**
* Get a user by ID
*/
-export const getUserByIdRpc = base.route({
+export const getUserByIdRpc = oc.route({
+ inputStructure: 'detailed',
method: 'GET',
operationId: 'getUserById',
path: '/users/{userId}',
@@ -54,7 +56,8 @@
/**
* Update a user
*/
-export const updateUserRpc = base.route({
+export const updateUserRpc = oc.route({
+ inputStructure: 'detailed',
method: 'PUT',
operationId: 'updateUser',
path: '/users/{userId}',
@@ -65,7 +68,8 @@
/**
* Get all posts
*/
-export const getPostsRpc = base.route({
+export const getPostsRpc = oc.route({
+ inputStructure: 'detailed',
method: 'GET',
operationId: 'getPosts',
path: '/posts',
@@ -76,7 +80,8 @@
/**
* Create a new post
*/
-export const createPostRpc = base.route({
+export const createPostRpc = oc.route({
+ inputStructure: 'detailed',
method: 'POST',
operationId: 'createPost',
path: '/posts',
@@ -88,7 +93,8 @@
/**
* Get a post by ID
*/
-export const getPostByIdRpc = base.route({
+export const getPostByIdRpc = oc.route({
+ inputStructure: 'detailed',
method: 'GET',
operationId: 'getPostById',
path: '/posts/{postId}',
diff --git a/packages/openapi-ts-tests/orpc/v1/__snapshots__/3.0.x/default/orpc.gen.ts b/packages/openapi-ts-tests/orpc/v1/__snapshots__/3.0.x/default/orpc.gen.ts
--- a/packages/openapi-ts-tests/orpc/v1/__snapshots__/3.0.x/default/orpc.gen.ts
+++ b/packages/openapi-ts-tests/orpc/v1/__snapshots__/3.0.x/default/orpc.gen.ts
@@ -4,12 +4,11 @@
import { zCreatePostData, zCreatePostResponse, zCreateUserData, zCreateUserResponse, zDeleteUserData, zGetPostByIdData, zGetPostByIdResponse, zGetPostsData, zGetPostsResponse, zGetUserByIdData, zGetUserByIdResponse, zGetUsersData, zGetUsersResponse, zUpdateUserData, zUpdateUserResponse } from './zod.gen';
-export const base = oc.$route({ inputStructure: 'detailed' });
-
/**
* Get all users
*/
-export const getUsers = base.route({
+export const getUsers = oc.route({
+ inputStructure: 'detailed',
method: 'GET',
operationId: 'getUsers',
path: '/users',
@@ -20,7 +19,8 @@
/**
* Create a new user
*/
-export const createUser = base.route({
+export const createUser = oc.route({
+ inputStructure: 'detailed',
method: 'POST',
operationId: 'createUser',
path: '/users',
@@ -32,7 +32,8 @@
/**
* Delete a user
*/
-export const deleteUser = base.route({
+export const deleteUser = oc.route({
+ inputStructure: 'detailed',
method: 'DELETE',
operationId: 'deleteUser',
path: '/users/{userId}',
@@ -43,7 +44,8 @@
/**
* Get a user by ID
*/
-export const getUserById = base.route({
+export const getUserById = oc.route({
+ inputStructure: 'detailed',
method: 'GET',
operationId: 'getUserById',
path: '/users/{userId}',
@@ -54,7 +56,8 @@
/**
* Update a user
*/
-export const updateUser = base.route({
+export const updateUser = oc.route({
+ inputStructure: 'detailed',
method: 'PUT',
operationId: 'updateUser',
path: '/users/{userId}',
@@ -65,7 +68,8 @@
/**
* Get all posts
*/
-export const getPosts = base.route({
+export const getPosts = oc.route({
+ inputStructure: 'detailed',
method: 'GET',
operationId: 'getPosts',
path: '/posts',
@@ -76,7 +80,8 @@
/**
* Create a new post
*/
-export const createPost = base.route({
+export const createPost = oc.route({
+ inputStructure: 'detailed',
method: 'POST',
operationId: 'createPost',
path: '/posts',
@@ -88,7 +93,8 @@
/**
* Get a post by ID
*/
-export const getPostById = base.route({
+export const getPostById = oc.route({
+ inputStructure: 'detailed',
method: 'GET',
operationId: 'getPostById',
path: '/posts/{postId}',
diff --git a/packages/openapi-ts-tests/orpc/v1/__snapshots__/3.1.x/contracts-custom-naming/orpc.gen.ts b/packages/openapi-ts-tests/orpc/v1/__snapshots__/3.1.x/contracts-custom-naming/orpc.gen.ts
--- a/packages/openapi-ts-tests/orpc/v1/__snapshots__/3.1.x/contracts-custom-naming/orpc.gen.ts
+++ b/packages/openapi-ts-tests/orpc/v1/__snapshots__/3.1.x/contracts-custom-naming/orpc.gen.ts
@@ -4,12 +4,11 @@
import { zCreatePostData, zCreatePostResponse, zCreateUserData, zCreateUserResponse, zDeleteUserData, zGetPostByIdData, zGetPostByIdResponse, zGetPostsData, zGetPostsResponse, zGetUserByIdData, zGetUserByIdResponse, zGetUsersData, zGetUsersResponse, zUpdateUserData, zUpdateUserResponse } from './zod.gen';
-export const base = oc.$route({ inputStructure: 'detailed' });
-
/**
* Get all users
*/
-export const GetUsers = base.route({
+export const GetUsers = oc.route({
+ inputStructure: 'detailed',
method: 'GET',
operationId: 'getUsers',
path: '/users',
@@ -20,7 +19,8 @@
/**
* Create a new user
*/
-export const CreateUser = base.route({
+export const CreateUser = oc.route({
+ inputStructure: 'detailed',
method: 'POST',
operationId: 'createUser',
path: '/users',
@@ -32,7 +32,8 @@
/**
* Delete a user
*/
-export const DeleteUser = base.route({
+export const DeleteUser = oc.route({
+ inputStructure: 'detailed',
method: 'DELETE',
operationId: 'deleteUser',
path: '/users/{userId}',
@@ -43,7 +44,8 @@
/**
* Get a user by ID
*/
-export const GetUserById = base.route({
+export const GetUserById = oc.route({
+ inputStructure: 'detailed',
method: 'GET',
operationId: 'getUserById',
path: '/users/{userId}',
@@ -54,7 +56,8 @@
/**
* Update a user
*/
-export const UpdateUser = base.route({
+export const UpdateUser = oc.route({
+ inputStructure: 'detailed',
method: 'PUT',
operationId: 'updateUser',
path: '/users/{userId}',
@@ -73,7 +76,8 @@
/**
* Get all posts
*/
-export const GetPosts = base.route({
+export const GetPosts = oc.route({
+ inputStructure: 'detailed',
method: 'GET',
operationId: 'getPosts',
path: '/posts',
@@ -84,7 +88,8 @@
/**
* Create a new post
*/
-export const CreatePost = base.route({
+export const CreatePost = oc.route({
+ inputStructure: 'detailed',
method: 'POST',
operationId: 'createPost',
path: '/posts',
@@ -96,7 +101,8 @@
/**
* Get a post by ID
*/
-export const GetPostById = base.route({
+export const GetPostById = oc.route({
+ inputStructure: 'detailed',
method: 'GET',
operationId: 'getPostById',
path: '/posts/{postId}',
diff --git a/packages/openapi-ts-tests/orpc/v1/__snapshots__/3.1.x/contracts-nesting-id/orpc.gen.ts b/packages/openapi-ts-tests/orpc/v1/__snapshots__/3.1.x/contracts-nesting-id/orpc.gen.ts
--- a/packages/openapi-ts-tests/orpc/v1/__snapshots__/3.1.x/contracts-nesting-id/orpc.gen.ts
+++ b/packages/openapi-ts-tests/orpc/v1/__snapshots__/3.1.x/contracts-nesting-id/orpc.gen.ts
@@ -4,12 +4,11 @@
import { zCreatePostData, zCreatePostResponse, zCreateUserData, zCreateUserResponse, zDeleteUserData, zGetPostByIdData, zGetPostByIdResponse, zGetPostsData, zGetPostsResponse, zGetUserByIdData, zGetUserByIdResponse, zGetUsersData, zGetUsersResponse, zUpdateUserData, zUpdateUserResponse } from './zod.gen';
-export const base = oc.$route({ inputStructure: 'detailed' });
-
/**
* Get all users
*/
-export const getUsers = base.route({
+export const getUsers = oc.route({
+ inputStructure: 'detailed',
method: 'GET',
operationId: 'getUsers',
path: '/users',
@@ -20,7 +19,8 @@
/**
* Create a new user
*/
-export const createUser = base.route({
+export const createUser = oc.route({
+ inputStructure: 'detailed',
method: 'POST',
operationId: 'createUser',
path: '/users',
@@ -32,7 +32,8 @@
/**
* Delete a user
*/
-export const deleteUser = base.route({
+export const deleteUser = oc.route({
+ inputStructure: 'detailed',
method: 'DELETE',
operationId: 'deleteUser',
path: '/users/{userId}',
@@ -43,7 +44,8 @@
/**
* Get a user by ID
*/
-export const getUserById = base.route({
+export const getUserById = oc.route({
+ inputStructure: 'detailed',
method: 'GET',
operationId: 'getUserById',
path: '/users/{userId}',
@@ -54,7 +56,8 @@
/**
* Update a user
*/
-export const updateUser = base.route({
+export const updateUser = oc.route({
+ inputStructure: 'detailed',
method: 'PUT',
operationId: 'updateUser',
path: '/users/{userId}',
@@ -73,7 +76,8 @@
/**
* Get all posts
*/
-export const getPosts = base.route({
+export const getPosts = oc.route({
+ inputStructure: 'detailed',
method: 'GET',
operationId: 'getPosts',
path: '/posts',
@@ -84,7 +88,8 @@
/**
* Create a new post
*/
-export const createPost = base.route({
+export const createPost = oc.route({
+ inputStructure: 'detailed',
method: 'POST',
operationId: 'createPost',
path: '/posts',
@@ -96,7 +101,8 @@
/**
* Get a post by ID
*/
-export const getPostById = base.route({
+export const getPostById = oc.route({
+ inputStructure: 'detailed',
method: 'GET',
operationId: 'getPostById',
path: '/posts/{postId}',
diff --git a/packages/openapi-ts-tests/orpc/v1/__snapshots__/3.1.x/contracts-strategy-by-tags/orpc.gen.ts b/packages/openapi-ts-tests/orpc/v1/__snapshots__/3.1.x/contracts-strategy-by-tags/orpc.gen.ts
--- a/packages/openapi-ts-tests/orpc/v1/__snapshots__/3.1.x/contracts-strategy-by-tags/orpc.gen.ts
+++ b/packages/openapi-ts-tests/orpc/v1/__snapshots__/3.1.x/contracts-strategy-by-tags/orpc.gen.ts
@@ -4,12 +4,11 @@
import { zCreatePostData, zCreatePostResponse, zCreateUserData, zCreateUserResponse, zDeleteUserData, zGetPostByIdData, zGetPostByIdResponse, zGetPostsData, zGetPostsResponse, zGetUserByIdData, zGetUserByIdResponse, zGetUsersData, zGetUsersResponse, zUpdateUserData, zUpdateUserResponse } from './zod.gen';
-export const base = oc.$route({ inputStructure: 'detailed' });
-
/**
* Get all users
*/
-export const getUsers = base.route({
+export const getUsers = oc.route({
+ inputStructure: 'detailed',
method: 'GET',
operationId: 'getUsers',
path: '/users',
@@ -20,7 +19,8 @@
/**
* Create a new user
*/
-export const createUser = base.route({
+export const createUser = oc.route({
+ inputStructure: 'detailed',
method: 'POST',
operationId: 'createUser',
path: '/users',
@@ -32,7 +32,8 @@
/**
* Delete a user
*/
-export const deleteUser = base.route({
+export const deleteUser = oc.route({
+ inputStructure: 'detailed',
method: 'DELETE',
operationId: 'deleteUser',
path: '/users/{userId}',
@@ -43,7 +44,8 @@
/**
* Get a user by ID
*/
-export const getUserById = base.route({
+export const getUserById = oc.route({
+ inputStructure: 'detailed',
method: 'GET',
operationId: 'getUserById',
path: '/users/{userId}',
@@ -54,7 +56,8 @@
/**
* Update a user
*/
-export const updateUser = base.route({
+export const updateUser = oc.route({
+ inputStructure: 'detailed',
method: 'PUT',
operationId: 'updateUser',
path: '/users/{userId}',
@@ -73,7 +76,8 @@
/**
* Get all posts
*/
-export const getPosts = base.route({
+export const getPosts = oc.route({
+ inputStructure: 'detailed',
method: 'GET',
operationId: 'getPosts',
path: '/posts',
@@ -84,7 +88,8 @@
/**
* Create a new post
*/
-export const createPost = base.route({
+export const createPost = oc.route({
+ inputStructure: 'detailed',
method: 'POST',
operationId: 'createPost',
path: '/posts',
@@ -96,7 +101,8 @@
/**
* Get a post by ID
*/
-export const getPostById = base.route({
+export const getPostById = oc.route({
+ inputStructure: 'detailed',
method: 'GET',
operationId: 'getPostById',
path: '/posts/{postId}',
diff --git a/packages/openapi-ts-tests/orpc/v1/__snapshots__/3.1.x/contracts-strategy-single/orpc.gen.ts b/packages/openapi-ts-tests/orpc/v1/__snapshots__/3.1.x/contracts-strategy-single/orpc.gen.ts
--- a/packages/openapi-ts-tests/orpc/v1/__snapshots__/3.1.x/contracts-strategy-single/orpc.gen.ts
+++ b/packages/openapi-ts-tests/orpc/v1/__snapshots__/3.1.x/contracts-strategy-single/orpc.gen.ts
@@ -4,12 +4,11 @@
import { zCreatePostData, zCreatePostResponse, zCreateUserData, zCreateUserResponse, zDeleteUserData, zGetPostByIdData, zGetPostByIdResponse, zGetPostsData, zGetPostsResponse, zGetUserByIdData, zGetUserByIdResponse, zGetUsersData, zGetUsersResponse, zUpdateUserData, zUpdateUserResponse } from './zod.gen';
-export const base = oc.$route({ inputStructure: 'detailed' });
-
/**
* Get all users
*/
-export const getUsers = base.route({
+export const getUsers = oc.route({
+ inputStructure: 'detailed',
method: 'GET',
operationId: 'getUsers',
path: '/users',
@@ -20,7 +19,8 @@
/**
* Create a new user
*/
-export const createUser = base.route({
+export const createUser = oc.route({
+ inputStructure: 'detailed',
method: 'POST',
operationId: 'createUser',
path: '/users',
@@ -32,7 +32,8 @@
/**
* Delete a user
*/
-export const deleteUser = base.route({
+export const deleteUser = oc.route({
+ inputStructure: 'detailed',
method: 'DELETE',
operationId: 'deleteUser',
path: '/users/{userId}',
@@ -43,7 +44,8 @@
/**
* Get a user by ID
*/
-export const getUserById = base.route({
+export const getUserById = oc.route({
+ inputStructure: 'detailed',
method: 'GET',
operationId: 'getUserById',
path: '/users/{userId}',
@@ -54,7 +56,8 @@
/**
* Update a user
*/
-export const updateUser = base.route({
+export const updateUser = oc.route({
+ inputStructure: 'detailed',
method: 'PUT',
operationId: 'updateUser',
path: '/users/{userId}',
@@ -65,7 +68,8 @@
/**
* Get all posts
*/
-export const getPosts = base.route({
+export const getPosts = oc.route({
+ inputStructure: 'detailed',
method: 'GET',
operationId: 'getPosts',
path: '/posts',
@@ -76,7 +80,8 @@
/**
* Create a new post
*/
-export const createPost = base.route({
+export const createPost = oc.route({
+ inputStructure: 'detailed',
method: 'POST',
operationId: 'createPost',
path: '/posts',
@@ -88,7 +93,8 @@
/**
* Get a post by ID
*/
-export const getPostById = base.route({
+export const getPostById = oc.route({
+ inputStructure: 'detailed',
method: 'GET',
operationId: 'getPostById',
path: '/posts/{postId}',
diff --git a/packages/openapi-ts-tests/orpc/v1/__snapshots__/3.1.x/custom-names/orpc.gen.ts b/packages/openapi-ts-tests/orpc/v1/__snapshots__/3.1.x/custom-names/orpc.gen.ts
--- a/packages/openapi-ts-tests/orpc/v1/__snapshots__/3.1.x/custom-names/orpc.gen.ts
+++ b/packages/openapi-ts-tests/orpc/v1/__snapshots__/3.1.x/custom-names/orpc.gen.ts
@@ -4,12 +4,11 @@
import { vCreatePostData, vCreatePostResponse, vCreateUserData, vCreateUserResponse, vDeleteUserData, vGetPostByIdData, vGetPostByIdResponse, vGetPostsData, vGetPostsResponse, vGetUserByIdData, vGetUserByIdResponse, vGetUsersData, vGetUsersResponse, vUpdateUserData, vUpdateUserResponse } from './valibot.gen';
-export const base = oc.$route({ inputStructure: 'detailed' });
-
/**
* Get all users
*/
-export const getUsersRpc = base.route({
+export const getUsersRpc = oc.route({
+ inputStructure: 'detailed',
method: 'GET',
operationId: 'getUsers',
path: '/users',
@@ -20,7 +19,8 @@
/**
* Create a new user
*/
-export const createUserRpc = base.route({
+export const createUserRpc = oc.route({
+ inputStructure: 'detailed',
method: 'POST',
operationId: 'createUser',
path: '/users',
@@ -32,7 +32,8 @@
/**
* Delete a user
*/
-export const deleteUserRpc = base.route({
+export const deleteUserRpc = oc.route({
+ inputStructure: 'detailed',
method: 'DELETE',
operationId: 'deleteUser',
path: '/users/{userId}',
@@ -43,7 +44,8 @@
/**
* Get a user by ID
*/
-export const getUserByIdRpc = base.route({
+export const getUserByIdRpc = oc.route({
+ inputStructure: 'detailed',
method: 'GET',
operationId: 'getUserById',
path: '/users/{userId}',
@@ -54,7 +56,8 @@
/**
* Update a user
*/
-export const updateUserRpc = base.route({
+export const updateUserRpc = oc.route({
+ inputStructure: 'detailed',
method: 'PUT',
operationId: 'updateUser',
path: '/users/{userId}',
@@ -65,7 +68,8 @@
/**
* Get all posts
*/
-export const getPostsRpc = base.route({
+export const getPostsRpc = oc.route({
+ inputStructure: 'detailed',
method: 'GET',
operationId: 'getPosts',
path: '/posts',
@@ -76,7 +80,8 @@
/**
* Create a new post
*/
-export const createPostRpc = base.route({
+export const createPostRpc = oc.route({
+ inputStructure: 'detailed',
method: 'POST',
operationId: 'createPost',
path: '/posts',
@@ -88,7 +93,8 @@
/**
* Get a post by ID
*/
-export const getPostByIdRpc = base.route({
+export const getPostByIdRpc = oc.route({
+ inputStructure: 'detailed',
method: 'GET',
operationId: 'getPostById',
path: '/posts/{postId}',
diff --git a/packages/openapi-ts-tests/orpc/v1/__snapshots__/3.1.x/default/orpc.gen.ts b/packages/openapi-ts-tests/orpc/v1/__snapshots__/3.1.x/default/orpc.gen.ts
--- a/packages/openapi-ts-tests/orpc/v1/__snapshots__/3.1.x/default/orpc.gen.ts
+++ b/packages/openapi-ts-tests/orpc/v1/__snapshots__/3.1.x/default/orpc.gen.ts
@@ -4,12 +4,11 @@
import { zCreatePostData, zCreatePostResponse, zCreateUserData, zCreateUserResponse, zDeleteUserData, zGetPostByIdData, zGetPostByIdResponse, zGetPostsData, zGetPostsResponse, zGetUserByIdData, zGetUserByIdResponse, zGetUsersData, zGetUsersResponse, zUpdateUserData, zUpdateUserResponse } from './zod.gen';
-export const base = oc.$route({ inputStructure: 'detailed' });
-
/**
* Get all users
*/
-export const getUsers = base.route({
+export const getUsers = oc.route({
+ inputStructure: 'detailed',
method: 'GET',
operationId: 'getUsers',
path: '/users',
@@ -20,7 +19,8 @@
/**
* Create a new user
*/
-export const createUser = base.route({
+export const createUser = oc.route({
+ inputStructure: 'detailed',
method: 'POST',
operationId: 'createUser',
path: '/users',
@@ -32,7 +32,8 @@
/**
* Delete a user
*/
-export const deleteUser = base.route({
+export const deleteUser = oc.route({
+ inputStructure: 'detailed',
method: 'DELETE',
operationId: 'deleteUser',
path: '/users/{userId}',
@@ -43,7 +44,8 @@
/**
* Get a user by ID
*/
-export const getUserById = base.route({
+export const getUserById = oc.route({
+ inputStructure: 'detailed',
method: 'GET',
operationId: 'getUserById',
path: '/users/{userId}',
@@ -54,7 +56,8 @@
/**
* Update a user
*/
-export const updateUser = base.route({
+export const updateUser = oc.route({
+ inputStructure: 'detailed',
method: 'PUT',
operationId: 'updateUser',
path: '/users/{userId}',
@@ -65,7 +68,8 @@
/**
* Get all posts
*/
-export const getPosts = base.route({
+export const getPosts = oc.route({
+ inputStructure: 'detailed',
method: 'GET',
operationId: 'getPosts',
path: '/posts',
@@ -76,7 +80,8 @@
/**
* Create a new post
*/
-export const createPost = base.route({
+export const createPost = oc.route({
+ inputStructure: 'detailed',
method: 'POST',
operationId: 'createPost',
path: '/posts',
@@ -88,7 +93,8 @@
/**
* Get a post by ID
*/
-export const getPostById = base.route({
+export const getPostById = oc.route({
+ inputStructure: 'detailed',
method: 'GET',
operationId: 'getPostById',
path: '/posts/{postId}',