diff --git a/examples/advanced-blog/package.json b/examples/advanced-blog/package.json index 910e43b1..01752ce8 100644 --- a/examples/advanced-blog/package.json +++ b/examples/advanced-blog/package.json @@ -12,6 +12,7 @@ "@radix-ui/react-dialog": "^1.0.5", "@radix-ui/react-slot": "^1.0.2", "@vercel/og": "^0.6.1", + "change-case": "^5.4.2", "class-variance-authority": "^0.7.0", "clsx": "^2.0.0", "date-fns": "^2.30.0", diff --git a/examples/advanced-blog/src/app/(web)/[...slug]/page.tsx b/examples/advanced-blog/src/app/(web)/[...slug]/page.tsx index 193b3caf..be2b2864 100644 --- a/examples/advanced-blog/src/app/(web)/[...slug]/page.tsx +++ b/examples/advanced-blog/src/app/(web)/[...slug]/page.tsx @@ -3,6 +3,7 @@ import DocHero from '@/components/doc-hero' import MDXComponent from '@/components/mdx/mdx-component' import MDXServer from '@/lib/mdx-server' import { absoluteUrl, ogUrl } from '@/lib/utils' +import { sentenceCase } from 'change-case' import { Metadata } from 'next' import { notFound } from 'next/navigation' import { OstDocument } from 'outstatic' @@ -23,8 +24,8 @@ export async function generateMetadata(params: Params): Promise { if (!doc) { return { - title: `All ${moreDocs.collection}`, - description: `All ${moreDocs.collection}` + title: `All ${sentenceCase(moreDocs.collection)}`, + description: `All ${sentenceCase(moreDocs.collection)}` } } @@ -59,13 +60,15 @@ export default async function Document(params: Params) { if (!doc) { const { docs, collection } = moreDocs + return ( -
+
{docs.length > 0 && ( )}
@@ -74,7 +77,7 @@ export default async function Document(params: Params) { if (doc.collection === 'pages') { return ( -
+
diff --git a/examples/advanced-blog/src/components/content-grid.tsx b/examples/advanced-blog/src/components/content-grid.tsx index 43ff7b62..e52fd89e 100644 --- a/examples/advanced-blog/src/components/content-grid.tsx +++ b/examples/advanced-blog/src/components/content-grid.tsx @@ -1,8 +1,14 @@ +"use client"; + +import { useSearchParams } from "next/navigation"; import { Button } from "@/components/ui/button"; import { ArrowRight } from "lucide-react"; import Image from "next/image"; import Link from "next/link"; import type { OstDocument } from "outstatic"; +import Search from "./search"; +import metadb from "@/../outstatic/content/metadata.json"; +import { Suspense } from "react"; type Item = { tags?: { value: string; label: string }[]; @@ -11,9 +17,10 @@ type Item = { type Props = { collection: string; title?: string; - items: Item[]; + items: Item[] | typeof metadb.metadata; priority?: boolean; viewAll?: boolean; + search?: boolean; }; const ContentGrid = ({ @@ -22,7 +29,26 @@ const ContentGrid = ({ collection, priority = false, viewAll = false, + search = false, }: Props) => { + const searchParams = useSearchParams(); + + const searchQuery = searchParams.get("q")?.toLowerCase(); + const posts = metadb.metadata; + const searchResults: typeof metadb.metadata = []; + + if (searchQuery) { + posts.forEach((post) => { + if (post.status === "published" && post.collection === collection) { + if ( + post?.title?.toLowerCase().includes(searchQuery) || + post?.description?.toLowerCase().includes(searchQuery) + ) { + searchResults.push(post); + } + } + }); + } return (
@@ -37,8 +63,11 @@ const ContentGrid = ({ ) : null}
+ +
{search ? : null}
+
- {items.map((item, id) => ( + {(searchResults.length > 0 ? searchResults : items).map((item, id) => (
+ + + ); +} + +export default ContentGridWrapper; diff --git a/examples/advanced-blog/src/components/header.tsx b/examples/advanced-blog/src/components/header.tsx index 3eecb2de..84a7757d 100644 --- a/examples/advanced-blog/src/components/header.tsx +++ b/examples/advanced-blog/src/components/header.tsx @@ -1,20 +1,21 @@ -import Link from "next/link"; -import { getCollections, load } from "outstatic/server"; -import { MobileMenu } from "./mobile-menu"; -import { ThemeToggle } from "./theme-toggle"; -import { buttonVariants } from "./ui/button"; +import Link from 'next/link' +import { getCollections, load } from 'outstatic/server' +import { MobileMenu } from './mobile-menu' +import { ThemeToggle } from './theme-toggle' +import { buttonVariants } from './ui/button' +import { sentenceCase } from 'change-case' export type MenuProps = { pages: { - title: string; - slug: string; - }[]; - collections: string[]; -}; + title: string + slug: string + }[] + collections: string[] +} const Header = async () => { - const data = await getData(); - const { pages, collections } = data; + const data = await getData() + const { pages, collections } = data return (
@@ -31,8 +32,8 @@ const Header = async () => { {title} @@ -44,11 +45,11 @@ const Header = async () => { - {collection} + {sentenceCase(collection)} ))} @@ -57,32 +58,32 @@ const Header = async () => {
- ); -}; + ) +} async function getData() { - const db = await load(); + const db = await load() // get all pages const pages = await db .find( { - collection: "pages", - slug: { $nin: ["home"] }, - status: "published", + collection: 'pages', + slug: { $nin: ['home'] }, + status: 'published' }, - ["title", "slug"] + ['title', 'slug'] ) - .toArray(); + .toArray() const collections = getCollections().filter( - (collection) => collection !== "pages" - ); + (collection) => collection !== 'pages' + ) return { pages, - collections, - } as MenuProps; + collections + } as MenuProps } -export default Header; +export default Header diff --git a/examples/advanced-blog/src/components/search.tsx b/examples/advanced-blog/src/components/search.tsx new file mode 100644 index 00000000..0d9e8dd2 --- /dev/null +++ b/examples/advanced-blog/src/components/search.tsx @@ -0,0 +1,30 @@ +"use client"; + +import { usePathname, useSearchParams } from "next/navigation"; +import { useRouter } from "next/navigation"; +import { Input } from "./ui/input"; + +export default function Search() { + const searchParams = useSearchParams(); + const pathname = usePathname(); + const { replace } = useRouter(); + + const handleSearch = (term: string) => { + const params = new URLSearchParams(searchParams); + if (term) { + params.set("q", term); + } else { + params.delete("q"); + } + + replace(`${pathname}?${params.toString()}`); + }; + + return ( + handleSearch(event.target.value)} + defaultValue={searchParams.get("q"?.toString()) || ""} + /> + ); +} diff --git a/examples/advanced-blog/src/components/ui/input.tsx b/examples/advanced-blog/src/components/ui/input.tsx new file mode 100644 index 00000000..677d05fd --- /dev/null +++ b/examples/advanced-blog/src/components/ui/input.tsx @@ -0,0 +1,25 @@ +import * as React from "react" + +import { cn } from "@/lib/utils" + +export interface InputProps + extends React.InputHTMLAttributes {} + +const Input = React.forwardRef( + ({ className, type, ...props }, ref) => { + return ( + + ) + } +) +Input.displayName = "Input" + +export { Input } diff --git a/package.json b/package.json index b7979bdb..eca0d5c2 100644 --- a/package.json +++ b/package.json @@ -27,5 +27,6 @@ "prettier": "^2.8.8", "prettier-plugin-tailwindcss": "^0.1.13", "turbo": "latest" - } + }, + "packageManager": "pnpm@9.10.0+sha512.73a29afa36a0d092ece5271de5177ecbf8318d454ecd701343131b8ebc0c1a91c487da46ab77c8e596d6acf1461e3594ced4becedf8921b074fbd8653ed7051c" } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 775e5a12..5d4718c0 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -31,7 +31,7 @@ importers: version: 0.1.13(prettier@2.8.8) turbo: specifier: latest - version: 1.13.3 + version: 2.1.3 apps/dev: dependencies: @@ -262,6 +262,9 @@ importers: '@vercel/og': specifier: ^0.6.1 version: 0.6.2 + change-case: + specifier: ^5.4.2 + version: 5.4.4 class-variance-authority: specifier: ^0.7.0 version: 0.7.0 @@ -285,7 +288,7 @@ importers: version: 0.2.1(next@14.2.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) outstatic: specifier: latest - version: 1.4.8(@types/react-dom@18.3.0)(@types/react@18.3.2)(graphql-ws@5.12.1)(next@14.2.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(solid-js@1.8.17)(svelte@4.2.16)(vue@3.4.27(typescript@5.1.3)) + version: 1.4.9(@types/react-dom@18.3.0)(@types/react@18.3.2)(graphql-ws@5.12.1(graphql@16.8.1))(next@14.2.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(solid-js@1.8.17)(svelte@4.2.16)(vue@3.4.27(typescript@5.1.3)) react: specifier: ^18 version: 18.3.1 @@ -379,7 +382,7 @@ importers: version: 13.5.6(@babel/core@7.24.5)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) outstatic: specifier: latest - version: 1.4.8(@types/react-dom@18.3.0)(@types/react@18.3.2)(graphql-ws@5.12.1)(next@13.5.6(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(solid-js@1.8.17)(svelte@4.2.16)(vue@3.4.27(typescript@5.1.3)) + version: 1.4.9(@types/react-dom@18.3.0)(@types/react@18.3.2)(graphql-ws@5.12.1(graphql@16.8.1))(next@13.5.6(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(solid-js@1.8.17)(svelte@4.2.16)(vue@3.4.27(typescript@5.1.3)) react: specifier: ^18 version: 18.3.1 @@ -455,7 +458,7 @@ importers: version: 0.2.1(next@14.2.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) outstatic: specifier: latest - version: 1.4.8(@types/react-dom@18.3.0)(@types/react@18.3.2)(graphql-ws@5.12.1)(next@14.2.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(solid-js@1.8.17)(svelte@4.2.16)(vue@3.4.27(typescript@5.1.3)) + version: 1.4.9(@types/react-dom@18.3.0)(@types/react@18.3.2)(graphql-ws@5.12.1(graphql@16.8.1))(next@14.2.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(solid-js@1.8.17)(svelte@4.2.16)(vue@3.4.27(typescript@5.1.3)) react: specifier: ^18 version: 18.3.1 @@ -537,7 +540,7 @@ importers: version: 8.10.0(eslint@8.42.0) eslint-config-turbo: specifier: latest - version: 1.13.3(eslint@8.42.0) + version: 2.1.3(eslint@8.42.0) eslint-plugin-react: specifier: 7.32.2 version: 7.32.2(eslint@8.42.0) @@ -546,7 +549,7 @@ importers: dependencies: '@apollo/client': specifier: ^3.6.6 - version: 3.10.3(@types/react@18.3.2)(graphql-ws@5.12.1)(graphql@16.8.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 3.10.3(@types/react@18.3.2)(graphql-ws@5.12.1(graphql@16.8.1))(graphql@16.8.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@dnd-kit/core': specifier: ^6.1.0 version: 6.1.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -1816,6 +1819,7 @@ packages: '@humanwhocodes/config-array@0.11.14': resolution: {integrity: sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==} engines: {node: '>=10.10.0'} + deprecated: Use @eslint/config-array instead '@humanwhocodes/module-importer@1.0.1': resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} @@ -1823,6 +1827,7 @@ packages: '@humanwhocodes/object-schema@2.0.3': resolution: {integrity: sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==} + deprecated: Use @eslint/object-schema instead '@isaacs/cliui@8.0.2': resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} @@ -4295,8 +4300,8 @@ packages: peerDependencies: eslint: '>=7.0.0' - eslint-config-turbo@1.13.3: - resolution: {integrity: sha512-if/QtwEiWZ5b7Bg8yZBPSvS0TeCG2Zvfa/+XBYANS7uSYucjmW+BBC8enJB0PqpB/YLGGOumeo3x7h1Nuba9iw==} + eslint-config-turbo@2.1.3: + resolution: {integrity: sha512-smdkhd01V/e/I4EjJxaZA1kxZ1vdFCHpyryolxLtRBP0bZTrHDYh1H6NAyZ3Fy1jkhsQzXw+L+6m17ygROvNFw==} peerDependencies: eslint: '>6.6.0' @@ -4365,8 +4370,8 @@ packages: peerDependencies: eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 - eslint-plugin-turbo@1.13.3: - resolution: {integrity: sha512-RjmlnqYsEqnJ+U3M3IS5jLJDjWv5NsvReCpsC61n5pJ4JMHTZ/lU0EIoL1ccuL1L5wP0APzdXdByBxERcPQ+Nw==} + eslint-plugin-turbo@2.1.3: + resolution: {integrity: sha512-I9vPArzyOSYa6bm0iMCgD07MgdExc1VK2wGuVz21g4BUdj83w7mDKyCXR2rwOtCEW+wemFwgxanJ81imQZijNg==} peerDependencies: eslint: '>6.6.0' @@ -4685,9 +4690,11 @@ packages: glob@7.1.7: resolution: {integrity: sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==} + deprecated: Glob versions prior to v9 are no longer supported glob@7.2.3: resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} + deprecated: Glob versions prior to v9 are no longer supported globals@11.12.0: resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} @@ -4956,6 +4963,7 @@ packages: inflight@1.0.6: resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} + deprecated: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful. inherits@2.0.4: resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} @@ -6275,8 +6283,8 @@ packages: outdent@0.5.0: resolution: {integrity: sha512-/jHxFIzoMXdqPzTaCpFzAAWhpkSjZPF4Vsn6jAfNpmbH/ymsmd7Qc6VE9BGn0L6YMj6uwpQLxCECpus4ukKS9Q==} - outstatic@1.4.8: - resolution: {integrity: sha512-Tb1/u6lGV5sR+Z/U1ovIdPjtW1ZxcZh6NTnI1mtY0hBwumlkm32bGEoeFmsyfHzI4z7XmYYy6DxQCChj85M5NQ==} + outstatic@1.4.9: + resolution: {integrity: sha512-euzzh4n/ObFAapMmTctj5KVoQzjXbZ4+UgCgcWS/lDiFkZcHhUXoUGmpVfUjLjA50hPcn8SBS5c1qh8DEGy6Eg==} peerDependencies: next: ^13 || ^14 react: ^17.0.2 || ^18 @@ -6943,6 +6951,7 @@ packages: rimraf@3.0.2: resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} + deprecated: Rimraf versions prior to v4 are no longer supported hasBin: true rollup@3.29.4: @@ -7606,38 +7615,38 @@ packages: engines: {node: '>=8.0.0'} hasBin: true - turbo-darwin-64@1.13.3: - resolution: {integrity: sha512-glup8Qx1qEFB5jerAnXbS8WrL92OKyMmg5Hnd4PleLljAeYmx+cmmnsmLT7tpaVZIN58EAAwu8wHC6kIIqhbWA==} + turbo-darwin-64@2.1.3: + resolution: {integrity: sha512-ouJOm0g0YyoBuhmikEujVCBGo3Zr0lbSOWFIsQtWUTItC88F2w2byhjtsYGPXQwMlTbXwmoBU2lOCfWNkeEwHQ==} cpu: [x64] os: [darwin] - turbo-darwin-arm64@1.13.3: - resolution: {integrity: sha512-/np2xD+f/+9qY8BVtuOQXRq5f9LehCFxamiQnwdqWm5iZmdjygC5T3uVSYuagVFsZKMvX3ycySwh8dylGTl6lg==} + turbo-darwin-arm64@2.1.3: + resolution: {integrity: sha512-j2FOJsK4LAOtHQlb3Oom0yWB/Vi0nF1ljInr311mVzHoFAJRZtfW2fRvdZRb/lBUwjSp8be58qWHzANIcrA0OA==} cpu: [arm64] os: [darwin] - turbo-linux-64@1.13.3: - resolution: {integrity: sha512-G+HGrau54iAnbXLfl+N/PynqpDwi/uDzb6iM9hXEDG+yJnSJxaHMShhOkXYJPk9offm9prH33Khx2scXrYVW1g==} + turbo-linux-64@2.1.3: + resolution: {integrity: sha512-ubRHkI1gSel7H7wsmxKK8C9UlLWqg/2dkCC88LFupaK6TKgvBKqDqA0Z1M9C/escK0Jsle2k0H8bybV9OYIl4Q==} cpu: [x64] os: [linux] - turbo-linux-arm64@1.13.3: - resolution: {integrity: sha512-qWwEl5VR02NqRyl68/3pwp3c/olZuSp+vwlwrunuoNTm6JXGLG5pTeme4zoHNnk0qn4cCX7DFrOboArlYxv0wQ==} + turbo-linux-arm64@2.1.3: + resolution: {integrity: sha512-LffUL+e5wv7BtD6DgnM2kKOlDkMo2eRjhbAjVnrCD3wi2ug0tl6NDzajnHHjtaMyOnIf4AvzSKdLWsBxafGBQA==} cpu: [arm64] os: [linux] - turbo-windows-64@1.13.3: - resolution: {integrity: sha512-Nudr4bRChfJzBPzEmpVV85VwUYRCGKecwkBFpbp2a4NtrJ3+UP1VZES653ckqCu2FRyRuS0n03v9euMbAvzH+Q==} + turbo-windows-64@2.1.3: + resolution: {integrity: sha512-S9SvcZZoaq5jKr6kA6eF7/xgQhVn8Vh7PVy5lono9zybvhyL4eY++y2PaLToIgL8G9IcbLmgOC73ExNjFBg9XQ==} cpu: [x64] os: [win32] - turbo-windows-arm64@1.13.3: - resolution: {integrity: sha512-ouJCgsVLd3icjRLmRvHQDDZnmGzT64GBupM1Y+TjtYn2LVaEBoV6hicFy8x5DUpnqdLy+YpCzRMkWlwhmkX7sQ==} + turbo-windows-arm64@2.1.3: + resolution: {integrity: sha512-twlEo8lRrGbrR6T/ZklUIquW3IlFCEtywklgVA81aIrSBm56+GEVpSrHhIlsx1hiYeSNrs+GpDwZGe+V7fvEVQ==} cpu: [arm64] os: [win32] - turbo@1.13.3: - resolution: {integrity: sha512-n17HJv4F4CpsYTvKzUJhLbyewbXjq1oLCi90i5tW1TiWDz16ML1eDG7wi5dHaKxzh5efIM56SITnuVbMq5dk4g==} + turbo@2.1.3: + resolution: {integrity: sha512-lY0yj2GH2a2a3NExZ3rGe+rHUVeFE2aXuRAue57n+08E7Z7N7YCmynju0kPC1grAQzERmoLpKrmzmWd+PNiADw==} hasBin: true type-check@0.4.0: @@ -8199,7 +8208,7 @@ snapshots: '@jridgewell/gen-mapping': 0.3.5 '@jridgewell/trace-mapping': 0.3.25 - '@apollo/client@3.10.3(@types/react@18.3.2)(graphql-ws@5.12.1)(graphql@16.8.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@apollo/client@3.10.3(@types/react@18.3.2)(graphql-ws@5.12.1(graphql@16.8.1))(graphql@16.8.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@graphql-typed-document-node/core': 3.2.0(graphql@16.8.1) '@wry/caches': 1.0.1 @@ -12338,7 +12347,7 @@ snapshots: eslint: 8.42.0 eslint-import-resolver-node: 0.3.9 eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@5.62.0(eslint@8.42.0)(typescript@5.1.3))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1(eslint@8.42.0))(eslint@8.42.0) - eslint-plugin-import: 2.29.1(@typescript-eslint/parser@5.62.0(eslint@8.42.0)(typescript@5.1.3))(eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@5.62.0(eslint@8.42.0)(typescript@5.1.3))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1(eslint@8.42.0))(eslint@8.42.0))(eslint@8.42.0) + eslint-plugin-import: 2.29.1(@typescript-eslint/parser@5.62.0(eslint@8.42.0)(typescript@5.1.3))(eslint-import-resolver-typescript@3.6.1)(eslint@8.42.0) eslint-plugin-jsx-a11y: 6.8.0(eslint@8.42.0) eslint-plugin-react: 7.32.2(eslint@8.42.0) eslint-plugin-react-hooks: 4.6.2(eslint@8.42.0) @@ -12370,10 +12379,10 @@ snapshots: dependencies: eslint: 8.42.0 - eslint-config-turbo@1.13.3(eslint@8.42.0): + eslint-config-turbo@2.1.3(eslint@8.42.0): dependencies: eslint: 8.42.0 - eslint-plugin-turbo: 1.13.3(eslint@8.42.0) + eslint-plugin-turbo: 2.1.3(eslint@8.42.0) eslint-import-resolver-node@0.3.9: dependencies: @@ -12389,7 +12398,7 @@ snapshots: enhanced-resolve: 5.16.1 eslint: 8.42.0 eslint-module-utils: 2.8.1(@typescript-eslint/parser@5.62.0(eslint@8.42.0)(typescript@5.1.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@5.62.0(eslint@8.42.0)(typescript@5.1.3))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1(eslint@8.42.0))(eslint@8.42.0))(eslint@8.42.0) - eslint-plugin-import: 2.29.1(@typescript-eslint/parser@5.62.0(eslint@8.42.0)(typescript@5.1.3))(eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@5.62.0(eslint@8.42.0)(typescript@5.1.3))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1(eslint@8.42.0))(eslint@8.42.0))(eslint@8.42.0) + eslint-plugin-import: 2.29.1(@typescript-eslint/parser@5.62.0(eslint@8.42.0)(typescript@5.1.3))(eslint-import-resolver-typescript@3.6.1)(eslint@8.42.0) fast-glob: 3.3.2 get-tsconfig: 4.7.5 is-core-module: 2.13.1 @@ -12439,7 +12448,7 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-plugin-import@2.29.1(@typescript-eslint/parser@5.62.0(eslint@8.42.0)(typescript@5.1.3))(eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@5.62.0(eslint@8.42.0)(typescript@5.1.3))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1(eslint@8.42.0))(eslint@8.42.0))(eslint@8.42.0): + eslint-plugin-import@2.29.1(@typescript-eslint/parser@5.62.0(eslint@8.42.0)(typescript@5.1.3))(eslint-import-resolver-typescript@3.6.1)(eslint@8.42.0): dependencies: array-includes: 3.1.8 array.prototype.findlastindex: 1.2.5 @@ -12558,7 +12567,7 @@ snapshots: semver: 6.3.1 string.prototype.matchall: 4.0.11 - eslint-plugin-turbo@1.13.3(eslint@8.42.0): + eslint-plugin-turbo@2.1.3(eslint@8.42.0): dependencies: dotenv: 16.0.3 eslint: 8.42.0 @@ -15300,15 +15309,16 @@ snapshots: outdent@0.5.0: {} - outstatic@1.4.8(@types/react-dom@18.3.0)(@types/react@18.3.2)(graphql-ws@5.12.1)(next@13.5.6(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(solid-js@1.8.17)(svelte@4.2.16)(vue@3.4.27(typescript@5.1.3)): + outstatic@1.4.9(@types/react-dom@18.3.0)(@types/react@18.3.2)(graphql-ws@5.12.1(graphql@16.8.1))(next@13.5.6(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(solid-js@1.8.17)(svelte@4.2.16)(vue@3.4.27(typescript@5.1.3)): dependencies: - '@apollo/client': 3.10.3(@types/react@18.3.2)(graphql-ws@5.12.1)(graphql@16.8.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@apollo/client': 3.10.3(@types/react@18.3.2)(graphql-ws@5.12.1(graphql@16.8.1))(graphql@16.8.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@dnd-kit/core': 6.1.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@dnd-kit/modifiers': 7.0.0(@dnd-kit/core@6.1.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1) '@dnd-kit/sortable': 8.0.0(@dnd-kit/core@6.1.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1) '@dnd-kit/utilities': 3.2.2(react@18.3.1) '@hapi/iron': 7.0.1 '@hookform/resolvers': 2.9.11(react-hook-form@7.51.4(react@18.3.1)) + '@radix-ui/react-checkbox': 1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@radix-ui/react-icons': 1.3.0(react@18.3.1) '@radix-ui/react-slot': 1.0.2(@types/react@18.3.2)(react@18.3.1) '@radix-ui/react-tooltip': 1.0.7(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -15387,15 +15397,16 @@ snapshots: - vue - webpack - outstatic@1.4.8(@types/react-dom@18.3.0)(@types/react@18.3.2)(graphql-ws@5.12.1)(next@14.2.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(solid-js@1.8.17)(svelte@4.2.16)(vue@3.4.27(typescript@5.1.3)): + outstatic@1.4.9(@types/react-dom@18.3.0)(@types/react@18.3.2)(graphql-ws@5.12.1(graphql@16.8.1))(next@14.2.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(solid-js@1.8.17)(svelte@4.2.16)(vue@3.4.27(typescript@5.1.3)): dependencies: - '@apollo/client': 3.10.3(@types/react@18.3.2)(graphql-ws@5.12.1)(graphql@16.8.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@apollo/client': 3.10.3(@types/react@18.3.2)(graphql-ws@5.12.1(graphql@16.8.1))(graphql@16.8.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@dnd-kit/core': 6.1.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@dnd-kit/modifiers': 7.0.0(@dnd-kit/core@6.1.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1) '@dnd-kit/sortable': 8.0.0(@dnd-kit/core@6.1.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1) '@dnd-kit/utilities': 3.2.2(react@18.3.1) '@hapi/iron': 7.0.1 '@hookform/resolvers': 2.9.11(react-hook-form@7.51.4(react@18.3.1)) + '@radix-ui/react-checkbox': 1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@radix-ui/react-icons': 1.3.0(react@18.3.1) '@radix-ui/react-slot': 1.0.2(@types/react@18.3.2)(react@18.3.1) '@radix-ui/react-tooltip': 1.0.7(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -17050,32 +17061,32 @@ snapshots: wcwidth: 1.0.1 yargs: 17.7.2 - turbo-darwin-64@1.13.3: + turbo-darwin-64@2.1.3: optional: true - turbo-darwin-arm64@1.13.3: + turbo-darwin-arm64@2.1.3: optional: true - turbo-linux-64@1.13.3: + turbo-linux-64@2.1.3: optional: true - turbo-linux-arm64@1.13.3: + turbo-linux-arm64@2.1.3: optional: true - turbo-windows-64@1.13.3: + turbo-windows-64@2.1.3: optional: true - turbo-windows-arm64@1.13.3: + turbo-windows-arm64@2.1.3: optional: true - turbo@1.13.3: + turbo@2.1.3: optionalDependencies: - turbo-darwin-64: 1.13.3 - turbo-darwin-arm64: 1.13.3 - turbo-linux-64: 1.13.3 - turbo-linux-arm64: 1.13.3 - turbo-windows-64: 1.13.3 - turbo-windows-arm64: 1.13.3 + turbo-darwin-64: 2.1.3 + turbo-darwin-arm64: 2.1.3 + turbo-linux-64: 2.1.3 + turbo-linux-arm64: 2.1.3 + turbo-windows-64: 2.1.3 + turbo-windows-arm64: 2.1.3 type-check@0.4.0: dependencies: