Compare commits

..

1 Commits

Author SHA1 Message Date
Steeve Pastorelli fd35982552 Fix "it's" typos in README 2026-11-04 09:04:04 +01:00
81 changed files with 181 additions and 217 deletions
+5
View File
@@ -0,0 +1,5 @@
---
"gitbook": patch
---
Bump Next.js to 16.4.3, keeping the dev-mode OOM patch.
+5
View File
@@ -0,0 +1,5 @@
---
"gitbook": patch
---
Preconnect each asset origin once, skip same-origin icon URLs, and open the fonts preconnect in CORS mode so font requests can reuse it.
+5
View File
@@ -0,0 +1,5 @@
---
"gitbook": patch
---
Stop caching failed searches, so a rate-limited or failing search is retried on the next query instead of being served from cache for 15 minutes.
+5
View File
@@ -0,0 +1,5 @@
---
"gitbook": patch
---
Declare the Tailwind layer order in each component stylesheet, so a route whose first stylesheet is one of them still puts `base` before `components` and preflight does not strip their padding and borders.
+5
View File
@@ -0,0 +1,5 @@
---
"gitbook": patch
---
Forward the visitor's user agent on ask and Assistant calls so questions are classified by who asked.
+5
View File
@@ -0,0 +1,5 @@
---
"gitbook": patch
---
Load the inline expression runtime only on pages whose code blocks or text use expressions, so other pages ship less JavaScript.
+5
View File
@@ -0,0 +1,5 @@
---
"@gitbook/react-contentkit": patch
---
Load a webframe only once it is near the viewport. A page can hold hundreds of them inside collapsed expandables, and loading every one on mount held up the first paint.
+5
View File
@@ -0,0 +1,5 @@
---
"gitbook": patch
---
Pack the class lists that every block, heading anchor and table cell repeats into shared CSS classes, and carry a table cell's width once as a custom property instead of spelling it out as both width and min-width, so a large page carries far less markup.
+5
View File
@@ -0,0 +1,5 @@
---
"gitbook": patch
---
Split llms-full.txt into parts by size so large sites no longer fail with "content too large"
+5
View File
@@ -0,0 +1,5 @@
---
"gitbook": patch
---
Follow site and space redirects when the MCP getPage tool resolves a page URL.
+5
View File
@@ -0,0 +1,5 @@
---
"gitbook": patch
---
Fix the MCP `getPage` tool returning "Page not found" for the Markdown URL of a page (`<page>.md`).
+5
View File
@@ -0,0 +1,5 @@
---
"gitbook": patch
---
Add a search input to filter models by name on OpenAPI models pages.
@@ -0,0 +1,5 @@
---
"gitbook": patch
---
Let analytics tools like GA4 track outbound link clicks by using native link navigation.
@@ -0,0 +1,5 @@
---
"gitbook": patch
---
Set `Partitioned` on visitor cookies set inside an iframe so authenticated embeds work cross-site.
+5
View File
@@ -0,0 +1,5 @@
---
"gitbook": patch
---
Fix encoded or non-normalized links on proxied sites redirecting to the internal proxy path instead of the public URL.
+5
View File
@@ -0,0 +1,5 @@
---
"gitbook": patch
---
Support a secondary brand colour for secondary buttons and `$secondary` text, background, icon and tag colours. Sites without one render as before.
+5
View File
@@ -0,0 +1,5 @@
---
"gitbook": patch
---
Resolve the published content with the full URL in a single lookup and always send the visitor country.
@@ -0,0 +1,5 @@
---
"gitbook": patch
---
Resolve dark-mode image URLs in published Markdown.
+5
View File
@@ -0,0 +1,5 @@
---
"gitbook": patch
---
Keep lists, paragraphs and code blocks as HTML in Updates RSS feeds, instead of running all the text together
+5
View File
@@ -0,0 +1,5 @@
---
"@gitbook/openapi-parser": patch
---
Bump @scalar/openapi-parser to 0.29 so valid OpenAPI 3.2 documents no longer report false validation errors.
@@ -0,0 +1,5 @@
---
"gitbook": patch
---
Only apply a site preview customization override to the section or variant it was made for.
+5
View File
@@ -0,0 +1,5 @@
---
"gitbook": patch
---
Render soft line breaks in paragraphs that contain buttons.
@@ -0,0 +1,5 @@
---
"gitbook": patch
---
Fix visitors being logged out right after signing in on sites with a logout link in the header.
+5
View File
@@ -0,0 +1,5 @@
---
"gitbook": patch
---
Truncate long tab titles one by one and show the selected tab's full title, instead of hiding tabs behind a "…" menu
+1 -1
View File
@@ -161,4 +161,4 @@ GitBook wouldn't be possible without these projects:
## Legacy GitBook (Deprecated)
Our previous version of GitBook and it's CLI tool are now deprecated. You can still view the old repository and it's commits on this [branch](https://github.com/GitbookIO/gitbook/tree/legacy).
Our previous version of GitBook and its CLI tool are now deprecated. You can still view the old repository and its commits on this [branch](https://github.com/GitbookIO/gitbook/tree/legacy).
+40 -40
View File
@@ -110,7 +110,7 @@
},
"packages/gitbook": {
"name": "gitbook",
"version": "0.28.1",
"version": "0.28.0",
"dependencies": {
"@base-ui/react": "catalog:",
"@cloudflare/workers-types": "^4.20251011.0",
@@ -129,8 +129,8 @@
"@gitbook/react-openapi": "workspace:*",
"@mermaid-js/mermaid-zenuml": "^0.2.2",
"@modelcontextprotocol/sdk": "1.17.5",
"@opennextjs/aws": "4.1.15",
"@opennextjs/cloudflare": "1.20.16",
"@opennextjs/aws": "4.1.11",
"@opennextjs/cloudflare": "1.20.12",
"@panzoom/panzoom": "^4.6.1",
"@sindresorhus/fnv1a": "^3.1.0",
"@tailwindcss/container-queries": "^0.1.1",
@@ -160,7 +160,7 @@
"micromark-extension-gfm": "^3.0.0",
"motion": "^12.23.24",
"negotiator": "^1.0.0",
"next": "^16.4.5",
"next": "^16.4.3",
"next-themes": "^0.4.6",
"nuqs": "^2.2.3",
"object-hash": "^3.0.0",
@@ -249,7 +249,7 @@
},
"packages/openapi-parser": {
"name": "@gitbook/openapi-parser",
"version": "3.0.14",
"version": "3.0.13",
"dependencies": {
"@scalar/json-magic": "^0.17.0",
"@scalar/openapi-parser": "^0.29.19",
@@ -266,7 +266,7 @@
},
"packages/react-contentkit": {
"name": "@gitbook/react-contentkit",
"version": "0.7.18",
"version": "0.7.17",
"dependencies": {
"@gitbook/api": "catalog:",
"@gitbook/icons": "workspace:*",
@@ -309,7 +309,7 @@
},
"packages/react-openapi": {
"name": "@gitbook/react-openapi",
"version": "2.0.1",
"version": "2.0.0",
"dependencies": {
"@base-ui/react": "catalog:",
"@gitbook/expr": "workspace:*",
@@ -342,8 +342,8 @@
},
"patchedDependencies": {
"decode-named-character-reference@1.0.2": "patches/decode-named-character-reference@1.0.2.patch",
"next@16.4.5": "patches/next@16.4.5.patch",
"mermaid@11.16.1": "patches/mermaid@11.16.1.patch",
"next@16.4.3": "patches/next@16.4.3.patch",
},
"overrides": {
"@codemirror/state": "6.4.1",
@@ -888,23 +888,23 @@
"@napi-rs/wasm-runtime": ["@napi-rs/wasm-runtime@1.0.6", "", { "dependencies": { "@emnapi/core": "^1.5.0", "@emnapi/runtime": "^1.5.0", "@tybys/wasm-util": "^0.10.1" } }, "sha512-DXj75ewm11LIWUk198QSKUTxjyRjsBwk09MuMk5DGK+GDUtyPhhEHOGP/Xwwj3DjQXXkivoBirmOnKrLfc0+9g=="],
"@next/env": ["@next/env@16.4.5", "", {}, "sha512-JwSPwpdkZL5VMl2jA/q+JI8MZdweAL3xmw5/tb9y/TLtmS0YXZnmYDzSihwk8xTj1OL+WM53gTqaj96yuLp6Xw=="],
"@next/env": ["@next/env@16.4.3", "", {}, "sha512-a7tz1QCcWWkwC/rPJcPMJk/UNRu9CFhDd3OHYE5hddbJrs8BqRTalxI6GlKCWEGzRLHN+S/B7a4PAHCtm25aBQ=="],
"@next/swc-darwin-arm64": ["@next/swc-darwin-arm64@16.4.5", "", { "os": "darwin", "cpu": "arm64" }, "sha512-W5TniBzWKASbNNwHZ/S/f1MxQUXU/LdjklVMWA0Ujbfl7SZnUzFls45hO0i/sF7Bx1jJBWp7WWmoQajXtX/O8A=="],
"@next/swc-darwin-arm64": ["@next/swc-darwin-arm64@16.4.3", "", { "os": "darwin", "cpu": "arm64" }, "sha512-4yq5EXBt+VDtAZwTyfijaFp5D2C5oz3Ikw5a2kiX2K9nw72vrZX2q5UuAlkPtUMO1tQz6JTKpaKWjS7OOefTDQ=="],
"@next/swc-darwin-x64": ["@next/swc-darwin-x64@16.4.5", "", { "os": "darwin", "cpu": "x64" }, "sha512-uWq4qkHapBDS1oFltWS4YxTb9pLHAtLNcpbuK6SmRsebLYZqpBML/j/C0op+50JYGTpZgVL/DWNt/6oWlamrrw=="],
"@next/swc-darwin-x64": ["@next/swc-darwin-x64@16.4.3", "", { "os": "darwin", "cpu": "x64" }, "sha512-1Rvkn/LUhnEF8WxnRkOrqGhbwXui1bkWFxONKIbN+r7C+9KHDSZ+iUoj4CzymVMWUyZIyx9szcb9+kbKhD500A=="],
"@next/swc-linux-arm64-gnu": ["@next/swc-linux-arm64-gnu@16.4.5", "", { "os": "linux", "cpu": "arm64" }, "sha512-FdRcyOx5u5P51mlAqLB9EXdd8jZO5fsdHtk4BAQSkqOywCsbTNN/rmw+jO7pnmjNdAtu2AG46NzbCL2FPDrrgw=="],
"@next/swc-linux-arm64-gnu": ["@next/swc-linux-arm64-gnu@16.4.3", "", { "os": "linux", "cpu": "arm64" }, "sha512-dCKpXErGg3abUM6t5JTJV/ottVBTStJB5lRJTbgdUdQaQ+jNHiK56Hsc0YAEg/rinSh42hYG3HWiYmEMdilnxg=="],
"@next/swc-linux-arm64-musl": ["@next/swc-linux-arm64-musl@16.4.5", "", { "os": "linux", "cpu": "arm64" }, "sha512-cyvmmgtRXR8aGVT86wi9Py53IlfyCx7P2fZxuAXAoTummDnhKtUyjrMeXfapqp4qgD+gT5RqyGD/VfA16jEK7Q=="],
"@next/swc-linux-arm64-musl": ["@next/swc-linux-arm64-musl@16.4.3", "", { "os": "linux", "cpu": "arm64" }, "sha512-WwYbhWkhYBvBtib1K4W0kL8MW2snBD2A5b3SN4vPpqalZbZs5+bQ1yzAdepVoOqrFfEW3dmREy4Zs1MrWcrFbw=="],
"@next/swc-linux-x64-gnu": ["@next/swc-linux-x64-gnu@16.4.5", "", { "os": "linux", "cpu": "x64" }, "sha512-hPc+Fl+N22DAvqZHq559NmamXboOX5Lu8I5Wl0DezfrhTk1Zz21NQeYoZDmNI/NjTcrdsVxM72Fzn2lI+Q+vAw=="],
"@next/swc-linux-x64-gnu": ["@next/swc-linux-x64-gnu@16.4.3", "", { "os": "linux", "cpu": "x64" }, "sha512-QymWvfUwDEC5/lpJOsxX5VAbyoR2D13+2Jsjz4be7gT4LPqEgdpkeLIR/HFfCLgKzoMhpJbp6I/JnogyNZHcaA=="],
"@next/swc-linux-x64-musl": ["@next/swc-linux-x64-musl@16.4.5", "", { "os": "linux", "cpu": "x64" }, "sha512-gbACYE8IP/jlprNTpiWXHb8N9CofOzpnEwH2SrIz1dUbiJf1FbDssDupCAPeP1Taxe8mgG20sGZamJI7KFOdZw=="],
"@next/swc-linux-x64-musl": ["@next/swc-linux-x64-musl@16.4.3", "", { "os": "linux", "cpu": "x64" }, "sha512-Vmjd9D7DpA4Vv3cUlr82QWgJD/BQZmns801vtC5VWHg6jCIA4a5vMKpQnfrM2pyCrp2eV0ENdUg4PlN3bAc2Yw=="],
"@next/swc-win32-arm64-msvc": ["@next/swc-win32-arm64-msvc@16.4.5", "", { "os": "win32", "cpu": "arm64" }, "sha512-+8gj++ZMo8H20Xh2ijjNqyFk5LPLw0AC4Fs4Tq/G94rjjQXhOjN4jgSWsWKPFsyY26hfIeemJIwKtMxOsp5GBA=="],
"@next/swc-win32-arm64-msvc": ["@next/swc-win32-arm64-msvc@16.4.3", "", { "os": "win32", "cpu": "arm64" }, "sha512-lG1pPdPLk7gTyGb00n5JIMLdBJgjb+UEhSdZvFbhUMg0DyC6z4B7RnpSKF9VCd4imkLObVbXOFA0kFCpw7yFow=="],
"@next/swc-win32-x64-msvc": ["@next/swc-win32-x64-msvc@16.4.5", "", { "os": "win32", "cpu": "x64" }, "sha512-qNZj66pYXnaWLiF9R9GUbfBdrCv7kC6TaZfIwB2KH5WPc/8pEM3nVOj8hpQhWJU8S94rlH5MPDcX15+RrgUhiw=="],
"@next/swc-win32-x64-msvc": ["@next/swc-win32-x64-msvc@16.4.3", "", { "os": "win32", "cpu": "x64" }, "sha512-NmQC9RkJdnPXRaMxtkCzobB3teVjqF33oSOnwDfi+XYGWWYpt+xlGK3mtktSKLbdjwaWbJu2OkkMiRFGUUncKg=="],
"@node-minify/core": ["@node-minify/core@9.0.2", "", { "dependencies": { "@node-minify/utils": "9.0.1", "glob": "10.3.3", "mkdirp": "3.0.1" } }, "sha512-FNhv29Wom6wKrrFKaeAfmZqz7TX5A1E6P+bpd0VIc+DYWMLUIhAViS8riaZg3A1oD0s06s+5BG2Fg7RqMKiKHw=="],
@@ -934,9 +934,9 @@
"@octokit/types": ["@octokit/types@14.1.0", "", { "dependencies": { "@octokit/openapi-types": "^25.1.0" } }, "sha512-1y6DgTy8Jomcpu33N+p5w58l6xyt55Ar2I91RPiIA0xCJBXyUAhXCcmZaDWSANiha7R9a6qJJ2CRomGPZ6f46g=="],
"@opennextjs/aws": ["@opennextjs/aws@4.1.15", "", { "dependencies": { "@ast-grep/napi": "^0.45.3", "@aws-sdk/client-cloudfront": "3.984.0", "@aws-sdk/client-dynamodb": "3.984.0", "@aws-sdk/client-lambda": "3.984.0", "@aws-sdk/client-s3": "3.984.0", "@aws-sdk/client-sqs": "3.984.0", "@node-minify/core": "^9.0.2", "@node-minify/terser": "^9.0.1", "@tsconfig/node18": "^18.2.7", "aws4fetch": "^1.0.20", "chalk": "^5.6.2", "cookie": "^1.1.1", "esbuild": "0.28.2", "express": "^5.2.1", "path-to-regexp": "^6.3.0", "urlpattern-polyfill": "^10.1.0", "yaml": "^2.9.1" }, "peerDependencies": { "diff": "^9.0.0", "next": ">=15.5.29 <16 || >=16.4.5" }, "optionalPeers": ["diff"], "bin": { "open-next": "dist/index.js" } }, "sha512-ulv7rFEAeieD0d/zDMnw4IFPU+zY/atVUhn7ezgFqIurLB5oBYeHCUGlcGk3Pg7uMPeI03SNRjHW1+xL9EwMPw=="],
"@opennextjs/aws": ["@opennextjs/aws@4.1.11", "", { "dependencies": { "@ast-grep/napi": "^0.45.3", "@aws-sdk/client-cloudfront": "3.984.0", "@aws-sdk/client-dynamodb": "3.984.0", "@aws-sdk/client-lambda": "3.984.0", "@aws-sdk/client-s3": "3.984.0", "@aws-sdk/client-sqs": "3.984.0", "@node-minify/core": "^9.0.2", "@node-minify/terser": "^9.0.1", "@tsconfig/node18": "^18.2.7", "aws4fetch": "^1.0.20", "chalk": "^5.6.2", "cookie": "^1.1.1", "esbuild": "0.28.2", "express": "^5.2.1", "path-to-regexp": "^6.3.0", "urlpattern-polyfill": "^10.1.0", "yaml": "^2.9.1" }, "peerDependencies": { "next": ">=15.5.28 <16 || >=16.4.1" }, "bin": { "open-next": "dist/index.js" } }, "sha512-cew0cUgGZF/Kr/C+Z1qvmAdKj4Va5cRho+aB6Ci/5ILd+QDdrR2LVaC/6Qm12KVF37vSLDK7lPDd/KdvvCoNEw=="],
"@opennextjs/cloudflare": ["@opennextjs/cloudflare@1.20.16", "", { "dependencies": { "@ast-grep/napi": "^0.45.3", "@dotenvx/dotenvx": "^2.33.0", "@opennextjs/aws": "4.1.15", "ci-info": "^4.2.0", "cloudflare": "^4.4.1", "comment-json": "^4.5.1", "enquirer": "^2.4.1", "glob": "^13.0.6", "ts-tqdm": "^0.8.6", "yargs": "^18.2.0" }, "peerDependencies": { "next": ">=15.5.29 <16 || >=16.4.5", "rclone.js": "^0.6.6", "wrangler": "^4.148.0" }, "optionalPeers": ["rclone.js"], "bin": { "opennextjs-cloudflare": "dist/cli/index.js" } }, "sha512-3c1Cwex5e2jXy4o4RZAusy8o9Uz4eowuPCjdVLYEZ/MnkAzN2jh9dOgsRjgu3wjigXuNe8rmPECmOTo+xKQHsw=="],
"@opennextjs/cloudflare": ["@opennextjs/cloudflare@1.20.12", "", { "dependencies": { "@ast-grep/napi": "^0.45.3", "@dotenvx/dotenvx": "^2.33.0", "@opennextjs/aws": "4.1.11", "ci-info": "^4.2.0", "cloudflare": "^4.4.1", "comment-json": "^4.5.1", "enquirer": "^2.4.1", "glob": "^13.0.6", "ts-tqdm": "^0.8.6", "yargs": "^18.2.0" }, "peerDependencies": { "next": ">=15.5.28 <16 || >=16.4.1", "rclone.js": "^0.6.6", "wrangler": "^4.148.0" }, "optionalPeers": ["rclone.js"], "bin": { "opennextjs-cloudflare": "dist/cli/index.js" } }, "sha512-ZU1j7hMuOFaa0RHT/wrPXQKEEqzkkoc3fHaHy0Xrx4K0zZdSXGQbwbSHCnbjPRGXblCuWo+ur6UUkl0o9kVhrg=="],
"@opentelemetry/api": ["@opentelemetry/api@1.9.0", "", {}, "sha512-3giAOQvZiH5F9bMlMiv8+GSPMeqg0dbaeo58/0SlA9sxSqZhnUtxzX9/2FzyhS9sWQf5S0GJE0AKBrFqjpeYcg=="],
@@ -1020,43 +1020,43 @@
"@oxfmt/binding-win32-x64-msvc": ["@oxfmt/binding-win32-x64-msvc@0.62.0", "", { "os": "win32", "cpu": "x64" }, "sha512-dlI5SY7XYQCiCBafntWagCR6HcAJB/NpsLtdlPx8x08+Osz8Ok1HHz1GZuusegCe/VoJ6pAnF5a4pd5OZAq7qQ=="],
"@oxlint/binding-android-arm-eabi": ["@oxlint/binding-android-arm-eabi@1.92.0", "", { "os": "android", "cpu": "arm" }, "sha512-k3Sd4ixQfiOrybv1gT+AMI81HSdtAFsiCFx+xXxWdFkmKW2HNrSiOfwn20o5nl/ggwbzU1oNLDeU/fRPinTVZQ=="],
"@oxlint/binding-android-arm-eabi": ["@oxlint/binding-android-arm-eabi@1.90.0", "", { "os": "android", "cpu": "arm" }, "sha512-sgfalb1HuxYjiAa4wESZ626z1FGusqNcXYHyB5oIOEprS2sbPg0UYEfo83uF1GNG70DIfZxHkXuE6KFrlSdn8Q=="],
"@oxlint/binding-android-arm64": ["@oxlint/binding-android-arm64@1.92.0", "", { "os": "android", "cpu": "arm64" }, "sha512-OZzgEuiTSG11QkBWdXEguiLOT6lL09KtfcC/BmvUQWBAjU5eVyBxIAsmWAXv8L85/eT6RE0GBEWTEFBAbYE74g=="],
"@oxlint/binding-android-arm64": ["@oxlint/binding-android-arm64@1.90.0", "", { "os": "android", "cpu": "arm64" }, "sha512-RcKhz1ETMq+fazE9TKS2+5NIRGwigm/nW8egqF0LI+A8Yw2iW5r0E/C3XAPRiwIm/vcPiutIRIa6IQCIKhZsTQ=="],
"@oxlint/binding-darwin-arm64": ["@oxlint/binding-darwin-arm64@1.92.0", "", { "os": "darwin", "cpu": "arm64" }, "sha512-We6XS7tIqxgUoany6uyGjj7mNsh/mwf4Gt9gUzhxG65NKo2Ow9s6tDfrVuI0FVg8n3YmpW5PBx80qFxiLwAfsA=="],
"@oxlint/binding-darwin-arm64": ["@oxlint/binding-darwin-arm64@1.90.0", "", { "os": "darwin", "cpu": "arm64" }, "sha512-PSrxMvP6mx+p1karZcUxLdy9lpaP+JWQPti4al9FgTaPhxE+pT/BjhGExloVVSWgZgIfOlLOjVyyq8BXlodhLQ=="],
"@oxlint/binding-darwin-x64": ["@oxlint/binding-darwin-x64@1.92.0", "", { "os": "darwin", "cpu": "x64" }, "sha512-jKJWijmi6AxAZcXXWA6R/NLVZHxoRTbIMnV8znsHzeiVfuEefYcyR8SJGfbBPmkG+kveLFRcBGw0fBrjLqtGmQ=="],
"@oxlint/binding-darwin-x64": ["@oxlint/binding-darwin-x64@1.90.0", "", { "os": "darwin", "cpu": "x64" }, "sha512-OLbU9qsrV2Q8QxT2OEzOPdO8zCCpyI8qB+hDI8yr6RsYELtkf0FAZhJdfjM/RnLHKzt44HWwAPnk92vBtKofvw=="],
"@oxlint/binding-freebsd-x64": ["@oxlint/binding-freebsd-x64@1.92.0", "", { "os": "freebsd", "cpu": "x64" }, "sha512-wkw01wvJPM8/4jh+MV3cp11859VuBc94N2q5uOzcBgdGIRAqMCg1O0W/+xsZ1fsInvuUcv2Xo4nd1nzcKhi9kg=="],
"@oxlint/binding-freebsd-x64": ["@oxlint/binding-freebsd-x64@1.90.0", "", { "os": "freebsd", "cpu": "x64" }, "sha512-fBA4pWyVDARmNucQqpyFuPC49xYf1r+sX7dxPL5fNPQrSMLum39Sn56tZ9JPleWC7FzLPwSQ7plYYfirYBHF8A=="],
"@oxlint/binding-linux-arm-gnueabihf": ["@oxlint/binding-linux-arm-gnueabihf@1.92.0", "", { "os": "linux", "cpu": "arm" }, "sha512-Elm6nW308MzmR8knvk0tPqQ4XE+PGKztjXv7kVZTRLkhBQZRXHUQoBLc4E30fiIuF6gkZO5f3EpJtQc4Ok/fXw=="],
"@oxlint/binding-linux-arm-gnueabihf": ["@oxlint/binding-linux-arm-gnueabihf@1.90.0", "", { "os": "linux", "cpu": "arm" }, "sha512-zhxH78eP2nR6/pGdhBc7MIfjhhcgATeu8fkmkFJbuzfk6Cj0FzBxyEhL85yDqrCybjx+G2YDzZGsxIO9kvO4Iw=="],
"@oxlint/binding-linux-arm-musleabihf": ["@oxlint/binding-linux-arm-musleabihf@1.92.0", "", { "os": "linux", "cpu": "arm" }, "sha512-oylpBAoeogddjhTlSPsXrzGq/aeJsvaULz/hYXvWtGn/Wt8LPLC7gFhucCicbRnzEKsShrZxIA0KyHmtFNnijQ=="],
"@oxlint/binding-linux-arm-musleabihf": ["@oxlint/binding-linux-arm-musleabihf@1.90.0", "", { "os": "linux", "cpu": "arm" }, "sha512-MvYmpHyJqUJjEvkZbJHdwfdL45cGn8EVBkYmoXFiaYFW9suoD3dbJl5mBdpy0DVgdjlyddmldbRtk3cCgETadQ=="],
"@oxlint/binding-linux-arm64-gnu": ["@oxlint/binding-linux-arm64-gnu@1.92.0", "", { "os": "linux", "cpu": "arm64" }, "sha512-/EWOI0wwY+74UGvC93TldpoNP8moIcidVUPbUSoX16/SEdF7ah209yxSQia4+9JdCRWYA3+yQMofXMgWKk/16Q=="],
"@oxlint/binding-linux-arm64-gnu": ["@oxlint/binding-linux-arm64-gnu@1.90.0", "", { "os": "linux", "cpu": "arm64" }, "sha512-L13Sy+Kg0nZhwTsToniqjUFPA2TuM6962qCZ5Wp5KeB517Tw7ApdLTTtlb+bF86fcZZa2EtvCVvAJxk4Dya/MQ=="],
"@oxlint/binding-linux-arm64-musl": ["@oxlint/binding-linux-arm64-musl@1.92.0", "", { "os": "linux", "cpu": "arm64" }, "sha512-9Se7Zuazr104yc2PaluriJW2rqvtaN6FSi9MSjQgZGeYb6LKvEcJ586tpjek0l7hNQNoir8MID7OENPH6juN1w=="],
"@oxlint/binding-linux-arm64-musl": ["@oxlint/binding-linux-arm64-musl@1.90.0", "", { "os": "linux", "cpu": "arm64" }, "sha512-wFDdZWGpzIPFdJFjSLWnKB0TGzFriTKUIrl04iMqMyM9BBIJTuerfCHYa0WpDSjr5x3lcW/CHLyacSt886WpGg=="],
"@oxlint/binding-linux-ppc64-gnu": ["@oxlint/binding-linux-ppc64-gnu@1.92.0", "", { "os": "linux", "cpu": "ppc64" }, "sha512-88IAchs204I/xxAbAo3NRyz1m/29tn8jUAPvc4tK4FzrT2PLwZertd93ANF6231vwbAhYiD5gl0cX8Po5xsjWQ=="],
"@oxlint/binding-linux-ppc64-gnu": ["@oxlint/binding-linux-ppc64-gnu@1.90.0", "", { "os": "linux", "cpu": "ppc64" }, "sha512-FRywfn+MoKn8xpBSzgNwNVliSKRI2QXkxi/iF7o6FEQs8Bh8z2RpVTaFAcO3pchXjvB2eGNFIoLLQABIQ+u7VA=="],
"@oxlint/binding-linux-riscv64-gnu": ["@oxlint/binding-linux-riscv64-gnu@1.92.0", "", { "os": "linux", "cpu": "none" }, "sha512-KtFdVdkfvBGcsrmnbjYJ9/XTDABnaniiwnptAcAm0pkaR2zhZ3sr/Xy+N1Xbz1Yq5Jegu7SoeNv9caTP0b5OTA=="],
"@oxlint/binding-linux-riscv64-gnu": ["@oxlint/binding-linux-riscv64-gnu@1.90.0", "", { "os": "linux", "cpu": "none" }, "sha512-IS2PaUgpc/qeLADTyhUNmdx3x4ijs9pjJdPKBYHaT+mAE7k3FsjnHPTjhpsak1b++h6CIPhv6WX9Z+y7Pw0voQ=="],
"@oxlint/binding-linux-riscv64-musl": ["@oxlint/binding-linux-riscv64-musl@1.92.0", "", { "os": "linux", "cpu": "none" }, "sha512-V43CO5FPgHtwHup4H5+dIdwzZX2FhREQGsSBZx8V1UyFEAul0Q13qviKqZfSMM6G41CGtCekVpJGGOxW5v1y8Q=="],
"@oxlint/binding-linux-riscv64-musl": ["@oxlint/binding-linux-riscv64-musl@1.90.0", "", { "os": "linux", "cpu": "none" }, "sha512-s7JFKRkGS8O7i2ZVODfuO++NC7sH6HDqpMn8lYxw91w0SXJOxnAVjQ8utvmDwLMMT0jaSkuOKuUYJDGDtu4sHQ=="],
"@oxlint/binding-linux-s390x-gnu": ["@oxlint/binding-linux-s390x-gnu@1.92.0", "", { "os": "linux", "cpu": "s390x" }, "sha512-WooxeACzGH5q34olo7JgAk7XbVkTUNfwhR/TzmhwVs/y1p2R7ZWJo14hiyxiGcoYZR1iBnbBFHectADqb/KSog=="],
"@oxlint/binding-linux-s390x-gnu": ["@oxlint/binding-linux-s390x-gnu@1.90.0", "", { "os": "linux", "cpu": "s390x" }, "sha512-b0GxrOQr5VONCkd7KLSqmP6b6nqZuTpuS8QPQHzltmqdXP5bY0Jl0CZ0QmlCTrS3ExaLYbioFYOARzNbYvcApQ=="],
"@oxlint/binding-linux-x64-gnu": ["@oxlint/binding-linux-x64-gnu@1.92.0", "", { "os": "linux", "cpu": "x64" }, "sha512-lW2pLF1oFvNN780YUCtDyoUm8oFzZGJNcOFe9RtLMX5v5+FcWfAQvHUMMPF8H8kJB0HAi3dFmWDWLa5VPuY9mw=="],
"@oxlint/binding-linux-x64-gnu": ["@oxlint/binding-linux-x64-gnu@1.90.0", "", { "os": "linux", "cpu": "x64" }, "sha512-iaJeShJtgUp8rZbt9YUdTAGOpmX5KogCLba17Jp1tWdJ3F4M3D2g2TKUyI1FMTHxKH9NNHuQcuC2kZRg6IV7yQ=="],
"@oxlint/binding-linux-x64-musl": ["@oxlint/binding-linux-x64-musl@1.92.0", "", { "os": "linux", "cpu": "x64" }, "sha512-2BJAAB/eqPn7iD7mFVfs+1ZVUogAYOMCTaUgjAvbtNGg2ppCDE7gcv/9VSO6GCDybdFUqlcyeyjn9hRpl1ZHog=="],
"@oxlint/binding-linux-x64-musl": ["@oxlint/binding-linux-x64-musl@1.90.0", "", { "os": "linux", "cpu": "x64" }, "sha512-/aZoXnL5WBLCXuzfHqvEFXcm4iwYmr/cYByHDTXzLFzJdE5DC7bm6phpWqHv6BeqpVgY9IpBAxGDv2WEkl5JCg=="],
"@oxlint/binding-openharmony-arm64": ["@oxlint/binding-openharmony-arm64@1.92.0", "", { "os": "none", "cpu": "arm64" }, "sha512-iLtjNqqa/2IV5qu/3rrkpVd42Ia3yeCn4fSZoEr+m5FoGHtZvAV6J6YuU3lewg5Rg5ORGvwhdgN+7gNzwkl7tA=="],
"@oxlint/binding-openharmony-arm64": ["@oxlint/binding-openharmony-arm64@1.90.0", "", { "os": "none", "cpu": "arm64" }, "sha512-SMhk7ozwoxYDKfYqGZCQEfULOKDneF9uhaoIf2neoDLWvNtjY9yVeL7YHmE5L9WdKvMpWNwwZxhenxBu6AgfOg=="],
"@oxlint/binding-win32-arm64-msvc": ["@oxlint/binding-win32-arm64-msvc@1.92.0", "", { "os": "win32", "cpu": "arm64" }, "sha512-ryxiR3ZqB0OJzydMu+bVC3R7ZtoU7X1rI8sEgTBCCvQvgVwoCwqSFlfmhgiZ+9wZ4IdTsFeu9tdiF9KtRCbSHQ=="],
"@oxlint/binding-win32-arm64-msvc": ["@oxlint/binding-win32-arm64-msvc@1.90.0", "", { "os": "win32", "cpu": "arm64" }, "sha512-KBvR3A9fO7fCi2vCP8ifWvlia7tGEQV9NaYh+IGwa/7Groy48Mt/UaYqMK9/zOtAWl20BUCf6RPqzJ32fRw33Q=="],
"@oxlint/binding-win32-ia32-msvc": ["@oxlint/binding-win32-ia32-msvc@1.92.0", "", { "os": "win32", "cpu": "ia32" }, "sha512-DaE9OChj4nsdEST32BP7saGu8WtjOinTy/eS88dZ0TvTfDV26ebRDhsI1rL9OKXfO+DgehzhAQMqdPr2jgfcFw=="],
"@oxlint/binding-win32-ia32-msvc": ["@oxlint/binding-win32-ia32-msvc@1.90.0", "", { "os": "win32", "cpu": "ia32" }, "sha512-+x42rDHQGbTCuT3EzpWAzhP3NoVPE/cJsG4gnrakOSg0olV+GCdMpPU23Nvrl3zZMnXxFZdTtDv4D3SuaA5ZeQ=="],
"@oxlint/binding-win32-x64-msvc": ["@oxlint/binding-win32-x64-msvc@1.92.0", "", { "os": "win32", "cpu": "x64" }, "sha512-0AyhqX0ciFuEnHIL+B4PIMMX3s/IpGHNEbbUqwsNhSrzWUSlEOPw/q7qFnRsEJfiKedcqVfUE/aXYuSMtpiFyw=="],
"@oxlint/binding-win32-x64-msvc": ["@oxlint/binding-win32-x64-msvc@1.90.0", "", { "os": "win32", "cpu": "x64" }, "sha512-30JiaFEBUB9peEOcvVM8ggo88SoN/IdSr9DW505JdBji/R6dM66gKEiG65hw6qcaF2f4mO0cEJ+RwRZprmun9g=="],
"@panzoom/panzoom": ["@panzoom/panzoom@4.6.1", "", {}, "sha512-ogf/KhHHjj+DYAvHfaf3TXMQ8OE36pJtKpabLlx1OmpjcgtpCvkUoCiNONA8kuVRPGJdLiqMf0n8LRFXj1OyuA=="],
@@ -2636,7 +2636,7 @@
"netmask": ["netmask@2.0.2", "", {}, "sha512-dBpDMdxv9Irdq66304OLfEmQ9tbNRFnFTuZiLo+bD+r332bBmMJ8GBLXklIXXgxd3+v9+KUnZaUR5PJMa75Gsg=="],
"next": ["next@16.4.5", "", { "dependencies": { "@next/env": "16.4.5", "@swc/helpers": "0.5.23", "baseline-browser-mapping": "^2.9.19", "caniuse-lite": "^1.0.30001579", "postcss": "8.5.23", "styled-jsx": "5.1.6" }, "optionalDependencies": { "@next/swc-darwin-arm64": "16.4.5", "@next/swc-darwin-x64": "16.4.5", "@next/swc-linux-arm64-gnu": "16.4.5", "@next/swc-linux-arm64-musl": "16.4.5", "@next/swc-linux-x64-gnu": "16.4.5", "@next/swc-linux-x64-musl": "16.4.5", "@next/swc-win32-arm64-msvc": "16.4.5", "@next/swc-win32-x64-msvc": "16.4.5", "sharp": "^0.35.5" }, "peerDependencies": { "@opentelemetry/api": "^1.1.0", "@playwright/test": "^1.51.1", "babel-plugin-react-compiler": "*", "react": "^18.2.0 || 19.0.0-rc-de68d2f4-20241204 || ^19.0.0", "react-dom": "^18.2.0 || 19.0.0-rc-de68d2f4-20241204 || ^19.0.0", "sass": "^1.3.0" }, "optionalPeers": ["@opentelemetry/api", "@playwright/test", "babel-plugin-react-compiler", "sass"], "bin": { "next": "dist/bin/next" } }, "sha512-rmdfsWosjTUO+6R0S3KokoIk6Kj0sWDRTe86tZHdqaWH/oXq/udX3/4xb+YQi7aWbyEFoglDU54kaifLCdXbBw=="],
"next": ["next@16.4.3", "", { "dependencies": { "@next/env": "16.4.3", "@swc/helpers": "0.5.23", "baseline-browser-mapping": "^2.9.19", "caniuse-lite": "^1.0.30001579", "postcss": "8.5.23", "styled-jsx": "5.1.6" }, "optionalDependencies": { "@next/swc-darwin-arm64": "16.4.3", "@next/swc-darwin-x64": "16.4.3", "@next/swc-linux-arm64-gnu": "16.4.3", "@next/swc-linux-arm64-musl": "16.4.3", "@next/swc-linux-x64-gnu": "16.4.3", "@next/swc-linux-x64-musl": "16.4.3", "@next/swc-win32-arm64-msvc": "16.4.3", "@next/swc-win32-x64-msvc": "16.4.3", "sharp": "^0.35.5" }, "peerDependencies": { "@opentelemetry/api": "^1.1.0", "@playwright/test": "^1.51.1", "babel-plugin-react-compiler": "*", "react": "^18.2.0 || 19.0.0-rc-de68d2f4-20241204 || ^19.0.0", "react-dom": "^18.2.0 || 19.0.0-rc-de68d2f4-20241204 || ^19.0.0", "sass": "^1.3.0" }, "optionalPeers": ["@opentelemetry/api", "@playwright/test", "babel-plugin-react-compiler", "sass"], "bin": { "next": "dist/bin/next" } }, "sha512-OqxKTGi9u80FydydsMNYNjnuje9Au+kvHlt2GZ//ftdpDHm1dxKqAaENoOOTX5wKzn+9vaKUNIfZeyZUuLhCnA=="],
"next-themes": ["next-themes@0.4.6", "", { "peerDependencies": { "react": "^16.8 || ^17 || ^18 || ^19 || ^19.0.0-rc", "react-dom": "^16.8 || ^17 || ^18 || ^19 || ^19.0.0-rc" } }, "sha512-pZvgD5L0IEvX5/9GWyHMf3m8BKiVQwsCMHfoFosXtXBMnaS0ZnIJ9ST4b4NqLVKDEm8QBxoNNGNaBv2JNF6XNA=="],
@@ -2696,7 +2696,7 @@
"oxfmt": ["oxfmt@0.62.0", "", { "dependencies": { "tinypool": "2.1.0" }, "optionalDependencies": { "@oxfmt/binding-android-arm-eabi": "0.62.0", "@oxfmt/binding-android-arm64": "0.62.0", "@oxfmt/binding-darwin-arm64": "0.62.0", "@oxfmt/binding-darwin-x64": "0.62.0", "@oxfmt/binding-freebsd-x64": "0.62.0", "@oxfmt/binding-linux-arm-gnueabihf": "0.62.0", "@oxfmt/binding-linux-arm-musleabihf": "0.62.0", "@oxfmt/binding-linux-arm64-gnu": "0.62.0", "@oxfmt/binding-linux-arm64-musl": "0.62.0", "@oxfmt/binding-linux-ppc64-gnu": "0.62.0", "@oxfmt/binding-linux-riscv64-gnu": "0.62.0", "@oxfmt/binding-linux-riscv64-musl": "0.62.0", "@oxfmt/binding-linux-s390x-gnu": "0.62.0", "@oxfmt/binding-linux-x64-gnu": "0.62.0", "@oxfmt/binding-linux-x64-musl": "0.62.0", "@oxfmt/binding-openharmony-arm64": "0.62.0", "@oxfmt/binding-win32-arm64-msvc": "0.62.0", "@oxfmt/binding-win32-ia32-msvc": "0.62.0", "@oxfmt/binding-win32-x64-msvc": "0.62.0" }, "peerDependencies": { "svelte": "^5.0.0", "vite-plus": "*" }, "optionalPeers": ["svelte", "vite-plus"], "bin": { "oxfmt": "bin/oxfmt" } }, "sha512-vxgGHTmnDU9j4CX7dDBLzxgmHxfda/yPcgJkGCMUSCwRmz+euo/V08xXLNgXTeqAB9Fhf3Pe2nO1RNKLCVgphQ=="],
"oxlint": ["oxlint@1.92.0", "", { "optionalDependencies": { "@oxlint/binding-android-arm-eabi": "1.92.0", "@oxlint/binding-android-arm64": "1.92.0", "@oxlint/binding-darwin-arm64": "1.92.0", "@oxlint/binding-darwin-x64": "1.92.0", "@oxlint/binding-freebsd-x64": "1.92.0", "@oxlint/binding-linux-arm-gnueabihf": "1.92.0", "@oxlint/binding-linux-arm-musleabihf": "1.92.0", "@oxlint/binding-linux-arm64-gnu": "1.92.0", "@oxlint/binding-linux-arm64-musl": "1.92.0", "@oxlint/binding-linux-ppc64-gnu": "1.92.0", "@oxlint/binding-linux-riscv64-gnu": "1.92.0", "@oxlint/binding-linux-riscv64-musl": "1.92.0", "@oxlint/binding-linux-s390x-gnu": "1.92.0", "@oxlint/binding-linux-x64-gnu": "1.92.0", "@oxlint/binding-linux-x64-musl": "1.92.0", "@oxlint/binding-openharmony-arm64": "1.92.0", "@oxlint/binding-win32-arm64-msvc": "1.92.0", "@oxlint/binding-win32-ia32-msvc": "1.92.0", "@oxlint/binding-win32-x64-msvc": "1.92.0" }, "peerDependencies": { "oxlint-tsgolint": ">=7.0.2005", "vite-plus": "*" }, "optionalPeers": ["oxlint-tsgolint", "vite-plus"], "bin": { "oxlint": "bin/oxlint" } }, "sha512-y9iRiRwVjVFqzKNXZJ9bT/GYRdf+F9Gy+a1Yju2Aq3xqqa4FJYXHI8VrxlpzxKDvkYRohvJX42m/eH+qkQPOFw=="],
"oxlint": ["oxlint@1.90.0", "", { "optionalDependencies": { "@oxlint/binding-android-arm-eabi": "1.90.0", "@oxlint/binding-android-arm64": "1.90.0", "@oxlint/binding-darwin-arm64": "1.90.0", "@oxlint/binding-darwin-x64": "1.90.0", "@oxlint/binding-freebsd-x64": "1.90.0", "@oxlint/binding-linux-arm-gnueabihf": "1.90.0", "@oxlint/binding-linux-arm-musleabihf": "1.90.0", "@oxlint/binding-linux-arm64-gnu": "1.90.0", "@oxlint/binding-linux-arm64-musl": "1.90.0", "@oxlint/binding-linux-ppc64-gnu": "1.90.0", "@oxlint/binding-linux-riscv64-gnu": "1.90.0", "@oxlint/binding-linux-riscv64-musl": "1.90.0", "@oxlint/binding-linux-s390x-gnu": "1.90.0", "@oxlint/binding-linux-x64-gnu": "1.90.0", "@oxlint/binding-linux-x64-musl": "1.90.0", "@oxlint/binding-openharmony-arm64": "1.90.0", "@oxlint/binding-win32-arm64-msvc": "1.90.0", "@oxlint/binding-win32-ia32-msvc": "1.90.0", "@oxlint/binding-win32-x64-msvc": "1.90.0" }, "peerDependencies": { "oxlint-tsgolint": ">=7.0.2005", "vite-plus": "*" }, "optionalPeers": ["oxlint-tsgolint", "vite-plus"], "bin": { "oxlint": "bin/oxlint" } }, "sha512-RkTN9EmgIUpLuhNoLhO3OliMGJlvb3Dk7XVjBZnfoMCHrVpuz5ESd97klfiyYeV7XfA2lNLnDCPMkUI+Qw5How=="],
"p-filter": ["p-filter@2.1.0", "", { "dependencies": { "p-map": "^2.0.0" } }, "sha512-ZBxxZ5sL2HghephhpGAQdoskxplTwr7ICaehZwLIlfL6acuVgZPm8yBNuRAFBGEqtD/hmUeq9eqLg2ys9Xr/yw=="],
+3 -3
View File
@@ -7,7 +7,7 @@
"devDependencies": {
"@changesets/cli": "^2.31.1",
"oxfmt": "^0.62.0",
"oxlint": "^1.92.0",
"oxlint": "^1.90.0",
"turbo": "^2.11.10",
"vercel": "50.37.3"
},
@@ -67,7 +67,7 @@
"patchedDependencies": {
"decode-named-character-reference@1.0.2": "patches/decode-named-character-reference@1.0.2.patch",
"@vercel/next@4.4.2": "patches/@vercel%2Fnext@4.4.2.patch",
"mermaid@11.16.1": "patches/mermaid@11.16.1.patch",
"next@16.4.5": "patches/next@16.4.5.patch"
"next@16.4.3": "patches/next@16.4.3.patch",
"mermaid@11.16.1": "patches/mermaid@11.16.1.patch"
}
}
-35
View File
@@ -1,40 +1,5 @@
# gitbook
## 0.28.1
### Patch Changes
- a023a71: Warn visitors not to share sensitive personal info in the Assistant context popover.
- 7e096d5: Bump Next.js to 16.4.3, keeping the dev-mode OOM patch.
- 198cafe: Bump Next.js to 16.4.5 and OpenNext (Cloudflare 1.20.16, AWS 4.1.15), keeping the dev-mode OOM patch.
- f61578f: Preconnect each asset origin once, skip same-origin icon URLs, and open the fonts preconnect in CORS mode so font requests can reuse it.
- 26ec43e: Stop caching failed searches, so a rate-limited or failing search is retried on the next query instead of being served from cache for 15 minutes.
- 04f39f1: Declare the Tailwind layer order in each component stylesheet, so a route whose first stylesheet is one of them still puts `base` before `components` and preflight does not strip their padding and borders.
- a512777: Forward the visitor's user agent on ask and Assistant calls so questions are classified by who asked.
- 508f1bc: Load the inline expression runtime only on pages whose code blocks or text use expressions, so other pages ship less JavaScript.
- 04f39f1: Pack the class lists that every block, heading anchor and table cell repeats into shared CSS classes, and carry a table cell's width once as a custom property instead of spelling it out as both width and min-width, so a large page carries far less markup.
- bd431f1: Split llms-full.txt into parts by size so large sites no longer fail with "content too large"
- a5d58bc: Follow site and space redirects when the MCP getPage tool resolves a page URL.
- e6b8502: Fix the MCP `getPage` tool returning "Page not found" for the Markdown URL of a page (`<page>.md`).
- e745c88: Add a search input to filter models by name on OpenAPI models pages.
- 96c5683: Let analytics tools like GA4 track outbound link clicks by using native link navigation.
- 347a1cc: Set `Partitioned` on visitor cookies set inside an iframe so authenticated embeds work cross-site.
- 3837c48: Fix encoded or non-normalized links on proxied sites redirecting to the internal proxy path instead of the public URL.
- ea01850: Support a secondary brand colour for secondary buttons and `$secondary` text, background, icon and tag colours. Sites without one render as before.
- c00a7b3: Resolve the published content with the full URL in a single lookup and always send the visitor country.
- 063e685: Resolve dark-mode image URLs in published Markdown.
- 09a8310: Serve a disallow-all robots.txt instead of redirecting to sign-in on authenticated access sites.
- b7b8ae6: Keep lists, paragraphs and code blocks as HTML in Updates RSS feeds, instead of running all the text together
- 4a72ead: Only apply a site preview customization override to the section or variant it was made for.
- 38f60f2: Render soft line breaks in paragraphs that contain buttons.
- 1383a79: Fix visitors being logged out right after signing in on sites with a logout link in the header.
- be658e1: Truncate long tab titles one by one and show the selected tab's full title, instead of hiding tabs behind a "…" menu
- Updated dependencies [04f39f1]
- Updated dependencies [4dfe630]
- @gitbook/react-contentkit@0.7.18
- @gitbook/openapi-parser@3.0.14
- @gitbook/react-openapi@2.0.1
## 0.28.0
### Minor Changes
+5
View File
@@ -283,6 +283,11 @@ const testCases: TestsCase[] = [
contentBaseURL: 'https://vimeo.com',
tests: [{ name: 'Home', url: '/legal' }],
},
{
name: 'help.aikido.dev',
contentBaseURL: 'https://help.aikido.dev',
tests: [{ name: 'Home', url: '/', run: waitForCookiesDialog }],
},
{
name: 'doc.demarche.numerique.gouv.fr',
contentBaseURL: 'https://doc.demarche.numerique.gouv.fr',
+4 -4
View File
@@ -1,6 +1,6 @@
{
"name": "gitbook",
"version": "0.28.1",
"version": "0.28.0",
"private": true,
"dependencies": {
"@base-ui/react": "catalog:",
@@ -20,8 +20,8 @@
"@gitbook/react-openapi": "workspace:*",
"@mermaid-js/mermaid-zenuml": "^0.2.2",
"@modelcontextprotocol/sdk": "1.17.5",
"@opennextjs/aws": "4.1.15",
"@opennextjs/cloudflare": "1.20.16",
"@opennextjs/aws": "4.1.11",
"@opennextjs/cloudflare": "1.20.12",
"@panzoom/panzoom": "^4.6.1",
"@sindresorhus/fnv1a": "^3.1.0",
"@tailwindcss/container-queries": "^0.1.1",
@@ -51,7 +51,7 @@
"micromark-extension-gfm": "^3.0.0",
"motion": "^12.23.24",
"negotiator": "^1.0.0",
"next": "^16.4.5",
"next": "^16.4.3",
"next-themes": "^0.4.6",
"nuqs": "^2.2.3",
"object-hash": "^3.0.0",
@@ -146,10 +146,6 @@ export function AIChatInput(props: {
<Icon icon="message-question" className="size-3.5 opacity-7" />
{t(language, 'ai_chat_context_previous_messages')}
</li>
<li className="flex items-center gap-2">
<Icon icon="lock" className="size-3.5 opacity-7" />
{t(language, 'ai_chat_context_sensitive_info')}
</li>
</ul>
<p>{t(language, 'ai_chat_context_disclaimer')}</p>
</div>
@@ -137,7 +137,6 @@ export const ar: TranslationLanguage = {
ai_chat_context_pages_youve_read: 'الصفحة التي أنت عليها الآن',
ai_chat_context_info_provided_by_the_site: 'معلومات عنك يوفرها الموقع',
ai_chat_context_previous_messages: 'الرسائل في محادثتك',
ai_chat_context_sensitive_info: 'لا تشارك معلومات شخصية حساسة',
ai_chat_context_disclaimer: 'قد تحتوي إجابات الذكاء الاصطناعي على أخطاء.',
ai_chat_input_placeholder: 'اسأل أو ابحث أو اشرح...',
ai_chat_queued_message: 'سيتم إرسال هذه الرسالة بعد أن ينتهي ${1}',
@@ -141,7 +141,6 @@ export const bg: TranslationLanguage = {
ai_chat_context_pages_youve_read: 'Страницата, на която сте в момента',
ai_chat_context_info_provided_by_the_site: 'Информация за вас, предоставена от сайта',
ai_chat_context_previous_messages: 'Съобщения във вашия разговор',
ai_chat_context_sensitive_info: 'Не споделяйте чувствителна лична информация',
ai_chat_context_disclaimer: 'AI отговорите може да съдържат грешки.',
ai_chat_input_placeholder: 'Попитайте, потърсете или обяснете...',
ai_chat_queued_message: 'Това съобщение ще бъде изпратено, след като ${1} приключи',
@@ -139,7 +139,6 @@ export const cs: TranslationLanguage = {
ai_chat_context_pages_youve_read: 'Stránka, na které se právě nacházíte',
ai_chat_context_info_provided_by_the_site: 'Informace o vás poskytnuté webem',
ai_chat_context_previous_messages: 'Zprávy ve vaší konverzaci',
ai_chat_context_sensitive_info: 'Nesdílejte citlivé osobní údaje',
ai_chat_context_disclaimer: 'Odpovědi AI mohou obsahovat chyby.',
ai_chat_input_placeholder: 'Zeptejte se, hledejte nebo vysvětlete...',
ai_chat_queued_message: 'Tato zpráva se odešle, až ${1} dokončí odpověď',
@@ -138,7 +138,6 @@ export const da: TranslationLanguage = {
ai_chat_context_pages_youve_read: 'Siden du er på nu',
ai_chat_context_info_provided_by_the_site: 'Oplysninger om dig fra webstedet',
ai_chat_context_previous_messages: 'Beskeder i din samtale',
ai_chat_context_sensitive_info: 'Del ikke følsomme personoplysninger',
ai_chat_context_disclaimer: 'AI-svar kan indeholde fejl.',
ai_chat_input_placeholder: 'Spørg, søg eller forklar...',
ai_chat_queued_message: 'Denne besked sendes, når ${1} er færdig',
@@ -145,7 +145,6 @@ export const de: TranslationLanguage = {
ai_chat_context_info_provided_by_the_site:
'Von der Website bereitgestellte Informationen über Sie',
ai_chat_context_previous_messages: 'Nachrichten in Ihrem Gespräch',
ai_chat_context_sensitive_info: 'Teilen Sie keine sensiblen persönlichen Daten',
ai_chat_context_disclaimer: 'KI-Antworten können Fehler enthalten.',
ai_chat_input_placeholder: 'Fragen, suchen oder erklären...',
ai_chat_queued_message: 'Diese Nachricht wird gesendet, sobald ${1} fertig ist',
@@ -143,7 +143,6 @@ export const el: TranslationLanguage = {
ai_chat_context_info_provided_by_the_site:
'Πληροφορίες για εσάς που παρέχονται από τον ιστότοπο',
ai_chat_context_previous_messages: 'Μηνύματα στη συνομιλία σας',
ai_chat_context_sensitive_info: 'Μην κοινοποιείτε ευαίσθητες προσωπικές πληροφορίες',
ai_chat_context_disclaimer: 'Οι απαντήσεις AI μπορεί να περιέχουν λάθη.',
ai_chat_input_placeholder: 'Ρωτήστε, αναζητήστε ή εξηγήστε...',
ai_chat_queued_message: 'Αυτό το μήνυμα θα σταλεί μόλις ολοκληρώσει ${1}',
@@ -137,7 +137,6 @@ export const en = {
ai_chat_context_pages_youve_read: "The page you're on now",
ai_chat_context_info_provided_by_the_site: 'Info about you provided by the site',
ai_chat_context_previous_messages: 'Messages in your conversation',
ai_chat_context_sensitive_info: "Don't share sensitive personal info",
ai_chat_context_disclaimer: 'AI responses may contain mistakes.',
ai_chat_input_placeholder: 'Ask, search, or explain...',
ai_chat_queued_message: 'This message will be sent after ${1} finishes',
@@ -143,7 +143,6 @@ export const es: TranslationLanguage = {
ai_chat_context_pages_youve_read: 'La página en la que estás ahora',
ai_chat_context_info_provided_by_the_site: 'Información sobre ti proporcionada por el sitio',
ai_chat_context_previous_messages: 'Mensajes de tu conversación',
ai_chat_context_sensitive_info: 'No compartas información personal confidencial',
ai_chat_context_disclaimer: 'Las respuestas de IA pueden contener errores.',
ai_chat_input_placeholder: 'Pregunta, busca o explica...',
ai_chat_queued_message: 'Este mensaje se enviará cuando ${1} termine',
@@ -139,7 +139,6 @@ export const et: TranslationLanguage = {
ai_chat_context_pages_youve_read: 'Leht, kus te praegu asute',
ai_chat_context_info_provided_by_the_site: 'Saidi pakutud teave teie kohta',
ai_chat_context_previous_messages: 'Teie vestluse sõnumid',
ai_chat_context_sensitive_info: 'Ärge jagage tundlikku isikuteavet',
ai_chat_context_disclaimer: 'AI vastused võivad sisaldada vigu.',
ai_chat_input_placeholder: 'Küsige, otsige või selgitage...',
ai_chat_queued_message: 'See sõnum saadetakse, kui ${1} on lõpetanud',
@@ -140,7 +140,6 @@ export const fi: TranslationLanguage = {
ai_chat_context_pages_youve_read: 'Sivu, jolla olet nyt',
ai_chat_context_info_provided_by_the_site: 'Sivuston tarjoamat tiedot sinusta',
ai_chat_context_previous_messages: 'Viestit keskustelussasi',
ai_chat_context_sensitive_info: 'Älä jaa arkaluonteisia henkilötietoja',
ai_chat_context_disclaimer: 'AI-vastaukset voivat sisältää virheitä.',
ai_chat_input_placeholder: 'Kysy, hae tai selitä...',
ai_chat_queued_message: 'Tämä viesti lähetetään, kun ${1} on valmis',
@@ -139,7 +139,6 @@ export const fr: TranslationLanguage = {
ai_chat_context_pages_youve_read: 'La page sur laquelle vous êtes actuellement',
ai_chat_context_info_provided_by_the_site: 'Informations vous concernant fournies par le site',
ai_chat_context_previous_messages: 'Messages de votre conversation',
ai_chat_context_sensitive_info: 'Ne partagez pas d’informations personnelles sensibles',
ai_chat_context_disclaimer: 'Les réponses générées peuvent contenir des erreurs.',
ai_chat_input_placeholder: 'Demander, rechercher ou expliquer...',
ai_chat_queued_message: 'Ce message sera envoyé une fois que ${1} aura terminé',
@@ -136,7 +136,6 @@ export const he: TranslationLanguage = {
ai_chat_context_pages_youve_read: 'הדף שאתה נמצא בו כעת',
ai_chat_context_info_provided_by_the_site: 'מידע עליך שסופק על ידי האתר',
ai_chat_context_previous_messages: 'הודעות בשיחה שלך',
ai_chat_context_sensitive_info: 'אל תשתפו מידע אישי רגיש',
ai_chat_context_disclaimer: 'תשובות AI עשויות להכיל טעויות.',
ai_chat_input_placeholder: 'שאל, חפש או הסבר...',
ai_chat_queued_message: 'הודעה זו תישלח לאחר ש-${1} יסיים',
@@ -138,7 +138,6 @@ export const hi: TranslationLanguage = {
ai_chat_context_pages_youve_read: 'वह पृष्ठ जिस पर आप अभी हैं',
ai_chat_context_info_provided_by_the_site: 'साइट द्वारा प्रदान की गई आपके बारे में जानकारी',
ai_chat_context_previous_messages: 'आपकी बातचीत के संदेश',
ai_chat_context_sensitive_info: 'संवेदनशील व्यक्तिगत जानकारी साझा न करें',
ai_chat_context_disclaimer: 'AI उत्तरों में गलतियां हो सकती हैं।',
ai_chat_input_placeholder: 'पूछें, खोजें या समझाएं...',
ai_chat_queued_message: 'यह संदेश ${1} के समाप्त होने के बाद भेजा जाएगा',
@@ -139,7 +139,6 @@ export const hr: TranslationLanguage = {
ai_chat_context_pages_youve_read: 'Stranica na kojoj se trenutno nalazite',
ai_chat_context_info_provided_by_the_site: 'Informacije o vama koje pruža web-mjesto',
ai_chat_context_previous_messages: 'Poruke u vašem razgovoru',
ai_chat_context_sensitive_info: 'Ne dijelite osjetljive osobne podatke',
ai_chat_context_disclaimer: 'AI odgovori mogu sadržavati pogreške.',
ai_chat_input_placeholder: 'Pitajte, pretražite ili objasnite...',
ai_chat_queued_message: 'Ova poruka bit će poslana kada ${1} završi',
@@ -141,7 +141,6 @@ export const hu: TranslationLanguage = {
ai_chat_context_info_provided_by_the_site:
'Az Önről szóló, a webhely által megadott információk',
ai_chat_context_previous_messages: 'Üzenetek a beszélgetésében',
ai_chat_context_sensitive_info: 'Ne osszon meg érzékeny személyes adatokat',
ai_chat_context_disclaimer: 'Az AI-válaszok hibákat tartalmazhatnak.',
ai_chat_input_placeholder: 'Kérdezzen, keressen vagy magyarázzon...',
ai_chat_queued_message: 'Ez az üzenet akkor lesz elküldve, amikor ${1} befejezi',
@@ -138,7 +138,6 @@ export const id: TranslationLanguage = {
ai_chat_context_pages_youve_read: 'Halaman tempat Anda berada sekarang',
ai_chat_context_info_provided_by_the_site: 'Info tentang Anda yang disediakan oleh situs',
ai_chat_context_previous_messages: 'Pesan dalam percakapan Anda',
ai_chat_context_sensitive_info: 'Jangan bagikan informasi pribadi yang sensitif',
ai_chat_context_disclaimer: 'Jawaban AI dapat berisi kesalahan.',
ai_chat_input_placeholder: 'Tanya, cari, atau jelaskan...',
ai_chat_queued_message: 'Pesan ini akan dikirim setelah ${1} selesai',
@@ -142,7 +142,6 @@ export const it: TranslationLanguage = {
ai_chat_context_pages_youve_read: 'La pagina su cui ti trovi ora',
ai_chat_context_info_provided_by_the_site: 'Informazioni su di te fornite dal sito',
ai_chat_context_previous_messages: 'Messaggi nella tua conversazione',
ai_chat_context_sensitive_info: 'Non condividere informazioni personali sensibili',
ai_chat_context_disclaimer: "Le risposte dell'IA possono contenere errori.",
ai_chat_input_placeholder: 'Chiedi, cerca o spiega...',
ai_chat_queued_message: 'Questo messaggio verrà inviato quando ${1} avrà finito',
@@ -139,7 +139,6 @@ export const ja: TranslationLanguage = {
ai_chat_context_pages_youve_read: '現在表示中のページ',
ai_chat_context_info_provided_by_the_site: 'サイトから提供されるあなたに関する情報',
ai_chat_context_previous_messages: '会話内のメッセージ',
ai_chat_context_sensitive_info: '機密性の高い個人情報は共有しないでください',
ai_chat_context_disclaimer: 'AIの回答には誤りが含まれる場合があります。',
ai_chat_input_placeholder: '質問、検索、または説明...',
ai_chat_queued_message: '${1}の応答が完了したら、このメッセージが送信されます',
@@ -139,7 +139,6 @@ export const ko: TranslationLanguage = {
ai_chat_context_pages_youve_read: '현재 보고 있는 페이지',
ai_chat_context_info_provided_by_the_site: '사이트에서 제공하는 회원님에 대한 정보',
ai_chat_context_previous_messages: '대화의 메시지',
ai_chat_context_sensitive_info: '민감한 개인 정보를 공유하지 마세요',
ai_chat_context_disclaimer: 'AI 응답에는 오류가 있을 수 있습니다.',
ai_chat_input_placeholder: '질문, 검색 또는 설명...',
ai_chat_queued_message: '${1}의 응답이 끝나면 이 메시지가 전송됩니다',
@@ -139,7 +139,6 @@ export const lt: TranslationLanguage = {
ai_chat_context_pages_youve_read: 'Puslapis, kuriame šiuo metu esate',
ai_chat_context_info_provided_by_the_site: 'Svetainės pateikta informacija apie jus',
ai_chat_context_previous_messages: 'Pranešimai jūsų pokalbyje',
ai_chat_context_sensitive_info: 'Nebendrinkite jautrios asmeninės informacijos',
ai_chat_context_disclaimer: 'AI atsakymuose gali būti klaidų.',
ai_chat_input_placeholder: 'Klauskite, ieškokite arba paaiškinkite...',
ai_chat_queued_message: 'Ši žinutė bus išsiųsta, kai ${1} baigs',
@@ -138,7 +138,6 @@ export const lv: TranslationLanguage = {
ai_chat_context_pages_youve_read: 'Lapa, kurā pašlaik atrodaties',
ai_chat_context_info_provided_by_the_site: 'Vietnes sniegtā informācija par jums',
ai_chat_context_previous_messages: 'Ziņojumi jūsų sarunā',
ai_chat_context_sensitive_info: 'Nekopīgojiet sensitīvu personisko informāciju',
ai_chat_context_disclaimer: 'AI atbildēs var būt kļūdas.',
ai_chat_input_placeholder: 'Jautājiet, meklējiet vai skaidrojiet...',
ai_chat_queued_message: 'Šī ziņa tiks nosūtīta, kad ${1} būs pabeidzis',
@@ -138,7 +138,6 @@ export const ms: TranslationLanguage = {
ai_chat_context_pages_youve_read: 'Halaman yang anda berada sekarang',
ai_chat_context_info_provided_by_the_site: 'Maklumat tentang anda yang disediakan oleh laman',
ai_chat_context_previous_messages: 'Mesej dalam perbualan anda',
ai_chat_context_sensitive_info: 'Jangan kongsi maklumat peribadi yang sensitif',
ai_chat_context_disclaimer: 'Jawapan AI mungkin mengandungi kesilapan.',
ai_chat_input_placeholder: 'Tanya, cari atau jelaskan...',
ai_chat_queued_message: 'Mesej ini akan dihantar setelah ${1} selesai',
@@ -141,7 +141,6 @@ export const nl: TranslationLanguage = {
ai_chat_context_pages_youve_read: 'De pagina waar je nu op bent',
ai_chat_context_info_provided_by_the_site: 'Informatie over jou verstrekt door de site',
ai_chat_context_previous_messages: 'Berichten in je gesprek',
ai_chat_context_sensitive_info: 'Deel geen gevoelige persoonlijke gegevens',
ai_chat_context_disclaimer: 'AI-antwoorden kunnen fouten bevatten.',
ai_chat_input_placeholder: 'Vraag, zoek of leg uit...',
ai_chat_queued_message: 'Dit bericht wordt verzonden zodra ${1} klaar is',
@@ -141,7 +141,6 @@ export const no: TranslationLanguage = {
ai_chat_context_pages_youve_read: 'Siden du er på nå',
ai_chat_context_info_provided_by_the_site: 'Informasjon om deg gitt av nettstedet',
ai_chat_context_previous_messages: 'Meldinger i samtalen din',
ai_chat_context_sensitive_info: 'Ikke del sensitive personopplysninger',
ai_chat_context_disclaimer: 'AI-svar kan inneholde feil.',
ai_chat_input_placeholder: 'Spør, søk eller forklar...',
ai_chat_queued_message: 'Denne meldingen sendes når ${1} er ferdig',
@@ -140,7 +140,6 @@ export const pl: TranslationLanguage = {
ai_chat_context_pages_youve_read: 'Strona, na której jesteś teraz',
ai_chat_context_info_provided_by_the_site: 'Informacje o Tobie podane przez stronę',
ai_chat_context_previous_messages: 'Wiadomości w Twojej rozmowie',
ai_chat_context_sensitive_info: 'Nie udostępniaj poufnych danych osobowych',
ai_chat_context_disclaimer: 'Odpowiedzi AI mogą zawierać błędy.',
ai_chat_input_placeholder: 'Zapytaj, wyszukaj lub wyjaśnij...',
ai_chat_queued_message: 'Ta wiadomość zostanie wysłana, gdy ${1} zakończy',
@@ -143,7 +143,6 @@ export const pt_br: TranslationLanguage = {
ai_chat_context_pages_youve_read: 'A página em que você está agora',
ai_chat_context_info_provided_by_the_site: 'Informações sobre você fornecidas pelo site',
ai_chat_context_previous_messages: 'Mensagens na sua conversa',
ai_chat_context_sensitive_info: 'Não compartilhe informações pessoais sensíveis',
ai_chat_context_disclaimer: 'Respostas de IA podem conter erros.',
ai_chat_input_placeholder: 'Pergunte, pesquise ou explique...',
ai_chat_queued_message: 'Esta mensagem será enviada quando ${1} terminar',
@@ -140,7 +140,6 @@ export const pt: TranslationLanguage = {
ai_chat_context_pages_youve_read: 'A página em que se encontra agora',
ai_chat_context_info_provided_by_the_site: 'Informações sobre si fornecidas pelo site',
ai_chat_context_previous_messages: 'Mensagens na sua conversa',
ai_chat_context_sensitive_info: 'Não partilhe informações pessoais sensíveis',
ai_chat_context_disclaimer: 'As respostas de IA podem conter erros.',
ai_chat_input_placeholder: 'Pergunte, pesquise ou explique...',
ai_chat_queued_message: 'Esta mensagem será enviada quando ${1} terminar',
@@ -142,7 +142,6 @@ export const ro: TranslationLanguage = {
ai_chat_context_pages_youve_read: 'Pagina pe care te afli acum',
ai_chat_context_info_provided_by_the_site: 'Informații despre tine furnizate de site',
ai_chat_context_previous_messages: 'Mesaje din conversația ta',
ai_chat_context_sensitive_info: 'Nu partajați informații personale sensibile',
ai_chat_context_disclaimer: 'Răspunsurile AI pot conține greșeli.',
ai_chat_input_placeholder: 'Întreabă, caută sau explică...',
ai_chat_queued_message: 'Acest mesaj va fi trimis după ce ${1} termină',
@@ -142,7 +142,6 @@ export const ru: TranslationLanguage = {
ai_chat_context_pages_youve_read: 'Страница, на которой вы сейчас находитесь',
ai_chat_context_info_provided_by_the_site: 'Информация о вас, предоставленная сайтом',
ai_chat_context_previous_messages: 'Сообщения в вашем разговоре',
ai_chat_context_sensitive_info: 'Не передавайте конфиденциальную личную информацию',
ai_chat_context_disclaimer: 'Ответы ИИ могут содержать ошибки.',
ai_chat_input_placeholder: 'Спросите, найдите или объясните...',
ai_chat_queued_message: 'Это сообщение будет отправлено, когда ${1} закончит',
@@ -141,7 +141,6 @@ export const sk: TranslationLanguage = {
ai_chat_context_pages_youve_read: 'Stránka, na ktorej sa práve nachádzate',
ai_chat_context_info_provided_by_the_site: 'Informácie o vás poskytnuté stránkou',
ai_chat_context_previous_messages: 'Správy vo vašej konverzácii',
ai_chat_context_sensitive_info: 'Nezdieľajte citlivé osobné údaje',
ai_chat_context_disclaimer: 'Odpovede AI môžu obsahovať chyby.',
ai_chat_input_placeholder: 'Pýtajte sa, hľadajte alebo vysvetľujte...',
ai_chat_queued_message: 'Táto správa sa odošle, keď ${1} skončí',
@@ -140,7 +140,6 @@ export const sl: TranslationLanguage = {
ai_chat_context_pages_youve_read: 'Stran, na kateri se trenutno nahajate',
ai_chat_context_info_provided_by_the_site: 'Informacije o vas, ki jih zagotavlja spletno mesto',
ai_chat_context_previous_messages: 'Sporočila v vašem pogovoru',
ai_chat_context_sensitive_info: 'Ne delite občutljivih osebnih podatkov',
ai_chat_context_disclaimer: 'Odgovori AI lahko vsebujejo napake.',
ai_chat_input_placeholder: 'Vprašajte, iščite ali razložite...',
ai_chat_queued_message: 'To sporočilo bo poslano, ko ${1} zaključi',
@@ -140,7 +140,6 @@ export const sv: TranslationLanguage = {
ai_chat_context_pages_youve_read: 'Sidan du är på nu',
ai_chat_context_info_provided_by_the_site: 'Information om dig från webbplatsen',
ai_chat_context_previous_messages: 'Meddelanden i din konversation',
ai_chat_context_sensitive_info: 'Dela inte känsliga personuppgifter',
ai_chat_context_disclaimer: 'AI-svar kan innehålla fel.',
ai_chat_input_placeholder: 'Fråga, sök eller förklara...',
ai_chat_queued_message: 'Det här meddelandet skickas när ${1} är klar',
@@ -135,7 +135,6 @@ export const th: TranslationLanguage = {
ai_chat_context_pages_youve_read: 'หน้าที่คุณอยู่ตอนนี้',
ai_chat_context_info_provided_by_the_site: 'ข้อมูลเกี่ยวกับคุณที่เว็บไซต์ให้ไว้',
ai_chat_context_previous_messages: 'ข้อความในการสนทนาของคุณ',
ai_chat_context_sensitive_info: 'โปรดอย่าแชร์ข้อมูลส่วนบุคคลที่ละเอียดอ่อน',
ai_chat_context_disclaimer: 'คำตอบจาก AI อาจมีข้อผิดพลาด',
ai_chat_input_placeholder: 'ถาม ค้นหา หรืออธิบาย...',
ai_chat_queued_message: 'ข้อความนี้จะถูกส่งหลังจากที่ ${1} เสร็จสิ้น',
@@ -138,7 +138,6 @@ export const tr: TranslationLanguage = {
ai_chat_context_pages_youve_read: 'Şu anda bulunduğunuz sayfa',
ai_chat_context_info_provided_by_the_site: 'Site tarafından sağlanan sizinle ilgili bilgiler',
ai_chat_context_previous_messages: 'Konuşmanızdaki mesajlar',
ai_chat_context_sensitive_info: 'Hassas kişisel bilgileri paylaşmayın',
ai_chat_context_disclaimer: 'AI yanıtları hata içerebilir.',
ai_chat_input_placeholder: 'Sor, ara veya açıkla...',
ai_chat_queued_message: 'Bu mesaj, ${1} yanıtını tamamladıktan sonra gönderilecek',
@@ -138,7 +138,6 @@ export const uk: TranslationLanguage = {
ai_chat_context_pages_youve_read: 'Сторінка, на якій ви зараз перебуваєте',
ai_chat_context_info_provided_by_the_site: 'Інформація про вас, надана сайтом',
ai_chat_context_previous_messages: 'Повідомлення у вашій розмові',
ai_chat_context_sensitive_info: 'Не діліться конфіденційною особистою інформацією',
ai_chat_context_disclaimer: 'Відповіді AI можуть містити помилки.',
ai_chat_input_placeholder: 'Запитайте, знайдіть або поясніть...',
ai_chat_queued_message: 'Це повідомлення буде надіслано, коли ${1} завершить',
@@ -138,7 +138,6 @@ export const vi: TranslationLanguage = {
ai_chat_context_pages_youve_read: 'Trang bạn đang ở hiện tại',
ai_chat_context_info_provided_by_the_site: 'Thông tin về bạn do trang web cung cấp',
ai_chat_context_previous_messages: 'Tin nhắn trong cuộc trò chuyện của bạn',
ai_chat_context_sensitive_info: 'Không chia sẻ thông tin cá nhân nhạy cảm',
ai_chat_context_disclaimer: 'Câu trả lời AI có thể chứa lỗi.',
ai_chat_input_placeholder: 'Hỏi, tìm kiếm hoặc giải thích...',
ai_chat_queued_message: 'Tin nhắn này sẽ được gửi sau khi ${1} hoàn tất',
@@ -134,7 +134,6 @@ export const yue: TranslationLanguage = {
ai_chat_context_pages_youve_read: '你而家喺嘅頁面',
ai_chat_context_info_provided_by_the_site: '網站提供嘅關於你嘅資訊',
ai_chat_context_previous_messages: '你對話入面嘅訊息',
ai_chat_context_sensitive_info: '唔好分享敏感個人資料',
ai_chat_context_disclaimer: 'AI 回答可能有錯。',
ai_chat_input_placeholder: '發問、搜尋或說明...',
ai_chat_queued_message: '呢個訊息會喺 ${1} 完成後發送',
@@ -134,7 +134,6 @@ export const zh_tw: TranslationLanguage = {
ai_chat_context_pages_youve_read: '您目前所在的頁面',
ai_chat_context_info_provided_by_the_site: '網站提供的關於您的資訊',
ai_chat_context_previous_messages: '您對話中的訊息',
ai_chat_context_sensitive_info: '請勿分享敏感個人資料',
ai_chat_context_disclaimer: 'AI 回答可能包含錯誤。',
ai_chat_input_placeholder: '提問、搜尋或說明...',
ai_chat_queued_message: '這則訊息將在 ${1} 完成後傳送',
@@ -135,7 +135,6 @@ export const zh: TranslationLanguage = {
ai_chat_context_pages_youve_read: '您当前所在的页面',
ai_chat_context_info_provided_by_the_site: '网站提供的关于您的信息',
ai_chat_context_previous_messages: '您对话中的消息',
ai_chat_context_sensitive_info: '请勿分享敏感个人信息',
ai_chat_context_disclaimer: '人工智能的回答可能包含错误。',
ai_chat_input_placeholder: '询问、搜索或解释...',
ai_chat_queued_message: '此消息将在 ${1} 完成后发送',
-36
View File
@@ -1,36 +0,0 @@
import { describe, expect, it } from 'bun:test';
import {
DISALLOW_ALL_ROBOTS_TXT_LINES,
createRobotsTxtResponse,
isRobotsTxtRequest,
} from './robots';
describe('isRobotsTxtRequest', () => {
it('matches robots.txt at the root of the host', () => {
expect(isRobotsTxtRequest(new URL('https://docs.example.com/robots.txt'))).toBe(true);
});
it('matches robots.txt under a site base path', () => {
expect(isRobotsTxtRequest(new URL('https://example.com/docs/v2/robots.txt'))).toBe(true);
});
it('ignores other paths', () => {
expect(isRobotsTxtRequest(new URL('https://docs.example.com/'))).toBe(false);
expect(isRobotsTxtRequest(new URL('https://docs.example.com/sitemap.xml'))).toBe(false);
expect(isRobotsTxtRequest(new URL('https://docs.example.com/my-robots.txt'))).toBe(false);
expect(isRobotsTxtRequest(new URL('https://docs.example.com/robots.txt/page'))).toBe(false);
});
});
describe('createRobotsTxtResponse', () => {
it('serves a disallow-all robots.txt as plain text', async () => {
const response = createRobotsTxtResponse(DISALLOW_ALL_ROBOTS_TXT_LINES);
expect(response.status).toBe(200);
expect(response.headers.get('content-type')).toBe('text/plain');
expect(await response.text()).toBe(
'User-agent: *\nContent-Signal: ai-train=no, search=no, ai-input=no\nDisallow: /\n'
);
});
});
-18
View File
@@ -1,18 +0,0 @@
import { NextResponse } from 'next/server';
export const DISALLOW_ALL_ROBOTS_TXT_LINES = [
'User-agent: *',
'Content-Signal: ai-train=no, search=no, ai-input=no',
'Disallow: /',
];
export function createRobotsTxtResponse(lines: string[]) {
return new NextResponse(`${lines.join('\n')}\n`, {
headers: { 'Content-Type': 'text/plain' },
});
}
// Matches under any base path, like the signed-in route: a sign-in redirect doesn't tell us the site's base path.
export function isRobotsTxtRequest(siteRequestURL: URL) {
return siteRequestURL.pathname.endsWith('/robots.txt');
}
-11
View File
@@ -55,11 +55,6 @@ import {
parsePreviewCustomizationCookie,
serializePreviewCustomizationCookie,
} from '@/lib/preview';
import {
DISALLOW_ALL_ROBOTS_TXT_LINES,
createRobotsTxtResponse,
isRobotsTxtRequest,
} from '@/lib/robots';
import {
type ResponseCookies,
getPathScopedCookieName,
@@ -279,12 +274,6 @@ async function serveSiteRoutes(requestURL: URL, request: NextRequest) {
});
}
// Crawlers can't sign in: redirecting them to the login page makes search engines
// report a broken robots.txt and keep crawling, so tell them to stay away instead.
if (siteURLData.target === 'external' && isRobotsTxtRequest(siteRequestURL)) {
return createRobotsTxtResponse(DISALLOW_ALL_ROBOTS_TXT_LINES);
}
// When it is a server action, we cannot just return a redirect response as it may cause CORS issues on redirect.
// For these cases, we return a 303 response with an `X-Action-Redirect` header that the client can handle.
// This is what server actions do when returning a redirect response.
+4 -3
View File
@@ -1,7 +1,6 @@
import { SiteVisibility } from '@gitbook/api';
import { type GitBookSiteContext, checkIsRootSiteContext } from '@/lib/context';
import { DISALLOW_ALL_ROBOTS_TXT_LINES, createRobotsTxtResponse } from '@/lib/robots';
import { isSiteIndexable } from '@/lib/seo';
/**
@@ -50,8 +49,10 @@ export async function serveRobotsTxt(context: GitBookSiteContext) {
'',
])
: []),
...DISALLOW_ALL_ROBOTS_TXT_LINES,
'User-agent: *',
'Content-Signal: ai-train=no, search=no, ai-input=no',
'Disallow: /',
];
return createRobotsTxtResponse(lines);
return new Response(`${lines.join('\n')}\n`, { headers: { 'Content-Type': 'text/plain' } });
}
-6
View File
@@ -1,11 +1,5 @@
# @gitbook/openapi-parser
## 3.0.14
### Patch Changes
- 4dfe630: Bump @scalar/openapi-parser to 0.29 so valid OpenAPI 3.2 documents no longer report false validation errors.
## 3.0.13
### Patch Changes
+1 -1
View File
@@ -8,7 +8,7 @@
"default": "./dist/index.js"
}
},
"version": "3.0.14",
"version": "3.0.13",
"sideEffects": false,
"dependencies": {
"@scalar/json-magic": "^0.17.0",
-6
View File
@@ -1,11 +1,5 @@
# @gitbook/react-contentkit
## 0.7.18
### Patch Changes
- 04f39f1: Load a webframe only once it is near the viewport. A page can hold hundreds of them inside collapsed expandables, and loading every one on mount held up the first paint.
## 0.7.17
### Patch Changes
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "@gitbook/react-contentkit",
"version": "0.7.18",
"version": "0.7.17",
"type": "module",
"exports": {
".": {
-7
View File
@@ -1,12 +1,5 @@
# @gitbook/react-openapi
## 2.0.1
### Patch Changes
- Updated dependencies [4dfe630]
- @gitbook/openapi-parser@3.0.14
## 2.0.0
### Major Changes
+1 -1
View File
@@ -7,7 +7,7 @@
"default": "./dist/index.js"
}
},
"version": "2.0.1",
"version": "2.0.0",
"sideEffects": false,
"dependencies": {
"@base-ui/react": "catalog:",
@@ -1,5 +1,5 @@
diff --git a/dist/compiled/next-server/app-page.runtime.dev.js b/dist/compiled/next-server/app-page.runtime.dev.js
index ee264ffef478ba5dbc51e83d3c4efc9b9fa84ab0..5774304e84f7d33362d4cb37a97a571783a9fa2a 100644
index 8c24deba180e52b8732b0b98447a14a4c973a1d9..23647ebd4bcb763a383cc2b5a01c4bd9eba504fd 100644
--- a/dist/compiled/next-server/app-page.runtime.dev.js
+++ b/dist/compiled/next-server/app-page.runtime.dev.js
@@ -1,5 +1,5 @@