diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml
index 23eb208c7..52920e6a8 100644
--- a/.github/ISSUE_TEMPLATE/bug_report.yml
+++ b/.github/ISSUE_TEMPLATE/bug_report.yml
@@ -34,12 +34,12 @@ body:
Add any other context about the problem here, such as screenshots, error logs, etc.
- type: input
attributes:
- label: "@faustwp/core Version"
+ label: '@faustwp/core Version'
validations:
required: true
- type: input
attributes:
- label: "@faustwp/cli Version"
+ label: '@faustwp/cli Version'
validations:
required: true
- type: input
@@ -55,7 +55,7 @@ body:
- type: textarea
attributes:
label: Additional environment details
- description: Additional Faust.js packages and their versions (@faustwp/blocks, @faustwp/experimental-app-router, etc), PHP version, Hosting Platform, etc.
+ description: Additional Faust.js packages and their versions (@faustwp/blocks, @faustwp/core, etc), PHP version, Hosting Platform, etc.
- type: checkboxes
attributes:
label: Please confirm that you have searched existing issues in the repo.
diff --git a/.github/workflows/experimental-app-router.yml b/.github/workflows/experimental-app-router.yml
deleted file mode 100644
index e94876808..000000000
--- a/.github/workflows/experimental-app-router.yml
+++ /dev/null
@@ -1,36 +0,0 @@
-name: Experimental App Router Build & Test
-
-on:
- pull_request:
-
-jobs:
- experimental_app_router_build_test:
- name: "Build and Test Experimental App Router on Node.js ${{ matrix.node }} ${{ matrix.os }}"
- strategy:
- matrix:
- os: ['ubuntu-22.04']
- node: ['18', '20', '22']
- permissions:
- checks: write
- pull-requests: write
- runs-on: ${{ matrix.os }}
- steps:
- - uses: actions/checkout@v4
- - name: Setup Node.js ${{ matrix.node }}
- uses: actions/setup-node@v4
- with:
- node-version: ${{ matrix.node }}
-
- - name: Install
- run: npm ci
-
- - name: Build (Monorepo)
- run: npm run build
-
- - name: Build
- run: npm run build
- working-directory: packages/experimental-app-router
-
- - name: Tests
- run: npm run test
- working-directory: packages/experimental-app-router
diff --git a/DEVELOPMENT.md b/DEVELOPMENT.md
index 8dc6c5571..b3a2f2255 100644
--- a/DEVELOPMENT.md
+++ b/DEVELOPMENT.md
@@ -202,7 +202,6 @@ Once deployed, the updated packages and plugin will be visible here:
- https://www.npmjs.com/package/@faustwp/core
- https://www.npmjs.com/package/@faustwp/cli
-- https://www.npmjs.com/package/@faustwp/experimental-app-router
- https://www.npmjs.com/package/@faustwp/block-editor-utils
- https://www.npmjs.com/package/@faustwp/blocks
- https://plugins.trac.wordpress.org/browser/faustwp/tags
diff --git a/examples/next/app-router/.env.local.sample b/examples/next/app-router/.env.local.sample
deleted file mode 100644
index d972b96b4..000000000
--- a/examples/next/app-router/.env.local.sample
+++ /dev/null
@@ -1,8 +0,0 @@
-# Your WordPress site URL
-NEXT_PUBLIC_WORDPRESS_URL=https://faustexample.wpengine.com
-
-# Your Faust site URL
-NEXT_PUBLIC_URL=http://localhost:3000
-
-# Plugin secret found in WordPress Settings->Faust
-# FAUST_SECRET_KEY=YOUR_PLUGIN_SECRET
diff --git a/examples/next/app-router/app/[slug]/hasPreviewProps.ts b/examples/next/app-router/app/[slug]/hasPreviewProps.ts
deleted file mode 100644
index 10dbad9e4..000000000
--- a/examples/next/app-router/app/[slug]/hasPreviewProps.ts
+++ /dev/null
@@ -1,6 +0,0 @@
-export async function hasPreviewProps(props: any) {
- const { searchParams } = await props;
- const { preview, p } = await searchParams;
-
- return preview === 'true' && !!p;
-}
diff --git a/examples/next/app-router/app/[slug]/page.tsx b/examples/next/app-router/app/[slug]/page.tsx
deleted file mode 100644
index 8b51163e6..000000000
--- a/examples/next/app-router/app/[slug]/page.tsx
+++ /dev/null
@@ -1,52 +0,0 @@
-import { getAuthClient, getClient } from '@faustwp/experimental-app-router';
-import { gql } from '@apollo/client';
-import { hasPreviewProps } from './hasPreviewProps';
-import { PleaseLogin } from '@/components/please-login';
-
-export default async function Page(props) {
- const { searchParams, params } = await props;
- const { slug } = await params;
- const { p } = await searchParams;
- const isPreview = await hasPreviewProps(props);
- const id = isPreview ? p : slug;
-
- let client = isPreview ? await getAuthClient() : await getClient();
-
- if (!client) {
- return ;
- }
-
- const { data } = await client.query({
- query: gql`
- query GetContentNode(
- $id: ID!
- $idType: ContentNodeIdTypeEnum!
- $asPreview: Boolean!
- ) {
- contentNode(id: $id, idType: $idType, asPreview: $asPreview) {
- ... on NodeWithTitle {
- title
- }
- ... on NodeWithContentEditor {
- content
- }
- date
- }
- }
- `,
- variables: {
- id,
- idType: isPreview ? 'DATABASE_ID' : 'URI',
- asPreview: isPreview,
- },
- });
-
- return (
-
- {data?.contentNode?.title}
-
-
- );
-}
diff --git a/examples/next/app-router/app/api/faust/[route]/route.ts b/examples/next/app-router/app/api/faust/[route]/route.ts
deleted file mode 100644
index 5f5a643ec..000000000
--- a/examples/next/app-router/app/api/faust/[route]/route.ts
+++ /dev/null
@@ -1,6 +0,0 @@
-import { faustRouteHandler } from '@faustwp/experimental-app-router';
-import '@/faust.config.js';
-
-const { GET, POST } = faustRouteHandler;
-
-export { GET, POST };
diff --git a/examples/next/app-router/app/layout.tsx b/examples/next/app-router/app/layout.tsx
deleted file mode 100644
index a61a5f7ec..000000000
--- a/examples/next/app-router/app/layout.tsx
+++ /dev/null
@@ -1,60 +0,0 @@
-import { gql } from '@apollo/client';
-import { getClient } from '@faustwp/experimental-app-router';
-import Link from 'next/link';
-import '@/faust.config.js';
-import { FaustProvider } from '@faustwp/experimental-app-router/ssr';
-export default async function RootLayout({ children }) {
- const client = await getClient();
-
- const { data } = await client.query({
- query: gql`
- query GetLayout {
- generalSettings {
- title
- description
- }
- primaryMenuItems: menuItems(where: { location: PRIMARY }) {
- nodes {
- id
- label
- uri
- }
- }
- footerMenuItems: menuItems(where: { location: FOOTER }) {
- nodes {
- id
- label
- uri
- }
- }
- }
- `,
- });
-
- return (
-
-
-
-
- {children}
-
-
-
- );
-}
diff --git a/examples/next/app-router/app/login/action.ts b/examples/next/app-router/app/login/action.ts
deleted file mode 100644
index 0ef38972d..000000000
--- a/examples/next/app-router/app/login/action.ts
+++ /dev/null
@@ -1,14 +0,0 @@
-'use server';
-
-import { onLogin } from '@faustwp/experimental-app-router';
-import { redirect } from 'next/navigation';
-
-export async function loginAction(prevData: any, formData: FormData) {
- const res = await onLogin(formData);
-
- if (res.error) {
- return res;
- }
-
- redirect('/my-account');
-}
diff --git a/examples/next/app-router/app/login/page.tsx b/examples/next/app-router/app/login/page.tsx
deleted file mode 100644
index 2da2c4979..000000000
--- a/examples/next/app-router/app/login/page.tsx
+++ /dev/null
@@ -1,34 +0,0 @@
-'use client';
-
-import { loginAction } from './action';
-import { useActionState } from 'react';
-
-export default function Page() {
- const [state, formAction, isPending] = useActionState(loginAction, {});
-
- return (
- <>
- Login
-
-
- >
- );
-}
diff --git a/examples/next/app-router/app/making-client-queries/page.tsx b/examples/next/app-router/app/making-client-queries/page.tsx
deleted file mode 100644
index 25668bd95..000000000
--- a/examples/next/app-router/app/making-client-queries/page.tsx
+++ /dev/null
@@ -1,21 +0,0 @@
-'use client';
-
-import { gql, useQuery } from '@apollo/client';
-
-/**
- * You can make client side queries as well with Apollo's `useQuery` hook within
- * a client component ('use client' directive). Just make sure the
- * is wrapping the app (in app/layout.js)
- */
-
-export default function Page() {
- const { data } = useQuery(gql`
- query MyQuery {
- generalSettings {
- title
- }
- }
- `);
-
- return <>{data?.generalSettings?.title}>;
-}
diff --git a/examples/next/app-router/app/my-account/page.tsx b/examples/next/app-router/app/my-account/page.tsx
deleted file mode 100644
index c3da671c1..000000000
--- a/examples/next/app-router/app/my-account/page.tsx
+++ /dev/null
@@ -1,44 +0,0 @@
-import { PleaseLogin } from '@/components/please-login';
-import { gql } from '@apollo/client';
-import { getAuthClient, onLogout } from '@faustwp/experimental-app-router';
-
-export default async function Page() {
- const client = await getAuthClient();
-
- if (!client) {
- return ;
- }
-
- const { data } = await client.query({
- query: gql`
- query GetViewer {
- viewer {
- name
- posts {
- nodes {
- id
- title
- }
- }
- }
- }
- `,
- });
-
- return (
- <>
- Welcome {data.viewer.name}
-
- My Posts
-
- {data.viewer.posts.nodes.map((post) => (
- {post.title}
- ))}
-
-
-
- >
- );
-}
diff --git a/examples/next/app-router/app/page.tsx b/examples/next/app-router/app/page.tsx
deleted file mode 100644
index eda542448..000000000
--- a/examples/next/app-router/app/page.tsx
+++ /dev/null
@@ -1,35 +0,0 @@
-import { getClient } from '@faustwp/experimental-app-router';
-import { gql } from '@apollo/client';
-import Link from 'next/link';
-
-export default async function Home() {
- let client = await getClient();
-
- const { data } = await client.query({
- query: gql`
- query GetPosts {
- posts {
- nodes {
- id
- title
- uri
- slug
- }
- }
- }
- `,
- });
-
- return (
-
- Posts
-
- {data.posts.nodes.map((post) => (
-
- {post.title}
-
- ))}
-
-
- );
-}
diff --git a/examples/next/app-router/components/please-login.tsx b/examples/next/app-router/components/please-login.tsx
deleted file mode 100644
index 24dcc2ed9..000000000
--- a/examples/next/app-router/components/please-login.tsx
+++ /dev/null
@@ -1,10 +0,0 @@
-import Link from 'next/link';
-
-export function PleaseLogin() {
- return (
- <>
- You must be authenticated! Please log in{' '}
- first.
- >
- );
-}
diff --git a/examples/next/app-router/faust.config.js b/examples/next/app-router/faust.config.js
deleted file mode 100644
index 1a52ceb19..000000000
--- a/examples/next/app-router/faust.config.js
+++ /dev/null
@@ -1,7 +0,0 @@
-import { setConfig } from '@faustwp/core/dist/mjs/config/index.js';
-import possibleTypes from './possibleTypes.json';
-
-/** @type {import('@faustwp/core').FaustConfig} */
-export default setConfig({
- possibleTypes,
-});
diff --git a/examples/next/app-router/next-env.d.ts b/examples/next/app-router/next-env.d.ts
deleted file mode 100644
index 40c3d6809..000000000
--- a/examples/next/app-router/next-env.d.ts
+++ /dev/null
@@ -1,5 +0,0 @@
-///
-///
-
-// NOTE: This file should not be edited
-// see https://nextjs.org/docs/app/building-your-application/configuring/typescript for more information.
diff --git a/examples/next/app-router/next.config.js b/examples/next/app-router/next.config.js
deleted file mode 100644
index 550780bfe..000000000
--- a/examples/next/app-router/next.config.js
+++ /dev/null
@@ -1,11 +0,0 @@
-import { withFaust } from '@faustwp/core';
-import { createSecureHeaders } from 'next-secure-headers';
-
-/** @type {import('next').NextConfig} */
-export default withFaust({
- async headers() {
- return [{ source: '/:path*', headers: createSecureHeaders({
- xssProtection: false
- }) }];
- },
-});
diff --git a/examples/next/app-router/package-lock.json b/examples/next/app-router/package-lock.json
deleted file mode 100644
index 5d71ce69f..000000000
--- a/examples/next/app-router/package-lock.json
+++ /dev/null
@@ -1,3437 +0,0 @@
-{
- "name": "@faustwp/app-router-example",
- "lockfileVersion": 3,
- "requires": true,
- "packages": {
- "": {
- "name": "@faustwp/app-router-example",
- "dependencies": {
- "@apollo/client": "^3.8.0",
- "@apollo/experimental-nextjs-app-support": "^0.8.0",
- "@faustwp/cli": "^3.1.0",
- "@faustwp/core": "^3.1.0",
- "@faustwp/experimental-app-router": "^0.4.0",
- "graphql": "^16.7.1",
- "next": "^15.1.2",
- "react": "^18.2.0",
- "react-dom": "^18.2.0"
- },
- "devDependencies": {
- "@types/node": "^20.6.3",
- "@types/react": "npm:types-react@rc",
- "@types/react-dom": "npm:types-react-dom@rc",
- "next-secure-headers": "^2.2.0",
- "typescript": "^5.2.2"
- },
- "engines": {
- "node": ">=18",
- "npm": ">=8"
- }
- },
- "node_modules/@apollo/client": {
- "version": "3.11.10",
- "resolved": "https://registry.npmjs.org/@apollo/client/-/client-3.11.10.tgz",
- "integrity": "sha512-IfGc+X4il0rDqVQBBWdxIKM+ciDCiDzBq9+Bg9z4tJMi87uF6po4v+ddiac1wP0ARgVPsFwEIGxK7jhN4pW8jg==",
- "dependencies": {
- "@graphql-typed-document-node/core": "^3.1.1",
- "@wry/caches": "^1.0.0",
- "@wry/equality": "^0.5.6",
- "@wry/trie": "^0.5.0",
- "graphql-tag": "^2.12.6",
- "hoist-non-react-statics": "^3.3.2",
- "optimism": "^0.18.0",
- "prop-types": "^15.7.2",
- "rehackt": "^0.1.0",
- "response-iterator": "^0.2.6",
- "symbol-observable": "^4.0.0",
- "ts-invariant": "^0.10.3",
- "tslib": "^2.3.0",
- "zen-observable-ts": "^1.2.5"
- },
- "peerDependencies": {
- "graphql": "^15.0.0 || ^16.0.0",
- "graphql-ws": "^5.5.5",
- "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || >=19.0.0-rc <19.0.0",
- "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || >=19.0.0-rc <19.0.0",
- "subscriptions-transport-ws": "^0.9.0 || ^0.11.0"
- },
- "peerDependenciesMeta": {
- "graphql-ws": {
- "optional": true
- },
- "react": {
- "optional": true
- },
- "react-dom": {
- "optional": true
- },
- "subscriptions-transport-ws": {
- "optional": true
- }
- }
- },
- "node_modules/@apollo/experimental-nextjs-app-support": {
- "version": "0.8.0",
- "resolved": "https://registry.npmjs.org/@apollo/experimental-nextjs-app-support/-/experimental-nextjs-app-support-0.8.0.tgz",
- "integrity": "sha512-uyNIkOkew0T6ukC8ycbWBeTu8gtDSD5i+NVGEHU0DIEQaToFHObYcvIxaQ/8hvWzgvnpNU/KMsApfGXA9Xkpyw==",
- "dependencies": {
- "server-only": "^0.0.1",
- "superjson": "^1.12.2 || ^2.0.0",
- "ts-invariant": "^0.10.3"
- },
- "peerDependencies": {
- "@apollo/client": "^3.9.0",
- "next": "^13.4.1 || ^14.0.0",
- "react": "^18"
- }
- },
- "node_modules/@babel/runtime": {
- "version": "7.26.0",
- "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.26.0.tgz",
- "integrity": "sha512-FDSOghenHTiToteC/QRlv2q3DhPZ/oOXTBoirfWNx1Cx3TMVcGWQtMMmQcSvb/JjpNeGzx8Pq/b4fKEJuWm1sw==",
- "dependencies": {
- "regenerator-runtime": "^0.14.0"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@discoveryjs/json-ext": {
- "version": "0.5.7",
- "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz",
- "integrity": "sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==",
- "engines": {
- "node": ">=10.0.0"
- }
- },
- "node_modules/@emnapi/runtime": {
- "version": "1.3.1",
- "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.3.1.tgz",
- "integrity": "sha512-kEBmG8KyqtxJZv+ygbEim+KCGtIq1fC22Ms3S4ziXmYKm8uyoLX0MHONVKwp+9opg390VaKRNt4a7A9NwmpNhw==",
- "optional": true,
- "dependencies": {
- "tslib": "^2.4.0"
- }
- },
- "node_modules/@faustwp/cli": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/@faustwp/cli/-/cli-3.1.1.tgz",
- "integrity": "sha512-tZgnnCgsvfhuUGB9/gZG21kiO3B0uziBqEDPAf+aADqF8Ry6SKUDamrPFvksv6nKU4vTT+gPYpWgDwK1SBpVyA==",
- "dependencies": {
- "archiver": "^6.0.1",
- "chalk": "^4.1.2",
- "dotenv-flow": "^3.2.0",
- "form-data": "^4.0.0",
- "fs-extra": "^11.1.1",
- "glob": "^11.0.0",
- "isomorphic-fetch": "^3.0.0",
- "lodash": "^4.17.21",
- "webpack-cli": "5.1.4"
- },
- "bin": {
- "faust": "dist/index.js"
- },
- "engines": {
- "node": ">=18",
- "npm": ">=8"
- }
- },
- "node_modules/@faustwp/core": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/@faustwp/core/-/core-3.1.0.tgz",
- "integrity": "sha512-d8X4FNC/mlSsGcgib6vXHiX22K1sVtb6+4DcrzFh1t3xqEYiFNLKRdBkPMvWl+Q4PjUOxYwvUAcsUx1+6S8iJg==",
- "dependencies": {
- "@wordpress/hooks": "^3.14.0",
- "chalk": "^4.1.2",
- "classnames": "^2.3.2",
- "cookie": "^0.5.0",
- "deepmerge": "^4.2.2",
- "fast-xml-parser": "^4.4.1",
- "isomorphic-fetch": "^3.0.0",
- "js-cookie": "^3.0.5",
- "js-sha256": "^0.9.0",
- "lodash": "^4.17.21"
- },
- "engines": {
- "node": ">=18",
- "npm": ">=8"
- },
- "peerDependencies": {
- "@apollo/client": ">=3.6.6",
- "next": ">=12.1.6",
- "react": ">=17.0.2",
- "react-dom": ">=17.0.2"
- }
- },
- "node_modules/@faustwp/experimental-app-router": {
- "version": "0.4.0",
- "resolved": "https://registry.npmjs.org/@faustwp/experimental-app-router/-/experimental-app-router-0.4.0.tgz",
- "integrity": "sha512-pLc2mjUa/c/kf/RmVilbOP5BgC/L8TTSu5z7RabrNqlEysZXVnP5i0xBLmVNGf26NEV6VAlLwxbsprSJU+94iA==",
- "engines": {
- "node": ">=18",
- "npm": ">=8"
- },
- "peerDependencies": {
- "@apollo/client": ">=3.8.0",
- "@apollo/experimental-nextjs-app-support": ">=0.5.0",
- "@faustwp/cli": ">=1.1.3",
- "@faustwp/core": ">=1.1.2",
- "next": ">=14.0.0",
- "react": ">=18.0.0",
- "react-dom": ">=18.0.0"
- }
- },
- "node_modules/@graphql-typed-document-node/core": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/@graphql-typed-document-node/core/-/core-3.2.0.tgz",
- "integrity": "sha512-mB9oAsNCm9aM3/SOv4YtBMqZbYj10R7dkq8byBqxGY/ncFwhf2oQzMV+LCRlWoDSEBJ3COiR1yeDvMtsoOsuFQ==",
- "peerDependencies": {
- "graphql": "^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0"
- }
- },
- "node_modules/@img/sharp-darwin-arm64": {
- "version": "0.33.5",
- "resolved": "https://registry.npmjs.org/@img/sharp-darwin-arm64/-/sharp-darwin-arm64-0.33.5.tgz",
- "integrity": "sha512-UT4p+iz/2H4twwAoLCqfA9UH5pI6DggwKEGuaPy7nCVQ8ZsiY5PIcrRvD1DzuY3qYL07NtIQcWnBSY/heikIFQ==",
- "cpu": [
- "arm64"
- ],
- "optional": true,
- "os": [
- "darwin"
- ],
- "engines": {
- "node": "^18.17.0 || ^20.3.0 || >=21.0.0"
- },
- "funding": {
- "url": "https://opencollective.com/libvips"
- },
- "optionalDependencies": {
- "@img/sharp-libvips-darwin-arm64": "1.0.4"
- }
- },
- "node_modules/@img/sharp-darwin-x64": {
- "version": "0.33.5",
- "resolved": "https://registry.npmjs.org/@img/sharp-darwin-x64/-/sharp-darwin-x64-0.33.5.tgz",
- "integrity": "sha512-fyHac4jIc1ANYGRDxtiqelIbdWkIuQaI84Mv45KvGRRxSAa7o7d1ZKAOBaYbnepLC1WqxfpimdeWfvqqSGwR2Q==",
- "cpu": [
- "x64"
- ],
- "optional": true,
- "os": [
- "darwin"
- ],
- "engines": {
- "node": "^18.17.0 || ^20.3.0 || >=21.0.0"
- },
- "funding": {
- "url": "https://opencollective.com/libvips"
- },
- "optionalDependencies": {
- "@img/sharp-libvips-darwin-x64": "1.0.4"
- }
- },
- "node_modules/@img/sharp-libvips-darwin-arm64": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-arm64/-/sharp-libvips-darwin-arm64-1.0.4.tgz",
- "integrity": "sha512-XblONe153h0O2zuFfTAbQYAX2JhYmDHeWikp1LM9Hul9gVPjFY427k6dFEcOL72O01QxQsWi761svJ/ev9xEDg==",
- "cpu": [
- "arm64"
- ],
- "optional": true,
- "os": [
- "darwin"
- ],
- "funding": {
- "url": "https://opencollective.com/libvips"
- }
- },
- "node_modules/@img/sharp-libvips-darwin-x64": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-x64/-/sharp-libvips-darwin-x64-1.0.4.tgz",
- "integrity": "sha512-xnGR8YuZYfJGmWPvmlunFaWJsb9T/AO2ykoP3Fz/0X5XV2aoYBPkX6xqCQvUTKKiLddarLaxpzNe+b1hjeWHAQ==",
- "cpu": [
- "x64"
- ],
- "optional": true,
- "os": [
- "darwin"
- ],
- "funding": {
- "url": "https://opencollective.com/libvips"
- }
- },
- "node_modules/@img/sharp-libvips-linux-arm": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm/-/sharp-libvips-linux-arm-1.0.5.tgz",
- "integrity": "sha512-gvcC4ACAOPRNATg/ov8/MnbxFDJqf/pDePbBnuBDcjsI8PssmjoKMAz4LtLaVi+OnSb5FK/yIOamqDwGmXW32g==",
- "cpu": [
- "arm"
- ],
- "optional": true,
- "os": [
- "linux"
- ],
- "funding": {
- "url": "https://opencollective.com/libvips"
- }
- },
- "node_modules/@img/sharp-libvips-linux-arm64": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm64/-/sharp-libvips-linux-arm64-1.0.4.tgz",
- "integrity": "sha512-9B+taZ8DlyyqzZQnoeIvDVR/2F4EbMepXMc/NdVbkzsJbzkUjhXv/70GQJ7tdLA4YJgNP25zukcxpX2/SueNrA==",
- "cpu": [
- "arm64"
- ],
- "optional": true,
- "os": [
- "linux"
- ],
- "funding": {
- "url": "https://opencollective.com/libvips"
- }
- },
- "node_modules/@img/sharp-libvips-linux-s390x": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-s390x/-/sharp-libvips-linux-s390x-1.0.4.tgz",
- "integrity": "sha512-u7Wz6ntiSSgGSGcjZ55im6uvTrOxSIS8/dgoVMoiGE9I6JAfU50yH5BoDlYA1tcuGS7g/QNtetJnxA6QEsCVTA==",
- "cpu": [
- "s390x"
- ],
- "optional": true,
- "os": [
- "linux"
- ],
- "funding": {
- "url": "https://opencollective.com/libvips"
- }
- },
- "node_modules/@img/sharp-libvips-linux-x64": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-x64/-/sharp-libvips-linux-x64-1.0.4.tgz",
- "integrity": "sha512-MmWmQ3iPFZr0Iev+BAgVMb3ZyC4KeFc3jFxnNbEPas60e1cIfevbtuyf9nDGIzOaW9PdnDciJm+wFFaTlj5xYw==",
- "cpu": [
- "x64"
- ],
- "optional": true,
- "os": [
- "linux"
- ],
- "funding": {
- "url": "https://opencollective.com/libvips"
- }
- },
- "node_modules/@img/sharp-libvips-linuxmusl-arm64": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-arm64/-/sharp-libvips-linuxmusl-arm64-1.0.4.tgz",
- "integrity": "sha512-9Ti+BbTYDcsbp4wfYib8Ctm1ilkugkA/uscUn6UXK1ldpC1JjiXbLfFZtRlBhjPZ5o1NCLiDbg8fhUPKStHoTA==",
- "cpu": [
- "arm64"
- ],
- "optional": true,
- "os": [
- "linux"
- ],
- "funding": {
- "url": "https://opencollective.com/libvips"
- }
- },
- "node_modules/@img/sharp-libvips-linuxmusl-x64": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-x64/-/sharp-libvips-linuxmusl-x64-1.0.4.tgz",
- "integrity": "sha512-viYN1KX9m+/hGkJtvYYp+CCLgnJXwiQB39damAO7WMdKWlIhmYTfHjwSbQeUK/20vY154mwezd9HflVFM1wVSw==",
- "cpu": [
- "x64"
- ],
- "optional": true,
- "os": [
- "linux"
- ],
- "funding": {
- "url": "https://opencollective.com/libvips"
- }
- },
- "node_modules/@img/sharp-linux-arm": {
- "version": "0.33.5",
- "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm/-/sharp-linux-arm-0.33.5.tgz",
- "integrity": "sha512-JTS1eldqZbJxjvKaAkxhZmBqPRGmxgu+qFKSInv8moZ2AmT5Yib3EQ1c6gp493HvrvV8QgdOXdyaIBrhvFhBMQ==",
- "cpu": [
- "arm"
- ],
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": "^18.17.0 || ^20.3.0 || >=21.0.0"
- },
- "funding": {
- "url": "https://opencollective.com/libvips"
- },
- "optionalDependencies": {
- "@img/sharp-libvips-linux-arm": "1.0.5"
- }
- },
- "node_modules/@img/sharp-linux-arm64": {
- "version": "0.33.5",
- "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm64/-/sharp-linux-arm64-0.33.5.tgz",
- "integrity": "sha512-JMVv+AMRyGOHtO1RFBiJy/MBsgz0x4AWrT6QoEVVTyh1E39TrCUpTRI7mx9VksGX4awWASxqCYLCV4wBZHAYxA==",
- "cpu": [
- "arm64"
- ],
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": "^18.17.0 || ^20.3.0 || >=21.0.0"
- },
- "funding": {
- "url": "https://opencollective.com/libvips"
- },
- "optionalDependencies": {
- "@img/sharp-libvips-linux-arm64": "1.0.4"
- }
- },
- "node_modules/@img/sharp-linux-s390x": {
- "version": "0.33.5",
- "resolved": "https://registry.npmjs.org/@img/sharp-linux-s390x/-/sharp-linux-s390x-0.33.5.tgz",
- "integrity": "sha512-y/5PCd+mP4CA/sPDKl2961b+C9d+vPAveS33s6Z3zfASk2j5upL6fXVPZi7ztePZ5CuH+1kW8JtvxgbuXHRa4Q==",
- "cpu": [
- "s390x"
- ],
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": "^18.17.0 || ^20.3.0 || >=21.0.0"
- },
- "funding": {
- "url": "https://opencollective.com/libvips"
- },
- "optionalDependencies": {
- "@img/sharp-libvips-linux-s390x": "1.0.4"
- }
- },
- "node_modules/@img/sharp-linux-x64": {
- "version": "0.33.5",
- "resolved": "https://registry.npmjs.org/@img/sharp-linux-x64/-/sharp-linux-x64-0.33.5.tgz",
- "integrity": "sha512-opC+Ok5pRNAzuvq1AG0ar+1owsu842/Ab+4qvU879ippJBHvyY5n2mxF1izXqkPYlGuP/M556uh53jRLJmzTWA==",
- "cpu": [
- "x64"
- ],
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": "^18.17.0 || ^20.3.0 || >=21.0.0"
- },
- "funding": {
- "url": "https://opencollective.com/libvips"
- },
- "optionalDependencies": {
- "@img/sharp-libvips-linux-x64": "1.0.4"
- }
- },
- "node_modules/@img/sharp-linuxmusl-arm64": {
- "version": "0.33.5",
- "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-arm64/-/sharp-linuxmusl-arm64-0.33.5.tgz",
- "integrity": "sha512-XrHMZwGQGvJg2V/oRSUfSAfjfPxO+4DkiRh6p2AFjLQztWUuY/o8Mq0eMQVIY7HJ1CDQUJlxGGZRw1a5bqmd1g==",
- "cpu": [
- "arm64"
- ],
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": "^18.17.0 || ^20.3.0 || >=21.0.0"
- },
- "funding": {
- "url": "https://opencollective.com/libvips"
- },
- "optionalDependencies": {
- "@img/sharp-libvips-linuxmusl-arm64": "1.0.4"
- }
- },
- "node_modules/@img/sharp-linuxmusl-x64": {
- "version": "0.33.5",
- "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-x64/-/sharp-linuxmusl-x64-0.33.5.tgz",
- "integrity": "sha512-WT+d/cgqKkkKySYmqoZ8y3pxx7lx9vVejxW/W4DOFMYVSkErR+w7mf2u8m/y4+xHe7yY9DAXQMWQhpnMuFfScw==",
- "cpu": [
- "x64"
- ],
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": "^18.17.0 || ^20.3.0 || >=21.0.0"
- },
- "funding": {
- "url": "https://opencollective.com/libvips"
- },
- "optionalDependencies": {
- "@img/sharp-libvips-linuxmusl-x64": "1.0.4"
- }
- },
- "node_modules/@img/sharp-wasm32": {
- "version": "0.33.5",
- "resolved": "https://registry.npmjs.org/@img/sharp-wasm32/-/sharp-wasm32-0.33.5.tgz",
- "integrity": "sha512-ykUW4LVGaMcU9lu9thv85CbRMAwfeadCJHRsg2GmeRa/cJxsVY9Rbd57JcMxBkKHag5U/x7TSBpScF4U8ElVzg==",
- "cpu": [
- "wasm32"
- ],
- "optional": true,
- "dependencies": {
- "@emnapi/runtime": "^1.2.0"
- },
- "engines": {
- "node": "^18.17.0 || ^20.3.0 || >=21.0.0"
- },
- "funding": {
- "url": "https://opencollective.com/libvips"
- }
- },
- "node_modules/@img/sharp-win32-ia32": {
- "version": "0.33.5",
- "resolved": "https://registry.npmjs.org/@img/sharp-win32-ia32/-/sharp-win32-ia32-0.33.5.tgz",
- "integrity": "sha512-T36PblLaTwuVJ/zw/LaH0PdZkRz5rd3SmMHX8GSmR7vtNSP5Z6bQkExdSK7xGWyxLw4sUknBuugTelgw2faBbQ==",
- "cpu": [
- "ia32"
- ],
- "optional": true,
- "os": [
- "win32"
- ],
- "engines": {
- "node": "^18.17.0 || ^20.3.0 || >=21.0.0"
- },
- "funding": {
- "url": "https://opencollective.com/libvips"
- }
- },
- "node_modules/@img/sharp-win32-x64": {
- "version": "0.33.5",
- "resolved": "https://registry.npmjs.org/@img/sharp-win32-x64/-/sharp-win32-x64-0.33.5.tgz",
- "integrity": "sha512-MpY/o8/8kj+EcnxwvrP4aTJSWw/aZ7JIGR4aBeZkZw5B7/Jn+tY9/VNwtcoGmdT7GfggGIU4kygOMSbYnOrAbg==",
- "cpu": [
- "x64"
- ],
- "optional": true,
- "os": [
- "win32"
- ],
- "engines": {
- "node": "^18.17.0 || ^20.3.0 || >=21.0.0"
- },
- "funding": {
- "url": "https://opencollective.com/libvips"
- }
- },
- "node_modules/@isaacs/cliui": {
- "version": "8.0.2",
- "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz",
- "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==",
- "dependencies": {
- "string-width": "^5.1.2",
- "string-width-cjs": "npm:string-width@^4.2.0",
- "strip-ansi": "^7.0.1",
- "strip-ansi-cjs": "npm:strip-ansi@^6.0.1",
- "wrap-ansi": "^8.1.0",
- "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0"
- },
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@jridgewell/gen-mapping": {
- "version": "0.3.5",
- "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz",
- "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==",
- "peer": true,
- "dependencies": {
- "@jridgewell/set-array": "^1.2.1",
- "@jridgewell/sourcemap-codec": "^1.4.10",
- "@jridgewell/trace-mapping": "^0.3.24"
- },
- "engines": {
- "node": ">=6.0.0"
- }
- },
- "node_modules/@jridgewell/resolve-uri": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz",
- "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==",
- "peer": true,
- "engines": {
- "node": ">=6.0.0"
- }
- },
- "node_modules/@jridgewell/set-array": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz",
- "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==",
- "peer": true,
- "engines": {
- "node": ">=6.0.0"
- }
- },
- "node_modules/@jridgewell/source-map": {
- "version": "0.3.6",
- "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.6.tgz",
- "integrity": "sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==",
- "peer": true,
- "dependencies": {
- "@jridgewell/gen-mapping": "^0.3.5",
- "@jridgewell/trace-mapping": "^0.3.25"
- }
- },
- "node_modules/@jridgewell/sourcemap-codec": {
- "version": "1.5.0",
- "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz",
- "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==",
- "peer": true
- },
- "node_modules/@jridgewell/trace-mapping": {
- "version": "0.3.25",
- "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz",
- "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==",
- "peer": true,
- "dependencies": {
- "@jridgewell/resolve-uri": "^3.1.0",
- "@jridgewell/sourcemap-codec": "^1.4.14"
- }
- },
- "node_modules/@next/env": {
- "version": "15.1.2",
- "resolved": "https://registry.npmjs.org/@next/env/-/env-15.1.2.tgz",
- "integrity": "sha512-Hm3jIGsoUl6RLB1vzY+dZeqb+/kWPZ+h34yiWxW0dV87l8Im/eMOwpOA+a0L78U0HM04syEjXuRlCozqpwuojQ=="
- },
- "node_modules/@next/swc-darwin-arm64": {
- "version": "15.1.2",
- "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-15.1.2.tgz",
- "integrity": "sha512-b9TN7q+j5/7+rGLhFAVZiKJGIASuo8tWvInGfAd8wsULjB1uNGRCj1z1WZwwPWzVQbIKWFYqc+9L7W09qwt52w==",
- "cpu": [
- "arm64"
- ],
- "optional": true,
- "os": [
- "darwin"
- ],
- "engines": {
- "node": ">= 10"
- }
- },
- "node_modules/@next/swc-darwin-x64": {
- "version": "15.1.2",
- "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-15.1.2.tgz",
- "integrity": "sha512-caR62jNDUCU+qobStO6YJ05p9E+LR0EoXh1EEmyU69cYydsAy7drMcOlUlRtQihM6K6QfvNwJuLhsHcCzNpqtA==",
- "cpu": [
- "x64"
- ],
- "optional": true,
- "os": [
- "darwin"
- ],
- "engines": {
- "node": ">= 10"
- }
- },
- "node_modules/@next/swc-linux-arm64-gnu": {
- "version": "15.1.2",
- "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-15.1.2.tgz",
- "integrity": "sha512-fHHXBusURjBmN6VBUtu6/5s7cCeEkuGAb/ZZiGHBLVBXMBy4D5QpM8P33Or8JD1nlOjm/ZT9sEE5HouQ0F+hUA==",
- "cpu": [
- "arm64"
- ],
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">= 10"
- }
- },
- "node_modules/@next/swc-linux-arm64-musl": {
- "version": "15.1.2",
- "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-15.1.2.tgz",
- "integrity": "sha512-9CF1Pnivij7+M3G74lxr+e9h6o2YNIe7QtExWq1KUK4hsOLTBv6FJikEwCaC3NeYTflzrm69E5UfwEAbV2U9/g==",
- "cpu": [
- "arm64"
- ],
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">= 10"
- }
- },
- "node_modules/@next/swc-linux-x64-gnu": {
- "version": "15.1.2",
- "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-15.1.2.tgz",
- "integrity": "sha512-tINV7WmcTUf4oM/eN3Yuu/f8jQ5C6AkueZPKeALs/qfdfX57eNv4Ij7rt0SA6iZ8+fMobVfcFVv664Op0caCCg==",
- "cpu": [
- "x64"
- ],
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">= 10"
- }
- },
- "node_modules/@next/swc-linux-x64-musl": {
- "version": "15.1.2",
- "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-15.1.2.tgz",
- "integrity": "sha512-jf2IseC4WRsGkzeUw/cK3wci9pxR53GlLAt30+y+B+2qAQxMw6WAC3QrANIKxkcoPU3JFh/10uFfmoMDF9JXKg==",
- "cpu": [
- "x64"
- ],
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">= 10"
- }
- },
- "node_modules/@next/swc-win32-arm64-msvc": {
- "version": "15.1.2",
- "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-15.1.2.tgz",
- "integrity": "sha512-wvg7MlfnaociP7k8lxLX4s2iBJm4BrNiNFhVUY+Yur5yhAJHfkS8qPPeDEUH8rQiY0PX3u/P7Q/wcg6Mv6GSAA==",
- "cpu": [
- "arm64"
- ],
- "optional": true,
- "os": [
- "win32"
- ],
- "engines": {
- "node": ">= 10"
- }
- },
- "node_modules/@next/swc-win32-x64-msvc": {
- "version": "15.1.2",
- "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-15.1.2.tgz",
- "integrity": "sha512-D3cNA8NoT3aWISWmo7HF5Eyko/0OdOO+VagkoJuiTk7pyX3P/b+n8XA/MYvyR+xSVcbKn68B1rY9fgqjNISqzQ==",
- "cpu": [
- "x64"
- ],
- "optional": true,
- "os": [
- "win32"
- ],
- "engines": {
- "node": ">= 10"
- }
- },
- "node_modules/@swc/counter": {
- "version": "0.1.3",
- "resolved": "https://registry.npmjs.org/@swc/counter/-/counter-0.1.3.tgz",
- "integrity": "sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ=="
- },
- "node_modules/@swc/helpers": {
- "version": "0.5.15",
- "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.15.tgz",
- "integrity": "sha512-JQ5TuMi45Owi4/BIMAJBoSQoOJu12oOk/gADqlcUL9JEdHB8vyjUSsxqeNXnmXHjYKMi2WcYtezGEEhqUI/E2g==",
- "dependencies": {
- "tslib": "^2.8.0"
- }
- },
- "node_modules/@types/eslint": {
- "version": "9.6.1",
- "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-9.6.1.tgz",
- "integrity": "sha512-FXx2pKgId/WyYo2jXw63kk7/+TY7u7AziEJxJAnSFzHlqTAS3Ync6SvgYAN/k4/PQpnnVuzoMuVnByKK2qp0ag==",
- "peer": true,
- "dependencies": {
- "@types/estree": "*",
- "@types/json-schema": "*"
- }
- },
- "node_modules/@types/eslint-scope": {
- "version": "3.7.7",
- "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.7.tgz",
- "integrity": "sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==",
- "peer": true,
- "dependencies": {
- "@types/eslint": "*",
- "@types/estree": "*"
- }
- },
- "node_modules/@types/estree": {
- "version": "1.0.6",
- "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz",
- "integrity": "sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==",
- "peer": true
- },
- "node_modules/@types/json-schema": {
- "version": "7.0.15",
- "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz",
- "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==",
- "peer": true
- },
- "node_modules/@types/node": {
- "version": "20.17.8",
- "resolved": "https://registry.npmjs.org/@types/node/-/node-20.17.8.tgz",
- "integrity": "sha512-ahz2g6/oqbKalW9sPv6L2iRbhLnojxjYWspAqhjvqSWBgGebEJT5GvRmk0QXPj3sbC6rU0GTQjPLQkmR8CObvA==",
- "dependencies": {
- "undici-types": "~6.19.2"
- }
- },
- "node_modules/@types/react": {
- "name": "types-react",
- "version": "19.0.0-rc.1",
- "resolved": "https://registry.npmjs.org/types-react/-/types-react-19.0.0-rc.1.tgz",
- "integrity": "sha512-RshndUfqTW6K3STLPis8BtAYCGOkMbtvYsi90gmVNDZBXUyUc5juf2PE9LfS/JmOlUIRO8cWTS/1MTnmhjDqyQ==",
- "devOptional": true,
- "dependencies": {
- "csstype": "^3.0.2"
- }
- },
- "node_modules/@types/react-dom": {
- "name": "types-react-dom",
- "version": "19.0.0-rc.1",
- "resolved": "https://registry.npmjs.org/types-react-dom/-/types-react-dom-19.0.0-rc.1.tgz",
- "integrity": "sha512-VSLZJl8VXCD0fAWp7DUTFUDCcZ8DVXOQmjhJMD03odgeFmu14ZQJHCXeETm3BEAhJqfgJaFkLnGkQv88sRx0fQ==",
- "dev": true,
- "dependencies": {
- "@types/react": "*"
- }
- },
- "node_modules/@webassemblyjs/ast": {
- "version": "1.14.1",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.14.1.tgz",
- "integrity": "sha512-nuBEDgQfm1ccRp/8bCQrx1frohyufl4JlbMMZ4P1wpeOfDhF6FQkxZJ1b/e+PLwr6X1Nhw6OLme5usuBWYBvuQ==",
- "peer": true,
- "dependencies": {
- "@webassemblyjs/helper-numbers": "1.13.2",
- "@webassemblyjs/helper-wasm-bytecode": "1.13.2"
- }
- },
- "node_modules/@webassemblyjs/floating-point-hex-parser": {
- "version": "1.13.2",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.13.2.tgz",
- "integrity": "sha512-6oXyTOzbKxGH4steLbLNOu71Oj+C8Lg34n6CqRvqfS2O71BxY6ByfMDRhBytzknj9yGUPVJ1qIKhRlAwO1AovA==",
- "peer": true
- },
- "node_modules/@webassemblyjs/helper-api-error": {
- "version": "1.13.2",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.13.2.tgz",
- "integrity": "sha512-U56GMYxy4ZQCbDZd6JuvvNV/WFildOjsaWD3Tzzvmw/mas3cXzRJPMjP83JqEsgSbyrmaGjBfDtV7KDXV9UzFQ==",
- "peer": true
- },
- "node_modules/@webassemblyjs/helper-buffer": {
- "version": "1.14.1",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.14.1.tgz",
- "integrity": "sha512-jyH7wtcHiKssDtFPRB+iQdxlDf96m0E39yb0k5uJVhFGleZFoNw1c4aeIcVUPPbXUVJ94wwnMOAqUHyzoEPVMA==",
- "peer": true
- },
- "node_modules/@webassemblyjs/helper-numbers": {
- "version": "1.13.2",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.13.2.tgz",
- "integrity": "sha512-FE8aCmS5Q6eQYcV3gI35O4J789wlQA+7JrqTTpJqn5emA4U2hvwJmvFRC0HODS+3Ye6WioDklgd6scJ3+PLnEA==",
- "peer": true,
- "dependencies": {
- "@webassemblyjs/floating-point-hex-parser": "1.13.2",
- "@webassemblyjs/helper-api-error": "1.13.2",
- "@xtuc/long": "4.2.2"
- }
- },
- "node_modules/@webassemblyjs/helper-wasm-bytecode": {
- "version": "1.13.2",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.13.2.tgz",
- "integrity": "sha512-3QbLKy93F0EAIXLh0ogEVR6rOubA9AoZ+WRYhNbFyuB70j3dRdwH9g+qXhLAO0kiYGlg3TxDV+I4rQTr/YNXkA==",
- "peer": true
- },
- "node_modules/@webassemblyjs/helper-wasm-section": {
- "version": "1.14.1",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.14.1.tgz",
- "integrity": "sha512-ds5mXEqTJ6oxRoqjhWDU83OgzAYjwsCV8Lo/N+oRsNDmx/ZDpqalmrtgOMkHwxsG0iI//3BwWAErYRHtgn0dZw==",
- "peer": true,
- "dependencies": {
- "@webassemblyjs/ast": "1.14.1",
- "@webassemblyjs/helper-buffer": "1.14.1",
- "@webassemblyjs/helper-wasm-bytecode": "1.13.2",
- "@webassemblyjs/wasm-gen": "1.14.1"
- }
- },
- "node_modules/@webassemblyjs/ieee754": {
- "version": "1.13.2",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.13.2.tgz",
- "integrity": "sha512-4LtOzh58S/5lX4ITKxnAK2USuNEvpdVV9AlgGQb8rJDHaLeHciwG4zlGr0j/SNWlr7x3vO1lDEsuePvtcDNCkw==",
- "peer": true,
- "dependencies": {
- "@xtuc/ieee754": "^1.2.0"
- }
- },
- "node_modules/@webassemblyjs/leb128": {
- "version": "1.13.2",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.13.2.tgz",
- "integrity": "sha512-Lde1oNoIdzVzdkNEAWZ1dZ5orIbff80YPdHx20mrHwHrVNNTjNr8E3xz9BdpcGqRQbAEa+fkrCb+fRFTl/6sQw==",
- "peer": true,
- "dependencies": {
- "@xtuc/long": "4.2.2"
- }
- },
- "node_modules/@webassemblyjs/utf8": {
- "version": "1.13.2",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.13.2.tgz",
- "integrity": "sha512-3NQWGjKTASY1xV5m7Hr0iPeXD9+RDobLll3T9d2AO+g3my8xy5peVyjSag4I50mR1bBSN/Ct12lo+R9tJk0NZQ==",
- "peer": true
- },
- "node_modules/@webassemblyjs/wasm-edit": {
- "version": "1.14.1",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.14.1.tgz",
- "integrity": "sha512-RNJUIQH/J8iA/1NzlE4N7KtyZNHi3w7at7hDjvRNm5rcUXa00z1vRz3glZoULfJ5mpvYhLybmVcwcjGrC1pRrQ==",
- "peer": true,
- "dependencies": {
- "@webassemblyjs/ast": "1.14.1",
- "@webassemblyjs/helper-buffer": "1.14.1",
- "@webassemblyjs/helper-wasm-bytecode": "1.13.2",
- "@webassemblyjs/helper-wasm-section": "1.14.1",
- "@webassemblyjs/wasm-gen": "1.14.1",
- "@webassemblyjs/wasm-opt": "1.14.1",
- "@webassemblyjs/wasm-parser": "1.14.1",
- "@webassemblyjs/wast-printer": "1.14.1"
- }
- },
- "node_modules/@webassemblyjs/wasm-gen": {
- "version": "1.14.1",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.14.1.tgz",
- "integrity": "sha512-AmomSIjP8ZbfGQhumkNvgC33AY7qtMCXnN6bL2u2Js4gVCg8fp735aEiMSBbDR7UQIj90n4wKAFUSEd0QN2Ukg==",
- "peer": true,
- "dependencies": {
- "@webassemblyjs/ast": "1.14.1",
- "@webassemblyjs/helper-wasm-bytecode": "1.13.2",
- "@webassemblyjs/ieee754": "1.13.2",
- "@webassemblyjs/leb128": "1.13.2",
- "@webassemblyjs/utf8": "1.13.2"
- }
- },
- "node_modules/@webassemblyjs/wasm-opt": {
- "version": "1.14.1",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.14.1.tgz",
- "integrity": "sha512-PTcKLUNvBqnY2U6E5bdOQcSM+oVP/PmrDY9NzowJjislEjwP/C4an2303MCVS2Mg9d3AJpIGdUFIQQWbPds0Sw==",
- "peer": true,
- "dependencies": {
- "@webassemblyjs/ast": "1.14.1",
- "@webassemblyjs/helper-buffer": "1.14.1",
- "@webassemblyjs/wasm-gen": "1.14.1",
- "@webassemblyjs/wasm-parser": "1.14.1"
- }
- },
- "node_modules/@webassemblyjs/wasm-parser": {
- "version": "1.14.1",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.14.1.tgz",
- "integrity": "sha512-JLBl+KZ0R5qB7mCnud/yyX08jWFw5MsoalJ1pQ4EdFlgj9VdXKGuENGsiCIjegI1W7p91rUlcB/LB5yRJKNTcQ==",
- "peer": true,
- "dependencies": {
- "@webassemblyjs/ast": "1.14.1",
- "@webassemblyjs/helper-api-error": "1.13.2",
- "@webassemblyjs/helper-wasm-bytecode": "1.13.2",
- "@webassemblyjs/ieee754": "1.13.2",
- "@webassemblyjs/leb128": "1.13.2",
- "@webassemblyjs/utf8": "1.13.2"
- }
- },
- "node_modules/@webassemblyjs/wast-printer": {
- "version": "1.14.1",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.14.1.tgz",
- "integrity": "sha512-kPSSXE6De1XOR820C90RIo2ogvZG+c3KiHzqUoO/F34Y2shGzesfqv7o57xrxovZJH/MetF5UjroJ/R/3isoiw==",
- "peer": true,
- "dependencies": {
- "@webassemblyjs/ast": "1.14.1",
- "@xtuc/long": "4.2.2"
- }
- },
- "node_modules/@webpack-cli/configtest": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/@webpack-cli/configtest/-/configtest-2.1.1.tgz",
- "integrity": "sha512-wy0mglZpDSiSS0XHrVR+BAdId2+yxPSoJW8fsna3ZpYSlufjvxnP4YbKTCBZnNIcGN4r6ZPXV55X4mYExOfLmw==",
- "engines": {
- "node": ">=14.15.0"
- },
- "peerDependencies": {
- "webpack": "5.x.x",
- "webpack-cli": "5.x.x"
- }
- },
- "node_modules/@webpack-cli/info": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/@webpack-cli/info/-/info-2.0.2.tgz",
- "integrity": "sha512-zLHQdI/Qs1UyT5UBdWNqsARasIA+AaF8t+4u2aS2nEpBQh2mWIVb8qAklq0eUENnC5mOItrIB4LiS9xMtph18A==",
- "engines": {
- "node": ">=14.15.0"
- },
- "peerDependencies": {
- "webpack": "5.x.x",
- "webpack-cli": "5.x.x"
- }
- },
- "node_modules/@webpack-cli/serve": {
- "version": "2.0.5",
- "resolved": "https://registry.npmjs.org/@webpack-cli/serve/-/serve-2.0.5.tgz",
- "integrity": "sha512-lqaoKnRYBdo1UgDX8uF24AfGMifWK19TxPmM5FHc2vAGxrJ/qtyUyFBWoY1tISZdelsQ5fBcOusifo5o5wSJxQ==",
- "engines": {
- "node": ">=14.15.0"
- },
- "peerDependencies": {
- "webpack": "5.x.x",
- "webpack-cli": "5.x.x"
- },
- "peerDependenciesMeta": {
- "webpack-dev-server": {
- "optional": true
- }
- }
- },
- "node_modules/@wordpress/hooks": {
- "version": "3.58.0",
- "resolved": "https://registry.npmjs.org/@wordpress/hooks/-/hooks-3.58.0.tgz",
- "integrity": "sha512-9LB0ZHnZRQlORttux9t/xbAskF+dk2ujqzPGsVzc92mSKpQP3K2a5Wy74fUnInguB1vLUNHT6nrNdkVom5qX1Q==",
- "dependencies": {
- "@babel/runtime": "^7.16.0"
- },
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@wry/caches": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/@wry/caches/-/caches-1.0.1.tgz",
- "integrity": "sha512-bXuaUNLVVkD20wcGBWRyo7j9N3TxePEWFZj2Y+r9OoUzfqmavM84+mFykRicNsBqatba5JLay1t48wxaXaWnlA==",
- "dependencies": {
- "tslib": "^2.3.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/@wry/context": {
- "version": "0.7.4",
- "resolved": "https://registry.npmjs.org/@wry/context/-/context-0.7.4.tgz",
- "integrity": "sha512-jmT7Sb4ZQWI5iyu3lobQxICu2nC/vbUhP0vIdd6tHC9PTfenmRmuIFqktc6GH9cgi+ZHnsLWPvfSvc4DrYmKiQ==",
- "dependencies": {
- "tslib": "^2.3.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/@wry/equality": {
- "version": "0.5.7",
- "resolved": "https://registry.npmjs.org/@wry/equality/-/equality-0.5.7.tgz",
- "integrity": "sha512-BRFORjsTuQv5gxcXsuDXx6oGRhuVsEGwZy6LOzRRfgu+eSfxbhUQ9L9YtSEIuIjY/o7g3iWFjrc5eSY1GXP2Dw==",
- "dependencies": {
- "tslib": "^2.3.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/@wry/trie": {
- "version": "0.5.0",
- "resolved": "https://registry.npmjs.org/@wry/trie/-/trie-0.5.0.tgz",
- "integrity": "sha512-FNoYzHawTMk/6KMQoEG5O4PuioX19UbwdQKF44yw0nLfOypfQdjtfZzo/UIJWAJ23sNIFbD1Ug9lbaDGMwbqQA==",
- "dependencies": {
- "tslib": "^2.3.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/@xtuc/ieee754": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz",
- "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==",
- "peer": true
- },
- "node_modules/@xtuc/long": {
- "version": "4.2.2",
- "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz",
- "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==",
- "peer": true
- },
- "node_modules/acorn": {
- "version": "8.14.0",
- "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.0.tgz",
- "integrity": "sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==",
- "peer": true,
- "bin": {
- "acorn": "bin/acorn"
- },
- "engines": {
- "node": ">=0.4.0"
- }
- },
- "node_modules/ajv": {
- "version": "6.12.6",
- "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
- "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
- "peer": true,
- "dependencies": {
- "fast-deep-equal": "^3.1.1",
- "fast-json-stable-stringify": "^2.0.0",
- "json-schema-traverse": "^0.4.1",
- "uri-js": "^4.2.2"
- },
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/epoberezkin"
- }
- },
- "node_modules/ajv-keywords": {
- "version": "3.5.2",
- "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz",
- "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==",
- "peer": true,
- "peerDependencies": {
- "ajv": "^6.9.1"
- }
- },
- "node_modules/ansi-regex": {
- "version": "6.1.0",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz",
- "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==",
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/chalk/ansi-regex?sponsor=1"
- }
- },
- "node_modules/ansi-styles": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
- "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
- "dependencies": {
- "color-convert": "^2.0.1"
- },
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/chalk/ansi-styles?sponsor=1"
- }
- },
- "node_modules/archiver": {
- "version": "6.0.2",
- "resolved": "https://registry.npmjs.org/archiver/-/archiver-6.0.2.tgz",
- "integrity": "sha512-UQ/2nW7NMl1G+1UnrLypQw1VdT9XZg/ECcKPq7l+STzStrSivFIXIp34D8M5zeNGW5NoOupdYCHv6VySCPNNlw==",
- "dependencies": {
- "archiver-utils": "^4.0.1",
- "async": "^3.2.4",
- "buffer-crc32": "^0.2.1",
- "readable-stream": "^3.6.0",
- "readdir-glob": "^1.1.2",
- "tar-stream": "^3.0.0",
- "zip-stream": "^5.0.1"
- },
- "engines": {
- "node": ">= 12.0.0"
- }
- },
- "node_modules/archiver-utils": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/archiver-utils/-/archiver-utils-4.0.1.tgz",
- "integrity": "sha512-Q4Q99idbvzmgCTEAAhi32BkOyq8iVI5EwdO0PmBDSGIzzjYNdcFn7Q7k3OzbLy4kLUPXfJtG6fO2RjftXbobBg==",
- "dependencies": {
- "glob": "^8.0.0",
- "graceful-fs": "^4.2.0",
- "lazystream": "^1.0.0",
- "lodash": "^4.17.15",
- "normalize-path": "^3.0.0",
- "readable-stream": "^3.6.0"
- },
- "engines": {
- "node": ">= 12.0.0"
- }
- },
- "node_modules/archiver-utils/node_modules/glob": {
- "version": "8.1.0",
- "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz",
- "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==",
- "deprecated": "Glob versions prior to v9 are no longer supported",
- "dependencies": {
- "fs.realpath": "^1.0.0",
- "inflight": "^1.0.4",
- "inherits": "2",
- "minimatch": "^5.0.1",
- "once": "^1.3.0"
- },
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
- "node_modules/archiver-utils/node_modules/minimatch": {
- "version": "5.1.6",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz",
- "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==",
- "dependencies": {
- "brace-expansion": "^2.0.1"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/async": {
- "version": "3.2.6",
- "resolved": "https://registry.npmjs.org/async/-/async-3.2.6.tgz",
- "integrity": "sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA=="
- },
- "node_modules/asynckit": {
- "version": "0.4.0",
- "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
- "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q=="
- },
- "node_modules/b4a": {
- "version": "1.6.7",
- "resolved": "https://registry.npmjs.org/b4a/-/b4a-1.6.7.tgz",
- "integrity": "sha512-OnAYlL5b7LEkALw87fUVafQw5rVR9RjwGd4KUwNQ6DrrNmaVaUCgLipfVlzrPQ4tWOR9P0IXGNOx50jYCCdSJg=="
- },
- "node_modules/balanced-match": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
- "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw=="
- },
- "node_modules/bare-events": {
- "version": "2.5.0",
- "resolved": "https://registry.npmjs.org/bare-events/-/bare-events-2.5.0.tgz",
- "integrity": "sha512-/E8dDe9dsbLyh2qrZ64PEPadOQ0F4gbl1sUJOrmph7xOiIxfY8vwab/4bFLh4Y88/Hk/ujKcrQKc+ps0mv873A==",
- "optional": true
- },
- "node_modules/brace-expansion": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
- "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
- "dependencies": {
- "balanced-match": "^1.0.0"
- }
- },
- "node_modules/browserslist": {
- "version": "4.24.2",
- "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.24.2.tgz",
- "integrity": "sha512-ZIc+Q62revdMcqC6aChtW4jz3My3klmCO1fEmINZY/8J3EpBg5/A/D0AKmBveUh6pgoeycoMkVMko84tuYS+Gg==",
- "funding": [
- {
- "type": "opencollective",
- "url": "https://opencollective.com/browserslist"
- },
- {
- "type": "tidelift",
- "url": "https://tidelift.com/funding/github/npm/browserslist"
- },
- {
- "type": "github",
- "url": "https://github.com/sponsors/ai"
- }
- ],
- "peer": true,
- "dependencies": {
- "caniuse-lite": "^1.0.30001669",
- "electron-to-chromium": "^1.5.41",
- "node-releases": "^2.0.18",
- "update-browserslist-db": "^1.1.1"
- },
- "bin": {
- "browserslist": "cli.js"
- },
- "engines": {
- "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7"
- }
- },
- "node_modules/buffer-crc32": {
- "version": "0.2.13",
- "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz",
- "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==",
- "engines": {
- "node": "*"
- }
- },
- "node_modules/buffer-from": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz",
- "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==",
- "peer": true
- },
- "node_modules/busboy": {
- "version": "1.6.0",
- "resolved": "https://registry.npmjs.org/busboy/-/busboy-1.6.0.tgz",
- "integrity": "sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==",
- "dependencies": {
- "streamsearch": "^1.1.0"
- },
- "engines": {
- "node": ">=10.16.0"
- }
- },
- "node_modules/caniuse-lite": {
- "version": "1.0.30001684",
- "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001684.tgz",
- "integrity": "sha512-G1LRwLIQjBQoyq0ZJGqGIJUXzJ8irpbjHLpVRXDvBEScFJ9b17sgK6vlx0GAJFE21okD7zXl08rRRUfq6HdoEQ==",
- "funding": [
- {
- "type": "opencollective",
- "url": "https://opencollective.com/browserslist"
- },
- {
- "type": "tidelift",
- "url": "https://tidelift.com/funding/github/npm/caniuse-lite"
- },
- {
- "type": "github",
- "url": "https://github.com/sponsors/ai"
- }
- ]
- },
- "node_modules/chalk": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
- "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
- "dependencies": {
- "ansi-styles": "^4.1.0",
- "supports-color": "^7.1.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/chalk/chalk?sponsor=1"
- }
- },
- "node_modules/chrome-trace-event": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.4.tgz",
- "integrity": "sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ==",
- "peer": true,
- "engines": {
- "node": ">=6.0"
- }
- },
- "node_modules/classnames": {
- "version": "2.5.1",
- "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.5.1.tgz",
- "integrity": "sha512-saHYOzhIQs6wy2sVxTM6bUDsQO4F50V9RQ22qBpEdCW+I+/Wmke2HOl6lS6dTpdxVhb88/I6+Hs+438c3lfUow=="
- },
- "node_modules/client-only": {
- "version": "0.0.1",
- "resolved": "https://registry.npmjs.org/client-only/-/client-only-0.0.1.tgz",
- "integrity": "sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA=="
- },
- "node_modules/clone-deep": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz",
- "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==",
- "dependencies": {
- "is-plain-object": "^2.0.4",
- "kind-of": "^6.0.2",
- "shallow-clone": "^3.0.0"
- },
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/color": {
- "version": "4.2.3",
- "resolved": "https://registry.npmjs.org/color/-/color-4.2.3.tgz",
- "integrity": "sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==",
- "optional": true,
- "dependencies": {
- "color-convert": "^2.0.1",
- "color-string": "^1.9.0"
- },
- "engines": {
- "node": ">=12.5.0"
- }
- },
- "node_modules/color-convert": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
- "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
- "dependencies": {
- "color-name": "~1.1.4"
- },
- "engines": {
- "node": ">=7.0.0"
- }
- },
- "node_modules/color-name": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
- "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
- },
- "node_modules/color-string": {
- "version": "1.9.1",
- "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.9.1.tgz",
- "integrity": "sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==",
- "optional": true,
- "dependencies": {
- "color-name": "^1.0.0",
- "simple-swizzle": "^0.2.2"
- }
- },
- "node_modules/colorette": {
- "version": "2.0.20",
- "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz",
- "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w=="
- },
- "node_modules/combined-stream": {
- "version": "1.0.8",
- "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
- "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
- "dependencies": {
- "delayed-stream": "~1.0.0"
- },
- "engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/commander": {
- "version": "2.20.3",
- "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz",
- "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==",
- "peer": true
- },
- "node_modules/compress-commons": {
- "version": "5.0.3",
- "resolved": "https://registry.npmjs.org/compress-commons/-/compress-commons-5.0.3.tgz",
- "integrity": "sha512-/UIcLWvwAQyVibgpQDPtfNM3SvqN7G9elAPAV7GM0L53EbNWwWiCsWtK8Fwed/APEbptPHXs5PuW+y8Bq8lFTA==",
- "dependencies": {
- "crc-32": "^1.2.0",
- "crc32-stream": "^5.0.0",
- "normalize-path": "^3.0.0",
- "readable-stream": "^3.6.0"
- },
- "engines": {
- "node": ">= 12.0.0"
- }
- },
- "node_modules/cookie": {
- "version": "0.5.0",
- "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz",
- "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==",
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/copy-anything": {
- "version": "3.0.5",
- "resolved": "https://registry.npmjs.org/copy-anything/-/copy-anything-3.0.5.tgz",
- "integrity": "sha512-yCEafptTtb4bk7GLEQoM8KVJpxAfdBJYaXyzQEgQQQgYrZiDp8SJmGKlYza6CYjEDNstAdNdKA3UuoULlEbS6w==",
- "dependencies": {
- "is-what": "^4.1.8"
- },
- "engines": {
- "node": ">=12.13"
- },
- "funding": {
- "url": "https://github.com/sponsors/mesqueeb"
- }
- },
- "node_modules/core-util-is": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz",
- "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ=="
- },
- "node_modules/crc-32": {
- "version": "1.2.2",
- "resolved": "https://registry.npmjs.org/crc-32/-/crc-32-1.2.2.tgz",
- "integrity": "sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==",
- "bin": {
- "crc32": "bin/crc32.njs"
- },
- "engines": {
- "node": ">=0.8"
- }
- },
- "node_modules/crc32-stream": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/crc32-stream/-/crc32-stream-5.0.1.tgz",
- "integrity": "sha512-lO1dFui+CEUh/ztYIpgpKItKW9Bb4NWakCRJrnqAbFIYD+OZAwb2VfD5T5eXMw2FNcsDHkQcNl/Wh3iVXYwU6g==",
- "dependencies": {
- "crc-32": "^1.2.0",
- "readable-stream": "^3.4.0"
- },
- "engines": {
- "node": ">= 12.0.0"
- }
- },
- "node_modules/cross-spawn": {
- "version": "7.0.6",
- "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz",
- "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==",
- "dependencies": {
- "path-key": "^3.1.0",
- "shebang-command": "^2.0.0",
- "which": "^2.0.1"
- },
- "engines": {
- "node": ">= 8"
- }
- },
- "node_modules/csstype": {
- "version": "3.1.3",
- "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz",
- "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==",
- "devOptional": true
- },
- "node_modules/deepmerge": {
- "version": "4.3.1",
- "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz",
- "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/delayed-stream": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
- "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==",
- "engines": {
- "node": ">=0.4.0"
- }
- },
- "node_modules/detect-libc": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.3.tgz",
- "integrity": "sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw==",
- "optional": true,
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/dotenv": {
- "version": "8.6.0",
- "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-8.6.0.tgz",
- "integrity": "sha512-IrPdXQsk2BbzvCBGBOTmmSH5SodmqZNt4ERAZDmW4CT+tL8VtvinqywuANaFu4bOMWki16nqf0e4oC0QIaDr/g==",
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/dotenv-flow": {
- "version": "3.3.0",
- "resolved": "https://registry.npmjs.org/dotenv-flow/-/dotenv-flow-3.3.0.tgz",
- "integrity": "sha512-GLSvRqDZ1TGhloS6ZCZ5chdqqv/3XMqZxAnX9rliJiHn6uyJLguKeu+3M2kcagBkoVCnLWYfbR4rfFe1xSU39A==",
- "dependencies": {
- "dotenv": "^8.6.0"
- },
- "engines": {
- "node": ">= 8.0.0"
- }
- },
- "node_modules/eastasianwidth": {
- "version": "0.2.0",
- "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz",
- "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA=="
- },
- "node_modules/electron-to-chromium": {
- "version": "1.5.65",
- "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.65.tgz",
- "integrity": "sha512-PWVzBjghx7/wop6n22vS2MLU8tKGd4Q91aCEGhG/TYmW6PP5OcSXcdnxTe1NNt0T66N8D6jxh4kC8UsdzOGaIw==",
- "peer": true
- },
- "node_modules/emoji-regex": {
- "version": "9.2.2",
- "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz",
- "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg=="
- },
- "node_modules/enhanced-resolve": {
- "version": "5.17.1",
- "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.17.1.tgz",
- "integrity": "sha512-LMHl3dXhTcfv8gM4kEzIUeTQ+7fpdA0l2tUf34BddXPkz2A5xJ5L/Pchd5BL6rdccM9QGvu0sWZzK1Z1t4wwyg==",
- "peer": true,
- "dependencies": {
- "graceful-fs": "^4.2.4",
- "tapable": "^2.2.0"
- },
- "engines": {
- "node": ">=10.13.0"
- }
- },
- "node_modules/envinfo": {
- "version": "7.14.0",
- "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.14.0.tgz",
- "integrity": "sha512-CO40UI41xDQzhLB1hWyqUKgFhs250pNcGbyGKe1l/e4FSaI/+YE4IMG76GDt0In67WLPACIITC+sOi08x4wIvg==",
- "bin": {
- "envinfo": "dist/cli.js"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/es-module-lexer": {
- "version": "1.5.4",
- "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.5.4.tgz",
- "integrity": "sha512-MVNK56NiMrOwitFB7cqDwq0CQutbw+0BvLshJSse0MUNU+y1FC3bUS/AQg7oUng+/wKrrki7JfmwtVHkVfPLlw==",
- "peer": true
- },
- "node_modules/escalade": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz",
- "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==",
- "peer": true,
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/eslint-scope": {
- "version": "5.1.1",
- "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz",
- "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==",
- "peer": true,
- "dependencies": {
- "esrecurse": "^4.3.0",
- "estraverse": "^4.1.1"
- },
- "engines": {
- "node": ">=8.0.0"
- }
- },
- "node_modules/esrecurse": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz",
- "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==",
- "peer": true,
- "dependencies": {
- "estraverse": "^5.2.0"
- },
- "engines": {
- "node": ">=4.0"
- }
- },
- "node_modules/esrecurse/node_modules/estraverse": {
- "version": "5.3.0",
- "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz",
- "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==",
- "peer": true,
- "engines": {
- "node": ">=4.0"
- }
- },
- "node_modules/estraverse": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz",
- "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==",
- "peer": true,
- "engines": {
- "node": ">=4.0"
- }
- },
- "node_modules/events": {
- "version": "3.3.0",
- "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz",
- "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==",
- "peer": true,
- "engines": {
- "node": ">=0.8.x"
- }
- },
- "node_modules/fast-deep-equal": {
- "version": "3.1.3",
- "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
- "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==",
- "peer": true
- },
- "node_modules/fast-fifo": {
- "version": "1.3.2",
- "resolved": "https://registry.npmjs.org/fast-fifo/-/fast-fifo-1.3.2.tgz",
- "integrity": "sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ=="
- },
- "node_modules/fast-json-stable-stringify": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz",
- "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==",
- "peer": true
- },
- "node_modules/fast-xml-parser": {
- "version": "4.5.0",
- "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-4.5.0.tgz",
- "integrity": "sha512-/PlTQCI96+fZMAOLMZK4CWG1ItCbfZ/0jx7UIJFChPNrx7tcEgerUgWbeieCM9MfHInUDyK8DWYZ+YrywDJuTg==",
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/NaturalIntelligence"
- },
- {
- "type": "paypal",
- "url": "https://paypal.me/naturalintelligence"
- }
- ],
- "dependencies": {
- "strnum": "^1.0.5"
- },
- "bin": {
- "fxparser": "src/cli/cli.js"
- }
- },
- "node_modules/fastest-levenshtein": {
- "version": "1.0.16",
- "resolved": "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.16.tgz",
- "integrity": "sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==",
- "engines": {
- "node": ">= 4.9.1"
- }
- },
- "node_modules/find-up": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz",
- "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==",
- "dependencies": {
- "locate-path": "^5.0.0",
- "path-exists": "^4.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/flat": {
- "version": "5.0.2",
- "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz",
- "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==",
- "bin": {
- "flat": "cli.js"
- }
- },
- "node_modules/foreground-child": {
- "version": "3.3.0",
- "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.0.tgz",
- "integrity": "sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==",
- "dependencies": {
- "cross-spawn": "^7.0.0",
- "signal-exit": "^4.0.1"
- },
- "engines": {
- "node": ">=14"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
- "node_modules/form-data": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.1.tgz",
- "integrity": "sha512-tzN8e4TX8+kkxGPK8D5u0FNmjPUjw3lwC9lSLxxoB/+GtsJG91CO8bSWy73APlgAZzZbXEYZJuxjkHH2w+Ezhw==",
- "dependencies": {
- "asynckit": "^0.4.0",
- "combined-stream": "^1.0.8",
- "mime-types": "^2.1.12"
- },
- "engines": {
- "node": ">= 6"
- }
- },
- "node_modules/fs-extra": {
- "version": "11.2.0",
- "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.2.0.tgz",
- "integrity": "sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==",
- "dependencies": {
- "graceful-fs": "^4.2.0",
- "jsonfile": "^6.0.1",
- "universalify": "^2.0.0"
- },
- "engines": {
- "node": ">=14.14"
- }
- },
- "node_modules/fs.realpath": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
- "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw=="
- },
- "node_modules/function-bind": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz",
- "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==",
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/glob": {
- "version": "11.0.0",
- "resolved": "https://registry.npmjs.org/glob/-/glob-11.0.0.tgz",
- "integrity": "sha512-9UiX/Bl6J2yaBbxKoEBRm4Cipxgok8kQYcOPEhScPwebu2I0HoQOuYdIO6S3hLuWoZgpDpwQZMzTFxgpkyT76g==",
- "dependencies": {
- "foreground-child": "^3.1.0",
- "jackspeak": "^4.0.1",
- "minimatch": "^10.0.0",
- "minipass": "^7.1.2",
- "package-json-from-dist": "^1.0.0",
- "path-scurry": "^2.0.0"
- },
- "bin": {
- "glob": "dist/esm/bin.mjs"
- },
- "engines": {
- "node": "20 || >=22"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
- "node_modules/glob-to-regexp": {
- "version": "0.4.1",
- "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz",
- "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==",
- "peer": true
- },
- "node_modules/graceful-fs": {
- "version": "4.2.11",
- "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz",
- "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ=="
- },
- "node_modules/graphql": {
- "version": "16.9.0",
- "resolved": "https://registry.npmjs.org/graphql/-/graphql-16.9.0.tgz",
- "integrity": "sha512-GGTKBX4SD7Wdb8mqeDLni2oaRGYQWjWHGKPQ24ZMnUtKfcsVoiv4uX8+LJr1K6U5VW2Lu1BwJnj7uiori0YtRw==",
- "engines": {
- "node": "^12.22.0 || ^14.16.0 || ^16.0.0 || >=17.0.0"
- }
- },
- "node_modules/graphql-tag": {
- "version": "2.12.6",
- "resolved": "https://registry.npmjs.org/graphql-tag/-/graphql-tag-2.12.6.tgz",
- "integrity": "sha512-FdSNcu2QQcWnM2VNvSCCDCVS5PpPqpzgFT8+GXzqJuoDd0CBncxCY278u4mhRO7tMgo2JjgJA5aZ+nWSQ/Z+xg==",
- "dependencies": {
- "tslib": "^2.1.0"
- },
- "engines": {
- "node": ">=10"
- },
- "peerDependencies": {
- "graphql": "^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0"
- }
- },
- "node_modules/has-flag": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
- "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/hasown": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz",
- "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==",
- "dependencies": {
- "function-bind": "^1.1.2"
- },
- "engines": {
- "node": ">= 0.4"
- }
- },
- "node_modules/hoist-non-react-statics": {
- "version": "3.3.2",
- "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz",
- "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==",
- "dependencies": {
- "react-is": "^16.7.0"
- }
- },
- "node_modules/import-local": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.2.0.tgz",
- "integrity": "sha512-2SPlun1JUPWoM6t3F0dw0FkCF/jWY8kttcY4f599GLTSjh2OCuuhdTkJQsEcZzBqbXZGKMK2OqW1oZsjtf/gQA==",
- "dependencies": {
- "pkg-dir": "^4.2.0",
- "resolve-cwd": "^3.0.0"
- },
- "bin": {
- "import-local-fixture": "fixtures/cli.js"
- },
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/inflight": {
- "version": "1.0.6",
- "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
- "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.",
- "dependencies": {
- "once": "^1.3.0",
- "wrappy": "1"
- }
- },
- "node_modules/inherits": {
- "version": "2.0.4",
- "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
- "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
- },
- "node_modules/interpret": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/interpret/-/interpret-3.1.1.tgz",
- "integrity": "sha512-6xwYfHbajpoF0xLW+iwLkhwgvLoZDfjYfoFNu8ftMoXINzwuymNLd9u/KmwtdT2GbR+/Cz66otEGEVVUHX9QLQ==",
- "engines": {
- "node": ">=10.13.0"
- }
- },
- "node_modules/is-arrayish": {
- "version": "0.3.2",
- "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz",
- "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==",
- "optional": true
- },
- "node_modules/is-core-module": {
- "version": "2.15.1",
- "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.15.1.tgz",
- "integrity": "sha512-z0vtXSwucUJtANQWldhbtbt7BnL0vxiFjIdDLAatwhDYty2bad6s+rijD6Ri4YuYJubLzIJLUidCh09e1djEVQ==",
- "dependencies": {
- "hasown": "^2.0.2"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/is-fullwidth-code-point": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
- "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/is-plain-object": {
- "version": "2.0.4",
- "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz",
- "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==",
- "dependencies": {
- "isobject": "^3.0.1"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/is-what": {
- "version": "4.1.16",
- "resolved": "https://registry.npmjs.org/is-what/-/is-what-4.1.16.tgz",
- "integrity": "sha512-ZhMwEosbFJkA0YhFnNDgTM4ZxDRsS6HqTo7qsZM08fehyRYIYa0yHu5R6mgo1n/8MgaPBXiPimPD77baVFYg+A==",
- "engines": {
- "node": ">=12.13"
- },
- "funding": {
- "url": "https://github.com/sponsors/mesqueeb"
- }
- },
- "node_modules/isarray": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
- "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ=="
- },
- "node_modules/isexe": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
- "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw=="
- },
- "node_modules/isobject": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
- "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/isomorphic-fetch": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/isomorphic-fetch/-/isomorphic-fetch-3.0.0.tgz",
- "integrity": "sha512-qvUtwJ3j6qwsF3jLxkZ72qCgjMysPzDfeV240JHiGZsANBYd+EEuu35v7dfrJ9Up0Ak07D7GGSkGhCHTqg/5wA==",
- "dependencies": {
- "node-fetch": "^2.6.1",
- "whatwg-fetch": "^3.4.1"
- }
- },
- "node_modules/jackspeak": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-4.0.2.tgz",
- "integrity": "sha512-bZsjR/iRjl1Nk1UkjGpAzLNfQtzuijhn2g+pbZb98HQ1Gk8vM9hfbxeMBP+M2/UUdwj0RqGG3mlvk2MsAqwvEw==",
- "dependencies": {
- "@isaacs/cliui": "^8.0.2"
- },
- "engines": {
- "node": "20 || >=22"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
- "node_modules/jest-worker": {
- "version": "27.5.1",
- "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz",
- "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==",
- "peer": true,
- "dependencies": {
- "@types/node": "*",
- "merge-stream": "^2.0.0",
- "supports-color": "^8.0.0"
- },
- "engines": {
- "node": ">= 10.13.0"
- }
- },
- "node_modules/jest-worker/node_modules/supports-color": {
- "version": "8.1.1",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz",
- "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==",
- "peer": true,
- "dependencies": {
- "has-flag": "^4.0.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/chalk/supports-color?sponsor=1"
- }
- },
- "node_modules/js-cookie": {
- "version": "3.0.5",
- "resolved": "https://registry.npmjs.org/js-cookie/-/js-cookie-3.0.5.tgz",
- "integrity": "sha512-cEiJEAEoIbWfCZYKWhVwFuvPX1gETRYPw6LlaTKoxD3s2AkXzkCjnp6h0V77ozyqj0jakteJ4YqDJT830+lVGw==",
- "engines": {
- "node": ">=14"
- }
- },
- "node_modules/js-sha256": {
- "version": "0.9.0",
- "resolved": "https://registry.npmjs.org/js-sha256/-/js-sha256-0.9.0.tgz",
- "integrity": "sha512-sga3MHh9sgQN2+pJ9VYZ+1LPwXOxuBJBA5nrR5/ofPfuiJBE2hnjsaN8se8JznOmGLN2p49Pe5U/ttafcs/apA=="
- },
- "node_modules/js-tokens": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
- "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ=="
- },
- "node_modules/json-parse-even-better-errors": {
- "version": "2.3.1",
- "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz",
- "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==",
- "peer": true
- },
- "node_modules/json-schema-traverse": {
- "version": "0.4.1",
- "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
- "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==",
- "peer": true
- },
- "node_modules/jsonfile": {
- "version": "6.1.0",
- "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz",
- "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==",
- "dependencies": {
- "universalify": "^2.0.0"
- },
- "optionalDependencies": {
- "graceful-fs": "^4.1.6"
- }
- },
- "node_modules/kind-of": {
- "version": "6.0.3",
- "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz",
- "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/lazystream": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/lazystream/-/lazystream-1.0.1.tgz",
- "integrity": "sha512-b94GiNHQNy6JNTrt5w6zNyffMrNkXZb3KTkCZJb2V1xaEGCk093vkZ2jk3tpaeP33/OiXC+WvK9AxUebnf5nbw==",
- "dependencies": {
- "readable-stream": "^2.0.5"
- },
- "engines": {
- "node": ">= 0.6.3"
- }
- },
- "node_modules/lazystream/node_modules/readable-stream": {
- "version": "2.3.8",
- "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz",
- "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==",
- "dependencies": {
- "core-util-is": "~1.0.0",
- "inherits": "~2.0.3",
- "isarray": "~1.0.0",
- "process-nextick-args": "~2.0.0",
- "safe-buffer": "~5.1.1",
- "string_decoder": "~1.1.1",
- "util-deprecate": "~1.0.1"
- }
- },
- "node_modules/lazystream/node_modules/safe-buffer": {
- "version": "5.1.2",
- "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
- "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
- },
- "node_modules/lazystream/node_modules/string_decoder": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
- "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
- "dependencies": {
- "safe-buffer": "~5.1.0"
- }
- },
- "node_modules/loader-runner": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz",
- "integrity": "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==",
- "peer": true,
- "engines": {
- "node": ">=6.11.5"
- }
- },
- "node_modules/locate-path": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz",
- "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==",
- "dependencies": {
- "p-locate": "^4.1.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/lodash": {
- "version": "4.17.21",
- "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz",
- "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg=="
- },
- "node_modules/loose-envify": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz",
- "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==",
- "dependencies": {
- "js-tokens": "^3.0.0 || ^4.0.0"
- },
- "bin": {
- "loose-envify": "cli.js"
- }
- },
- "node_modules/lru-cache": {
- "version": "11.0.2",
- "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.0.2.tgz",
- "integrity": "sha512-123qHRfJBmo2jXDbo/a5YOQrJoHF/GNQTLzQ5+IdK5pWpceK17yRc6ozlWd25FxvGKQbIUs91fDFkXmDHTKcyA==",
- "engines": {
- "node": "20 || >=22"
- }
- },
- "node_modules/merge-stream": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz",
- "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==",
- "peer": true
- },
- "node_modules/mime-db": {
- "version": "1.52.0",
- "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz",
- "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==",
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/mime-types": {
- "version": "2.1.35",
- "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz",
- "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==",
- "dependencies": {
- "mime-db": "1.52.0"
- },
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/minimatch": {
- "version": "10.0.1",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.0.1.tgz",
- "integrity": "sha512-ethXTt3SGGR+95gudmqJ1eNhRO7eGEGIgYA9vnPatK4/etz2MEVDno5GMCibdMTuBMyElzIlgxMna3K94XDIDQ==",
- "dependencies": {
- "brace-expansion": "^2.0.1"
- },
- "engines": {
- "node": "20 || >=22"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
- "node_modules/minipass": {
- "version": "7.1.2",
- "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz",
- "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==",
- "engines": {
- "node": ">=16 || 14 >=14.17"
- }
- },
- "node_modules/nanoid": {
- "version": "3.3.8",
- "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.8.tgz",
- "integrity": "sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==",
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/ai"
- }
- ],
- "bin": {
- "nanoid": "bin/nanoid.cjs"
- },
- "engines": {
- "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1"
- }
- },
- "node_modules/neo-async": {
- "version": "2.6.2",
- "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz",
- "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==",
- "peer": true
- },
- "node_modules/next": {
- "version": "15.1.2",
- "resolved": "https://registry.npmjs.org/next/-/next-15.1.2.tgz",
- "integrity": "sha512-nLJDV7peNy+0oHlmY2JZjzMfJ8Aj0/dd3jCwSZS8ZiO5nkQfcZRqDrRN3U5rJtqVTQneIOGZzb6LCNrk7trMCQ==",
- "dependencies": {
- "@next/env": "15.1.2",
- "@swc/counter": "0.1.3",
- "@swc/helpers": "0.5.15",
- "busboy": "1.6.0",
- "caniuse-lite": "^1.0.30001579",
- "postcss": "8.4.31",
- "styled-jsx": "5.1.6"
- },
- "bin": {
- "next": "dist/bin/next"
- },
- "engines": {
- "node": "^18.18.0 || ^19.8.0 || >= 20.0.0"
- },
- "optionalDependencies": {
- "@next/swc-darwin-arm64": "15.1.2",
- "@next/swc-darwin-x64": "15.1.2",
- "@next/swc-linux-arm64-gnu": "15.1.2",
- "@next/swc-linux-arm64-musl": "15.1.2",
- "@next/swc-linux-x64-gnu": "15.1.2",
- "@next/swc-linux-x64-musl": "15.1.2",
- "@next/swc-win32-arm64-msvc": "15.1.2",
- "@next/swc-win32-x64-msvc": "15.1.2",
- "sharp": "^0.33.5"
- },
- "peerDependencies": {
- "@opentelemetry/api": "^1.1.0",
- "@playwright/test": "^1.41.2",
- "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"
- },
- "peerDependenciesMeta": {
- "@opentelemetry/api": {
- "optional": true
- },
- "@playwright/test": {
- "optional": true
- },
- "babel-plugin-react-compiler": {
- "optional": true
- },
- "sass": {
- "optional": true
- }
- }
- },
- "node_modules/next-secure-headers": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/next-secure-headers/-/next-secure-headers-2.2.0.tgz",
- "integrity": "sha512-C7OfZ9JdSJyYMz2ZBMI/WwNbt0qNjlFWX9afUp8nEUzbz6ez3JbeopdyxSZJZJAzVLIAfyk6n73rFpd4e22jRg==",
- "dev": true,
- "engines": {
- "node": ">=10.0.0"
- }
- },
- "node_modules/node-fetch": {
- "version": "2.7.0",
- "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz",
- "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==",
- "dependencies": {
- "whatwg-url": "^5.0.0"
- },
- "engines": {
- "node": "4.x || >=6.0.0"
- },
- "peerDependencies": {
- "encoding": "^0.1.0"
- },
- "peerDependenciesMeta": {
- "encoding": {
- "optional": true
- }
- }
- },
- "node_modules/node-releases": {
- "version": "2.0.18",
- "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.18.tgz",
- "integrity": "sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==",
- "peer": true
- },
- "node_modules/normalize-path": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
- "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/object-assign": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
- "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/once": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
- "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==",
- "dependencies": {
- "wrappy": "1"
- }
- },
- "node_modules/optimism": {
- "version": "0.18.1",
- "resolved": "https://registry.npmjs.org/optimism/-/optimism-0.18.1.tgz",
- "integrity": "sha512-mLXNwWPa9dgFyDqkNi54sjDyNJ9/fTI6WGBLgnXku1vdKY/jovHfZT5r+aiVeFFLOz+foPNOm5YJ4mqgld2GBQ==",
- "dependencies": {
- "@wry/caches": "^1.0.0",
- "@wry/context": "^0.7.0",
- "@wry/trie": "^0.5.0",
- "tslib": "^2.3.0"
- }
- },
- "node_modules/p-limit": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz",
- "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==",
- "dependencies": {
- "p-try": "^2.0.0"
- },
- "engines": {
- "node": ">=6"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/p-locate": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz",
- "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==",
- "dependencies": {
- "p-limit": "^2.2.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/p-try": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz",
- "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==",
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/package-json-from-dist": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz",
- "integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw=="
- },
- "node_modules/path-exists": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz",
- "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/path-key": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz",
- "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/path-parse": {
- "version": "1.0.7",
- "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz",
- "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw=="
- },
- "node_modules/path-scurry": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-2.0.0.tgz",
- "integrity": "sha512-ypGJsmGtdXUOeM5u93TyeIEfEhM6s+ljAhrk5vAvSx8uyY/02OvrZnA0YNGUrPXfpJMgI1ODd3nwz8Npx4O4cg==",
- "dependencies": {
- "lru-cache": "^11.0.0",
- "minipass": "^7.1.2"
- },
- "engines": {
- "node": "20 || >=22"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
- "node_modules/picocolors": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz",
- "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA=="
- },
- "node_modules/pkg-dir": {
- "version": "4.2.0",
- "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz",
- "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==",
- "dependencies": {
- "find-up": "^4.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/postcss": {
- "version": "8.4.31",
- "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.31.tgz",
- "integrity": "sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==",
- "funding": [
- {
- "type": "opencollective",
- "url": "https://opencollective.com/postcss/"
- },
- {
- "type": "tidelift",
- "url": "https://tidelift.com/funding/github/npm/postcss"
- },
- {
- "type": "github",
- "url": "https://github.com/sponsors/ai"
- }
- ],
- "dependencies": {
- "nanoid": "^3.3.6",
- "picocolors": "^1.0.0",
- "source-map-js": "^1.0.2"
- },
- "engines": {
- "node": "^10 || ^12 || >=14"
- }
- },
- "node_modules/process-nextick-args": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz",
- "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag=="
- },
- "node_modules/prop-types": {
- "version": "15.8.1",
- "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz",
- "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==",
- "dependencies": {
- "loose-envify": "^1.4.0",
- "object-assign": "^4.1.1",
- "react-is": "^16.13.1"
- }
- },
- "node_modules/punycode": {
- "version": "2.3.1",
- "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz",
- "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==",
- "peer": true,
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/queue-tick": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/queue-tick/-/queue-tick-1.0.1.tgz",
- "integrity": "sha512-kJt5qhMxoszgU/62PLP1CJytzd2NKetjSRnyuj31fDd3Rlcz3fzlFdFLD1SItunPwyqEOkca6GbV612BWfaBag=="
- },
- "node_modules/randombytes": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz",
- "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==",
- "peer": true,
- "dependencies": {
- "safe-buffer": "^5.1.0"
- }
- },
- "node_modules/react": {
- "version": "18.3.1",
- "resolved": "https://registry.npmjs.org/react/-/react-18.3.1.tgz",
- "integrity": "sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==",
- "dependencies": {
- "loose-envify": "^1.1.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/react-dom": {
- "version": "18.3.1",
- "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz",
- "integrity": "sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==",
- "dependencies": {
- "loose-envify": "^1.1.0",
- "scheduler": "^0.23.2"
- },
- "peerDependencies": {
- "react": "^18.3.1"
- }
- },
- "node_modules/react-is": {
- "version": "16.13.1",
- "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz",
- "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ=="
- },
- "node_modules/readable-stream": {
- "version": "3.6.2",
- "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz",
- "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==",
- "dependencies": {
- "inherits": "^2.0.3",
- "string_decoder": "^1.1.1",
- "util-deprecate": "^1.0.1"
- },
- "engines": {
- "node": ">= 6"
- }
- },
- "node_modules/readdir-glob": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/readdir-glob/-/readdir-glob-1.1.3.tgz",
- "integrity": "sha512-v05I2k7xN8zXvPD9N+z/uhXPaj0sUFCe2rcWZIpBsqxfP7xXFQ0tipAd/wjj1YxWyWtUS5IDJpOG82JKt2EAVA==",
- "dependencies": {
- "minimatch": "^5.1.0"
- }
- },
- "node_modules/readdir-glob/node_modules/minimatch": {
- "version": "5.1.6",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz",
- "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==",
- "dependencies": {
- "brace-expansion": "^2.0.1"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/rechoir": {
- "version": "0.8.0",
- "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.8.0.tgz",
- "integrity": "sha512-/vxpCXddiX8NGfGO/mTafwjq4aFa/71pvamip0++IQk3zG8cbCj0fifNPrjjF1XMXUne91jL9OoxmdykoEtifQ==",
- "dependencies": {
- "resolve": "^1.20.0"
- },
- "engines": {
- "node": ">= 10.13.0"
- }
- },
- "node_modules/regenerator-runtime": {
- "version": "0.14.1",
- "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz",
- "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw=="
- },
- "node_modules/rehackt": {
- "version": "0.1.0",
- "resolved": "https://registry.npmjs.org/rehackt/-/rehackt-0.1.0.tgz",
- "integrity": "sha512-7kRDOuLHB87D/JESKxQoRwv4DzbIdwkAGQ7p6QKGdVlY1IZheUnVhlk/4UZlNUVxdAXpyxikE3URsG067ybVzw==",
- "peerDependencies": {
- "@types/react": "*",
- "react": "*"
- },
- "peerDependenciesMeta": {
- "@types/react": {
- "optional": true
- },
- "react": {
- "optional": true
- }
- }
- },
- "node_modules/resolve": {
- "version": "1.22.8",
- "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz",
- "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==",
- "dependencies": {
- "is-core-module": "^2.13.0",
- "path-parse": "^1.0.7",
- "supports-preserve-symlinks-flag": "^1.0.0"
- },
- "bin": {
- "resolve": "bin/resolve"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/resolve-cwd": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz",
- "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==",
- "dependencies": {
- "resolve-from": "^5.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/resolve-from": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz",
- "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/response-iterator": {
- "version": "0.2.6",
- "resolved": "https://registry.npmjs.org/response-iterator/-/response-iterator-0.2.6.tgz",
- "integrity": "sha512-pVzEEzrsg23Sh053rmDUvLSkGXluZio0qu8VT6ukrYuvtjVfCbDZH9d6PGXb8HZfzdNZt8feXv/jvUzlhRgLnw==",
- "engines": {
- "node": ">=0.8"
- }
- },
- "node_modules/safe-buffer": {
- "version": "5.2.1",
- "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
- "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==",
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/feross"
- },
- {
- "type": "patreon",
- "url": "https://www.patreon.com/feross"
- },
- {
- "type": "consulting",
- "url": "https://feross.org/support"
- }
- ]
- },
- "node_modules/scheduler": {
- "version": "0.23.2",
- "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.2.tgz",
- "integrity": "sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==",
- "dependencies": {
- "loose-envify": "^1.1.0"
- }
- },
- "node_modules/schema-utils": {
- "version": "3.3.0",
- "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz",
- "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==",
- "peer": true,
- "dependencies": {
- "@types/json-schema": "^7.0.8",
- "ajv": "^6.12.5",
- "ajv-keywords": "^3.5.2"
- },
- "engines": {
- "node": ">= 10.13.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/webpack"
- }
- },
- "node_modules/semver": {
- "version": "7.6.3",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz",
- "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==",
- "optional": true,
- "bin": {
- "semver": "bin/semver.js"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/serialize-javascript": {
- "version": "6.0.2",
- "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.2.tgz",
- "integrity": "sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==",
- "peer": true,
- "dependencies": {
- "randombytes": "^2.1.0"
- }
- },
- "node_modules/server-only": {
- "version": "0.0.1",
- "resolved": "https://registry.npmjs.org/server-only/-/server-only-0.0.1.tgz",
- "integrity": "sha512-qepMx2JxAa5jjfzxG79yPPq+8BuFToHd1hm7kI+Z4zAq1ftQiP7HcxMhDDItrbtwVeLg/cY2JnKnrcFkmiswNA=="
- },
- "node_modules/shallow-clone": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz",
- "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==",
- "dependencies": {
- "kind-of": "^6.0.2"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/sharp": {
- "version": "0.33.5",
- "resolved": "https://registry.npmjs.org/sharp/-/sharp-0.33.5.tgz",
- "integrity": "sha512-haPVm1EkS9pgvHrQ/F3Xy+hgcuMV0Wm9vfIBSiwZ05k+xgb0PkBQpGsAA/oWdDobNaZTH5ppvHtzCFbnSEwHVw==",
- "hasInstallScript": true,
- "optional": true,
- "dependencies": {
- "color": "^4.2.3",
- "detect-libc": "^2.0.3",
- "semver": "^7.6.3"
- },
- "engines": {
- "node": "^18.17.0 || ^20.3.0 || >=21.0.0"
- },
- "funding": {
- "url": "https://opencollective.com/libvips"
- },
- "optionalDependencies": {
- "@img/sharp-darwin-arm64": "0.33.5",
- "@img/sharp-darwin-x64": "0.33.5",
- "@img/sharp-libvips-darwin-arm64": "1.0.4",
- "@img/sharp-libvips-darwin-x64": "1.0.4",
- "@img/sharp-libvips-linux-arm": "1.0.5",
- "@img/sharp-libvips-linux-arm64": "1.0.4",
- "@img/sharp-libvips-linux-s390x": "1.0.4",
- "@img/sharp-libvips-linux-x64": "1.0.4",
- "@img/sharp-libvips-linuxmusl-arm64": "1.0.4",
- "@img/sharp-libvips-linuxmusl-x64": "1.0.4",
- "@img/sharp-linux-arm": "0.33.5",
- "@img/sharp-linux-arm64": "0.33.5",
- "@img/sharp-linux-s390x": "0.33.5",
- "@img/sharp-linux-x64": "0.33.5",
- "@img/sharp-linuxmusl-arm64": "0.33.5",
- "@img/sharp-linuxmusl-x64": "0.33.5",
- "@img/sharp-wasm32": "0.33.5",
- "@img/sharp-win32-ia32": "0.33.5",
- "@img/sharp-win32-x64": "0.33.5"
- }
- },
- "node_modules/shebang-command": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
- "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==",
- "dependencies": {
- "shebang-regex": "^3.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/shebang-regex": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz",
- "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/signal-exit": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz",
- "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==",
- "engines": {
- "node": ">=14"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
- "node_modules/simple-swizzle": {
- "version": "0.2.2",
- "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz",
- "integrity": "sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==",
- "optional": true,
- "dependencies": {
- "is-arrayish": "^0.3.1"
- }
- },
- "node_modules/source-map": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
- "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
- "peer": true,
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/source-map-js": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz",
- "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/source-map-support": {
- "version": "0.5.21",
- "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz",
- "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==",
- "peer": true,
- "dependencies": {
- "buffer-from": "^1.0.0",
- "source-map": "^0.6.0"
- }
- },
- "node_modules/streamsearch": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-1.1.0.tgz",
- "integrity": "sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==",
- "engines": {
- "node": ">=10.0.0"
- }
- },
- "node_modules/streamx": {
- "version": "2.20.2",
- "resolved": "https://registry.npmjs.org/streamx/-/streamx-2.20.2.tgz",
- "integrity": "sha512-aDGDLU+j9tJcUdPGOaHmVF1u/hhI+CsGkT02V3OKlHDV7IukOI+nTWAGkiZEKCO35rWN1wIr4tS7YFr1f4qSvA==",
- "dependencies": {
- "fast-fifo": "^1.3.2",
- "queue-tick": "^1.0.1",
- "text-decoder": "^1.1.0"
- },
- "optionalDependencies": {
- "bare-events": "^2.2.0"
- }
- },
- "node_modules/string_decoder": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz",
- "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==",
- "dependencies": {
- "safe-buffer": "~5.2.0"
- }
- },
- "node_modules/string-width": {
- "version": "5.1.2",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz",
- "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==",
- "dependencies": {
- "eastasianwidth": "^0.2.0",
- "emoji-regex": "^9.2.2",
- "strip-ansi": "^7.0.1"
- },
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/string-width-cjs": {
- "name": "string-width",
- "version": "4.2.3",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
- "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
- "dependencies": {
- "emoji-regex": "^8.0.0",
- "is-fullwidth-code-point": "^3.0.0",
- "strip-ansi": "^6.0.1"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/string-width-cjs/node_modules/ansi-regex": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
- "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/string-width-cjs/node_modules/emoji-regex": {
- "version": "8.0.0",
- "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
- "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A=="
- },
- "node_modules/string-width-cjs/node_modules/strip-ansi": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
- "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
- "dependencies": {
- "ansi-regex": "^5.0.1"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/strip-ansi": {
- "version": "7.1.0",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz",
- "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==",
- "dependencies": {
- "ansi-regex": "^6.0.1"
- },
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/chalk/strip-ansi?sponsor=1"
- }
- },
- "node_modules/strip-ansi-cjs": {
- "name": "strip-ansi",
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
- "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
- "dependencies": {
- "ansi-regex": "^5.0.1"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/strip-ansi-cjs/node_modules/ansi-regex": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
- "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/strnum": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/strnum/-/strnum-1.0.5.tgz",
- "integrity": "sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA=="
- },
- "node_modules/styled-jsx": {
- "version": "5.1.6",
- "resolved": "https://registry.npmjs.org/styled-jsx/-/styled-jsx-5.1.6.tgz",
- "integrity": "sha512-qSVyDTeMotdvQYoHWLNGwRFJHC+i+ZvdBRYosOFgC+Wg1vx4frN2/RG/NA7SYqqvKNLf39P2LSRA2pu6n0XYZA==",
- "dependencies": {
- "client-only": "0.0.1"
- },
- "engines": {
- "node": ">= 12.0.0"
- },
- "peerDependencies": {
- "react": ">= 16.8.0 || 17.x.x || ^18.0.0-0 || ^19.0.0-0"
- },
- "peerDependenciesMeta": {
- "@babel/core": {
- "optional": true
- },
- "babel-plugin-macros": {
- "optional": true
- }
- }
- },
- "node_modules/superjson": {
- "version": "2.2.1",
- "resolved": "https://registry.npmjs.org/superjson/-/superjson-2.2.1.tgz",
- "integrity": "sha512-8iGv75BYOa0xRJHK5vRLEjE2H/i4lulTjzpUXic3Eg8akftYjkmQDa8JARQ42rlczXyFR3IeRoeFCc7RxHsYZA==",
- "dependencies": {
- "copy-anything": "^3.0.2"
- },
- "engines": {
- "node": ">=16"
- }
- },
- "node_modules/supports-color": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
- "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
- "dependencies": {
- "has-flag": "^4.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/supports-preserve-symlinks-flag": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz",
- "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==",
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/symbol-observable": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-4.0.0.tgz",
- "integrity": "sha512-b19dMThMV4HVFynSAM1++gBHAbk2Tc/osgLIBZMKsyqh34jb2e8Os7T6ZW/Bt3pJFdBTd2JwAnAAEQV7rSNvcQ==",
- "engines": {
- "node": ">=0.10"
- }
- },
- "node_modules/tapable": {
- "version": "2.2.1",
- "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz",
- "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==",
- "peer": true,
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/tar-stream": {
- "version": "3.1.7",
- "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-3.1.7.tgz",
- "integrity": "sha512-qJj60CXt7IU1Ffyc3NJMjh6EkuCFej46zUqJ4J7pqYlThyd9bO0XBTmcOIhSzZJVWfsLks0+nle/j538YAW9RQ==",
- "dependencies": {
- "b4a": "^1.6.4",
- "fast-fifo": "^1.2.0",
- "streamx": "^2.15.0"
- }
- },
- "node_modules/terser": {
- "version": "5.36.0",
- "resolved": "https://registry.npmjs.org/terser/-/terser-5.36.0.tgz",
- "integrity": "sha512-IYV9eNMuFAV4THUspIRXkLakHnV6XO7FEdtKjf/mDyrnqUg9LnlOn6/RwRvM9SZjR4GUq8Nk8zj67FzVARr74w==",
- "peer": true,
- "dependencies": {
- "@jridgewell/source-map": "^0.3.3",
- "acorn": "^8.8.2",
- "commander": "^2.20.0",
- "source-map-support": "~0.5.20"
- },
- "bin": {
- "terser": "bin/terser"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/terser-webpack-plugin": {
- "version": "5.3.10",
- "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.10.tgz",
- "integrity": "sha512-BKFPWlPDndPs+NGGCr1U59t0XScL5317Y0UReNrHaw9/FwhPENlq6bfgs+4yPfyP51vqC1bQ4rp1EfXW5ZSH9w==",
- "peer": true,
- "dependencies": {
- "@jridgewell/trace-mapping": "^0.3.20",
- "jest-worker": "^27.4.5",
- "schema-utils": "^3.1.1",
- "serialize-javascript": "^6.0.1",
- "terser": "^5.26.0"
- },
- "engines": {
- "node": ">= 10.13.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/webpack"
- },
- "peerDependencies": {
- "webpack": "^5.1.0"
- },
- "peerDependenciesMeta": {
- "@swc/core": {
- "optional": true
- },
- "esbuild": {
- "optional": true
- },
- "uglify-js": {
- "optional": true
- }
- }
- },
- "node_modules/text-decoder": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/text-decoder/-/text-decoder-1.2.1.tgz",
- "integrity": "sha512-x9v3H/lTKIJKQQe7RPQkLfKAnc9lUTkWDypIQgTzPJAq+5/GCDHonmshfvlsNSj58yyshbIJJDLmU15qNERrXQ=="
- },
- "node_modules/tr46": {
- "version": "0.0.3",
- "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz",
- "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw=="
- },
- "node_modules/ts-invariant": {
- "version": "0.10.3",
- "resolved": "https://registry.npmjs.org/ts-invariant/-/ts-invariant-0.10.3.tgz",
- "integrity": "sha512-uivwYcQaxAucv1CzRp2n/QdYPo4ILf9VXgH19zEIjFx2EJufV16P0JtJVpYHy89DItG6Kwj2oIUjrcK5au+4tQ==",
- "dependencies": {
- "tslib": "^2.1.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/tslib": {
- "version": "2.8.1",
- "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz",
- "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="
- },
- "node_modules/typescript": {
- "version": "5.7.2",
- "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.7.2.tgz",
- "integrity": "sha512-i5t66RHxDvVN40HfDd1PsEThGNnlMCMT3jMUuoh9/0TaqWevNontacunWyN02LA9/fIbEWlcHZcgTKb9QoaLfg==",
- "dev": true,
- "bin": {
- "tsc": "bin/tsc",
- "tsserver": "bin/tsserver"
- },
- "engines": {
- "node": ">=14.17"
- }
- },
- "node_modules/undici-types": {
- "version": "6.19.8",
- "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.19.8.tgz",
- "integrity": "sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw=="
- },
- "node_modules/universalify": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz",
- "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==",
- "engines": {
- "node": ">= 10.0.0"
- }
- },
- "node_modules/update-browserslist-db": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.1.tgz",
- "integrity": "sha512-R8UzCaa9Az+38REPiJ1tXlImTJXlVfgHZsglwBD/k6nj76ctsH1E3q4doGrukiLQd3sGQYu56r5+lo5r94l29A==",
- "funding": [
- {
- "type": "opencollective",
- "url": "https://opencollective.com/browserslist"
- },
- {
- "type": "tidelift",
- "url": "https://tidelift.com/funding/github/npm/browserslist"
- },
- {
- "type": "github",
- "url": "https://github.com/sponsors/ai"
- }
- ],
- "peer": true,
- "dependencies": {
- "escalade": "^3.2.0",
- "picocolors": "^1.1.0"
- },
- "bin": {
- "update-browserslist-db": "cli.js"
- },
- "peerDependencies": {
- "browserslist": ">= 4.21.0"
- }
- },
- "node_modules/uri-js": {
- "version": "4.4.1",
- "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz",
- "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==",
- "peer": true,
- "dependencies": {
- "punycode": "^2.1.0"
- }
- },
- "node_modules/util-deprecate": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
- "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw=="
- },
- "node_modules/watchpack": {
- "version": "2.4.2",
- "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.2.tgz",
- "integrity": "sha512-TnbFSbcOCcDgjZ4piURLCbJ3nJhznVh9kw6F6iokjiFPl8ONxe9A6nMDVXDiNbrSfLILs6vB07F7wLBrwPYzJw==",
- "peer": true,
- "dependencies": {
- "glob-to-regexp": "^0.4.1",
- "graceful-fs": "^4.1.2"
- },
- "engines": {
- "node": ">=10.13.0"
- }
- },
- "node_modules/webidl-conversions": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz",
- "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ=="
- },
- "node_modules/webpack": {
- "version": "5.96.1",
- "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.96.1.tgz",
- "integrity": "sha512-l2LlBSvVZGhL4ZrPwyr8+37AunkcYj5qh8o6u2/2rzoPc8gxFJkLj1WxNgooi9pnoc06jh0BjuXnamM4qlujZA==",
- "peer": true,
- "dependencies": {
- "@types/eslint-scope": "^3.7.7",
- "@types/estree": "^1.0.6",
- "@webassemblyjs/ast": "^1.12.1",
- "@webassemblyjs/wasm-edit": "^1.12.1",
- "@webassemblyjs/wasm-parser": "^1.12.1",
- "acorn": "^8.14.0",
- "browserslist": "^4.24.0",
- "chrome-trace-event": "^1.0.2",
- "enhanced-resolve": "^5.17.1",
- "es-module-lexer": "^1.2.1",
- "eslint-scope": "5.1.1",
- "events": "^3.2.0",
- "glob-to-regexp": "^0.4.1",
- "graceful-fs": "^4.2.11",
- "json-parse-even-better-errors": "^2.3.1",
- "loader-runner": "^4.2.0",
- "mime-types": "^2.1.27",
- "neo-async": "^2.6.2",
- "schema-utils": "^3.2.0",
- "tapable": "^2.1.1",
- "terser-webpack-plugin": "^5.3.10",
- "watchpack": "^2.4.1",
- "webpack-sources": "^3.2.3"
- },
- "bin": {
- "webpack": "bin/webpack.js"
- },
- "engines": {
- "node": ">=10.13.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/webpack"
- },
- "peerDependenciesMeta": {
- "webpack-cli": {
- "optional": true
- }
- }
- },
- "node_modules/webpack-cli": {
- "version": "5.1.4",
- "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-5.1.4.tgz",
- "integrity": "sha512-pIDJHIEI9LR0yxHXQ+Qh95k2EvXpWzZ5l+d+jIo+RdSm9MiHfzazIxwwni/p7+x4eJZuvG1AJwgC4TNQ7NRgsg==",
- "dependencies": {
- "@discoveryjs/json-ext": "^0.5.0",
- "@webpack-cli/configtest": "^2.1.1",
- "@webpack-cli/info": "^2.0.2",
- "@webpack-cli/serve": "^2.0.5",
- "colorette": "^2.0.14",
- "commander": "^10.0.1",
- "cross-spawn": "^7.0.3",
- "envinfo": "^7.7.3",
- "fastest-levenshtein": "^1.0.12",
- "import-local": "^3.0.2",
- "interpret": "^3.1.1",
- "rechoir": "^0.8.0",
- "webpack-merge": "^5.7.3"
- },
- "bin": {
- "webpack-cli": "bin/cli.js"
- },
- "engines": {
- "node": ">=14.15.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/webpack"
- },
- "peerDependencies": {
- "webpack": "5.x.x"
- },
- "peerDependenciesMeta": {
- "@webpack-cli/generators": {
- "optional": true
- },
- "webpack-bundle-analyzer": {
- "optional": true
- },
- "webpack-dev-server": {
- "optional": true
- }
- }
- },
- "node_modules/webpack-cli/node_modules/commander": {
- "version": "10.0.1",
- "resolved": "https://registry.npmjs.org/commander/-/commander-10.0.1.tgz",
- "integrity": "sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==",
- "engines": {
- "node": ">=14"
- }
- },
- "node_modules/webpack-merge": {
- "version": "5.10.0",
- "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.10.0.tgz",
- "integrity": "sha512-+4zXKdx7UnO+1jaN4l2lHVD+mFvnlZQP/6ljaJVb4SZiwIKeUnrT5l0gkT8z+n4hKpC+jpOv6O9R+gLtag7pSA==",
- "dependencies": {
- "clone-deep": "^4.0.1",
- "flat": "^5.0.2",
- "wildcard": "^2.0.0"
- },
- "engines": {
- "node": ">=10.0.0"
- }
- },
- "node_modules/webpack-sources": {
- "version": "3.2.3",
- "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz",
- "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==",
- "peer": true,
- "engines": {
- "node": ">=10.13.0"
- }
- },
- "node_modules/whatwg-fetch": {
- "version": "3.6.20",
- "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-3.6.20.tgz",
- "integrity": "sha512-EqhiFU6daOA8kpjOWTL0olhVOF3i7OrFzSYiGsEMB8GcXS+RrzauAERX65xMeNWVqxA6HXH2m69Z9LaKKdisfg=="
- },
- "node_modules/whatwg-url": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz",
- "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==",
- "dependencies": {
- "tr46": "~0.0.3",
- "webidl-conversions": "^3.0.0"
- }
- },
- "node_modules/which": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
- "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
- "dependencies": {
- "isexe": "^2.0.0"
- },
- "bin": {
- "node-which": "bin/node-which"
- },
- "engines": {
- "node": ">= 8"
- }
- },
- "node_modules/wildcard": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/wildcard/-/wildcard-2.0.1.tgz",
- "integrity": "sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ=="
- },
- "node_modules/wrap-ansi": {
- "version": "8.1.0",
- "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz",
- "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==",
- "dependencies": {
- "ansi-styles": "^6.1.0",
- "string-width": "^5.0.1",
- "strip-ansi": "^7.0.1"
- },
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/chalk/wrap-ansi?sponsor=1"
- }
- },
- "node_modules/wrap-ansi-cjs": {
- "name": "wrap-ansi",
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
- "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",
- "dependencies": {
- "ansi-styles": "^4.0.0",
- "string-width": "^4.1.0",
- "strip-ansi": "^6.0.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/chalk/wrap-ansi?sponsor=1"
- }
- },
- "node_modules/wrap-ansi-cjs/node_modules/ansi-regex": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
- "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/wrap-ansi-cjs/node_modules/emoji-regex": {
- "version": "8.0.0",
- "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
- "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A=="
- },
- "node_modules/wrap-ansi-cjs/node_modules/string-width": {
- "version": "4.2.3",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
- "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
- "dependencies": {
- "emoji-regex": "^8.0.0",
- "is-fullwidth-code-point": "^3.0.0",
- "strip-ansi": "^6.0.1"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/wrap-ansi-cjs/node_modules/strip-ansi": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
- "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
- "dependencies": {
- "ansi-regex": "^5.0.1"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/wrap-ansi/node_modules/ansi-styles": {
- "version": "6.2.1",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz",
- "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==",
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/chalk/ansi-styles?sponsor=1"
- }
- },
- "node_modules/wrappy": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
- "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ=="
- },
- "node_modules/zen-observable": {
- "version": "0.8.15",
- "resolved": "https://registry.npmjs.org/zen-observable/-/zen-observable-0.8.15.tgz",
- "integrity": "sha512-PQ2PC7R9rslx84ndNBZB/Dkv8V8fZEpk83RLgXtYd0fwUgEjseMn1Dgajh2x6S8QbZAFa9p2qVCEuYZNgve0dQ=="
- },
- "node_modules/zen-observable-ts": {
- "version": "1.2.5",
- "resolved": "https://registry.npmjs.org/zen-observable-ts/-/zen-observable-ts-1.2.5.tgz",
- "integrity": "sha512-QZWQekv6iB72Naeake9hS1KxHlotfRpe+WGNbNx5/ta+R3DNjVO2bswf63gXlWDcs+EMd7XY8HfVQyP1X6T4Zg==",
- "dependencies": {
- "zen-observable": "0.8.15"
- }
- },
- "node_modules/zip-stream": {
- "version": "5.0.2",
- "resolved": "https://registry.npmjs.org/zip-stream/-/zip-stream-5.0.2.tgz",
- "integrity": "sha512-LfOdrUvPB8ZoXtvOBz6DlNClfvi//b5d56mSWyJi7XbH/HfhOHfUhOqxhT/rUiR7yiktlunqRo+jY6y/cWC/5g==",
- "dependencies": {
- "archiver-utils": "^4.0.1",
- "compress-commons": "^5.0.1",
- "readable-stream": "^3.6.0"
- },
- "engines": {
- "node": ">= 12.0.0"
- }
- }
- }
-}
diff --git a/examples/next/app-router/package.json b/examples/next/app-router/package.json
deleted file mode 100644
index b47f674d8..000000000
--- a/examples/next/app-router/package.json
+++ /dev/null
@@ -1,38 +0,0 @@
-{
- "name": "@faustwp/app-router-example",
- "private": true,
- "type": "module",
- "scripts": {
- "dev": "faust dev",
- "build": "faust build",
- "generate": "faust generatePossibleTypes",
- "stylesheet": "faust generateGlobalStylesheet",
- "start": "faust start"
- },
- "dependencies": {
- "@apollo/client": "^3.8.0",
- "@apollo/experimental-nextjs-app-support": "^0.8.0",
- "@faustwp/cli": "^3.1.0",
- "@faustwp/core": "^3.1.0",
- "@faustwp/experimental-app-router": "^0.4.0",
- "graphql": "^16.7.1",
- "next": "^15.1.2",
- "react": "^18.2.0",
- "react-dom": "^18.2.0"
- },
- "engines": {
- "node": ">=18",
- "npm": ">=8"
- },
- "devDependencies": {
- "@types/node": "^20.6.3",
- "@types/react": "npm:types-react@rc",
- "@types/react-dom": "npm:types-react-dom@rc",
- "next-secure-headers": "^2.2.0",
- "typescript": "^5.2.2"
- },
- "overrides": {
- "@types/react": "npm:types-react@rc",
- "@types/react-dom": "npm:types-react-dom@rc"
- }
-}
diff --git a/examples/next/app-router/possibleTypes.json b/examples/next/app-router/possibleTypes.json
deleted file mode 100644
index 813085d3e..000000000
--- a/examples/next/app-router/possibleTypes.json
+++ /dev/null
@@ -1 +0,0 @@
-{"CategoryConnection":["RootQueryToCategoryConnection","CategoryToAncestorsCategoryConnection","CategoryToCategoryConnection","PostToCategoryConnection"],"Connection":["RootQueryToCategoryConnection","TermNodeToEnqueuedScriptConnection","TermNodeToEnqueuedStylesheetConnection","CategoryToAncestorsCategoryConnection","CategoryToCategoryConnection","CategoryToContentNodeConnection","ContentTypeToTaxonomyConnection","TaxonomyToContentTypeConnection","ContentTypeToContentNodeConnection","UserToCommentConnection","CommentToCommentConnection","UserToEnqueuedScriptConnection","UserToEnqueuedStylesheetConnection","UserToMediaItemConnection","HierarchicalContentNodeToContentNodeAncestorsConnection","HierarchicalContentNodeToContentNodeChildrenConnection","ContentNodeToEnqueuedScriptConnection","ContentNodeToEnqueuedStylesheetConnection","MediaItemToCommentConnection","UserToPageConnection","PageToCommentConnection","PageToRevisionConnection","UserToPostConnection","PostToCategoryConnection","PostToCommentConnection","PostToPostFormatConnection","PostFormatToContentNodeConnection","PostFormatToPostConnection","PostToRevisionConnection","PostToTagConnection","TagToContentNodeConnection","TagToPostConnection","PostToTermNodeConnection","UserToProjectConnection","UserToRevisionsConnection","UserToUserRoleConnection","UserToTestimonialConnection","CategoryToPostConnection","RootQueryToCommentConnection","RootQueryToContentNodeConnection","RootQueryToContentTypeConnection","RootQueryToMediaItemConnection","MenuToMenuItemConnection","MenuItemToMenuItemConnection","RootQueryToMenuItemConnection","RootQueryToMenuConnection","RootQueryToPageConnection","RootQueryToPluginConnection","RootQueryToPostFormatConnection","RootQueryToPostConnection","RootQueryToProjectConnection","RootQueryToEnqueuedScriptConnection","RootQueryToEnqueuedStylesheetConnection","RootQueryToRevisionsConnection","RootQueryToTagConnection","RootQueryToTaxonomyConnection","RootQueryToTermNodeConnection","RootQueryToTestimonialConnection","RootQueryToThemeConnection","RootQueryToUserRoleConnection","RootQueryToUserConnection"],"Edge":["TermNodeToEnqueuedScriptConnectionEdge","TermNodeToEnqueuedStylesheetConnectionEdge","CategoryToAncestorsCategoryConnectionEdge","CategoryToCategoryConnectionEdge","ContentNodeToContentTypeConnectionEdge","TaxonomyToContentTypeConnectionEdge","ContentTypeToTaxonomyConnectionEdge","ContentTypeToContentNodeConnectionEdge","ContentNodeToEditLockConnectionEdge","CommentToCommenterConnectionEdge","CommentToContentNodeConnectionEdge","CommentToParentCommentConnectionEdge","CommentToCommentConnectionEdge","UserToCommentConnectionEdge","UserToEnqueuedScriptConnectionEdge","UserToEnqueuedStylesheetConnectionEdge","NodeWithAuthorToUserConnectionEdge","HierarchicalContentNodeToContentNodeAncestorsConnectionEdge","HierarchicalContentNodeToContentNodeChildrenConnectionEdge","ContentNodeToEnqueuedScriptConnectionEdge","ContentNodeToEnqueuedStylesheetConnectionEdge","ContentNodeToEditLastConnectionEdge","HierarchicalContentNodeToParentContentNodeConnectionEdge","MediaItemToCommentConnectionEdge","UserToMediaItemConnectionEdge","NodeWithFeaturedImageToMediaItemConnectionEdge","NodeWithRevisionsToContentNodeConnectionEdge","PageToCommentConnectionEdge","PageToPreviewConnectionEdge","PageToRevisionConnectionEdge","UserToPageConnectionEdge","PostToCategoryConnectionEdge","PostToCommentConnectionEdge","PostFormatToContentNodeConnectionEdge","PostFormatToPostConnectionEdge","PostFormatToTaxonomyConnectionEdge","PostToPostFormatConnectionEdge","PostToPreviewConnectionEdge","PostToRevisionConnectionEdge","TagToContentNodeConnectionEdge","TagToPostConnectionEdge","TagToTaxonomyConnectionEdge","PostToTagConnectionEdge","PostToTermNodeConnectionEdge","UserToPostConnectionEdge","ProjectToPreviewConnectionEdge","UserToProjectConnectionEdge","UserToRevisionsConnectionEdge","UserToUserRoleConnectionEdge","TestimonialToPreviewConnectionEdge","UserToTestimonialConnectionEdge","CategoryToContentNodeConnectionEdge","CategoryToParentCategoryConnectionEdge","CategoryToPostConnectionEdge","CategoryToTaxonomyConnectionEdge","RootQueryToCategoryConnectionEdge","RootQueryToCommentConnectionEdge","RootQueryToContentNodeConnectionEdge","RootQueryToContentTypeConnectionEdge","RootQueryToMediaItemConnectionEdge","MenuItemToMenuItemConnectionEdge","MenuItemToMenuItemLinkableConnectionEdge","MenuItemToMenuConnectionEdge","MenuToMenuItemConnectionEdge","RootQueryToMenuItemConnectionEdge","RootQueryToMenuConnectionEdge","RootQueryToPageConnectionEdge","RootQueryToPluginConnectionEdge","RootQueryToPostFormatConnectionEdge","RootQueryToPostConnectionEdge","RootQueryToProjectConnectionEdge","RootQueryToEnqueuedScriptConnectionEdge","RootQueryToEnqueuedStylesheetConnectionEdge","RootQueryToRevisionsConnectionEdge","RootQueryToTagConnectionEdge","RootQueryToTaxonomyConnectionEdge","RootQueryToTermNodeConnectionEdge","RootQueryToTestimonialConnectionEdge","RootQueryToThemeConnectionEdge","RootQueryToUserRoleConnectionEdge","RootQueryToUserConnectionEdge"],"Node":["Category","EnqueuedScript","EnqueuedStylesheet","ContentType","Taxonomy","User","Comment","MediaItem","Page","Post","PostFormat","Tag","Project","UserRole","Testimonial","Menu","MenuItem","Plugin","Theme","CommentAuthor"],"PageInfo":["TermNodeToEnqueuedScriptConnectionPageInfo","TermNodeToEnqueuedStylesheetConnectionPageInfo","CategoryToAncestorsCategoryConnectionPageInfo","CategoryToCategoryConnectionPageInfo","TaxonomyToContentTypeConnectionPageInfo","ContentTypeToTaxonomyConnectionPageInfo","ContentTypeToContentNodeConnectionPageInfo","CommentToCommentConnectionPageInfo","UserToCommentConnectionPageInfo","UserToEnqueuedScriptConnectionPageInfo","UserToEnqueuedStylesheetConnectionPageInfo","HierarchicalContentNodeToContentNodeAncestorsConnectionPageInfo","HierarchicalContentNodeToContentNodeChildrenConnectionPageInfo","ContentNodeToEnqueuedScriptConnectionPageInfo","ContentNodeToEnqueuedStylesheetConnectionPageInfo","MediaItemToCommentConnectionPageInfo","UserToMediaItemConnectionPageInfo","PageToCommentConnectionPageInfo","PageToRevisionConnectionPageInfo","UserToPageConnectionPageInfo","PostToCategoryConnectionPageInfo","PostToCommentConnectionPageInfo","PostFormatToContentNodeConnectionPageInfo","PostFormatToPostConnectionPageInfo","PostToPostFormatConnectionPageInfo","PostToRevisionConnectionPageInfo","TagToContentNodeConnectionPageInfo","TagToPostConnectionPageInfo","PostToTagConnectionPageInfo","PostToTermNodeConnectionPageInfo","UserToPostConnectionPageInfo","UserToProjectConnectionPageInfo","UserToRevisionsConnectionPageInfo","UserToUserRoleConnectionPageInfo","UserToTestimonialConnectionPageInfo","CategoryToContentNodeConnectionPageInfo","CategoryToPostConnectionPageInfo","RootQueryToCategoryConnectionPageInfo","RootQueryToCommentConnectionPageInfo","RootQueryToContentNodeConnectionPageInfo","RootQueryToContentTypeConnectionPageInfo","RootQueryToMediaItemConnectionPageInfo","MenuItemToMenuItemConnectionPageInfo","MenuToMenuItemConnectionPageInfo","RootQueryToMenuItemConnectionPageInfo","RootQueryToMenuConnectionPageInfo","RootQueryToPageConnectionPageInfo","RootQueryToPluginConnectionPageInfo","RootQueryToPostFormatConnectionPageInfo","RootQueryToPostConnectionPageInfo","RootQueryToProjectConnectionPageInfo","RootQueryToEnqueuedScriptConnectionPageInfo","RootQueryToEnqueuedStylesheetConnectionPageInfo","RootQueryToRevisionsConnectionPageInfo","RootQueryToTagConnectionPageInfo","RootQueryToTaxonomyConnectionPageInfo","RootQueryToTermNodeConnectionPageInfo","RootQueryToTestimonialConnectionPageInfo","RootQueryToThemeConnectionPageInfo","RootQueryToUserRoleConnectionPageInfo","RootQueryToUserConnectionPageInfo"],"CategoryConnectionEdge":["CategoryToAncestorsCategoryConnectionEdge","CategoryToCategoryConnectionEdge","PostToCategoryConnectionEdge","CategoryToParentCategoryConnectionEdge","RootQueryToCategoryConnectionEdge"],"TermNode":["Category","PostFormat","Tag"],"UniformResourceIdentifiable":["Category","ContentType","User","MediaItem","Page","Post","PostFormat","Tag","Project","Testimonial"],"EnqueuedScriptConnection":["TermNodeToEnqueuedScriptConnection","UserToEnqueuedScriptConnection","ContentNodeToEnqueuedScriptConnection","RootQueryToEnqueuedScriptConnection"],"EnqueuedScriptConnectionEdge":["TermNodeToEnqueuedScriptConnectionEdge","UserToEnqueuedScriptConnectionEdge","ContentNodeToEnqueuedScriptConnectionEdge","RootQueryToEnqueuedScriptConnectionEdge"],"EnqueuedAsset":["EnqueuedScript","EnqueuedStylesheet"],"EnqueuedScriptConnectionPageInfo":["TermNodeToEnqueuedScriptConnectionPageInfo","UserToEnqueuedScriptConnectionPageInfo","ContentNodeToEnqueuedScriptConnectionPageInfo","RootQueryToEnqueuedScriptConnectionPageInfo"],"WPPageInfo":["TermNodeToEnqueuedScriptConnectionPageInfo","TermNodeToEnqueuedStylesheetConnectionPageInfo","CategoryToAncestorsCategoryConnectionPageInfo","CategoryToCategoryConnectionPageInfo","TaxonomyToContentTypeConnectionPageInfo","ContentTypeToTaxonomyConnectionPageInfo","ContentTypeToContentNodeConnectionPageInfo","CommentToCommentConnectionPageInfo","UserToCommentConnectionPageInfo","UserToEnqueuedScriptConnectionPageInfo","UserToEnqueuedStylesheetConnectionPageInfo","HierarchicalContentNodeToContentNodeAncestorsConnectionPageInfo","HierarchicalContentNodeToContentNodeChildrenConnectionPageInfo","ContentNodeToEnqueuedScriptConnectionPageInfo","ContentNodeToEnqueuedStylesheetConnectionPageInfo","MediaItemToCommentConnectionPageInfo","UserToMediaItemConnectionPageInfo","PageToCommentConnectionPageInfo","PageToRevisionConnectionPageInfo","UserToPageConnectionPageInfo","PostToCategoryConnectionPageInfo","PostToCommentConnectionPageInfo","PostFormatToContentNodeConnectionPageInfo","PostFormatToPostConnectionPageInfo","PostToPostFormatConnectionPageInfo","PostToRevisionConnectionPageInfo","TagToContentNodeConnectionPageInfo","TagToPostConnectionPageInfo","PostToTagConnectionPageInfo","PostToTermNodeConnectionPageInfo","UserToPostConnectionPageInfo","UserToProjectConnectionPageInfo","UserToRevisionsConnectionPageInfo","UserToUserRoleConnectionPageInfo","UserToTestimonialConnectionPageInfo","CategoryToContentNodeConnectionPageInfo","CategoryToPostConnectionPageInfo","RootQueryToCategoryConnectionPageInfo","RootQueryToCommentConnectionPageInfo","RootQueryToContentNodeConnectionPageInfo","RootQueryToContentTypeConnectionPageInfo","RootQueryToMediaItemConnectionPageInfo","MenuItemToMenuItemConnectionPageInfo","MenuToMenuItemConnectionPageInfo","RootQueryToMenuItemConnectionPageInfo","RootQueryToMenuConnectionPageInfo","RootQueryToPageConnectionPageInfo","RootQueryToPluginConnectionPageInfo","RootQueryToPostFormatConnectionPageInfo","RootQueryToPostConnectionPageInfo","RootQueryToProjectConnectionPageInfo","RootQueryToEnqueuedScriptConnectionPageInfo","RootQueryToEnqueuedStylesheetConnectionPageInfo","RootQueryToRevisionsConnectionPageInfo","RootQueryToTagConnectionPageInfo","RootQueryToTaxonomyConnectionPageInfo","RootQueryToTermNodeConnectionPageInfo","RootQueryToTestimonialConnectionPageInfo","RootQueryToThemeConnectionPageInfo","RootQueryToUserRoleConnectionPageInfo","RootQueryToUserConnectionPageInfo"],"EnqueuedStylesheetConnection":["TermNodeToEnqueuedStylesheetConnection","UserToEnqueuedStylesheetConnection","ContentNodeToEnqueuedStylesheetConnection","RootQueryToEnqueuedStylesheetConnection"],"EnqueuedStylesheetConnectionEdge":["TermNodeToEnqueuedStylesheetConnectionEdge","UserToEnqueuedStylesheetConnectionEdge","ContentNodeToEnqueuedStylesheetConnectionEdge","RootQueryToEnqueuedStylesheetConnectionEdge"],"EnqueuedStylesheetConnectionPageInfo":["TermNodeToEnqueuedStylesheetConnectionPageInfo","UserToEnqueuedStylesheetConnectionPageInfo","ContentNodeToEnqueuedStylesheetConnectionPageInfo","RootQueryToEnqueuedStylesheetConnectionPageInfo"],"DatabaseIdentifier":["Category","User","Comment","MediaItem","Page","Post","PostFormat","Tag","Project","Testimonial","Menu","MenuItem","CommentAuthor"],"HierarchicalTermNode":["Category"],"HierarchicalNode":["Category","MediaItem","Page"],"MenuItemLinkable":["Category","Page","Post","Tag"],"CategoryConnectionPageInfo":["CategoryToAncestorsCategoryConnectionPageInfo","CategoryToCategoryConnectionPageInfo","PostToCategoryConnectionPageInfo","RootQueryToCategoryConnectionPageInfo"],"ContentNodeConnection":["CategoryToContentNodeConnection","ContentTypeToContentNodeConnection","HierarchicalContentNodeToContentNodeAncestorsConnection","HierarchicalContentNodeToContentNodeChildrenConnection","PostFormatToContentNodeConnection","TagToContentNodeConnection","UserToRevisionsConnection","RootQueryToContentNodeConnection","RootQueryToRevisionsConnection"],"ContentNodeConnectionEdge":["ContentTypeToContentNodeConnectionEdge","CommentToContentNodeConnectionEdge","HierarchicalContentNodeToContentNodeAncestorsConnectionEdge","HierarchicalContentNodeToContentNodeChildrenConnectionEdge","HierarchicalContentNodeToParentContentNodeConnectionEdge","NodeWithRevisionsToContentNodeConnectionEdge","PostFormatToContentNodeConnectionEdge","TagToContentNodeConnectionEdge","UserToRevisionsConnectionEdge","CategoryToContentNodeConnectionEdge","RootQueryToContentNodeConnectionEdge","RootQueryToRevisionsConnectionEdge"],"ContentNode":["MediaItem","Page","Post","Project","Testimonial"],"OneToOneConnection":["ContentNodeToContentTypeConnectionEdge","ContentNodeToEditLockConnectionEdge","CommentToCommenterConnectionEdge","CommentToContentNodeConnectionEdge","CommentToParentCommentConnectionEdge","NodeWithAuthorToUserConnectionEdge","ContentNodeToEditLastConnectionEdge","HierarchicalContentNodeToParentContentNodeConnectionEdge","NodeWithFeaturedImageToMediaItemConnectionEdge","NodeWithRevisionsToContentNodeConnectionEdge","PageToPreviewConnectionEdge","PostFormatToTaxonomyConnectionEdge","PostToPreviewConnectionEdge","TagToTaxonomyConnectionEdge","ProjectToPreviewConnectionEdge","TestimonialToPreviewConnectionEdge","CategoryToParentCategoryConnectionEdge","CategoryToTaxonomyConnectionEdge","MenuItemToMenuItemLinkableConnectionEdge","MenuItemToMenuConnectionEdge"],"ContentTypeConnectionEdge":["ContentNodeToContentTypeConnectionEdge","TaxonomyToContentTypeConnectionEdge","RootQueryToContentTypeConnectionEdge"],"TaxonomyConnection":["ContentTypeToTaxonomyConnection","RootQueryToTaxonomyConnection"],"TaxonomyConnectionEdge":["ContentTypeToTaxonomyConnectionEdge","PostFormatToTaxonomyConnectionEdge","TagToTaxonomyConnectionEdge","CategoryToTaxonomyConnectionEdge","RootQueryToTaxonomyConnectionEdge"],"ContentTypeConnection":["TaxonomyToContentTypeConnection","RootQueryToContentTypeConnection"],"ContentTypeConnectionPageInfo":["TaxonomyToContentTypeConnectionPageInfo","RootQueryToContentTypeConnectionPageInfo"],"TaxonomyConnectionPageInfo":["ContentTypeToTaxonomyConnectionPageInfo","RootQueryToTaxonomyConnectionPageInfo"],"ContentNodeConnectionPageInfo":["ContentTypeToContentNodeConnectionPageInfo","HierarchicalContentNodeToContentNodeAncestorsConnectionPageInfo","HierarchicalContentNodeToContentNodeChildrenConnectionPageInfo","PostFormatToContentNodeConnectionPageInfo","TagToContentNodeConnectionPageInfo","UserToRevisionsConnectionPageInfo","CategoryToContentNodeConnectionPageInfo","RootQueryToContentNodeConnectionPageInfo","RootQueryToRevisionsConnectionPageInfo"],"UserConnectionEdge":["ContentNodeToEditLockConnectionEdge","NodeWithAuthorToUserConnectionEdge","ContentNodeToEditLastConnectionEdge","RootQueryToUserConnectionEdge"],"Commenter":["User","CommentAuthor"],"CommentConnection":["UserToCommentConnection","CommentToCommentConnection","MediaItemToCommentConnection","PageToCommentConnection","PostToCommentConnection","RootQueryToCommentConnection"],"CommentConnectionEdge":["CommentToParentCommentConnectionEdge","CommentToCommentConnectionEdge","UserToCommentConnectionEdge","MediaItemToCommentConnectionEdge","PageToCommentConnectionEdge","PostToCommentConnectionEdge","RootQueryToCommentConnectionEdge"],"CommenterConnectionEdge":["CommentToCommenterConnectionEdge"],"CommentConnectionPageInfo":["CommentToCommentConnectionPageInfo","UserToCommentConnectionPageInfo","MediaItemToCommentConnectionPageInfo","PageToCommentConnectionPageInfo","PostToCommentConnectionPageInfo","RootQueryToCommentConnectionPageInfo"],"MediaItemConnection":["UserToMediaItemConnection","RootQueryToMediaItemConnection"],"MediaItemConnectionEdge":["UserToMediaItemConnectionEdge","NodeWithFeaturedImageToMediaItemConnectionEdge","RootQueryToMediaItemConnectionEdge"],"NodeWithTemplate":["MediaItem","Page","Post","Project","Testimonial"],"ContentTemplate":["DefaultTemplate","Template_Blank","Template_BlogAlternative"],"NodeWithTitle":["MediaItem","Page","Post","Project","Testimonial"],"NodeWithAuthor":["MediaItem","Page","Post","Project","Testimonial"],"NodeWithComments":["MediaItem","Page","Post"],"HierarchicalContentNode":["MediaItem","Page"],"MediaItemConnectionPageInfo":["UserToMediaItemConnectionPageInfo","RootQueryToMediaItemConnectionPageInfo"],"PageConnection":["UserToPageConnection","PageToRevisionConnection","RootQueryToPageConnection"],"PageConnectionEdge":["PageToPreviewConnectionEdge","PageToRevisionConnectionEdge","UserToPageConnectionEdge","RootQueryToPageConnectionEdge"],"Previewable":["Page","Post","Project","Testimonial"],"NodeWithContentEditor":["Page","Post"],"NodeWithFeaturedImage":["Page","Post","Project"],"NodeWithRevisions":["Page","Post"],"NodeWithPageAttributes":["Page"],"NodeWithEditorBlocks":["Page","Post"],"EditorBlock":["CoreLegacyWidget","CoreWidgetGroup","CoreArchives","CoreAvatar","CoreBlock","CoreCalendar","CoreCategories","CoreCommentAuthorName","CoreCommentContent","CoreCommentDate","CoreCommentEditLink","CoreCommentReplyLink","CoreCommentTemplate","CoreComments","CoreCommentsPagination","CoreCommentsPaginationNext","CoreCommentsPaginationNumbers","CoreCommentsPaginationPrevious","CoreCommentsTitle","CoreCover","CoreFile","CoreGallery","CoreHeading","CoreHomeLink","CoreImage","CoreLatestComments","CoreLatestPosts","CoreLoginout","CoreNavigation","CoreNavigationLink","CoreNavigationSubmenu","CorePageList","CorePattern","CorePostAuthor","CorePostAuthorBiography","CorePostAuthorName","CorePostCommentsForm","CorePostContent","CorePostDate","CorePostExcerpt","CorePostFeaturedImage","CorePostNavigationLink","CorePostTemplate","CorePostTerms","CorePostTitle","CoreQuery","CoreQueryNoResults","CoreQueryPagination","CoreQueryPaginationNext","CoreQueryPaginationNumbers","CoreQueryPaginationPrevious","CoreQueryTitle","CoreReadMore","CoreRss","CoreSearch","CoreShortcode","CoreSiteLogo","CoreSiteTagline","CoreSiteTitle","CoreSocialLink","CoreTagCloud","CoreTemplatePart","CoreTermDescription","CoreAudio","CoreButton","CoreButtons","CoreCode","CoreColumn","CoreColumns","CoreEmbed","CoreFreeform","CoreGroup","CoreHtml","CoreList","CoreListItem","CoreMediaText","CoreMissing","CoreMore","CoreNextpage","CorePageListItem","CoreParagraph","CorePreformatted","CorePullquote","CoreQuote","CoreSeparator","CoreSocialLinks","CoreSpacer","CoreTable","CoreTextColumns","CoreVerse","CoreVideo","CorePostComments"],"NodeWithPageEditorBlocks":["Page"],"PageEditorBlock":["CoreLegacyWidget","CoreWidgetGroup","CoreArchives","CoreAvatar","CoreBlock","CoreCalendar","CoreCategories","CoreCommentAuthorName","CoreCommentContent","CoreCommentDate","CoreCommentEditLink","CoreCommentReplyLink","CoreCommentTemplate","CoreComments","CoreCommentsPagination","CoreCommentsPaginationNext","CoreCommentsPaginationNumbers","CoreCommentsPaginationPrevious","CoreCommentsTitle","CoreCover","CoreFile","CoreGallery","CoreHeading","CoreHomeLink","CoreImage","CoreLatestComments","CoreLatestPosts","CoreLoginout","CoreNavigation","CoreNavigationLink","CoreNavigationSubmenu","CorePageList","CorePattern","CorePostAuthor","CorePostAuthorBiography","CorePostAuthorName","CorePostCommentsForm","CorePostContent","CorePostDate","CorePostExcerpt","CorePostFeaturedImage","CorePostNavigationLink","CorePostTemplate","CorePostTerms","CorePostTitle","CoreQuery","CoreQueryNoResults","CoreQueryPagination","CoreQueryPaginationNext","CoreQueryPaginationNumbers","CoreQueryPaginationPrevious","CoreQueryTitle","CoreReadMore","CoreRss","CoreSearch","CoreShortcode","CoreSiteLogo","CoreSiteTagline","CoreSiteTitle","CoreSocialLink","CoreTagCloud","CoreTemplatePart","CoreTermDescription","CoreAudio","CoreButton","CoreButtons","CoreCode","CoreColumn","CoreColumns","CoreEmbed","CoreFreeform","CoreGroup","CoreHtml","CoreList","CoreListItem","CoreMediaText","CoreMissing","CoreMore","CoreNextpage","CorePageListItem","CoreParagraph","CorePreformatted","CorePullquote","CoreQuote","CoreSeparator","CoreSocialLinks","CoreSpacer","CoreTable","CoreTextColumns","CoreVerse","CoreVideo","CorePostComments"],"PageConnectionPageInfo":["PageToRevisionConnectionPageInfo","UserToPageConnectionPageInfo","RootQueryToPageConnectionPageInfo"],"PostConnection":["UserToPostConnection","PostFormatToPostConnection","PostToRevisionConnection","TagToPostConnection","CategoryToPostConnection","RootQueryToPostConnection"],"PostConnectionEdge":["PostFormatToPostConnectionEdge","PostToPreviewConnectionEdge","PostToRevisionConnectionEdge","TagToPostConnectionEdge","UserToPostConnectionEdge","CategoryToPostConnectionEdge","RootQueryToPostConnectionEdge"],"NodeWithExcerpt":["Post"],"NodeWithTrackbacks":["Post"],"NodeWithPostEditorBlocks":["Post"],"PostEditorBlock":["CoreLegacyWidget","CoreWidgetGroup","CoreArchives","CoreAvatar","CoreBlock","CoreCalendar","CoreCategories","CoreCommentAuthorName","CoreCommentContent","CoreCommentDate","CoreCommentEditLink","CoreCommentReplyLink","CoreCommentTemplate","CoreComments","CoreCommentsPagination","CoreCommentsPaginationNext","CoreCommentsPaginationNumbers","CoreCommentsPaginationPrevious","CoreCommentsTitle","CoreCover","CoreFile","CoreGallery","CoreHeading","CoreHomeLink","CoreImage","CoreLatestComments","CoreLatestPosts","CoreLoginout","CoreNavigation","CoreNavigationLink","CoreNavigationSubmenu","CorePageList","CorePattern","CorePostAuthor","CorePostAuthorBiography","CorePostAuthorName","CorePostCommentsForm","CorePostContent","CorePostDate","CorePostExcerpt","CorePostFeaturedImage","CorePostNavigationLink","CorePostTemplate","CorePostTerms","CorePostTitle","CoreQuery","CoreQueryNoResults","CoreQueryPagination","CoreQueryPaginationNext","CoreQueryPaginationNumbers","CoreQueryPaginationPrevious","CoreQueryTitle","CoreReadMore","CoreRss","CoreSearch","CoreShortcode","CoreSiteLogo","CoreSiteTagline","CoreSiteTitle","CoreSocialLink","CoreTagCloud","CoreTemplatePart","CoreTermDescription","CoreAudio","CoreButton","CoreButtons","CoreCode","CoreColumn","CoreColumns","CoreEmbed","CoreFreeform","CoreGroup","CoreHtml","CoreList","CoreListItem","CoreMediaText","CoreMissing","CoreMore","CoreNextpage","CorePageListItem","CoreParagraph","CorePreformatted","CorePullquote","CoreQuote","CoreSeparator","CoreSocialLinks","CoreSpacer","CoreTable","CoreTextColumns","CoreVerse","CoreVideo","CorePostComments"],"PostFormatConnection":["PostToPostFormatConnection","RootQueryToPostFormatConnection"],"PostFormatConnectionEdge":["PostToPostFormatConnectionEdge","RootQueryToPostFormatConnectionEdge"],"PostConnectionPageInfo":["PostFormatToPostConnectionPageInfo","PostToRevisionConnectionPageInfo","TagToPostConnectionPageInfo","UserToPostConnectionPageInfo","CategoryToPostConnectionPageInfo","RootQueryToPostConnectionPageInfo"],"PostFormatConnectionPageInfo":["PostToPostFormatConnectionPageInfo","RootQueryToPostFormatConnectionPageInfo"],"TagConnection":["PostToTagConnection","RootQueryToTagConnection"],"TagConnectionEdge":["PostToTagConnectionEdge","RootQueryToTagConnectionEdge"],"TagConnectionPageInfo":["PostToTagConnectionPageInfo","RootQueryToTagConnectionPageInfo"],"TermNodeConnection":["PostToTermNodeConnection","RootQueryToTermNodeConnection"],"TermNodeConnectionEdge":["PostToTermNodeConnectionEdge","RootQueryToTermNodeConnectionEdge"],"TermNodeConnectionPageInfo":["PostToTermNodeConnectionPageInfo","RootQueryToTermNodeConnectionPageInfo"],"ProjectConnection":["UserToProjectConnection","RootQueryToProjectConnection"],"ProjectConnectionEdge":["ProjectToPreviewConnectionEdge","UserToProjectConnectionEdge","RootQueryToProjectConnectionEdge"],"ProjectConnectionPageInfo":["UserToProjectConnectionPageInfo","RootQueryToProjectConnectionPageInfo"],"UserRoleConnection":["UserToUserRoleConnection","RootQueryToUserRoleConnection"],"UserRoleConnectionEdge":["UserToUserRoleConnectionEdge","RootQueryToUserRoleConnectionEdge"],"UserRoleConnectionPageInfo":["UserToUserRoleConnectionPageInfo","RootQueryToUserRoleConnectionPageInfo"],"TestimonialConnection":["UserToTestimonialConnection","RootQueryToTestimonialConnection"],"TestimonialConnectionEdge":["TestimonialToPreviewConnectionEdge","UserToTestimonialConnectionEdge","RootQueryToTestimonialConnectionEdge"],"TestimonialConnectionPageInfo":["UserToTestimonialConnectionPageInfo","RootQueryToTestimonialConnectionPageInfo"],"MenuItemConnection":["MenuToMenuItemConnection","MenuItemToMenuItemConnection","RootQueryToMenuItemConnection"],"MenuItemConnectionEdge":["MenuItemToMenuItemConnectionEdge","MenuToMenuItemConnectionEdge","RootQueryToMenuItemConnectionEdge"],"MenuItemConnectionPageInfo":["MenuItemToMenuItemConnectionPageInfo","MenuToMenuItemConnectionPageInfo","RootQueryToMenuItemConnectionPageInfo"],"MenuItemLinkableConnectionEdge":["MenuItemToMenuItemLinkableConnectionEdge"],"MenuItemObjectUnion":["Post","Page","Category","Tag"],"MenuConnectionEdge":["MenuItemToMenuConnectionEdge","RootQueryToMenuConnectionEdge"],"MenuConnection":["RootQueryToMenuConnection"],"MenuConnectionPageInfo":["RootQueryToMenuConnectionPageInfo"],"PluginConnection":["RootQueryToPluginConnection"],"PluginConnectionEdge":["RootQueryToPluginConnectionEdge"],"PluginConnectionPageInfo":["RootQueryToPluginConnectionPageInfo"],"ThemeConnection":["RootQueryToThemeConnection"],"ThemeConnectionEdge":["RootQueryToThemeConnectionEdge"],"ThemeConnectionPageInfo":["RootQueryToThemeConnectionPageInfo"],"UserConnection":["RootQueryToUserConnection"],"UserConnectionPageInfo":["RootQueryToUserConnectionPageInfo"],"BlockWithSupportsAnchor":["CoreCover","CoreCoverAttributes","CoreFile","CoreFileAttributes","CoreGallery","CoreGalleryAttributes","CoreHeading","CoreHeadingAttributes","CoreImage","CoreImageAttributes","CoreAudio","CoreAudioAttributes","CoreButton","CoreButtonAttributes","CoreButtons","CoreButtonsAttributes","CoreCode","CoreCodeAttributes","CoreColumn","CoreColumnAttributes","CoreColumns","CoreColumnsAttributes","CoreGroup","CoreGroupAttributes","CoreList","CoreListAttributes","CoreMediaText","CoreMediaTextAttributes","CoreParagraph","CoreParagraphAttributes","CorePreformatted","CorePreformattedAttributes","CorePullquote","CorePullquoteAttributes","CoreQuote","CoreQuoteAttributes","CoreSeparator","CoreSeparatorAttributes","CoreSocialLinks","CoreSocialLinksAttributes","CoreSpacer","CoreSpacerAttributes","CoreTable","CoreTableAttributes","CoreVerse","CoreVerseAttributes","CoreVideo","CoreVideoAttributes"]}
\ No newline at end of file
diff --git a/examples/next/app-router/tsconfig.json b/examples/next/app-router/tsconfig.json
deleted file mode 100644
index a50f6248d..000000000
--- a/examples/next/app-router/tsconfig.json
+++ /dev/null
@@ -1,44 +0,0 @@
-{
- "compilerOptions": {
- "lib": [
- "dom",
- "dom.iterable",
- "esnext"
- ],
- "types": [
- "react-dom/experimental"
- ],
- "allowJs": true,
- "skipLibCheck": true,
- "strict": false,
- "forceConsistentCasingInFileNames": true,
- "noEmit": true,
- "incremental": true,
- "esModuleInterop": true,
- "module": "ESNext",
- "moduleResolution": "Bundler",
- "resolveJsonModule": true,
- "isolatedModules": true,
- "jsx": "preserve",
- "paths": {
- "@/*": [
- "./*"
- ]
- },
- "plugins": [
- {
- "name": "next"
- }
- ],
- "target": "ES2017"
- },
- "include": [
- "next-env.d.ts",
- ".next/types/**/*.ts",
- "**/*.ts",
- "**/*.tsx"
- ],
- "exclude": [
- "node_modules"
- ]
-}
diff --git a/package-lock.json b/package-lock.json
index 0c445d60d..54efa6ffe 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -34,7 +34,6 @@
"packages/blocks",
"packages/block-editor-utils",
"packages/faustwp-cli",
- "packages/experimental-app-router",
"packages/faustwp-core",
"examples/next/faustwp-getting-started",
"plugins/faustwp"
@@ -567,33 +566,6 @@
}
}
},
- "node_modules/@apollo/client-react-streaming": {
- "version": "0.11.5",
- "resolved": "https://registry.npmjs.org/@apollo/client-react-streaming/-/client-react-streaming-0.11.5.tgz",
- "integrity": "sha512-HK794oSbEdKa0e13E6rRTJY29da9FZnHAb/YZa7r+0/9EMbbEWe8Ll6BsBh1xN2RAR6BHJhZbo0c8yRMLnrGVQ==",
- "dev": true,
- "dependencies": {
- "ts-invariant": "^0.10.3"
- },
- "peerDependencies": {
- "@apollo/client": "^3.10.4",
- "react": "^18 || >=19.0.0-rc <19.0.0"
- }
- },
- "node_modules/@apollo/experimental-nextjs-app-support": {
- "version": "0.11.5",
- "resolved": "https://registry.npmjs.org/@apollo/experimental-nextjs-app-support/-/experimental-nextjs-app-support-0.11.5.tgz",
- "integrity": "sha512-ifPDAQ/o+yko5UMhcH02yzR5WRkI0xocPMNMfKGjEDy7yNdrnd5o//m3B2oaiUMPOSOnqvlBO94CleeiFB5SoQ==",
- "dev": true,
- "dependencies": {
- "@apollo/client-react-streaming": "0.11.5"
- },
- "peerDependencies": {
- "@apollo/client": "^3.10.4",
- "next": "^13.4.1 || ^14.0.0 || ^15.0.0-rc.0",
- "react": "^18 || >=19.0.0-rc <19.0.0"
- }
- },
"node_modules/@ariakit/core": {
"version": "0.3.11",
"resolved": "https://registry.npmjs.org/@ariakit/core/-/core-0.3.11.tgz",
@@ -1610,10 +1582,6 @@
"resolved": "packages/faustwp-core",
"link": true
},
- "node_modules/@faustwp/experimental-app-router": {
- "resolved": "packages/experimental-app-router",
- "link": true
- },
"node_modules/@faustwp/getting-started-example": {
"resolved": "examples/next/faustwp-getting-started",
"link": true
@@ -16624,12 +16592,6 @@
"node": ">=6"
}
},
- "node_modules/package-json-from-dist": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz",
- "integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==",
- "dev": true
- },
"node_modules/package-manager-detector": {
"version": "0.2.2",
"resolved": "https://registry.npmjs.org/package-manager-detector/-/package-manager-detector-0.2.2.tgz",
@@ -19276,6 +19238,7 @@
"resolved": "https://registry.npmjs.org/typescript/-/typescript-5.6.3.tgz",
"integrity": "sha512-hjcS1mhfuyi4WW8IWtjP7brDrG2cuDZukyrYrSauoXGNgx0S7zceP07adYkJycEr56BOUTNPzbInooiN3fn1qw==",
"dev": true,
+ "peer": true,
"bin": {
"tsc": "bin/tsc",
"tsserver": "bin/tsserver"
@@ -19298,12 +19261,6 @@
"url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/undici-types": {
- "version": "6.19.8",
- "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.19.8.tgz",
- "integrity": "sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==",
- "dev": true
- },
"node_modules/universalify": {
"version": "0.1.2",
"resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz",
@@ -21630,7 +21587,7 @@
},
"packages/blocks": {
"name": "@faustwp/blocks",
- "version": "5.0.0",
+ "version": "6.0.0",
"license": "MIT",
"devDependencies": {
"@testing-library/jest-dom": "^5.16.5",
@@ -21762,6 +21719,7 @@
"packages/experimental-app-router": {
"name": "@faustwp/experimental-app-router",
"version": "0.5.0",
+ "extraneous": true,
"license": "MIT",
"devDependencies": {
"@apollo/client": "^3.8.0",
@@ -21790,223 +21748,6 @@
"react-dom": ">=18.0.0"
}
},
- "packages/experimental-app-router/node_modules/@types/node": {
- "version": "20.16.14",
- "resolved": "https://registry.npmjs.org/@types/node/-/node-20.16.14.tgz",
- "integrity": "sha512-vtgGzjxLF7QT88qRHtXMzCWpAAmwonE7fwgVjFtXosUva2oSpnIEc3gNO9P7uIfOxKnii2f79/xtOnfreYtDaA==",
- "dev": true,
- "dependencies": {
- "undici-types": "~6.19.2"
- }
- },
- "packages/experimental-app-router/node_modules/ansi-styles": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
- "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
- "dev": true,
- "dependencies": {
- "color-convert": "^2.0.1"
- },
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/chalk/ansi-styles?sponsor=1"
- }
- },
- "packages/experimental-app-router/node_modules/brace-expansion": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
- "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
- "dev": true,
- "dependencies": {
- "balanced-match": "^1.0.0"
- }
- },
- "packages/experimental-app-router/node_modules/chalk": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
- "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
- "dev": true,
- "dependencies": {
- "ansi-styles": "^4.1.0",
- "supports-color": "^7.1.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/chalk/chalk?sponsor=1"
- }
- },
- "packages/experimental-app-router/node_modules/chalk/node_modules/supports-color": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
- "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
- "dev": true,
- "dependencies": {
- "has-flag": "^4.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "packages/experimental-app-router/node_modules/color-convert": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
- "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
- "dev": true,
- "dependencies": {
- "color-name": "~1.1.4"
- },
- "engines": {
- "node": ">=7.0.0"
- }
- },
- "packages/experimental-app-router/node_modules/color-name": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
- "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
- "dev": true
- },
- "packages/experimental-app-router/node_modules/concurrently": {
- "version": "8.2.2",
- "resolved": "https://registry.npmjs.org/concurrently/-/concurrently-8.2.2.tgz",
- "integrity": "sha512-1dP4gpXFhei8IOtlXRE/T/4H88ElHgTiUzh71YUmtjTEHMSRS2Z/fgOxHSxxusGHogsRfxNq1vyAwxSC+EVyDg==",
- "dev": true,
- "dependencies": {
- "chalk": "^4.1.2",
- "date-fns": "^2.30.0",
- "lodash": "^4.17.21",
- "rxjs": "^7.8.1",
- "shell-quote": "^1.8.1",
- "spawn-command": "0.0.2",
- "supports-color": "^8.1.1",
- "tree-kill": "^1.2.2",
- "yargs": "^17.7.2"
- },
- "bin": {
- "conc": "dist/bin/concurrently.js",
- "concurrently": "dist/bin/concurrently.js"
- },
- "engines": {
- "node": "^14.13.0 || >=16.0.0"
- },
- "funding": {
- "url": "https://github.com/open-cli-tools/concurrently?sponsor=1"
- }
- },
- "packages/experimental-app-router/node_modules/glob": {
- "version": "10.4.5",
- "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz",
- "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==",
- "dev": true,
- "dependencies": {
- "foreground-child": "^3.1.0",
- "jackspeak": "^3.1.2",
- "minimatch": "^9.0.4",
- "minipass": "^7.1.2",
- "package-json-from-dist": "^1.0.0",
- "path-scurry": "^1.11.1"
- },
- "bin": {
- "glob": "dist/esm/bin.mjs"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
- "packages/experimental-app-router/node_modules/has-flag": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
- "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
- "dev": true,
- "engines": {
- "node": ">=8"
- }
- },
- "packages/experimental-app-router/node_modules/jackspeak": {
- "version": "3.4.3",
- "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz",
- "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==",
- "dev": true,
- "dependencies": {
- "@isaacs/cliui": "^8.0.2"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- },
- "optionalDependencies": {
- "@pkgjs/parseargs": "^0.11.0"
- }
- },
- "packages/experimental-app-router/node_modules/lru-cache": {
- "version": "10.4.3",
- "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz",
- "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==",
- "dev": true
- },
- "packages/experimental-app-router/node_modules/minimatch": {
- "version": "9.0.5",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz",
- "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==",
- "dev": true,
- "dependencies": {
- "brace-expansion": "^2.0.1"
- },
- "engines": {
- "node": ">=16 || 14 >=14.17"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
- "packages/experimental-app-router/node_modules/path-scurry": {
- "version": "1.11.1",
- "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz",
- "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==",
- "dev": true,
- "dependencies": {
- "lru-cache": "^10.2.0",
- "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0"
- },
- "engines": {
- "node": ">=16 || 14 >=14.18"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
- "packages/experimental-app-router/node_modules/rimraf": {
- "version": "5.0.10",
- "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-5.0.10.tgz",
- "integrity": "sha512-l0OE8wL34P4nJH/H2ffoaniAokM2qSmrtXHmlpvYr5AVVX8msAyW0l8NVJFDxlSK4u3Uh/f41cQheDVdnYijwQ==",
- "dev": true,
- "dependencies": {
- "glob": "^10.3.7"
- },
- "bin": {
- "rimraf": "dist/esm/bin.mjs"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
- "packages/experimental-app-router/node_modules/supports-color": {
- "version": "8.1.1",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz",
- "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==",
- "dev": true,
- "dependencies": {
- "has-flag": "^4.0.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/chalk/supports-color?sponsor=1"
- }
- },
"packages/faustwp-cli": {
"name": "@faustwp/cli",
"version": "3.1.1",
@@ -23865,7 +23606,7 @@
},
"plugins/faustwp": {
"name": "@faustwp/wordpress-plugin",
- "version": "1.5.0"
+ "version": "1.6.0"
}
}
}
diff --git a/package.json b/package.json
index 57a0cdc46..a61a14906 100644
--- a/package.json
+++ b/package.json
@@ -10,21 +10,19 @@
"packages/blocks",
"packages/block-editor-utils",
"packages/faustwp-cli",
- "packages/experimental-app-router",
"packages/faustwp-core",
"examples/next/faustwp-getting-started",
"plugins/faustwp"
]
},
"scripts": {
- "build": "npm run build --workspace=@faustwp/cli --workspace=@faustwp/core --workspace=@faustwp/blocks --workspace=@faustwp/block-editor-utils --workspace=@faustwp/experimental-app-router",
+ "build": "npm run build --workspace=@faustwp/cli --workspace=@faustwp/core --workspace=@faustwp/blocks --workspace=@faustwp/block-editor-utils",
"build:faust-cli": "npm run build --workspace=@faustwp/cli",
"build:faust-core": "npm run build --workspace=@faustwp/core",
"build:faust-blocks": "npm run build --workspace=@faustwp/blocks",
- "build:experimental-app-router": "npm run build --workspace=@faustwp/experimental-app-router",
- "clean": "npm run clean --workspace=@faustwp/cli --workspace=@faustwp/core --workspace=@faustwp/experimental-app-router --workspace=@faustwp/block-editor-utils",
+ "clean": "npm run clean --workspace=@faustwp/cli --workspace=@faustwp/core --workspace=@faustwp/block-editor-utils",
"clean:examples": "rimraf examples/**/node_modules",
- "format": "npm run format --workspace=@faustwp/cli --workspace=@faustwp/core --workspace=@faustwp/experimental-app-router --workspace=@faustwp/block-editor-utils",
+ "format": "npm run format --workspace=@faustwp/cli --workspace=@faustwp/core --workspace=@faustwp/block-editor-utils",
"build:faust-block-editor-utils": "npm run build --workspace=@faustwp/block-editor-utils",
"dev": "npm run build && npm run dev:next:getting-started",
"dev:next:getting-started": "rimraf examples/next/faustwp-getting-started/.next && npm run dev ---workspace=examples/next/faustwp-getting-started",
@@ -35,8 +33,8 @@
"version": "changeset version && node scripts/versionPlugin.js",
"version:nightly": "changeset version --snapshot && node scripts/versionPlugin.js",
"version:status": "changeset status",
- "release": "npm run build && npm run build:experimental-app-router && changeset publish",
- "release:nightly": "npm run build && npm run build:experimental-app-router && changeset publish --tag canary",
+ "release": "npm run build && changeset publish",
+ "release:nightly": "npm run build && changeset publish --tag canary",
"lint": "eslint ./packages --ext js,jsx,ts,tsx --max-warnings=0",
"lint:fix": "eslint ./packages --ext js,jsx,ts,tsx --max-warnings=0 --fix"
},
diff --git a/packages/experimental-app-router/.eslintignore b/packages/experimental-app-router/.eslintignore
deleted file mode 100644
index 45768ab52..000000000
--- a/packages/experimental-app-router/.eslintignore
+++ /dev/null
@@ -1,5 +0,0 @@
-dist
-node_modules
-/*.js
-/*.ts
-/*.d.ts
diff --git a/packages/experimental-app-router/.gitignore b/packages/experimental-app-router/.gitignore
deleted file mode 100644
index 0e75fe557..000000000
--- a/packages/experimental-app-router/.gitignore
+++ /dev/null
@@ -1,3 +0,0 @@
-node_modules
-dist
-coverage
diff --git a/packages/experimental-app-router/.npmignore b/packages/experimental-app-router/.npmignore
deleted file mode 100644
index 2c643b6a0..000000000
--- a/packages/experimental-app-router/.npmignore
+++ /dev/null
@@ -1,8 +0,0 @@
-src/**/*
-tests/**/*
-.gitignore
-.eslintignore
-jest.config.js
-jest.setup.ts
-tsconfig.json
-coverage
diff --git a/packages/experimental-app-router/CHANGELOG.md b/packages/experimental-app-router/CHANGELOG.md
deleted file mode 100644
index 963d4783b..000000000
--- a/packages/experimental-app-router/CHANGELOG.md
+++ /dev/null
@@ -1,207 +0,0 @@
-# @faustwp/experimental-app-router
-
-## 0.6.0
-
-### Minor Changes
-
-- 5457479: ---
-
- ## '@faustwp/experimental-app-router': minor
-
- Update @faustwp/experimental-app-router to account for next 15 changes to cookies and update NextResponse import
-
- Notable changes:
-
- - Adding await to all cookies requests as per Next documentation: https://nextjs.org/docs/app/api-reference/functions/cookies
-
- ```
- import { cookies } from 'next/headers'
-
- export default async function Page() {
- const cookieStore = await cookies()
- const theme = cookieStore.get('theme')
- return '...'
- }
- ```
-
- - Files changed:
-
- - packages/experimental-app-router/src/server-actions/logoutAction.ts
- - packages/experimental-app-router/src/server-actions/utils/setRefreshToken.ts
- - packages/experimental-app-router/src/server/auth/fetchTokens.ts
- - packages/experimental-app-router/src/server/routeHandler/tokenHandler.ts
-
- - Updated Next App Router example to use latest next version and React 19 RC.
- - Updated Example Login form using React 19s useActionState
- - Updated Awaiting of params for Next 15
- - Files Changed:
- - examples/next/app-router/app/login/page.tsx
- - examples/next/app-router/package.json
- - examples/next/app-router/[slug]hasPreviewProps.ts (made async)
- - examples/next/app-router/[slug]page.tsx
-
-## 0.5.0
-
-### Minor Changes
-
-- e22b87d: **@faustwp/cli**: Migrates `glob-promise` dependency to Promise support.
-
- **@faustwp/experimental-app-router**: Update peer dependency of `@apollo/experimental-nextjs-app-support >=0.11.5`.
-
-## 0.4.0
-
-### Minor Changes
-
-- 53bb9a6d: Updated dependencies, peerDependencies and devDependencies to better support local development and debugging.
-
-## 0.3.1
-
-### Patch Changes
-
-- aee31a5: Fixed issue where Faust's route handler failed to retrieve a token when trailingSlash is set to true in next.config.js.
-
-## 0.3.0
-
-### Minor Changes
-
-- 4cba024: Changed the `sameSite` property on the refresh token cookie from `strict` to `lax` for requests originating from WordPress.
-
-## 0.2.2
-
-### Patch Changes
-
-- 626207b: Added: New util for fetching data on the client side. In a client component (`use client`), you can now use Apollo's `useQuery` to fetch data once your application is wrapped with the `` component. This new component is available via:
-
- ```tsx
- import { FaustProvider } from '@faustwp/experimental-app-router/ssr';
- ```
-
-## 0.2.1
-
-### Patch Changes
-
-- 6276c80: Fix broken build from 0.2.0
-
-## 0.2.0
-
-### Minor Changes
-
-- 6e43598: **BREAKING**: Updated the following peer dependencies to new required minimums:
-
- - `@apollo/experimental-nextjs-app-support`: `0.4.1` -> `0.5.0`
- - `next`: `12.1.6` -> `14.0.0`
- - `react`: `17.0.2` -> `18.0.0`
- - `react-dom`: `17.0.2` -> `18.0.0`
-
-- 6e43598: **BREAKING**: This package now requires **Node 18+**
-
-## 0.1.0
-
-### Minor Changes
-
-- 77c5d4f: **BREAKING**: Removed `cjs` support. The experimental app router package now is ESM only.
-
-### Patch Changes
-
-- 77c5d4f: Fixed an issue where the Apollo Client was being shipped to the browser client bundle resulting in large bundle sizes (150kb+). For more context: https://github.com/apollographql/apollo-client-nextjs/issues/95
-
-## 0.0.4
-
-### Patch Changes
-
-- b2ad517: Added the `onLogin` server action to login a user:
-
- ```tsx
- import { onLogin } from '@faustwp/experimental-app-router';
-
- ;
- ```
-
-- Updated dependencies [b201ba2]
- - @faustwp/cli@1.1.3
-
-## 0.0.3
-
-### Patch Changes
-
-- a1b6fc0: Introduced a new API handler for App router projects called `faustRouteHandler`. It can be used by creating a file `/app/api/faust/[route]/route.js` with the following contents:
-
- ```js
- // /app/api/faust/[route]/route.js
- import { faustRouteHandler } from '@faustwp/experimental-app-router';
-
- const { GET, POST } = faustRouteHandler;
-
- export { GET, POST };
- ```
-
-- a1b6fc0: Created `getAuthClient` for making authenticated server side requests in the Next.js App Router. It can be used like:
-
- ```js
- import { getAuthClient } from '@faustwp/experimental-app-router';
-
- // app/my-account/posts/page.js
- export default async function Page() {
- const client = await getAuthClient();
-
- if (!client) {
- return <>You must be authenticated to view this page!>;
- }
-
- const { data } = await client.query({
- query: gql`
- query GetMyPosts {
- viewer {
- posts {
- nodes {
- id
- title
- }
- }
- }
- }
- `,
- });
-
- return(
- <>
- My posts
-
- {data.viewer.posts.nodes.map((post) => (
- {post.title}
- ))}
-
- >
- )
- ```
-
- **Note:** Our login/logout utils are still in the works.
-
-- Updated dependencies [a419252]
-- Updated dependencies [cf887d3]
-- Updated dependencies [795d956]
- - @faustwp/core@1.1.2
-
-## 0.0.2
-
-### Patch Changes
-
-- 3267c87: Added the `getClient` export that can be used to fetch data from your WordPress site
-- Updated dependencies [176bc82]
-- Updated dependencies [3f5cee8]
-- Updated dependencies [176bc82]
-- Updated dependencies [3810bbb]
- - @faustwp/core@1.1.1
- - @faustwp/cli@1.1.1
diff --git a/packages/experimental-app-router/README.md b/packages/experimental-app-router/README.md
index e047faea9..670d04dce 100644
--- a/packages/experimental-app-router/README.md
+++ b/packages/experimental-app-router/README.md
@@ -4,32 +4,16 @@
-
-
-
-
-
-
-
-
-
-
> [!CAUTION]
> This package has been **deprecated** due to lack of Apollo support for React Server Components and Next's App Router. The team is working on [tooling to replace Faust](https://github.com/wpengine/hwptoolkit) and this will include App Router support. You may continue to use this package though it will not receive any further bug fixes or security patches. If you need bug fixes or security updates we'd recommend copying the source code of this package directly into your project for use or use a tool such as [`patch-package`](https://www.npmjs.com/package/patch-package).
-This is an **experimental** collection of utilities to support Next.js' App Router feature in Faust. To get started, please visit the docs here:
-
-## Documentation
+An archive of this plugin and various resources is available on the [`archive-experimental-app-router`](https://github.com/wpengine/faustjs/tree/archive-experimental-app-router/packages/experimental-app-router) branch.
-- [Tutorial](./docs/getting-started.md)
-- Reference
- - [`faustRouteHandler`](./docs/faustroutehandler.md)
- - [`getAuthClient`](./docs/getauthclient.md)
- - [`getClient`](./docs/getclient.md)
- - [`onLogin` Server Action](./docs/onlogin-server-action.md)
- - [`onLogout` Server Action](./docs/onlogout-server-action.md)
+- [Code](https://github.com/wpengine/faustjs/tree/archive-experimental-app-router/packages/experimental-app-router/src)
+- [Documentation](https://github.com/wpengine/faustjs/tree/archive-experimental-app-router/packages/experimental-app-router/docs)
+- [Examples](https://github.com/wpengine/faustjs/tree/archive-experimental-app-router/examples/next/app-router)
diff --git a/packages/experimental-app-router/docs/faustroutehandler.md b/packages/experimental-app-router/docs/faustroutehandler.md
deleted file mode 100644
index c5e0afbac..000000000
--- a/packages/experimental-app-router/docs/faustroutehandler.md
+++ /dev/null
@@ -1,31 +0,0 @@
-# `faustRouteHandler`
-
-`faustRouteHandler` is an API handler for App router projects. It's main purpose is to manage Faust.js API logic, such as authentication and internal route handling.
-
-## Usage
-
-Create a file `/app/api/faust/[route]/route.js` with the following contents:
-
-```js
- import { faustRouteHandler } from '@faustwp/experimental-app-router';
-
- const { GET, POST } = faustRouteHandler;
-
- export { GET, POST };
-```
-
-## Technical Reference
-
-The `faustRouteHandler` is an object with the following properties:
-
-`GET`
-
-Handles GET requests over the `/app/api/faust/*` endpoint.
-
-`POST`
-
-Handle POST requests over the `/app/api/faust/*` endpoint.
-
-## Additional Context
-
-- [Next.js Route handlers](https://nextjs.org/docs/app/building-your-application/routing/route-handlers)
diff --git a/packages/experimental-app-router/docs/getauthclient.md b/packages/experimental-app-router/docs/getauthclient.md
deleted file mode 100644
index 0de30b53c..000000000
--- a/packages/experimental-app-router/docs/getauthclient.md
+++ /dev/null
@@ -1,56 +0,0 @@
-# `getAuthClient`
-
-`getAuthClient` is a function that returns the `ApolloClient` making it available for use. It is used for making authenticated server side requests in the Next.js App Router to the WordPress backend and is part of the `@faustwp/experimental-app-router` package.
-
-## Usage
-
-Here is an example layout that imports `getAuthClient` and uses `query` to query WPGraphQL:
-
-```js
-import { getAuthClient } from "@faustwp/experimental-app-router";
-
-// app/my-account/posts/page.js
-export default async function Page() {
- const client = await getAuthClient();
-
- if (!client) {
- return <>You must be authenticated to view this page!>;
- }
-
- const { data } = await client.query({
- query: gql`
- query GetMyPosts {
- viewer {
- posts {
- nodes {
- id
- title
- }
- }
- }
- }
- `,
- });
-
- return (
- <>
- My posts
-
- {data.viewer.posts.nodes.map((post) => (
- {post.title}
- ))}
-
- >
- );
-}
-```
-
-## Technical Reference
-
-`getAuthClient(): ApolloClient | null`
-
-The `getAuthClient` function returns the `ApolloClient`, making it available for use.
-
-You can use the `ApolloClient` to perform authenticated queries for data using the `query` function.
-
-The function will return `null` when it fails to retrieve the access token for making authenticated requests. If this happens, you want to check that your user becomes authenticated using the `onLogin` server action.
diff --git a/packages/experimental-app-router/docs/getclient.md b/packages/experimental-app-router/docs/getclient.md
deleted file mode 100644
index 68cd30e63..000000000
--- a/packages/experimental-app-router/docs/getclient.md
+++ /dev/null
@@ -1,85 +0,0 @@
-# `getClient`
-
-`getClient` is a function that returns the `ApolloClient` making it available for use. It is part of the `@faustwp/experimental-app-router` package.
-
-## Usage
-
-Here is an example layout that imports `getClient` and uses `query` to query WPGraphQL:
-
-```js
-import { gql } from '@apollo/client';
-import { getClient } from '@faustwp/experimental-app-router';
-import Link from 'next/link';
-import '../faust.config.js';
-
-export const metadata = {
- title: 'Create Next App',
- description: 'Generated by create next app',
-};
-
-export default async function RootLayout({ children }) {
- const client = await getClient();
-
- const { data } = await client.query({
- query: gql`
- query GetLayout {
- generalSettings {
- title
- description
- }
- primaryMenuItems: menuItems(where: { location: PRIMARY }) {
- nodes {
- id
- label
- uri
- }
- }
- footerMenuItems: menuItems(where: { location: FOOTER }) {
- nodes {
- id
- label
- uri
- }
- }
- }
- `,
- });
-
- return (
-
-
-
- {children}
-
-
- );
-}
-```
-
-## Technical Reference
-
-`getClient(): ApolloClient | null`
-
-The `getClient` function returns the `ApolloClient` making it available for use.
-
-You can use the `ApolloClient` to perform queries for data using the `query` function.
-
-## Additional Context
-
-- [Next.js Server Actions](https://nextjs.org/docs/app/api-reference/functions/server-actions)
diff --git a/packages/experimental-app-router/docs/getting-started.md b/packages/experimental-app-router/docs/getting-started.md
deleted file mode 100644
index 6624833d0..000000000
--- a/packages/experimental-app-router/docs/getting-started.md
+++ /dev/null
@@ -1,167 +0,0 @@
-# Getting Started with the Experimental App Router
-
-This tutorial will introduce you to Faust’s experimental app router example project. It contains a site demonstrating the use of utilities like [getClient](./getclient.md), [getAuthClient](./getauthclient.md), [faustRouteHandler](./faustroutehandler.md), [loginAction](./onlogin-server-action.md), and [logoutAction](./onlogout-server-action.md). You can use this project as a base for future projects and as a good reference site for app routing. It assumes you are comfortable with the command line, have a foundational knowledge of Faust and Next.js routing, and understand the basics of JavaScript, WordPress and Bash.
-
-- [Experimental App Router example project](https://github.com/wpengine/faustjs/tree/canary/examples/next/app-router)
-
-- [NPM package](https://www.npmjs.com/package/@faustwp/experimental-app-router)
-
-## How to Get the Example Working Locally
-
-### Install and Build
-
-Get started by downloading the example project by running:
-
-```shell
-npx create-next-app \
- -e https://github.com/wpengine/faustjs/tree/main \
- --example-path examples/next/app-router \
- --use-npm
-```
-
-### .env.local File Set Up
-
-Copy the example’s `.env.local.sample` file, ensuring you rename the file `.env.local`.
-
-You’ll see an example `NEXT_PUBLIC_WORDPRESS_URL` in this file. Set this to your WordPress site’s URL.
-
-You’ll also see a NEXT\_PUBLIC\_URL set to http://localhost:3000. You can keep that as is for now.
-
-Set your FAUST\_SECRET\_KEY. For more information on where to find this secret key, refer back to this example.
-
-
-
-### Run the Project
-
-Run the example project by entering `npm run dev`
-Navigate to `http://localhost:3000/.`
-
-You should now see a simple site page using your site’s name and a few published posts:
-
-
-
-## The Example Project File Structure
-
-This is the new standard file structure for App Router Next.js apps. For more information, check out the [App Router](https://nextjs.org/docs/app) docs from Next.js.
-
-```shell
-❯ tree -L 2
-.
-│ν app
-│ └── [postSlug]
-│ └── page.tsx
-│ └── api/faust/[route]
-│ └── route.ts
-│ └── my-account
-│ └── page.tsx
-│ └── making-client-queries
-│ └── page.tsx
-│ └── login
-│ └── page.tsx
-│ ├── layout.tsx
-│ └── page.tsx
-│❯ node_modules
-│.env.local.sample
-│faust.config.js
-│next-end.d.ts
-│next.config.ts
-│package.json
-│possibleTypes.json
-│tsconfig.json
-```
-
-## Fetching Data
-
-[getClient](./getclient.md) is a function that returns an ApolloClient, specifically for use in React Server Components (RSC). When making authenticated requests in the Next.js App Router from an RSC, the [getAuthClient](./getauthclient.md) is used instead. Both are part of the `@faustwp/experimental-app-router` package.
-
-In the example project under the folder `my-account`, you’ll find an example of getAuthClient in action:
-
-```js
-// in examples/next/app-router/app/my-account/page.tsx
-import { gql } from '@apollo/client';
-import { getAuthClient } from '@faustwp/experimental-app-router';
-
-export default async function Page() {
- const client = await getAuthClient();
-
- if (!client) {
- return <>You must be authenticated>;
- }
-
- const { data } = await client.query({
- query: gql`
- query GetViewer {
- viewer {
- name
- posts {
- nodes {
- id
- title
- }
- }
- }
- }
- `,
- });
-
- return (
- <>
- Welcome {data.viewer.name}
-
-
- {data.viewer.posts.nodes.map((post) => (
- {post.title}
- ))}
-
- >
- );
-}
-```
-
-### Fetching Data on the Client
-
-Additionally, you can make client side requests using Apollo's `useQuery` hook like usual (You will need to do this in a client component using the `use client` directive):
-
-```js
-'use client';
-
-import { gql, useQuery } from '@apollo/client';
-
-export default function Page() {
- const { data } = useQuery(gql`
- query MyQuery {
- generalSettings {
- title
- }
- }
- `);
-
- return <>{data?.generalSettings?.title}>;
-}
-```
-
-For client side queries to work, make sure you are wrapping your root `layout` with the `` component imported via:
-
-```js
-import { FaustProvider } from '@faustwp/experimental-app-router/ssr';
-```
-
-## Authentication
-
-Authentication in the experimental-app-router is powered by two utilities, [onLogin](./onlogin-server-action.md) and [onLogout](./onlogout-server-action.md). These are built on [Next.js server actions](http://nextjs.org/docs/app/api-reference/functions/server-actions\) and perform an action to log a user in and out using cookie caching and cookie removal, respectively.
-
-In the example project, navigate to `http://localhost:3000/login` and log into your app using your `wp-admin` credentials from the `NEXT_PUBLIC_WORDPRESS_URL` you set in your .env.local file.
-
-
-
-Upon successfully logging in, you’ll be directed to `http://localhost:3000/my-account`. This functionality comes from the helper function, [onLogin](./onlogin-server-action.md).
-
-
-
-The `/my-account` page grabs the authenticated user's name and posts and displays them.
-
-This page also has a "Logout" button, clicking it calls the [onLogout](./onlogout-server-action.md) server action, the user is logged out, and the page is refreshed with no authenticated user.
-
-Note that when viewing the `/my-account` without an authenticated user, the first conditional statement in the associated `my-account/page.tsx` will be triggered, and the message, `You must be authenticated` will show on the screen.
-
-
diff --git a/packages/experimental-app-router/docs/images/image-1-1024x771.png b/packages/experimental-app-router/docs/images/image-1-1024x771.png
deleted file mode 100644
index eb93d5f7a..000000000
Binary files a/packages/experimental-app-router/docs/images/image-1-1024x771.png and /dev/null differ
diff --git a/packages/experimental-app-router/docs/images/image-1.png b/packages/experimental-app-router/docs/images/image-1.png
deleted file mode 100644
index df5a53be8..000000000
Binary files a/packages/experimental-app-router/docs/images/image-1.png and /dev/null differ
diff --git a/packages/experimental-app-router/docs/images/image-1024x771.png b/packages/experimental-app-router/docs/images/image-1024x771.png
deleted file mode 100644
index 75bbc6152..000000000
Binary files a/packages/experimental-app-router/docs/images/image-1024x771.png and /dev/null differ
diff --git a/packages/experimental-app-router/docs/images/image-2-1024x810.png b/packages/experimental-app-router/docs/images/image-2-1024x810.png
deleted file mode 100644
index de3a81c43..000000000
Binary files a/packages/experimental-app-router/docs/images/image-2-1024x810.png and /dev/null differ
diff --git a/packages/experimental-app-router/docs/images/image-2.png b/packages/experimental-app-router/docs/images/image-2.png
deleted file mode 100644
index 3b7a52b61..000000000
Binary files a/packages/experimental-app-router/docs/images/image-2.png and /dev/null differ
diff --git a/packages/experimental-app-router/docs/images/image-3.png b/packages/experimental-app-router/docs/images/image-3.png
deleted file mode 100644
index 0866a5870..000000000
Binary files a/packages/experimental-app-router/docs/images/image-3.png and /dev/null differ
diff --git a/packages/experimental-app-router/docs/images/image.png b/packages/experimental-app-router/docs/images/image.png
deleted file mode 100644
index 7da728b89..000000000
Binary files a/packages/experimental-app-router/docs/images/image.png and /dev/null differ
diff --git a/packages/experimental-app-router/docs/onlogin-server-action.md b/packages/experimental-app-router/docs/onlogin-server-action.md
deleted file mode 100644
index 012742018..000000000
--- a/packages/experimental-app-router/docs/onlogin-server-action.md
+++ /dev/null
@@ -1,38 +0,0 @@
-# `onLogin` Server Action
-
-The `onLogin` is function that performs a server action to login a user. It is part of the `@faustwp/experimental-app-router` package.
-
-## Usage
-
-Here is an example action to login the user by providing credentials to login to the WordPress backend:
-
-```js
-'use client'
-import { onLogin } from '@faustwp/experimental-app-router';
-
-;
-```
-
-## Technical Reference
-
-`onLogin(formData: FormData)`
-
-The `onLogin` server action accepts an instance of HTML [FormData](https://developer.mozilla.org/en-US/docs/Web/API/FormData) class that is automatically provided when you use a `;
-```
-
-## Technical Reference
-
-`onLogout()` This function does not accept any arguments.
-
-If the form submission is successful, the server will remove the session cookie that is used to maintain the authentication status.
-
-## Additional Context
-
-- [Next.js Server Actions](https://nextjs.org/docs/app/api-reference/functions/server-actions)
diff --git a/packages/experimental-app-router/jest.config.js b/packages/experimental-app-router/jest.config.js
deleted file mode 100644
index a6a716a12..000000000
--- a/packages/experimental-app-router/jest.config.js
+++ /dev/null
@@ -1,32 +0,0 @@
-export default {
- roots: ['/tests'],
-
- // Adds Jest support for TypeScript using ts-jest.
- testEnvironment: 'jest-environment-jsdom',
- transform: {
- '^.+\\.[tj]sx?$': [
- 'ts-jest',
- {
- tsconfig: 'tsconfig.json',
- isolatedModules: true,
- useESM: true,
- },
- ],
- },
- // Run code before each file in the suite is tested.
- setupFilesAfterEnv: ['./jest.setup.ts'],
-
- testRegex: '(/__tests__/.*|(\\.|/)(test|spec))\\.tsx?$',
-
- moduleFileExtensions: ['ts', 'tsx', 'js', 'jsx', 'json', 'node'],
-
- // ESM Support
- // @link https://kulshekhar.github.io/ts-jest/docs/guides/esm-support/
- extensionsToTreatAsEsm: ['.ts'],
- moduleNameMapper: {
- '^(\\.{1,2}/.*)\\.js$': '$1',
- },
- collectCoverage: true,
- coverageReporters: ['json', 'html'],
- passWithNoTests: true,
-};
diff --git a/packages/experimental-app-router/jest.setup.ts b/packages/experimental-app-router/jest.setup.ts
deleted file mode 100644
index f30f08879..000000000
--- a/packages/experimental-app-router/jest.setup.ts
+++ /dev/null
@@ -1 +0,0 @@
-import '@testing-library/jest-dom'; // For custom matchers. See https://github.com/testing-library/jest-dom#custom-matchers.
diff --git a/packages/experimental-app-router/package.json b/packages/experimental-app-router/package.json
deleted file mode 100644
index dcd2b0f47..000000000
--- a/packages/experimental-app-router/package.json
+++ /dev/null
@@ -1,71 +0,0 @@
-{
- "name": "@faustwp/experimental-app-router",
- "type": "module",
- "version": "0.6.0",
- "description": "Experimental: A Faust package to support Next.js' App Router",
- "exports": {
- ".": "./dist/index.js",
- "./ssr": "./dist/ssr.js",
- "./package.json": "./package.json"
- },
- "types": "dist/index.d.ts",
- "keywords": [
- "next",
- "nextjs",
- "faust",
- "faustjs",
- "esm",
- "headless",
- "wordpress"
- ],
- "scripts": {
- "dev": "concurrently \"npm:watch-*\" --prefix-colors \"auto\"",
- "build": "concurrently \"npm:build-*\" --prefix-colors \"auto\"",
- "prebuild": "npm run clean",
- "clean": "rimraf dist",
- "format": "prettier --write .",
- "prepublish": "npm run build",
- "test:coverage:ci": "jest --ci --json --coverage --testLocationInResults --outputFile=report.json",
- "test:coverage": "jest --coverage",
- "test:watch": "jest --watch",
- "test": "jest",
- "build-js": "tsc -p .",
- "watch-js": "concurrently \"npm:build-js -- --watch\""
- },
- "repository": {
- "type": "git",
- "url": "git+https://github.com/wpengine/faustjs.git"
- },
- "author": "Faust Team",
- "license": "MIT",
- "bugs": {
- "url": "https://github.com/wpengine/faustjs/issues"
- },
- "homepage": "https://github.com/wpengine/faustjs#readme",
- "engines": {
- "node": ">=18",
- "npm": ">=8"
- },
- "peerDependencies": {
- "@apollo/client": ">=3.8.0",
- "@apollo/experimental-nextjs-app-support": ">=0.11.5",
- "@faustwp/cli": ">=1.1.3",
- "@faustwp/core": ">=1.1.2",
- "next": ">=13.0.0",
- "react": ">=18.0.0",
- "react-dom": ">=18.0.0"
- },
- "devDependencies": {
- "@apollo/client": "^3.8.0",
- "@apollo/experimental-nextjs-app-support": "^0.11.5",
- "@testing-library/jest-dom": "^5.17.0",
- "@types/node": "^20.4.6",
- "concurrently": "^8.2.0",
- "jest": "^29.6.2",
- "jest-environment-jsdom": "^29.6.2",
- "rimraf": "^5.0.1",
- "ts-jest": "^29.1.1",
- "ts-loader": "^9.4.4",
- "typescript": "^5.1.6"
- }
-}
diff --git a/packages/experimental-app-router/src/client/config.ts b/packages/experimental-app-router/src/client/config.ts
deleted file mode 100644
index a4726fe6b..000000000
--- a/packages/experimental-app-router/src/client/config.ts
+++ /dev/null
@@ -1,59 +0,0 @@
-import {
- ApolloLink,
- InMemoryCacheConfig,
- createHttpLink,
-} from '@apollo/client';
-// eslint-disable-next-line import/extensions
-import { setContext } from '@apollo/client/link/context';
-import { getConfig, getGraphqlEndpoint } from '../faust-core-utils.js';
-import { fetchAccessToken } from '../server/auth/fetchAccessToken.js';
-
-export function createApolloConfig(
- authenticated = false,
-): [InMemoryCacheConfig, ApolloLink] {
- const { possibleTypes } = getConfig();
-
- const inMemoryCacheObject: InMemoryCacheConfig = {
- possibleTypes,
- typePolicies: {
- RootQuery: {
- queryType: true,
- },
- RootMutation: {
- mutationType: true,
- },
- },
- };
-
- let linkChain = createHttpLink({
- uri: getGraphqlEndpoint(),
- });
-
- // @todo Create hook for client and options.
-
- // If the request is coming from the auth client, apply the auth link.
- if (authenticated) {
- linkChain = setContext(async (_, { headers }) => {
- // get the authentication token from local storage if it exists
- const token = await fetchAccessToken();
-
- // return the headers to the context so httpLink can read them
- return {
- headers: {
- ...headers,
- authorization: token ? `Bearer ${token}` : '',
- },
- };
- }).concat(linkChain);
- }
-
- /**
- * @todo
- * Configure GET requests and persisted queries options.
- * These are not defined right now as these behaviors may
- * change based on the App Router implementation. For example,
- * we may set config differently than how we currently do it.
- */
-
- return [inMemoryCacheObject, linkChain];
-}
diff --git a/packages/experimental-app-router/src/client/rsc.tsx b/packages/experimental-app-router/src/client/rsc.tsx
deleted file mode 100644
index 8342d3735..000000000
--- a/packages/experimental-app-router/src/client/rsc.tsx
+++ /dev/null
@@ -1,34 +0,0 @@
-// eslint-disable-next-line import/extensions
-import { ApolloClient, InMemoryCache } from '@apollo/client';
-// eslint-disable-next-line import/extensions
-import { registerApolloClient } from '@apollo/experimental-nextjs-app-support';
-import { fetchAccessToken } from '../server/auth/fetchAccessToken.js';
-import { createApolloConfig } from './config.js';
-
-export function createRSCApolloClient(authenticated = false) {
- const [inMemoryCacheObject, linkChain] = createApolloConfig(authenticated);
- return new ApolloClient({
- cache: new InMemoryCache(inMemoryCacheObject),
- link: linkChain,
- });
-}
-
-export async function getClient() {
- const faustApolloClient = createRSCApolloClient(false);
- const client = registerApolloClient(() => faustApolloClient);
-
- return client.getClient();
-}
-
-export async function getAuthClient() {
- const token = await fetchAccessToken();
-
- if (!token) {
- return null;
- }
-
- const faustApolloClient = createRSCApolloClient(true);
- const client = registerApolloClient(() => faustApolloClient);
-
- return client.getClient();
-}
diff --git a/packages/experimental-app-router/src/client/ssr.tsx b/packages/experimental-app-router/src/client/ssr.tsx
deleted file mode 100644
index 004f2437e..000000000
--- a/packages/experimental-app-router/src/client/ssr.tsx
+++ /dev/null
@@ -1,27 +0,0 @@
-'use client';
-
-// eslint-disable-next-line import/extensions
-import {
- ApolloNextAppProvider,
- ApolloClient,
- InMemoryCache,
- // eslint-disable-next-line import/extensions
-} from '@apollo/experimental-nextjs-app-support';
-import React, { PropsWithChildren } from 'react';
-import { createApolloConfig } from './config.js';
-
-export function createSSRApolloClient(authenticated = false) {
- const [inMemoryCacheObject, linkChain] = createApolloConfig(authenticated);
- return new ApolloClient({
- cache: new InMemoryCache(inMemoryCacheObject),
- link: linkChain,
- });
-}
-
-export function FaustSSRProvider({ children }: PropsWithChildren) {
- return (
- createSSRApolloClient(false)}>
- {children}
-
- );
-}
diff --git a/packages/experimental-app-router/src/faust-core-utils.ts b/packages/experimental-app-router/src/faust-core-utils.ts
deleted file mode 100644
index 73b01d0bc..000000000
--- a/packages/experimental-app-router/src/faust-core-utils.ts
+++ /dev/null
@@ -1,13 +0,0 @@
-/**
- * We are currently importing these utils from their deep paths because importing
- * from the main export will also include the FaustProvider component, which throws an error because
- * it does not have the "use client" directive set.
- *
- * @todo Find a workaround for importing these utils without invoking FaustProvider.
- * @see https://github.com/vercel/next.js/issues/12557#issuecomment-1427088366
- */
-export { getConfig } from '@faustwp/core/dist/mjs/config/index.js';
-export { getGraphqlEndpoint } from '@faustwp/core/dist/mjs/lib/getGraphqlEndpoint.js';
-export { getWpUrl } from '@faustwp/core/dist/mjs/lib/getWpUrl.js';
-export { getWpSecret } from '@faustwp/core/dist/mjs/lib/getWpSecret.js';
-export { isValidEmail } from '@faustwp/core/dist/mjs/utils/assert.js';
diff --git a/packages/experimental-app-router/src/index.tsx b/packages/experimental-app-router/src/index.tsx
deleted file mode 100644
index 26b73f850..000000000
--- a/packages/experimental-app-router/src/index.tsx
+++ /dev/null
@@ -1,5 +0,0 @@
-export { getClient, getAuthClient } from './client/rsc.js';
-export { faustRouteHandler } from './server/routeHandler/index.js';
-export { fetchAccessToken } from './server/auth/fetchAccessToken.js';
-export { onLogout } from './server-actions/logoutAction.js';
-export { onLogin } from './server-actions/loginAction.js';
diff --git a/packages/experimental-app-router/src/lib/getUrl.ts b/packages/experimental-app-router/src/lib/getUrl.ts
deleted file mode 100644
index d48610321..000000000
--- a/packages/experimental-app-router/src/lib/getUrl.ts
+++ /dev/null
@@ -1,4 +0,0 @@
-export function getUrl() {
- // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
- return process.env.NEXT_PUBLIC_URL!;
-}
diff --git a/packages/experimental-app-router/src/server-actions/loginAction.ts b/packages/experimental-app-router/src/server-actions/loginAction.ts
deleted file mode 100644
index a22fe5124..000000000
--- a/packages/experimental-app-router/src/server-actions/loginAction.ts
+++ /dev/null
@@ -1,124 +0,0 @@
-import { gql } from '@apollo/client';
-// eslint-disable-next-line import/extensions
-import { print } from '@apollo/client/utilities';
-import { fetchTokens } from '../server/auth/fetchTokens.js';
-import { setRefreshToken } from './utils/setRefreshToken.js';
-import { isValidEmail, getGraphqlEndpoint } from '../faust-core-utils.js';
-
-export const GENERATE_AUTHORIZATION_CODE = gql`
- mutation GenerateAuthorizationCode(
- $email: String
- $username: String
- $password: String!
- ) {
- generateAuthorizationCode(
- input: { email: $email, username: $username, password: $password }
- ) {
- code
- error
- }
- }
-`;
-
-export type GenerateAuthCodeMutationRes = {
- data?:
- | {
- generateAuthorizationCode: {
- code: string;
- error: null;
- };
- }
- | {
- generateAuthorizationCode: {
- code: null;
- error: string;
- };
- };
-};
-
-function isString(value: any): value is string {
- return typeof value === 'string' || value instanceof String;
-}
-
-export const validationError = {
- error:
- 'There were validation errors. Please ensure your login action has two inputs, "usernameEmail" and "password"',
-};
-
-export async function onLogin(formData: FormData) {
- 'use server';
-
- try {
- const usernameEmail = formData.get('usernameEmail');
- const password = formData.get('password');
-
- if (
- !usernameEmail ||
- !isString(usernameEmail) ||
- !password ||
- !isString(password)
- ) {
- return validationError;
- }
-
- const mutationVariables: {
- username?: string;
- email?: string;
- password: string;
- } = { password };
-
- if (isValidEmail(usernameEmail)) {
- mutationVariables.email = usernameEmail;
- } else {
- mutationVariables.username = usernameEmail;
- }
-
- /**
- * Using standard fetch here so we don't muddy the waters with Next caching
- * and Apollo.
- */
- const mutationRes = await fetch(`${getGraphqlEndpoint()}`, {
- method: 'POST',
- headers: {
- 'Content-Type': 'application/json',
- },
- body: JSON.stringify({
- query: print(GENERATE_AUTHORIZATION_CODE),
- variables: mutationVariables,
- }),
- // We do not want Next caching the generate auth code response.
- cache: 'no-store',
- });
-
- const { data } = (await mutationRes.json()) as GenerateAuthCodeMutationRes;
-
- if (data?.generateAuthorizationCode.error !== null) {
- return {
- error: data?.generateAuthorizationCode.error,
- };
- }
-
- const { code } = data.generateAuthorizationCode;
-
- const tokens = await fetchTokens(code);
-
- if (tokens === null) {
- throw new Error('Could not fetch tokens');
- }
-
- await setRefreshToken(
- tokens.refreshToken,
- tokens.refreshTokenExpiration * 1000,
- );
-
- return {
- message: 'User was successfully logged in',
- };
- } catch (err) {
- console.error('User could not be logged in:', err);
-
- return {
- error: 'There was an error logging in the user',
- };
- }
-}
diff --git a/packages/experimental-app-router/src/server-actions/logoutAction.ts b/packages/experimental-app-router/src/server-actions/logoutAction.ts
deleted file mode 100644
index de5527ce6..000000000
--- a/packages/experimental-app-router/src/server-actions/logoutAction.ts
+++ /dev/null
@@ -1,17 +0,0 @@
-import { cookies } from 'next/headers.js';
-import { getWpUrl } from '../faust-core-utils.js';
-
-export async function onLogout() {
- 'use server';
-
- const wpCookieName = `${getWpUrl()}-rt`;
- // eslint-disable-next-line @typescript-eslint/await-thenable
- const cookieStore = await cookies();
- const wpCookie = cookieStore.get(wpCookieName);
-
- if (wpCookie?.name) {
- cookieStore.delete(wpCookieName);
- return true;
- }
- return false;
-}
diff --git a/packages/experimental-app-router/src/server-actions/utils/setRefreshToken.ts b/packages/experimental-app-router/src/server-actions/utils/setRefreshToken.ts
deleted file mode 100644
index 1b3828d0f..000000000
--- a/packages/experimental-app-router/src/server-actions/utils/setRefreshToken.ts
+++ /dev/null
@@ -1,26 +0,0 @@
-import { cookies } from 'next/headers.js';
-import { getWpUrl } from '../../faust-core-utils.js';
-
-/**
- * Sets the refresh token to the proper cookie. This can only be used within
- * server actions and server routes.
- *
- * @param refreshToken The refresh token from the token endpoint
- * @param refreshTokenExpiration The refresh token expiration from the token endpoint
- */
-export async function setRefreshToken(
- refreshToken: string,
- refreshTokenExpiration: number,
-) {
- // eslint-disable-next-line @typescript-eslint/await-thenable
- const cookieStore = await cookies();
- const cookieName = `${getWpUrl()}-rt`;
-
- cookieStore.set(cookieName, refreshToken, {
- secure: true,
- httpOnly: true,
- path: '/',
- expires: new Date(refreshTokenExpiration),
- sameSite: 'lax',
- });
-}
diff --git a/packages/experimental-app-router/src/server/auth/fetchAccessToken.ts b/packages/experimental-app-router/src/server/auth/fetchAccessToken.ts
deleted file mode 100644
index 153bd02ba..000000000
--- a/packages/experimental-app-router/src/server/auth/fetchAccessToken.ts
+++ /dev/null
@@ -1,18 +0,0 @@
-import { fetchTokens } from './fetchTokens.js';
-
-/**
- * Fetches an access token from the token endpoint. Uses fetchTokens under
- * the hood.
- *
- * @param code string|undefined An authorization code to get tokens.
- * @returns string|null
- */
-export async function fetchAccessToken(code?: string) {
- const tokens = await fetchTokens(code);
-
- if (tokens === null) {
- return null;
- }
-
- return tokens.accessToken;
-}
diff --git a/packages/experimental-app-router/src/server/auth/fetchTokens.ts b/packages/experimental-app-router/src/server/auth/fetchTokens.ts
deleted file mode 100644
index 10c6179fd..000000000
--- a/packages/experimental-app-router/src/server/auth/fetchTokens.ts
+++ /dev/null
@@ -1,61 +0,0 @@
-// eslint-disable-next-line import/extensions
-import { cookies } from 'next/headers.js';
-import { AuthorizeResponse } from '../routeHandler/tokenHandler.js';
-import { getUrl } from '../../lib/getUrl.js';
-import { getWpUrl } from '../../faust-core-utils.js';
-
-/**
- * Fetches tokens using either the refresh token cookie or the provided
- * authorization code.
- *
- * @param code string|undefined An authorization code to fetch tokens.
- * @returns string|null
- */
-export async function fetchTokens(code?: string) {
- // eslint-disable-next-line @typescript-eslint/await-thenable
- const cookieStore = await cookies();
- const cookieName = `${getWpUrl()}-rt`;
-
- if (!cookieStore.get(cookieName)?.value && !code) {
- // The user is not authenticated.
- return null;
- }
-
- let url = `${getUrl()}/api/faust/token`;
-
- if (code) {
- url += `?code=${encodeURIComponent(code)}`;
- }
-
- try {
- const response = await fetch(url, {
- method: 'GET',
- headers: {
- 'Content-Type': 'application/json',
- Cookie: cookieStore.toString(),
- },
- cache: 'no-store',
- });
-
- if (!response.ok) {
- if (response.status !== 401) {
- throw new Error('Invalid response from token endpoint');
- }
-
- return null;
- }
-
- if (!response.ok) {
- return null;
- }
-
- const data = (await response.json()) as AuthorizeResponse;
-
- return data;
- } catch (err) {
- // eslint-disable-next-line no-console
- console.log('There was an error fetching the access token', err);
-
- return null;
- }
-}
diff --git a/packages/experimental-app-router/src/server/routeHandler/index.ts b/packages/experimental-app-router/src/server/routeHandler/index.ts
deleted file mode 100644
index f504531d5..000000000
--- a/packages/experimental-app-router/src/server/routeHandler/index.ts
+++ /dev/null
@@ -1,26 +0,0 @@
-import { notFound } from 'next/navigation.js';
-import { tokenHandler } from './tokenHandler.js';
-
-export async function GetFn(req: Request) {
- const { pathname } = new URL(req.url);
-
- switch (pathname) {
- case '/api/faust/token/':
- case '/api/faust/token': {
- return tokenHandler(req);
- }
- default: {
- return notFound();
- }
- }
-}
-
-// eslint-disable-next-line @typescript-eslint/no-unused-vars
-export async function PostFn(req: Request) {
- // Intentionally left empty if/until we have POST endpoints.
-}
-
-export const faustRouteHandler = {
- GET: (req: Request) => GetFn(req),
- POST: (req: Request) => PostFn(req),
-};
diff --git a/packages/experimental-app-router/src/server/routeHandler/tokenHandler.ts b/packages/experimental-app-router/src/server/routeHandler/tokenHandler.ts
deleted file mode 100644
index c43ef421e..000000000
--- a/packages/experimental-app-router/src/server/routeHandler/tokenHandler.ts
+++ /dev/null
@@ -1,105 +0,0 @@
-import { cookies } from 'next/headers.js';
-import { NextResponse } from 'next/server.js';
-import { getWpUrl, getWpSecret } from '../../faust-core-utils.js';
-
-export type AuthorizeResponse = {
- accessToken: string;
- accessTokenExpiration: number;
- refreshToken: string;
- refreshTokenExpiration: number;
-};
-
-export async function tokenHandler(req: Request) {
- try {
- const secretKey = getWpSecret();
-
- if (!secretKey) {
- throw new Error('FAUST_SECRET_KEY must be set');
- }
-
- const { url } = req;
- const code = new URL(url).searchParams.get('code') ?? undefined;
- // eslint-disable-next-line @typescript-eslint/await-thenable
- const cookieStore = await cookies();
- const cookieName = `${getWpUrl()}-rt`;
- const refreshToken = cookieStore.get(cookieName)?.value;
-
- if (!refreshToken && !code) {
- return new Response(JSON.stringify({ error: 'Unauthorized' }), {
- status: 401,
- headers: {
- 'Content-Type': 'application/json',
- },
- });
- }
-
- const wpFaustAuthorizeEndpoint = `${getWpUrl()}/?rest_route=/faustwp/v1/authorize`;
-
- const response = await fetch(wpFaustAuthorizeEndpoint, {
- headers: {
- 'Content-Type': 'application/json',
- 'x-faustwp-secret': secretKey,
- },
- method: 'POST',
- body: JSON.stringify({
- code,
- refreshToken,
- }),
- });
-
- if (!response.ok) {
- /**
- * Remove the refresh token from the cookie in the case the token is:
- * - expired
- * - invalid
- * - revoked
- * - from a different WordPress instance when developing on localhost
- */
-
- /**
- * @TODO Delete the cookie
- */
- // cookieStore.delete(cookieName);
-
- /**
- * @TODO throw different errors based on response
- */
- return new Response(JSON.stringify({ error: 'Unauthorized' }), {
- status: 401,
- headers: {
- 'Content-Type': 'application/json',
- },
- });
- }
-
- const data = (await response.json()) as AuthorizeResponse;
-
- /**
- * @TODO Set the refresh token cookie with the new refresh token
- * and expiration.
- */
-
- const res = new NextResponse(JSON.stringify(data), {
- status: 200,
- });
-
- res.cookies.set(cookieName, data.refreshToken, {
- secure: true,
- httpOnly: true,
- path: '/',
- expires: new Date(data.refreshTokenExpiration * 1000),
- sameSite: 'lax',
- });
-
- return res;
- } catch (err) {
- console.error('Invalid response for authorize handler:', err);
-
- return new Response(JSON.stringify({ error: 'Internal Server Error' }), {
- status: 500,
- headers: {
- 'Content-Type': 'application/json',
- },
- });
- }
-}
diff --git a/packages/experimental-app-router/src/ssr.tsx b/packages/experimental-app-router/src/ssr.tsx
deleted file mode 100644
index 7a989ae98..000000000
--- a/packages/experimental-app-router/src/ssr.tsx
+++ /dev/null
@@ -1 +0,0 @@
-export { FaustSSRProvider as FaustProvider } from './client/ssr.js';
diff --git a/packages/experimental-app-router/tests/auth/fetchAccessToken.test.ts b/packages/experimental-app-router/tests/auth/fetchAccessToken.test.ts
deleted file mode 100644
index 3c0a0cd37..000000000
--- a/packages/experimental-app-router/tests/auth/fetchAccessToken.test.ts
+++ /dev/null
@@ -1,112 +0,0 @@
-import 'isomorphic-fetch';
-import * as fetchAccessToken from '../../src/server/auth/fetchAccessToken.js';
-import fetchMock from 'fetch-mock';
-import { cookies } from 'next/headers.js';
-
-// // https://github.com/aelbore/esbuild-jest/issues/26#issuecomment-893763840
-const nextHeaders = { cookies };
-
-jest.mock('next/headers.js');
-
-describe('fetchAccessToken', () => {
- const envBackup = process.env;
-
- beforeEach(() => {
- process.env = { ...envBackup };
- });
-
- afterEach(() => {
- jest.clearAllMocks();
- fetchMock.restore();
- });
-
- afterAll(() => {
- process.env = envBackup;
- });
-
- it('returns null if no code or refresh token is present', async () => {
- const cookiesSpy = jest.spyOn(nextHeaders, 'cookies');
-
- // No refresh token
- cookiesSpy.mockReturnValue({
- get(name: string) {
- return { name: undefined, value: undefined };
- },
- } as any);
-
- const token = await fetchAccessToken.fetchAccessToken();
-
- expect(token).toBe(null);
- });
-
- it('makes a request to the token endpoint with the code if given', async () => {
- process.env.NEXT_PUBLIC_URL = 'http://localhost:3000';
-
- const cookiesSpy = jest.spyOn(nextHeaders, 'cookies');
-
- // No refresh token
- cookiesSpy.mockReturnValue({
- get(name: string) {
- return { name: undefined, value: undefined };
- },
- } as any);
-
- const code = 'my code';
-
- // Ensures proper URL encoding
- fetchMock.get(`http://localhost:3000/api/faust/token?code=my%20code`, {
- status: 200,
- body: {
- accessToken: 'valid-token',
- },
- });
-
- const token = await fetchAccessToken.fetchAccessToken(code);
-
- expect(token).toBe('valid-token');
- });
-
- it('returns null if the token response was not ok', async () => {
- process.env.NEXT_PUBLIC_URL = 'http://localhost:3000';
-
- const cookiesSpy = jest.spyOn(nextHeaders, 'cookies');
-
- cookiesSpy.mockReturnValue({
- get(name: string) {
- return { name, value: '1234' };
- },
- } as any);
-
- fetchMock.get(`http://localhost:3000/api/faust/token`, {
- status: 401,
- });
-
- const token = await fetchAccessToken.fetchAccessToken();
-
- expect(token).toBeNull();
- });
-
- it('properly returns the access token', async () => {
- process.env.NEXT_PUBLIC_URL = 'http://localhost:3000';
-
- const cookiesSpy = jest.spyOn(nextHeaders, 'cookies');
-
- // No refresh token
- cookiesSpy.mockReturnValue({
- get(name: string) {
- return { name, value: 'valid-refresh-token' };
- },
- } as any);
-
- fetchMock.get(`http://localhost:3000/api/faust/token`, {
- status: 200,
- body: {
- accessToken: 'valid-token',
- },
- });
-
- const token = await fetchAccessToken.fetchAccessToken();
-
- expect(token).toBe('valid-token');
- });
-});
diff --git a/packages/experimental-app-router/tests/client.test.tsx.invalid b/packages/experimental-app-router/tests/client.test.tsx.invalid
deleted file mode 100644
index 09ef82971..000000000
--- a/packages/experimental-app-router/tests/client.test.tsx.invalid
+++ /dev/null
@@ -1,41 +0,0 @@
-/**
- * @jest-environment node
- */
-
-import * as apolloClient from '@apollo/client';
-import * as client from '../src/client';
-
-afterEach(() => {
- jest.clearAllMocks();
-});
-
-describe('getClient', () => {
- const httpLinkSpy = jest.spyOn(apolloClient, 'createHttpLink');
-
- const envBackup = process.env;
-
- beforeEach(() => {
- process.env = { ...envBackup };
- // @ts-ignore
- });
-
- afterEach(() => {
- jest.clearAllMocks();
- });
-
- afterAll(() => {
- process.env = envBackup;
- });
-
- it('calls the appropriate Apollo link with WordPress GraphQL endpoint', async () => {
- process.env.NEXT_PUBLIC_WORDPRESS_URL = 'http://headless.local';
-
- client.getClient();
-
- expect(httpLinkSpy).toHaveBeenCalledTimes(1);
-
- expect(httpLinkSpy).toHaveBeenCalledWith({
- uri: 'http://headless.local/index.php?graphql',
- });
- });
-});
diff --git a/packages/experimental-app-router/tests/dummy.test.ts b/packages/experimental-app-router/tests/dummy.test.ts
deleted file mode 100644
index 8ca53d887..000000000
--- a/packages/experimental-app-router/tests/dummy.test.ts
+++ /dev/null
@@ -1,3 +0,0 @@
-test('dummy test', () => {
- expect(true).toBe(true);
-});
diff --git a/packages/experimental-app-router/tests/server-actions/onLogin.test.ts b/packages/experimental-app-router/tests/server-actions/onLogin.test.ts
deleted file mode 100644
index 56f27509a..000000000
--- a/packages/experimental-app-router/tests/server-actions/onLogin.test.ts
+++ /dev/null
@@ -1,152 +0,0 @@
-import 'isomorphic-fetch';
-import fetchMock from 'fetch-mock';
-import { cookies } from 'next/headers.js';
-import {
- onLogin,
- validationError,
-} from '../../src/server-actions/loginAction.js';
-import * as fetchTokens from '../../src/server/auth/fetchTokens.js';
-import * as setRefreshToken from '../../src/server-actions/utils/setRefreshToken.js';
-import { getGraphqlEndpoint } from '../../src/faust-core-utils.js';
-
-// // https://github.com/aelbore/esbuild-jest/issues/26#issuecomment-893763840
-const nextHeaders = { cookies };
-
-jest.mock('next/headers.js');
-
-describe('onLogout', () => {
- const envBackup = process.env;
-
- beforeEach(() => {
- process.env = { ...envBackup };
- });
-
- afterEach(() => {
- jest.clearAllMocks();
- fetchMock.restore();
- });
-
- afterAll(() => {
- process.env = envBackup;
- });
-
- it('returns validation errors', async () => {
- const nullFormData = {
- get(name: string) {
- if (name === 'usernameEmail') return null;
- if (name === 'password') return null;
- },
- };
-
- const noPasswordFormData = {
- get(name: string) {
- if (name === 'usernameEmail') return 'Admin';
- if (name === 'password') return null;
- },
- };
-
- const noUsernameFormData = {
- get(name: string) {
- if (name === 'usernameEmail') return null;
- if (name === 'password') return 'password';
- },
- };
-
- const invalidTypeFormData = {
- get(name: string) {
- if (name === 'usernameEmail') return 123;
- if (name === 'password') return 123;
- },
- };
-
- expect(await onLogin(nullFormData as any as FormData)).toStrictEqual(
- validationError,
- );
- expect(await onLogin(noPasswordFormData as any as FormData)).toStrictEqual(
- validationError,
- );
- expect(await onLogin(noUsernameFormData as any as FormData)).toStrictEqual(
- validationError,
- );
- expect(await onLogin(invalidTypeFormData as any as FormData)).toStrictEqual(
- validationError,
- );
- });
-
- it('returns the error received from graphql query if it exists', async () => {
- const validFormData = {
- get(name: string) {
- if (name === 'usernameEmail') return 'admin';
- if (name === 'password') return 'admin';
- },
- };
-
- process.env.NEXT_PUBLIC_WORDPRESS_URL = 'http://headless.local';
-
- fetchMock.post(`${getGraphqlEndpoint()}`, {
- status: 200,
- body: JSON.stringify({
- data: {
- generateAuthorizationCode: {
- error: 'some error',
- },
- },
- }),
- });
-
- const res = await onLogin(validFormData as any as FormData);
-
- expect(res).toStrictEqual({ error: 'some error' });
- });
-
- it('properly logs in a user', async () => {
- const tokens = {
- accessToken: 'at',
- accessTokenExpiration: 1234,
- refreshToken: 'rt',
- refreshTokenExpiration: 1234,
- };
-
- const fetchTokensSpy = jest
- .spyOn(fetchTokens, 'fetchTokens')
- .mockImplementation(async () => tokens);
-
- const setRefreshTokenSpy = jest
- .spyOn(setRefreshToken, 'setRefreshToken')
- .mockImplementation();
-
- const validFormData = {
- get(name: string) {
- if (name === 'usernameEmail') return 'admin';
- if (name === 'password') return 'admin';
- },
- };
-
- process.env.NEXT_PUBLIC_WORDPRESS_URL = 'http://headless.local';
-
- let authCode = '12345';
-
- fetchMock.post(`${getGraphqlEndpoint()}`, {
- status: 200,
- body: JSON.stringify({
- data: {
- generateAuthorizationCode: {
- code: authCode,
- error: null,
- },
- },
- }),
- });
-
- const res = await onLogin(validFormData as any as FormData);
-
- expect(res).toStrictEqual({ message: 'User was successfully logged in' });
-
- expect(fetchTokensSpy).toHaveBeenCalledWith(authCode);
-
- expect(setRefreshTokenSpy).toHaveBeenCalledWith(
- tokens.refreshToken,
- tokens.refreshTokenExpiration * 1000,
- );
- });
-});
diff --git a/packages/experimental-app-router/tests/server-actions/onLogout.test.ts b/packages/experimental-app-router/tests/server-actions/onLogout.test.ts
deleted file mode 100644
index edf23a5e5..000000000
--- a/packages/experimental-app-router/tests/server-actions/onLogout.test.ts
+++ /dev/null
@@ -1,63 +0,0 @@
-import 'isomorphic-fetch';
-import { onLogout } from '../../src/server-actions/logoutAction.js';
-import fetchMock from 'fetch-mock';
-import { cookies } from 'next/headers.js';
-
-// // https://github.com/aelbore/esbuild-jest/issues/26#issuecomment-893763840
-const nextHeaders = { cookies };
-
-jest.mock('next/headers.js');
-
-describe('onLogout', () => {
- const envBackup = process.env;
-
- beforeEach(() => {
- process.env = { ...envBackup };
- });
-
- afterEach(() => {
- jest.clearAllMocks();
- fetchMock.restore();
- });
-
- afterAll(() => {
- process.env = envBackup;
- });
-
- it('return true if cookie exists and gets deleted', async () => {
- const cookiesSpy = jest.spyOn(nextHeaders, 'cookies');
- const deleteSpy = jest.fn();
-
- // No refresh token
- cookiesSpy.mockReturnValue({
- get() {
- return {
- value: 'values',
- name: 'cookieName',
- };
- },
- delete: deleteSpy,
- } as any);
-
- const loggedOut = await onLogout();
-
- expect(deleteSpy).toHaveBeenCalled();
- expect(loggedOut).toBeTruthy();
- });
-
- it("return false if cookie doesn't exist", async () => {
- const cookiesSpy = jest.spyOn(nextHeaders, 'cookies');
-
- // No refresh token
- cookiesSpy.mockReturnValue({
- get() {
- return undefined;
- },
- delete() {},
- } as any);
-
- const loggedOut = await onLogout();
-
- expect(loggedOut).toBeFalsy();
- });
-});
diff --git a/packages/experimental-app-router/tests/server/routeHandler/index.test.ts b/packages/experimental-app-router/tests/server/routeHandler/index.test.ts
deleted file mode 100644
index 88f07f739..000000000
--- a/packages/experimental-app-router/tests/server/routeHandler/index.test.ts
+++ /dev/null
@@ -1,36 +0,0 @@
-import 'isomorphic-fetch';
-import { NextRequest } from 'next/server';
-import * as faustRouteHandler from '../../../src/server/routeHandler/index.js';
-import * as tokenHandler from '../../../src/server/routeHandler/tokenHandler.js';
-import * as nextNavigation from 'next/navigation.js';
-jest.mock('next/navigation.js');
-
-describe('faustRouteHandler', () => {
- it('Returns 404 if there are no matching endpoints', async () => {
- const notFoundSpy = jest
- .spyOn(nextNavigation, 'notFound')
- .mockImplementation();
-
- const request = new NextRequest(
- new Request('http://localhost:3000/api/faust/testing'),
- );
-
- const response = await faustRouteHandler.faustRouteHandler.GET(request);
-
- expect(notFoundSpy).toHaveBeenCalledTimes(1);
- });
-
- it('returns the token endpoint given the correct request url', async () => {
- const tokenHandlerSpy = jest
- .spyOn(tokenHandler, 'tokenHandler')
- .mockImplementation();
-
- const request = new NextRequest(
- new Request('http://localhost:3000/api/faust/token'),
- );
-
- const response = await faustRouteHandler.faustRouteHandler.GET(request);
-
- expect(tokenHandlerSpy).toHaveBeenCalledTimes(1);
- });
-});
diff --git a/packages/experimental-app-router/tests/server/routeHandler/tokenHandler.test.ts b/packages/experimental-app-router/tests/server/routeHandler/tokenHandler.test.ts
deleted file mode 100644
index 0896c4a42..000000000
--- a/packages/experimental-app-router/tests/server/routeHandler/tokenHandler.test.ts
+++ /dev/null
@@ -1,134 +0,0 @@
-import 'isomorphic-fetch';
-import * as tokenHandler from '../../../src/server/routeHandler/tokenHandler';
-jest.mock('next/headers.js');
-import { cookies } from 'next/headers.js';
-import fetchMock from 'fetch-mock';
-import * as server from 'next/server';
-
-// // https://github.com/aelbore/esbuild-jest/issues/26#issuecomment-893763840
-const nextHeaders = { cookies };
-
-describe('tokenHandler', () => {
- const envBackup = process.env;
-
- beforeEach(() => {
- process.env = { ...envBackup };
- });
-
- afterEach(() => {
- jest.clearAllMocks();
- fetchMock.restore();
- });
-
- afterAll(() => {
- process.env = envBackup;
- });
-
- it('throws a 500 error if the secret key is not set', async () => {
- const req = new Request('http://localhost:3000/api/faust/token');
-
- const response = await tokenHandler.tokenHandler(req, server);
-
- expect(response.status).toBe(500);
- expect(await response.json()).toStrictEqual({
- error: 'Internal Server Error',
- });
- });
-
- it('throws a 401 when the refresh token or code is not present', async () => {
- const cookiesSpy = jest.spyOn(nextHeaders, 'cookies');
-
- // No refresh token
- cookiesSpy.mockReturnValue({
- get() {
- return {};
- },
- } as any);
-
- process.env.FAUST_SECRET_KEY = 'xxxx';
-
- const req = new Request('http://localhost:3000/api/faust/token');
-
- const response = await tokenHandler.tokenHandler(req, server);
-
- expect(response.status).toBe(401);
- expect(await response.json()).toStrictEqual({
- error: 'Unauthorized',
- });
- });
-
- it('returns 401 if wp endpoint response was not ok', async () => {
- process.env.NEXT_PUBLIC_WORDPRESS_URL = 'http://headless.local';
- process.env.FAUST_SECRET_KEY = 'xxxx';
-
- const cookiesSpy = jest.spyOn(nextHeaders, 'cookies');
-
- // No refresh token
- cookiesSpy.mockReturnValue({
- get() {
- return { value: 'my-invalid-rt' };
- },
- } as any);
-
- fetchMock.post('http://headless.local/?rest_route=/faustwp/v1/authorize', {
- status: 401,
- });
-
- const req = new server.NextRequest(
- new Request('http://localhost:3000/api/faust/token'),
- );
-
- const response = await tokenHandler.tokenHandler(req, server);
-
- expect(response.status).toBe(401);
- expect(await response.json()).toStrictEqual({ error: 'Unauthorized' });
- });
-
- it('successfully returns tokens using refresh token', async () => {
- process.env.NEXT_PUBLIC_WORDPRESS_URL = 'http://headless.local';
- process.env.FAUST_SECRET_KEY = 'xxxx';
-
- const validResponse: tokenHandler.AuthorizeResponse = {
- accessToken: 'at',
- accessTokenExpiration: 1234,
- refreshToken: 'rt',
- refreshTokenExpiration: 1234,
- };
-
- const cookiesSpy = jest.spyOn(nextHeaders, 'cookies');
-
- // No refresh token
- cookiesSpy.mockReturnValue({
- get() {
- return { value: 'my-valid-rt' };
- },
- } as any);
-
- fetchMock.post(
- {
- url: 'http://headless.local/?rest_route=/faustwp/v1/authorize',
- headers: {
- 'Content-Type': 'application/json',
- 'x-faustwp-secret': 'xxxx',
- },
- body: {
- refreshToken: 'my-valid-rt',
- code: 'my-code',
- },
- },
- {
- status: 200,
- body: JSON.stringify(validResponse),
- },
- );
-
- const req = new server.NextRequest(
- new Request('http://localhost:3000/api/faust/token?code=my-code'),
- );
-
- const response = await tokenHandler.tokenHandler(req, server);
-
- expect(response.status).toBe(200);
- expect(await response.json()).toStrictEqual(validResponse);
- });
-});
diff --git a/packages/experimental-app-router/tsconfig.json b/packages/experimental-app-router/tsconfig.json
deleted file mode 100644
index 1a6420ae9..000000000
--- a/packages/experimental-app-router/tsconfig.json
+++ /dev/null
@@ -1,14 +0,0 @@
-{
- "extends": "../../tsconfig.json",
- "compilerOptions": {
- "module": "NodeNext",
- "moduleResolution": "NodeNext",
- "outDir": "dist",
- "target": "es2017",
- "rootDir": "src",
- "jsx": "react",
- "declaration": true
- },
- "exclude": ["node_modules", "dist"],
- "include": ["src"]
-}
diff --git a/packages/faustwp-cli/src/telemetry/marshallTelemetryData.ts b/packages/faustwp-cli/src/telemetry/marshallTelemetryData.ts
index 07b6a1f5a..150380413 100644
--- a/packages/faustwp-cli/src/telemetry/marshallTelemetryData.ts
+++ b/packages/faustwp-cli/src/telemetry/marshallTelemetryData.ts
@@ -37,12 +37,6 @@ export const marshallTelemetryData = (command: string) => {
| string
| undefined,
),
- node_faustwp_experimental_app_router_version: sanitizePackageJsonVersion(
- packageJson?.dependencies?.['@faustwp/experimental-app-router'] as
- | string
- | undefined,
- ),
-
node_apollo_client_version: sanitizePackageJsonVersion(
packageJson?.dependencies?.['@apollo/client'] as string | undefined,
),