diff --git a/.github/workflows/docs-pr.yaml b/.github/workflows/docs-pr.yaml
deleted file mode 100644
index 45cd4c2f065e6..0000000000000
--- a/.github/workflows/docs-pr.yaml
+++ /dev/null
@@ -1,57 +0,0 @@
-name: Validate MDX Links
-
-on:
- pull_request:
- paths:
- - 'docs-v2/pages/**/*.mdx'
- push:
- branches:
- - main
- paths:
- - 'docs-v2/pages/**/*.mdx'
-
-jobs:
- validate-links:
- runs-on: ubuntu-latest
- defaults:
- run:
- working-directory: docs-v2
-
- steps:
- - name: Checkout Code
- uses: actions/checkout@v4.1.7
- with:
- # Fetch full history for checking diffs
- fetch-depth: 0
-
- - uses: pnpm/action-setup@v4.0.0
- with:
- version: 9.14.2
-
- - name: Get pnpm store directory
- id: pnpm-cache
- run: |
- echo "pnpm_cache_dir=$(pnpm store path)" >> $GITHUB_OUTPUT
-
- - uses: actions/cache@v4
- name: Setup pnpm cache
- with:
- path: ${{ steps.pnpm-cache.outputs.pnpm_cache_dir }}
- key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }}
- restore-keys: |
- ${{ runner.os }}-pnpm-store-
-
- - name: Setup Node Env
- uses: actions/setup-node@v4.1.0
- with:
- node-version: 18
- registry-url: https://registry.npmjs.org/
- cache: 'pnpm'
-
- - name: Install dependencies
- run: pnpm install -r
-
- - name: Run link validator
- run: node validate-mdx-links.mjs
- env:
- DEBUG: ${{ vars.DEBUG }}
\ No newline at end of file
diff --git a/docs-v2/.env.example b/docs-v2/.env.example
deleted file mode 100644
index 03daff629db0d..0000000000000
--- a/docs-v2/.env.example
+++ /dev/null
@@ -1,13 +0,0 @@
-# Connect demo API configuration
-PIPEDREAM_CLIENT_ID=your_client_id
-PIPEDREAM_CLIENT_SECRET=your_client_secret
-PIPEDREAM_PROJECT_ID=your_project_id
-PIPEDREAM_PROJECT_ENVIRONMENT=development
-
-# Additional redirect URIs for the Connect demo (optional)
-PIPEDREAM_CONNECT_TOKEN_WEBHOOK_URI=
-PIPEDREAM_CONNECT_SUCCESS_REDIRECT_URI=
-PIPEDREAM_CONNECT_ERROR_REDIRECT_URI=
-
-# Comma-separated list of additional allowed origins (optional)
-# ALLOWED_ORIGINS=https://your-custom-domain.com,https://another-domain.com
\ No newline at end of file
diff --git a/docs-v2/.gitignore b/docs-v2/.gitignore
deleted file mode 100644
index 7e3ff65bac0df..0000000000000
--- a/docs-v2/.gitignore
+++ /dev/null
@@ -1,38 +0,0 @@
-# dependencies
-/node_modules
-/.pnp
-.pnp.js
-.yarn/install-state.gz
-
-# testing
-/coverage
-
-# next.js
-.next/
-/out/
-
-# production
-/build
-
-# misc
-.DS_Store
-*.pem
-
-# debug
-npm-debug.log*
-yarn-debug.log*
-yarn-error.log*
-
-# local env files
-.env*.local
-
-# vercel
-.vercel
-
-# typescript
-*.tsbuildinfo
-next-env.d.ts
-
-# sitemap
-/public/sitemap*.xml
-/public/robots.txt
diff --git a/docs-v2/.npmrc b/docs-v2/.npmrc
deleted file mode 100644
index 9dc7c37f87031..0000000000000
--- a/docs-v2/.npmrc
+++ /dev/null
@@ -1,8 +0,0 @@
-auto-install-peers=true
-enable-pre-post-scripts=true
-save-workspace-protocol=false
-link-workspace-packages=false
-shamefully-hoist=true
-node-linker=hoisted
-shared-workspace-lockfile=true
-engine-strict=false
\ No newline at end of file
diff --git a/docs-v2/.tool-versions b/docs-v2/.tool-versions
deleted file mode 100644
index 264e90ee943ed..0000000000000
--- a/docs-v2/.tool-versions
+++ /dev/null
@@ -1,2 +0,0 @@
-nodejs 20.13.1
-pnpm 9.14.2
diff --git a/docs-v2/LICENSE b/docs-v2/LICENSE
deleted file mode 100644
index 490da1feb81b0..0000000000000
--- a/docs-v2/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-MIT License
-
-Copyright (c) 2022 Shu Ding
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
diff --git a/docs-v2/README.md b/docs-v2/README.md
index 446ce1d4d15af..7b108b42260a7 100644
--- a/docs-v2/README.md
+++ b/docs-v2/README.md
@@ -1,76 +1,5 @@
# Pipedream docs
-> [!WARNING]
-> **⚠️ THIS PROJECT IS DEPRECATED ⚠️**
->
-> This docs-v2 directory is no longer maintained. Do not make changes to files in this directory as they will not be deployed or used.
->
-> The documentation has been moved to a new location. Please contact the team for the current documentation repository.
-
-## Quickstart
-
-[Install `asdf`](https://asdf-vm.com/guide/getting-started.html) if you haven't already.
-
-```bash
-asdf install
-pnpm dev
-```
-
-Open [http://localhost:3000/docs](http://localhost:3000/docs).
-
-We use [Nextra](https://nextra.site/docs), [a Next.js app](https://nextjs.org/docs). Nextra builds docs from the `pages/` directory. All docs are [MDX](https://mdxjs.com/) files (Markdown with React components / JSX).
-
-Run `yarn build` before pushing to your branch to confirm everything builds OK.
-
-## VuePress -> Nextra
-
-We're moving from VuePress to Nextra. Here's what's the same and what's different:
-
-- New docs are here, in the `docs-v2/` directory.
-- All docs are still Markdown. Now MDX files instead of just Markdown, so extensions have been renamed to `.mdx`.
-- Keep images in `public/images/foo.png`, reference with ``
-- Leaf nodes in VuePress were at files like `/docs/workflows/workspaces/sso/google/README.md`. Nextra allows leaf nodes to be non-index files like `/docs/workflows/workspaces/sso/google.mdx`, so there's no need for the final directory, which simplifies things.
-- VuePress used Vue, Nextra uses React. All of the custom components used in MDX files are either [built-in Nextra components](https://nextra.site/docs/guide/built-ins) or Pipedream-specific components in `components/`, ported from Vue.
-- Learn the [built-in Nextra components](https://nextra.site/docs/guide/built-ins). All the `::: tip`, `::: warning`, or other special VuePress components have an equivalent Nextra component.
-
-## Nextra
-
-We use the [Nextra Docs Theme](https://nextra.site/docs/docs-theme/start), which adds functionality on the base Nextra app. Most of the features we use are well-documented there.
-
-The [Nextra docs](https://nextra.site/docs) and [GitHub](https://github.com/shuding/nextra) are great. Anything not specific to Nextra is likely a feature of [Next.js](https://nextjs.org/docs) or [MDX](https://mdxjs.com/), also well-maintained and modern projects as of 2024.
-
-Check `theme.config.tsx` for the latest config.
-
-### Useful Nextra components
-
-We use almost all of [the Nextra built-in components](https://nextra.site/docs/guide/built-ins) in docs.
-
-### Adding new pages / routes
-
-Nextra and Next.js tie routing closer to the directory structure of the app:
-
-```
-pages
- index.mdx # /docs
- data-stores.mdx # /docs/data-stores
- http.mdx # /docs/http
- workspaces/
- index.mdx # /docs/workspaces
- sso/
- index.mdx # /docs/workflows/workspaces/sso
- google.mdx # /docs/workflows/workspaces/sso/google
-```
-
-The `_meta.tsx` files in each directory defines a mapping between the labels in the sidebar and the files in that directory. If you want to add an item to the sidebar, you'll probably want to edit the `_meta.tsx` file. [See the Nextra docs](https://nextra.site/docs/docs-theme/page-configuration) for more info.
-
-## Custom components
-
-Use (and create!) custom components in `components/`. You'll see a lot of references to these components in the MDX.
-
-## Redirects
-
-If you need to add any custom redirects, e.g. when you move pages to a different directory, add then to the `vercel.json` file in this directory.
-
-## Adding new versions
-
-Add a new version of docs by creating a new feature branch in the format of `docs-v{number}-pathing`.
+> [!WARNING] > **⚠️ THIS PROJECT IS DEPRECATED ⚠️**
+>
+> Pipedream public docs have moved to a new repo. Please contact the team for the current documentation repository.
diff --git a/docs-v2/components/AccountConnectionDemo.jsx b/docs-v2/components/AccountConnectionDemo.jsx
deleted file mode 100644
index 4f81f1807cf6a..0000000000000
--- a/docs-v2/components/AccountConnectionDemo.jsx
+++ /dev/null
@@ -1,89 +0,0 @@
-"use client";
-
-import { useGlobalConnect } from "./GlobalConnectProvider";
-import CodeBlock from "./CodeBlock";
-import { styles } from "../utils/componentStyles";
-
-export default function AccountConnectionDemo() {
- const {
- appSlug,
- setAppSlug,
- tokenData,
- getClientCodeSnippet,
- connectAccount,
- connectedAccount,
- error,
- } = useGlobalConnect();
-
- return (
-
-
- Connect an account from your frontend
-
-
-
-
- App to connect:
- setAppSlug(e.target.value)}
- className={styles.select}
- >
- Google Sheets
- GitHub
- Notion
- Gmail
- OpenAI
-
-
-
-
-
-
-
-
- {error && (
-
- )}
-
- {connectedAccount && (
-
-
Successfully connected your {appSlug} account!
-
- {connectedAccount.loading
- ? (
-
Loading account details...
- )
- : (
- <>
- {connectedAccount.name
- ? (
-
Account info: {connectedAccount.name}
- )
- : null}
-
Account ID: {connectedAccount.id}
- >
- )}
-
-
- )}
-
-
- );
-}
diff --git a/docs-v2/components/AppSearchDemo.jsx b/docs-v2/components/AppSearchDemo.jsx
deleted file mode 100644
index 4f5358a6a5d67..0000000000000
--- a/docs-v2/components/AppSearchDemo.jsx
+++ /dev/null
@@ -1,277 +0,0 @@
-"use client";
-
-import {
- useState, useEffect, useCallback,
-} from "react";
-import { styles } from "../utils/componentStyles";
-import { generateRequestToken } from "./api";
-
-// Debounce hook
-function useDebounce(value, delay) {
- const [
- debouncedValue,
- setDebouncedValue,
- ] = useState(value);
-
- useEffect(() => {
- const handler = setTimeout(() => {
- setDebouncedValue(value);
- }, delay);
-
- return () => {
- clearTimeout(handler);
- };
- }, [
- value,
- delay,
- ]);
-
- return debouncedValue;
-}
-
-// Custom scrollbar styles
-const scrollbarStyles = `
- .custom-scrollbar::-webkit-scrollbar {
- width: 6px;
- }
- .custom-scrollbar::-webkit-scrollbar-track {
- background: transparent;
- }
- .custom-scrollbar::-webkit-scrollbar-thumb {
- background-color: rgba(156, 163, 175, 0.5);
- border-radius: 3px;
- }
- .custom-scrollbar::-webkit-scrollbar-thumb:hover {
- background-color: rgba(156, 163, 175, 0.8);
- }
- .dark .custom-scrollbar::-webkit-scrollbar-thumb {
- background-color: rgba(75, 85, 99, 0.5);
- }
- .dark .custom-scrollbar::-webkit-scrollbar-thumb:hover {
- background-color: rgba(75, 85, 99, 0.8);
- }
-`;
-
-export default function AppSearchDemo() {
- const [
- searchQuery,
- setSearchQuery,
- ] = useState("");
- const [
- apps,
- setApps,
- ] = useState([]);
- const [
- isLoading,
- setIsLoading,
- ] = useState(false);
- const [
- error,
- setError,
- ] = useState("");
- const [
- copiedSlug,
- setCopiedSlug,
- ] = useState("");
-
- const debouncedSearchQuery = useDebounce(searchQuery, 300);
-
- const searchApps = useCallback(async (query) => {
- if (!query || query.length < 2) {
- setApps([]);
- return;
- }
-
- setIsLoading(true);
- setError("");
-
- try {
- const requestToken = generateRequestToken();
- // Convert spaces to underscores for name_slug searching
- const searchQuery = query.replace(/\s+/g, "_");
- const response = await fetch(
- `/docs/api-demo-connect/apps?q=${encodeURIComponent(searchQuery)}`,
- {
- headers: {
- "Content-Type": "application/json",
- "X-Request-Token": requestToken,
- },
- },
- );
-
- if (!response.ok) {
- throw new Error("Failed to search apps");
- }
-
- const data = await response.json();
- console.log("App icons:", data.apps.map((app) => ({
- name: app.name,
- icon: app.icon,
- })));
- // Sort apps by featured_weight in descending order
- const sortedApps = [...data.apps].sort((a, b) => (b.featured_weight || 0) - (a.featured_weight || 0));
- setApps(sortedApps);
- } catch (err) {
- console.error("Error searching apps:", err);
- setError("Failed to search apps. Please try again.");
- setApps([]);
- } finally {
- setIsLoading(false);
- }
- }, []);
-
- useEffect(() => {
- searchApps(debouncedSearchQuery);
- }, [
- debouncedSearchQuery,
- searchApps,
- ]);
-
- async function copyToClipboard(nameSlug) {
- try {
- await navigator.clipboard.writeText(nameSlug);
- setCopiedSlug(nameSlug);
- setTimeout(() => setCopiedSlug(""), 2000);
- } catch (err) {
- console.error("Failed to copy:", err);
- }
- }
-
- return (
-
-
-
Search for an app
-
-
setSearchQuery(e.target.value)}
- placeholder="Search for an app (e.g., slack, notion, gmail)"
- className="w-full px-4 py-2 border border-gray-300 dark:border-gray-600 rounded-md bg-white dark:bg-gray-800 text-gray-800 dark:text-gray-200 placeholder-gray-400 dark:placeholder-gray-500"
- />
-
- {searchQuery.length > 0 && searchQuery.length < 2 && (
-
- Type at least 2 characters to search
-
- )}
-
- {isLoading && (
-
- )}
-
- {error && (
-
- )}
-
- {apps.length > 0 && !isLoading && (
-
-
-
- {apps.map((app) => (
-
-
- {app.icon && (
-
- )}
-
-
-
- {app.name}
-
-
-
- {app.name_slug}
-
-
copyToClipboard(app.name_slug)}
- className="p-0.5 hover:bg-gray-200 dark:hover:bg-gray-700 rounded transition-colors ml-1"
- title={copiedSlug === app.name_slug
- ? "Copied!"
- : "Copy app name slug"}
- >
- {copiedSlug === app.name_slug
- ? (
-
-
-
- )
- : (
-
-
-
- )}
-
-
-
-
- {app.description}
-
- {app.categories.length > 0 && (
-
- {app.categories.map((category) => (
-
- {category}
-
- ))}
-
- )}
-
-
-
- ))}
-
- {apps.length > 5 && (
-
- )}
-
- {apps.length > 5 && (
-
- Scroll to see more
-
- )}
-
- )}
-
- {debouncedSearchQuery.length >= 2 &&
- apps.length === 0 &&
- !isLoading &&
- !error && (
-
-
- No apps found for "{debouncedSearchQuery}"
-
-
- )}
-
-
-
-
- );
-}
diff --git a/docs-v2/components/ArcadeEmbed.tsx b/docs-v2/components/ArcadeEmbed.tsx
deleted file mode 100644
index dd303a2ba0d21..0000000000000
--- a/docs-v2/components/ArcadeEmbed.tsx
+++ /dev/null
@@ -1,28 +0,0 @@
-import React from "react";
-
-interface ArcadeEmbedProps {
- src: string;
- title?: string;
-}
-
-const ArcadeEmbed: React.FC = ({
- src, title,
-}) => {
- return (
-
-
-
- );
-};
-
-export default ArcadeEmbed;
diff --git a/docs-v2/components/CR.tsx b/docs-v2/components/CR.tsx
deleted file mode 100644
index 350e8389b3255..0000000000000
--- a/docs-v2/components/CR.tsx
+++ /dev/null
@@ -1,13 +0,0 @@
-import Script from "next/script";
-
-export default function RB2B() {
- return (
-
- );
-}
diff --git a/docs-v2/components/Callout.tsx b/docs-v2/components/Callout.tsx
deleted file mode 100644
index d317891f4ff00..0000000000000
--- a/docs-v2/components/Callout.tsx
+++ /dev/null
@@ -1,22 +0,0 @@
-import React from "react";
-import { Callout } from "nextra/components";
-
-interface CalloutProps {
- type?: "default" | "info" | "warning" | "error";
- emoji?: string | React.ReactNode;
- children: React.ReactNode;
-}
-
-const PipedreamCallout: React.FC = ({
- type,
- emoji,
- children,
-}) => {
- return (
-
- {children}
-
- );
-};
-
-export default PipedreamCallout;
diff --git a/docs-v2/components/CodeBlock.js b/docs-v2/components/CodeBlock.js
deleted file mode 100644
index 6c9dc9bc55e9c..0000000000000
--- a/docs-v2/components/CodeBlock.js
+++ /dev/null
@@ -1,109 +0,0 @@
-"use client";
-
-import {
- useState, useEffect,
-} from "react";
-// We don't need the default Prism CSS as we're using our custom CSS
-// import "prismjs/themes/prism.css";
-
-// We'll dynamically import Prism on the client side only
-let Prism;
-
-export default function CodeBlock({
- code, language = "javascript", className = "",
-}) {
- const [
- copied,
- setCopied,
- ] = useState(false);
- const [
- highlightedCode,
- setHighlightedCode,
- ] = useState(code);
- const [
- isClient,
- setIsClient,
- ] = useState(false);
-
- // Load Prism and highlight code on client-side only
- useEffect(() => {
- setIsClient(true);
-
- const loadPrism = async () => {
- Prism = (await import("prismjs")).default;
-
- // Use manual mode so we can control highlighting
- Prism.manual = true;
-
- // Import language definitions dynamically
- if (!Prism.languages.javascript) {
- await import("prismjs/components/prism-javascript");
- }
-
- if (!Prism.languages.json && language === "json") {
- await import("prismjs/components/prism-json");
- }
-
- // Apply syntax highlighting
- try {
- if (Prism.languages[language]) {
- const highlighted = Prism.highlight(code, Prism.languages[language], language);
- setHighlightedCode(highlighted);
- }
- } catch (error) {
- console.error("Prism highlighting error:", error);
- }
- };
-
- loadPrism();
- }, [
- code,
- language,
- ]);
-
- const copyToClipboard = () => {
- navigator.clipboard.writeText(code);
- setCopied(true);
- setTimeout(() => setCopied(false), 2000);
- };
-
- return (
-
-
-
-
- {copied
- ? (
-
-
-
- )
- : (
-
-
-
- )}
-
-
- {isClient
- ? (
-
- )
- : (
- {code}
- )}
-
-
- );
-}
diff --git a/docs-v2/components/ConnectCodeSnippets.js b/docs-v2/components/ConnectCodeSnippets.js
deleted file mode 100644
index 335aea0a0c128..0000000000000
--- a/docs-v2/components/ConnectCodeSnippets.js
+++ /dev/null
@@ -1,65 +0,0 @@
-/**
- * This file contains all the code snippets used in the Connect SDK demo.
- * Centralizing them here helps to maintain consistency and makes updates easier.
- */
-
-/**
- * Server-side code for generating a Connect token
- * @param {string} externalUserId - The user's external ID
- * @returns {string} The server code snippet
- */
-export function getServerCodeSnippet(externalUserId) {
- return `import { createBackendClient } from "@pipedream/sdk/server";
-
-// This code runs on your server
-const pd = createBackendClient({
- environment: "production",
- credentials: {
- clientId: process.env.PIPEDREAM_CLIENT_ID,
- clientSecret: process.env.PIPEDREAM_CLIENT_SECRET,
- },
- projectId: process.env.PIPEDREAM_PROJECT_ID
-});
-
-// Create a token for a specific user
-const { token, expires_at, connect_link_url } = await pd.createConnectToken({
- external_user_id: "${externalUserId || "YOUR_USER_ID"}",
-});`;
-}
-
-/**
- * Client-side code for connecting an account
- * @param {string} appSlug - The app to connect to (slack, github, etc)
- * @param {object} tokenData - The token data from the server
- * @returns {string} The client code snippet
- */
-export function getClientCodeSnippet(appSlug, tokenData) {
- return `import { createFrontendClient } from "@pipedream/sdk/browser"
-
-// This code runs in the frontend using the token from your server
-export default function Home() {
- function connectAccount() {
- const pd = createFrontendClient()
- pd.connectAccount({
- app: "${appSlug}",
- token: "${tokenData?.token
- ? tokenData.token
- : "{connect_token}"}",
- onSuccess: (account) => {
- // Handle successful connection
- console.log(\`Account successfully connected: \${account.id}\`)
- },
- onError: (err) => {
- // Handle connection error
- console.error(\`Connection error: \${err.message}\`)
- }
- })
- }
-
- return (
-
- Connect Account
-
- )
-}`;
-}
diff --git a/docs-v2/components/ConnectLinkDemo.jsx b/docs-v2/components/ConnectLinkDemo.jsx
deleted file mode 100644
index 6580434904fe4..0000000000000
--- a/docs-v2/components/ConnectLinkDemo.jsx
+++ /dev/null
@@ -1,120 +0,0 @@
-"use client";
-
-import {
- useState,
- useEffect,
-} from "react";
-import { useGlobalConnect } from "./GlobalConnectProvider";
-import { styles } from "../utils/componentStyles";
-
-export default function ConnectLinkDemo() {
- const {
- tokenData,
- appSlug,
- setAppSlug,
- } = useGlobalConnect();
- const [
- connectLinkUrl,
- setConnectLinkUrl,
- ] = useState("");
-
- useEffect(() => {
- if (tokenData?.connect_link_url) {
- // Add app parameter to the URL if it doesn't already exist
- const baseUrl = tokenData.connect_link_url;
- const url = new URL(baseUrl);
-
- // Update or add the app parameter
- url.searchParams.set("app", appSlug);
-
- setConnectLinkUrl(url.toString());
- } else {
- setConnectLinkUrl("");
- }
- }, [
- tokenData,
- appSlug,
- ]);
-
- // No token data or connect_link_url - need to generate a token
- if (!tokenData?.connect_link_url) {
- return (
-
- );
- }
-
- return (
-
-
- Connect Link URL
-
-
-
-
- App to connect:
- setAppSlug(e.target.value)}
- className={styles.select}
- >
- Slack
- GitHub
- Google Sheets
-
-
-
-
-
-
-
-
- Open
-
-
-
-
-
-
{
- navigator.clipboard.writeText(connectLinkUrl);
- }}
- className={styles.secondaryButton}
- >
- Copy
-
-
-
-
-
-
-
-
- This URL contains a Connect Token that expires in 4 hours
- or after it's used once .
- You can send this link to your users via email, SMS, or chat.
-
-
-
- Note:
-
- {" "}Connect tokens are single-use. After a successful connection, you'll need to generate a new token.
-
-
-
-
- );
-}
diff --git a/docs-v2/components/DocSearch.tsx b/docs-v2/components/DocSearch.tsx
deleted file mode 100644
index 187234dd20b23..0000000000000
--- a/docs-v2/components/DocSearch.tsx
+++ /dev/null
@@ -1,26 +0,0 @@
-import { DocSearch } from "@docsearch/react";
-
-import "@docsearch/css";
-
-function Search() {
- return (
- {
- return items.map((item) => ({
- ...item,
- content: item.url,
- }));
- }}
- />
- );
-}
-
-export default Search;
diff --git a/docs-v2/components/GA4.tsx b/docs-v2/components/GA4.tsx
deleted file mode 100644
index 464876de41e6e..0000000000000
--- a/docs-v2/components/GA4.tsx
+++ /dev/null
@@ -1,24 +0,0 @@
-import Script from "next/script";
-
-export default function GA4() {
- return (
- <>
-
-
-
- >
- );
-}
diff --git a/docs-v2/components/GlobalConnectProvider.jsx b/docs-v2/components/GlobalConnectProvider.jsx
deleted file mode 100644
index 894b5f9ab9008..0000000000000
--- a/docs-v2/components/GlobalConnectProvider.jsx
+++ /dev/null
@@ -1,174 +0,0 @@
-"use client";
-
-import {
- createContext,
- useContext,
- useState,
- useEffect,
-} from "react";
-import { createFrontendClient } from "@pipedream/sdk/browser";
-import {
- getServerCodeSnippet,
- getClientCodeSnippet,
-} from "./ConnectCodeSnippets";
-import {
- generateConnectToken,
- fetchAccountDetails,
-} from "./api";
-
-/**
- * Generate a UUID v4 for use as external_user_id
- */
-function generateUUID() {
- return crypto.randomUUID();
-}
-
-// Create the context
-const GlobalConnectContext = createContext(null);
-
-/**
- * Provider component for Connect demo state management
- */
-export function GlobalConnectProvider({ children }) {
- // User and app state
- const [
- appSlug,
- setAppSlug,
- ] = useState("google_sheets");
- const [
- externalUserId,
- setExternalUserId,
- ] = useState("");
- const [
- connectedAccount,
- setConnectedAccount,
- ] = useState(null);
-
- // Token state
- const [
- tokenData,
- setTokenData,
- ] = useState(null);
-
- // UI state
- const [
- tokenLoading,
- setTokenLoading,
- ] = useState(false);
- const [
- error,
- setError,
- ] = useState(null);
-
- // Generate a new UUID when the component mounts
- useEffect(() => {
- setExternalUserId(generateUUID());
- }, []);
-
- // Get code snippet wrapper functions
- const getServerSnippet = () => getServerCodeSnippet(externalUserId);
- const getClientSnippet = () => getClientCodeSnippet(appSlug, tokenData);
-
- /**
- * Generate a token for the Connect demo
- */
- async function generateToken() {
- setTokenLoading(true);
- setError(null);
- // Clear any previously connected account when generating a new token
- setConnectedAccount(null);
-
- try {
- const data = await generateConnectToken(externalUserId);
- setTokenData(data);
- } catch (err) {
- setError(err.message || "An error occurred");
- } finally {
- setTokenLoading(false);
- }
- }
-
- /**
- * Connect an account using the Pipedream Connect SDK
- */
- function connectAccount() {
- if (!tokenData?.token) {
- setError("Please generate a token first");
- return;
- }
-
- setError(null);
-
- try {
- const pd = createFrontendClient();
- pd.connectAccount({
- app: appSlug,
- token: tokenData.token,
- onSuccess: async (account) => {
- // Initialize with just the ID and loading state
- setConnectedAccount({
- id: account.id,
- loading: true,
- });
-
- // Fetch additional account details
- const accountDetails = await fetchAccountDetails(account.id);
-
- // Update with the full details
- setConnectedAccount({
- ...accountDetails,
- loading: false,
- });
-
- // Token is single-use, so clear it after successful connection
- setTokenData(null);
- },
- onError: (err) => {
- setError(err.message || "Failed to connect account");
- },
- onClose: () => {
- // Dialog closed by user - no action needed
- },
- });
- } catch (err) {
- setError(err.message || "An error occurred");
- }
- }
-
- // Create context value object
- const contextValue = {
- // State
- appSlug,
- externalUserId,
- tokenData,
- connectedAccount,
- error,
- tokenLoading,
-
- // Actions
- setAppSlug,
- generateToken,
- connectAccount,
-
- // Code snippets
- getServerCodeSnippet: getServerSnippet,
- getClientCodeSnippet: getClientSnippet,
- };
-
- return (
-
- {children}
-
- );
-}
-
-/**
- * Custom hook for accessing the Connect demo context
- */
-export function useGlobalConnect() {
- const context = useContext(GlobalConnectContext);
- if (!context) {
- throw new Error("useGlobalConnect must be used within a GlobalConnectProvider");
- }
- return context;
-}
diff --git a/docs-v2/components/LanguageLink.tsx b/docs-v2/components/LanguageLink.tsx
deleted file mode 100644
index e2876ef78208b..0000000000000
--- a/docs-v2/components/LanguageLink.tsx
+++ /dev/null
@@ -1,21 +0,0 @@
-import React from "react";
-
-type LanguageLinkProps = {
- icon: string;
- name: string;
- link: string;
-};
-
-function LanguageLink({
- icon, name, link,
-}: LanguageLinkProps) {
- return (
-
- );
-}
-
-export default LanguageLink;
diff --git a/docs-v2/components/PipedreamCode.tsx b/docs-v2/components/PipedreamCode.tsx
deleted file mode 100644
index 853a532ace90e..0000000000000
--- a/docs-v2/components/PipedreamCode.tsx
+++ /dev/null
@@ -1,22 +0,0 @@
-import React from "react";
-import { Fira_Code } from "next/font/google";
-
-interface PipedreamCodeProps {
- children: React.ReactNode;
-}
-
-const fira = Fira_Code({
- weight: [
- "400",
- "600",
- ],
- subsets: [
- "latin",
- ],
-});
-
-const PipedreamCode = ({ children }: PipedreamCodeProps) => <>
- {children}
->;
-
-export default PipedreamCode;
diff --git a/docs-v2/components/PipedreamImg.tsx b/docs-v2/components/PipedreamImg.tsx
deleted file mode 100644
index 12a974c50f5a7..0000000000000
--- a/docs-v2/components/PipedreamImg.tsx
+++ /dev/null
@@ -1,21 +0,0 @@
-import React from "react";
-import Image from "next/image";
-
-interface PipedreamImgProps {
- src: string;
- alt: string;
- width: number;
- height: number;
-}
-
-const PipedreamImg = ({
- src, alt, width, height,
-}: PipedreamImgProps) => {
- return (
-
-
-
- );
-};
-
-export default PipedreamImg;
diff --git a/docs-v2/components/PipedreamLink.tsx b/docs-v2/components/PipedreamLink.tsx
deleted file mode 100644
index eb00912df058a..0000000000000
--- a/docs-v2/components/PipedreamLink.tsx
+++ /dev/null
@@ -1,17 +0,0 @@
-import React from "react";
-import Link from "next/link";
-
-interface PipedreamLinkProps {
- href: string;
- children: React.ReactNode;
-}
-
-const PipedreamLink = ({
- href, children,
-}: PipedreamLinkProps) => {
- return (
- {children}
- );
-};
-
-export default PipedreamLink;
diff --git a/docs-v2/components/PipedreamTextLogo.tsx b/docs-v2/components/PipedreamTextLogo.tsx
deleted file mode 100644
index a4246ba663047..0000000000000
--- a/docs-v2/components/PipedreamTextLogo.tsx
+++ /dev/null
@@ -1,9 +0,0 @@
-import React from "react";
-
-const svg = () => <>
-
-
-
->;
-
-export default svg;
diff --git a/docs-v2/components/PublicIPs.tsx b/docs-v2/components/PublicIPs.tsx
deleted file mode 100644
index ad4c30607c766..0000000000000
--- a/docs-v2/components/PublicIPs.tsx
+++ /dev/null
@@ -1,12 +0,0 @@
-import publicIps from "./publicNodeIps.json";
-
-// Create a React component to display the public IPs in a code block, one IP on each line
-export default function PublicIPs() {
- return (
-
- {publicIps.map((ip) => (
- {ip}
- ))}
-
- );
-}
diff --git a/docs-v2/components/PythonMappings.tsx b/docs-v2/components/PythonMappings.tsx
deleted file mode 100644
index 0da362ff00aa2..0000000000000
--- a/docs-v2/components/PythonMappings.tsx
+++ /dev/null
@@ -1,91 +0,0 @@
-import React, {
- useState, useEffect,
-} from "react";
-import rawMappings from "./python-mappings.json";
-
-const PythonMappings = () => {
- const [
- mappings,
- setMappings,
- ] = useState([]);
- const [
- query,
- setQuery,
- ] = useState("");
-
- useEffect(() => {
- setMappings(Object.entries(rawMappings));
- }, []);
-
- useEffect(() => {
- search(query);
- }, [
- query,
- ]);
-
- const search = (query) => {
- if (query === "") {
- setMappings(Object.entries(rawMappings));
- } else {
- const filteredMappings = mappings.filter((mapping) =>
- new RegExp(query, "i").test(mapping[0]));
- setMappings(filteredMappings);
- }
- };
-
- return (
-
-
- setQuery(e.target.value)}
- placeholder="Search by package name"
- className="
- my-3
- px-3
- py-3
- placeholder-slate-300
- relative
- rounded
- text-sm
- border-0
- shadow
- outline-none
- focus:outline-none focus:ring
- w-full
- m-auto
- "
- />
-
-
-
-
- );
-};
-
-export default PythonMappings;
diff --git a/docs-v2/components/RB2B.tsx b/docs-v2/components/RB2B.tsx
deleted file mode 100644
index 36826ab7df9c6..0000000000000
--- a/docs-v2/components/RB2B.tsx
+++ /dev/null
@@ -1,13 +0,0 @@
-import Script from "next/script";
-
-export default function RB2B() {
- return (
-
- );
-}
diff --git a/docs-v2/components/RocketShip.tsx b/docs-v2/components/RocketShip.tsx
deleted file mode 100644
index 4a9fb188f2a0f..0000000000000
--- a/docs-v2/components/RocketShip.tsx
+++ /dev/null
@@ -1,7 +0,0 @@
-import React from "react";
-
-const svg = () => <>
- rocket-launch
->;
-
-export default svg;
diff --git a/docs-v2/components/SDKButton.js b/docs-v2/components/SDKButton.js
deleted file mode 100644
index 5477f534c8828..0000000000000
--- a/docs-v2/components/SDKButton.js
+++ /dev/null
@@ -1,21 +0,0 @@
-"use client";
-
-export default function SDKButton({
- onClick,
- disabled = false,
- loading = false,
- children,
- className = "",
-}) {
- return (
-
- {loading
- ? "Processing..."
- : children}
-
- );
-}
diff --git a/docs-v2/components/SlackLogo.module.css b/docs-v2/components/SlackLogo.module.css
deleted file mode 100644
index c489d1c24961d..0000000000000
--- a/docs-v2/components/SlackLogo.module.css
+++ /dev/null
@@ -1,14 +0,0 @@
-.container {
- display: flex;
- justify-content: center;
- align-items: center;
- width: 100%;
- height: auto;
-}
-
-.container svg {
- width: 100%;
- height: auto;
- max-width: 100%;
- display: block;
-}
\ No newline at end of file
diff --git a/docs-v2/components/SlackLogo.tsx b/docs-v2/components/SlackLogo.tsx
deleted file mode 100644
index 01eaa976dbcfb..0000000000000
--- a/docs-v2/components/SlackLogo.tsx
+++ /dev/null
@@ -1,14 +0,0 @@
-import React from "react";
-import styles from "./SlackLogo.module.css";
-
-const svg = () =>
- ;
-
-export default svg;
diff --git a/docs-v2/components/TemporaryTokenGenerator.jsx b/docs-v2/components/TemporaryTokenGenerator.jsx
deleted file mode 100644
index fd41a7a7839e4..0000000000000
--- a/docs-v2/components/TemporaryTokenGenerator.jsx
+++ /dev/null
@@ -1,90 +0,0 @@
-"use client";
-
-import { useState } from "react";
-import { styles } from "../utils/componentStyles";
-
-export default function TemporaryTokenGenerator() {
- const [
- token,
- setToken,
- ] = useState("");
- const [
- copied,
- setCopied,
- ] = useState(false);
-
- // Generate a UUID v4
- function generateUUID() {
- return crypto.randomUUID();
- }
-
- function generateToken() {
- const uuid = generateUUID();
- const newToken = `devtok_${uuid}`;
- setToken(newToken);
- setCopied(false);
- }
-
- async function copyToClipboard() {
- try {
- await navigator.clipboard.writeText(token);
- setCopied(true);
- setTimeout(() => setCopied(false), 2000);
- } catch (err) {
- console.error("Failed to copy:", err);
- }
- }
-
- return (
-
-
- Generate a temporary access token
-
-
-
-
- Generate token
-
-
-
- {token && (
-
-
-
-
- {copied
- ? (
- <>
-
-
-
- Copied!
- >
- )
- : (
- <>
-
-
-
- Copy
- >
- )}
-
-
-
- This is a temporary token. Any linked connected accounts will be regularly deleted.
-
-
- )}
-
-
- );
-}
diff --git a/docs-v2/components/TokenGenerationDemo.jsx b/docs-v2/components/TokenGenerationDemo.jsx
deleted file mode 100644
index f4da7407d6768..0000000000000
--- a/docs-v2/components/TokenGenerationDemo.jsx
+++ /dev/null
@@ -1,61 +0,0 @@
-"use client";
-
-import { useGlobalConnect } from "./GlobalConnectProvider";
-import CodeBlock from "./CodeBlock";
-import { styles } from "../utils/componentStyles";
-
-export default function TokenGenerationDemo() {
- const {
- externalUserId,
- getServerCodeSnippet,
- generateToken,
- tokenLoading,
- tokenData,
- } = useGlobalConnect();
-
- return (
-
-
- Generate a Connect Token from your server
-
-
-
-
- External User ID:
- {externalUserId}
-
-
-
-
-
-
- {tokenLoading
- ? "Generating..."
- : "Generate Token"}
-
-
-
- {tokenData && (
-
- )}
-
-
- );
-}
diff --git a/docs-v2/components/Vector.tsx b/docs-v2/components/Vector.tsx
deleted file mode 100644
index 1ae0b2b2277b9..0000000000000
--- a/docs-v2/components/Vector.tsx
+++ /dev/null
@@ -1,21 +0,0 @@
-import Script from "next/script";
-
-export default function Vector() {
- return (
-
- );
-}
diff --git a/docs-v2/components/VectorConnect.tsx b/docs-v2/components/VectorConnect.tsx
deleted file mode 100644
index a856afe9900ee..0000000000000
--- a/docs-v2/components/VectorConnect.tsx
+++ /dev/null
@@ -1,22 +0,0 @@
-import Script from "next/script";
-
-export default function VectorConnect() {
- return (
-
- );
-}
diff --git a/docs-v2/components/VideoPlayer.module.css b/docs-v2/components/VideoPlayer.module.css
deleted file mode 100644
index 09962b4e2824c..0000000000000
--- a/docs-v2/components/VideoPlayer.module.css
+++ /dev/null
@@ -1,6 +0,0 @@
-.video {
- margin: auto;
- aspect-ratio: 16 / 9;
- width: 100%;
-}
-
\ No newline at end of file
diff --git a/docs-v2/components/VideoPlayer.tsx b/docs-v2/components/VideoPlayer.tsx
deleted file mode 100644
index 798d6574930d7..0000000000000
--- a/docs-v2/components/VideoPlayer.tsx
+++ /dev/null
@@ -1,29 +0,0 @@
-import React from "react";
-
-type VideoPlayerProps = {
- src: string;
- title: string;
- startAt?: number;
-};
-
-const VideoPlayer = ({
- src, title, startAt,
-}: VideoPlayerProps) => {
- const embedUrl = `${src}?rel=0${startAt
- ? `&start=${startAt}`
- : ""}`;
-
- return (
-
-
-
- );
-};
-
-export default VideoPlayer;
diff --git a/docs-v2/components/api.js b/docs-v2/components/api.js
deleted file mode 100644
index 979528ec89633..0000000000000
--- a/docs-v2/components/api.js
+++ /dev/null
@@ -1,68 +0,0 @@
-/**
- * API client functions for demo components
- */
-
-/**
- * Generate a request token based on the browser environment
- * Creates a token that matches what the API will generate
- *
- * Note: Server-side uses the origin's hostname for token generation
- * to handle domain mapping in production environments
- */
-export function generateRequestToken() {
- if (typeof window === "undefined") return "";
-
- // Use the same origin's hostname that the server will use when generating the token
- const baseString = `${navigator.userAgent}:${window.location.host}:connect-demo`;
- return btoa(baseString);
-}
-
-/**
- * Generate a token for the Connect demo
- * @param {string} externalUserId - The user ID to associate with the token
- * @returns {Promise} - The token data
- */
-export async function generateConnectToken(externalUserId) {
- const requestToken = generateRequestToken();
- const response = await fetch("/docs/api-demo-connect/token", {
- method: "POST",
- headers: {
- "Content-Type": "application/json",
- "X-Request-Token": requestToken,
- },
- body: JSON.stringify({
- external_user_id: externalUserId,
- }),
- });
-
- if (!response.ok) {
- const errorData = await response.json();
- throw new Error(errorData.error || "Failed to get token");
- }
-
- return await response.json();
-}
-
-/**
- * Fetch account details from the API
- * @param {string} accountId - The account ID to fetch
- * @returns {Promise} - The account details
- */
-export async function fetchAccountDetails(accountId) {
- const requestToken = generateRequestToken();
- const response = await fetch(`/docs/api-demo-connect/accounts/${accountId}`, {
- method: "GET",
- headers: {
- "Content-Type": "application/json",
- "X-Request-Token": requestToken,
- },
- });
-
- if (!response.ok) {
- return {
- id: accountId,
- }; // Fall back to just the ID
- }
-
- return await response.json();
-}
diff --git a/docs-v2/components/publicNodeIps.json b/docs-v2/components/publicNodeIps.json
deleted file mode 100644
index d487a15c26752..0000000000000
--- a/docs-v2/components/publicNodeIps.json
+++ /dev/null
@@ -1,18 +0,0 @@
-[
- "3.208.254.105",
- "3.212.246.173",
- "3.223.179.131",
- "3.227.157.189",
- "3.232.105.55",
- "3.234.187.126",
- "18.235.13.182",
- "34.225.84.31",
- "52.2.233.8",
- "52.23.40.208",
- "52.202.86.9",
- "52.207.145.190",
- "54.86.100.50",
- "54.88.18.81",
- "54.161.28.250",
- "107.22.76.172"
-]
diff --git a/docs-v2/components/python-mappings.json b/docs-v2/components/python-mappings.json
deleted file mode 100644
index 3e6d4aa49bbe6..0000000000000
--- a/docs-v2/components/python-mappings.json
+++ /dev/null
@@ -1,1078 +0,0 @@
-{
- "ShopifyAPI": "shopify",
- "google-cloud-bigquery": "bigquery",
- "carbon3d-client": "carbon3d",
- "python-telegram-bot": "telegram",
- "pyAFQ": "AFQ",
- "agpy": "AG_fft_tools",
- "pexpect": "screen",
- "Adafruit_Libraries": "Adafruit",
- "Zope2": "webdav",
- "py_Asterisk": "Asterisk",
- "bitbucket_jekyll_hook": "BB_jekyll_hook",
- "Banzai_NGS": "Banzai",
- "BeautifulSoup": "BeautifulSoupTests",
- "biopython": "BioSQL",
- "BuildbotEightStatusShields": "BuildbotStatusShields",
- "ExtensionClass": "MethodObject",
- "pycryptodome": "Crypto",
- "pycryptodomex": "Cryptodome",
- "51degrees_mobile_detector_v3_wrapper": "FiftyOneDegrees",
- "pyfunctional": "functional",
- "GeoBasesDev": "GeoBases",
- "ipython": "IPython",
- "astro_kittens": "Kittens",
- "python_Levenshtein": "Levenshtein",
- "MySQL-python": "MySQLdb",
- "PyOpenGL": "OpenGL",
- "pyOpenSSL": "OpenSSL",
- "Pillow": "PIL",
- "astLib": "PyWCSTools",
- "astro_pyxis": "Pyxides",
- "PySide": "pysideuic",
- "s3cmd": "S3",
- "pystick": "SCons",
- "PyStemmer": "Stemmer",
- "topzootools": "TopZooTools",
- "DocumentTemplate": "TreeDisplay",
- "aspose_pdf_java_for_python": "WorkingWithDocumentConversion",
- "auto_adjust_display_brightness": "aadb",
- "abakaffe_cli": "abakaffe",
- "abiosgaming.py": "abiosgaming",
- "abiquo_api": "abiquo",
- "abl.cssprocessor": "abl",
- "abl.robot": "abl",
- "abl.util": "abl",
- "abl.vpath": "abl",
- "abo_generator": "abo",
- "abris": "abris_transform",
- "abstract.jwrotator": "abstract",
- "abu.admin": "abu",
- "AC_Flask_HipChat": "ac_flask",
- "anikom15": "acg",
- "acme.dchat": "acme",
- "acme.hello": "acme",
- "acted.projects": "acted",
- "ActionServer": "action",
- "actionbar.panel": "actionbar",
- "afn": "activehomed",
- "ActivePapers.Py": "activepapers",
- "address_book_lansry": "address_book",
- "adi.commons": "adi",
- "adi.devgen": "adi",
- "adi.fullscreen": "adi",
- "adi.init": "adi",
- "adi.playlist": "adi",
- "adi.samplecontent": "adi",
- "adi.slickstyle": "adi",
- "adi.suite": "adi",
- "adi.trash": "adi",
- "aDict2": "adict",
- "aditam.agent": "aditam",
- "aditam.core": "aditam",
- "adium_sh": "adiumsh",
- "AdjectorClient": "adjector",
- "AdjectorTracPlugin": "adjector",
- "Banner_Ad_Toolkit": "adkit",
- "django_admin_tools": "admin_tools",
- "adminish_categories": "adminishcategories",
- "django_admin_sortable": "adminsortable",
- "adspygoogle.adwords": "adspygoogle",
- "agtl": "advancedcaching",
- "Adytum_PyMonitor": "adytum",
- "affinitic.docpyflakes": "affinitic",
- "affinitic.recipe.fakezope2eggs": "affinitic",
- "affinitic.simplecookiecuttr": "affinitic",
- "affinitic.verifyinterface": "affinitic",
- "affinitic.zamqp": "affinitic",
- "afpy.xap": "afpy",
- "agate_sql": "agatesql",
- "ageliaco.recipe.csvconfig": "ageliaco",
- "agent.http": "agent_http",
- "Agora_Client": "agora",
- "Agora_Fountain": "agora",
- "Agora_Fragment": "agora",
- "Agora_Planner": "agora",
- "Agora_Service_Provider": "agora",
- "agoraplex.themes.sphinx": "agoraplex",
- "agsci.blognewsletter": "agsci",
- "agx.core": "agx",
- "agx.dev": "agx",
- "agx.generator.buildout": "agx",
- "agx.generator.dexterity": "agx",
- "agx.generator.generator": "agx",
- "agx.generator.plone": "agx",
- "agx.generator.pyegg": "agx",
- "agx.generator.sql": "agx",
- "agx.generator.uml": "agx",
- "agx.generator.zca": "agx",
- "agx.transform.uml2fs": "agx",
- "agx.transform.xmi2uml": "agx",
- "aimes.bundle": "aimes",
- "aimes.skeleton": "aimes",
- "aio.app": "aio",
- "aio.config": "aio",
- "aio.core": "aio",
- "aio.signals": "aio",
- "aio_hs2": "aiohs2",
- "aio_routes": "aioroutes",
- "aio_s3": "aios3",
- "airbrake_flask": "airbrake",
- "airship_icloud": "airship",
- "airship_steamcloud": "airship",
- "edgegrid_python": "akamai",
- "alation_api": "alation",
- "alba_client_python": "alba_client",
- "alburnum_maas_client": "alburnum",
- "alchemist.audit": "alchemist",
- "alchemist.security": "alchemist",
- "alchemist.traversal": "alchemist",
- "alchemist.ui": "alchemist",
- "alchemyapi_python": "alchemyapi",
- "alerta_server": "alerta",
- "Alexandria_Upload_Utils": "alexandria_upload",
- "alibaba_python_sdk": "alibaba",
- "aliyun_python_sdk": "aliyun",
- "alicloudcli": "aliyuncli",
- "aliyun_python_sdk_acs": "aliyunsdkacs",
- "aliyun_python_sdk_batchcompute": "aliyunsdkbatchcompute",
- "aliyun_python_sdk_bsn": "aliyunsdkbsn",
- "aliyun_python_sdk_bss": "aliyunsdkbss",
- "aliyun_python_sdk_cdn": "aliyunsdkcdn",
- "aliyun_python_sdk_cms": "aliyunsdkcms",
- "aliyun_python_sdk_core": "aliyunsdkcore",
- "aliyun_python_sdk_crm": "aliyunsdkcrm",
- "aliyun_python_sdk_cs": "aliyunsdkcs",
- "aliyun_python_sdk_drds": "aliyunsdkdrds",
- "aliyun_python_sdk_ecs": "aliyunsdkecs",
- "aliyun_python_sdk_ess": "aliyunsdkess",
- "aliyun_python_sdk_ft": "aliyunsdkft",
- "aliyun_python_sdk_mts": "aliyunsdkmts",
- "aliyun_python_sdk_ocs": "aliyunsdkocs",
- "aliyun_python_sdk_oms": "aliyunsdkoms",
- "aliyun_python_sdk_ossadmin": "aliyunsdkossadmin",
- "aliyun_python_sdk_r_kvstore": "aliyunsdkr-kvstore",
- "aliyun_python_sdk_ram": "aliyunsdkram",
- "aliyun_python_sdk_rds": "aliyunsdkrds",
- "aliyun_python_sdk_risk": "aliyunsdkrisk",
- "aliyun_python_sdk_ros": "aliyunsdkros",
- "aliyun_python_sdk_slb": "aliyunsdkslb",
- "aliyun_python_sdk_sts": "aliyunsdksts",
- "aliyun_python_sdk_ubsms": "aliyunsdkubsms",
- "aliyun_python_sdk_yundun": "aliyunsdkyundun",
- "AllAttachmentsMacro": "allattachments",
- "allocine_wrapper": "allocine",
- "django_allowedsites": "allowedsites",
- "alm.solrindex": "alm",
- "aloft.py": "aloft",
- "alpaca": "alpacalib",
- "alphabetic_simple": "alphabetic",
- "alphasms_client": "alphasms",
- "altered.states": "altered",
- "alterootheme.busycity": "alterootheme",
- "alterootheme.intensesimplicity": "alterootheme",
- "alterootheme.lazydays": "alterootheme",
- "alurinium_image_processing": "alurinium",
- "alx": "alxlib",
- "amara3_iri": "amara3",
- "amara3_xml": "amara3",
- "AmazonAPIWrapper": "amazon",
- "python_amazon_simple_product_api": "amazon",
- "ambikesh1349_1": "ambikesh1349-1",
- "AmbilightParty": "ambilight",
- "amifs_core": "amifs",
- "ami_organizer": "amiorganizer",
- "amitu.lipy": "amitu",
- "amitu_putils": "amitu",
- "amitu_websocket_client": "amitu",
- "amitu_zutils": "amitu",
- "AMLT_learn": "amltlearn",
- "amocrm_api": "amocrm",
- "amqp_dispatcher": "amqpdispatcher",
- "AMQP_Storm": "amqpstorm",
- "analytics_python": "analytics",
- "AnalyzeDirectory": "analyzedir",
- "ancientsolutions_crypttools": "ancientsolutions",
- "anderson.paginator": "anderson_paginator",
- "android_resource_remover": "android_clean_app",
- "AnelPowerControl": "anel_power_control",
- "angus_sdk_python": "angus",
- "Annalist": "annalist_root",
- "ANNOgesic": "annogesiclib",
- "ansible_role_apply": "ansible-role-apply",
- "ansible_playbook_debugger": "ansibledebugger",
- "ansible_docgen": "ansibledocgen",
- "ansible_flow": "ansibleflow",
- "ansible_inventory_grapher": "ansibleinventorygrapher",
- "ansible_lint": "ansiblelint",
- "ansible_roles_graph": "ansiblerolesgraph",
- "ansible_tools": "ansibletools",
- "anthill.exampletheme": "anthill",
- "anthill.skinner": "anthill",
- "anthill.tal.macrorenderer": "anthill",
- "AnthraxDojoFrontend": "anthrax",
- "AnthraxHTMLInput": "anthrax",
- "AnthraxImage": "anthrax",
- "antiweb": "antisphinx",
- "antispoofing.evaluation": "antispoofing",
- "antlr4_python2_runtime": "antlr4",
- "antlr4_python3_runtime": "antlr4",
- "antlr4_python_alt": "antlr4",
- "anybox.buildbot.openerp": "anybox",
- "anybox.nose.odoo": "anybox",
- "anybox.paster.odoo": "anybox",
- "anybox.paster.openerp": "anybox",
- "anybox.recipe.sysdeps": "anybox",
- "anybox.scripts.odoo": "anybox",
- "google_api_python_client": "googleapiclient",
- "google_apitools": "apitools",
- "arpm": "apm",
- "django_appdata": "app_data",
- "django_appconf": "appconf",
- "AppDynamicsDownloader": "appd",
- "AppDynamicsREST": "appd",
- "appdynamics_bindeps_linux_x64": "appdynamics_bindeps",
- "appdynamics_bindeps_linux_x86": "appdynamics_bindeps",
- "appdynamics_bindeps_osx_x64": "appdynamics_bindeps",
- "appdynamics_proxysupport_linux_x64": "appdynamics_proxysupport",
- "appdynamics_proxysupport_linux_x86": "appdynamics_proxysupport",
- "appdynamics_proxysupport_osx_x64": "appdynamics_proxysupport",
- "Appium_Python_Client": "appium",
- "applibase": "appliapps",
- "broadwick": "appserver",
- "archetypes.kss": "archetypes",
- "archetypes.multilingual": "archetypes",
- "archetypes.schemaextender": "archetypes",
- "ansible_role_manager": "arm",
- "armor_api": "armor",
- "armstrong.apps.related_content": "armstrong",
- "armstrong.apps.series": "armstrong",
- "armstrong.cli": "armstrong",
- "armstrong.core.arm_access": "armstrong",
- "armstrong.core.arm_layout": "armstrong",
- "armstrong.core.arm_sections": "armstrong",
- "armstrong.core.arm_wells": "armstrong",
- "armstrong.dev": "armstrong",
- "armstrong.esi": "armstrong",
- "armstrong.hatband": "armstrong",
- "armstrong.templates.standard": "armstrong",
- "armstrong.utils.backends": "armstrong",
- "armstrong.utils.celery": "armstrong",
- "arstecnica.raccoon.autobahn": "arstecnica",
- "arstecnica.sqlalchemy.async": "arstecnica",
- "article_downloader": "article-downloader",
- "artifact_cli": "artifactcli",
- "arvados_python_client": "arvados",
- "arvados_cwl_runner": "arvados_cwl",
- "arvados_node_manager": "arvnodeman",
- "AsanaToGithub": "asana_to_github",
- "AsciiBinaryConverter": "asciibinary",
- "AdvancedSearchDiscovery": "asd",
- "askbot_tuan": "askbot",
- "askbot_tuanpa": "askbot",
- "asnhistory_redis": "asnhistory",
- "aspen_jinja2": "aspen_jinja2_renderer",
- "aspen_tornado": "aspen_tornado_engine",
- "asprise_ocr_sdk_python_api": "asprise_ocr_api",
- "aspy.refactor_imports": "aspy",
- "aspy.yaml": "aspy",
- "asterisk_ami": "asterisk",
- "add_asts": "asts",
- "asymmetricbase.enum": "asymmetricbase",
- "asymmetricbase.fields": "asymmetricbase",
- "asymmetricbase.logging": "asymmetricbase",
- "asymmetricbase.utils": "asymmetricbase",
- "asyncio_irc": "asyncirc",
- "asyncmongoorm_je": "asyncmongoorm",
- "asyncssh_unofficial": "asyncssh",
- "athletelistyy": "athletelist",
- "automium": "atm",
- "atmosphere_python_client": "atmosphere",
- "gdata": "atom",
- "AtomicWrite": "atomic",
- "atomisator.db": "atomisator",
- "atomisator.enhancers": "atomisator",
- "atomisator.feed": "atomisator",
- "atomisator.indexer": "atomisator",
- "atomisator.outputs": "atomisator",
- "atomisator.parser": "atomisator",
- "atomisator.readers": "atomisator",
- "atreal.cmfeditions.unlocker": "atreal",
- "atreal.filestorage.common": "atreal",
- "atreal.layouts": "atreal",
- "atreal.mailservices": "atreal",
- "atreal.massloader": "atreal",
- "atreal.monkeyplone": "atreal",
- "atreal.override.albumview": "atreal",
- "atreal.richfile.preview": "atreal",
- "atreal.richfile.qualifier": "atreal",
- "atreal.usersinout": "atreal",
- "atsim.potentials": "atsim",
- "attract_sdk": "attractsdk",
- "audio.bitstream": "audio",
- "audio.coders": "audio",
- "audio.filters": "audio",
- "audio.fourier": "audio",
- "audio.frames": "audio",
- "audio.lp": "audio",
- "audio.psychoacoustics": "audio",
- "audio.quantizers": "audio",
- "audio.shrink": "audio",
- "audio.wave": "audio",
- "auf_refer": "aufrefer",
- "auslfe.formonline.content": "auslfe",
- "auspost_apis": "auspost",
- "auth0_python": "auth0",
- "AuthServerClient": "auth_server_client",
- "AuthorizeSauce": "authorize",
- "AuthzPolicyPlugin": "authzpolicy",
- "autobahn_rce": "autobahn",
- "geonode_avatar": "avatar",
- "android_webview": "awebview",
- "azure_common": "azure",
- "azure_mgmt_common": "azure",
- "azure_mgmt_compute": "azure",
- "azure_mgmt_network": "azure",
- "azure_mgmt_nspkg": "azure",
- "azure_mgmt_resource": "azure",
- "azure_mgmt_storage": "azure",
- "azure_nspkg": "azure",
- "azure_servicebus": "azure",
- "azure_servicemanagement_legacy": "azure",
- "azure_storage": "azure",
- "b2g_commands": "b2gcommands",
- "b2gperf_v1.3": "b2gperf",
- "b2gperf_v1.4": "b2gperf",
- "b2gperf_v2.0": "b2gperf",
- "b2gperf_v2.1": "b2gperf",
- "b2gperf_v2.2": "b2gperf",
- "b2gpopulate_v1.3": "b2gpopulate",
- "b2gpopulate_v1.4": "b2gpopulate",
- "b2gpopulate_v2.0": "b2gpopulate",
- "b2gpopulate_v2.1": "b2gpopulate",
- "b2gpopulate_v2.2": "b2gpopulate",
- "b3j0f.annotation": "b3j0f",
- "b3j0f.aop": "b3j0f",
- "b3j0f.conf": "b3j0f",
- "b3j0f.sync": "b3j0f",
- "b3j0f.utils": "b3j0f",
- "Babel": "babel",
- "BabelGladeExtractor": "babelglade",
- "backplane2_pyclient": "backplane",
- "backport_collections": "backport_abcoll",
- "backports.functools_lru_cache": "backports",
- "backports.inspect": "backports",
- "backports.pbkdf2": "backports",
- "backports.shutil_get_terminal_size": "backports",
- "backports.socketpair": "backports",
- "backports.ssl": "backports",
- "backports.ssl_match_hostname": "backports",
- "backports.statistics": "backports",
- "badgekit_api_client": "badgekit",
- "BadLinksPlugin": "badlinks",
- "bael.project": "bael",
- "baidupy": "baidu",
- "buildtools": "balrog",
- "baluhn_redux": "baluhn",
- "bamboo.pantrybell": "bamboo",
- "bamboo.scaffold": "bamboo",
- "bamboo.setuptools_version": "bamboo",
- "bamboo_data": "bamboo",
- "bamboo_server": "bamboo",
- "bambu_codemirror": "bambu",
- "bambu_dataportability": "bambu",
- "bambu_enqueue": "bambu",
- "bambu_faq": "bambu",
- "bambu_ffmpeg": "bambu",
- "bambu_grids": "bambu",
- "bambu_international": "bambu",
- "bambu_jwplayer": "bambu",
- "bambu_minidetect": "bambu",
- "bambu_navigation": "bambu",
- "bambu_notifications": "bambu",
- "bambu_payments": "bambu",
- "bambu_pusher": "bambu",
- "bambu_saas": "bambu",
- "bambu_sites": "bambu",
- "Bananas": "banana",
- "banana.maya": "banana",
- "bangtext": "bang",
- "barcode_generator": "barcode",
- "bark_ssg": "bark",
- "BarkingOwl": "barking_owl",
- "bart_py": "bart",
- "basalt_tasks": "basalt",
- "base_62": "base62",
- "basemap_Jim": "basemap",
- "bash_toolbelt": "bash",
- "Python_Bash_Utils": "bashutils",
- "BasicHttp": "basic_http",
- "basil_daq": "basil",
- "azure_batch_apps": "batchapps",
- "python_bcrypt": "bcrypt",
- "Beaker": "beaker",
- "beets": "beetsplug",
- "begins": "begin",
- "bench_it": "benchit",
- "beproud.utils": "beproud",
- "burrito_fillings": "bfillings",
- "BigJob": "pilot",
- "billboard.py": "billboard",
- "anaconda_build": "binstar_build_client",
- "anaconda_client": "binstar_client",
- "biocommons.dev": "biocommons",
- "birdhousebuilder.recipe.conda": "birdhousebuilder",
- "birdhousebuilder.recipe.docker": "birdhousebuilder",
- "birdhousebuilder.recipe.redis": "birdhousebuilder",
- "birdhousebuilder.recipe.supervisor": "birdhousebuilder",
- "pymeshio": "blender26-meshio",
- "borg.localrole": "borg",
- "bagofwords": "bow",
- "bpython": "bpdb",
- "bisque_api": "bqapi",
- "django_braces": "braces",
- "briefs_caster": "briefscaster",
- "brisa_media_server_plugins": "brisa_media_server/plugins",
- "brkt_sdk": "brkt_requests",
- "broadcast_logging": "broadcastlogging",
- "brocade_tool": "brocadetool",
- "bronto_python": "bronto",
- "Brownie": "brownie",
- "browsermob_proxy": "browsermobproxy",
- "brubeck_mysql": "brubeckmysql",
- "brubeck_oauth": "brubeckoauth",
- "brubeck_service": "brubeckservice",
- "brubeck_uploader": "brubeckuploader",
- "beautifulsoup4": "bs4",
- "pymongo": "gridfs",
- "bst.pygasus.core": "bst",
- "bst.pygasus.datamanager": "bst",
- "bst.pygasus.demo": "bst",
- "bst.pygasus.i18n": "bst",
- "bst.pygasus.resources": "bst",
- "bst.pygasus.scaffolding": "bst",
- "bst.pygasus.security": "bst",
- "bst.pygasus.session": "bst",
- "bst.pygasus.wsgi": "bst",
- "btable_py": "btable",
- "bananatag_api": "btapi",
- "btce_api": "btceapi",
- "btce_bot": "btcebot",
- "btsync.py": "btsync",
- "buck.pprint": "buck",
- "bud.nospam": "bud",
- "budy_api": "budy",
- "buffer_alpaca": "buffer",
- "bug.gd": "buggd",
- "bugle_sites": "bugle",
- "bug_spots": "bugspots",
- "python_bugzilla": "bugzilla",
- "bugzscout_py": "bugzscout",
- "ajk_ios_buildTools": "buildTools",
- "BuildNotify": "buildnotifylib",
- "buildout.bootstrap": "buildout",
- "buildout.disablessl": "buildout",
- "buildout.dumppickedversions": "buildout",
- "buildout.dumppickedversions2": "buildout",
- "buildout.dumprequirements": "buildout",
- "buildout.eggnest": "buildout",
- "buildout.eggscleaner": "buildout",
- "buildout.eggsdirectories": "buildout",
- "buildout.eggtractor": "buildout",
- "buildout.extensionscripts": "buildout",
- "buildout.locallib": "buildout",
- "buildout.packagename": "buildout",
- "buildout.recipe.isolation": "buildout",
- "buildout.removeaddledeggs": "buildout",
- "buildout.requirements": "buildout",
- "buildout.sanitycheck": "buildout",
- "buildout.sendpickedversions": "buildout",
- "buildout.threatlevel": "buildout",
- "buildout.umask": "buildout",
- "buildout.variables": "buildout",
- "buildbot_slave": "buildslave",
- "pies2overrides": "xmlrpc",
- "bumper_lib": "bumper",
- "bumple_downloader": "bumple",
- "bundesliga_cli": "bundesliga",
- "bundlemanager": "bundlemaker",
- "burp_ui": "burpui",
- "busyflow.pivotal": "busyflow",
- "buttercms_django": "buttercms-django",
- "buzz_python_client": "buzz",
- "buildout_versions_checker": "bvc",
- "bvg_grabber": "bvggrabber",
- "BYONDTools": "byond",
- "Bugzilla_ETL": "bzETL",
- "bugzillatools": "bzlib",
- "bzr": "bzrlib",
- "bzr_automirror": "bzrlib",
- "bzr_bash_completion": "bzrlib",
- "bzr_colo": "bzrlib",
- "bzr_killtrailing": "bzrlib",
- "bzr_pqm": "bzrlib",
- "c2c.cssmin": "c2c",
- "c2c.recipe.closurecompile": "c2c",
- "c2c.recipe.cssmin": "c2c",
- "c2c.recipe.jarfile": "c2c",
- "c2c.recipe.msgfmt": "c2c",
- "c2c.recipe.pkgversions": "c2c",
- "c2c.sqlalchemy.rest": "c2c",
- "c2c.versions": "c2c",
- "c2c.recipe.facts": "c2c_recipe_facts",
- "cabalgata_silla_de_montar": "cabalgata",
- "cabalgata_zookeeper": "cabalgata",
- "django_cache_utils": "cache_utils",
- "django_recaptcha": "captcha",
- "Cartridge": "cartridge",
- "cassandra_driver": "cassandra",
- "CassandraLauncher": "cassandralauncher",
- "42qucc": "cc42",
- "Cerberus": "cerberus",
- "cfn-lint": "cfnlint",
- "Chameleon": "chameleon",
- "charm_tools": "charmtools",
- "PyChef": "chef",
- "c8d": "chip8",
- "python_cjson": "cjson",
- "django_classy_tags": "classytags",
- "ConcurrentLogHandler": "cloghandler",
- "virtualenv_clone": "clonevirtualenv",
- "al_cloudinsight": "cloud-insight",
- "adminapi": "cloud_admin",
- "python_cloudservers": "cloudservers",
- "cerebrod": "tasksitter",
- "django_cms": "cms",
- "ba_colander": "colander",
- "ansicolors": "colors",
- "bf_lc3": "compile",
- "docker_compose": "compose",
- "django_compressor": "compressor",
- "futures": "concurrent",
- "ConfigArgParse": "configargparse",
- "PyContracts": "contracts",
- "weblogo": "weblogolib",
- "Couchapp": "couchapp",
- "CouchDB": "couchdb",
- "couchdb_python_curl": "couchdbcurl",
- "coursera_dl": "courseradownloader",
- "cow_framework": "cow",
- "python_creole": "creole",
- "Creoleparser": "creoleparser",
- "django_crispy_forms": "crispy_forms",
- "python_crontab": "crontab",
- "tff": "ctff",
- "pycups": "cups",
- "elasticsearch_curator": "curator",
- "pycurl": "curl",
- "python_daemon": "daemon",
- "DARE": "dare",
- "python_dateutil": "dateutil",
- "DAWG": "dawg",
- "python_debian": "debian",
- "python-decouple": "decouple",
- "webunit": "demo",
- "PySynth": "pysynth_samp",
- "juju_deployer": "deployer",
- "filedepot": "depot",
- "tg.devtools": "devtools",
- "2gis": "dgis",
- "pyDHTMLParser": "dhtmlparser",
- "python_digitalocean": "digitalocean",
- "discord.py": "discord",
- "ez_setup": "distribute_setup",
- "Distutils2": "distutils2",
- "Django": "django",
- "amitu_hstore": "django_hstore",
- "django_bower": "djangobower",
- "django_celery": "djcelery",
- "django_kombu": "djkombu",
- "djorm_ext_pgarray": "djorm_pgarray",
- "dnspython": "dns",
- "ansible_docgenerator": "docgen",
- "docker_py": "docker",
- "dogpile.cache": "dogpile",
- "dogpile.core": "dogpile",
- "dogapi": "dogshell",
- "pydot": "dot_parser",
- "pydot2": "dot_parser",
- "pydot3k": "dot_parser",
- "python-dotenv": "dotenv",
- "dpkt_fix": "dpkt",
- "python_ldap": "ldif",
- "django_durationfield": "durationfield",
- "datazilla": "dzclient",
- "easybuild_framework": "easybuild",
- "python_editor": "editor",
- "azure_elasticluster": "elasticluster",
- "azure_elasticluster_current": "elasticluster",
- "pyelftools": "elftools",
- "Elixir": "elixir",
- "empy": "emlib",
- "pyenchant": "enchant",
- "cssutils": "encutils",
- "python_engineio": "engineio",
- "enum34": "enum",
- "pyephem": "ephem",
- "abl.errorreporter": "errorreporter",
- "beaker_es_plot": "esplot",
- "adrest": "example",
- "tweepy": "examples",
- "pycassa": "ez_setup",
- "Fabric": "fabric",
- "Faker": "faker",
- "python_fedora": "fedora",
- "ailove_django_fias": "fias",
- "51degrees_mobile_detector": "fiftyone_degrees",
- "five.customerize": "five",
- "five.globalrequest": "five",
- "five.intid": "five",
- "five.localsitemanager": "five",
- "five.pt": "five",
- "android_flasher": "flasher",
- "Flask": "flask",
- "Frozen_Flask": "flask_frozen",
- "Flask_And_Redis": "flask_redis",
- "Flask_Bcrypt": "flaskext",
- "vnc2flv": "flvscreen",
- "django_followit": "followit",
- "pyforge": "forge",
- "FormEncode": "formencode",
- "django_formtools": "formtools",
- "4ch": "fourch",
- "allegrordf": "franz",
- "freetype_py": "freetype",
- "python_frontmatter": "frontmatter",
- "ftp_cloudfs": "ftpcloudfs",
- "librabbitmq": "funtests",
- "fusepy": "fuse",
- "Fuzzy": "fuzzy",
- "tiddlyweb": "gabbi",
- "3d_wallet_generator": "gen_3dwallet",
- "android_gendimen": "gendimen",
- "Genshi": "genshi",
- "python_geohash": "quadtree",
- "GeoNode": "geonode",
- "gsconfig": "geoserver",
- "Geraldo": "geraldo",
- "django_getenv": "getenv",
- "gevent_websocket": "geventwebsocket",
- "python_gflags": "gflags",
- "GitPython": "git",
- "PyGithub": "github",
- "github3.py": "github3",
- "git_py": "gitpy",
- "globusonline_transfer_api_client": "globusonline",
- "protobuf": "google",
- "grace_dizmo": "grace-dizmo",
- "anovelmous_grammar": "grammar",
- "graphenelib": "grapheneapi",
- "scales": "greplin",
- "grokcore.component": "grokcore",
- "gsutil": "gslib",
- "PyHamcrest": "hamcrest",
- "HARPy": "harpy",
- "PyHawk_with_a_single_extra_commit": "hawk",
- "django_haystack": "haystack",
- "mercurial": "hgext",
- "hg_git": "hggit",
- "python_hglib": "hglib",
- "pisa": "sx",
- "amarokHola": "hola",
- "Hoover": "hoover",
- "python_hostlist": "hostlist",
- "nosehtmloutput": "htmloutput",
- "django_hvad": "hvad",
- "hydra-core": "hydra",
- "199Fix": "i99fix",
- "python_igraph": "igraph",
- "IMDbPY": "imdb",
- "impyla": "impala",
- "ambition_inmemorystorage": "inmemorystorage",
- "backport_ipaddress": "ipaddress",
- "jaraco.timing": "jaraco",
- "jaraco.util": "jaraco",
- "Jinja2": "jinja2",
- "jira_cli": "jiracli",
- "johnny_cache": "johnny",
- "JPype1": "jpypex",
- "django_jsonfield": "jsonfield",
- "aino_jstools": "jstools",
- "jupyter_pip": "jupyterpip",
- "PyJWT": "jwt",
- "asana_kazoo": "kazoo",
- "line_profiler": "kernprof",
- "python_keyczar": "keyczar",
- "django_keyedcache": "keyedcache",
- "python_keystoneclient": "keystoneclient",
- "kickstart": "kickstarter",
- "krbV": "krbv",
- "kss.core": "kss",
- "Kuyruk": "kuyruk",
- "AdvancedLangConv": "langconv",
- "lava_utils_interface": "lava",
- "lazr.authentication": "lazr",
- "lazr.restfulclient": "lazr",
- "lazr.uri": "lazr",
- "adpasswd": "ldaplib",
- "2or3": "lib2or3",
- "3to2": "lib3to2",
- "Aito": "libaito",
- "bugs_everywhere": "libbe",
- "bucket": "libbucket",
- "apache_libcloud": "libcloud",
- "future": "winreg",
- "generateDS": "libgenerateDS",
- "mitmproxy": "libmproxy",
- "7lk_ocr_deploy": "libsvm",
- "lisa_server": "lisa",
- "aspose_words_java_for_python": "loadingandsaving",
- "locustio": "locust",
- "Logbook": "logbook",
- "buildbot_status_logentries": "logentries",
- "logilab_mtconverter": "logilab",
- "python_magic": "magic",
- "Mako": "mako",
- "ManifestDestiny": "manifestparser",
- "marionette_client": "marionette",
- "Markdown": "markdown",
- "pytest_marks": "marks",
- "MarkupSafe": "markupsafe",
- "pymavlink": "mavnative",
- "python_memcached": "memcache",
- "AllPairs": "metacomm",
- "Metafone": "metaphone",
- "metlog_py": "metlog",
- "Mezzanine": "mezzanine",
- "sqlalchemy_migrate": "migrate",
- "python_mimeparse": "mimeparse",
- "minitage.paste": "minitage",
- "minitage.recipe.common": "minitage",
- "android_missingdrawables": "missingdrawables",
- "2lazy2rest": "mkrst_themes",
- "mockredispy": "mockredis",
- "python_modargs": "modargs",
- "django_model_utils": "model_utils",
- "asposebarcode": "models",
- "asposestorage": "models",
- "moksha.common": "moksha",
- "moksha.hub": "moksha",
- "moksha.wsgi": "moksha",
- "py_moneyed": "moneyed",
- "MongoAlchemy": "mongoalchemy",
- "MonthDelta": "monthdelta",
- "Mopidy": "mopidy",
- "MoPyTools": "mopytools",
- "django_mptt": "mptt",
- "python-mpv": "mpv",
- "mr.bob": "mrbob",
- "msgpack_python": "msgpack",
- "aino_mutations": "mutations",
- "amazon_mws": "mws",
- "mysql_connector_repackaged": "mysql",
- "django_native_tags": "native_tags",
- "ndg_httpsclient": "ndg",
- "trytond_nereid": "nereid",
- "baojinhuan": "nested",
- "Amauri": "nester",
- "abofly": "nester",
- "bssm_pythonSig": "nester",
- "python_novaclient": "novaclient",
- "alauda_django_oauth": "oauth2_provider",
- "oauth2client": "oauth2client",
- "odfpy": "odf",
- "Parsley": "ometa",
- "python_openid": "openid",
- "ali_opensearch": "opensearchsdk",
- "oslo.i18n": "oslo_i18n",
- "oslo.serialization": "oslo_serialization",
- "oslo.utils": "oslo_utils",
- "alioss": "oss",
- "aliyun_python_sdk_oss": "oss",
- "aliyunoss": "oss",
- "cashew": "output",
- "OWSLib": "owslib",
- "nwdiag": "rackdiag",
- "paho_mqtt": "paho",
- "django_paintstore": "paintstore",
- "django_parler": "parler",
- "PasteScript": "paste",
- "forked_path": "path",
- "path.py": "path",
- "patricia-trie": "patricia",
- "Paver": "paver",
- "ProxyTypes": "peak",
- "anderson.picasso": "picasso",
- "django-picklefield": "picklefield",
- "pivotal_py": "pivotal",
- "peewee": "pwiz",
- "plivo": "plivoxml",
- "plone.alterego": "plone",
- "plone.api": "plone",
- "plone.app.blob": "plone",
- "plone.app.collection": "plone",
- "plone.app.content": "plone",
- "plone.app.contentlisting": "plone",
- "plone.app.contentmenu": "plone",
- "plone.app.contentrules": "plone",
- "plone.app.contenttypes": "plone",
- "plone.app.controlpanel": "plone",
- "plone.app.customerize": "plone",
- "plone.app.dexterity": "plone",
- "plone.app.discussion": "plone",
- "plone.app.event": "plone",
- "plone.app.folder": "plone",
- "plone.app.i18n": "plone",
- "plone.app.imaging": "plone",
- "plone.app.intid": "plone",
- "plone.app.layout": "plone",
- "plone.app.linkintegrity": "plone",
- "plone.app.locales": "plone",
- "plone.app.lockingbehavior": "plone",
- "plone.app.multilingual": "plone",
- "plone.app.portlets": "plone",
- "plone.app.querystring": "plone",
- "plone.app.redirector": "plone",
- "plone.app.registry": "plone",
- "plone.app.relationfield": "plone",
- "plone.app.textfield": "plone",
- "plone.app.theming": "plone",
- "plone.app.users": "plone",
- "plone.app.uuid": "plone",
- "plone.app.versioningbehavior": "plone",
- "plone.app.viewletmanager": "plone",
- "plone.app.vocabularies": "plone",
- "plone.app.widgets": "plone",
- "plone.app.workflow": "plone",
- "plone.app.z3cform": "plone",
- "plone.autoform": "plone",
- "plone.batching": "plone",
- "plone.behavior": "plone",
- "plone.browserlayer": "plone",
- "plone.caching": "plone",
- "plone.contentrules": "plone",
- "plone.dexterity": "plone",
- "plone.event": "plone",
- "plone.folder": "plone",
- "plone.formwidget.namedfile": "plone",
- "plone.formwidget.recurrence": "plone",
- "plone.i18n": "plone",
- "plone.indexer": "plone",
- "plone.intelligenttext": "plone",
- "plone.keyring": "plone",
- "plone.locking": "plone",
- "plone.memoize": "plone",
- "plone.namedfile": "plone",
- "plone.outputfilters": "plone",
- "plone.portlet.collection": "plone",
- "plone.portlet.static": "plone",
- "plone.portlets": "plone",
- "plone.protect": "plone",
- "plone.recipe.zope2install": "plone",
- "plone.registry": "plone",
- "plone.resource": "plone",
- "plone.resourceeditor": "plone",
- "plone.rfc822": "plone",
- "plone.scale": "plone",
- "plone.schema": "plone",
- "plone.schemaeditor": "plone",
- "plone.session": "plone",
- "plone.stringinterp": "plone",
- "plone.subrequest": "plone",
- "plone.supermodel": "plone",
- "plone.synchronize": "plone",
- "plone.theme": "plone",
- "plone.transformchain": "plone",
- "plone.uuid": "plone",
- "plone.z3cform": "plone",
- "plonetheme.barceloneta": "plonetheme",
- "pypng": "png",
- "django_polymorphic": "polymorphic",
- "python_postmark": "postmark",
- "bash_powerprompt": "powerprompt",
- "django-prefetch": "prefetch",
- "AndrewList": "printList",
- "progressbar2": "progressbar",
- "progressbar33": "progressbar",
- "django_oauth2_provider": "provider",
- "pure_sasl": "puresasl",
- "pylzma": "py7zlib",
- "pyAMI_core": "pyAMI",
- "arsespyder": "pyarsespyder",
- "asdf": "pyasdf",
- "aspell_python_ctypes": "pyaspell",
- "pybbm": "pybb",
- "pybloomfiltermmap": "pybloomfilter",
- "Pyccuracy": "pyccuracy",
- "PyCK": "pyck",
- "python_crfsuite": "pycrfsuite",
- "PyDispatcher": "pydispatch",
- "pygeocoder": "pygeolib",
- "Pygments": "pygments",
- "python_graph_core": "pygraph",
- "pyjon.utils": "pyjon",
- "python_jsonrpc": "pyjsonrpc",
- "Pykka": "pykka",
- "PyLogo": "pylogo",
- "adhocracy_Pylons": "pylons",
- "libmagic": "pymagic",
- "Amalwebcrawler": "pymycraawler",
- "AbakaffeNotifier": "pynma",
- "Pyphen": "pyphen",
- "AEI": "pyrimaa",
- "adhocracy_pysqlite": "pysqlite2",
- "pysqlite": "pysqlite2",
- "python_gettext": "pythongettext",
- "python_json_logger": "pythonjsonlogger",
- "PyUtilib": "pyutilib",
- "Cython": "pyximport",
- "qserve": "qs",
- "django_quickapi": "quickapi",
- "nose_quickunit": "quickunit",
- "radical.pilot": "radical",
- "radical.utils": "radical",
- "readability_lxml": "readability",
- "gnureadline": "readline",
- "django_recaptcha_works": "recaptcha_works",
- "RelStorage": "relstorage",
- "django_reportapi": "reportapi",
- "Requests": "requests",
- "requirements_parser": "requirements",
- "djangorestframework": "rest_framework",
- "py_restclient": "restclient",
- "async_retrial": "retrial",
- "django_reversion": "reversion",
- "rhaptos2.common": "rhaptos2",
- "robotframework": "robot",
- "django_robots": "robots",
- "rosdep": "rosdep2",
- "RSFile": "rsbackends",
- "ruamel.base": "ruamel",
- "pysaml2": "xmlenc",
- "saga_python": "saga",
- "aws-sam-translator": "samtranslator",
- "libsass": "sassutils",
- "alex_sayhi": "sayhi",
- "scalr": "scalrtools",
- "scikits.talkbox": "scikits",
- "scratchpy": "scratch",
- "pyScss": "scss",
- "dict.sorted": "sdict",
- "android_sdk_updater": "sdk_updater",
- "django_sekizai": "sekizai",
- "pysendfile": "sendfile",
- "pyserial": "serial",
- "astor": "setuputils",
- "pyshp": "shapefile",
- "Shapely": "shapely",
- "ahonya_sika": "sika",
- "pysingleton": "singleton",
- "scikit_bio": "skbio",
- "scikit_learn": "sklearn",
- "slackclient": "slack",
- "unicode_slugify": "slugify",
- "smk_python_sdk": "smarkets",
- "ctypes_snappy": "snappy",
- "gevent_socketio": "socketio",
- "sockjs_tornado": "sockjs",
- "SocksiPy_branch": "socks",
- "solrpy": "solr",
- "Solution": "solution",
- "sorl_thumbnail": "sorl",
- "South": "south",
- "Sphinx": "sphinx",
- "ATD_document": "sphinx_pypi_upload",
- "sphinxcontrib_programoutput": "sphinxcontrib",
- "SQLAlchemy": "sqlalchemy",
- "atlas": "src",
- "auto_mix_prep": "src",
- "bw_stats_toolkit": "stats_toolkit",
- "dogstatsd_python": "statsd",
- "python_stdnum": "stdnum",
- "StoneageHTML": "stoneagehtml",
- "django_storages": "storages",
- "mox": "stubout",
- "suds_jurko": "suds",
- "python_swiftclient": "swiftclient",
- "pytabix": "test",
- "django_taggit": "taggit",
- "django_tastypie": "tastypie",
- "teamcity_messages": "teamcity",
- "pyTelegramBotAPI": "telebot",
- "Tempita": "tempita",
- "Tenjin": "tenjin",
- "python_termstyle": "termstyle",
- "treeherder_client": "thclient",
- "django_threaded_multihost": "threaded_multihost",
- "3color_Press": "threecolor",
- "pytidylib": "tidylib",
- "3lwg": "tlw",
- "toredis_fork": "toredis",
- "tornado_redis": "tornadoredis",
- "ansible_tower_cli": "tower_cli",
- "Trac": "tracopt",
- "android_localization_helper": "translation_helper",
- "django_treebeard": "treebeard",
- "trytond_stock": "trytond",
- "tsuru_circus": "tsuru",
- "python_tvrage": "tvrage",
- "tw2.core": "tw2",
- "tw2.d3": "tw2",
- "tw2.dynforms": "tw2",
- "tw2.excanvas": "tw2",
- "tw2.forms": "tw2",
- "tw2.jit": "tw2",
- "tw2.jqplugins.flot": "tw2",
- "tw2.jqplugins.gritter": "tw2",
- "tw2.jqplugins.ui": "tw2",
- "tw2.jquery": "tw2",
- "tw2.sqla": "tw2",
- "Twisted": "twisted",
- "python_twitter": "twitter",
- "transifex_client": "txclib",
- "115wangpan": "u115",
- "Unidecode": "unidecode",
- "ansible_universe": "universe",
- "pyusb": "usb",
- "useless.pipes": "useless",
- "auth_userpass": "userpass",
- "automakesetup.py": "utilities",
- "aino_utkik": "utkik",
- "uWSGI": "uwsgidecorators",
- "ab": "valentine",
- "configobj": "validate",
- "chartio": "version",
- "ar_virtualenv_api": "virtualenvapi",
- "brocade_plugins": "vyatta",
- "WebOb": "webob",
- "websocket_client": "websocket",
- "WebTest": "webtest",
- "Werkzeug": "werkzeug",
- "wheezy.caching": "wheezy",
- "wheezy.core": "wheezy",
- "wheezy.http": "wheezy",
- "tiddlywebwiki": "wikklytext",
- "pywinrm": "winrm",
- "Alfred_Workflow": "workflow",
- "WSME": "wsmeext",
- "WTForms": "wtforms",
- "wtf_peewee": "wtfpeewee",
- "pyxdg": "xdg",
- "pytest_xdist": "xdist",
- "xmpppy": "xmpp",
- "XStatic_Font_Awesome": "xstatic",
- "XStatic_jQuery": "xstatic",
- "XStatic_jquery_ui": "xstatic",
- "PyYAML": "yaml",
- "z3c.autoinclude": "z3c",
- "z3c.caching": "z3c",
- "z3c.form": "z3c",
- "z3c.formwidget.query": "z3c",
- "z3c.objpath": "z3c",
- "z3c.pt": "z3c",
- "z3c.relationfield": "z3c",
- "z3c.traverser": "z3c",
- "z3c.zcmlhook": "z3c",
- "pyzmq": "zmq",
- "zopyx.textindexng3": "zopyx"
-}
diff --git a/docs-v2/next-sitemap.config.js b/docs-v2/next-sitemap.config.js
deleted file mode 100644
index af36b94bdc385..0000000000000
--- a/docs-v2/next-sitemap.config.js
+++ /dev/null
@@ -1,33 +0,0 @@
-/** @type {import('next-sitemap').IConfig} */
-module.exports = {
- siteUrl: "https://pipedream.com/docs",
- generateRobotsTxt: true,
- outDir: "public",
- changefreq: "daily",
- priority: 0.7,
- generateIndexSitemap: false,
- exclude: [
- "/hidden/*",
- "/deprecated/*",
- ],
- transform: async (config, path) => {
- // Add any custom transformations for URL paths here if needed in the future
- return {
- loc: path,
- changefreq: config.changefreq,
- priority: config.priority,
- lastmod: config.autoLastmod
- ? new Date().toISOString()
- : undefined,
- alternateRefs: config.alternateRefs ?? [],
- };
- },
- robotsTxtOptions: {
- policies: [
- {
- userAgent: "*",
- allow: "/",
- },
- ],
- },
-};
diff --git a/docs-v2/next.config.mjs b/docs-v2/next.config.mjs
deleted file mode 100644
index 7f792c7ea65dc..0000000000000
--- a/docs-v2/next.config.mjs
+++ /dev/null
@@ -1,661 +0,0 @@
-import nextra from "nextra";
-
-const withNextra = nextra({
- theme: "nextra-theme-docs",
- themeConfig: "./theme.config.tsx",
- defaultShowCopyCode: true,
-});
-
-export default withNextra({
- basePath: "/docs",
- trailingSlash: true,
- images: {
- remotePatterns: [
- {
- protocol: "https",
- hostname: "res.cloudinary.com",
- },
- ],
- },
- // Add custom headers for better cross-origin support
- async headers() {
- return [
- {
- // Apply to all routes serving the Connect demo pages
- source: "/connect/:path*",
- headers: [
- {
- key: "Cross-Origin-Opener-Policy",
- value: "same-origin-allow-popups",
- },
- ],
- },
- ];
- },
- async redirects() {
- return [
- {
- source: "/apps/apps/",
- destination: "/apps/",
- permanent: true,
- },
- {
- source: "/v3/",
- destination: "/",
- permanent: true,
- },
- {
- source: "/v3/:path*/",
- destination: "/:path*/",
- permanent: true,
- },
- {
- source: "/what-is-pipedream/",
- destination: "/",
- permanent: true,
- },
- {
- source: "/integrations/",
- destination: "/integrations/apps/",
- permanent: true,
- },
- {
- source: "/apps/guide/requesting-additional-oauth-scopes/",
- destination: "/integrations/oauth-clients/",
- permanent: true,
- },
- {
- source: "/apps/contributing/",
- destination: "/workflows/contributing/",
- permanent: true,
- },
- {
- source: "/apps/all-apps/",
- destination: "https://pipedream.com/apps/",
- permanent: true,
- },
- {
- source: "/apps/connected-accounts/external-auth/",
- destination: "/connect/",
- permanent: true,
- },
-
- {
- source: "/support/",
- destination: "https://pipedream.com/support/",
- permanent: true,
- },
- {
- source: "/security/",
- destination: "/privacy-and-security/",
- permanent: true,
- },
- {
- source: "/user-settings/",
- destination: "/account/user-settings/",
- permanent: true,
- },
- {
- source: "/quickstart/run-workflow-on-a-schedule/",
- destination: "/workflows/quickstart/",
- permanent: true,
- },
- {
- source: "/quickstart/",
- destination: "/workflows/quickstart/",
- permanent: true,
- },
- {
- source: "/quickstart/github-sync/",
- destination: "/workflows/git/",
- permanent: true,
- },
- {
- source: "/cron/",
- destination: "/workflows/building-workflows/triggers/",
- permanent: true,
- },
- {
- source: "/notebook/",
- destination: "/workflows/",
- permanent: true,
- },
- {
- source: "/notebook/actions/",
- destination: "/workflows/building-workflows/actions/",
- permanent: true,
- },
- {
- source: "/notebook/fork/",
- destination: "/workflows/building-workflows/sharing/",
- permanent: true,
- },
- {
- source: "/notebook/inspector/",
- destination: "/workflows/building-workflows/inspect/",
- permanent: true,
- },
- {
- source: "/notebook/destinations/snowflake/",
- destination: "/workflows/data-management/databases/",
- permanent: true,
- },
- {
- source: "/notebook/destinations/:path*/",
- destination: "/workflows/data-management/destinations/:path*/",
- permanent: true,
- },
- {
- source: "/notebook/destinations/",
- destination: "/workflows/data-management/destinations/",
- permanent: true,
- },
- {
- source: "/notebook/code/",
- destination: "/workflows/building-workflows/code/",
- permanent: true,
- },
- {
- source: "/notebook/observability/",
- destination: "/workflows/building-workflows/inspect/",
- permanent: true,
- },
- {
- source: "/notebook/sources/",
- destination: "/workflows/building-workflows/triggers/",
- permanent: true,
- },
- {
- source: "/notebook/sql/",
- destination: "/workflows/data-management/databases/working-with-sql/",
- permanent: true,
- },
- {
- source: "/sources/",
- destination: "/workflows/building-workflows/triggers/",
- permanent: true,
- },
- {
- source: "/destinations/",
- destination: "/workflows/data-management/destinations/",
- permanent: true,
- },
- {
- source: "/destinations/:path*/",
- destination: "/workflows/data-management/destinations/:path*/",
- permanent: true,
- },
- {
- source: "/projects/git/",
- destination: "/workflows/git/",
- permanent: true,
- },
- {
- source: "/projects/file-stores/",
- destination: "/workflows/data-management/file-stores/",
- permanent: true,
- },
- {
- source: "/projects/file-stores/:path*/",
- destination: "/workflows/data-management/file-stores/:path*/",
- permanent: true,
- },
- {
- source: "/event-history/",
- destination: "/workflows/event-history/",
- permanent: true,
- },
- {
- source: "/workflows/building-workflows/",
- destination: "/workflows/",
- permanent: true,
- },
- {
- source: "/workflows/concurrency-and-throttling/",
- destination:
- "/workflows/building-workflows/settings/concurrency-and-throttling/",
- permanent: true,
- },
- {
- source: "/workflows/steps/",
- destination: "/workflows/#steps",
- permanent: true,
- },
- {
- source: "/workflows/fork/",
- destination: "/workflows/building-workflows/sharing/",
- permanent: true,
- },
- {
- source: "/workflows/steps/code/async/",
- destination: "/workflows/building-workflows/code/nodejs/async/",
- permanent: true,
- },
- {
- source: "/workflows/steps/code/state/",
- destination: "/workflows/#step-exports",
- permanent: true,
- },
- {
- source: "/workflows/steps/params/",
- destination: "/workflows/building-workflows/using-props/",
- permanent: true,
- },
- {
- source: "/workflows/events/cold-starts/",
- destination:
- "/workflows/building-workflows/settings/#eliminate-cold-starts",
- permanent: true,
- },
- {
- source: "/workflows/examples/waiting-to-execute-next-step-of-workflow/",
- destination: "/workflows/building-workflows/code/nodejs/delay/",
- permanent: true,
- },
- {
- source: "/workflows/networking/",
- destination: "/workflows/vpc/",
- permanent: true,
- },
- {
- source: "/workflows/built-in-functions/",
- destination: "/workflows/building-workflows/actions/",
- permanent: true,
- },
- {
- source: "/workflows/events/inspect/",
- destination: "/workflows/building-workflows/inspect/",
- permanent: true,
- },
- {
- source: "/workflows/triggers/",
- destination: "/workflows/building-workflows/triggers/",
- permanent: true,
- },
- {
- source: "/workflows/steps/triggers/",
- destination: "/workflows/building-workflows/triggers/",
- permanent: true,
- },
- {
- source: "/workflows/actions/",
- destination: "/workflows/building-workflows/actions/",
- permanent: true,
- },
- {
- source: "/workflows/steps/actions/",
- destination: "/workflows/building-workflows/actions/",
- permanent: true,
- },
- {
- source: "/workflows/flow-control/",
- destination: "/workflows/building-workflows/control-flow/",
- permanent: true,
- },
- {
- source: "/workflows/control-flow/",
- destination: "/workflows/building-workflows/control-flow/",
- permanent: true,
- },
- {
- source: "/workflows/sharing/",
- destination: "/workflows/building-workflows/sharing/",
- permanent: true,
- },
- {
- source: "/workflows/settings/",
- destination: "/workflows/building-workflows/settings/",
- permanent: true,
- },
- {
- source: "/code/",
- destination: "/workflows/building-workflows/code/",
- permanent: true,
- },
- {
- source: "/code/:path*/",
- destination: "/workflows/building-workflows/code/:path*/",
- permanent: true,
- },
- {
- source: "/http/",
- destination: "/workflows/building-workflows/http/",
- permanent: true,
- },
- {
- source: "/environment-variables/",
- destination: "/workflows/environment-variables/",
- permanent: true,
- },
- {
- source: "/components/quickstart/nodejs/actions/",
- destination: "/workflows/contributing/components/actions-quickstart/",
- permanent: true,
- },
- {
- source: "/components/",
- destination: "/components/contributing/",
- permanent: true,
- },
- {
- source: "/components/api/",
- destination: "/components/contributing/api/",
- permanent: true,
- },
- {
- source: "/components/quickstart/:path*/",
- destination: "/components/contributing/:path*/",
- permanent: true,
- },
- {
- source: "/components/guidelines/",
- destination: "/components/contributing/guidelines/",
- permanent: true,
- },
- {
- source: "/components/actions-quickstart/",
- destination: "/components/contributing/actions-quickstart/",
- permanent: true,
- },
- {
- source: "/components/sources-quickstart/",
- destination: "/components/contributing/sources-quickstart/",
- permanent: true,
- },
- {
- source: "/components/typescript/",
- destination: "/components/contributing/typescript/",
- permanent: true,
- },
- {
- source: "/github-sync/",
- destination: "/workflows/git/",
- permanent: true,
- },
- {
- source: "/components/typescript/",
- destination: "/components/contributing/typescript/",
- permanent: true,
- },
- {
- source: "/github-sync/",
- destination: "/workflows/git/",
- permanent: true,
- },
- {
- source: "/workspaces/okta/",
- destination: "/workflows/workspaces/sso/okta/",
- permanent: true,
- },
- {
- source: "/workspaces/google/",
- destination: "/workflows/workspaces/sso/google/",
- permanent: true,
- },
- {
- source: "/workspaces/saml/",
- destination: "/workflows/workspaces/sso/saml/",
- permanent: true,
- },
- {
- source: "/workspaces-and-credits-faq/",
- destination: "/pricing/faq/",
- permanent: true,
- },
- {
- source: "/connected-accounts/api/",
- destination: "/connect/api/#accounts/",
- permanent: true,
- },
- {
- source: "/connected-accounts/",
- destination: "/integrations/connected-accounts/",
- permanent: true,
- },
- {
- source: "/connected-accounts/:path*/",
- destination: "/integrations/connected-accounts/:path*/",
- permanent: true,
- },
- {
- source: "/api/",
- destination: "/rest-api/",
- permanent: true,
- },
- {
- source: "/api/:path*/",
- destination: "/rest-api/:path*/",
- permanent: true,
- },
- {
- source: "/data-stores/",
- destination: "/workflows/data-management/data-stores/",
- permanent: true,
- },
- {
- source: "/databases/",
- destination: "/workflows/data-management/databases/",
- permanent: true,
- },
- {
- source: "/databases/:path*/",
- destination: "/workflows/data-management/databases/:path*/",
- permanent: true,
- },
- {
- source: "/cli/",
- destination: "/components/contributing/cli/reference/",
- permanent: true,
- },
- {
- source: "/cli/reference/",
- destination: "/components/contributing/cli/reference/",
- permanent: true,
- },
- {
- source: "/cli/login/",
- destination: "/components/contributing/cli/login/",
- permanent: true,
- },
- {
- source: "/cli/install/",
- destination: "/components/contributing/cli/install/",
- permanent: true,
- },
- {
- source: "/cli/:path*",
- destination: "/components/contributing/cli/:path*",
- permanent: true,
- },
- {
- source: "/workflows/cli/",
- destination: "/components/contributing/cli/reference/",
- permanent: true,
- },
- {
- source: "/workflows/cli/:path*",
- destination: "/components/contributing/cli/:path*",
- permanent: true,
- },
- {
- source: "/limits/",
- destination: "/workflows/limits/",
- permanent: true,
- },
- {
- source: "/connect/connect-link/",
- destination: "/connect/managed-auth/connect-link/",
- permanent: true,
- },
- {
- source: "/connect/customize-your-app/",
- destination: "/connect/managed-auth/customization/",
- permanent: true,
- },
- {
- source: "/connect/oauth-clients/",
- destination: "/connect/managed-auth/oauth-clients/",
- permanent: true,
- },
- {
- source: "/connect/quickstart/",
- destination: "/connect/managed-auth/quickstart/",
- permanent: true,
- },
- {
- source: "/connect/tokens/",
- destination: "/connect/managed-auth/tokens/",
- permanent: true,
- },
- {
- source: "/connect/webhooks/",
- destination: "/connect/managed-auth/webhooks/",
- permanent: true,
- },
- {
- source: "/connect/environments/",
- destination: "/connect/managed-auth/environments/",
- permanent: true,
- },
- {
- source: "/integrations/connected-accounts/oauth-clients/",
- destination: "/integrations/oauth-clients/",
- permanent: true,
- },
- {
- source: "/integrations/",
- destination: "/apps/",
- permanent: true,
- },
- {
- source: "/integrations/:path*/",
- destination: "/apps/:path*/",
- permanent: true,
- },
- {
- source: "/workflows/contributing/components/:path*/",
- destination: "/components/contributing/:path*/",
- permanent: true,
- },
- {
- source: "/workflows/contributing/components/",
- destination: "/components/contributing/",
- permanent: true,
- },
- {
- source: "/workflows/contributing/",
- destination: "/components/contributing/",
- permanent: true,
- },
- {
- source: "/workflows/projects/",
- destination: "/projects/",
- permanent: true,
- },
- {
- source: "/workflows/projects/:path*/",
- destination: "/projects/:path*/",
- permanent: true,
- },
- {
- source: "/workflows/workspaces/:path*/",
- destination: "/workspaces/:path*/",
- permanent: true,
- },
- {
- source: "/workflows/workspaces/",
- destination: "/workspaces/",
- permanent: true,
- },
- ];
- },
- async rewrites() {
- return [
- {
- source: "/shopify-faq-2023-10",
- destination: "/deprecated/shopify-faq-2023-10",
- },
- {
- source: "/abuse",
- destination: "/hidden/abuse",
- },
- {
- source: "/scheduling-future-tasks",
- destination: "/hidden/scheduling-future-tasks",
- },
- {
- source: "/status",
- destination: "/hidden/status",
- },
- {
- source: "/subprocessors",
- destination: "/hidden/subprocessors",
- },
- {
- source: "/api-demo-connect/token",
- destination: "/api/demo-connect/token",
- },
- {
- source: "/api-demo-connect/token/",
- destination: "/api/demo-connect/token",
- },
- {
- source: "/api-demo-connect/accounts/:id",
- destination: "/api/demo-connect/accounts/:id",
- },
- {
- source: "/api-demo-connect/accounts/:id/",
- destination: "/api/demo-connect/accounts/:id",
- },
- {
- source: "/api-demo-connect/apps",
- destination: "/api/demo-connect/apps",
- },
- {
- source: "/api-demo-connect/apps/",
- destination: "/api/demo-connect/apps",
- },
- {
- source: "/workflows/errors/",
- destination: "/workflows/building-workflows/errors/",
- },
- ];
- },
- env: {
- PIPEDREAM_NODE_VERSION: "20",
- PIPEDREAM_BASE_URL: "https://pipedream.com",
- API_BASE_URL: "https://api.pipedream.com/v1",
- SQL_API_BASE_URL: "https://rt.pipedream.com/sql",
- ENDPOINT_BASE_URL: "*.m.pipedream.net",
- PAYLOAD_SIZE_LIMIT: "512KB",
- MEMORY_LIMIT: "256MB",
- MEMORY_ABSOLUTE_LIMIT: "10GB",
- EMAIL_PAYLOAD_SIZE_LIMIT: "30MB",
- MAX_WORKFLOW_EXECUTION_LIMIT: "750",
- BASE_CREDITS_PRICE_MEMORY: "256",
- BASE_CREDITS_PRICE_SECONDS: "30",
- DAILY_TESTING_LIMIT: "30 minutes",
- INSPECTOR_EVENT_EXPIRY_DAYS: "365",
- FUNCTION_PAYLOAD_LIMIT: "6MB",
- DEFAULT_WORKFLOW_QUEUE_SIZE: "100",
- MAX_WORKFLOW_QUEUE_SIZE: "10,000",
- PYTHON_VERSION: "3.12",
- GO_LANG_VERSION: "1.21.5",
- CONFIGURED_PROPS_SIZE_LIMIT: "64KB",
- SERVICE_DB_SIZE_LIMIT: "60KB",
- TMP_SIZE_LIMIT: "2GB",
- DELAY_MIN_MAX_TIME:
- "You can pause your workflow for as little as one millisecond, or as long as one year",
- PUBLIC_APPS: "2,700",
- REGISTRY_ACTIONS: "5,300",
- REGISTRY_SOURCES: "2,500",
- REGISTRY_COMPONENTS: "8,000",
- FREE_INSPECTOR_EVENT_LIMIT: "7 days of events",
- WARM_WORKERS_INTERVAL: "10 minutes",
- WARM_WORKERS_CREDITS_PER_INTERVAL: "5",
- ALGOLIA_APP_ID: "XY28M447C5",
- ALGOLIA_SEARCH_API_KEY: "a7d274c84696bac04e14cc87139d9eaf",
- ALGOLIA_INDEX_NAME: "pipedream",
- PD_EGRESS_IP_RANGE: "44.223.89.56/29",
- },
-});
diff --git a/docs-v2/package-lock.json b/docs-v2/package-lock.json
deleted file mode 100644
index 7dc9508c53225..0000000000000
--- a/docs-v2/package-lock.json
+++ /dev/null
@@ -1,11679 +0,0 @@
-{
- "name": "@pipedream/docs",
- "version": "0.0.1",
- "lockfileVersion": 3,
- "requires": true,
- "packages": {
- "": {
- "name": "@pipedream/docs",
- "version": "0.0.1",
- "license": "MIT",
- "dependencies": {
- "@docsearch/react": "^3.8.1",
- "@pipedream/sdk": "^1.5.3",
- "@vercel/analytics": "^1.5.0",
- "chalk": "^5.3.0",
- "jest": "^29.7.0",
- "lint-staged": "^15.2.7",
- "next": "^14.2.5",
- "nextra": "^3",
- "nextra-theme-docs": "^3",
- "prismjs": "^1.30.0",
- "react": "^18.3.1",
- "react-dom": "^18.3.1",
- "react-markdown": "^9.0.1",
- "sharp": "^0.33.4"
- },
- "devDependencies": {
- "@types/node": "18.11.10",
- "autoprefixer": "^10.4.19",
- "next-sitemap": "^4.2.3",
- "postcss": "^8.4.40",
- "prettier": "^3.3.3",
- "tailwindcss": "^3.4.7",
- "typescript": "^5.5.4"
- },
- "engines": {
- "node": "20.9.0",
- "pnpm": "9.14.2"
- }
- },
- "node_modules/@algolia/autocomplete-core": {
- "version": "1.17.7",
- "resolved": "https://registry.npmjs.org/@algolia/autocomplete-core/-/autocomplete-core-1.17.7.tgz",
- "integrity": "sha512-BjiPOW6ks90UKl7TwMv7oNQMnzU+t/wk9mgIDi6b1tXpUek7MW0lbNOUHpvam9pe3lVCf4xPFT+lK7s+e+fs7Q==",
- "dependencies": {
- "@algolia/autocomplete-plugin-algolia-insights": "1.17.7",
- "@algolia/autocomplete-shared": "1.17.7"
- }
- },
- "node_modules/@algolia/autocomplete-plugin-algolia-insights": {
- "version": "1.17.7",
- "resolved": "https://registry.npmjs.org/@algolia/autocomplete-plugin-algolia-insights/-/autocomplete-plugin-algolia-insights-1.17.7.tgz",
- "integrity": "sha512-Jca5Ude6yUOuyzjnz57og7Et3aXjbwCSDf/8onLHSQgw1qW3ALl9mrMWaXb5FmPVkV3EtkD2F/+NkT6VHyPu9A==",
- "dependencies": {
- "@algolia/autocomplete-shared": "1.17.7"
- },
- "peerDependencies": {
- "search-insights": ">= 1 < 3"
- }
- },
- "node_modules/@algolia/autocomplete-preset-algolia": {
- "version": "1.17.7",
- "resolved": "https://registry.npmjs.org/@algolia/autocomplete-preset-algolia/-/autocomplete-preset-algolia-1.17.7.tgz",
- "integrity": "sha512-ggOQ950+nwbWROq2MOCIL71RE0DdQZsceqrg32UqnhDz8FlO9rL8ONHNsI2R1MH0tkgVIDKI/D0sMiUchsFdWA==",
- "dependencies": {
- "@algolia/autocomplete-shared": "1.17.7"
- },
- "peerDependencies": {
- "@algolia/client-search": ">= 4.9.1 < 6",
- "algoliasearch": ">= 4.9.1 < 6"
- }
- },
- "node_modules/@algolia/autocomplete-shared": {
- "version": "1.17.7",
- "resolved": "https://registry.npmjs.org/@algolia/autocomplete-shared/-/autocomplete-shared-1.17.7.tgz",
- "integrity": "sha512-o/1Vurr42U/qskRSuhBH+VKxMvkkUVTLU6WZQr+L5lGZZLYWyhdzWjW0iGXY7EkwRTjBqvN2EsR81yCTGV/kmg==",
- "peerDependencies": {
- "@algolia/client-search": ">= 4.9.1 < 6",
- "algoliasearch": ">= 4.9.1 < 6"
- }
- },
- "node_modules/@algolia/client-abtesting": {
- "version": "5.23.2",
- "resolved": "https://registry.npmjs.org/@algolia/client-abtesting/-/client-abtesting-5.23.2.tgz",
- "integrity": "sha512-EudQGeYEzviwqPH8WoqP5VTQssE/PW6sEdL0zzOyKt2bWnWoUp5Rnm67sCbxYDR44JpUchbkul0PfWrSYsBPjQ==",
- "dependencies": {
- "@algolia/client-common": "5.23.2",
- "@algolia/requester-browser-xhr": "5.23.2",
- "@algolia/requester-fetch": "5.23.2",
- "@algolia/requester-node-http": "5.23.2"
- },
- "engines": {
- "node": ">= 14.0.0"
- }
- },
- "node_modules/@algolia/client-analytics": {
- "version": "5.23.2",
- "resolved": "https://registry.npmjs.org/@algolia/client-analytics/-/client-analytics-5.23.2.tgz",
- "integrity": "sha512-zmJrkZqWFu+ft+VRcttZZJhw5ElkhBtOArRzQOu9sRnrSSodBOdPRhAfvu8tG93Hv67wh5qQaTBwLxM58AxuMg==",
- "dependencies": {
- "@algolia/client-common": "5.23.2",
- "@algolia/requester-browser-xhr": "5.23.2",
- "@algolia/requester-fetch": "5.23.2",
- "@algolia/requester-node-http": "5.23.2"
- },
- "engines": {
- "node": ">= 14.0.0"
- }
- },
- "node_modules/@algolia/client-common": {
- "version": "5.23.2",
- "resolved": "https://registry.npmjs.org/@algolia/client-common/-/client-common-5.23.2.tgz",
- "integrity": "sha512-xaE6o4BMdqYBe0iB7JjX6G9/Qeqx6TSs9T4d6VJ0JHPsEyklSwIbKRiomPeYD7vzt2P4t45Io6QBhifOUP+0qg==",
- "engines": {
- "node": ">= 14.0.0"
- }
- },
- "node_modules/@algolia/client-insights": {
- "version": "5.23.2",
- "resolved": "https://registry.npmjs.org/@algolia/client-insights/-/client-insights-5.23.2.tgz",
- "integrity": "sha512-F85hpMszbr5ZGt8gFdl7WOugELRF4z3R1nD9n3t7PZ/2alV7IR75UQY8/jMQDwij/lrnVaKbLeIvKKy6K7ncZw==",
- "dependencies": {
- "@algolia/client-common": "5.23.2",
- "@algolia/requester-browser-xhr": "5.23.2",
- "@algolia/requester-fetch": "5.23.2",
- "@algolia/requester-node-http": "5.23.2"
- },
- "engines": {
- "node": ">= 14.0.0"
- }
- },
- "node_modules/@algolia/client-personalization": {
- "version": "5.23.2",
- "resolved": "https://registry.npmjs.org/@algolia/client-personalization/-/client-personalization-5.23.2.tgz",
- "integrity": "sha512-TuGaGKiQvQqFNR4c3Vdl+JBe6dkEPmRzVyIdWLrurOPEmFmVCKRxtSnLr0TVFl6de/JfDAXuchvtvLHFxv9P2A==",
- "dependencies": {
- "@algolia/client-common": "5.23.2",
- "@algolia/requester-browser-xhr": "5.23.2",
- "@algolia/requester-fetch": "5.23.2",
- "@algolia/requester-node-http": "5.23.2"
- },
- "engines": {
- "node": ">= 14.0.0"
- }
- },
- "node_modules/@algolia/client-query-suggestions": {
- "version": "5.23.2",
- "resolved": "https://registry.npmjs.org/@algolia/client-query-suggestions/-/client-query-suggestions-5.23.2.tgz",
- "integrity": "sha512-fg2tZf7Sf51Icjfrea0dnfbfwlJ7kXMcRsWSJN3DZhEi/Y4mMmK9L0Cq8sby6HDzxy5T8xEWNWC3TMx5FvrJ6w==",
- "dependencies": {
- "@algolia/client-common": "5.23.2",
- "@algolia/requester-browser-xhr": "5.23.2",
- "@algolia/requester-fetch": "5.23.2",
- "@algolia/requester-node-http": "5.23.2"
- },
- "engines": {
- "node": ">= 14.0.0"
- }
- },
- "node_modules/@algolia/client-search": {
- "version": "5.23.2",
- "resolved": "https://registry.npmjs.org/@algolia/client-search/-/client-search-5.23.2.tgz",
- "integrity": "sha512-XiTjt0qgsJk9OqvDpMwTgUaPAYNSQcMILRfSYiorgiyc71yYM7Lq1vRSVxhB0m51mrViWj4rIR6kSiJRXebqvQ==",
- "dependencies": {
- "@algolia/client-common": "5.23.2",
- "@algolia/requester-browser-xhr": "5.23.2",
- "@algolia/requester-fetch": "5.23.2",
- "@algolia/requester-node-http": "5.23.2"
- },
- "engines": {
- "node": ">= 14.0.0"
- }
- },
- "node_modules/@algolia/ingestion": {
- "version": "1.23.2",
- "resolved": "https://registry.npmjs.org/@algolia/ingestion/-/ingestion-1.23.2.tgz",
- "integrity": "sha512-7ClIghvUFZTomBipD8Kor9Z5llcAM3lHUBG3VFOvUsOxOJcaMMONlBXyoFDfI1na+u14lVaGehY2oIEfY1eB0w==",
- "dependencies": {
- "@algolia/client-common": "5.23.2",
- "@algolia/requester-browser-xhr": "5.23.2",
- "@algolia/requester-fetch": "5.23.2",
- "@algolia/requester-node-http": "5.23.2"
- },
- "engines": {
- "node": ">= 14.0.0"
- }
- },
- "node_modules/@algolia/monitoring": {
- "version": "1.23.2",
- "resolved": "https://registry.npmjs.org/@algolia/monitoring/-/monitoring-1.23.2.tgz",
- "integrity": "sha512-kF7KKd0iIIlaD70flFS+8+DNxRvIzrG9A22iWG5LDX225Kl6pITroq+qIUweqqyyoqJBYuIXKZGDGtnahEwQxw==",
- "dependencies": {
- "@algolia/client-common": "5.23.2",
- "@algolia/requester-browser-xhr": "5.23.2",
- "@algolia/requester-fetch": "5.23.2",
- "@algolia/requester-node-http": "5.23.2"
- },
- "engines": {
- "node": ">= 14.0.0"
- }
- },
- "node_modules/@algolia/recommend": {
- "version": "5.23.2",
- "resolved": "https://registry.npmjs.org/@algolia/recommend/-/recommend-5.23.2.tgz",
- "integrity": "sha512-nAgS2O5ww8J4fgW6GAiybAdr0uH7MV74srPdx51cPJRpQBEge4WnYBaOWx1/a53qI0xwNtQudnEyBGUzsSYaAw==",
- "dependencies": {
- "@algolia/client-common": "5.23.2",
- "@algolia/requester-browser-xhr": "5.23.2",
- "@algolia/requester-fetch": "5.23.2",
- "@algolia/requester-node-http": "5.23.2"
- },
- "engines": {
- "node": ">= 14.0.0"
- }
- },
- "node_modules/@algolia/requester-browser-xhr": {
- "version": "5.23.2",
- "resolved": "https://registry.npmjs.org/@algolia/requester-browser-xhr/-/requester-browser-xhr-5.23.2.tgz",
- "integrity": "sha512-yw6IzgQcwr4cZuoQCEoQui9G0rhVRGCyhPhW+gmrXe6oVr4qB50FV6mWGLA170+iqGVjPn/DVuOhExjBzcViTQ==",
- "dependencies": {
- "@algolia/client-common": "5.23.2"
- },
- "engines": {
- "node": ">= 14.0.0"
- }
- },
- "node_modules/@algolia/requester-fetch": {
- "version": "5.23.2",
- "resolved": "https://registry.npmjs.org/@algolia/requester-fetch/-/requester-fetch-5.23.2.tgz",
- "integrity": "sha512-8rmSybTwIqmGx3P0qkOEUkkyeIewglaKq6yUnxnVkBJbd4USfIZsw9cME1YUEHeZI7aOhTQg9QteUHSKXclF5A==",
- "dependencies": {
- "@algolia/client-common": "5.23.2"
- },
- "engines": {
- "node": ">= 14.0.0"
- }
- },
- "node_modules/@algolia/requester-node-http": {
- "version": "5.23.2",
- "resolved": "https://registry.npmjs.org/@algolia/requester-node-http/-/requester-node-http-5.23.2.tgz",
- "integrity": "sha512-IHpUiW3d3oVE5tCYqQN7X71/EbXI7f8WxU85eWW1UYEWEknqW3csdGctyIW7+qMHFfxeDymI1Wln/gGHHIXLIw==",
- "dependencies": {
- "@algolia/client-common": "5.23.2"
- },
- "engines": {
- "node": ">= 14.0.0"
- }
- },
- "node_modules/@alloc/quick-lru": {
- "version": "5.2.0",
- "resolved": "https://registry.npmjs.org/@alloc/quick-lru/-/quick-lru-5.2.0.tgz",
- "integrity": "sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==",
- "dev": true,
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/@ampproject/remapping": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz",
- "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==",
- "dependencies": {
- "@jridgewell/gen-mapping": "^0.3.5",
- "@jridgewell/trace-mapping": "^0.3.24"
- },
- "engines": {
- "node": ">=6.0.0"
- }
- },
- "node_modules/@antfu/install-pkg": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/@antfu/install-pkg/-/install-pkg-1.0.0.tgz",
- "integrity": "sha512-xvX6P/lo1B3ej0OsaErAjqgFYzYVcJpamjLAFLYh9vRJngBrMoUG7aVnrGTeqM7yxbyTD5p3F2+0/QUEh8Vzhw==",
- "dependencies": {
- "package-manager-detector": "^0.2.8",
- "tinyexec": "^0.3.2"
- },
- "funding": {
- "url": "https://github.com/sponsors/antfu"
- }
- },
- "node_modules/@antfu/utils": {
- "version": "8.1.1",
- "resolved": "https://registry.npmjs.org/@antfu/utils/-/utils-8.1.1.tgz",
- "integrity": "sha512-Mex9nXf9vR6AhcXmMrlz/HVgYYZpVGJ6YlPgwl7UnaFpnshXs6EK/oa5Gpf3CzENMjkvEx2tQtntGnb7UtSTOQ==",
- "funding": {
- "url": "https://github.com/sponsors/antfu"
- }
- },
- "node_modules/@babel/code-frame": {
- "version": "7.26.2",
- "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.26.2.tgz",
- "integrity": "sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==",
- "dependencies": {
- "@babel/helper-validator-identifier": "^7.25.9",
- "js-tokens": "^4.0.0",
- "picocolors": "^1.0.0"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/compat-data": {
- "version": "7.26.8",
- "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.26.8.tgz",
- "integrity": "sha512-oH5UPLMWR3L2wEFLnFJ1TZXqHufiTKAiLfqw5zkhS4dKXLJ10yVztfil/twG8EDTA4F/tvVNw9nOl4ZMslB8rQ==",
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/core": {
- "version": "7.26.10",
- "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.26.10.tgz",
- "integrity": "sha512-vMqyb7XCDMPvJFFOaT9kxtiRh42GwlZEg1/uIgtZshS5a/8OaduUfCi7kynKgc3Tw/6Uo2D+db9qBttghhmxwQ==",
- "dependencies": {
- "@ampproject/remapping": "^2.2.0",
- "@babel/code-frame": "^7.26.2",
- "@babel/generator": "^7.26.10",
- "@babel/helper-compilation-targets": "^7.26.5",
- "@babel/helper-module-transforms": "^7.26.0",
- "@babel/helpers": "^7.26.10",
- "@babel/parser": "^7.26.10",
- "@babel/template": "^7.26.9",
- "@babel/traverse": "^7.26.10",
- "@babel/types": "^7.26.10",
- "convert-source-map": "^2.0.0",
- "debug": "^4.1.0",
- "gensync": "^1.0.0-beta.2",
- "json5": "^2.2.3",
- "semver": "^6.3.1"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/babel"
- }
- },
- "node_modules/@babel/generator": {
- "version": "7.27.0",
- "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.27.0.tgz",
- "integrity": "sha512-VybsKvpiN1gU1sdMZIp7FcqphVVKEwcuj02x73uvcHE0PTihx1nlBcowYWhDwjpoAXRv43+gDzyggGnn1XZhVw==",
- "dependencies": {
- "@babel/parser": "^7.27.0",
- "@babel/types": "^7.27.0",
- "@jridgewell/gen-mapping": "^0.3.5",
- "@jridgewell/trace-mapping": "^0.3.25",
- "jsesc": "^3.0.2"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/helper-compilation-targets": {
- "version": "7.27.0",
- "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.27.0.tgz",
- "integrity": "sha512-LVk7fbXml0H2xH34dFzKQ7TDZ2G4/rVTOrq9V+icbbadjbVxxeFeDsNHv2SrZeWoA+6ZiTyWYWtScEIW07EAcA==",
- "dependencies": {
- "@babel/compat-data": "^7.26.8",
- "@babel/helper-validator-option": "^7.25.9",
- "browserslist": "^4.24.0",
- "lru-cache": "^5.1.1",
- "semver": "^6.3.1"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/helper-module-imports": {
- "version": "7.25.9",
- "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.25.9.tgz",
- "integrity": "sha512-tnUA4RsrmflIM6W6RFTLFSXITtl0wKjgpnLgXyowocVPrbYrLUXSBXDgTs8BlbmIzIdlBySRQjINYs2BAkiLtw==",
- "dependencies": {
- "@babel/traverse": "^7.25.9",
- "@babel/types": "^7.25.9"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/helper-module-transforms": {
- "version": "7.26.0",
- "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.26.0.tgz",
- "integrity": "sha512-xO+xu6B5K2czEnQye6BHA7DolFFmS3LB7stHZFaOLb1pAwO1HWLS8fXA+eh0A2yIvltPVmx3eNNDBJA2SLHXFw==",
- "dependencies": {
- "@babel/helper-module-imports": "^7.25.9",
- "@babel/helper-validator-identifier": "^7.25.9",
- "@babel/traverse": "^7.25.9"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0"
- }
- },
- "node_modules/@babel/helper-plugin-utils": {
- "version": "7.26.5",
- "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.26.5.tgz",
- "integrity": "sha512-RS+jZcRdZdRFzMyr+wcsaqOmld1/EqTghfaBGQQd/WnRdzdlvSZ//kF7U8VQTxf1ynZ4cjUcYgjVGx13ewNPMg==",
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/helper-string-parser": {
- "version": "7.25.9",
- "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.25.9.tgz",
- "integrity": "sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==",
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/helper-validator-identifier": {
- "version": "7.25.9",
- "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.9.tgz",
- "integrity": "sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==",
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/helper-validator-option": {
- "version": "7.25.9",
- "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.25.9.tgz",
- "integrity": "sha512-e/zv1co8pp55dNdEcCynfj9X7nyUKUXoUEwfXqaZt0omVOmDe9oOTdKStH4GmAw6zxMFs50ZayuMfHDKlO7Tfw==",
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/helpers": {
- "version": "7.27.0",
- "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.27.0.tgz",
- "integrity": "sha512-U5eyP/CTFPuNE3qk+WZMxFkp/4zUzdceQlfzf7DdGdhp+Fezd7HD+i8Y24ZuTMKX3wQBld449jijbGq6OdGNQg==",
- "dependencies": {
- "@babel/template": "^7.27.0",
- "@babel/types": "^7.27.0"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/parser": {
- "version": "7.27.0",
- "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.27.0.tgz",
- "integrity": "sha512-iaepho73/2Pz7w2eMS0Q5f83+0RKI7i4xmiYeBmDzfRVbQtTOG7Ts0S4HzJVsTMGI9keU8rNfuZr8DKfSt7Yyg==",
- "dependencies": {
- "@babel/types": "^7.27.0"
- },
- "bin": {
- "parser": "bin/babel-parser.js"
- },
- "engines": {
- "node": ">=6.0.0"
- }
- },
- "node_modules/@babel/plugin-syntax-async-generators": {
- "version": "7.8.4",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz",
- "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==",
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.8.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-syntax-bigint": {
- "version": "7.8.3",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz",
- "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==",
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.8.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-syntax-class-properties": {
- "version": "7.12.13",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz",
- "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==",
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.12.13"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-syntax-class-static-block": {
- "version": "7.14.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz",
- "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==",
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.14.5"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-syntax-import-attributes": {
- "version": "7.26.0",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.26.0.tgz",
- "integrity": "sha512-e2dttdsJ1ZTpi3B9UYGLw41hifAubg19AtCu/2I/F1QNVclOBr1dYpTdmdyZ84Xiz43BS/tCUkMAZNLv12Pi+A==",
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.25.9"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-syntax-import-meta": {
- "version": "7.10.4",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz",
- "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==",
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.10.4"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-syntax-json-strings": {
- "version": "7.8.3",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz",
- "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==",
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.8.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-syntax-jsx": {
- "version": "7.25.9",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.25.9.tgz",
- "integrity": "sha512-ld6oezHQMZsZfp6pWtbjaNDF2tiiCYYDqQszHt5VV437lewP9aSi2Of99CK0D0XB21k7FLgnLcmQKyKzynfeAA==",
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.25.9"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-syntax-logical-assignment-operators": {
- "version": "7.10.4",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz",
- "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==",
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.10.4"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": {
- "version": "7.8.3",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz",
- "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==",
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.8.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-syntax-numeric-separator": {
- "version": "7.10.4",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz",
- "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==",
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.10.4"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-syntax-object-rest-spread": {
- "version": "7.8.3",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz",
- "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==",
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.8.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-syntax-optional-catch-binding": {
- "version": "7.8.3",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz",
- "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==",
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.8.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-syntax-optional-chaining": {
- "version": "7.8.3",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz",
- "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==",
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.8.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-syntax-private-property-in-object": {
- "version": "7.14.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz",
- "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==",
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.14.5"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-syntax-top-level-await": {
- "version": "7.14.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz",
- "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==",
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.14.5"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-syntax-typescript": {
- "version": "7.25.9",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.25.9.tgz",
- "integrity": "sha512-hjMgRy5hb8uJJjUcdWunWVcoi9bGpJp8p5Ol1229PoN6aytsLwNMgmdftO23wnCLMfVmTwZDWMPNq/D1SY60JQ==",
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.25.9"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/template": {
- "version": "7.27.0",
- "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.27.0.tgz",
- "integrity": "sha512-2ncevenBqXI6qRMukPlXwHKHchC7RyMuu4xv5JBXRfOGVcTy1mXCD12qrp7Jsoxll1EV3+9sE4GugBVRjT2jFA==",
- "dependencies": {
- "@babel/code-frame": "^7.26.2",
- "@babel/parser": "^7.27.0",
- "@babel/types": "^7.27.0"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/traverse": {
- "version": "7.27.0",
- "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.27.0.tgz",
- "integrity": "sha512-19lYZFzYVQkkHkl4Cy4WrAVcqBkgvV2YM2TU3xG6DIwO7O3ecbDPfW3yM3bjAGcqcQHi+CCtjMR3dIEHxsd6bA==",
- "dependencies": {
- "@babel/code-frame": "^7.26.2",
- "@babel/generator": "^7.27.0",
- "@babel/parser": "^7.27.0",
- "@babel/template": "^7.27.0",
- "@babel/types": "^7.27.0",
- "debug": "^4.3.1",
- "globals": "^11.1.0"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/types": {
- "version": "7.27.0",
- "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.27.0.tgz",
- "integrity": "sha512-H45s8fVLYjbhFH62dIJ3WtmJ6RSPt/3DRO0ZcT2SUiYiQyz3BLVb9ADEnLl91m74aQPS3AzzeajZHYOalWe3bg==",
- "dependencies": {
- "@babel/helper-string-parser": "^7.25.9",
- "@babel/helper-validator-identifier": "^7.25.9"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@bcoe/v8-coverage": {
- "version": "0.2.3",
- "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz",
- "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw=="
- },
- "node_modules/@braintree/sanitize-url": {
- "version": "7.1.1",
- "resolved": "https://registry.npmjs.org/@braintree/sanitize-url/-/sanitize-url-7.1.1.tgz",
- "integrity": "sha512-i1L7noDNxtFyL5DmZafWy1wRVhGehQmzZaz1HiN5e7iylJMSZR7ekOV7NsIqa5qBldlLrsKv4HbgFUVlQrz8Mw=="
- },
- "node_modules/@chevrotain/cst-dts-gen": {
- "version": "11.0.3",
- "resolved": "https://registry.npmjs.org/@chevrotain/cst-dts-gen/-/cst-dts-gen-11.0.3.tgz",
- "integrity": "sha512-BvIKpRLeS/8UbfxXxgC33xOumsacaeCKAjAeLyOn7Pcp95HiRbrpl14S+9vaZLolnbssPIUuiUd8IvgkRyt6NQ==",
- "dependencies": {
- "@chevrotain/gast": "11.0.3",
- "@chevrotain/types": "11.0.3",
- "lodash-es": "4.17.21"
- }
- },
- "node_modules/@chevrotain/gast": {
- "version": "11.0.3",
- "resolved": "https://registry.npmjs.org/@chevrotain/gast/-/gast-11.0.3.tgz",
- "integrity": "sha512-+qNfcoNk70PyS/uxmj3li5NiECO+2YKZZQMbmjTqRI3Qchu8Hig/Q9vgkHpI3alNjr7M+a2St5pw5w5F6NL5/Q==",
- "dependencies": {
- "@chevrotain/types": "11.0.3",
- "lodash-es": "4.17.21"
- }
- },
- "node_modules/@chevrotain/regexp-to-ast": {
- "version": "11.0.3",
- "resolved": "https://registry.npmjs.org/@chevrotain/regexp-to-ast/-/regexp-to-ast-11.0.3.tgz",
- "integrity": "sha512-1fMHaBZxLFvWI067AVbGJav1eRY7N8DDvYCTwGBiE/ytKBgP8azTdgyrKyWZ9Mfh09eHWb5PgTSO8wi7U824RA=="
- },
- "node_modules/@chevrotain/types": {
- "version": "11.0.3",
- "resolved": "https://registry.npmjs.org/@chevrotain/types/-/types-11.0.3.tgz",
- "integrity": "sha512-gsiM3G8b58kZC2HaWR50gu6Y1440cHiJ+i3JUvcp/35JchYejb2+5MVeJK0iKThYpAa/P2PYFV4hoi44HD+aHQ=="
- },
- "node_modules/@chevrotain/utils": {
- "version": "11.0.3",
- "resolved": "https://registry.npmjs.org/@chevrotain/utils/-/utils-11.0.3.tgz",
- "integrity": "sha512-YslZMgtJUyuMbZ+aKvfF3x1f5liK4mWNxghFRv7jqRR9C3R3fAOGTTKvxXDa2Y1s9zSbcpuO0cAxDYsc9SrXoQ=="
- },
- "node_modules/@corex/deepmerge": {
- "version": "4.0.43",
- "resolved": "https://registry.npmjs.org/@corex/deepmerge/-/deepmerge-4.0.43.tgz",
- "integrity": "sha512-N8uEMrMPL0cu/bdboEWpQYb/0i2K5Qn8eCsxzOmxSggJbbQte7ljMRoXm917AbntqTGOzdTu+vP3KOOzoC70HQ==",
- "dev": true
- },
- "node_modules/@docsearch/css": {
- "version": "3.8.1",
- "resolved": "https://registry.npmjs.org/@docsearch/css/-/css-3.8.1.tgz",
- "integrity": "sha512-XiPhKT+ghUi4pEi/ACE9iDmwWsLA6d6xSwtR5ab48iB63OtYWFLZHUKdH7jHKTmwOs0Eg22TX4Kb3H5liFm5bQ=="
- },
- "node_modules/@docsearch/react": {
- "version": "3.8.1",
- "resolved": "https://registry.npmjs.org/@docsearch/react/-/react-3.8.1.tgz",
- "integrity": "sha512-7vgQuktQNBQdNWO1jbkiwgIrTZ0r5nPIHqcO3Z2neAWgkdUuldvvMfEOEaPXT5lqcezEv7i0h+tC285nD3jpZg==",
- "dependencies": {
- "@algolia/autocomplete-core": "1.17.7",
- "@algolia/autocomplete-preset-algolia": "1.17.7",
- "@docsearch/css": "3.8.1",
- "algoliasearch": "^5.14.2"
- },
- "peerDependencies": {
- "@types/react": ">= 16.8.0 < 19.0.0",
- "react": ">= 16.8.0 < 19.0.0",
- "react-dom": ">= 16.8.0 < 19.0.0",
- "search-insights": ">= 1 < 3"
- },
- "peerDependenciesMeta": {
- "@types/react": {
- "optional": true
- },
- "react": {
- "optional": true
- },
- "react-dom": {
- "optional": true
- },
- "search-insights": {
- "optional": true
- }
- }
- },
- "node_modules/@emnapi/runtime": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.4.0.tgz",
- "integrity": "sha512-64WYIf4UYcdLnbKn/umDlNjQDSS8AgZrI/R9+x5ilkUVFxXcA1Ebl+gQLc/6mERA4407Xof0R7wEyEuj091CVw==",
- "optional": true,
- "dependencies": {
- "tslib": "^2.4.0"
- }
- },
- "node_modules/@floating-ui/core": {
- "version": "1.6.9",
- "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.6.9.tgz",
- "integrity": "sha512-uMXCuQ3BItDUbAMhIXw7UPXRfAlOAvZzdK9BWpE60MCn+Svt3aLn9jsPTi/WNGlRUu2uI0v5S7JiIUsbsvh3fw==",
- "dependencies": {
- "@floating-ui/utils": "^0.2.9"
- }
- },
- "node_modules/@floating-ui/dom": {
- "version": "1.6.13",
- "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.6.13.tgz",
- "integrity": "sha512-umqzocjDgNRGTuO7Q8CU32dkHkECqI8ZdMZ5Swb6QAM0t5rnlrN3lGo1hdpscRd3WS8T6DKYK4ephgIH9iRh3w==",
- "dependencies": {
- "@floating-ui/core": "^1.6.0",
- "@floating-ui/utils": "^0.2.9"
- }
- },
- "node_modules/@floating-ui/react": {
- "version": "0.26.28",
- "resolved": "https://registry.npmjs.org/@floating-ui/react/-/react-0.26.28.tgz",
- "integrity": "sha512-yORQuuAtVpiRjpMhdc0wJj06b9JFjrYF4qp96j++v2NBpbi6SEGF7donUJ3TMieerQ6qVkAv1tgr7L4r5roTqw==",
- "dependencies": {
- "@floating-ui/react-dom": "^2.1.2",
- "@floating-ui/utils": "^0.2.8",
- "tabbable": "^6.0.0"
- },
- "peerDependencies": {
- "react": ">=16.8.0",
- "react-dom": ">=16.8.0"
- }
- },
- "node_modules/@floating-ui/react-dom": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/@floating-ui/react-dom/-/react-dom-2.1.2.tgz",
- "integrity": "sha512-06okr5cgPzMNBy+Ycse2A6udMi4bqwW/zgBF/rwjcNqWkyr82Mcg8b0vjX8OJpZFy/FKjJmw6wV7t44kK6kW7A==",
- "dependencies": {
- "@floating-ui/dom": "^1.0.0"
- },
- "peerDependencies": {
- "react": ">=16.8.0",
- "react-dom": ">=16.8.0"
- }
- },
- "node_modules/@floating-ui/utils": {
- "version": "0.2.9",
- "resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.2.9.tgz",
- "integrity": "sha512-MDWhGtE+eHw5JW7lq4qhc5yRLS11ERl1c7Z6Xd0a58DozHES6EnNNwUWbMiG4J9Cgj053Bhk8zvlhFYKVhULwg=="
- },
- "node_modules/@formatjs/intl-localematcher": {
- "version": "0.5.10",
- "resolved": "https://registry.npmjs.org/@formatjs/intl-localematcher/-/intl-localematcher-0.5.10.tgz",
- "integrity": "sha512-af3qATX+m4Rnd9+wHcjJ4w2ijq+rAVP3CCinJQvFv1kgSu1W6jypUmvleJxcewdxmutM8dmIRZFxO/IQBZmP2Q==",
- "dependencies": {
- "tslib": "2"
- }
- },
- "node_modules/@headlessui/react": {
- "version": "2.2.1",
- "resolved": "https://registry.npmjs.org/@headlessui/react/-/react-2.2.1.tgz",
- "integrity": "sha512-daiUqVLae8CKVjEVT19P/izW0aGK0GNhMSAeMlrDebKmoVZHcRRwbxzgtnEadUVDXyBsWo9/UH4KHeniO+0tMg==",
- "dependencies": {
- "@floating-ui/react": "^0.26.16",
- "@react-aria/focus": "^3.17.1",
- "@react-aria/interactions": "^3.21.3",
- "@tanstack/react-virtual": "^3.11.1"
- },
- "engines": {
- "node": ">=10"
- },
- "peerDependencies": {
- "react": "^18 || ^19 || ^19.0.0-rc",
- "react-dom": "^18 || ^19 || ^19.0.0-rc"
- }
- },
- "node_modules/@iconify/types": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/@iconify/types/-/types-2.0.0.tgz",
- "integrity": "sha512-+wluvCrRhXrhyOmRDJ3q8mux9JkKy5SJ/v8ol2tu4FVjyYvtEzkc/3pK15ET6RKg4b4w4BmTk1+gsCUhf21Ykg=="
- },
- "node_modules/@iconify/utils": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/@iconify/utils/-/utils-2.3.0.tgz",
- "integrity": "sha512-GmQ78prtwYW6EtzXRU1rY+KwOKfz32PD7iJh6Iyqw68GiKuoZ2A6pRtzWONz5VQJbp50mEjXh/7NkumtrAgRKA==",
- "dependencies": {
- "@antfu/install-pkg": "^1.0.0",
- "@antfu/utils": "^8.1.0",
- "@iconify/types": "^2.0.0",
- "debug": "^4.4.0",
- "globals": "^15.14.0",
- "kolorist": "^1.8.0",
- "local-pkg": "^1.0.0",
- "mlly": "^1.7.4"
- }
- },
- "node_modules/@iconify/utils/node_modules/debug": {
- "version": "4.4.0",
- "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz",
- "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==",
- "dependencies": {
- "ms": "^2.1.3"
- },
- "engines": {
- "node": ">=6.0"
- },
- "peerDependenciesMeta": {
- "supports-color": {
- "optional": true
- }
- }
- },
- "node_modules/@iconify/utils/node_modules/globals": {
- "version": "15.15.0",
- "resolved": "https://registry.npmjs.org/globals/-/globals-15.15.0.tgz",
- "integrity": "sha512-7ACyT3wmyp3I61S4fG682L0VA2RGD9otkqGJIwNUMF1SWUombIIk+af1unuDYgMm082aHYwD+mzJvv9Iu8dsgg==",
- "engines": {
- "node": ">=18"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "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==",
- "dev": true,
- "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/@isaacs/cliui/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==",
- "dev": true
- },
- "node_modules/@isaacs/cliui/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==",
- "dev": true,
- "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/@isaacs/cliui/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==",
- "dev": true,
- "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/@istanbuljs/load-nyc-config": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz",
- "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==",
- "dependencies": {
- "camelcase": "^5.3.1",
- "find-up": "^4.1.0",
- "get-package-type": "^0.1.0",
- "js-yaml": "^3.13.1",
- "resolve-from": "^5.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/@istanbuljs/schema": {
- "version": "0.1.3",
- "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz",
- "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/@jest/console": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/@jest/console/-/console-29.7.0.tgz",
- "integrity": "sha512-5Ni4CU7XHQi32IJ398EEP4RrB8eV09sXP2ROqD4bksHrnTree52PsxvX8tpL8LvTZ3pFzXyPbNQReSN41CAhOg==",
- "dependencies": {
- "@jest/types": "^29.6.3",
- "@types/node": "*",
- "chalk": "^4.0.0",
- "jest-message-util": "^29.7.0",
- "jest-util": "^29.7.0",
- "slash": "^3.0.0"
- },
- "engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
- }
- },
- "node_modules/@jest/console/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/@jest/console/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/@jest/console/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/@jest/core": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/@jest/core/-/core-29.7.0.tgz",
- "integrity": "sha512-n7aeXWKMnGtDA48y8TLWJPJmLmmZ642Ceo78cYWEpiD7FzDgmNDV/GCVRorPABdXLJZ/9wzzgZAlHjXjxDHGsg==",
- "dependencies": {
- "@jest/console": "^29.7.0",
- "@jest/reporters": "^29.7.0",
- "@jest/test-result": "^29.7.0",
- "@jest/transform": "^29.7.0",
- "@jest/types": "^29.6.3",
- "@types/node": "*",
- "ansi-escapes": "^4.2.1",
- "chalk": "^4.0.0",
- "ci-info": "^3.2.0",
- "exit": "^0.1.2",
- "graceful-fs": "^4.2.9",
- "jest-changed-files": "^29.7.0",
- "jest-config": "^29.7.0",
- "jest-haste-map": "^29.7.0",
- "jest-message-util": "^29.7.0",
- "jest-regex-util": "^29.6.3",
- "jest-resolve": "^29.7.0",
- "jest-resolve-dependencies": "^29.7.0",
- "jest-runner": "^29.7.0",
- "jest-runtime": "^29.7.0",
- "jest-snapshot": "^29.7.0",
- "jest-util": "^29.7.0",
- "jest-validate": "^29.7.0",
- "jest-watcher": "^29.7.0",
- "micromatch": "^4.0.4",
- "pretty-format": "^29.7.0",
- "slash": "^3.0.0",
- "strip-ansi": "^6.0.0"
- },
- "engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
- },
- "peerDependencies": {
- "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0"
- },
- "peerDependenciesMeta": {
- "node-notifier": {
- "optional": true
- }
- }
- },
- "node_modules/@jest/core/node_modules/ansi-escapes": {
- "version": "4.3.2",
- "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz",
- "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==",
- "dependencies": {
- "type-fest": "^0.21.3"
- },
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/@jest/core/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/@jest/core/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/@jest/core/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/@jest/core/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/@jest/core/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/@jest/environment": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-29.7.0.tgz",
- "integrity": "sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw==",
- "dependencies": {
- "@jest/fake-timers": "^29.7.0",
- "@jest/types": "^29.6.3",
- "@types/node": "*",
- "jest-mock": "^29.7.0"
- },
- "engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
- }
- },
- "node_modules/@jest/expect": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/@jest/expect/-/expect-29.7.0.tgz",
- "integrity": "sha512-8uMeAMycttpva3P1lBHB8VciS9V0XAr3GymPpipdyQXbBcuhkLQOSe8E/p92RyAdToS6ZD1tFkX+CkhoECE0dQ==",
- "dependencies": {
- "expect": "^29.7.0",
- "jest-snapshot": "^29.7.0"
- },
- "engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
- }
- },
- "node_modules/@jest/expect-utils": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-29.7.0.tgz",
- "integrity": "sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA==",
- "dependencies": {
- "jest-get-type": "^29.6.3"
- },
- "engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
- }
- },
- "node_modules/@jest/fake-timers": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-29.7.0.tgz",
- "integrity": "sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ==",
- "dependencies": {
- "@jest/types": "^29.6.3",
- "@sinonjs/fake-timers": "^10.0.2",
- "@types/node": "*",
- "jest-message-util": "^29.7.0",
- "jest-mock": "^29.7.0",
- "jest-util": "^29.7.0"
- },
- "engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
- }
- },
- "node_modules/@jest/globals": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-29.7.0.tgz",
- "integrity": "sha512-mpiz3dutLbkW2MNFubUGUEVLkTGiqW6yLVTA+JbP6fI6J5iL9Y0Nlg8k95pcF8ctKwCS7WVxteBs29hhfAotzQ==",
- "dependencies": {
- "@jest/environment": "^29.7.0",
- "@jest/expect": "^29.7.0",
- "@jest/types": "^29.6.3",
- "jest-mock": "^29.7.0"
- },
- "engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
- }
- },
- "node_modules/@jest/reporters": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-29.7.0.tgz",
- "integrity": "sha512-DApq0KJbJOEzAFYjHADNNxAE3KbhxQB1y5Kplb5Waqw6zVbuWatSnMjE5gs8FUgEPmNsnZA3NCWl9NG0ia04Pg==",
- "dependencies": {
- "@bcoe/v8-coverage": "^0.2.3",
- "@jest/console": "^29.7.0",
- "@jest/test-result": "^29.7.0",
- "@jest/transform": "^29.7.0",
- "@jest/types": "^29.6.3",
- "@jridgewell/trace-mapping": "^0.3.18",
- "@types/node": "*",
- "chalk": "^4.0.0",
- "collect-v8-coverage": "^1.0.0",
- "exit": "^0.1.2",
- "glob": "^7.1.3",
- "graceful-fs": "^4.2.9",
- "istanbul-lib-coverage": "^3.0.0",
- "istanbul-lib-instrument": "^6.0.0",
- "istanbul-lib-report": "^3.0.0",
- "istanbul-lib-source-maps": "^4.0.0",
- "istanbul-reports": "^3.1.3",
- "jest-message-util": "^29.7.0",
- "jest-util": "^29.7.0",
- "jest-worker": "^29.7.0",
- "slash": "^3.0.0",
- "string-length": "^4.0.1",
- "strip-ansi": "^6.0.0",
- "v8-to-istanbul": "^9.0.1"
- },
- "engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
- },
- "peerDependencies": {
- "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0"
- },
- "peerDependenciesMeta": {
- "node-notifier": {
- "optional": true
- }
- }
- },
- "node_modules/@jest/reporters/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/@jest/reporters/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/@jest/reporters/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/@jest/reporters/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/@jest/reporters/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/@jest/schemas": {
- "version": "29.6.3",
- "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz",
- "integrity": "sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==",
- "dependencies": {
- "@sinclair/typebox": "^0.27.8"
- },
- "engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
- }
- },
- "node_modules/@jest/source-map": {
- "version": "29.6.3",
- "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-29.6.3.tgz",
- "integrity": "sha512-MHjT95QuipcPrpLM+8JMSzFx6eHp5Bm+4XeFDJlwsvVBjmKNiIAvasGK2fxz2WbGRlnvqehFbh07MMa7n3YJnw==",
- "dependencies": {
- "@jridgewell/trace-mapping": "^0.3.18",
- "callsites": "^3.0.0",
- "graceful-fs": "^4.2.9"
- },
- "engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
- }
- },
- "node_modules/@jest/test-result": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-29.7.0.tgz",
- "integrity": "sha512-Fdx+tv6x1zlkJPcWXmMDAG2HBnaR9XPSd5aDWQVsfrZmLVT3lU1cwyxLgRmXR9yrq4NBoEm9BMsfgFzTQAbJYA==",
- "dependencies": {
- "@jest/console": "^29.7.0",
- "@jest/types": "^29.6.3",
- "@types/istanbul-lib-coverage": "^2.0.0",
- "collect-v8-coverage": "^1.0.0"
- },
- "engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
- }
- },
- "node_modules/@jest/test-sequencer": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-29.7.0.tgz",
- "integrity": "sha512-GQwJ5WZVrKnOJuiYiAF52UNUJXgTZx1NHjFSEB0qEMmSZKAkdMoIzw/Cj6x6NF4AvV23AUqDpFzQkN/eYCYTxw==",
- "dependencies": {
- "@jest/test-result": "^29.7.0",
- "graceful-fs": "^4.2.9",
- "jest-haste-map": "^29.7.0",
- "slash": "^3.0.0"
- },
- "engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
- }
- },
- "node_modules/@jest/transform": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-29.7.0.tgz",
- "integrity": "sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw==",
- "dependencies": {
- "@babel/core": "^7.11.6",
- "@jest/types": "^29.6.3",
- "@jridgewell/trace-mapping": "^0.3.18",
- "babel-plugin-istanbul": "^6.1.1",
- "chalk": "^4.0.0",
- "convert-source-map": "^2.0.0",
- "fast-json-stable-stringify": "^2.1.0",
- "graceful-fs": "^4.2.9",
- "jest-haste-map": "^29.7.0",
- "jest-regex-util": "^29.6.3",
- "jest-util": "^29.7.0",
- "micromatch": "^4.0.4",
- "pirates": "^4.0.4",
- "slash": "^3.0.0",
- "write-file-atomic": "^4.0.2"
- },
- "engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
- }
- },
- "node_modules/@jest/transform/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/@jest/transform/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/@jest/transform/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/@jest/types": {
- "version": "29.6.3",
- "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.6.3.tgz",
- "integrity": "sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==",
- "dependencies": {
- "@jest/schemas": "^29.6.3",
- "@types/istanbul-lib-coverage": "^2.0.0",
- "@types/istanbul-reports": "^3.0.0",
- "@types/node": "*",
- "@types/yargs": "^17.0.8",
- "chalk": "^4.0.0"
- },
- "engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
- }
- },
- "node_modules/@jest/types/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/@jest/types/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/@jest/types/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/@jridgewell/gen-mapping": {
- "version": "0.3.8",
- "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.8.tgz",
- "integrity": "sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==",
- "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==",
- "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==",
- "engines": {
- "node": ">=6.0.0"
- }
- },
- "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=="
- },
- "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==",
- "dependencies": {
- "@jridgewell/resolve-uri": "^3.1.0",
- "@jridgewell/sourcemap-codec": "^1.4.14"
- }
- },
- "node_modules/@mdx-js/mdx": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/@mdx-js/mdx/-/mdx-3.1.0.tgz",
- "integrity": "sha512-/QxEhPAvGwbQmy1Px8F899L5Uc2KZ6JtXwlCgJmjSTBedwOZkByYcBG4GceIGPXRDsmfxhHazuS+hlOShRLeDw==",
- "dependencies": {
- "@types/estree": "^1.0.0",
- "@types/estree-jsx": "^1.0.0",
- "@types/hast": "^3.0.0",
- "@types/mdx": "^2.0.0",
- "collapse-white-space": "^2.0.0",
- "devlop": "^1.0.0",
- "estree-util-is-identifier-name": "^3.0.0",
- "estree-util-scope": "^1.0.0",
- "estree-walker": "^3.0.0",
- "hast-util-to-jsx-runtime": "^2.0.0",
- "markdown-extensions": "^2.0.0",
- "recma-build-jsx": "^1.0.0",
- "recma-jsx": "^1.0.0",
- "recma-stringify": "^1.0.0",
- "rehype-recma": "^1.0.0",
- "remark-mdx": "^3.0.0",
- "remark-parse": "^11.0.0",
- "remark-rehype": "^11.0.0",
- "source-map": "^0.7.0",
- "unified": "^11.0.0",
- "unist-util-position-from-estree": "^2.0.0",
- "unist-util-stringify-position": "^4.0.0",
- "unist-util-visit": "^5.0.0",
- "vfile": "^6.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/@mdx-js/mdx/node_modules/source-map": {
- "version": "0.7.4",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz",
- "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==",
- "engines": {
- "node": ">= 8"
- }
- },
- "node_modules/@mdx-js/react": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/@mdx-js/react/-/react-3.1.0.tgz",
- "integrity": "sha512-QjHtSaoameoalGnKDT3FoIl4+9RwyTmo9ZJGBdLOks/YOiWHoRDI3PUwEzOE7kEmGcV3AFcp9K6dYu9rEuKLAQ==",
- "dependencies": {
- "@types/mdx": "^2.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- },
- "peerDependencies": {
- "@types/react": ">=16",
- "react": ">=16"
- }
- },
- "node_modules/@mermaid-js/parser": {
- "version": "0.4.0",
- "resolved": "https://registry.npmjs.org/@mermaid-js/parser/-/parser-0.4.0.tgz",
- "integrity": "sha512-wla8XOWvQAwuqy+gxiZqY+c7FokraOTHRWMsbB4AgRx9Sy7zKslNyejy7E+a77qHfey5GXw/ik3IXv/NHMJgaA==",
- "dependencies": {
- "langium": "3.3.1"
- }
- },
- "node_modules/@napi-rs/simple-git": {
- "version": "0.1.19",
- "resolved": "https://registry.npmjs.org/@napi-rs/simple-git/-/simple-git-0.1.19.tgz",
- "integrity": "sha512-jMxvwzkKzd3cXo2EB9GM2ic0eYo2rP/BS6gJt6HnWbsDO1O8GSD4k7o2Cpr2YERtMpGF/MGcDfsfj2EbQPtrXw==",
- "engines": {
- "node": ">= 10"
- },
- "optionalDependencies": {
- "@napi-rs/simple-git-android-arm-eabi": "0.1.19",
- "@napi-rs/simple-git-android-arm64": "0.1.19",
- "@napi-rs/simple-git-darwin-arm64": "0.1.19",
- "@napi-rs/simple-git-darwin-x64": "0.1.19",
- "@napi-rs/simple-git-freebsd-x64": "0.1.19",
- "@napi-rs/simple-git-linux-arm-gnueabihf": "0.1.19",
- "@napi-rs/simple-git-linux-arm64-gnu": "0.1.19",
- "@napi-rs/simple-git-linux-arm64-musl": "0.1.19",
- "@napi-rs/simple-git-linux-powerpc64le-gnu": "0.1.19",
- "@napi-rs/simple-git-linux-s390x-gnu": "0.1.19",
- "@napi-rs/simple-git-linux-x64-gnu": "0.1.19",
- "@napi-rs/simple-git-linux-x64-musl": "0.1.19",
- "@napi-rs/simple-git-win32-arm64-msvc": "0.1.19",
- "@napi-rs/simple-git-win32-x64-msvc": "0.1.19"
- }
- },
- "node_modules/@napi-rs/simple-git-android-arm-eabi": {
- "version": "0.1.19",
- "resolved": "https://registry.npmjs.org/@napi-rs/simple-git-android-arm-eabi/-/simple-git-android-arm-eabi-0.1.19.tgz",
- "integrity": "sha512-XryEH/hadZ4Duk/HS/HC/cA1j0RHmqUGey3MsCf65ZS0VrWMqChXM/xlTPWuY5jfCc/rPubHaqI7DZlbexnX/g==",
- "cpu": [
- "arm"
- ],
- "optional": true,
- "os": [
- "android"
- ],
- "engines": {
- "node": ">= 10"
- }
- },
- "node_modules/@napi-rs/simple-git-android-arm64": {
- "version": "0.1.19",
- "resolved": "https://registry.npmjs.org/@napi-rs/simple-git-android-arm64/-/simple-git-android-arm64-0.1.19.tgz",
- "integrity": "sha512-ZQ0cPvY6nV9p7zrR9ZPo7hQBkDAcY/CHj3BjYNhykeUCiSNCrhvwX+WEeg5on8M1j4d5jcI/cwVG2FslfiByUg==",
- "cpu": [
- "arm64"
- ],
- "optional": true,
- "os": [
- "android"
- ],
- "engines": {
- "node": ">= 10"
- }
- },
- "node_modules/@napi-rs/simple-git-darwin-arm64": {
- "version": "0.1.19",
- "resolved": "https://registry.npmjs.org/@napi-rs/simple-git-darwin-arm64/-/simple-git-darwin-arm64-0.1.19.tgz",
- "integrity": "sha512-viZB5TYgjA1vH+QluhxZo0WKro3xBA+1xSzYx8mcxUMO5gnAoUMwXn0ZO/6Zy6pai+aGae+cj6XihGnrBRu3Pg==",
- "cpu": [
- "arm64"
- ],
- "optional": true,
- "os": [
- "darwin"
- ],
- "engines": {
- "node": ">= 10"
- }
- },
- "node_modules/@napi-rs/simple-git-darwin-x64": {
- "version": "0.1.19",
- "resolved": "https://registry.npmjs.org/@napi-rs/simple-git-darwin-x64/-/simple-git-darwin-x64-0.1.19.tgz",
- "integrity": "sha512-6dNkzSNUV5X9rsVYQbpZLyJu4Gtkl2vNJ3abBXHX/Etk0ILG5ZasO3ncznIANZQpqcbn/QPHr49J2QYAXGoKJA==",
- "cpu": [
- "x64"
- ],
- "optional": true,
- "os": [
- "darwin"
- ],
- "engines": {
- "node": ">= 10"
- }
- },
- "node_modules/@napi-rs/simple-git-freebsd-x64": {
- "version": "0.1.19",
- "resolved": "https://registry.npmjs.org/@napi-rs/simple-git-freebsd-x64/-/simple-git-freebsd-x64-0.1.19.tgz",
- "integrity": "sha512-sB9krVIchzd20FjI2ZZ8FDsTSsXLBdnwJ6CpeVyrhXHnoszfcqxt49ocZHujAS9lMpXq7i2Nv1EXJmCy4KdhwA==",
- "cpu": [
- "x64"
- ],
- "optional": true,
- "os": [
- "freebsd"
- ],
- "engines": {
- "node": ">= 10"
- }
- },
- "node_modules/@napi-rs/simple-git-linux-arm-gnueabihf": {
- "version": "0.1.19",
- "resolved": "https://registry.npmjs.org/@napi-rs/simple-git-linux-arm-gnueabihf/-/simple-git-linux-arm-gnueabihf-0.1.19.tgz",
- "integrity": "sha512-6HPn09lr9N1n5/XKfP8Np53g4fEXVxOFqNkS6rTH3Rm1lZHdazTRH62RggXLTguZwjcE+MvOLvoTIoR5kAS8+g==",
- "cpu": [
- "arm"
- ],
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">= 10"
- }
- },
- "node_modules/@napi-rs/simple-git-linux-arm64-gnu": {
- "version": "0.1.19",
- "resolved": "https://registry.npmjs.org/@napi-rs/simple-git-linux-arm64-gnu/-/simple-git-linux-arm64-gnu-0.1.19.tgz",
- "integrity": "sha512-G0gISckt4cVDp3oh5Z6PV3GHJrJO6Z8bIS+9xA7vTtKdqB1i5y0n3cSFLlzQciLzhr+CajFD27doW4lEyErQ/Q==",
- "cpu": [
- "arm64"
- ],
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">= 10"
- }
- },
- "node_modules/@napi-rs/simple-git-linux-arm64-musl": {
- "version": "0.1.19",
- "resolved": "https://registry.npmjs.org/@napi-rs/simple-git-linux-arm64-musl/-/simple-git-linux-arm64-musl-0.1.19.tgz",
- "integrity": "sha512-OwTRF+H4IZYxmDFRi1IrLMfqbdIpvHeYbJl2X94NVsLVOY+3NUHvEzL3fYaVx5urBaMnIK0DD3wZLbcueWvxbA==",
- "cpu": [
- "arm64"
- ],
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">= 10"
- }
- },
- "node_modules/@napi-rs/simple-git-linux-powerpc64le-gnu": {
- "version": "0.1.19",
- "resolved": "https://registry.npmjs.org/@napi-rs/simple-git-linux-powerpc64le-gnu/-/simple-git-linux-powerpc64le-gnu-0.1.19.tgz",
- "integrity": "sha512-p7zuNNVyzpRvkCt2RIGv9FX/WPcPbZ6/FRUgUTZkA2WU33mrbvNqSi4AOqCCl6mBvEd+EOw5NU4lS9ORRJvAEg==",
- "cpu": [
- "powerpc64le"
- ],
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">= 10"
- }
- },
- "node_modules/@napi-rs/simple-git-linux-s390x-gnu": {
- "version": "0.1.19",
- "resolved": "https://registry.npmjs.org/@napi-rs/simple-git-linux-s390x-gnu/-/simple-git-linux-s390x-gnu-0.1.19.tgz",
- "integrity": "sha512-6N2vwJUPLiak8GLrS0a3is0gSb0UwI2CHOOqtvQxPmv+JVI8kn3vKiUscsktdDb0wGEPeZ8PvZs0y8UWix7K4g==",
- "cpu": [
- "s390x"
- ],
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">= 10"
- }
- },
- "node_modules/@napi-rs/simple-git-linux-x64-gnu": {
- "version": "0.1.19",
- "resolved": "https://registry.npmjs.org/@napi-rs/simple-git-linux-x64-gnu/-/simple-git-linux-x64-gnu-0.1.19.tgz",
- "integrity": "sha512-61YfeO1J13WK7MalLgP3QlV6of2rWnVw1aqxWkAgy/lGxoOFSJ4Wid6ANVCEZk4tJpPX/XNeneqkUz5xpeb2Cw==",
- "cpu": [
- "x64"
- ],
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">= 10"
- }
- },
- "node_modules/@napi-rs/simple-git-linux-x64-musl": {
- "version": "0.1.19",
- "resolved": "https://registry.npmjs.org/@napi-rs/simple-git-linux-x64-musl/-/simple-git-linux-x64-musl-0.1.19.tgz",
- "integrity": "sha512-cCTWNpMJnN3PrUBItWcs3dQKCydsIasbrS3laMzq8k7OzF93Zrp2LWDTPlLCO9brbBVpBzy2Qk5Xg9uAfe/Ukw==",
- "cpu": [
- "x64"
- ],
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">= 10"
- }
- },
- "node_modules/@napi-rs/simple-git-win32-arm64-msvc": {
- "version": "0.1.19",
- "resolved": "https://registry.npmjs.org/@napi-rs/simple-git-win32-arm64-msvc/-/simple-git-win32-arm64-msvc-0.1.19.tgz",
- "integrity": "sha512-sWavb1BjeLKKBA+PbTsRSSzVNfb7V/dOpaJvkgR5d2kWFn/AHmCZHSSj/3nyZdYf0BdDC+DIvqk3daAEZ6QMVw==",
- "cpu": [
- "arm64"
- ],
- "optional": true,
- "os": [
- "win32"
- ],
- "engines": {
- "node": ">= 10"
- }
- },
- "node_modules/@napi-rs/simple-git-win32-x64-msvc": {
- "version": "0.1.19",
- "resolved": "https://registry.npmjs.org/@napi-rs/simple-git-win32-x64-msvc/-/simple-git-win32-x64-msvc-0.1.19.tgz",
- "integrity": "sha512-FmNuPoK4+qwaSCkp8lm3sJlrxk374enW+zCE5ZksXlZzj/9BDJAULJb5QUJ7o9Y8A/G+d8LkdQLPBE2Jaxe5XA==",
- "cpu": [
- "x64"
- ],
- "optional": true,
- "os": [
- "win32"
- ],
- "engines": {
- "node": ">= 10"
- }
- },
- "node_modules/@next/env": {
- "version": "14.2.26",
- "resolved": "https://registry.npmjs.org/@next/env/-/env-14.2.26.tgz",
- "integrity": "sha512-vO//GJ/YBco+H7xdQhzJxF7ub3SUwft76jwaeOyVVQFHCi5DCnkP16WHB+JBylo4vOKPoZBlR94Z8xBxNBdNJA=="
- },
- "node_modules/@next/swc-darwin-arm64": {
- "version": "14.2.26",
- "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-14.2.26.tgz",
- "integrity": "sha512-zDJY8gsKEseGAxG+C2hTMT0w9Nk9N1Sk1qV7vXYz9MEiyRoF5ogQX2+vplyUMIfygnjn9/A04I6yrUTRTuRiyQ==",
- "cpu": [
- "arm64"
- ],
- "optional": true,
- "os": [
- "darwin"
- ],
- "engines": {
- "node": ">= 10"
- }
- },
- "node_modules/@next/swc-darwin-x64": {
- "version": "14.2.26",
- "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-14.2.26.tgz",
- "integrity": "sha512-U0adH5ryLfmTDkahLwG9sUQG2L0a9rYux8crQeC92rPhi3jGQEY47nByQHrVrt3prZigadwj/2HZ1LUUimuSbg==",
- "cpu": [
- "x64"
- ],
- "optional": true,
- "os": [
- "darwin"
- ],
- "engines": {
- "node": ">= 10"
- }
- },
- "node_modules/@next/swc-linux-arm64-gnu": {
- "version": "14.2.26",
- "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-14.2.26.tgz",
- "integrity": "sha512-SINMl1I7UhfHGM7SoRiw0AbwnLEMUnJ/3XXVmhyptzriHbWvPPbbm0OEVG24uUKhuS1t0nvN/DBvm5kz6ZIqpg==",
- "cpu": [
- "arm64"
- ],
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">= 10"
- }
- },
- "node_modules/@next/swc-linux-arm64-musl": {
- "version": "14.2.26",
- "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-14.2.26.tgz",
- "integrity": "sha512-s6JaezoyJK2DxrwHWxLWtJKlqKqTdi/zaYigDXUJ/gmx/72CrzdVZfMvUc6VqnZ7YEvRijvYo+0o4Z9DencduA==",
- "cpu": [
- "arm64"
- ],
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">= 10"
- }
- },
- "node_modules/@next/swc-linux-x64-gnu": {
- "version": "14.2.26",
- "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-14.2.26.tgz",
- "integrity": "sha512-FEXeUQi8/pLr/XI0hKbe0tgbLmHFRhgXOUiPScz2hk0hSmbGiU8aUqVslj/6C6KA38RzXnWoJXo4FMo6aBxjzg==",
- "cpu": [
- "x64"
- ],
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">= 10"
- }
- },
- "node_modules/@next/swc-linux-x64-musl": {
- "version": "14.2.26",
- "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-14.2.26.tgz",
- "integrity": "sha512-BUsomaO4d2DuXhXhgQCVt2jjX4B4/Thts8nDoIruEJkhE5ifeQFtvW5c9JkdOtYvE5p2G0hcwQ0UbRaQmQwaVg==",
- "cpu": [
- "x64"
- ],
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">= 10"
- }
- },
- "node_modules/@next/swc-win32-arm64-msvc": {
- "version": "14.2.26",
- "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-14.2.26.tgz",
- "integrity": "sha512-5auwsMVzT7wbB2CZXQxDctpWbdEnEW/e66DyXO1DcgHxIyhP06awu+rHKshZE+lPLIGiwtjo7bsyeuubewwxMw==",
- "cpu": [
- "arm64"
- ],
- "optional": true,
- "os": [
- "win32"
- ],
- "engines": {
- "node": ">= 10"
- }
- },
- "node_modules/@next/swc-win32-ia32-msvc": {
- "version": "14.2.26",
- "resolved": "https://registry.npmjs.org/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-14.2.26.tgz",
- "integrity": "sha512-GQWg/Vbz9zUGi9X80lOeGsz1rMH/MtFO/XqigDznhhhTfDlDoynCM6982mPCbSlxJ/aveZcKtTlwfAjwhyxDpg==",
- "cpu": [
- "ia32"
- ],
- "optional": true,
- "os": [
- "win32"
- ],
- "engines": {
- "node": ">= 10"
- }
- },
- "node_modules/@next/swc-win32-x64-msvc": {
- "version": "14.2.26",
- "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-14.2.26.tgz",
- "integrity": "sha512-2rdB3T1/Gp7bv1eQTTm9d1Y1sv9UuJ2LAwOE0Pe2prHKe32UNscj7YS13fRB37d0GAiGNR+Y7ZcW8YjDI8Ns0w==",
- "cpu": [
- "x64"
- ],
- "optional": true,
- "os": [
- "win32"
- ],
- "engines": {
- "node": ">= 10"
- }
- },
- "node_modules/@nodelib/fs.scandir": {
- "version": "2.1.5",
- "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz",
- "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==",
- "dev": true,
- "dependencies": {
- "@nodelib/fs.stat": "2.0.5",
- "run-parallel": "^1.1.9"
- },
- "engines": {
- "node": ">= 8"
- }
- },
- "node_modules/@nodelib/fs.stat": {
- "version": "2.0.5",
- "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz",
- "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==",
- "dev": true,
- "engines": {
- "node": ">= 8"
- }
- },
- "node_modules/@nodelib/fs.walk": {
- "version": "1.2.8",
- "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz",
- "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==",
- "dev": true,
- "dependencies": {
- "@nodelib/fs.scandir": "2.1.5",
- "fastq": "^1.6.0"
- },
- "engines": {
- "node": ">= 8"
- }
- },
- "node_modules/@pipedream/sdk": {
- "version": "1.5.3",
- "resolved": "https://registry.npmjs.org/@pipedream/sdk/-/sdk-1.5.3.tgz",
- "integrity": "sha512-shXEDK91RzaTAbFQCVLHCV+PuKjQaes9V1C8r1abV6hRCyAQcYnr5j6alJuKiozBnIh5BGA/OYh0JEYBWau7yA==",
- "dependencies": {
- "@rails/actioncable": "^8.0.0",
- "commander": "^12.1.0",
- "oauth4webapi": "^3.1.4",
- "ws": "^8.18.0"
- },
- "engines": {
- "node": ">=18.0.0"
- }
- },
- "node_modules/@pkgjs/parseargs": {
- "version": "0.11.0",
- "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz",
- "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==",
- "dev": true,
- "optional": true,
- "engines": {
- "node": ">=14"
- }
- },
- "node_modules/@rails/actioncable": {
- "version": "8.0.200",
- "resolved": "https://registry.npmjs.org/@rails/actioncable/-/actioncable-8.0.200.tgz",
- "integrity": "sha512-EDqWyxck22BHmv1e+mD8Kl6GmtNkhEPdRfGFT7kvsv1yoXd9iYrqHDVAaR8bKmU/syC5eEZ2I5aWWxtB73ukMw=="
- },
- "node_modules/@react-aria/focus": {
- "version": "3.20.1",
- "resolved": "https://registry.npmjs.org/@react-aria/focus/-/focus-3.20.1.tgz",
- "integrity": "sha512-lgYs+sQ1TtBrAXnAdRBQrBo0/7o5H6IrfDxec1j+VRpcXL0xyk0xPq+m3lZp8typzIghqDgpnKkJ5Jf4OrzPIw==",
- "dependencies": {
- "@react-aria/interactions": "^3.24.1",
- "@react-aria/utils": "^3.28.1",
- "@react-types/shared": "^3.28.0",
- "@swc/helpers": "^0.5.0",
- "clsx": "^2.0.0"
- },
- "peerDependencies": {
- "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1",
- "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1"
- }
- },
- "node_modules/@react-aria/interactions": {
- "version": "3.24.1",
- "resolved": "https://registry.npmjs.org/@react-aria/interactions/-/interactions-3.24.1.tgz",
- "integrity": "sha512-OWEcIC6UQfWq4Td5Ptuh4PZQ4LHLJr/JL2jGYvuNL6EgL3bWvzPrRYIF/R64YbfVxIC7FeZpPSkS07sZ93/NoA==",
- "dependencies": {
- "@react-aria/ssr": "^3.9.7",
- "@react-aria/utils": "^3.28.1",
- "@react-stately/flags": "^3.1.0",
- "@react-types/shared": "^3.28.0",
- "@swc/helpers": "^0.5.0"
- },
- "peerDependencies": {
- "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1",
- "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1"
- }
- },
- "node_modules/@react-aria/ssr": {
- "version": "3.9.7",
- "resolved": "https://registry.npmjs.org/@react-aria/ssr/-/ssr-3.9.7.tgz",
- "integrity": "sha512-GQygZaGlmYjmYM+tiNBA5C6acmiDWF52Nqd40bBp0Znk4M4hP+LTmI0lpI1BuKMw45T8RIhrAsICIfKwZvi2Gg==",
- "dependencies": {
- "@swc/helpers": "^0.5.0"
- },
- "engines": {
- "node": ">= 12"
- },
- "peerDependencies": {
- "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1"
- }
- },
- "node_modules/@react-aria/utils": {
- "version": "3.28.1",
- "resolved": "https://registry.npmjs.org/@react-aria/utils/-/utils-3.28.1.tgz",
- "integrity": "sha512-mnHFF4YOVu9BRFQ1SZSKfPhg3z+lBRYoW5mLcYTQihbKhz48+I1sqRkP7ahMITr8ANH3nb34YaMME4XWmK2Mgg==",
- "dependencies": {
- "@react-aria/ssr": "^3.9.7",
- "@react-stately/flags": "^3.1.0",
- "@react-stately/utils": "^3.10.5",
- "@react-types/shared": "^3.28.0",
- "@swc/helpers": "^0.5.0",
- "clsx": "^2.0.0"
- },
- "peerDependencies": {
- "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1",
- "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1"
- }
- },
- "node_modules/@react-stately/flags": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/@react-stately/flags/-/flags-3.1.0.tgz",
- "integrity": "sha512-KSHOCxTFpBtxhIRcKwsD1YDTaNxFtCYuAUb0KEihc16QwqZViq4hasgPBs2gYm7fHRbw7WYzWKf6ZSo/+YsFlg==",
- "dependencies": {
- "@swc/helpers": "^0.5.0"
- }
- },
- "node_modules/@react-stately/utils": {
- "version": "3.10.5",
- "resolved": "https://registry.npmjs.org/@react-stately/utils/-/utils-3.10.5.tgz",
- "integrity": "sha512-iMQSGcpaecghDIh3mZEpZfoFH3ExBwTtuBEcvZ2XnGzCgQjeYXcMdIUwAfVQLXFTdHUHGF6Gu6/dFrYsCzySBQ==",
- "dependencies": {
- "@swc/helpers": "^0.5.0"
- },
- "peerDependencies": {
- "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1"
- }
- },
- "node_modules/@react-types/shared": {
- "version": "3.28.0",
- "resolved": "https://registry.npmjs.org/@react-types/shared/-/shared-3.28.0.tgz",
- "integrity": "sha512-9oMEYIDc3sk0G5rysnYvdNrkSg7B04yTKl50HHSZVbokeHpnU0yRmsDaWb9B/5RprcKj8XszEk5guBO8Sa/Q+Q==",
- "peerDependencies": {
- "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1"
- }
- },
- "node_modules/@shikijs/core": {
- "version": "1.29.2",
- "resolved": "https://registry.npmjs.org/@shikijs/core/-/core-1.29.2.tgz",
- "integrity": "sha512-vju0lY9r27jJfOY4Z7+Rt/nIOjzJpZ3y+nYpqtUZInVoXQ/TJZcfGnNOGnKjFdVZb8qexiCuSlZRKcGfhhTTZQ==",
- "dependencies": {
- "@shikijs/engine-javascript": "1.29.2",
- "@shikijs/engine-oniguruma": "1.29.2",
- "@shikijs/types": "1.29.2",
- "@shikijs/vscode-textmate": "^10.0.1",
- "@types/hast": "^3.0.4",
- "hast-util-to-html": "^9.0.4"
- }
- },
- "node_modules/@shikijs/engine-javascript": {
- "version": "1.29.2",
- "resolved": "https://registry.npmjs.org/@shikijs/engine-javascript/-/engine-javascript-1.29.2.tgz",
- "integrity": "sha512-iNEZv4IrLYPv64Q6k7EPpOCE/nuvGiKl7zxdq0WFuRPF5PAE9PRo2JGq/d8crLusM59BRemJ4eOqrFrC4wiQ+A==",
- "dependencies": {
- "@shikijs/types": "1.29.2",
- "@shikijs/vscode-textmate": "^10.0.1",
- "oniguruma-to-es": "^2.2.0"
- }
- },
- "node_modules/@shikijs/engine-oniguruma": {
- "version": "1.29.2",
- "resolved": "https://registry.npmjs.org/@shikijs/engine-oniguruma/-/engine-oniguruma-1.29.2.tgz",
- "integrity": "sha512-7iiOx3SG8+g1MnlzZVDYiaeHe7Ez2Kf2HrJzdmGwkRisT7r4rak0e655AcM/tF9JG/kg5fMNYlLLKglbN7gBqA==",
- "dependencies": {
- "@shikijs/types": "1.29.2",
- "@shikijs/vscode-textmate": "^10.0.1"
- }
- },
- "node_modules/@shikijs/langs": {
- "version": "1.29.2",
- "resolved": "https://registry.npmjs.org/@shikijs/langs/-/langs-1.29.2.tgz",
- "integrity": "sha512-FIBA7N3LZ+223U7cJDUYd5shmciFQlYkFXlkKVaHsCPgfVLiO+e12FmQE6Tf9vuyEsFe3dIl8qGWKXgEHL9wmQ==",
- "dependencies": {
- "@shikijs/types": "1.29.2"
- }
- },
- "node_modules/@shikijs/themes": {
- "version": "1.29.2",
- "resolved": "https://registry.npmjs.org/@shikijs/themes/-/themes-1.29.2.tgz",
- "integrity": "sha512-i9TNZlsq4uoyqSbluIcZkmPL9Bfi3djVxRnofUHwvx/h6SRW3cwgBC5SML7vsDcWyukY0eCzVN980rqP6qNl9g==",
- "dependencies": {
- "@shikijs/types": "1.29.2"
- }
- },
- "node_modules/@shikijs/twoslash": {
- "version": "1.29.2",
- "resolved": "https://registry.npmjs.org/@shikijs/twoslash/-/twoslash-1.29.2.tgz",
- "integrity": "sha512-2S04ppAEa477tiaLfGEn1QJWbZUmbk8UoPbAEw4PifsrxkBXtAtOflIZJNtuCwz8ptc/TPxy7CO7gW4Uoi6o/g==",
- "dependencies": {
- "@shikijs/core": "1.29.2",
- "@shikijs/types": "1.29.2",
- "twoslash": "^0.2.12"
- }
- },
- "node_modules/@shikijs/types": {
- "version": "1.29.2",
- "resolved": "https://registry.npmjs.org/@shikijs/types/-/types-1.29.2.tgz",
- "integrity": "sha512-VJjK0eIijTZf0QSTODEXCqinjBn0joAHQ+aPSBzrv4O2d/QSbsMw+ZeSRx03kV34Hy7NzUvV/7NqfYGRLrASmw==",
- "dependencies": {
- "@shikijs/vscode-textmate": "^10.0.1",
- "@types/hast": "^3.0.4"
- }
- },
- "node_modules/@shikijs/vscode-textmate": {
- "version": "10.0.2",
- "resolved": "https://registry.npmjs.org/@shikijs/vscode-textmate/-/vscode-textmate-10.0.2.tgz",
- "integrity": "sha512-83yeghZ2xxin3Nj8z1NMd/NCuca+gsYXswywDy5bHvwlWL8tpTQmzGeUuHd9FC3E/SBEMvzJRwWEOz5gGes9Qg=="
- },
- "node_modules/@sinclair/typebox": {
- "version": "0.27.8",
- "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz",
- "integrity": "sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA=="
- },
- "node_modules/@sinonjs/commons": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.1.tgz",
- "integrity": "sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ==",
- "dependencies": {
- "type-detect": "4.0.8"
- }
- },
- "node_modules/@sinonjs/fake-timers": {
- "version": "10.3.0",
- "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-10.3.0.tgz",
- "integrity": "sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==",
- "dependencies": {
- "@sinonjs/commons": "^3.0.0"
- }
- },
- "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.5",
- "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.5.tgz",
- "integrity": "sha512-KGYxvIOXcceOAbEk4bi/dVLEK9z8sZ0uBB3Il5b1rhfClSpcX0yfRO0KmTkqR2cnQDymwLB+25ZyMzICg/cm/A==",
- "dependencies": {
- "@swc/counter": "^0.1.3",
- "tslib": "^2.4.0"
- }
- },
- "node_modules/@tanstack/react-virtual": {
- "version": "3.13.6",
- "resolved": "https://registry.npmjs.org/@tanstack/react-virtual/-/react-virtual-3.13.6.tgz",
- "integrity": "sha512-WT7nWs8ximoQ0CDx/ngoFP7HbQF9Q2wQe4nh2NB+u2486eX3nZRE40P9g6ccCVq7ZfTSH5gFOuCoVH5DLNS/aA==",
- "dependencies": {
- "@tanstack/virtual-core": "3.13.6"
- },
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/tannerlinsley"
- },
- "peerDependencies": {
- "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0",
- "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0"
- }
- },
- "node_modules/@tanstack/virtual-core": {
- "version": "3.13.6",
- "resolved": "https://registry.npmjs.org/@tanstack/virtual-core/-/virtual-core-3.13.6.tgz",
- "integrity": "sha512-cnQUeWnhNP8tJ4WsGcYiX24Gjkc9ALstLbHcBj1t3E7EimN6n6kHH+DPV4PpDnuw00NApQp+ViojMj1GRdwYQg==",
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/tannerlinsley"
- }
- },
- "node_modules/@theguild/remark-mermaid": {
- "version": "0.1.3",
- "resolved": "https://registry.npmjs.org/@theguild/remark-mermaid/-/remark-mermaid-0.1.3.tgz",
- "integrity": "sha512-2FjVlaaKXK7Zj7UJAgOVTyaahn/3/EAfqYhyXg0BfDBVUl+lXcoIWRaxzqfnDr2rv8ax6GsC5mNh6hAaT86PDw==",
- "dependencies": {
- "mermaid": "^11.0.0",
- "unist-util-visit": "^5.0.0"
- },
- "peerDependencies": {
- "react": "^18.2.0"
- }
- },
- "node_modules/@theguild/remark-npm2yarn": {
- "version": "0.3.3",
- "resolved": "https://registry.npmjs.org/@theguild/remark-npm2yarn/-/remark-npm2yarn-0.3.3.tgz",
- "integrity": "sha512-ma6DvR03gdbvwqfKx1omqhg9May/VYGdMHvTzB4VuxkyS7KzfZ/lzrj43hmcsggpMje0x7SADA/pcMph0ejRnA==",
- "dependencies": {
- "npm-to-yarn": "^3.0.0",
- "unist-util-visit": "^5.0.0"
- }
- },
- "node_modules/@types/babel__core": {
- "version": "7.20.5",
- "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz",
- "integrity": "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==",
- "dependencies": {
- "@babel/parser": "^7.20.7",
- "@babel/types": "^7.20.7",
- "@types/babel__generator": "*",
- "@types/babel__template": "*",
- "@types/babel__traverse": "*"
- }
- },
- "node_modules/@types/babel__generator": {
- "version": "7.27.0",
- "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.27.0.tgz",
- "integrity": "sha512-ufFd2Xi92OAVPYsy+P4n7/U7e68fex0+Ee8gSG9KX7eo084CWiQ4sdxktvdl0bOPupXtVJPY19zk6EwWqUQ8lg==",
- "dependencies": {
- "@babel/types": "^7.0.0"
- }
- },
- "node_modules/@types/babel__template": {
- "version": "7.4.4",
- "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz",
- "integrity": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==",
- "dependencies": {
- "@babel/parser": "^7.1.0",
- "@babel/types": "^7.0.0"
- }
- },
- "node_modules/@types/babel__traverse": {
- "version": "7.20.7",
- "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.7.tgz",
- "integrity": "sha512-dkO5fhS7+/oos4ciWxyEyjWe48zmG6wbCheo/G2ZnHx4fs3EU6YC6UM8rk56gAjNJ9P3MTH2jo5jb92/K6wbng==",
- "dependencies": {
- "@babel/types": "^7.20.7"
- }
- },
- "node_modules/@types/d3": {
- "version": "7.4.3",
- "resolved": "https://registry.npmjs.org/@types/d3/-/d3-7.4.3.tgz",
- "integrity": "sha512-lZXZ9ckh5R8uiFVt8ogUNf+pIrK4EsWrx2Np75WvF/eTpJ0FMHNhjXk8CKEx/+gpHbNQyJWehbFaTvqmHWB3ww==",
- "dependencies": {
- "@types/d3-array": "*",
- "@types/d3-axis": "*",
- "@types/d3-brush": "*",
- "@types/d3-chord": "*",
- "@types/d3-color": "*",
- "@types/d3-contour": "*",
- "@types/d3-delaunay": "*",
- "@types/d3-dispatch": "*",
- "@types/d3-drag": "*",
- "@types/d3-dsv": "*",
- "@types/d3-ease": "*",
- "@types/d3-fetch": "*",
- "@types/d3-force": "*",
- "@types/d3-format": "*",
- "@types/d3-geo": "*",
- "@types/d3-hierarchy": "*",
- "@types/d3-interpolate": "*",
- "@types/d3-path": "*",
- "@types/d3-polygon": "*",
- "@types/d3-quadtree": "*",
- "@types/d3-random": "*",
- "@types/d3-scale": "*",
- "@types/d3-scale-chromatic": "*",
- "@types/d3-selection": "*",
- "@types/d3-shape": "*",
- "@types/d3-time": "*",
- "@types/d3-time-format": "*",
- "@types/d3-timer": "*",
- "@types/d3-transition": "*",
- "@types/d3-zoom": "*"
- }
- },
- "node_modules/@types/d3-array": {
- "version": "3.2.1",
- "resolved": "https://registry.npmjs.org/@types/d3-array/-/d3-array-3.2.1.tgz",
- "integrity": "sha512-Y2Jn2idRrLzUfAKV2LyRImR+y4oa2AntrgID95SHJxuMUrkNXmanDSed71sRNZysveJVt1hLLemQZIady0FpEg=="
- },
- "node_modules/@types/d3-axis": {
- "version": "3.0.6",
- "resolved": "https://registry.npmjs.org/@types/d3-axis/-/d3-axis-3.0.6.tgz",
- "integrity": "sha512-pYeijfZuBd87T0hGn0FO1vQ/cgLk6E1ALJjfkC0oJ8cbwkZl3TpgS8bVBLZN+2jjGgg38epgxb2zmoGtSfvgMw==",
- "dependencies": {
- "@types/d3-selection": "*"
- }
- },
- "node_modules/@types/d3-brush": {
- "version": "3.0.6",
- "resolved": "https://registry.npmjs.org/@types/d3-brush/-/d3-brush-3.0.6.tgz",
- "integrity": "sha512-nH60IZNNxEcrh6L1ZSMNA28rj27ut/2ZmI3r96Zd+1jrZD++zD3LsMIjWlvg4AYrHn/Pqz4CF3veCxGjtbqt7A==",
- "dependencies": {
- "@types/d3-selection": "*"
- }
- },
- "node_modules/@types/d3-chord": {
- "version": "3.0.6",
- "resolved": "https://registry.npmjs.org/@types/d3-chord/-/d3-chord-3.0.6.tgz",
- "integrity": "sha512-LFYWWd8nwfwEmTZG9PfQxd17HbNPksHBiJHaKuY1XeqscXacsS2tyoo6OdRsjf+NQYeB6XrNL3a25E3gH69lcg=="
- },
- "node_modules/@types/d3-color": {
- "version": "3.1.3",
- "resolved": "https://registry.npmjs.org/@types/d3-color/-/d3-color-3.1.3.tgz",
- "integrity": "sha512-iO90scth9WAbmgv7ogoq57O9YpKmFBbmoEoCHDB2xMBY0+/KVrqAaCDyCE16dUspeOvIxFFRI+0sEtqDqy2b4A=="
- },
- "node_modules/@types/d3-contour": {
- "version": "3.0.6",
- "resolved": "https://registry.npmjs.org/@types/d3-contour/-/d3-contour-3.0.6.tgz",
- "integrity": "sha512-BjzLgXGnCWjUSYGfH1cpdo41/hgdWETu4YxpezoztawmqsvCeep+8QGfiY6YbDvfgHz/DkjeIkkZVJavB4a3rg==",
- "dependencies": {
- "@types/d3-array": "*",
- "@types/geojson": "*"
- }
- },
- "node_modules/@types/d3-delaunay": {
- "version": "6.0.4",
- "resolved": "https://registry.npmjs.org/@types/d3-delaunay/-/d3-delaunay-6.0.4.tgz",
- "integrity": "sha512-ZMaSKu4THYCU6sV64Lhg6qjf1orxBthaC161plr5KuPHo3CNm8DTHiLw/5Eq2b6TsNP0W0iJrUOFscY6Q450Hw=="
- },
- "node_modules/@types/d3-dispatch": {
- "version": "3.0.6",
- "resolved": "https://registry.npmjs.org/@types/d3-dispatch/-/d3-dispatch-3.0.6.tgz",
- "integrity": "sha512-4fvZhzMeeuBJYZXRXrRIQnvUYfyXwYmLsdiN7XXmVNQKKw1cM8a5WdID0g1hVFZDqT9ZqZEY5pD44p24VS7iZQ=="
- },
- "node_modules/@types/d3-drag": {
- "version": "3.0.7",
- "resolved": "https://registry.npmjs.org/@types/d3-drag/-/d3-drag-3.0.7.tgz",
- "integrity": "sha512-HE3jVKlzU9AaMazNufooRJ5ZpWmLIoc90A37WU2JMmeq28w1FQqCZswHZ3xR+SuxYftzHq6WU6KJHvqxKzTxxQ==",
- "dependencies": {
- "@types/d3-selection": "*"
- }
- },
- "node_modules/@types/d3-dsv": {
- "version": "3.0.7",
- "resolved": "https://registry.npmjs.org/@types/d3-dsv/-/d3-dsv-3.0.7.tgz",
- "integrity": "sha512-n6QBF9/+XASqcKK6waudgL0pf/S5XHPPI8APyMLLUHd8NqouBGLsU8MgtO7NINGtPBtk9Kko/W4ea0oAspwh9g=="
- },
- "node_modules/@types/d3-ease": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/@types/d3-ease/-/d3-ease-3.0.2.tgz",
- "integrity": "sha512-NcV1JjO5oDzoK26oMzbILE6HW7uVXOHLQvHshBUW4UMdZGfiY6v5BeQwh9a9tCzv+CeefZQHJt5SRgK154RtiA=="
- },
- "node_modules/@types/d3-fetch": {
- "version": "3.0.7",
- "resolved": "https://registry.npmjs.org/@types/d3-fetch/-/d3-fetch-3.0.7.tgz",
- "integrity": "sha512-fTAfNmxSb9SOWNB9IoG5c8Hg6R+AzUHDRlsXsDZsNp6sxAEOP0tkP3gKkNSO/qmHPoBFTxNrjDprVHDQDvo5aA==",
- "dependencies": {
- "@types/d3-dsv": "*"
- }
- },
- "node_modules/@types/d3-force": {
- "version": "3.0.10",
- "resolved": "https://registry.npmjs.org/@types/d3-force/-/d3-force-3.0.10.tgz",
- "integrity": "sha512-ZYeSaCF3p73RdOKcjj+swRlZfnYpK1EbaDiYICEEp5Q6sUiqFaFQ9qgoshp5CzIyyb/yD09kD9o2zEltCexlgw=="
- },
- "node_modules/@types/d3-format": {
- "version": "3.0.4",
- "resolved": "https://registry.npmjs.org/@types/d3-format/-/d3-format-3.0.4.tgz",
- "integrity": "sha512-fALi2aI6shfg7vM5KiR1wNJnZ7r6UuggVqtDA+xiEdPZQwy/trcQaHnwShLuLdta2rTymCNpxYTiMZX/e09F4g=="
- },
- "node_modules/@types/d3-geo": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/@types/d3-geo/-/d3-geo-3.1.0.tgz",
- "integrity": "sha512-856sckF0oP/diXtS4jNsiQw/UuK5fQG8l/a9VVLeSouf1/PPbBE1i1W852zVwKwYCBkFJJB7nCFTbk6UMEXBOQ==",
- "dependencies": {
- "@types/geojson": "*"
- }
- },
- "node_modules/@types/d3-hierarchy": {
- "version": "3.1.7",
- "resolved": "https://registry.npmjs.org/@types/d3-hierarchy/-/d3-hierarchy-3.1.7.tgz",
- "integrity": "sha512-tJFtNoYBtRtkNysX1Xq4sxtjK8YgoWUNpIiUee0/jHGRwqvzYxkq0hGVbbOGSz+JgFxxRu4K8nb3YpG3CMARtg=="
- },
- "node_modules/@types/d3-interpolate": {
- "version": "3.0.4",
- "resolved": "https://registry.npmjs.org/@types/d3-interpolate/-/d3-interpolate-3.0.4.tgz",
- "integrity": "sha512-mgLPETlrpVV1YRJIglr4Ez47g7Yxjl1lj7YKsiMCb27VJH9W8NVM6Bb9d8kkpG/uAQS5AmbA48q2IAolKKo1MA==",
- "dependencies": {
- "@types/d3-color": "*"
- }
- },
- "node_modules/@types/d3-path": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/@types/d3-path/-/d3-path-3.1.1.tgz",
- "integrity": "sha512-VMZBYyQvbGmWyWVea0EHs/BwLgxc+MKi1zLDCONksozI4YJMcTt8ZEuIR4Sb1MMTE8MMW49v0IwI5+b7RmfWlg=="
- },
- "node_modules/@types/d3-polygon": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/@types/d3-polygon/-/d3-polygon-3.0.2.tgz",
- "integrity": "sha512-ZuWOtMaHCkN9xoeEMr1ubW2nGWsp4nIql+OPQRstu4ypeZ+zk3YKqQT0CXVe/PYqrKpZAi+J9mTs05TKwjXSRA=="
- },
- "node_modules/@types/d3-quadtree": {
- "version": "3.0.6",
- "resolved": "https://registry.npmjs.org/@types/d3-quadtree/-/d3-quadtree-3.0.6.tgz",
- "integrity": "sha512-oUzyO1/Zm6rsxKRHA1vH0NEDG58HrT5icx/azi9MF1TWdtttWl0UIUsjEQBBh+SIkrpd21ZjEv7ptxWys1ncsg=="
- },
- "node_modules/@types/d3-random": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/@types/d3-random/-/d3-random-3.0.3.tgz",
- "integrity": "sha512-Imagg1vJ3y76Y2ea0871wpabqp613+8/r0mCLEBfdtqC7xMSfj9idOnmBYyMoULfHePJyxMAw3nWhJxzc+LFwQ=="
- },
- "node_modules/@types/d3-scale": {
- "version": "4.0.9",
- "resolved": "https://registry.npmjs.org/@types/d3-scale/-/d3-scale-4.0.9.tgz",
- "integrity": "sha512-dLmtwB8zkAeO/juAMfnV+sItKjlsw2lKdZVVy6LRr0cBmegxSABiLEpGVmSJJ8O08i4+sGR6qQtb6WtuwJdvVw==",
- "dependencies": {
- "@types/d3-time": "*"
- }
- },
- "node_modules/@types/d3-scale-chromatic": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/@types/d3-scale-chromatic/-/d3-scale-chromatic-3.1.0.tgz",
- "integrity": "sha512-iWMJgwkK7yTRmWqRB5plb1kadXyQ5Sj8V/zYlFGMUBbIPKQScw+Dku9cAAMgJG+z5GYDoMjWGLVOvjghDEFnKQ=="
- },
- "node_modules/@types/d3-selection": {
- "version": "3.0.11",
- "resolved": "https://registry.npmjs.org/@types/d3-selection/-/d3-selection-3.0.11.tgz",
- "integrity": "sha512-bhAXu23DJWsrI45xafYpkQ4NtcKMwWnAC/vKrd2l+nxMFuvOT3XMYTIj2opv8vq8AO5Yh7Qac/nSeP/3zjTK0w=="
- },
- "node_modules/@types/d3-shape": {
- "version": "3.1.7",
- "resolved": "https://registry.npmjs.org/@types/d3-shape/-/d3-shape-3.1.7.tgz",
- "integrity": "sha512-VLvUQ33C+3J+8p+Daf+nYSOsjB4GXp19/S/aGo60m9h1v6XaxjiT82lKVWJCfzhtuZ3yD7i/TPeC/fuKLLOSmg==",
- "dependencies": {
- "@types/d3-path": "*"
- }
- },
- "node_modules/@types/d3-time": {
- "version": "3.0.4",
- "resolved": "https://registry.npmjs.org/@types/d3-time/-/d3-time-3.0.4.tgz",
- "integrity": "sha512-yuzZug1nkAAaBlBBikKZTgzCeA+k1uy4ZFwWANOfKw5z5LRhV0gNA7gNkKm7HoK+HRN0wX3EkxGk0fpbWhmB7g=="
- },
- "node_modules/@types/d3-time-format": {
- "version": "4.0.3",
- "resolved": "https://registry.npmjs.org/@types/d3-time-format/-/d3-time-format-4.0.3.tgz",
- "integrity": "sha512-5xg9rC+wWL8kdDj153qZcsJ0FWiFt0J5RB6LYUNZjwSnesfblqrI/bJ1wBdJ8OQfncgbJG5+2F+qfqnqyzYxyg=="
- },
- "node_modules/@types/d3-timer": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/@types/d3-timer/-/d3-timer-3.0.2.tgz",
- "integrity": "sha512-Ps3T8E8dZDam6fUyNiMkekK3XUsaUEik+idO9/YjPtfj2qruF8tFBXS7XhtE4iIXBLxhmLjP3SXpLhVf21I9Lw=="
- },
- "node_modules/@types/d3-transition": {
- "version": "3.0.9",
- "resolved": "https://registry.npmjs.org/@types/d3-transition/-/d3-transition-3.0.9.tgz",
- "integrity": "sha512-uZS5shfxzO3rGlu0cC3bjmMFKsXv+SmZZcgp0KD22ts4uGXp5EVYGzu/0YdwZeKmddhcAccYtREJKkPfXkZuCg==",
- "dependencies": {
- "@types/d3-selection": "*"
- }
- },
- "node_modules/@types/d3-zoom": {
- "version": "3.0.8",
- "resolved": "https://registry.npmjs.org/@types/d3-zoom/-/d3-zoom-3.0.8.tgz",
- "integrity": "sha512-iqMC4/YlFCSlO8+2Ii1GGGliCAY4XdeG748w5vQUbevlbDu0zSjH/+jojorQVBK/se0j6DUFNPBGSqD3YWYnDw==",
- "dependencies": {
- "@types/d3-interpolate": "*",
- "@types/d3-selection": "*"
- }
- },
- "node_modules/@types/debug": {
- "version": "4.1.12",
- "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.12.tgz",
- "integrity": "sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==",
- "dependencies": {
- "@types/ms": "*"
- }
- },
- "node_modules/@types/estree": {
- "version": "1.0.7",
- "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.7.tgz",
- "integrity": "sha512-w28IoSUCJpidD/TGviZwwMJckNESJZXFu7NBZ5YJ4mEUnNraUn9Pm8HSZm/jDF1pDWYKspWE7oVphigUPRakIQ=="
- },
- "node_modules/@types/estree-jsx": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/@types/estree-jsx/-/estree-jsx-1.0.5.tgz",
- "integrity": "sha512-52CcUVNFyfb1A2ALocQw/Dd1BQFNmSdkuC3BkZ6iqhdMfQz7JWOFRuJFloOzjk+6WijU56m9oKXFAXc7o3Towg==",
- "dependencies": {
- "@types/estree": "*"
- }
- },
- "node_modules/@types/geojson": {
- "version": "7946.0.16",
- "resolved": "https://registry.npmjs.org/@types/geojson/-/geojson-7946.0.16.tgz",
- "integrity": "sha512-6C8nqWur3j98U6+lXDfTUWIfgvZU+EumvpHKcYjujKH7woYyLj2sUmff0tRhrqM7BohUw7Pz3ZB1jj2gW9Fvmg=="
- },
- "node_modules/@types/graceful-fs": {
- "version": "4.1.9",
- "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.9.tgz",
- "integrity": "sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==",
- "dependencies": {
- "@types/node": "*"
- }
- },
- "node_modules/@types/hast": {
- "version": "3.0.4",
- "resolved": "https://registry.npmjs.org/@types/hast/-/hast-3.0.4.tgz",
- "integrity": "sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==",
- "dependencies": {
- "@types/unist": "*"
- }
- },
- "node_modules/@types/istanbul-lib-coverage": {
- "version": "2.0.6",
- "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz",
- "integrity": "sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w=="
- },
- "node_modules/@types/istanbul-lib-report": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.3.tgz",
- "integrity": "sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==",
- "dependencies": {
- "@types/istanbul-lib-coverage": "*"
- }
- },
- "node_modules/@types/istanbul-reports": {
- "version": "3.0.4",
- "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.4.tgz",
- "integrity": "sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==",
- "dependencies": {
- "@types/istanbul-lib-report": "*"
- }
- },
- "node_modules/@types/katex": {
- "version": "0.16.7",
- "resolved": "https://registry.npmjs.org/@types/katex/-/katex-0.16.7.tgz",
- "integrity": "sha512-HMwFiRujE5PjrgwHQ25+bsLJgowjGjm5Z8FVSf0N6PwgJrwxH0QxzHYDcKsTfV3wva0vzrpqMTJS2jXPr5BMEQ=="
- },
- "node_modules/@types/mdast": {
- "version": "4.0.4",
- "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.4.tgz",
- "integrity": "sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==",
- "dependencies": {
- "@types/unist": "*"
- }
- },
- "node_modules/@types/mdx": {
- "version": "2.0.13",
- "resolved": "https://registry.npmjs.org/@types/mdx/-/mdx-2.0.13.tgz",
- "integrity": "sha512-+OWZQfAYyio6YkJb3HLxDrvnx6SWWDbC0zVPfBRzUk0/nqoDyf6dNxQi3eArPe8rJ473nobTMQ/8Zk+LxJ+Yuw=="
- },
- "node_modules/@types/ms": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/@types/ms/-/ms-2.1.0.tgz",
- "integrity": "sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA=="
- },
- "node_modules/@types/nlcst": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/@types/nlcst/-/nlcst-2.0.3.tgz",
- "integrity": "sha512-vSYNSDe6Ix3q+6Z7ri9lyWqgGhJTmzRjZRqyq15N0Z/1/UnVsno9G/N40NBijoYx2seFDIl0+B2mgAb9mezUCA==",
- "dependencies": {
- "@types/unist": "*"
- }
- },
- "node_modules/@types/node": {
- "version": "18.11.10",
- "resolved": "file:../node_modules/.pnpm/@types+node@18.11.10/node_modules/@types/node",
- "license": "MIT"
- },
- "node_modules/@types/prop-types": {
- "version": "15.7.14",
- "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.14.tgz",
- "integrity": "sha512-gNMvNH49DJ7OJYv+KAKn0Xp45p8PLl6zo2YnvDIbTd4J6MER2BmWN49TG7n9LvkyihINxeKW8+3bfS2yDC9dzQ==",
- "peer": true
- },
- "node_modules/@types/react": {
- "version": "18.3.20",
- "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.20.tgz",
- "integrity": "sha512-IPaCZN7PShZK/3t6Q87pfTkRm6oLTd4vztyoj+cbHUF1g3FfVb2tFIL79uCRKEfv16AhqDMBywP2VW3KIZUvcg==",
- "peer": true,
- "dependencies": {
- "@types/prop-types": "*",
- "csstype": "^3.0.2"
- }
- },
- "node_modules/@types/stack-utils": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.3.tgz",
- "integrity": "sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw=="
- },
- "node_modules/@types/trusted-types": {
- "version": "2.0.7",
- "resolved": "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.7.tgz",
- "integrity": "sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==",
- "optional": true
- },
- "node_modules/@types/unist": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.3.tgz",
- "integrity": "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q=="
- },
- "node_modules/@types/yargs": {
- "version": "17.0.33",
- "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.33.tgz",
- "integrity": "sha512-WpxBCKWPLr4xSsHgz511rFJAM+wS28w2zEO1QDNY5zM/S8ok70NNfztH0xwhqKyaK0OHCbN98LDAZuy1ctxDkA==",
- "dependencies": {
- "@types/yargs-parser": "*"
- }
- },
- "node_modules/@types/yargs-parser": {
- "version": "21.0.3",
- "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.3.tgz",
- "integrity": "sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ=="
- },
- "node_modules/@typescript/vfs": {
- "version": "1.6.1",
- "resolved": "https://registry.npmjs.org/@typescript/vfs/-/vfs-1.6.1.tgz",
- "integrity": "sha512-JwoxboBh7Oz1v38tPbkrZ62ZXNHAk9bJ7c9x0eI5zBfBnBYGhURdbnh7Z4smN/MV48Y5OCcZb58n972UtbazsA==",
- "dependencies": {
- "debug": "^4.1.1"
- },
- "peerDependencies": {
- "typescript": "*"
- }
- },
- "node_modules/@ungap/structured-clone": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.3.0.tgz",
- "integrity": "sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g=="
- },
- "node_modules/@vercel/analytics": {
- "version": "1.5.0",
- "resolved": "https://registry.npmjs.org/@vercel/analytics/-/analytics-1.5.0.tgz",
- "integrity": "sha512-MYsBzfPki4gthY5HnYN7jgInhAZ7Ac1cYDoRWFomwGHWEX7odTEzbtg9kf/QSo7XEsEAqlQugA6gJ2WS2DEa3g==",
- "peerDependencies": {
- "@remix-run/react": "^2",
- "@sveltejs/kit": "^1 || ^2",
- "next": ">= 13",
- "react": "^18 || ^19 || ^19.0.0-rc",
- "svelte": ">= 4",
- "vue": "^3",
- "vue-router": "^4"
- },
- "peerDependenciesMeta": {
- "@remix-run/react": {
- "optional": true
- },
- "@sveltejs/kit": {
- "optional": true
- },
- "next": {
- "optional": true
- },
- "react": {
- "optional": true
- },
- "svelte": {
- "optional": true
- },
- "vue": {
- "optional": true
- },
- "vue-router": {
- "optional": true
- }
- }
- },
- "node_modules/acorn": {
- "version": "8.14.1",
- "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.1.tgz",
- "integrity": "sha512-OvQ/2pUDKmgfCg++xsTX1wGxfTaszcHVcTctW4UJB4hibJx2HXxxO5UmVgyjMa+ZDsiaf5wWLXYpRWMmBI0QHg==",
- "bin": {
- "acorn": "bin/acorn"
- },
- "engines": {
- "node": ">=0.4.0"
- }
- },
- "node_modules/acorn-jsx": {
- "version": "5.3.2",
- "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz",
- "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==",
- "peerDependencies": {
- "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0"
- }
- },
- "node_modules/algoliasearch": {
- "version": "5.23.2",
- "resolved": "https://registry.npmjs.org/algoliasearch/-/algoliasearch-5.23.2.tgz",
- "integrity": "sha512-IhKP22Czzg8Y9HaF6aIb5aAHK2HBj4VAzLLnKEPUnxqDwxpryH9sXbm0NkeY7Cby9GlF81wF+AG/VulKDFBphg==",
- "dependencies": {
- "@algolia/client-abtesting": "5.23.2",
- "@algolia/client-analytics": "5.23.2",
- "@algolia/client-common": "5.23.2",
- "@algolia/client-insights": "5.23.2",
- "@algolia/client-personalization": "5.23.2",
- "@algolia/client-query-suggestions": "5.23.2",
- "@algolia/client-search": "5.23.2",
- "@algolia/ingestion": "1.23.2",
- "@algolia/monitoring": "1.23.2",
- "@algolia/recommend": "5.23.2",
- "@algolia/requester-browser-xhr": "5.23.2",
- "@algolia/requester-fetch": "5.23.2",
- "@algolia/requester-node-http": "5.23.2"
- },
- "engines": {
- "node": ">= 14.0.0"
- }
- },
- "node_modules/ansi-escapes": {
- "version": "7.0.0",
- "license": "MIT",
- "dependencies": {
- "environment": "^1.0.0"
- },
- "engines": {
- "node": ">=18"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/ansi-regex": {
- "version": "6.1.0",
- "license": "MIT",
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/chalk/ansi-regex?sponsor=1"
- }
- },
- "node_modules/ansi-styles": {
- "version": "6.2.1",
- "license": "MIT",
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/chalk/ansi-styles?sponsor=1"
- }
- },
- "node_modules/any-promise": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz",
- "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==",
- "dev": true
- },
- "node_modules/anymatch": {
- "version": "3.1.3",
- "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz",
- "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==",
- "dependencies": {
- "normalize-path": "^3.0.0",
- "picomatch": "^2.0.4"
- },
- "engines": {
- "node": ">= 8"
- }
- },
- "node_modules/arg": {
- "version": "5.0.2",
- "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz",
- "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg=="
- },
- "node_modules/argparse": {
- "version": "1.0.10",
- "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz",
- "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==",
- "dependencies": {
- "sprintf-js": "~1.0.2"
- }
- },
- "node_modules/array-iterate": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/array-iterate/-/array-iterate-2.0.1.tgz",
- "integrity": "sha512-I1jXZMjAgCMmxT4qxXfPXa6SthSoE8h6gkSI9BGGNv8mP8G/v0blc+qFnZu6K42vTOiuME596QaLO0TP3Lk0xg==",
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/wooorm"
- }
- },
- "node_modules/astring": {
- "version": "1.9.0",
- "resolved": "https://registry.npmjs.org/astring/-/astring-1.9.0.tgz",
- "integrity": "sha512-LElXdjswlqjWrPpJFg1Fx4wpkOCxj1TDHlSV4PlaRxHGWko024xICaa97ZkMfs6DRKlCguiAI+rbXv5GWwXIkg==",
- "bin": {
- "astring": "bin/astring"
- }
- },
- "node_modules/autoprefixer": {
- "version": "10.4.21",
- "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.21.tgz",
- "integrity": "sha512-O+A6LWV5LDHSJD3LjHYoNi4VLsj/Whi7k6zG12xTYaU4cQ8oxQGckXNX8cRHK5yOZ/ppVHe0ZBXGzSV9jXdVbQ==",
- "dev": true,
- "funding": [
- {
- "type": "opencollective",
- "url": "https://opencollective.com/postcss/"
- },
- {
- "type": "tidelift",
- "url": "https://tidelift.com/funding/github/npm/autoprefixer"
- },
- {
- "type": "github",
- "url": "https://github.com/sponsors/ai"
- }
- ],
- "dependencies": {
- "browserslist": "^4.24.4",
- "caniuse-lite": "^1.0.30001702",
- "fraction.js": "^4.3.7",
- "normalize-range": "^0.1.2",
- "picocolors": "^1.1.1",
- "postcss-value-parser": "^4.2.0"
- },
- "bin": {
- "autoprefixer": "bin/autoprefixer"
- },
- "engines": {
- "node": "^10 || ^12 || >=14"
- },
- "peerDependencies": {
- "postcss": "^8.1.0"
- }
- },
- "node_modules/babel-jest": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-29.7.0.tgz",
- "integrity": "sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==",
- "dependencies": {
- "@jest/transform": "^29.7.0",
- "@types/babel__core": "^7.1.14",
- "babel-plugin-istanbul": "^6.1.1",
- "babel-preset-jest": "^29.6.3",
- "chalk": "^4.0.0",
- "graceful-fs": "^4.2.9",
- "slash": "^3.0.0"
- },
- "engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.8.0"
- }
- },
- "node_modules/babel-jest/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/babel-jest/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/babel-jest/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/babel-plugin-istanbul": {
- "version": "6.1.1",
- "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz",
- "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==",
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.0.0",
- "@istanbuljs/load-nyc-config": "^1.0.0",
- "@istanbuljs/schema": "^0.1.2",
- "istanbul-lib-instrument": "^5.0.4",
- "test-exclude": "^6.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/babel-plugin-istanbul/node_modules/istanbul-lib-instrument": {
- "version": "5.2.1",
- "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz",
- "integrity": "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==",
- "dependencies": {
- "@babel/core": "^7.12.3",
- "@babel/parser": "^7.14.7",
- "@istanbuljs/schema": "^0.1.2",
- "istanbul-lib-coverage": "^3.2.0",
- "semver": "^6.3.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/babel-plugin-jest-hoist": {
- "version": "29.6.3",
- "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.6.3.tgz",
- "integrity": "sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg==",
- "dependencies": {
- "@babel/template": "^7.3.3",
- "@babel/types": "^7.3.3",
- "@types/babel__core": "^7.1.14",
- "@types/babel__traverse": "^7.0.6"
- },
- "engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
- }
- },
- "node_modules/babel-preset-current-node-syntax": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.1.0.tgz",
- "integrity": "sha512-ldYss8SbBlWva1bs28q78Ju5Zq1F+8BrqBZZ0VFhLBvhh6lCpC2o3gDJi/5DRLs9FgYZCnmPYIVFU4lRXCkyUw==",
- "dependencies": {
- "@babel/plugin-syntax-async-generators": "^7.8.4",
- "@babel/plugin-syntax-bigint": "^7.8.3",
- "@babel/plugin-syntax-class-properties": "^7.12.13",
- "@babel/plugin-syntax-class-static-block": "^7.14.5",
- "@babel/plugin-syntax-import-attributes": "^7.24.7",
- "@babel/plugin-syntax-import-meta": "^7.10.4",
- "@babel/plugin-syntax-json-strings": "^7.8.3",
- "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4",
- "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3",
- "@babel/plugin-syntax-numeric-separator": "^7.10.4",
- "@babel/plugin-syntax-object-rest-spread": "^7.8.3",
- "@babel/plugin-syntax-optional-catch-binding": "^7.8.3",
- "@babel/plugin-syntax-optional-chaining": "^7.8.3",
- "@babel/plugin-syntax-private-property-in-object": "^7.14.5",
- "@babel/plugin-syntax-top-level-await": "^7.14.5"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0"
- }
- },
- "node_modules/babel-preset-jest": {
- "version": "29.6.3",
- "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-29.6.3.tgz",
- "integrity": "sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA==",
- "dependencies": {
- "babel-plugin-jest-hoist": "^29.6.3",
- "babel-preset-current-node-syntax": "^1.0.0"
- },
- "engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0"
- }
- },
- "node_modules/bail": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/bail/-/bail-2.0.2.tgz",
- "integrity": "sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==",
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/wooorm"
- }
- },
- "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/better-react-mathjax": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/better-react-mathjax/-/better-react-mathjax-2.1.0.tgz",
- "integrity": "sha512-RrHudli76sgoVu+YtjHTKhCkjO2eH1B7Xje1sa0YPjhKzq2y/GIwOt9+tuel3s2L+mCPmFbYBFLDFfo3pEa8rQ==",
- "dependencies": {
- "mathjax-full": "^3.2.2"
- },
- "peerDependencies": {
- "react": ">=16.8"
- }
- },
- "node_modules/binary-extensions": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz",
- "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==",
- "dev": true,
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/brace-expansion": {
- "version": "1.1.11",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
- "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
- "dependencies": {
- "balanced-match": "^1.0.0",
- "concat-map": "0.0.1"
- }
- },
- "node_modules/braces": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz",
- "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==",
- "dependencies": {
- "fill-range": "^7.1.1"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/browserslist": {
- "version": "4.24.4",
- "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.24.4.tgz",
- "integrity": "sha512-KDi1Ny1gSePi1vm0q4oxSF8b4DR44GF4BbmS2YdhPLOEqd8pDviZOGH/GsmRwoWJ2+5Lr085X7naowMwKHDG1A==",
- "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"
- }
- ],
- "dependencies": {
- "caniuse-lite": "^1.0.30001688",
- "electron-to-chromium": "^1.5.73",
- "node-releases": "^2.0.19",
- "update-browserslist-db": "^1.1.1"
- },
- "bin": {
- "browserslist": "cli.js"
- },
- "engines": {
- "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7"
- }
- },
- "node_modules/bser": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz",
- "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==",
- "dependencies": {
- "node-int64": "^0.4.0"
- }
- },
- "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=="
- },
- "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/callsites": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz",
- "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==",
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/camelcase": {
- "version": "5.3.1",
- "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz",
- "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==",
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/camelcase-css": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz",
- "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==",
- "dev": true,
- "engines": {
- "node": ">= 6"
- }
- },
- "node_modules/caniuse-lite": {
- "version": "1.0.30001710",
- "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001710.tgz",
- "integrity": "sha512-B5C0I0UmaGqHgo5FuqJ7hBd4L57A4dDD+Xi+XX1nXOoxGeDdY4Ko38qJYOyqznBVJEqON5p8P1x5zRR3+rsnxA==",
- "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/ccount": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/ccount/-/ccount-2.0.1.tgz",
- "integrity": "sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==",
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/wooorm"
- }
- },
- "node_modules/chalk": {
- "version": "5.3.0",
- "resolved": "file:../node_modules/.pnpm/chalk@5.3.0/node_modules/chalk",
- "license": "MIT",
- "engines": {
- "node": "^12.17.0 || ^14.13 || >=16.0.0"
- },
- "funding": {
- "url": "https://github.com/chalk/chalk?sponsor=1"
- }
- },
- "node_modules/char-regex": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz",
- "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==",
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/character-entities": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/character-entities/-/character-entities-2.0.2.tgz",
- "integrity": "sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==",
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/wooorm"
- }
- },
- "node_modules/character-entities-html4": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/character-entities-html4/-/character-entities-html4-2.1.0.tgz",
- "integrity": "sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==",
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/wooorm"
- }
- },
- "node_modules/character-entities-legacy": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-3.0.0.tgz",
- "integrity": "sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==",
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/wooorm"
- }
- },
- "node_modules/character-reference-invalid": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/character-reference-invalid/-/character-reference-invalid-2.0.1.tgz",
- "integrity": "sha512-iBZ4F4wRbyORVsu0jPV7gXkOsGYjGHPmAyv+HiHG8gi5PtC9KI2j1+v8/tlibRvjoWX027ypmG/n0HtO5t7unw==",
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/wooorm"
- }
- },
- "node_modules/chevrotain": {
- "version": "11.0.3",
- "resolved": "https://registry.npmjs.org/chevrotain/-/chevrotain-11.0.3.tgz",
- "integrity": "sha512-ci2iJH6LeIkvP9eJW6gpueU8cnZhv85ELY8w8WiFtNjMHA5ad6pQLaJo9mEly/9qUyCpvqX8/POVUTf18/HFdw==",
- "dependencies": {
- "@chevrotain/cst-dts-gen": "11.0.3",
- "@chevrotain/gast": "11.0.3",
- "@chevrotain/regexp-to-ast": "11.0.3",
- "@chevrotain/types": "11.0.3",
- "@chevrotain/utils": "11.0.3",
- "lodash-es": "4.17.21"
- }
- },
- "node_modules/chevrotain-allstar": {
- "version": "0.3.1",
- "resolved": "https://registry.npmjs.org/chevrotain-allstar/-/chevrotain-allstar-0.3.1.tgz",
- "integrity": "sha512-b7g+y9A0v4mxCW1qUhf3BSVPg+/NvGErk/dOkrDaHA0nQIQGAtrOjlX//9OQtRlSCy+x9rfB5N8yC71lH1nvMw==",
- "dependencies": {
- "lodash-es": "^4.17.21"
- },
- "peerDependencies": {
- "chevrotain": "^11.0.0"
- }
- },
- "node_modules/chokidar": {
- "version": "3.6.0",
- "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz",
- "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==",
- "dev": true,
- "dependencies": {
- "anymatch": "~3.1.2",
- "braces": "~3.0.2",
- "glob-parent": "~5.1.2",
- "is-binary-path": "~2.1.0",
- "is-glob": "~4.0.1",
- "normalize-path": "~3.0.0",
- "readdirp": "~3.6.0"
- },
- "engines": {
- "node": ">= 8.10.0"
- },
- "funding": {
- "url": "https://paulmillr.com/funding/"
- },
- "optionalDependencies": {
- "fsevents": "~2.3.2"
- }
- },
- "node_modules/chokidar/node_modules/glob-parent": {
- "version": "5.1.2",
- "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
- "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
- "dev": true,
- "dependencies": {
- "is-glob": "^4.0.1"
- },
- "engines": {
- "node": ">= 6"
- }
- },
- "node_modules/ci-info": {
- "version": "3.9.0",
- "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz",
- "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==",
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/sibiraj-s"
- }
- ],
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/cjs-module-lexer": {
- "version": "1.4.3",
- "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.4.3.tgz",
- "integrity": "sha512-9z8TZaGM1pfswYeXrUpzPrkx8UnWYdhJclsiYMm6x/w5+nN+8Tf/LnAgfLGQCm59qAOxU8WwHEq2vNwF6i4j+Q=="
- },
- "node_modules/cli-cursor": {
- "version": "5.0.0",
- "license": "MIT",
- "dependencies": {
- "restore-cursor": "^5.0.0"
- },
- "engines": {
- "node": ">=18"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/cli-truncate": {
- "version": "4.0.0",
- "license": "MIT",
- "dependencies": {
- "slice-ansi": "^5.0.0",
- "string-width": "^7.0.0"
- },
- "engines": {
- "node": ">=18"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/cli-truncate/node_modules/is-fullwidth-code-point": {
- "version": "4.0.0",
- "license": "MIT",
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/cli-truncate/node_modules/slice-ansi": {
- "version": "5.0.0",
- "license": "MIT",
- "dependencies": {
- "ansi-styles": "^6.0.0",
- "is-fullwidth-code-point": "^4.0.0"
- },
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/chalk/slice-ansi?sponsor=1"
- }
- },
- "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/clipboardy": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/clipboardy/-/clipboardy-4.0.0.tgz",
- "integrity": "sha512-5mOlNS0mhX0707P2I0aZ2V/cmHUEO/fL7VFLqszkhUsxt7RwnmrInf/eEQKlf5GzvYeHIjT+Ov1HRfNmymlG0w==",
- "dependencies": {
- "execa": "^8.0.1",
- "is-wsl": "^3.1.0",
- "is64bit": "^2.0.0"
- },
- "engines": {
- "node": ">=18"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/cliui": {
- "version": "8.0.1",
- "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz",
- "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==",
- "dependencies": {
- "string-width": "^4.2.0",
- "strip-ansi": "^6.0.1",
- "wrap-ansi": "^7.0.0"
- },
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/cliui/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/cliui/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/cliui/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/cliui/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/cliui/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/cliui/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/cliui/node_modules/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/clsx": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz",
- "integrity": "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==",
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/co": {
- "version": "4.6.0",
- "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz",
- "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==",
- "engines": {
- "iojs": ">= 1.0.0",
- "node": ">= 0.12.0"
- }
- },
- "node_modules/collapse-white-space": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/collapse-white-space/-/collapse-white-space-2.1.0.tgz",
- "integrity": "sha512-loKTxY1zCOuG4j9f6EPnuyyYkf58RnhhWTvRoZEokgB+WbdXehfjFviyOVYkqzEWz1Q5kRiZdBYS5SwxbQYwzw==",
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/wooorm"
- }
- },
- "node_modules/collect-v8-coverage": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.2.tgz",
- "integrity": "sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q=="
- },
- "node_modules/color": {
- "version": "4.2.3",
- "resolved": "https://registry.npmjs.org/color/-/color-4.2.3.tgz",
- "integrity": "sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==",
- "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==",
- "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/comma-separated-tokens": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/comma-separated-tokens/-/comma-separated-tokens-2.0.3.tgz",
- "integrity": "sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==",
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/wooorm"
- }
- },
- "node_modules/commander": {
- "version": "12.1.0",
- "license": "MIT",
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/compute-scroll-into-view": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/compute-scroll-into-view/-/compute-scroll-into-view-3.1.1.tgz",
- "integrity": "sha512-VRhuHOLoKYOy4UbilLbUzbYg93XLjv2PncJC50EuTWPA3gaja1UjBsUP/D/9/juV3vQFr6XBEzn9KCAHdUvOHw=="
- },
- "node_modules/concat-map": {
- "version": "0.0.1",
- "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
- "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg=="
- },
- "node_modules/confbox": {
- "version": "0.2.2",
- "resolved": "https://registry.npmjs.org/confbox/-/confbox-0.2.2.tgz",
- "integrity": "sha512-1NB+BKqhtNipMsov4xI/NnhCKp9XG9NamYp5PVm9klAT0fsrNPjaFICsCFhNhwZJKNh7zB/3q8qXz0E9oaMNtQ=="
- },
- "node_modules/convert-source-map": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz",
- "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg=="
- },
- "node_modules/cose-base": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/cose-base/-/cose-base-1.0.3.tgz",
- "integrity": "sha512-s9whTXInMSgAp/NVXVNuVxVKzGH2qck3aQlVHxDCdAEPgtMKwc4Wq6/QKhgdEdgbLSi9rBTAcPoRa6JpiG4ksg==",
- "dependencies": {
- "layout-base": "^1.0.0"
- }
- },
- "node_modules/create-jest": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/create-jest/-/create-jest-29.7.0.tgz",
- "integrity": "sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q==",
- "dependencies": {
- "@jest/types": "^29.6.3",
- "chalk": "^4.0.0",
- "exit": "^0.1.2",
- "graceful-fs": "^4.2.9",
- "jest-config": "^29.7.0",
- "jest-util": "^29.7.0",
- "prompts": "^2.0.1"
- },
- "bin": {
- "create-jest": "bin/create-jest.js"
- },
- "engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
- }
- },
- "node_modules/create-jest/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/create-jest/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/create-jest/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/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/cross-spawn/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/cssesc": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz",
- "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==",
- "dev": true,
- "bin": {
- "cssesc": "bin/cssesc"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/csstype": {
- "version": "3.1.3",
- "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz",
- "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==",
- "peer": true
- },
- "node_modules/cytoscape": {
- "version": "3.31.2",
- "resolved": "https://registry.npmjs.org/cytoscape/-/cytoscape-3.31.2.tgz",
- "integrity": "sha512-/eOXg2uGdMdpGlEes5Sf6zE+jUG+05f3htFNQIxLxduOH/SsaUZiPBfAwP1btVIVzsnhiNOdi+hvDRLYfMZjGw==",
- "engines": {
- "node": ">=0.10"
- }
- },
- "node_modules/cytoscape-cose-bilkent": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/cytoscape-cose-bilkent/-/cytoscape-cose-bilkent-4.1.0.tgz",
- "integrity": "sha512-wgQlVIUJF13Quxiv5e1gstZ08rnZj2XaLHGoFMYXz7SkNfCDOOteKBE6SYRfA9WxxI/iBc3ajfDoc6hb/MRAHQ==",
- "dependencies": {
- "cose-base": "^1.0.0"
- },
- "peerDependencies": {
- "cytoscape": "^3.2.0"
- }
- },
- "node_modules/cytoscape-fcose": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/cytoscape-fcose/-/cytoscape-fcose-2.2.0.tgz",
- "integrity": "sha512-ki1/VuRIHFCzxWNrsshHYPs6L7TvLu3DL+TyIGEsRcvVERmxokbf5Gdk7mFxZnTdiGtnA4cfSmjZJMviqSuZrQ==",
- "dependencies": {
- "cose-base": "^2.2.0"
- },
- "peerDependencies": {
- "cytoscape": "^3.2.0"
- }
- },
- "node_modules/cytoscape-fcose/node_modules/cose-base": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/cose-base/-/cose-base-2.2.0.tgz",
- "integrity": "sha512-AzlgcsCbUMymkADOJtQm3wO9S3ltPfYOFD5033keQn9NJzIbtnZj+UdBJe7DYml/8TdbtHJW3j58SOnKhWY/5g==",
- "dependencies": {
- "layout-base": "^2.0.0"
- }
- },
- "node_modules/cytoscape-fcose/node_modules/layout-base": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/layout-base/-/layout-base-2.0.1.tgz",
- "integrity": "sha512-dp3s92+uNI1hWIpPGH3jK2kxE2lMjdXdr+DH8ynZHpd6PUlH6x6cbuXnoMmiNumznqaNO31xu9e79F0uuZ0JFg=="
- },
- "node_modules/d3": {
- "version": "7.9.0",
- "resolved": "https://registry.npmjs.org/d3/-/d3-7.9.0.tgz",
- "integrity": "sha512-e1U46jVP+w7Iut8Jt8ri1YsPOvFpg46k+K8TpCb0P+zjCkjkPnV7WzfDJzMHy1LnA+wj5pLT1wjO901gLXeEhA==",
- "dependencies": {
- "d3-array": "3",
- "d3-axis": "3",
- "d3-brush": "3",
- "d3-chord": "3",
- "d3-color": "3",
- "d3-contour": "4",
- "d3-delaunay": "6",
- "d3-dispatch": "3",
- "d3-drag": "3",
- "d3-dsv": "3",
- "d3-ease": "3",
- "d3-fetch": "3",
- "d3-force": "3",
- "d3-format": "3",
- "d3-geo": "3",
- "d3-hierarchy": "3",
- "d3-interpolate": "3",
- "d3-path": "3",
- "d3-polygon": "3",
- "d3-quadtree": "3",
- "d3-random": "3",
- "d3-scale": "4",
- "d3-scale-chromatic": "3",
- "d3-selection": "3",
- "d3-shape": "3",
- "d3-time": "3",
- "d3-time-format": "4",
- "d3-timer": "3",
- "d3-transition": "3",
- "d3-zoom": "3"
- },
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/d3-array": {
- "version": "3.2.4",
- "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-3.2.4.tgz",
- "integrity": "sha512-tdQAmyA18i4J7wprpYq8ClcxZy3SC31QMeByyCFyRt7BVHdREQZ5lpzoe5mFEYZUWe+oq8HBvk9JjpibyEV4Jg==",
- "dependencies": {
- "internmap": "1 - 2"
- },
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/d3-axis": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/d3-axis/-/d3-axis-3.0.0.tgz",
- "integrity": "sha512-IH5tgjV4jE/GhHkRV0HiVYPDtvfjHQlQfJHs0usq7M30XcSBvOotpmH1IgkcXsO/5gEQZD43B//fc7SRT5S+xw==",
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/d3-brush": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/d3-brush/-/d3-brush-3.0.0.tgz",
- "integrity": "sha512-ALnjWlVYkXsVIGlOsuWH1+3udkYFI48Ljihfnh8FZPF2QS9o+PzGLBslO0PjzVoHLZ2KCVgAM8NVkXPJB2aNnQ==",
- "dependencies": {
- "d3-dispatch": "1 - 3",
- "d3-drag": "2 - 3",
- "d3-interpolate": "1 - 3",
- "d3-selection": "3",
- "d3-transition": "3"
- },
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/d3-chord": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/d3-chord/-/d3-chord-3.0.1.tgz",
- "integrity": "sha512-VE5S6TNa+j8msksl7HwjxMHDM2yNK3XCkusIlpX5kwauBfXuyLAtNg9jCp/iHH61tgI4sb6R/EIMWCqEIdjT/g==",
- "dependencies": {
- "d3-path": "1 - 3"
- },
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/d3-color": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/d3-color/-/d3-color-3.1.0.tgz",
- "integrity": "sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA==",
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/d3-contour": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/d3-contour/-/d3-contour-4.0.2.tgz",
- "integrity": "sha512-4EzFTRIikzs47RGmdxbeUvLWtGedDUNkTcmzoeyg4sP/dvCexO47AaQL7VKy/gul85TOxw+IBgA8US2xwbToNA==",
- "dependencies": {
- "d3-array": "^3.2.0"
- },
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/d3-delaunay": {
- "version": "6.0.4",
- "resolved": "https://registry.npmjs.org/d3-delaunay/-/d3-delaunay-6.0.4.tgz",
- "integrity": "sha512-mdjtIZ1XLAM8bm/hx3WwjfHt6Sggek7qH043O8KEjDXN40xi3vx/6pYSVTwLjEgiXQTbvaouWKynLBiUZ6SK6A==",
- "dependencies": {
- "delaunator": "5"
- },
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/d3-dispatch": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/d3-dispatch/-/d3-dispatch-3.0.1.tgz",
- "integrity": "sha512-rzUyPU/S7rwUflMyLc1ETDeBj0NRuHKKAcvukozwhshr6g6c5d8zh4c2gQjY2bZ0dXeGLWc1PF174P2tVvKhfg==",
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/d3-drag": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/d3-drag/-/d3-drag-3.0.0.tgz",
- "integrity": "sha512-pWbUJLdETVA8lQNJecMxoXfH6x+mO2UQo8rSmZ+QqxcbyA3hfeprFgIT//HW2nlHChWeIIMwS2Fq+gEARkhTkg==",
- "dependencies": {
- "d3-dispatch": "1 - 3",
- "d3-selection": "3"
- },
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/d3-dsv": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/d3-dsv/-/d3-dsv-3.0.1.tgz",
- "integrity": "sha512-UG6OvdI5afDIFP9w4G0mNq50dSOsXHJaRE8arAS5o9ApWnIElp8GZw1Dun8vP8OyHOZ/QJUKUJwxiiCCnUwm+Q==",
- "dependencies": {
- "commander": "7",
- "iconv-lite": "0.6",
- "rw": "1"
- },
- "bin": {
- "csv2json": "bin/dsv2json.js",
- "csv2tsv": "bin/dsv2dsv.js",
- "dsv2dsv": "bin/dsv2dsv.js",
- "dsv2json": "bin/dsv2json.js",
- "json2csv": "bin/json2dsv.js",
- "json2dsv": "bin/json2dsv.js",
- "json2tsv": "bin/json2dsv.js",
- "tsv2csv": "bin/dsv2dsv.js",
- "tsv2json": "bin/dsv2json.js"
- },
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/d3-dsv/node_modules/commander": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz",
- "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==",
- "engines": {
- "node": ">= 10"
- }
- },
- "node_modules/d3-ease": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/d3-ease/-/d3-ease-3.0.1.tgz",
- "integrity": "sha512-wR/XK3D3XcLIZwpbvQwQ5fK+8Ykds1ip7A2Txe0yxncXSdq1L9skcG7blcedkOX+ZcgxGAmLX1FrRGbADwzi0w==",
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/d3-fetch": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/d3-fetch/-/d3-fetch-3.0.1.tgz",
- "integrity": "sha512-kpkQIM20n3oLVBKGg6oHrUchHM3xODkTzjMoj7aWQFq5QEM+R6E4WkzT5+tojDY7yjez8KgCBRoj4aEr99Fdqw==",
- "dependencies": {
- "d3-dsv": "1 - 3"
- },
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/d3-force": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/d3-force/-/d3-force-3.0.0.tgz",
- "integrity": "sha512-zxV/SsA+U4yte8051P4ECydjD/S+qeYtnaIyAs9tgHCqfguma/aAQDjo85A9Z6EKhBirHRJHXIgJUlffT4wdLg==",
- "dependencies": {
- "d3-dispatch": "1 - 3",
- "d3-quadtree": "1 - 3",
- "d3-timer": "1 - 3"
- },
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/d3-format": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/d3-format/-/d3-format-3.1.0.tgz",
- "integrity": "sha512-YyUI6AEuY/Wpt8KWLgZHsIU86atmikuoOmCfommt0LYHiQSPjvX2AcFc38PX0CBpr2RCyZhjex+NS/LPOv6YqA==",
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/d3-geo": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/d3-geo/-/d3-geo-3.1.1.tgz",
- "integrity": "sha512-637ln3gXKXOwhalDzinUgY83KzNWZRKbYubaG+fGVuc/dxO64RRljtCTnf5ecMyE1RIdtqpkVcq0IbtU2S8j2Q==",
- "dependencies": {
- "d3-array": "2.5.0 - 3"
- },
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/d3-hierarchy": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/d3-hierarchy/-/d3-hierarchy-3.1.2.tgz",
- "integrity": "sha512-FX/9frcub54beBdugHjDCdikxThEqjnR93Qt7PvQTOHxyiNCAlvMrHhclk3cD5VeAaq9fxmfRp+CnWw9rEMBuA==",
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/d3-interpolate": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/d3-interpolate/-/d3-interpolate-3.0.1.tgz",
- "integrity": "sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g==",
- "dependencies": {
- "d3-color": "1 - 3"
- },
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/d3-path": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/d3-path/-/d3-path-3.1.0.tgz",
- "integrity": "sha512-p3KP5HCf/bvjBSSKuXid6Zqijx7wIfNW+J/maPs+iwR35at5JCbLUT0LzF1cnjbCHWhqzQTIN2Jpe8pRebIEFQ==",
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/d3-polygon": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/d3-polygon/-/d3-polygon-3.0.1.tgz",
- "integrity": "sha512-3vbA7vXYwfe1SYhED++fPUQlWSYTTGmFmQiany/gdbiWgU/iEyQzyymwL9SkJjFFuCS4902BSzewVGsHHmHtXg==",
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/d3-quadtree": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/d3-quadtree/-/d3-quadtree-3.0.1.tgz",
- "integrity": "sha512-04xDrxQTDTCFwP5H6hRhsRcb9xxv2RzkcsygFzmkSIOJy3PeRJP7sNk3VRIbKXcog561P9oU0/rVH6vDROAgUw==",
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/d3-random": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/d3-random/-/d3-random-3.0.1.tgz",
- "integrity": "sha512-FXMe9GfxTxqd5D6jFsQ+DJ8BJS4E/fT5mqqdjovykEB2oFbTMDVdg1MGFxfQW+FBOGoB++k8swBrgwSHT1cUXQ==",
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/d3-sankey": {
- "version": "0.12.3",
- "resolved": "https://registry.npmjs.org/d3-sankey/-/d3-sankey-0.12.3.tgz",
- "integrity": "sha512-nQhsBRmM19Ax5xEIPLMY9ZmJ/cDvd1BG3UVvt5h3WRxKg5zGRbvnteTyWAbzeSvlh3tW7ZEmq4VwR5mB3tutmQ==",
- "dependencies": {
- "d3-array": "1 - 2",
- "d3-shape": "^1.2.0"
- }
- },
- "node_modules/d3-sankey/node_modules/d3-array": {
- "version": "2.12.1",
- "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-2.12.1.tgz",
- "integrity": "sha512-B0ErZK/66mHtEsR1TkPEEkwdy+WDesimkM5gpZr5Dsg54BiTA5RXtYW5qTLIAcekaS9xfZrzBLF/OAkB3Qn1YQ==",
- "dependencies": {
- "internmap": "^1.0.0"
- }
- },
- "node_modules/d3-sankey/node_modules/d3-path": {
- "version": "1.0.9",
- "resolved": "https://registry.npmjs.org/d3-path/-/d3-path-1.0.9.tgz",
- "integrity": "sha512-VLaYcn81dtHVTjEHd8B+pbe9yHWpXKZUC87PzoFmsFrJqgFwDe/qxfp5MlfsfM1V5E/iVt0MmEbWQ7FVIXh/bg=="
- },
- "node_modules/d3-sankey/node_modules/d3-shape": {
- "version": "1.3.7",
- "resolved": "https://registry.npmjs.org/d3-shape/-/d3-shape-1.3.7.tgz",
- "integrity": "sha512-EUkvKjqPFUAZyOlhY5gzCxCeI0Aep04LwIRpsZ/mLFelJiUfnK56jo5JMDSE7yyP2kLSb6LtF+S5chMk7uqPqw==",
- "dependencies": {
- "d3-path": "1"
- }
- },
- "node_modules/d3-sankey/node_modules/internmap": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/internmap/-/internmap-1.0.1.tgz",
- "integrity": "sha512-lDB5YccMydFBtasVtxnZ3MRBHuaoE8GKsppq+EchKL2U4nK/DmEpPHNH8MZe5HkMtpSiTSOZwfN0tzYjO/lJEw=="
- },
- "node_modules/d3-scale": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/d3-scale/-/d3-scale-4.0.2.tgz",
- "integrity": "sha512-GZW464g1SH7ag3Y7hXjf8RoUuAFIqklOAq3MRl4OaWabTFJY9PN/E1YklhXLh+OQ3fM9yS2nOkCoS+WLZ6kvxQ==",
- "dependencies": {
- "d3-array": "2.10.0 - 3",
- "d3-format": "1 - 3",
- "d3-interpolate": "1.2.0 - 3",
- "d3-time": "2.1.1 - 3",
- "d3-time-format": "2 - 4"
- },
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/d3-scale-chromatic": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/d3-scale-chromatic/-/d3-scale-chromatic-3.1.0.tgz",
- "integrity": "sha512-A3s5PWiZ9YCXFye1o246KoscMWqf8BsD9eRiJ3He7C9OBaxKhAd5TFCdEx/7VbKtxxTsu//1mMJFrEt572cEyQ==",
- "dependencies": {
- "d3-color": "1 - 3",
- "d3-interpolate": "1 - 3"
- },
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/d3-selection": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/d3-selection/-/d3-selection-3.0.0.tgz",
- "integrity": "sha512-fmTRWbNMmsmWq6xJV8D19U/gw/bwrHfNXxrIN+HfZgnzqTHp9jOmKMhsTUjXOJnZOdZY9Q28y4yebKzqDKlxlQ==",
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/d3-shape": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/d3-shape/-/d3-shape-3.2.0.tgz",
- "integrity": "sha512-SaLBuwGm3MOViRq2ABk3eLoxwZELpH6zhl3FbAoJ7Vm1gofKx6El1Ib5z23NUEhF9AsGl7y+dzLe5Cw2AArGTA==",
- "dependencies": {
- "d3-path": "^3.1.0"
- },
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/d3-time": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/d3-time/-/d3-time-3.1.0.tgz",
- "integrity": "sha512-VqKjzBLejbSMT4IgbmVgDjpkYrNWUYJnbCGo874u7MMKIWsILRX+OpX/gTk8MqjpT1A/c6HY2dCA77ZN0lkQ2Q==",
- "dependencies": {
- "d3-array": "2 - 3"
- },
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/d3-time-format": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/d3-time-format/-/d3-time-format-4.1.0.tgz",
- "integrity": "sha512-dJxPBlzC7NugB2PDLwo9Q8JiTR3M3e4/XANkreKSUxF8vvXKqm1Yfq4Q5dl8budlunRVlUUaDUgFt7eA8D6NLg==",
- "dependencies": {
- "d3-time": "1 - 3"
- },
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/d3-timer": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/d3-timer/-/d3-timer-3.0.1.tgz",
- "integrity": "sha512-ndfJ/JxxMd3nw31uyKoY2naivF+r29V+Lc0svZxe1JvvIRmi8hUsrMvdOwgS1o6uBHmiz91geQ0ylPP0aj1VUA==",
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/d3-transition": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/d3-transition/-/d3-transition-3.0.1.tgz",
- "integrity": "sha512-ApKvfjsSR6tg06xrL434C0WydLr7JewBB3V+/39RMHsaXTOG0zmt/OAXeng5M5LBm0ojmxJrpomQVZ1aPvBL4w==",
- "dependencies": {
- "d3-color": "1 - 3",
- "d3-dispatch": "1 - 3",
- "d3-ease": "1 - 3",
- "d3-interpolate": "1 - 3",
- "d3-timer": "1 - 3"
- },
- "engines": {
- "node": ">=12"
- },
- "peerDependencies": {
- "d3-selection": "2 - 3"
- }
- },
- "node_modules/d3-zoom": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/d3-zoom/-/d3-zoom-3.0.0.tgz",
- "integrity": "sha512-b8AmV3kfQaqWAuacbPuNbL6vahnOJflOhexLzMMNLga62+/nh0JzvJ0aO/5a5MVgUFGS7Hu1P9P03o3fJkDCyw==",
- "dependencies": {
- "d3-dispatch": "1 - 3",
- "d3-drag": "2 - 3",
- "d3-interpolate": "1 - 3",
- "d3-selection": "2 - 3",
- "d3-transition": "2 - 3"
- },
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/dagre-d3-es": {
- "version": "7.0.11",
- "resolved": "https://registry.npmjs.org/dagre-d3-es/-/dagre-d3-es-7.0.11.tgz",
- "integrity": "sha512-tvlJLyQf834SylNKax8Wkzco/1ias1OPw8DcUMDE7oUIoSEW25riQVuiu/0OWEFqT0cxHT3Pa9/D82Jr47IONw==",
- "dependencies": {
- "d3": "^7.9.0",
- "lodash-es": "^4.17.21"
- }
- },
- "node_modules/dayjs": {
- "version": "1.11.13",
- "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.13.tgz",
- "integrity": "sha512-oaMBel6gjolK862uaPQOVTA7q3TZhuSvuMQAAglQDOWYO9A91IrAOUJEyKVlqJlHE0vq5p5UXxzdPfMH/x6xNg=="
- },
- "node_modules/debug": {
- "version": "4.3.7",
- "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz",
- "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==",
- "license": "MIT",
- "dependencies": {
- "ms": "^2.1.3"
- },
- "engines": {
- "node": ">=6.0"
- },
- "peerDependenciesMeta": {
- "supports-color": {
- "optional": true
- }
- }
- },
- "node_modules/decode-named-character-reference": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/decode-named-character-reference/-/decode-named-character-reference-1.1.0.tgz",
- "integrity": "sha512-Wy+JTSbFThEOXQIR2L6mxJvEs+veIzpmqD7ynWxMXGpnk3smkHQOp6forLdHsKpAMW9iJpaBBIxz285t1n1C3w==",
- "dependencies": {
- "character-entities": "^2.0.0"
- },
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/wooorm"
- }
- },
- "node_modules/dedent": {
- "version": "1.5.3",
- "resolved": "https://registry.npmjs.org/dedent/-/dedent-1.5.3.tgz",
- "integrity": "sha512-NHQtfOOW68WD8lgypbLA5oT+Bt0xXJhiYvoR6SmmNXZfpzOGXwdKWmcwG8N7PwVVWV3eF/68nmD9BaJSsTBhyQ==",
- "peerDependencies": {
- "babel-plugin-macros": "^3.1.0"
- },
- "peerDependenciesMeta": {
- "babel-plugin-macros": {
- "optional": 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/delaunator": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/delaunator/-/delaunator-5.0.1.tgz",
- "integrity": "sha512-8nvh+XBe96aCESrGOqMp/84b13H9cdKbG5P2ejQCh4d4sK9RL4371qou9drQjMhvnPmhWl5hnmqbEE0fXr9Xnw==",
- "dependencies": {
- "robust-predicates": "^3.0.2"
- }
- },
- "node_modules/dequal": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz",
- "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==",
- "engines": {
- "node": ">=6"
- }
- },
- "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==",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/detect-newline": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz",
- "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/devlop": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/devlop/-/devlop-1.1.0.tgz",
- "integrity": "sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==",
- "dependencies": {
- "dequal": "^2.0.0"
- },
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/wooorm"
- }
- },
- "node_modules/didyoumean": {
- "version": "1.2.2",
- "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz",
- "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==",
- "dev": true
- },
- "node_modules/diff-sequences": {
- "version": "29.6.3",
- "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.6.3.tgz",
- "integrity": "sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==",
- "engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
- }
- },
- "node_modules/dlv": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz",
- "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==",
- "dev": true
- },
- "node_modules/dompurify": {
- "version": "3.2.5",
- "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-3.2.5.tgz",
- "integrity": "sha512-mLPd29uoRe9HpvwP2TxClGQBzGXeEC/we/q+bFlmPPmj2p2Ugl3r6ATu/UU1v77DXNcehiBg9zsr1dREyA/dJQ==",
- "optionalDependencies": {
- "@types/trusted-types": "^2.0.7"
- }
- },
- "node_modules/eastasianwidth": {
- "version": "0.2.0",
- "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz",
- "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==",
- "dev": true
- },
- "node_modules/electron-to-chromium": {
- "version": "1.5.132",
- "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.132.tgz",
- "integrity": "sha512-QgX9EBvWGmvSRa74zqfnG7+Eno0Ak0vftBll0Pt2/z5b3bEGYL6OUXLgKPtvx73dn3dvwrlyVkjPKRRlhLYTEg=="
- },
- "node_modules/emittery": {
- "version": "0.13.1",
- "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.13.1.tgz",
- "integrity": "sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==",
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/sindresorhus/emittery?sponsor=1"
- }
- },
- "node_modules/emoji-regex": {
- "version": "10.4.0",
- "license": "MIT"
- },
- "node_modules/emoji-regex-xs": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/emoji-regex-xs/-/emoji-regex-xs-1.0.0.tgz",
- "integrity": "sha512-LRlerrMYoIDrT6jgpeZ2YYl/L8EulRTt5hQcYjy5AInh7HWXKimpqx68aknBFpGL2+/IcogTcaydJEgaTmOpDg=="
- },
- "node_modules/entities": {
- "version": "4.5.0",
- "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz",
- "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==",
- "engines": {
- "node": ">=0.12"
- },
- "funding": {
- "url": "https://github.com/fb55/entities?sponsor=1"
- }
- },
- "node_modules/environment": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/environment/-/environment-1.1.0.tgz",
- "integrity": "sha512-xUtoPkMggbz0MPyPiIWr1Kp4aeWJjDZ6SMvURhimjdZgsRuDplF5/s9hcgGhyXMhs+6vpnuoiZ2kFiu3FMnS8Q==",
- "engines": {
- "node": ">=18"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/error-ex": {
- "version": "1.3.2",
- "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz",
- "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==",
- "dependencies": {
- "is-arrayish": "^0.2.1"
- }
- },
- "node_modules/esast-util-from-estree": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/esast-util-from-estree/-/esast-util-from-estree-2.0.0.tgz",
- "integrity": "sha512-4CyanoAudUSBAn5K13H4JhsMH6L9ZP7XbLVe/dKybkxMO7eDyLsT8UHl9TRNrU2Gr9nz+FovfSIjuXWJ81uVwQ==",
- "dependencies": {
- "@types/estree-jsx": "^1.0.0",
- "devlop": "^1.0.0",
- "estree-util-visit": "^2.0.0",
- "unist-util-position-from-estree": "^2.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/esast-util-from-js": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/esast-util-from-js/-/esast-util-from-js-2.0.1.tgz",
- "integrity": "sha512-8Ja+rNJ0Lt56Pcf3TAmpBZjmx8ZcK5Ts4cAzIOjsjevg9oSXJnl6SUQ2EevU8tv3h6ZLWmoKL5H4fgWvdvfETw==",
- "dependencies": {
- "@types/estree-jsx": "^1.0.0",
- "acorn": "^8.0.0",
- "esast-util-from-estree": "^2.0.0",
- "vfile-message": "^4.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/escalade": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz",
- "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==",
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/escape-string-regexp": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz",
- "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==",
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/esm": {
- "version": "3.2.25",
- "resolved": "https://registry.npmjs.org/esm/-/esm-3.2.25.tgz",
- "integrity": "sha512-U1suiZ2oDVWv4zPO56S0NcR5QriEahGtdN2OR6FiOG4WJvcjBVFB0qI4+eKoWFH483PKGuLuu6V8Z4T5g63UVA==",
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/esprima": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz",
- "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==",
- "bin": {
- "esparse": "bin/esparse.js",
- "esvalidate": "bin/esvalidate.js"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/estree-util-attach-comments": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/estree-util-attach-comments/-/estree-util-attach-comments-3.0.0.tgz",
- "integrity": "sha512-cKUwm/HUcTDsYh/9FgnuFqpfquUbwIqwKM26BVCGDPVgvaCl/nDCCjUfiLlx6lsEZ3Z4RFxNbOQ60pkaEwFxGw==",
- "dependencies": {
- "@types/estree": "^1.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/estree-util-build-jsx": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/estree-util-build-jsx/-/estree-util-build-jsx-3.0.1.tgz",
- "integrity": "sha512-8U5eiL6BTrPxp/CHbs2yMgP8ftMhR5ww1eIKoWRMlqvltHF8fZn5LRDvTKuxD3DUn+shRbLGqXemcP51oFCsGQ==",
- "dependencies": {
- "@types/estree-jsx": "^1.0.0",
- "devlop": "^1.0.0",
- "estree-util-is-identifier-name": "^3.0.0",
- "estree-walker": "^3.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/estree-util-is-identifier-name": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/estree-util-is-identifier-name/-/estree-util-is-identifier-name-3.0.0.tgz",
- "integrity": "sha512-hFtqIDZTIUZ9BXLb8y4pYGyk6+wekIivNVTcmvk8NoOh+VeRn5y6cEHzbURrWbfp1fIqdVipilzj+lfaadNZmg==",
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/estree-util-scope": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/estree-util-scope/-/estree-util-scope-1.0.0.tgz",
- "integrity": "sha512-2CAASclonf+JFWBNJPndcOpA8EMJwa0Q8LUFJEKqXLW6+qBvbFZuF5gItbQOs/umBUkjviCSDCbBwU2cXbmrhQ==",
- "dependencies": {
- "@types/estree": "^1.0.0",
- "devlop": "^1.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/estree-util-to-js": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/estree-util-to-js/-/estree-util-to-js-2.0.0.tgz",
- "integrity": "sha512-WDF+xj5rRWmD5tj6bIqRi6CkLIXbbNQUcxQHzGysQzvHmdYG2G7p/Tf0J0gpxGgkeMZNTIjT/AoSvC9Xehcgdg==",
- "dependencies": {
- "@types/estree-jsx": "^1.0.0",
- "astring": "^1.8.0",
- "source-map": "^0.7.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/estree-util-to-js/node_modules/source-map": {
- "version": "0.7.4",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz",
- "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==",
- "engines": {
- "node": ">= 8"
- }
- },
- "node_modules/estree-util-value-to-estree": {
- "version": "3.3.2",
- "resolved": "https://registry.npmjs.org/estree-util-value-to-estree/-/estree-util-value-to-estree-3.3.2.tgz",
- "integrity": "sha512-hYH1aSvQI63Cvq3T3loaem6LW4u72F187zW4FHpTrReJSm6W66vYTFNO1vH/chmcOulp1HlAj1pxn8Ag0oXI5Q==",
- "dependencies": {
- "@types/estree": "^1.0.0"
- },
- "funding": {
- "url": "https://github.com/sponsors/remcohaszing"
- }
- },
- "node_modules/estree-util-visit": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/estree-util-visit/-/estree-util-visit-2.0.0.tgz",
- "integrity": "sha512-m5KgiH85xAhhW8Wta0vShLcUvOsh3LLPI2YVwcbio1l7E09NTLL1EyMZFM1OyWowoH0skScNbhOPl4kcBgzTww==",
- "dependencies": {
- "@types/estree-jsx": "^1.0.0",
- "@types/unist": "^3.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/estree-walker": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz",
- "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==",
- "dependencies": {
- "@types/estree": "^1.0.0"
- }
- },
- "node_modules/eventemitter3": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-5.0.1.tgz",
- "integrity": "sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA=="
- },
- "node_modules/execa": {
- "version": "8.0.1",
- "license": "MIT",
- "dependencies": {
- "cross-spawn": "^7.0.3",
- "get-stream": "^8.0.1",
- "human-signals": "^5.0.0",
- "is-stream": "^3.0.0",
- "merge-stream": "^2.0.0",
- "npm-run-path": "^5.1.0",
- "onetime": "^6.0.0",
- "signal-exit": "^4.1.0",
- "strip-final-newline": "^3.0.0"
- },
- "engines": {
- "node": ">=16.17"
- },
- "funding": {
- "url": "https://github.com/sindresorhus/execa?sponsor=1"
- }
- },
- "node_modules/execa/node_modules/onetime": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz",
- "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==",
- "license": "MIT",
- "dependencies": {
- "mimic-fn": "^4.0.0"
- },
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/exit": {
- "version": "0.1.2",
- "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz",
- "integrity": "sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==",
- "engines": {
- "node": ">= 0.8.0"
- }
- },
- "node_modules/expect": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/expect/-/expect-29.7.0.tgz",
- "integrity": "sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==",
- "dependencies": {
- "@jest/expect-utils": "^29.7.0",
- "jest-get-type": "^29.6.3",
- "jest-matcher-utils": "^29.7.0",
- "jest-message-util": "^29.7.0",
- "jest-util": "^29.7.0"
- },
- "engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
- }
- },
- "node_modules/exsolve": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/exsolve/-/exsolve-1.0.4.tgz",
- "integrity": "sha512-xsZH6PXaER4XoV+NiT7JHp1bJodJVT+cxeSH1G0f0tlT0lJqYuHUP3bUx2HtfTDvOagMINYp8rsqusxud3RXhw=="
- },
- "node_modules/extend": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz",
- "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g=="
- },
- "node_modules/extend-shallow": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
- "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==",
- "dependencies": {
- "is-extendable": "^0.1.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/fast-glob": {
- "version": "3.3.3",
- "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz",
- "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==",
- "dev": true,
- "dependencies": {
- "@nodelib/fs.stat": "^2.0.2",
- "@nodelib/fs.walk": "^1.2.3",
- "glob-parent": "^5.1.2",
- "merge2": "^1.3.0",
- "micromatch": "^4.0.8"
- },
- "engines": {
- "node": ">=8.6.0"
- }
- },
- "node_modules/fast-glob/node_modules/glob-parent": {
- "version": "5.1.2",
- "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
- "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
- "dev": true,
- "dependencies": {
- "is-glob": "^4.0.1"
- },
- "engines": {
- "node": ">= 6"
- }
- },
- "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=="
- },
- "node_modules/fastq": {
- "version": "1.19.1",
- "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.19.1.tgz",
- "integrity": "sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==",
- "dev": true,
- "dependencies": {
- "reusify": "^1.0.4"
- }
- },
- "node_modules/fault": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/fault/-/fault-2.0.1.tgz",
- "integrity": "sha512-WtySTkS4OKev5JtpHXnib4Gxiurzh5NCGvWrFaZ34m6JehfTUhKZvn9njTfw48t6JumVQOmrKqpmGcdwxnhqBQ==",
- "dependencies": {
- "format": "^0.2.0"
- },
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/wooorm"
- }
- },
- "node_modules/fb-watchman": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.2.tgz",
- "integrity": "sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==",
- "dependencies": {
- "bser": "2.1.1"
- }
- },
- "node_modules/fill-range": {
- "version": "7.1.1",
- "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz",
- "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==",
- "dependencies": {
- "to-regex-range": "^5.0.1"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "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/flexsearch": {
- "version": "0.7.43",
- "resolved": "https://registry.npmjs.org/flexsearch/-/flexsearch-0.7.43.tgz",
- "integrity": "sha512-c5o/+Um8aqCSOXGcZoqZOm+NqtVwNsvVpWv6lfmSclU954O3wvQKxxK8zj74fPaSJbXpSLTs4PRhh+wnoCXnKg=="
- },
- "node_modules/foreground-child": {
- "version": "3.3.1",
- "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.1.tgz",
- "integrity": "sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==",
- "dev": true,
- "dependencies": {
- "cross-spawn": "^7.0.6",
- "signal-exit": "^4.0.1"
- },
- "engines": {
- "node": ">=14"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
- "node_modules/format": {
- "version": "0.2.2",
- "resolved": "https://registry.npmjs.org/format/-/format-0.2.2.tgz",
- "integrity": "sha512-wzsgA6WOq+09wrU1tsJ09udeR/YZRaeArL9e1wPbFg3GG2yDnC2ldKpxs4xunpFF9DgqCqOIra3bc1HWrJ37Ww==",
- "engines": {
- "node": ">=0.4.x"
- }
- },
- "node_modules/fraction.js": {
- "version": "4.3.7",
- "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.3.7.tgz",
- "integrity": "sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==",
- "dev": true,
- "engines": {
- "node": "*"
- },
- "funding": {
- "type": "patreon",
- "url": "https://github.com/sponsors/rawify"
- }
- },
- "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/fsevents": {
- "version": "2.3.3",
- "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz",
- "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==",
- "hasInstallScript": true,
- "optional": true,
- "os": [
- "darwin"
- ],
- "engines": {
- "node": "^8.16.0 || ^10.6.0 || >=11.0.0"
- }
- },
- "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/gensync": {
- "version": "1.0.0-beta.2",
- "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz",
- "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==",
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/get-caller-file": {
- "version": "2.0.5",
- "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz",
- "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==",
- "engines": {
- "node": "6.* || 8.* || >= 10.*"
- }
- },
- "node_modules/get-east-asian-width": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/get-east-asian-width/-/get-east-asian-width-1.3.0.tgz",
- "integrity": "sha512-vpeMIQKxczTD/0s2CdEWHcb0eeJe6TFjxb+J5xgX7hScxqrGuyjmv4c1D4A/gelKfyox0gJJwIHF+fLjeaM8kQ==",
- "engines": {
- "node": ">=18"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/get-package-type": {
- "version": "0.1.0",
- "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz",
- "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==",
- "engines": {
- "node": ">=8.0.0"
- }
- },
- "node_modules/get-stream": {
- "version": "8.0.1",
- "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-8.0.1.tgz",
- "integrity": "sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==",
- "license": "MIT",
- "engines": {
- "node": ">=16"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/github-slugger": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/github-slugger/-/github-slugger-2.0.0.tgz",
- "integrity": "sha512-IaOQ9puYtjrkq7Y0Ygl9KDZnrf/aiUJYUpVf89y8kyaxbRG7Y1SrX/jaumrv81vc61+kiMempujsM3Yw7w5qcw=="
- },
- "node_modules/glob": {
- "version": "7.2.3",
- "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
- "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
- "deprecated": "Glob versions prior to v9 are no longer supported",
- "dependencies": {
- "fs.realpath": "^1.0.0",
- "inflight": "^1.0.4",
- "inherits": "2",
- "minimatch": "^3.1.1",
- "once": "^1.3.0",
- "path-is-absolute": "^1.0.0"
- },
- "engines": {
- "node": "*"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
- "node_modules/glob-parent": {
- "version": "6.0.2",
- "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz",
- "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==",
- "dev": true,
- "dependencies": {
- "is-glob": "^4.0.3"
- },
- "engines": {
- "node": ">=10.13.0"
- }
- },
- "node_modules/globals": {
- "version": "11.12.0",
- "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz",
- "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==",
- "engines": {
- "node": ">=4"
- }
- },
- "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/gray-matter": {
- "version": "4.0.3",
- "resolved": "https://registry.npmjs.org/gray-matter/-/gray-matter-4.0.3.tgz",
- "integrity": "sha512-5v6yZd4JK3eMI3FqqCouswVqwugaA9r4dNZB1wwcmrD02QkV5H0y7XBQW8QwQqEaZY1pM9aqORSORhJRdNK44Q==",
- "dependencies": {
- "js-yaml": "^3.13.1",
- "kind-of": "^6.0.2",
- "section-matter": "^1.0.0",
- "strip-bom-string": "^1.0.0"
- },
- "engines": {
- "node": ">=6.0"
- }
- },
- "node_modules/hachure-fill": {
- "version": "0.5.2",
- "resolved": "https://registry.npmjs.org/hachure-fill/-/hachure-fill-0.5.2.tgz",
- "integrity": "sha512-3GKBOn+m2LX9iq+JC1064cSFprJY4jL1jCXTcpnfER5HYE2l/4EfWSGzkPa/ZDBmYI0ZOEj5VHV/eKnPGkHuOg=="
- },
- "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/hast-util-from-dom": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/hast-util-from-dom/-/hast-util-from-dom-5.0.1.tgz",
- "integrity": "sha512-N+LqofjR2zuzTjCPzyDUdSshy4Ma6li7p/c3pA78uTwzFgENbgbUrm2ugwsOdcjI1muO+o6Dgzp9p8WHtn/39Q==",
- "dependencies": {
- "@types/hast": "^3.0.0",
- "hastscript": "^9.0.0",
- "web-namespaces": "^2.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/hast-util-from-html": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/hast-util-from-html/-/hast-util-from-html-2.0.3.tgz",
- "integrity": "sha512-CUSRHXyKjzHov8yKsQjGOElXy/3EKpyX56ELnkHH34vDVw1N1XSQ1ZcAvTyAPtGqLTuKP/uxM+aLkSPqF/EtMw==",
- "dependencies": {
- "@types/hast": "^3.0.0",
- "devlop": "^1.1.0",
- "hast-util-from-parse5": "^8.0.0",
- "parse5": "^7.0.0",
- "vfile": "^6.0.0",
- "vfile-message": "^4.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/hast-util-from-html-isomorphic": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/hast-util-from-html-isomorphic/-/hast-util-from-html-isomorphic-2.0.0.tgz",
- "integrity": "sha512-zJfpXq44yff2hmE0XmwEOzdWin5xwH+QIhMLOScpX91e/NSGPsAzNCvLQDIEPyO2TXi+lBmU6hjLIhV8MwP2kw==",
- "dependencies": {
- "@types/hast": "^3.0.0",
- "hast-util-from-dom": "^5.0.0",
- "hast-util-from-html": "^2.0.0",
- "unist-util-remove-position": "^5.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/hast-util-from-parse5": {
- "version": "8.0.3",
- "resolved": "https://registry.npmjs.org/hast-util-from-parse5/-/hast-util-from-parse5-8.0.3.tgz",
- "integrity": "sha512-3kxEVkEKt0zvcZ3hCRYI8rqrgwtlIOFMWkbclACvjlDw8Li9S2hk/d51OI0nr/gIpdMHNepwgOKqZ/sy0Clpyg==",
- "dependencies": {
- "@types/hast": "^3.0.0",
- "@types/unist": "^3.0.0",
- "devlop": "^1.0.0",
- "hastscript": "^9.0.0",
- "property-information": "^7.0.0",
- "vfile": "^6.0.0",
- "vfile-location": "^5.0.0",
- "web-namespaces": "^2.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/hast-util-is-element": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/hast-util-is-element/-/hast-util-is-element-3.0.0.tgz",
- "integrity": "sha512-Val9mnv2IWpLbNPqc/pUem+a7Ipj2aHacCwgNfTiK0vJKl0LF+4Ba4+v1oPHFpf3bLYmreq0/l3Gud9S5OH42g==",
- "dependencies": {
- "@types/hast": "^3.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/hast-util-parse-selector": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/hast-util-parse-selector/-/hast-util-parse-selector-4.0.0.tgz",
- "integrity": "sha512-wkQCkSYoOGCRKERFWcxMVMOcYE2K1AaNLU8DXS9arxnLOUEWbOXKXiJUNzEpqZ3JOKpnha3jkFrumEjVliDe7A==",
- "dependencies": {
- "@types/hast": "^3.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/hast-util-raw": {
- "version": "9.1.0",
- "resolved": "https://registry.npmjs.org/hast-util-raw/-/hast-util-raw-9.1.0.tgz",
- "integrity": "sha512-Y8/SBAHkZGoNkpzqqfCldijcuUKh7/su31kEBp67cFY09Wy0mTRgtsLYsiIxMJxlu0f6AA5SUTbDR8K0rxnbUw==",
- "dependencies": {
- "@types/hast": "^3.0.0",
- "@types/unist": "^3.0.0",
- "@ungap/structured-clone": "^1.0.0",
- "hast-util-from-parse5": "^8.0.0",
- "hast-util-to-parse5": "^8.0.0",
- "html-void-elements": "^3.0.0",
- "mdast-util-to-hast": "^13.0.0",
- "parse5": "^7.0.0",
- "unist-util-position": "^5.0.0",
- "unist-util-visit": "^5.0.0",
- "vfile": "^6.0.0",
- "web-namespaces": "^2.0.0",
- "zwitch": "^2.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/hast-util-to-estree": {
- "version": "3.1.3",
- "resolved": "https://registry.npmjs.org/hast-util-to-estree/-/hast-util-to-estree-3.1.3.tgz",
- "integrity": "sha512-48+B/rJWAp0jamNbAAf9M7Uf//UVqAoMmgXhBdxTDJLGKY+LRnZ99qcG+Qjl5HfMpYNzS5v4EAwVEF34LeAj7w==",
- "dependencies": {
- "@types/estree": "^1.0.0",
- "@types/estree-jsx": "^1.0.0",
- "@types/hast": "^3.0.0",
- "comma-separated-tokens": "^2.0.0",
- "devlop": "^1.0.0",
- "estree-util-attach-comments": "^3.0.0",
- "estree-util-is-identifier-name": "^3.0.0",
- "hast-util-whitespace": "^3.0.0",
- "mdast-util-mdx-expression": "^2.0.0",
- "mdast-util-mdx-jsx": "^3.0.0",
- "mdast-util-mdxjs-esm": "^2.0.0",
- "property-information": "^7.0.0",
- "space-separated-tokens": "^2.0.0",
- "style-to-js": "^1.0.0",
- "unist-util-position": "^5.0.0",
- "zwitch": "^2.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/hast-util-to-html": {
- "version": "9.0.5",
- "resolved": "https://registry.npmjs.org/hast-util-to-html/-/hast-util-to-html-9.0.5.tgz",
- "integrity": "sha512-OguPdidb+fbHQSU4Q4ZiLKnzWo8Wwsf5bZfbvu7//a9oTYoqD/fWpe96NuHkoS9h0ccGOTe0C4NGXdtS0iObOw==",
- "dependencies": {
- "@types/hast": "^3.0.0",
- "@types/unist": "^3.0.0",
- "ccount": "^2.0.0",
- "comma-separated-tokens": "^2.0.0",
- "hast-util-whitespace": "^3.0.0",
- "html-void-elements": "^3.0.0",
- "mdast-util-to-hast": "^13.0.0",
- "property-information": "^7.0.0",
- "space-separated-tokens": "^2.0.0",
- "stringify-entities": "^4.0.0",
- "zwitch": "^2.0.4"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/hast-util-to-jsx-runtime": {
- "version": "2.3.6",
- "resolved": "https://registry.npmjs.org/hast-util-to-jsx-runtime/-/hast-util-to-jsx-runtime-2.3.6.tgz",
- "integrity": "sha512-zl6s8LwNyo1P9uw+XJGvZtdFF1GdAkOg8ujOw+4Pyb76874fLps4ueHXDhXWdk6YHQ6OgUtinliG7RsYvCbbBg==",
- "dependencies": {
- "@types/estree": "^1.0.0",
- "@types/hast": "^3.0.0",
- "@types/unist": "^3.0.0",
- "comma-separated-tokens": "^2.0.0",
- "devlop": "^1.0.0",
- "estree-util-is-identifier-name": "^3.0.0",
- "hast-util-whitespace": "^3.0.0",
- "mdast-util-mdx-expression": "^2.0.0",
- "mdast-util-mdx-jsx": "^3.0.0",
- "mdast-util-mdxjs-esm": "^2.0.0",
- "property-information": "^7.0.0",
- "space-separated-tokens": "^2.0.0",
- "style-to-js": "^1.0.0",
- "unist-util-position": "^5.0.0",
- "vfile-message": "^4.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/hast-util-to-parse5": {
- "version": "8.0.0",
- "resolved": "https://registry.npmjs.org/hast-util-to-parse5/-/hast-util-to-parse5-8.0.0.tgz",
- "integrity": "sha512-3KKrV5ZVI8if87DVSi1vDeByYrkGzg4mEfeu4alwgmmIeARiBLKCZS2uw5Gb6nU9x9Yufyj3iudm6i7nl52PFw==",
- "dependencies": {
- "@types/hast": "^3.0.0",
- "comma-separated-tokens": "^2.0.0",
- "devlop": "^1.0.0",
- "property-information": "^6.0.0",
- "space-separated-tokens": "^2.0.0",
- "web-namespaces": "^2.0.0",
- "zwitch": "^2.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/hast-util-to-parse5/node_modules/property-information": {
- "version": "6.5.0",
- "resolved": "https://registry.npmjs.org/property-information/-/property-information-6.5.0.tgz",
- "integrity": "sha512-PgTgs/BlvHxOu8QuEN7wi5A0OmXaBcHpmCSTehcs6Uuu9IkDIEo13Hy7n898RHfrQ49vKCoGeWZSaAK01nwVig==",
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/wooorm"
- }
- },
- "node_modules/hast-util-to-string": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/hast-util-to-string/-/hast-util-to-string-3.0.1.tgz",
- "integrity": "sha512-XelQVTDWvqcl3axRfI0xSeoVKzyIFPwsAGSLIsKdJKQMXDYJS4WYrBNF/8J7RdhIcFI2BOHgAifggsvsxp/3+A==",
- "dependencies": {
- "@types/hast": "^3.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/hast-util-to-text": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/hast-util-to-text/-/hast-util-to-text-4.0.2.tgz",
- "integrity": "sha512-KK6y/BN8lbaq654j7JgBydev7wuNMcID54lkRav1P0CaE1e47P72AWWPiGKXTJU271ooYzcvTAn/Zt0REnvc7A==",
- "dependencies": {
- "@types/hast": "^3.0.0",
- "@types/unist": "^3.0.0",
- "hast-util-is-element": "^3.0.0",
- "unist-util-find-after": "^5.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/hast-util-whitespace": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/hast-util-whitespace/-/hast-util-whitespace-3.0.0.tgz",
- "integrity": "sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw==",
- "dependencies": {
- "@types/hast": "^3.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/hastscript": {
- "version": "9.0.1",
- "resolved": "https://registry.npmjs.org/hastscript/-/hastscript-9.0.1.tgz",
- "integrity": "sha512-g7df9rMFX/SPi34tyGCyUBREQoKkapwdY/T04Qn9TDWfHhAYt4/I0gMVirzK5wEzeUqIjEB+LXC/ypb7Aqno5w==",
- "dependencies": {
- "@types/hast": "^3.0.0",
- "comma-separated-tokens": "^2.0.0",
- "hast-util-parse-selector": "^4.0.0",
- "property-information": "^7.0.0",
- "space-separated-tokens": "^2.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/html-escaper": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz",
- "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg=="
- },
- "node_modules/html-url-attributes": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/html-url-attributes/-/html-url-attributes-3.0.1.tgz",
- "integrity": "sha512-ol6UPyBWqsrO6EJySPz2O7ZSr856WDrEzM5zMqp+FJJLGMW35cLYmmZnl0vztAZxRUoNZJFTCohfjuIJ8I4QBQ==",
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/html-void-elements": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/html-void-elements/-/html-void-elements-3.0.0.tgz",
- "integrity": "sha512-bEqo66MRXsUGxWHV5IP0PUiAWwoEjba4VCzg0LjFJBpchPaTfyfCKTG6bc5F8ucKec3q5y6qOdGyYTSBEvhCrg==",
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/wooorm"
- }
- },
- "node_modules/human-signals": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-5.0.0.tgz",
- "integrity": "sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==",
- "license": "Apache-2.0",
- "engines": {
- "node": ">=16.17.0"
- }
- },
- "node_modules/iconv-lite": {
- "version": "0.6.3",
- "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz",
- "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==",
- "dependencies": {
- "safer-buffer": ">= 2.1.2 < 3.0.0"
- },
- "engines": {
- "node": ">=0.10.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/imurmurhash": {
- "version": "0.1.4",
- "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz",
- "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==",
- "engines": {
- "node": ">=0.8.19"
- }
- },
- "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/inline-style-parser": {
- "version": "0.2.4",
- "resolved": "https://registry.npmjs.org/inline-style-parser/-/inline-style-parser-0.2.4.tgz",
- "integrity": "sha512-0aO8FkhNZlj/ZIbNi7Lxxr12obT7cL1moPfE4tg1LkX7LlLfC6DeX4l2ZEud1ukP9jNQyNnfzQVqwbwmAATY4Q=="
- },
- "node_modules/internmap": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/internmap/-/internmap-2.0.3.tgz",
- "integrity": "sha512-5Hh7Y1wQbvY5ooGgPbDaL5iYLAPzMTUrjMulskHLH6wnv/A+1q5rgEaiuqEjB+oxGXIVZs1FF+R/KPN3ZSQYYg==",
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/is-alphabetical": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-2.0.1.tgz",
- "integrity": "sha512-FWyyY60MeTNyeSRpkM2Iry0G9hpr7/9kD40mD/cGQEuilcZYS4okz8SN2Q6rLCJ8gbCt6fN+rC+6tMGS99LaxQ==",
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/wooorm"
- }
- },
- "node_modules/is-alphanumerical": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/is-alphanumerical/-/is-alphanumerical-2.0.1.tgz",
- "integrity": "sha512-hmbYhX/9MUMF5uh7tOXyK/n0ZvWpad5caBA17GsC6vyuCqaWliRG5K1qS9inmUhEMaOBIW7/whAnSwveW/LtZw==",
- "dependencies": {
- "is-alphabetical": "^2.0.0",
- "is-decimal": "^2.0.0"
- },
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/wooorm"
- }
- },
- "node_modules/is-arrayish": {
- "version": "0.2.1",
- "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz",
- "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg=="
- },
- "node_modules/is-binary-path": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz",
- "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==",
- "dev": true,
- "dependencies": {
- "binary-extensions": "^2.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/is-core-module": {
- "version": "2.16.1",
- "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.1.tgz",
- "integrity": "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==",
- "dependencies": {
- "hasown": "^2.0.2"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/is-decimal": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/is-decimal/-/is-decimal-2.0.1.tgz",
- "integrity": "sha512-AAB9hiomQs5DXWcRB1rqsxGUstbRroFOPPVAomNk/3XHR5JyEZChOyTWe2oayKnsSsr/kcGqF+z6yuH6HHpN0A==",
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/wooorm"
- }
- },
- "node_modules/is-docker": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-3.0.0.tgz",
- "integrity": "sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==",
- "bin": {
- "is-docker": "cli.js"
- },
- "engines": {
- "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/is-extendable": {
- "version": "0.1.1",
- "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz",
- "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/is-extglob": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
- "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==",
- "dev": true,
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/is-fullwidth-code-point": {
- "version": "5.0.0",
- "license": "MIT",
- "dependencies": {
- "get-east-asian-width": "^1.0.0"
- },
- "engines": {
- "node": ">=18"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/is-generator-fn": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz",
- "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==",
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/is-glob": {
- "version": "4.0.3",
- "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz",
- "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==",
- "dev": true,
- "dependencies": {
- "is-extglob": "^2.1.1"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/is-hexadecimal": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/is-hexadecimal/-/is-hexadecimal-2.0.1.tgz",
- "integrity": "sha512-DgZQp241c8oO6cA1SbTEWiXeoxV42vlcJxgH+B3hi1AiqqKruZR3ZGF8In3fj4+/y/7rHvlOZLZtgJ/4ttYGZg==",
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/wooorm"
- }
- },
- "node_modules/is-inside-container": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/is-inside-container/-/is-inside-container-1.0.0.tgz",
- "integrity": "sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==",
- "dependencies": {
- "is-docker": "^3.0.0"
- },
- "bin": {
- "is-inside-container": "cli.js"
- },
- "engines": {
- "node": ">=14.16"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/is-number": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
- "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
- "engines": {
- "node": ">=0.12.0"
- }
- },
- "node_modules/is-plain-obj": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.1.0.tgz",
- "integrity": "sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==",
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/is-stream": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz",
- "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==",
- "license": "MIT",
- "engines": {
- "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/is-wsl": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-3.1.0.tgz",
- "integrity": "sha512-UcVfVfaK4Sc4m7X3dUSoHoozQGBEFeDC+zVo06t98xe8CzHSZZBekNXH+tu0NalHolcJ/QAGqS46Hef7QXBIMw==",
- "dependencies": {
- "is-inside-container": "^1.0.0"
- },
- "engines": {
- "node": ">=16"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/is64bit": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/is64bit/-/is64bit-2.0.0.tgz",
- "integrity": "sha512-jv+8jaWCl0g2lSBkNSVXdzfBA0npK1HGC2KtWM9FumFRoGS94g3NbCCLVnCYHLjp4GrW2KZeeSTMo5ddtznmGw==",
- "dependencies": {
- "system-architecture": "^0.1.0"
- },
- "engines": {
- "node": ">=18"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/isexe": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
- "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw=="
- },
- "node_modules/istanbul-lib-coverage": {
- "version": "3.2.2",
- "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz",
- "integrity": "sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/istanbul-lib-instrument": {
- "version": "6.0.3",
- "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-6.0.3.tgz",
- "integrity": "sha512-Vtgk7L/R2JHyyGW07spoFlB8/lpjiOLTjMdms6AFMraYt3BaJauod/NGrfnVG/y4Ix1JEuMRPDPEj2ua+zz1/Q==",
- "dependencies": {
- "@babel/core": "^7.23.9",
- "@babel/parser": "^7.23.9",
- "@istanbuljs/schema": "^0.1.3",
- "istanbul-lib-coverage": "^3.2.0",
- "semver": "^7.5.4"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/istanbul-lib-instrument/node_modules/semver": {
- "version": "7.7.1",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.1.tgz",
- "integrity": "sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==",
- "bin": {
- "semver": "bin/semver.js"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/istanbul-lib-report": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz",
- "integrity": "sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==",
- "dependencies": {
- "istanbul-lib-coverage": "^3.0.0",
- "make-dir": "^4.0.0",
- "supports-color": "^7.1.0"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/istanbul-lib-report/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/istanbul-lib-source-maps": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz",
- "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==",
- "dependencies": {
- "debug": "^4.1.1",
- "istanbul-lib-coverage": "^3.0.0",
- "source-map": "^0.6.1"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/istanbul-reports": {
- "version": "3.1.7",
- "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.7.tgz",
- "integrity": "sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g==",
- "dependencies": {
- "html-escaper": "^2.0.0",
- "istanbul-lib-report": "^3.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "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"
- }
- },
- "node_modules/jest": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/jest/-/jest-29.7.0.tgz",
- "integrity": "sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw==",
- "dependencies": {
- "@jest/core": "^29.7.0",
- "@jest/types": "^29.6.3",
- "import-local": "^3.0.2",
- "jest-cli": "^29.7.0"
- },
- "bin": {
- "jest": "bin/jest.js"
- },
- "engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
- },
- "peerDependencies": {
- "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0"
- },
- "peerDependenciesMeta": {
- "node-notifier": {
- "optional": true
- }
- }
- },
- "node_modules/jest-changed-files": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-29.7.0.tgz",
- "integrity": "sha512-fEArFiwf1BpQ+4bXSprcDc3/x4HSzL4al2tozwVpDFpsxALjLYdyiIK4e5Vz66GQJIbXJ82+35PtysofptNX2w==",
- "dependencies": {
- "execa": "^5.0.0",
- "jest-util": "^29.7.0",
- "p-limit": "^3.1.0"
- },
- "engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
- }
- },
- "node_modules/jest-changed-files/node_modules/execa": {
- "version": "5.1.1",
- "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz",
- "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==",
- "dependencies": {
- "cross-spawn": "^7.0.3",
- "get-stream": "^6.0.0",
- "human-signals": "^2.1.0",
- "is-stream": "^2.0.0",
- "merge-stream": "^2.0.0",
- "npm-run-path": "^4.0.1",
- "onetime": "^5.1.2",
- "signal-exit": "^3.0.3",
- "strip-final-newline": "^2.0.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sindresorhus/execa?sponsor=1"
- }
- },
- "node_modules/jest-changed-files/node_modules/get-stream": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz",
- "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==",
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/jest-changed-files/node_modules/human-signals": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz",
- "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==",
- "engines": {
- "node": ">=10.17.0"
- }
- },
- "node_modules/jest-changed-files/node_modules/is-stream": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz",
- "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==",
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/jest-changed-files/node_modules/mimic-fn": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz",
- "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==",
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/jest-changed-files/node_modules/npm-run-path": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz",
- "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==",
- "dependencies": {
- "path-key": "^3.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/jest-changed-files/node_modules/onetime": {
- "version": "5.1.2",
- "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz",
- "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==",
- "dependencies": {
- "mimic-fn": "^2.1.0"
- },
- "engines": {
- "node": ">=6"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/jest-changed-files/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/jest-changed-files/node_modules/signal-exit": {
- "version": "3.0.7",
- "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz",
- "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ=="
- },
- "node_modules/jest-changed-files/node_modules/strip-final-newline": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz",
- "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==",
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/jest-circus": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-29.7.0.tgz",
- "integrity": "sha512-3E1nCMgipcTkCocFwM90XXQab9bS+GMsjdpmPrlelaxwD93Ad8iVEjX/vvHPdLPnFf+L40u+5+iutRdA1N9myw==",
- "dependencies": {
- "@jest/environment": "^29.7.0",
- "@jest/expect": "^29.7.0",
- "@jest/test-result": "^29.7.0",
- "@jest/types": "^29.6.3",
- "@types/node": "*",
- "chalk": "^4.0.0",
- "co": "^4.6.0",
- "dedent": "^1.0.0",
- "is-generator-fn": "^2.0.0",
- "jest-each": "^29.7.0",
- "jest-matcher-utils": "^29.7.0",
- "jest-message-util": "^29.7.0",
- "jest-runtime": "^29.7.0",
- "jest-snapshot": "^29.7.0",
- "jest-util": "^29.7.0",
- "p-limit": "^3.1.0",
- "pretty-format": "^29.7.0",
- "pure-rand": "^6.0.0",
- "slash": "^3.0.0",
- "stack-utils": "^2.0.3"
- },
- "engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
- }
- },
- "node_modules/jest-circus/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/jest-circus/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/jest-circus/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/jest-cli": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-29.7.0.tgz",
- "integrity": "sha512-OVVobw2IubN/GSYsxETi+gOe7Ka59EFMR/twOU3Jb2GnKKeMGJB5SGUUrEz3SFVmJASUdZUzy83sLNNQ2gZslg==",
- "dependencies": {
- "@jest/core": "^29.7.0",
- "@jest/test-result": "^29.7.0",
- "@jest/types": "^29.6.3",
- "chalk": "^4.0.0",
- "create-jest": "^29.7.0",
- "exit": "^0.1.2",
- "import-local": "^3.0.2",
- "jest-config": "^29.7.0",
- "jest-util": "^29.7.0",
- "jest-validate": "^29.7.0",
- "yargs": "^17.3.1"
- },
- "bin": {
- "jest": "bin/jest.js"
- },
- "engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
- },
- "peerDependencies": {
- "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0"
- },
- "peerDependenciesMeta": {
- "node-notifier": {
- "optional": true
- }
- }
- },
- "node_modules/jest-cli/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/jest-cli/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/jest-cli/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/jest-config": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-29.7.0.tgz",
- "integrity": "sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ==",
- "dependencies": {
- "@babel/core": "^7.11.6",
- "@jest/test-sequencer": "^29.7.0",
- "@jest/types": "^29.6.3",
- "babel-jest": "^29.7.0",
- "chalk": "^4.0.0",
- "ci-info": "^3.2.0",
- "deepmerge": "^4.2.2",
- "glob": "^7.1.3",
- "graceful-fs": "^4.2.9",
- "jest-circus": "^29.7.0",
- "jest-environment-node": "^29.7.0",
- "jest-get-type": "^29.6.3",
- "jest-regex-util": "^29.6.3",
- "jest-resolve": "^29.7.0",
- "jest-runner": "^29.7.0",
- "jest-util": "^29.7.0",
- "jest-validate": "^29.7.0",
- "micromatch": "^4.0.4",
- "parse-json": "^5.2.0",
- "pretty-format": "^29.7.0",
- "slash": "^3.0.0",
- "strip-json-comments": "^3.1.1"
- },
- "engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
- },
- "peerDependencies": {
- "@types/node": "*",
- "ts-node": ">=9.0.0"
- },
- "peerDependenciesMeta": {
- "@types/node": {
- "optional": true
- },
- "ts-node": {
- "optional": true
- }
- }
- },
- "node_modules/jest-config/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/jest-config/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/jest-config/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/jest-diff": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-29.7.0.tgz",
- "integrity": "sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==",
- "dependencies": {
- "chalk": "^4.0.0",
- "diff-sequences": "^29.6.3",
- "jest-get-type": "^29.6.3",
- "pretty-format": "^29.7.0"
- },
- "engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
- }
- },
- "node_modules/jest-diff/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/jest-diff/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/jest-diff/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/jest-docblock": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-29.7.0.tgz",
- "integrity": "sha512-q617Auw3A612guyaFgsbFeYpNP5t2aoUNLwBUbc/0kD1R4t9ixDbyFTHd1nok4epoVFpr7PmeWHrhvuV3XaJ4g==",
- "dependencies": {
- "detect-newline": "^3.0.0"
- },
- "engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
- }
- },
- "node_modules/jest-each": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-29.7.0.tgz",
- "integrity": "sha512-gns+Er14+ZrEoC5fhOfYCY1LOHHr0TI+rQUHZS8Ttw2l7gl+80eHc/gFf2Ktkw0+SIACDTeWvpFcv3B04VembQ==",
- "dependencies": {
- "@jest/types": "^29.6.3",
- "chalk": "^4.0.0",
- "jest-get-type": "^29.6.3",
- "jest-util": "^29.7.0",
- "pretty-format": "^29.7.0"
- },
- "engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
- }
- },
- "node_modules/jest-each/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/jest-each/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/jest-each/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/jest-environment-node": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-29.7.0.tgz",
- "integrity": "sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw==",
- "dependencies": {
- "@jest/environment": "^29.7.0",
- "@jest/fake-timers": "^29.7.0",
- "@jest/types": "^29.6.3",
- "@types/node": "*",
- "jest-mock": "^29.7.0",
- "jest-util": "^29.7.0"
- },
- "engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
- }
- },
- "node_modules/jest-get-type": {
- "version": "29.6.3",
- "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.6.3.tgz",
- "integrity": "sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==",
- "engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
- }
- },
- "node_modules/jest-haste-map": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-29.7.0.tgz",
- "integrity": "sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA==",
- "dependencies": {
- "@jest/types": "^29.6.3",
- "@types/graceful-fs": "^4.1.3",
- "@types/node": "*",
- "anymatch": "^3.0.3",
- "fb-watchman": "^2.0.0",
- "graceful-fs": "^4.2.9",
- "jest-regex-util": "^29.6.3",
- "jest-util": "^29.7.0",
- "jest-worker": "^29.7.0",
- "micromatch": "^4.0.4",
- "walker": "^1.0.8"
- },
- "engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
- },
- "optionalDependencies": {
- "fsevents": "^2.3.2"
- }
- },
- "node_modules/jest-leak-detector": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-29.7.0.tgz",
- "integrity": "sha512-kYA8IJcSYtST2BY9I+SMC32nDpBT3J2NvWJx8+JCuCdl/CR1I4EKUJROiP8XtCcxqgTTBGJNdbB1A8XRKbTetw==",
- "dependencies": {
- "jest-get-type": "^29.6.3",
- "pretty-format": "^29.7.0"
- },
- "engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
- }
- },
- "node_modules/jest-matcher-utils": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-29.7.0.tgz",
- "integrity": "sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g==",
- "dependencies": {
- "chalk": "^4.0.0",
- "jest-diff": "^29.7.0",
- "jest-get-type": "^29.6.3",
- "pretty-format": "^29.7.0"
- },
- "engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
- }
- },
- "node_modules/jest-matcher-utils/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/jest-matcher-utils/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/jest-matcher-utils/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/jest-message-util": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-29.7.0.tgz",
- "integrity": "sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==",
- "dependencies": {
- "@babel/code-frame": "^7.12.13",
- "@jest/types": "^29.6.3",
- "@types/stack-utils": "^2.0.0",
- "chalk": "^4.0.0",
- "graceful-fs": "^4.2.9",
- "micromatch": "^4.0.4",
- "pretty-format": "^29.7.0",
- "slash": "^3.0.0",
- "stack-utils": "^2.0.3"
- },
- "engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
- }
- },
- "node_modules/jest-message-util/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/jest-message-util/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/jest-message-util/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/jest-mock": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-29.7.0.tgz",
- "integrity": "sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw==",
- "dependencies": {
- "@jest/types": "^29.6.3",
- "@types/node": "*",
- "jest-util": "^29.7.0"
- },
- "engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
- }
- },
- "node_modules/jest-pnp-resolver": {
- "version": "1.2.3",
- "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz",
- "integrity": "sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==",
- "engines": {
- "node": ">=6"
- },
- "peerDependencies": {
- "jest-resolve": "*"
- },
- "peerDependenciesMeta": {
- "jest-resolve": {
- "optional": true
- }
- }
- },
- "node_modules/jest-regex-util": {
- "version": "29.6.3",
- "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-29.6.3.tgz",
- "integrity": "sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg==",
- "engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
- }
- },
- "node_modules/jest-resolve": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-29.7.0.tgz",
- "integrity": "sha512-IOVhZSrg+UvVAshDSDtHyFCCBUl/Q3AAJv8iZ6ZjnZ74xzvwuzLXid9IIIPgTnY62SJjfuupMKZsZQRsCvxEgA==",
- "dependencies": {
- "chalk": "^4.0.0",
- "graceful-fs": "^4.2.9",
- "jest-haste-map": "^29.7.0",
- "jest-pnp-resolver": "^1.2.2",
- "jest-util": "^29.7.0",
- "jest-validate": "^29.7.0",
- "resolve": "^1.20.0",
- "resolve.exports": "^2.0.0",
- "slash": "^3.0.0"
- },
- "engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
- }
- },
- "node_modules/jest-resolve-dependencies": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-29.7.0.tgz",
- "integrity": "sha512-un0zD/6qxJ+S0et7WxeI3H5XSe9lTBBR7bOHCHXkKR6luG5mwDDlIzVQ0V5cZCuoTgEdcdwzTghYkTWfubi+nA==",
- "dependencies": {
- "jest-regex-util": "^29.6.3",
- "jest-snapshot": "^29.7.0"
- },
- "engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
- }
- },
- "node_modules/jest-resolve/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/jest-resolve/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/jest-resolve/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/jest-runner": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-29.7.0.tgz",
- "integrity": "sha512-fsc4N6cPCAahybGBfTRcq5wFR6fpLznMg47sY5aDpsoejOcVYFb07AHuSnR0liMcPTgBsA3ZJL6kFOjPdoNipQ==",
- "dependencies": {
- "@jest/console": "^29.7.0",
- "@jest/environment": "^29.7.0",
- "@jest/test-result": "^29.7.0",
- "@jest/transform": "^29.7.0",
- "@jest/types": "^29.6.3",
- "@types/node": "*",
- "chalk": "^4.0.0",
- "emittery": "^0.13.1",
- "graceful-fs": "^4.2.9",
- "jest-docblock": "^29.7.0",
- "jest-environment-node": "^29.7.0",
- "jest-haste-map": "^29.7.0",
- "jest-leak-detector": "^29.7.0",
- "jest-message-util": "^29.7.0",
- "jest-resolve": "^29.7.0",
- "jest-runtime": "^29.7.0",
- "jest-util": "^29.7.0",
- "jest-watcher": "^29.7.0",
- "jest-worker": "^29.7.0",
- "p-limit": "^3.1.0",
- "source-map-support": "0.5.13"
- },
- "engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
- }
- },
- "node_modules/jest-runner/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/jest-runner/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/jest-runner/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/jest-runtime": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-29.7.0.tgz",
- "integrity": "sha512-gUnLjgwdGqW7B4LvOIkbKs9WGbn+QLqRQQ9juC6HndeDiezIwhDP+mhMwHWCEcfQ5RUXa6OPnFF8BJh5xegwwQ==",
- "dependencies": {
- "@jest/environment": "^29.7.0",
- "@jest/fake-timers": "^29.7.0",
- "@jest/globals": "^29.7.0",
- "@jest/source-map": "^29.6.3",
- "@jest/test-result": "^29.7.0",
- "@jest/transform": "^29.7.0",
- "@jest/types": "^29.6.3",
- "@types/node": "*",
- "chalk": "^4.0.0",
- "cjs-module-lexer": "^1.0.0",
- "collect-v8-coverage": "^1.0.0",
- "glob": "^7.1.3",
- "graceful-fs": "^4.2.9",
- "jest-haste-map": "^29.7.0",
- "jest-message-util": "^29.7.0",
- "jest-mock": "^29.7.0",
- "jest-regex-util": "^29.6.3",
- "jest-resolve": "^29.7.0",
- "jest-snapshot": "^29.7.0",
- "jest-util": "^29.7.0",
- "slash": "^3.0.0",
- "strip-bom": "^4.0.0"
- },
- "engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
- }
- },
- "node_modules/jest-runtime/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/jest-runtime/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/jest-runtime/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/jest-snapshot": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-29.7.0.tgz",
- "integrity": "sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw==",
- "dependencies": {
- "@babel/core": "^7.11.6",
- "@babel/generator": "^7.7.2",
- "@babel/plugin-syntax-jsx": "^7.7.2",
- "@babel/plugin-syntax-typescript": "^7.7.2",
- "@babel/types": "^7.3.3",
- "@jest/expect-utils": "^29.7.0",
- "@jest/transform": "^29.7.0",
- "@jest/types": "^29.6.3",
- "babel-preset-current-node-syntax": "^1.0.0",
- "chalk": "^4.0.0",
- "expect": "^29.7.0",
- "graceful-fs": "^4.2.9",
- "jest-diff": "^29.7.0",
- "jest-get-type": "^29.6.3",
- "jest-matcher-utils": "^29.7.0",
- "jest-message-util": "^29.7.0",
- "jest-util": "^29.7.0",
- "natural-compare": "^1.4.0",
- "pretty-format": "^29.7.0",
- "semver": "^7.5.3"
- },
- "engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
- }
- },
- "node_modules/jest-snapshot/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/jest-snapshot/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/jest-snapshot/node_modules/semver": {
- "version": "7.7.1",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.1.tgz",
- "integrity": "sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==",
- "bin": {
- "semver": "bin/semver.js"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/jest-snapshot/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/jest-util": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.7.0.tgz",
- "integrity": "sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==",
- "dependencies": {
- "@jest/types": "^29.6.3",
- "@types/node": "*",
- "chalk": "^4.0.0",
- "ci-info": "^3.2.0",
- "graceful-fs": "^4.2.9",
- "picomatch": "^2.2.3"
- },
- "engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
- }
- },
- "node_modules/jest-util/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/jest-util/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/jest-util/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/jest-validate": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-29.7.0.tgz",
- "integrity": "sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw==",
- "dependencies": {
- "@jest/types": "^29.6.3",
- "camelcase": "^6.2.0",
- "chalk": "^4.0.0",
- "jest-get-type": "^29.6.3",
- "leven": "^3.1.0",
- "pretty-format": "^29.7.0"
- },
- "engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
- }
- },
- "node_modules/jest-validate/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/jest-validate/node_modules/camelcase": {
- "version": "6.3.0",
- "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz",
- "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==",
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/jest-validate/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/jest-validate/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/jest-watcher": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-29.7.0.tgz",
- "integrity": "sha512-49Fg7WXkU3Vl2h6LbLtMQ/HyB6rXSIX7SqvBLQmssRBGN9I0PNvPmAmCWSOY6SOvrjhI/F7/bGAv9RtnsPA03g==",
- "dependencies": {
- "@jest/test-result": "^29.7.0",
- "@jest/types": "^29.6.3",
- "@types/node": "*",
- "ansi-escapes": "^4.2.1",
- "chalk": "^4.0.0",
- "emittery": "^0.13.1",
- "jest-util": "^29.7.0",
- "string-length": "^4.0.1"
- },
- "engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
- }
- },
- "node_modules/jest-watcher/node_modules/ansi-escapes": {
- "version": "4.3.2",
- "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz",
- "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==",
- "dependencies": {
- "type-fest": "^0.21.3"
- },
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/jest-watcher/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/jest-watcher/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/jest-watcher/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/jest-worker": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.7.0.tgz",
- "integrity": "sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==",
- "dependencies": {
- "@types/node": "*",
- "jest-util": "^29.7.0",
- "merge-stream": "^2.0.0",
- "supports-color": "^8.0.0"
- },
- "engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.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==",
- "dependencies": {
- "has-flag": "^4.0.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/chalk/supports-color?sponsor=1"
- }
- },
- "node_modules/jiti": {
- "version": "1.21.7",
- "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.7.tgz",
- "integrity": "sha512-/imKNG4EbWNrVjoNC/1H5/9GFy+tqjGBHCaSsN+P2RnPqjsLmv6UD3Ej+Kj8nBWaRAwyk7kK5ZUc+OEatnTR3A==",
- "dev": true,
- "bin": {
- "jiti": "bin/jiti.js"
- }
- },
- "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/js-yaml": {
- "version": "3.14.1",
- "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz",
- "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==",
- "dependencies": {
- "argparse": "^1.0.7",
- "esprima": "^4.0.0"
- },
- "bin": {
- "js-yaml": "bin/js-yaml.js"
- }
- },
- "node_modules/jsesc": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz",
- "integrity": "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==",
- "bin": {
- "jsesc": "bin/jsesc"
- },
- "engines": {
- "node": ">=6"
- }
- },
- "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=="
- },
- "node_modules/json5": {
- "version": "2.2.3",
- "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz",
- "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==",
- "bin": {
- "json5": "lib/cli.js"
- },
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/katex": {
- "version": "0.16.21",
- "resolved": "https://registry.npmjs.org/katex/-/katex-0.16.21.tgz",
- "integrity": "sha512-XvqR7FgOHtWupfMiigNzmh+MgUVmDGU2kXZm899ZkPfcuoPuFxyHmXsgATDpFZDAXCI8tvinaVcDo8PIIJSo4A==",
- "funding": [
- "https://opencollective.com/katex",
- "https://github.com/sponsors/katex"
- ],
- "dependencies": {
- "commander": "^8.3.0"
- },
- "bin": {
- "katex": "cli.js"
- }
- },
- "node_modules/katex/node_modules/commander": {
- "version": "8.3.0",
- "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz",
- "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==",
- "engines": {
- "node": ">= 12"
- }
- },
- "node_modules/khroma": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/khroma/-/khroma-2.1.0.tgz",
- "integrity": "sha512-Ls993zuzfayK269Svk9hzpeGUKob/sIgZzyHYdjQoAdQetRKpOLj+k/QQQ/6Qi0Yz65mlROrfd+Ev+1+7dz9Kw=="
- },
- "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/kleur": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz",
- "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==",
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/kolorist": {
- "version": "1.8.0",
- "resolved": "https://registry.npmjs.org/kolorist/-/kolorist-1.8.0.tgz",
- "integrity": "sha512-Y+60/zizpJ3HRH8DCss+q95yr6145JXZo46OTpFvDZWLfRCE4qChOyk1b26nMaNpfHHgxagk9dXT5OP0Tfe+dQ=="
- },
- "node_modules/langium": {
- "version": "3.3.1",
- "resolved": "https://registry.npmjs.org/langium/-/langium-3.3.1.tgz",
- "integrity": "sha512-QJv/h939gDpvT+9SiLVlY7tZC3xB2qK57v0J04Sh9wpMb6MP1q8gB21L3WIo8T5P1MSMg3Ep14L7KkDCFG3y4w==",
- "dependencies": {
- "chevrotain": "~11.0.3",
- "chevrotain-allstar": "~0.3.0",
- "vscode-languageserver": "~9.0.1",
- "vscode-languageserver-textdocument": "~1.0.11",
- "vscode-uri": "~3.0.8"
- },
- "engines": {
- "node": ">=16.0.0"
- }
- },
- "node_modules/layout-base": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/layout-base/-/layout-base-1.0.2.tgz",
- "integrity": "sha512-8h2oVEZNktL4BH2JCOI90iD1yXwL6iNW7KcCKT2QZgQJR2vbqDsldCTPRU9NifTCqHZci57XvQQ15YTu+sTYPg=="
- },
- "node_modules/leven": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz",
- "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==",
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/lilconfig": {
- "version": "3.1.3",
- "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.3.tgz",
- "integrity": "sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==",
- "engines": {
- "node": ">=14"
- },
- "funding": {
- "url": "https://github.com/sponsors/antonk52"
- }
- },
- "node_modules/lines-and-columns": {
- "version": "1.2.4",
- "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz",
- "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg=="
- },
- "node_modules/lint-staged": {
- "version": "15.2.10",
- "resolved": "file:../node_modules/.pnpm/lint-staged@15.2.10/node_modules/lint-staged",
- "license": "MIT",
- "dependencies": {
- "chalk": "~5.3.0",
- "commander": "~12.1.0",
- "debug": "~4.3.6",
- "execa": "~8.0.1",
- "lilconfig": "~3.1.2",
- "listr2": "~8.2.4",
- "micromatch": "~4.0.8",
- "pidtree": "~0.6.0",
- "string-argv": "~0.3.2",
- "yaml": "~2.5.0"
- },
- "bin": {
- "lint-staged": "bin/lint-staged.js"
- },
- "engines": {
- "node": ">=18.12.0"
- },
- "funding": {
- "url": "https://opencollective.com/lint-staged"
- }
- },
- "node_modules/listr2": {
- "version": "8.2.5",
- "license": "MIT",
- "dependencies": {
- "cli-truncate": "^4.0.0",
- "colorette": "^2.0.20",
- "eventemitter3": "^5.0.1",
- "log-update": "^6.1.0",
- "rfdc": "^1.4.1",
- "wrap-ansi": "^9.0.0"
- },
- "engines": {
- "node": ">=18.0.0"
- }
- },
- "node_modules/local-pkg": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/local-pkg/-/local-pkg-1.1.1.tgz",
- "integrity": "sha512-WunYko2W1NcdfAFpuLUoucsgULmgDBRkdxHxWQ7mK0cQqwPiy8E1enjuRBrhLtZkB5iScJ1XIPdhVEFK8aOLSg==",
- "dependencies": {
- "mlly": "^1.7.4",
- "pkg-types": "^2.0.1",
- "quansync": "^0.2.8"
- },
- "engines": {
- "node": ">=14"
- },
- "funding": {
- "url": "https://github.com/sponsors/antfu"
- }
- },
- "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-es": {
- "version": "4.17.21",
- "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.21.tgz",
- "integrity": "sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw=="
- },
- "node_modules/log-update": {
- "version": "6.1.0",
- "license": "MIT",
- "dependencies": {
- "ansi-escapes": "^7.0.0",
- "cli-cursor": "^5.0.0",
- "slice-ansi": "^7.1.0",
- "strip-ansi": "^7.1.0",
- "wrap-ansi": "^9.0.0"
- },
- "engines": {
- "node": ">=18"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/longest-streak": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/longest-streak/-/longest-streak-3.1.0.tgz",
- "integrity": "sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==",
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/wooorm"
- }
- },
- "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": "5.1.1",
- "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz",
- "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==",
- "dependencies": {
- "yallist": "^3.0.2"
- }
- },
- "node_modules/make-dir": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz",
- "integrity": "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==",
- "dependencies": {
- "semver": "^7.5.3"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/make-dir/node_modules/semver": {
- "version": "7.7.1",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.1.tgz",
- "integrity": "sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==",
- "bin": {
- "semver": "bin/semver.js"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/makeerror": {
- "version": "1.0.12",
- "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz",
- "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==",
- "dependencies": {
- "tmpl": "1.0.5"
- }
- },
- "node_modules/markdown-extensions": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/markdown-extensions/-/markdown-extensions-2.0.0.tgz",
- "integrity": "sha512-o5vL7aDWatOTX8LzaS1WMoaoxIiLRQJuIKKe2wAw6IeULDHaqbiqiggmx+pKvZDb1Sj+pE46Sn1T7lCqfFtg1Q==",
- "engines": {
- "node": ">=16"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/markdown-table": {
- "version": "3.0.4",
- "resolved": "https://registry.npmjs.org/markdown-table/-/markdown-table-3.0.4.tgz",
- "integrity": "sha512-wiYz4+JrLyb/DqW2hkFJxP7Vd7JuTDm77fvbM8VfEQdmSMqcImWeeRbHwZjBjIFki/VaMK2BhFi7oUUZeM5bqw==",
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/wooorm"
- }
- },
- "node_modules/marked": {
- "version": "15.0.7",
- "resolved": "https://registry.npmjs.org/marked/-/marked-15.0.7.tgz",
- "integrity": "sha512-dgLIeKGLx5FwziAnsk4ONoGwHwGPJzselimvlVskE9XLN4Orv9u2VA3GWw/lYUqjfA0rUT/6fqKwfZJapP9BEg==",
- "bin": {
- "marked": "bin/marked.js"
- },
- "engines": {
- "node": ">= 18"
- }
- },
- "node_modules/mathjax-full": {
- "version": "3.2.2",
- "resolved": "https://registry.npmjs.org/mathjax-full/-/mathjax-full-3.2.2.tgz",
- "integrity": "sha512-+LfG9Fik+OuI8SLwsiR02IVdjcnRCy5MufYLi0C3TdMT56L/pjB0alMVGgoWJF8pN9Rc7FESycZB9BMNWIid5w==",
- "dependencies": {
- "esm": "^3.2.25",
- "mhchemparser": "^4.1.0",
- "mj-context-menu": "^0.6.1",
- "speech-rule-engine": "^4.0.6"
- }
- },
- "node_modules/mdast-util-find-and-replace": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/mdast-util-find-and-replace/-/mdast-util-find-and-replace-3.0.2.tgz",
- "integrity": "sha512-Tmd1Vg/m3Xz43afeNxDIhWRtFZgM2VLyaf4vSTYwudTyeuTneoL3qtWMA5jeLyz/O1vDJmmV4QuScFCA2tBPwg==",
- "dependencies": {
- "@types/mdast": "^4.0.0",
- "escape-string-regexp": "^5.0.0",
- "unist-util-is": "^6.0.0",
- "unist-util-visit-parents": "^6.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/mdast-util-from-markdown": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-2.0.2.tgz",
- "integrity": "sha512-uZhTV/8NBuw0WHkPTrCqDOl0zVe1BIng5ZtHoDk49ME1qqcjYmmLmOf0gELgcRMxN4w2iuIeVso5/6QymSrgmA==",
- "dependencies": {
- "@types/mdast": "^4.0.0",
- "@types/unist": "^3.0.0",
- "decode-named-character-reference": "^1.0.0",
- "devlop": "^1.0.0",
- "mdast-util-to-string": "^4.0.0",
- "micromark": "^4.0.0",
- "micromark-util-decode-numeric-character-reference": "^2.0.0",
- "micromark-util-decode-string": "^2.0.0",
- "micromark-util-normalize-identifier": "^2.0.0",
- "micromark-util-symbol": "^2.0.0",
- "micromark-util-types": "^2.0.0",
- "unist-util-stringify-position": "^4.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/mdast-util-frontmatter": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/mdast-util-frontmatter/-/mdast-util-frontmatter-2.0.1.tgz",
- "integrity": "sha512-LRqI9+wdgC25P0URIJY9vwocIzCcksduHQ9OF2joxQoyTNVduwLAFUzjoopuRJbJAReaKrNQKAZKL3uCMugWJA==",
- "dependencies": {
- "@types/mdast": "^4.0.0",
- "devlop": "^1.0.0",
- "escape-string-regexp": "^5.0.0",
- "mdast-util-from-markdown": "^2.0.0",
- "mdast-util-to-markdown": "^2.0.0",
- "micromark-extension-frontmatter": "^2.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/mdast-util-gfm": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/mdast-util-gfm/-/mdast-util-gfm-3.1.0.tgz",
- "integrity": "sha512-0ulfdQOM3ysHhCJ1p06l0b0VKlhU0wuQs3thxZQagjcjPrlFRqY215uZGHHJan9GEAXd9MbfPjFJz+qMkVR6zQ==",
- "dependencies": {
- "mdast-util-from-markdown": "^2.0.0",
- "mdast-util-gfm-autolink-literal": "^2.0.0",
- "mdast-util-gfm-footnote": "^2.0.0",
- "mdast-util-gfm-strikethrough": "^2.0.0",
- "mdast-util-gfm-table": "^2.0.0",
- "mdast-util-gfm-task-list-item": "^2.0.0",
- "mdast-util-to-markdown": "^2.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/mdast-util-gfm-autolink-literal": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/mdast-util-gfm-autolink-literal/-/mdast-util-gfm-autolink-literal-2.0.1.tgz",
- "integrity": "sha512-5HVP2MKaP6L+G6YaxPNjuL0BPrq9orG3TsrZ9YXbA3vDw/ACI4MEsnoDpn6ZNm7GnZgtAcONJyPhOP8tNJQavQ==",
- "dependencies": {
- "@types/mdast": "^4.0.0",
- "ccount": "^2.0.0",
- "devlop": "^1.0.0",
- "mdast-util-find-and-replace": "^3.0.0",
- "micromark-util-character": "^2.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/mdast-util-gfm-footnote": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/mdast-util-gfm-footnote/-/mdast-util-gfm-footnote-2.1.0.tgz",
- "integrity": "sha512-sqpDWlsHn7Ac9GNZQMeUzPQSMzR6Wv0WKRNvQRg0KqHh02fpTz69Qc1QSseNX29bhz1ROIyNyxExfawVKTm1GQ==",
- "dependencies": {
- "@types/mdast": "^4.0.0",
- "devlop": "^1.1.0",
- "mdast-util-from-markdown": "^2.0.0",
- "mdast-util-to-markdown": "^2.0.0",
- "micromark-util-normalize-identifier": "^2.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/mdast-util-gfm-strikethrough": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/mdast-util-gfm-strikethrough/-/mdast-util-gfm-strikethrough-2.0.0.tgz",
- "integrity": "sha512-mKKb915TF+OC5ptj5bJ7WFRPdYtuHv0yTRxK2tJvi+BDqbkiG7h7u/9SI89nRAYcmap2xHQL9D+QG/6wSrTtXg==",
- "dependencies": {
- "@types/mdast": "^4.0.0",
- "mdast-util-from-markdown": "^2.0.0",
- "mdast-util-to-markdown": "^2.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/mdast-util-gfm-table": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/mdast-util-gfm-table/-/mdast-util-gfm-table-2.0.0.tgz",
- "integrity": "sha512-78UEvebzz/rJIxLvE7ZtDd/vIQ0RHv+3Mh5DR96p7cS7HsBhYIICDBCu8csTNWNO6tBWfqXPWekRuj2FNOGOZg==",
- "dependencies": {
- "@types/mdast": "^4.0.0",
- "devlop": "^1.0.0",
- "markdown-table": "^3.0.0",
- "mdast-util-from-markdown": "^2.0.0",
- "mdast-util-to-markdown": "^2.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/mdast-util-gfm-task-list-item": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/mdast-util-gfm-task-list-item/-/mdast-util-gfm-task-list-item-2.0.0.tgz",
- "integrity": "sha512-IrtvNvjxC1o06taBAVJznEnkiHxLFTzgonUdy8hzFVeDun0uTjxxrRGVaNFqkU1wJR3RBPEfsxmU6jDWPofrTQ==",
- "dependencies": {
- "@types/mdast": "^4.0.0",
- "devlop": "^1.0.0",
- "mdast-util-from-markdown": "^2.0.0",
- "mdast-util-to-markdown": "^2.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/mdast-util-math": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/mdast-util-math/-/mdast-util-math-3.0.0.tgz",
- "integrity": "sha512-Tl9GBNeG/AhJnQM221bJR2HPvLOSnLE/T9cJI9tlc6zwQk2nPk/4f0cHkOdEixQPC/j8UtKDdITswvLAy1OZ1w==",
- "dependencies": {
- "@types/hast": "^3.0.0",
- "@types/mdast": "^4.0.0",
- "devlop": "^1.0.0",
- "longest-streak": "^3.0.0",
- "mdast-util-from-markdown": "^2.0.0",
- "mdast-util-to-markdown": "^2.1.0",
- "unist-util-remove-position": "^5.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/mdast-util-mdx": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/mdast-util-mdx/-/mdast-util-mdx-3.0.0.tgz",
- "integrity": "sha512-JfbYLAW7XnYTTbUsmpu0kdBUVe+yKVJZBItEjwyYJiDJuZ9w4eeaqks4HQO+R7objWgS2ymV60GYpI14Ug554w==",
- "dependencies": {
- "mdast-util-from-markdown": "^2.0.0",
- "mdast-util-mdx-expression": "^2.0.0",
- "mdast-util-mdx-jsx": "^3.0.0",
- "mdast-util-mdxjs-esm": "^2.0.0",
- "mdast-util-to-markdown": "^2.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/mdast-util-mdx-expression": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/mdast-util-mdx-expression/-/mdast-util-mdx-expression-2.0.1.tgz",
- "integrity": "sha512-J6f+9hUp+ldTZqKRSg7Vw5V6MqjATc+3E4gf3CFNcuZNWD8XdyI6zQ8GqH7f8169MM6P7hMBRDVGnn7oHB9kXQ==",
- "dependencies": {
- "@types/estree-jsx": "^1.0.0",
- "@types/hast": "^3.0.0",
- "@types/mdast": "^4.0.0",
- "devlop": "^1.0.0",
- "mdast-util-from-markdown": "^2.0.0",
- "mdast-util-to-markdown": "^2.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/mdast-util-mdx-jsx": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/mdast-util-mdx-jsx/-/mdast-util-mdx-jsx-3.2.0.tgz",
- "integrity": "sha512-lj/z8v0r6ZtsN/cGNNtemmmfoLAFZnjMbNyLzBafjzikOM+glrjNHPlf6lQDOTccj9n5b0PPihEBbhneMyGs1Q==",
- "dependencies": {
- "@types/estree-jsx": "^1.0.0",
- "@types/hast": "^3.0.0",
- "@types/mdast": "^4.0.0",
- "@types/unist": "^3.0.0",
- "ccount": "^2.0.0",
- "devlop": "^1.1.0",
- "mdast-util-from-markdown": "^2.0.0",
- "mdast-util-to-markdown": "^2.0.0",
- "parse-entities": "^4.0.0",
- "stringify-entities": "^4.0.0",
- "unist-util-stringify-position": "^4.0.0",
- "vfile-message": "^4.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/mdast-util-mdxjs-esm": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/mdast-util-mdxjs-esm/-/mdast-util-mdxjs-esm-2.0.1.tgz",
- "integrity": "sha512-EcmOpxsZ96CvlP03NghtH1EsLtr0n9Tm4lPUJUBccV9RwUOneqSycg19n5HGzCf+10LozMRSObtVr3ee1WoHtg==",
- "dependencies": {
- "@types/estree-jsx": "^1.0.0",
- "@types/hast": "^3.0.0",
- "@types/mdast": "^4.0.0",
- "devlop": "^1.0.0",
- "mdast-util-from-markdown": "^2.0.0",
- "mdast-util-to-markdown": "^2.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/mdast-util-phrasing": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/mdast-util-phrasing/-/mdast-util-phrasing-4.1.0.tgz",
- "integrity": "sha512-TqICwyvJJpBwvGAMZjj4J2n0X8QWp21b9l0o7eXyVJ25YNWYbJDVIyD1bZXE6WtV6RmKJVYmQAKWa0zWOABz2w==",
- "dependencies": {
- "@types/mdast": "^4.0.0",
- "unist-util-is": "^6.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/mdast-util-to-hast": {
- "version": "13.2.0",
- "resolved": "https://registry.npmjs.org/mdast-util-to-hast/-/mdast-util-to-hast-13.2.0.tgz",
- "integrity": "sha512-QGYKEuUsYT9ykKBCMOEDLsU5JRObWQusAolFMeko/tYPufNkRffBAQjIE+99jbA87xv6FgmjLtwjh9wBWajwAA==",
- "dependencies": {
- "@types/hast": "^3.0.0",
- "@types/mdast": "^4.0.0",
- "@ungap/structured-clone": "^1.0.0",
- "devlop": "^1.0.0",
- "micromark-util-sanitize-uri": "^2.0.0",
- "trim-lines": "^3.0.0",
- "unist-util-position": "^5.0.0",
- "unist-util-visit": "^5.0.0",
- "vfile": "^6.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/mdast-util-to-markdown": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/mdast-util-to-markdown/-/mdast-util-to-markdown-2.1.2.tgz",
- "integrity": "sha512-xj68wMTvGXVOKonmog6LwyJKrYXZPvlwabaryTjLh9LuvovB/KAH+kvi8Gjj+7rJjsFi23nkUxRQv1KqSroMqA==",
- "dependencies": {
- "@types/mdast": "^4.0.0",
- "@types/unist": "^3.0.0",
- "longest-streak": "^3.0.0",
- "mdast-util-phrasing": "^4.0.0",
- "mdast-util-to-string": "^4.0.0",
- "micromark-util-classify-character": "^2.0.0",
- "micromark-util-decode-string": "^2.0.0",
- "unist-util-visit": "^5.0.0",
- "zwitch": "^2.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/mdast-util-to-string": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-4.0.0.tgz",
- "integrity": "sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==",
- "dependencies": {
- "@types/mdast": "^4.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "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=="
- },
- "node_modules/merge2": {
- "version": "1.4.1",
- "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz",
- "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==",
- "dev": true,
- "engines": {
- "node": ">= 8"
- }
- },
- "node_modules/mermaid": {
- "version": "11.6.0",
- "resolved": "https://registry.npmjs.org/mermaid/-/mermaid-11.6.0.tgz",
- "integrity": "sha512-PE8hGUy1LDlWIHWBP05SFdqUHGmRcCcK4IzpOKPE35eOw+G9zZgcnMpyunJVUEOgb//KBORPjysKndw8bFLuRg==",
- "dependencies": {
- "@braintree/sanitize-url": "^7.0.4",
- "@iconify/utils": "^2.1.33",
- "@mermaid-js/parser": "^0.4.0",
- "@types/d3": "^7.4.3",
- "cytoscape": "^3.29.3",
- "cytoscape-cose-bilkent": "^4.1.0",
- "cytoscape-fcose": "^2.2.0",
- "d3": "^7.9.0",
- "d3-sankey": "^0.12.3",
- "dagre-d3-es": "7.0.11",
- "dayjs": "^1.11.13",
- "dompurify": "^3.2.4",
- "katex": "^0.16.9",
- "khroma": "^2.1.0",
- "lodash-es": "^4.17.21",
- "marked": "^15.0.7",
- "roughjs": "^4.6.6",
- "stylis": "^4.3.6",
- "ts-dedent": "^2.2.0",
- "uuid": "^11.1.0"
- }
- },
- "node_modules/mhchemparser": {
- "version": "4.2.1",
- "resolved": "https://registry.npmjs.org/mhchemparser/-/mhchemparser-4.2.1.tgz",
- "integrity": "sha512-kYmyrCirqJf3zZ9t/0wGgRZ4/ZJw//VwaRVGA75C4nhE60vtnIzhl9J9ndkX/h6hxSN7pjg/cE0VxbnNM+bnDQ=="
- },
- "node_modules/micromark": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/micromark/-/micromark-4.0.2.tgz",
- "integrity": "sha512-zpe98Q6kvavpCr1NPVSCMebCKfD7CA2NqZ+rykeNhONIJBpc1tFKt9hucLGwha3jNTNI8lHpctWJWoimVF4PfA==",
- "funding": [
- {
- "type": "GitHub Sponsors",
- "url": "https://github.com/sponsors/unifiedjs"
- },
- {
- "type": "OpenCollective",
- "url": "https://opencollective.com/unified"
- }
- ],
- "dependencies": {
- "@types/debug": "^4.0.0",
- "debug": "^4.0.0",
- "decode-named-character-reference": "^1.0.0",
- "devlop": "^1.0.0",
- "micromark-core-commonmark": "^2.0.0",
- "micromark-factory-space": "^2.0.0",
- "micromark-util-character": "^2.0.0",
- "micromark-util-chunked": "^2.0.0",
- "micromark-util-combine-extensions": "^2.0.0",
- "micromark-util-decode-numeric-character-reference": "^2.0.0",
- "micromark-util-encode": "^2.0.0",
- "micromark-util-normalize-identifier": "^2.0.0",
- "micromark-util-resolve-all": "^2.0.0",
- "micromark-util-sanitize-uri": "^2.0.0",
- "micromark-util-subtokenize": "^2.0.0",
- "micromark-util-symbol": "^2.0.0",
- "micromark-util-types": "^2.0.0"
- }
- },
- "node_modules/micromark-core-commonmark": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/micromark-core-commonmark/-/micromark-core-commonmark-2.0.3.tgz",
- "integrity": "sha512-RDBrHEMSxVFLg6xvnXmb1Ayr2WzLAWjeSATAoxwKYJV94TeNavgoIdA0a9ytzDSVzBy2YKFK+emCPOEibLeCrg==",
- "funding": [
- {
- "type": "GitHub Sponsors",
- "url": "https://github.com/sponsors/unifiedjs"
- },
- {
- "type": "OpenCollective",
- "url": "https://opencollective.com/unified"
- }
- ],
- "dependencies": {
- "decode-named-character-reference": "^1.0.0",
- "devlop": "^1.0.0",
- "micromark-factory-destination": "^2.0.0",
- "micromark-factory-label": "^2.0.0",
- "micromark-factory-space": "^2.0.0",
- "micromark-factory-title": "^2.0.0",
- "micromark-factory-whitespace": "^2.0.0",
- "micromark-util-character": "^2.0.0",
- "micromark-util-chunked": "^2.0.0",
- "micromark-util-classify-character": "^2.0.0",
- "micromark-util-html-tag-name": "^2.0.0",
- "micromark-util-normalize-identifier": "^2.0.0",
- "micromark-util-resolve-all": "^2.0.0",
- "micromark-util-subtokenize": "^2.0.0",
- "micromark-util-symbol": "^2.0.0",
- "micromark-util-types": "^2.0.0"
- }
- },
- "node_modules/micromark-extension-frontmatter": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/micromark-extension-frontmatter/-/micromark-extension-frontmatter-2.0.0.tgz",
- "integrity": "sha512-C4AkuM3dA58cgZha7zVnuVxBhDsbttIMiytjgsM2XbHAB2faRVaHRle40558FBN+DJcrLNCoqG5mlrpdU4cRtg==",
- "dependencies": {
- "fault": "^2.0.0",
- "micromark-util-character": "^2.0.0",
- "micromark-util-symbol": "^2.0.0",
- "micromark-util-types": "^2.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/micromark-extension-gfm": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/micromark-extension-gfm/-/micromark-extension-gfm-3.0.0.tgz",
- "integrity": "sha512-vsKArQsicm7t0z2GugkCKtZehqUm31oeGBV/KVSorWSy8ZlNAv7ytjFhvaryUiCUJYqs+NoE6AFhpQvBTM6Q4w==",
- "dependencies": {
- "micromark-extension-gfm-autolink-literal": "^2.0.0",
- "micromark-extension-gfm-footnote": "^2.0.0",
- "micromark-extension-gfm-strikethrough": "^2.0.0",
- "micromark-extension-gfm-table": "^2.0.0",
- "micromark-extension-gfm-tagfilter": "^2.0.0",
- "micromark-extension-gfm-task-list-item": "^2.0.0",
- "micromark-util-combine-extensions": "^2.0.0",
- "micromark-util-types": "^2.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/micromark-extension-gfm-autolink-literal": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/micromark-extension-gfm-autolink-literal/-/micromark-extension-gfm-autolink-literal-2.1.0.tgz",
- "integrity": "sha512-oOg7knzhicgQ3t4QCjCWgTmfNhvQbDDnJeVu9v81r7NltNCVmhPy1fJRX27pISafdjL+SVc4d3l48Gb6pbRypw==",
- "dependencies": {
- "micromark-util-character": "^2.0.0",
- "micromark-util-sanitize-uri": "^2.0.0",
- "micromark-util-symbol": "^2.0.0",
- "micromark-util-types": "^2.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/micromark-extension-gfm-footnote": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/micromark-extension-gfm-footnote/-/micromark-extension-gfm-footnote-2.1.0.tgz",
- "integrity": "sha512-/yPhxI1ntnDNsiHtzLKYnE3vf9JZ6cAisqVDauhp4CEHxlb4uoOTxOCJ+9s51bIB8U1N1FJ1RXOKTIlD5B/gqw==",
- "dependencies": {
- "devlop": "^1.0.0",
- "micromark-core-commonmark": "^2.0.0",
- "micromark-factory-space": "^2.0.0",
- "micromark-util-character": "^2.0.0",
- "micromark-util-normalize-identifier": "^2.0.0",
- "micromark-util-sanitize-uri": "^2.0.0",
- "micromark-util-symbol": "^2.0.0",
- "micromark-util-types": "^2.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/micromark-extension-gfm-strikethrough": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/micromark-extension-gfm-strikethrough/-/micromark-extension-gfm-strikethrough-2.1.0.tgz",
- "integrity": "sha512-ADVjpOOkjz1hhkZLlBiYA9cR2Anf8F4HqZUO6e5eDcPQd0Txw5fxLzzxnEkSkfnD0wziSGiv7sYhk/ktvbf1uw==",
- "dependencies": {
- "devlop": "^1.0.0",
- "micromark-util-chunked": "^2.0.0",
- "micromark-util-classify-character": "^2.0.0",
- "micromark-util-resolve-all": "^2.0.0",
- "micromark-util-symbol": "^2.0.0",
- "micromark-util-types": "^2.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/micromark-extension-gfm-table": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/micromark-extension-gfm-table/-/micromark-extension-gfm-table-2.1.1.tgz",
- "integrity": "sha512-t2OU/dXXioARrC6yWfJ4hqB7rct14e8f7m0cbI5hUmDyyIlwv5vEtooptH8INkbLzOatzKuVbQmAYcbWoyz6Dg==",
- "dependencies": {
- "devlop": "^1.0.0",
- "micromark-factory-space": "^2.0.0",
- "micromark-util-character": "^2.0.0",
- "micromark-util-symbol": "^2.0.0",
- "micromark-util-types": "^2.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/micromark-extension-gfm-tagfilter": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/micromark-extension-gfm-tagfilter/-/micromark-extension-gfm-tagfilter-2.0.0.tgz",
- "integrity": "sha512-xHlTOmuCSotIA8TW1mDIM6X2O1SiX5P9IuDtqGonFhEK0qgRI4yeC6vMxEV2dgyr2TiD+2PQ10o+cOhdVAcwfg==",
- "dependencies": {
- "micromark-util-types": "^2.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/micromark-extension-gfm-task-list-item": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/micromark-extension-gfm-task-list-item/-/micromark-extension-gfm-task-list-item-2.1.0.tgz",
- "integrity": "sha512-qIBZhqxqI6fjLDYFTBIa4eivDMnP+OZqsNwmQ3xNLE4Cxwc+zfQEfbs6tzAo2Hjq+bh6q5F+Z8/cksrLFYWQQw==",
- "dependencies": {
- "devlop": "^1.0.0",
- "micromark-factory-space": "^2.0.0",
- "micromark-util-character": "^2.0.0",
- "micromark-util-symbol": "^2.0.0",
- "micromark-util-types": "^2.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/micromark-extension-math": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/micromark-extension-math/-/micromark-extension-math-3.1.0.tgz",
- "integrity": "sha512-lvEqd+fHjATVs+2v/8kg9i5Q0AP2k85H0WUOwpIVvUML8BapsMvh1XAogmQjOCsLpoKRCVQqEkQBB3NhVBcsOg==",
- "dependencies": {
- "@types/katex": "^0.16.0",
- "devlop": "^1.0.0",
- "katex": "^0.16.0",
- "micromark-factory-space": "^2.0.0",
- "micromark-util-character": "^2.0.0",
- "micromark-util-symbol": "^2.0.0",
- "micromark-util-types": "^2.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/micromark-extension-mdx-expression": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/micromark-extension-mdx-expression/-/micromark-extension-mdx-expression-3.0.1.tgz",
- "integrity": "sha512-dD/ADLJ1AeMvSAKBwO22zG22N4ybhe7kFIZ3LsDI0GlsNr2A3KYxb0LdC1u5rj4Nw+CHKY0RVdnHX8vj8ejm4Q==",
- "funding": [
- {
- "type": "GitHub Sponsors",
- "url": "https://github.com/sponsors/unifiedjs"
- },
- {
- "type": "OpenCollective",
- "url": "https://opencollective.com/unified"
- }
- ],
- "dependencies": {
- "@types/estree": "^1.0.0",
- "devlop": "^1.0.0",
- "micromark-factory-mdx-expression": "^2.0.0",
- "micromark-factory-space": "^2.0.0",
- "micromark-util-character": "^2.0.0",
- "micromark-util-events-to-acorn": "^2.0.0",
- "micromark-util-symbol": "^2.0.0",
- "micromark-util-types": "^2.0.0"
- }
- },
- "node_modules/micromark-extension-mdx-jsx": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/micromark-extension-mdx-jsx/-/micromark-extension-mdx-jsx-3.0.2.tgz",
- "integrity": "sha512-e5+q1DjMh62LZAJOnDraSSbDMvGJ8x3cbjygy2qFEi7HCeUT4BDKCvMozPozcD6WmOt6sVvYDNBKhFSz3kjOVQ==",
- "dependencies": {
- "@types/estree": "^1.0.0",
- "devlop": "^1.0.0",
- "estree-util-is-identifier-name": "^3.0.0",
- "micromark-factory-mdx-expression": "^2.0.0",
- "micromark-factory-space": "^2.0.0",
- "micromark-util-character": "^2.0.0",
- "micromark-util-events-to-acorn": "^2.0.0",
- "micromark-util-symbol": "^2.0.0",
- "micromark-util-types": "^2.0.0",
- "vfile-message": "^4.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/micromark-extension-mdx-md": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/micromark-extension-mdx-md/-/micromark-extension-mdx-md-2.0.0.tgz",
- "integrity": "sha512-EpAiszsB3blw4Rpba7xTOUptcFeBFi+6PY8VnJ2hhimH+vCQDirWgsMpz7w1XcZE7LVrSAUGb9VJpG9ghlYvYQ==",
- "dependencies": {
- "micromark-util-types": "^2.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/micromark-extension-mdxjs": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/micromark-extension-mdxjs/-/micromark-extension-mdxjs-3.0.0.tgz",
- "integrity": "sha512-A873fJfhnJ2siZyUrJ31l34Uqwy4xIFmvPY1oj+Ean5PHcPBYzEsvqvWGaWcfEIr11O5Dlw3p2y0tZWpKHDejQ==",
- "dependencies": {
- "acorn": "^8.0.0",
- "acorn-jsx": "^5.0.0",
- "micromark-extension-mdx-expression": "^3.0.0",
- "micromark-extension-mdx-jsx": "^3.0.0",
- "micromark-extension-mdx-md": "^2.0.0",
- "micromark-extension-mdxjs-esm": "^3.0.0",
- "micromark-util-combine-extensions": "^2.0.0",
- "micromark-util-types": "^2.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/micromark-extension-mdxjs-esm": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/micromark-extension-mdxjs-esm/-/micromark-extension-mdxjs-esm-3.0.0.tgz",
- "integrity": "sha512-DJFl4ZqkErRpq/dAPyeWp15tGrcrrJho1hKK5uBS70BCtfrIFg81sqcTVu3Ta+KD1Tk5vAtBNElWxtAa+m8K9A==",
- "dependencies": {
- "@types/estree": "^1.0.0",
- "devlop": "^1.0.0",
- "micromark-core-commonmark": "^2.0.0",
- "micromark-util-character": "^2.0.0",
- "micromark-util-events-to-acorn": "^2.0.0",
- "micromark-util-symbol": "^2.0.0",
- "micromark-util-types": "^2.0.0",
- "unist-util-position-from-estree": "^2.0.0",
- "vfile-message": "^4.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/micromark-factory-destination": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/micromark-factory-destination/-/micromark-factory-destination-2.0.1.tgz",
- "integrity": "sha512-Xe6rDdJlkmbFRExpTOmRj9N3MaWmbAgdpSrBQvCFqhezUn4AHqJHbaEnfbVYYiexVSs//tqOdY/DxhjdCiJnIA==",
- "funding": [
- {
- "type": "GitHub Sponsors",
- "url": "https://github.com/sponsors/unifiedjs"
- },
- {
- "type": "OpenCollective",
- "url": "https://opencollective.com/unified"
- }
- ],
- "dependencies": {
- "micromark-util-character": "^2.0.0",
- "micromark-util-symbol": "^2.0.0",
- "micromark-util-types": "^2.0.0"
- }
- },
- "node_modules/micromark-factory-label": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/micromark-factory-label/-/micromark-factory-label-2.0.1.tgz",
- "integrity": "sha512-VFMekyQExqIW7xIChcXn4ok29YE3rnuyveW3wZQWWqF4Nv9Wk5rgJ99KzPvHjkmPXF93FXIbBp6YdW3t71/7Vg==",
- "funding": [
- {
- "type": "GitHub Sponsors",
- "url": "https://github.com/sponsors/unifiedjs"
- },
- {
- "type": "OpenCollective",
- "url": "https://opencollective.com/unified"
- }
- ],
- "dependencies": {
- "devlop": "^1.0.0",
- "micromark-util-character": "^2.0.0",
- "micromark-util-symbol": "^2.0.0",
- "micromark-util-types": "^2.0.0"
- }
- },
- "node_modules/micromark-factory-mdx-expression": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/micromark-factory-mdx-expression/-/micromark-factory-mdx-expression-2.0.3.tgz",
- "integrity": "sha512-kQnEtA3vzucU2BkrIa8/VaSAsP+EJ3CKOvhMuJgOEGg9KDC6OAY6nSnNDVRiVNRqj7Y4SlSzcStaH/5jge8JdQ==",
- "funding": [
- {
- "type": "GitHub Sponsors",
- "url": "https://github.com/sponsors/unifiedjs"
- },
- {
- "type": "OpenCollective",
- "url": "https://opencollective.com/unified"
- }
- ],
- "dependencies": {
- "@types/estree": "^1.0.0",
- "devlop": "^1.0.0",
- "micromark-factory-space": "^2.0.0",
- "micromark-util-character": "^2.0.0",
- "micromark-util-events-to-acorn": "^2.0.0",
- "micromark-util-symbol": "^2.0.0",
- "micromark-util-types": "^2.0.0",
- "unist-util-position-from-estree": "^2.0.0",
- "vfile-message": "^4.0.0"
- }
- },
- "node_modules/micromark-factory-space": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.0.1.tgz",
- "integrity": "sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg==",
- "funding": [
- {
- "type": "GitHub Sponsors",
- "url": "https://github.com/sponsors/unifiedjs"
- },
- {
- "type": "OpenCollective",
- "url": "https://opencollective.com/unified"
- }
- ],
- "dependencies": {
- "micromark-util-character": "^2.0.0",
- "micromark-util-types": "^2.0.0"
- }
- },
- "node_modules/micromark-factory-title": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/micromark-factory-title/-/micromark-factory-title-2.0.1.tgz",
- "integrity": "sha512-5bZ+3CjhAd9eChYTHsjy6TGxpOFSKgKKJPJxr293jTbfry2KDoWkhBb6TcPVB4NmzaPhMs1Frm9AZH7OD4Cjzw==",
- "funding": [
- {
- "type": "GitHub Sponsors",
- "url": "https://github.com/sponsors/unifiedjs"
- },
- {
- "type": "OpenCollective",
- "url": "https://opencollective.com/unified"
- }
- ],
- "dependencies": {
- "micromark-factory-space": "^2.0.0",
- "micromark-util-character": "^2.0.0",
- "micromark-util-symbol": "^2.0.0",
- "micromark-util-types": "^2.0.0"
- }
- },
- "node_modules/micromark-factory-whitespace": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/micromark-factory-whitespace/-/micromark-factory-whitespace-2.0.1.tgz",
- "integrity": "sha512-Ob0nuZ3PKt/n0hORHyvoD9uZhr+Za8sFoP+OnMcnWK5lngSzALgQYKMr9RJVOWLqQYuyn6ulqGWSXdwf6F80lQ==",
- "funding": [
- {
- "type": "GitHub Sponsors",
- "url": "https://github.com/sponsors/unifiedjs"
- },
- {
- "type": "OpenCollective",
- "url": "https://opencollective.com/unified"
- }
- ],
- "dependencies": {
- "micromark-factory-space": "^2.0.0",
- "micromark-util-character": "^2.0.0",
- "micromark-util-symbol": "^2.0.0",
- "micromark-util-types": "^2.0.0"
- }
- },
- "node_modules/micromark-util-character": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz",
- "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==",
- "funding": [
- {
- "type": "GitHub Sponsors",
- "url": "https://github.com/sponsors/unifiedjs"
- },
- {
- "type": "OpenCollective",
- "url": "https://opencollective.com/unified"
- }
- ],
- "dependencies": {
- "micromark-util-symbol": "^2.0.0",
- "micromark-util-types": "^2.0.0"
- }
- },
- "node_modules/micromark-util-chunked": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/micromark-util-chunked/-/micromark-util-chunked-2.0.1.tgz",
- "integrity": "sha512-QUNFEOPELfmvv+4xiNg2sRYeS/P84pTW0TCgP5zc9FpXetHY0ab7SxKyAQCNCc1eK0459uoLI1y5oO5Vc1dbhA==",
- "funding": [
- {
- "type": "GitHub Sponsors",
- "url": "https://github.com/sponsors/unifiedjs"
- },
- {
- "type": "OpenCollective",
- "url": "https://opencollective.com/unified"
- }
- ],
- "dependencies": {
- "micromark-util-symbol": "^2.0.0"
- }
- },
- "node_modules/micromark-util-classify-character": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/micromark-util-classify-character/-/micromark-util-classify-character-2.0.1.tgz",
- "integrity": "sha512-K0kHzM6afW/MbeWYWLjoHQv1sgg2Q9EccHEDzSkxiP/EaagNzCm7T/WMKZ3rjMbvIpvBiZgwR3dKMygtA4mG1Q==",
- "funding": [
- {
- "type": "GitHub Sponsors",
- "url": "https://github.com/sponsors/unifiedjs"
- },
- {
- "type": "OpenCollective",
- "url": "https://opencollective.com/unified"
- }
- ],
- "dependencies": {
- "micromark-util-character": "^2.0.0",
- "micromark-util-symbol": "^2.0.0",
- "micromark-util-types": "^2.0.0"
- }
- },
- "node_modules/micromark-util-combine-extensions": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/micromark-util-combine-extensions/-/micromark-util-combine-extensions-2.0.1.tgz",
- "integrity": "sha512-OnAnH8Ujmy59JcyZw8JSbK9cGpdVY44NKgSM7E9Eh7DiLS2E9RNQf0dONaGDzEG9yjEl5hcqeIsj4hfRkLH/Bg==",
- "funding": [
- {
- "type": "GitHub Sponsors",
- "url": "https://github.com/sponsors/unifiedjs"
- },
- {
- "type": "OpenCollective",
- "url": "https://opencollective.com/unified"
- }
- ],
- "dependencies": {
- "micromark-util-chunked": "^2.0.0",
- "micromark-util-types": "^2.0.0"
- }
- },
- "node_modules/micromark-util-decode-numeric-character-reference": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/micromark-util-decode-numeric-character-reference/-/micromark-util-decode-numeric-character-reference-2.0.2.tgz",
- "integrity": "sha512-ccUbYk6CwVdkmCQMyr64dXz42EfHGkPQlBj5p7YVGzq8I7CtjXZJrubAYezf7Rp+bjPseiROqe7G6foFd+lEuw==",
- "funding": [
- {
- "type": "GitHub Sponsors",
- "url": "https://github.com/sponsors/unifiedjs"
- },
- {
- "type": "OpenCollective",
- "url": "https://opencollective.com/unified"
- }
- ],
- "dependencies": {
- "micromark-util-symbol": "^2.0.0"
- }
- },
- "node_modules/micromark-util-decode-string": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/micromark-util-decode-string/-/micromark-util-decode-string-2.0.1.tgz",
- "integrity": "sha512-nDV/77Fj6eH1ynwscYTOsbK7rR//Uj0bZXBwJZRfaLEJ1iGBR6kIfNmlNqaqJf649EP0F3NWNdeJi03elllNUQ==",
- "funding": [
- {
- "type": "GitHub Sponsors",
- "url": "https://github.com/sponsors/unifiedjs"
- },
- {
- "type": "OpenCollective",
- "url": "https://opencollective.com/unified"
- }
- ],
- "dependencies": {
- "decode-named-character-reference": "^1.0.0",
- "micromark-util-character": "^2.0.0",
- "micromark-util-decode-numeric-character-reference": "^2.0.0",
- "micromark-util-symbol": "^2.0.0"
- }
- },
- "node_modules/micromark-util-encode": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/micromark-util-encode/-/micromark-util-encode-2.0.1.tgz",
- "integrity": "sha512-c3cVx2y4KqUnwopcO9b/SCdo2O67LwJJ/UyqGfbigahfegL9myoEFoDYZgkT7f36T0bLrM9hZTAaAyH+PCAXjw==",
- "funding": [
- {
- "type": "GitHub Sponsors",
- "url": "https://github.com/sponsors/unifiedjs"
- },
- {
- "type": "OpenCollective",
- "url": "https://opencollective.com/unified"
- }
- ]
- },
- "node_modules/micromark-util-events-to-acorn": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/micromark-util-events-to-acorn/-/micromark-util-events-to-acorn-2.0.3.tgz",
- "integrity": "sha512-jmsiEIiZ1n7X1Rr5k8wVExBQCg5jy4UXVADItHmNk1zkwEVhBuIUKRu3fqv+hs4nxLISi2DQGlqIOGiFxgbfHg==",
- "funding": [
- {
- "type": "GitHub Sponsors",
- "url": "https://github.com/sponsors/unifiedjs"
- },
- {
- "type": "OpenCollective",
- "url": "https://opencollective.com/unified"
- }
- ],
- "dependencies": {
- "@types/estree": "^1.0.0",
- "@types/unist": "^3.0.0",
- "devlop": "^1.0.0",
- "estree-util-visit": "^2.0.0",
- "micromark-util-symbol": "^2.0.0",
- "micromark-util-types": "^2.0.0",
- "vfile-message": "^4.0.0"
- }
- },
- "node_modules/micromark-util-html-tag-name": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/micromark-util-html-tag-name/-/micromark-util-html-tag-name-2.0.1.tgz",
- "integrity": "sha512-2cNEiYDhCWKI+Gs9T0Tiysk136SnR13hhO8yW6BGNyhOC4qYFnwF1nKfD3HFAIXA5c45RrIG1ub11GiXeYd1xA==",
- "funding": [
- {
- "type": "GitHub Sponsors",
- "url": "https://github.com/sponsors/unifiedjs"
- },
- {
- "type": "OpenCollective",
- "url": "https://opencollective.com/unified"
- }
- ]
- },
- "node_modules/micromark-util-normalize-identifier": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/micromark-util-normalize-identifier/-/micromark-util-normalize-identifier-2.0.1.tgz",
- "integrity": "sha512-sxPqmo70LyARJs0w2UclACPUUEqltCkJ6PhKdMIDuJ3gSf/Q+/GIe3WKl0Ijb/GyH9lOpUkRAO2wp0GVkLvS9Q==",
- "funding": [
- {
- "type": "GitHub Sponsors",
- "url": "https://github.com/sponsors/unifiedjs"
- },
- {
- "type": "OpenCollective",
- "url": "https://opencollective.com/unified"
- }
- ],
- "dependencies": {
- "micromark-util-symbol": "^2.0.0"
- }
- },
- "node_modules/micromark-util-resolve-all": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/micromark-util-resolve-all/-/micromark-util-resolve-all-2.0.1.tgz",
- "integrity": "sha512-VdQyxFWFT2/FGJgwQnJYbe1jjQoNTS4RjglmSjTUlpUMa95Htx9NHeYW4rGDJzbjvCsl9eLjMQwGeElsqmzcHg==",
- "funding": [
- {
- "type": "GitHub Sponsors",
- "url": "https://github.com/sponsors/unifiedjs"
- },
- {
- "type": "OpenCollective",
- "url": "https://opencollective.com/unified"
- }
- ],
- "dependencies": {
- "micromark-util-types": "^2.0.0"
- }
- },
- "node_modules/micromark-util-sanitize-uri": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-2.0.1.tgz",
- "integrity": "sha512-9N9IomZ/YuGGZZmQec1MbgxtlgougxTodVwDzzEouPKo3qFWvymFHWcnDi2vzV1ff6kas9ucW+o3yzJK9YB1AQ==",
- "funding": [
- {
- "type": "GitHub Sponsors",
- "url": "https://github.com/sponsors/unifiedjs"
- },
- {
- "type": "OpenCollective",
- "url": "https://opencollective.com/unified"
- }
- ],
- "dependencies": {
- "micromark-util-character": "^2.0.0",
- "micromark-util-encode": "^2.0.0",
- "micromark-util-symbol": "^2.0.0"
- }
- },
- "node_modules/micromark-util-subtokenize": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/micromark-util-subtokenize/-/micromark-util-subtokenize-2.1.0.tgz",
- "integrity": "sha512-XQLu552iSctvnEcgXw6+Sx75GflAPNED1qx7eBJ+wydBb2KCbRZe+NwvIEEMM83uml1+2WSXpBAcp9IUCgCYWA==",
- "funding": [
- {
- "type": "GitHub Sponsors",
- "url": "https://github.com/sponsors/unifiedjs"
- },
- {
- "type": "OpenCollective",
- "url": "https://opencollective.com/unified"
- }
- ],
- "dependencies": {
- "devlop": "^1.0.0",
- "micromark-util-chunked": "^2.0.0",
- "micromark-util-symbol": "^2.0.0",
- "micromark-util-types": "^2.0.0"
- }
- },
- "node_modules/micromark-util-symbol": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz",
- "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==",
- "funding": [
- {
- "type": "GitHub Sponsors",
- "url": "https://github.com/sponsors/unifiedjs"
- },
- {
- "type": "OpenCollective",
- "url": "https://opencollective.com/unified"
- }
- ]
- },
- "node_modules/micromark-util-types": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-2.0.2.tgz",
- "integrity": "sha512-Yw0ECSpJoViF1qTU4DC6NwtC4aWGt1EkzaQB8KPPyCRR8z9TWeV0HbEFGTO+ZY1wB22zmxnJqhPyTpOVCpeHTA==",
- "funding": [
- {
- "type": "GitHub Sponsors",
- "url": "https://github.com/sponsors/unifiedjs"
- },
- {
- "type": "OpenCollective",
- "url": "https://opencollective.com/unified"
- }
- ]
- },
- "node_modules/micromatch": {
- "version": "4.0.8",
- "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz",
- "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==",
- "dependencies": {
- "braces": "^3.0.3",
- "picomatch": "^2.3.1"
- },
- "engines": {
- "node": ">=8.6"
- }
- },
- "node_modules/mimic-fn": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz",
- "integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==",
- "license": "MIT",
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/mimic-function": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/mimic-function/-/mimic-function-5.0.1.tgz",
- "integrity": "sha512-VP79XUPxV2CigYP3jWwAUFSku2aKqBH7uTAapFWCBqutsbmDo96KY5o8uh6U+/YSIn5OxJnXp73beVkpqMIGhA==",
- "engines": {
- "node": ">=18"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/minimatch": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
- "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
- "dependencies": {
- "brace-expansion": "^1.1.7"
- },
- "engines": {
- "node": "*"
- }
- },
- "node_modules/minimist": {
- "version": "1.2.8",
- "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz",
- "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==",
- "dev": true,
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/minipass": {
- "version": "7.1.2",
- "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz",
- "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==",
- "dev": true,
- "engines": {
- "node": ">=16 || 14 >=14.17"
- }
- },
- "node_modules/mj-context-menu": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/mj-context-menu/-/mj-context-menu-0.6.1.tgz",
- "integrity": "sha512-7NO5s6n10TIV96d4g2uDpG7ZDpIhMh0QNfGdJw/W47JswFcosz457wqz/b5sAKvl12sxINGFCn80NZHKwxQEXA=="
- },
- "node_modules/mlly": {
- "version": "1.7.4",
- "resolved": "https://registry.npmjs.org/mlly/-/mlly-1.7.4.tgz",
- "integrity": "sha512-qmdSIPC4bDJXgZTCR7XosJiNKySV7O215tsPtDN9iEO/7q/76b/ijtgRu/+epFXSJhijtTCCGp3DWS549P3xKw==",
- "dependencies": {
- "acorn": "^8.14.0",
- "pathe": "^2.0.1",
- "pkg-types": "^1.3.0",
- "ufo": "^1.5.4"
- }
- },
- "node_modules/mlly/node_modules/confbox": {
- "version": "0.1.8",
- "resolved": "https://registry.npmjs.org/confbox/-/confbox-0.1.8.tgz",
- "integrity": "sha512-RMtmw0iFkeR4YV+fUOSucriAQNb9g8zFR52MWCtl+cCZOFRNL6zeB395vPzFhEjjn4fMxXudmELnl/KF/WrK6w=="
- },
- "node_modules/mlly/node_modules/pkg-types": {
- "version": "1.3.1",
- "resolved": "https://registry.npmjs.org/pkg-types/-/pkg-types-1.3.1.tgz",
- "integrity": "sha512-/Jm5M4RvtBFVkKWRu2BLUTNP8/M2a+UwuAX+ae4770q1qVGtfjG+WTCupoZixokjmHiry8uI+dlY8KXYV5HVVQ==",
- "dependencies": {
- "confbox": "^0.1.8",
- "mlly": "^1.7.4",
- "pathe": "^2.0.1"
- }
- },
- "node_modules/ms": {
- "version": "2.1.3",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
- "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="
- },
- "node_modules/mz": {
- "version": "2.7.0",
- "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz",
- "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==",
- "dev": true,
- "dependencies": {
- "any-promise": "^1.0.0",
- "object-assign": "^4.0.1",
- "thenify-all": "^1.0.0"
- }
- },
- "node_modules/nanoid": {
- "version": "3.3.11",
- "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz",
- "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==",
- "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/natural-compare": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz",
- "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw=="
- },
- "node_modules/negotiator": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-1.0.0.tgz",
- "integrity": "sha512-8Ofs/AUQh8MaEcrlq5xOX0CQ9ypTF5dl78mjlMNfOK08fzpgTHQRQPBxcPlEtIw0yRpws+Zo/3r+5WRby7u3Gg==",
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/next": {
- "version": "14.2.26",
- "resolved": "https://registry.npmjs.org/next/-/next-14.2.26.tgz",
- "integrity": "sha512-b81XSLihMwCfwiUVRRja3LphLo4uBBMZEzBBWMaISbKTwOmq3wPknIETy/8000tr7Gq4WmbuFYPS7jOYIf+ZJw==",
- "dependencies": {
- "@next/env": "14.2.26",
- "@swc/helpers": "0.5.5",
- "busboy": "1.6.0",
- "caniuse-lite": "^1.0.30001579",
- "graceful-fs": "^4.2.11",
- "postcss": "8.4.31",
- "styled-jsx": "5.1.1"
- },
- "bin": {
- "next": "dist/bin/next"
- },
- "engines": {
- "node": ">=18.17.0"
- },
- "optionalDependencies": {
- "@next/swc-darwin-arm64": "14.2.26",
- "@next/swc-darwin-x64": "14.2.26",
- "@next/swc-linux-arm64-gnu": "14.2.26",
- "@next/swc-linux-arm64-musl": "14.2.26",
- "@next/swc-linux-x64-gnu": "14.2.26",
- "@next/swc-linux-x64-musl": "14.2.26",
- "@next/swc-win32-arm64-msvc": "14.2.26",
- "@next/swc-win32-ia32-msvc": "14.2.26",
- "@next/swc-win32-x64-msvc": "14.2.26"
- },
- "peerDependencies": {
- "@opentelemetry/api": "^1.1.0",
- "@playwright/test": "^1.41.2",
- "react": "^18.2.0",
- "react-dom": "^18.2.0",
- "sass": "^1.3.0"
- },
- "peerDependenciesMeta": {
- "@opentelemetry/api": {
- "optional": true
- },
- "@playwright/test": {
- "optional": true
- },
- "sass": {
- "optional": true
- }
- }
- },
- "node_modules/next-sitemap": {
- "version": "4.2.3",
- "resolved": "https://registry.npmjs.org/next-sitemap/-/next-sitemap-4.2.3.tgz",
- "integrity": "sha512-vjdCxeDuWDzldhCnyFCQipw5bfpl4HmZA7uoo3GAaYGjGgfL4Cxb1CiztPuWGmS+auYs7/8OekRS8C2cjdAsjQ==",
- "dev": true,
- "funding": [
- {
- "url": "https://github.com/iamvishnusankar/next-sitemap.git"
- }
- ],
- "dependencies": {
- "@corex/deepmerge": "^4.0.43",
- "@next/env": "^13.4.3",
- "fast-glob": "^3.2.12",
- "minimist": "^1.2.8"
- },
- "bin": {
- "next-sitemap": "bin/next-sitemap.mjs",
- "next-sitemap-cjs": "bin/next-sitemap.cjs"
- },
- "engines": {
- "node": ">=14.18"
- },
- "peerDependencies": {
- "next": "*"
- }
- },
- "node_modules/next-sitemap/node_modules/@next/env": {
- "version": "13.5.11",
- "resolved": "https://registry.npmjs.org/@next/env/-/env-13.5.11.tgz",
- "integrity": "sha512-fbb2C7HChgM7CemdCY+y3N1n8pcTKdqtQLbC7/EQtPdLvlMUT9JX/dBYl8MMZAtYG4uVMyPFHXckb68q/NRwqg==",
- "dev": true
- },
- "node_modules/next-themes": {
- "version": "0.4.6",
- "resolved": "https://registry.npmjs.org/next-themes/-/next-themes-0.4.6.tgz",
- "integrity": "sha512-pZvgD5L0IEvX5/9GWyHMf3m8BKiVQwsCMHfoFosXtXBMnaS0ZnIJ9ST4b4NqLVKDEm8QBxoNNGNaBv2JNF6XNA==",
- "peerDependencies": {
- "react": "^16.8 || ^17 || ^18 || ^19 || ^19.0.0-rc",
- "react-dom": "^16.8 || ^17 || ^18 || ^19 || ^19.0.0-rc"
- }
- },
- "node_modules/next/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/nextra": {
- "version": "3.3.1",
- "resolved": "https://registry.npmjs.org/nextra/-/nextra-3.3.1.tgz",
- "integrity": "sha512-jiwj+LfUPHHeAxJAEqFuglxnbjFgzAOnDWFsjv7iv3BWiX8OksDwd3I2Sv3j2zba00iIBDEPdNeylfzTtTLZVg==",
- "dependencies": {
- "@formatjs/intl-localematcher": "^0.5.4",
- "@headlessui/react": "^2.1.2",
- "@mdx-js/mdx": "^3.0.0",
- "@mdx-js/react": "^3.0.0",
- "@napi-rs/simple-git": "^0.1.9",
- "@shikijs/twoslash": "^1.0.0",
- "@theguild/remark-mermaid": "^0.1.3",
- "@theguild/remark-npm2yarn": "^0.3.2",
- "better-react-mathjax": "^2.0.3",
- "clsx": "^2.0.0",
- "estree-util-to-js": "^2.0.0",
- "estree-util-value-to-estree": "^3.0.1",
- "github-slugger": "^2.0.0",
- "graceful-fs": "^4.2.11",
- "gray-matter": "^4.0.3",
- "hast-util-to-estree": "^3.1.0",
- "katex": "^0.16.9",
- "mdast-util-from-markdown": "^2.0.1",
- "mdast-util-gfm": "^3.0.0",
- "mdast-util-to-hast": "^13.2.0",
- "negotiator": "^1.0.0",
- "p-limit": "^6.0.0",
- "react-medium-image-zoom": "^5.2.12",
- "rehype-katex": "^7.0.0",
- "rehype-pretty-code": "0.14.0",
- "rehype-raw": "^7.0.0",
- "remark-frontmatter": "^5.0.0",
- "remark-gfm": "^4.0.0",
- "remark-math": "^6.0.0",
- "remark-reading-time": "^2.0.1",
- "remark-smartypants": "^3.0.0",
- "shiki": "^1.0.0",
- "slash": "^5.1.0",
- "title": "^4.0.0",
- "unist-util-remove": "^4.0.0",
- "unist-util-visit": "^5.0.0",
- "yaml": "^2.3.2",
- "zod": "^3.22.3",
- "zod-validation-error": "^3.0.0"
- },
- "engines": {
- "node": ">=18"
- },
- "peerDependencies": {
- "next": ">=13",
- "react": ">=18",
- "react-dom": ">=18"
- }
- },
- "node_modules/nextra-theme-docs": {
- "version": "3.3.1",
- "resolved": "https://registry.npmjs.org/nextra-theme-docs/-/nextra-theme-docs-3.3.1.tgz",
- "integrity": "sha512-P305m2UcW2IDyQhjrcAu0qpdPArikofinABslUCAyixYShsmcdDRUhIMd4QBHYru4gQuVjGWX9PhWZZCbNvzDQ==",
- "dependencies": {
- "@headlessui/react": "^2.1.2",
- "clsx": "^2.0.0",
- "escape-string-regexp": "^5.0.0",
- "flexsearch": "^0.7.43",
- "next-themes": "^0.4.0",
- "scroll-into-view-if-needed": "^3.1.0",
- "zod": "^3.22.3"
- },
- "peerDependencies": {
- "next": ">=13",
- "nextra": "3.3.1",
- "react": ">=18",
- "react-dom": ">=18"
- }
- },
- "node_modules/nextra/node_modules/p-limit": {
- "version": "6.2.0",
- "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-6.2.0.tgz",
- "integrity": "sha512-kuUqqHNUqoIWp/c467RI4X6mmyuojY5jGutNU0wVTmEOOfcuwLqyMVoAi9MKi2Ak+5i9+nhmrK4ufZE8069kHA==",
- "dependencies": {
- "yocto-queue": "^1.1.1"
- },
- "engines": {
- "node": ">=18"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/nextra/node_modules/slash": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/slash/-/slash-5.1.0.tgz",
- "integrity": "sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg==",
- "engines": {
- "node": ">=14.16"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/nextra/node_modules/yocto-queue": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.2.1.tgz",
- "integrity": "sha512-AyeEbWOu/TAXdxlV9wmGcR0+yh2j3vYPGOECcIj2S7MkrLyC7ne+oye2BKTItt0ii2PHk4cDy+95+LshzbXnGg==",
- "engines": {
- "node": ">=12.20"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/nlcst-to-string": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/nlcst-to-string/-/nlcst-to-string-4.0.0.tgz",
- "integrity": "sha512-YKLBCcUYKAg0FNlOBT6aI91qFmSiFKiluk655WzPF+DDMA02qIyy8uiRqI8QXtcFpEvll12LpL5MXqEmAZ+dcA==",
- "dependencies": {
- "@types/nlcst": "^2.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/node-int64": {
- "version": "0.4.0",
- "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz",
- "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw=="
- },
- "node_modules/node-releases": {
- "version": "2.0.19",
- "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.19.tgz",
- "integrity": "sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw=="
- },
- "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/normalize-range": {
- "version": "0.1.2",
- "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz",
- "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==",
- "dev": true,
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/npm-run-path": {
- "version": "5.3.0",
- "license": "MIT",
- "dependencies": {
- "path-key": "^4.0.0"
- },
- "engines": {
- "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/npm-to-yarn": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/npm-to-yarn/-/npm-to-yarn-3.0.1.tgz",
- "integrity": "sha512-tt6PvKu4WyzPwWUzy/hvPFqn+uwXO0K1ZHka8az3NnrhWJDmSqI8ncWq0fkL0k/lmmi5tAC11FXwXuh0rFbt1A==",
- "engines": {
- "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
- },
- "funding": {
- "url": "https://github.com/nebrelbug/npm-to-yarn?sponsor=1"
- }
- },
- "node_modules/oauth4webapi": {
- "version": "3.5.0",
- "resolved": "https://registry.npmjs.org/oauth4webapi/-/oauth4webapi-3.5.0.tgz",
- "integrity": "sha512-DF3mLWNuxPkxJkHmWxbSFz4aE5CjWOsm465VBfBdWzmzX4Mg3vF8icxK+iKqfdWrIumBJ2TaoNQWx+SQc2bsPQ==",
- "funding": {
- "url": "https://github.com/sponsors/panva"
- }
- },
- "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==",
- "dev": true,
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/object-hash": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz",
- "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==",
- "dev": true,
- "engines": {
- "node": ">= 6"
- }
- },
- "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/oniguruma-to-es": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/oniguruma-to-es/-/oniguruma-to-es-2.3.0.tgz",
- "integrity": "sha512-bwALDxriqfKGfUufKGGepCzu9x7nJQuoRoAFp4AnwehhC2crqrDIAP/uN2qdlsAvSMpeRC3+Yzhqc7hLmle5+g==",
- "dependencies": {
- "emoji-regex-xs": "^1.0.0",
- "regex": "^5.1.1",
- "regex-recursion": "^5.1.1"
- }
- },
- "node_modules/p-limit": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz",
- "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==",
- "dependencies": {
- "yocto-queue": "^0.1.0"
- },
- "engines": {
- "node": ">=10"
- },
- "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-locate/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-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==",
- "dev": true
- },
- "node_modules/package-manager-detector": {
- "version": "0.2.11",
- "resolved": "https://registry.npmjs.org/package-manager-detector/-/package-manager-detector-0.2.11.tgz",
- "integrity": "sha512-BEnLolu+yuz22S56CU1SUKq3XC3PkwD5wv4ikR4MfGvnRVcmzXR9DwSlW2fEamyTPyXHomBJRzgapeuBvRNzJQ==",
- "dependencies": {
- "quansync": "^0.2.7"
- }
- },
- "node_modules/parse-entities": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/parse-entities/-/parse-entities-4.0.2.tgz",
- "integrity": "sha512-GG2AQYWoLgL877gQIKeRPGO1xF9+eG1ujIb5soS5gPvLQ1y2o8FL90w2QWNdf9I361Mpp7726c+lj3U0qK1uGw==",
- "dependencies": {
- "@types/unist": "^2.0.0",
- "character-entities-legacy": "^3.0.0",
- "character-reference-invalid": "^2.0.0",
- "decode-named-character-reference": "^1.0.0",
- "is-alphanumerical": "^2.0.0",
- "is-decimal": "^2.0.0",
- "is-hexadecimal": "^2.0.0"
- },
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/wooorm"
- }
- },
- "node_modules/parse-entities/node_modules/@types/unist": {
- "version": "2.0.11",
- "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.11.tgz",
- "integrity": "sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA=="
- },
- "node_modules/parse-json": {
- "version": "5.2.0",
- "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz",
- "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==",
- "dependencies": {
- "@babel/code-frame": "^7.0.0",
- "error-ex": "^1.3.1",
- "json-parse-even-better-errors": "^2.3.0",
- "lines-and-columns": "^1.1.6"
- },
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/parse-latin": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/parse-latin/-/parse-latin-7.0.0.tgz",
- "integrity": "sha512-mhHgobPPua5kZ98EF4HWiH167JWBfl4pvAIXXdbaVohtK7a6YBOy56kvhCqduqyo/f3yrHFWmqmiMg/BkBkYYQ==",
- "dependencies": {
- "@types/nlcst": "^2.0.0",
- "@types/unist": "^3.0.0",
- "nlcst-to-string": "^4.0.0",
- "unist-util-modify-children": "^4.0.0",
- "unist-util-visit-children": "^3.0.0",
- "vfile": "^6.0.0"
- },
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/wooorm"
- }
- },
- "node_modules/parse-numeric-range": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/parse-numeric-range/-/parse-numeric-range-1.3.0.tgz",
- "integrity": "sha512-twN+njEipszzlMJd4ONUYgSfZPDxgHhT9Ahed5uTigpQn90FggW4SA/AIPq/6a149fTbE9qBEcSwE3FAEp6wQQ=="
- },
- "node_modules/parse5": {
- "version": "7.2.1",
- "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.2.1.tgz",
- "integrity": "sha512-BuBYQYlv1ckiPdQi/ohiivi9Sagc9JG+Ozs0r7b/0iK3sKmrb0b9FdWdBbOdx6hBCM/F9Ir82ofnBhtZOjCRPQ==",
- "dependencies": {
- "entities": "^4.5.0"
- },
- "funding": {
- "url": "https://github.com/inikulin/parse5?sponsor=1"
- }
- },
- "node_modules/path-data-parser": {
- "version": "0.1.0",
- "resolved": "https://registry.npmjs.org/path-data-parser/-/path-data-parser-0.1.0.tgz",
- "integrity": "sha512-NOnmBpt5Y2RWbuv0LMzsayp3lVylAHLPUTut412ZA3l+C4uw4ZVkQbjShYCQ8TCpUMdPapr4YjUqLYD6v68j+w=="
- },
- "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-is-absolute": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
- "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/path-key": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz",
- "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==",
- "license": "MIT",
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "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": "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"
- }
- },
- "node_modules/path-scurry/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
- },
- "node_modules/pathe": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/pathe/-/pathe-2.0.3.tgz",
- "integrity": "sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w=="
- },
- "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/picomatch": {
- "version": "2.3.1",
- "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
- "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
- "engines": {
- "node": ">=8.6"
- },
- "funding": {
- "url": "https://github.com/sponsors/jonschlinkert"
- }
- },
- "node_modules/pidtree": {
- "version": "0.6.0",
- "license": "MIT",
- "bin": {
- "pidtree": "bin/pidtree.js"
- },
- "engines": {
- "node": ">=0.10"
- }
- },
- "node_modules/pify": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
- "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==",
- "dev": true,
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/pirates": {
- "version": "4.0.7",
- "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.7.tgz",
- "integrity": "sha512-TfySrs/5nm8fQJDcBDuUng3VOUKsd7S+zqvbOTiGXHfxX4wK31ard+hoNuvkicM/2YFzlpDgABOevKSsB4G/FA==",
- "engines": {
- "node": ">= 6"
- }
- },
- "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/pkg-types": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/pkg-types/-/pkg-types-2.1.0.tgz",
- "integrity": "sha512-wmJwA+8ihJixSoHKxZJRBQG1oY8Yr9pGLzRmSsNms0iNWyHHAlZCa7mmKiFR10YPZuz/2k169JiS/inOjBCZ2A==",
- "dependencies": {
- "confbox": "^0.2.1",
- "exsolve": "^1.0.1",
- "pathe": "^2.0.3"
- }
- },
- "node_modules/points-on-curve": {
- "version": "0.2.0",
- "resolved": "https://registry.npmjs.org/points-on-curve/-/points-on-curve-0.2.0.tgz",
- "integrity": "sha512-0mYKnYYe9ZcqMCWhUjItv/oHjvgEsfKvnUTg8sAtnHr3GVy7rGkXCb6d5cSyqrWqL4k81b9CPg3urd+T7aop3A=="
- },
- "node_modules/points-on-path": {
- "version": "0.2.1",
- "resolved": "https://registry.npmjs.org/points-on-path/-/points-on-path-0.2.1.tgz",
- "integrity": "sha512-25ClnWWuw7JbWZcgqY/gJ4FQWadKxGWk+3kR/7kD0tCaDtPPMj7oHu2ToLaVhfpnHrZzYby2w6tUA0eOIuUg8g==",
- "dependencies": {
- "path-data-parser": "0.1.0",
- "points-on-curve": "0.2.0"
- }
- },
- "node_modules/postcss": {
- "version": "8.5.3",
- "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.3.tgz",
- "integrity": "sha512-dle9A3yYxlBSrt8Fu+IpjGT8SY8hN0mlaA6GY8t0P5PjIOZemULz/E2Bnm/2dcUOena75OTNkHI76uZBNUUq3A==",
- "dev": true,
- "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.8",
- "picocolors": "^1.1.1",
- "source-map-js": "^1.2.1"
- },
- "engines": {
- "node": "^10 || ^12 || >=14"
- }
- },
- "node_modules/postcss-import": {
- "version": "15.1.0",
- "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-15.1.0.tgz",
- "integrity": "sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==",
- "dev": true,
- "dependencies": {
- "postcss-value-parser": "^4.0.0",
- "read-cache": "^1.0.0",
- "resolve": "^1.1.7"
- },
- "engines": {
- "node": ">=14.0.0"
- },
- "peerDependencies": {
- "postcss": "^8.0.0"
- }
- },
- "node_modules/postcss-js": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/postcss-js/-/postcss-js-4.0.1.tgz",
- "integrity": "sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==",
- "dev": true,
- "dependencies": {
- "camelcase-css": "^2.0.1"
- },
- "engines": {
- "node": "^12 || ^14 || >= 16"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/postcss/"
- },
- "peerDependencies": {
- "postcss": "^8.4.21"
- }
- },
- "node_modules/postcss-load-config": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-4.0.2.tgz",
- "integrity": "sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==",
- "dev": true,
- "funding": [
- {
- "type": "opencollective",
- "url": "https://opencollective.com/postcss/"
- },
- {
- "type": "github",
- "url": "https://github.com/sponsors/ai"
- }
- ],
- "dependencies": {
- "lilconfig": "^3.0.0",
- "yaml": "^2.3.4"
- },
- "engines": {
- "node": ">= 14"
- },
- "peerDependencies": {
- "postcss": ">=8.0.9",
- "ts-node": ">=9.0.0"
- },
- "peerDependenciesMeta": {
- "postcss": {
- "optional": true
- },
- "ts-node": {
- "optional": true
- }
- }
- },
- "node_modules/postcss-nested": {
- "version": "6.2.0",
- "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.2.0.tgz",
- "integrity": "sha512-HQbt28KulC5AJzG+cZtj9kvKB93CFCdLvog1WFLf1D+xmMvPGlBstkpTEZfK5+AN9hfJocyBFCNiqyS48bpgzQ==",
- "dev": true,
- "funding": [
- {
- "type": "opencollective",
- "url": "https://opencollective.com/postcss/"
- },
- {
- "type": "github",
- "url": "https://github.com/sponsors/ai"
- }
- ],
- "dependencies": {
- "postcss-selector-parser": "^6.1.1"
- },
- "engines": {
- "node": ">=12.0"
- },
- "peerDependencies": {
- "postcss": "^8.2.14"
- }
- },
- "node_modules/postcss-selector-parser": {
- "version": "6.1.2",
- "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.2.tgz",
- "integrity": "sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==",
- "dev": true,
- "dependencies": {
- "cssesc": "^3.0.0",
- "util-deprecate": "^1.0.2"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/postcss-value-parser": {
- "version": "4.2.0",
- "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz",
- "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==",
- "dev": true
- },
- "node_modules/prettier": {
- "version": "3.5.3",
- "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.5.3.tgz",
- "integrity": "sha512-QQtaxnoDJeAkDvDKWCLiwIXkTgRhwYDEQCghU9Z6q03iyek/rxRh/2lC3HB7P8sWT2xC/y5JDctPLBIGzHKbhw==",
- "dev": true,
- "bin": {
- "prettier": "bin/prettier.cjs"
- },
- "engines": {
- "node": ">=14"
- },
- "funding": {
- "url": "https://github.com/prettier/prettier?sponsor=1"
- }
- },
- "node_modules/pretty-format": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz",
- "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==",
- "dependencies": {
- "@jest/schemas": "^29.6.3",
- "ansi-styles": "^5.0.0",
- "react-is": "^18.0.0"
- },
- "engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
- }
- },
- "node_modules/pretty-format/node_modules/ansi-styles": {
- "version": "5.2.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz",
- "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==",
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/chalk/ansi-styles?sponsor=1"
- }
- },
- "node_modules/prismjs": {
- "version": "1.30.0",
- "resolved": "https://registry.npmjs.org/prismjs/-/prismjs-1.30.0.tgz",
- "integrity": "sha512-DEvV2ZF2r2/63V+tK8hQvrR2ZGn10srHbXviTlcv7Kpzw8jWiNTqbVgjO3IY8RxrrOUF8VPMQQFysYYYv0YZxw==",
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/prompts": {
- "version": "2.4.2",
- "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz",
- "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==",
- "dependencies": {
- "kleur": "^3.0.3",
- "sisteransi": "^1.0.5"
- },
- "engines": {
- "node": ">= 6"
- }
- },
- "node_modules/property-information": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/property-information/-/property-information-7.0.0.tgz",
- "integrity": "sha512-7D/qOz/+Y4X/rzSB6jKxKUsQnphO046ei8qxG59mtM3RG3DHgTK81HrxrmoDVINJb8NKT5ZsRbwHvQ6B68Iyhg==",
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/wooorm"
- }
- },
- "node_modules/pure-rand": {
- "version": "6.1.0",
- "resolved": "https://registry.npmjs.org/pure-rand/-/pure-rand-6.1.0.tgz",
- "integrity": "sha512-bVWawvoZoBYpp6yIoQtQXHZjmz35RSVHnUOTefl8Vcjr8snTPY1wnpSPMWekcFwbxI6gtmT7rSYPFvz71ldiOA==",
- "funding": [
- {
- "type": "individual",
- "url": "https://github.com/sponsors/dubzzz"
- },
- {
- "type": "opencollective",
- "url": "https://opencollective.com/fast-check"
- }
- ]
- },
- "node_modules/quansync": {
- "version": "0.2.10",
- "resolved": "https://registry.npmjs.org/quansync/-/quansync-0.2.10.tgz",
- "integrity": "sha512-t41VRkMYbkHyCYmOvx/6URnN80H7k4X0lLdBMGsz+maAwrJQYB1djpV6vHrQIBE0WBSGqhtEHrK9U3DWWH8v7A==",
- "funding": [
- {
- "type": "individual",
- "url": "https://github.com/sponsors/antfu"
- },
- {
- "type": "individual",
- "url": "https://github.com/sponsors/sxzz"
- }
- ]
- },
- "node_modules/queue-microtask": {
- "version": "1.2.3",
- "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz",
- "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==",
- "dev": true,
- "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/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": "18.3.1",
- "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz",
- "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg=="
- },
- "node_modules/react-markdown": {
- "version": "9.1.0",
- "resolved": "https://registry.npmjs.org/react-markdown/-/react-markdown-9.1.0.tgz",
- "integrity": "sha512-xaijuJB0kzGiUdG7nc2MOMDUDBWPyGAjZtUrow9XxUeua8IqeP+VlIfAZ3bphpcLTnSZXz6z9jcVC/TCwbfgdw==",
- "dependencies": {
- "@types/hast": "^3.0.0",
- "@types/mdast": "^4.0.0",
- "devlop": "^1.0.0",
- "hast-util-to-jsx-runtime": "^2.0.0",
- "html-url-attributes": "^3.0.0",
- "mdast-util-to-hast": "^13.0.0",
- "remark-parse": "^11.0.0",
- "remark-rehype": "^11.0.0",
- "unified": "^11.0.0",
- "unist-util-visit": "^5.0.0",
- "vfile": "^6.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- },
- "peerDependencies": {
- "@types/react": ">=18",
- "react": ">=18"
- }
- },
- "node_modules/react-medium-image-zoom": {
- "version": "5.2.14",
- "resolved": "https://registry.npmjs.org/react-medium-image-zoom/-/react-medium-image-zoom-5.2.14.tgz",
- "integrity": "sha512-nfTVYcAUnBzXQpPDcZL+cG/e6UceYUIG+zDcnemL7jtAqbJjVVkA85RgneGtJeni12dTyiRPZVM6Szkmwd/o8w==",
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/rpearce"
- }
- ],
- "peerDependencies": {
- "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0",
- "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0"
- }
- },
- "node_modules/read-cache": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz",
- "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==",
- "dev": true,
- "dependencies": {
- "pify": "^2.3.0"
- }
- },
- "node_modules/readdirp": {
- "version": "3.6.0",
- "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz",
- "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==",
- "dev": true,
- "dependencies": {
- "picomatch": "^2.2.1"
- },
- "engines": {
- "node": ">=8.10.0"
- }
- },
- "node_modules/reading-time": {
- "version": "1.5.0",
- "resolved": "https://registry.npmjs.org/reading-time/-/reading-time-1.5.0.tgz",
- "integrity": "sha512-onYyVhBNr4CmAxFsKS7bz+uTLRakypIe4R+5A824vBSkQy/hB3fZepoVEf8OVAxzLvK+H/jm9TzpI3ETSm64Kg=="
- },
- "node_modules/recma-build-jsx": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/recma-build-jsx/-/recma-build-jsx-1.0.0.tgz",
- "integrity": "sha512-8GtdyqaBcDfva+GUKDr3nev3VpKAhup1+RvkMvUxURHpW7QyIvk9F5wz7Vzo06CEMSilw6uArgRqhpiUcWp8ew==",
- "dependencies": {
- "@types/estree": "^1.0.0",
- "estree-util-build-jsx": "^3.0.0",
- "vfile": "^6.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/recma-jsx": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/recma-jsx/-/recma-jsx-1.0.0.tgz",
- "integrity": "sha512-5vwkv65qWwYxg+Atz95acp8DMu1JDSqdGkA2Of1j6rCreyFUE/gp15fC8MnGEuG1W68UKjM6x6+YTWIh7hZM/Q==",
- "dependencies": {
- "acorn-jsx": "^5.0.0",
- "estree-util-to-js": "^2.0.0",
- "recma-parse": "^1.0.0",
- "recma-stringify": "^1.0.0",
- "unified": "^11.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/recma-parse": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/recma-parse/-/recma-parse-1.0.0.tgz",
- "integrity": "sha512-OYLsIGBB5Y5wjnSnQW6t3Xg7q3fQ7FWbw/vcXtORTnyaSFscOtABg+7Pnz6YZ6c27fG1/aN8CjfwoUEUIdwqWQ==",
- "dependencies": {
- "@types/estree": "^1.0.0",
- "esast-util-from-js": "^2.0.0",
- "unified": "^11.0.0",
- "vfile": "^6.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/recma-stringify": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/recma-stringify/-/recma-stringify-1.0.0.tgz",
- "integrity": "sha512-cjwII1MdIIVloKvC9ErQ+OgAtwHBmcZ0Bg4ciz78FtbT8In39aAYbaA7zvxQ61xVMSPE8WxhLwLbhif4Js2C+g==",
- "dependencies": {
- "@types/estree": "^1.0.0",
- "estree-util-to-js": "^2.0.0",
- "unified": "^11.0.0",
- "vfile": "^6.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/regex": {
- "version": "5.1.1",
- "resolved": "https://registry.npmjs.org/regex/-/regex-5.1.1.tgz",
- "integrity": "sha512-dN5I359AVGPnwzJm2jN1k0W9LPZ+ePvoOeVMMfqIMFz53sSwXkxaJoxr50ptnsC771lK95BnTrVSZxq0b9yCGw==",
- "dependencies": {
- "regex-utilities": "^2.3.0"
- }
- },
- "node_modules/regex-recursion": {
- "version": "5.1.1",
- "resolved": "https://registry.npmjs.org/regex-recursion/-/regex-recursion-5.1.1.tgz",
- "integrity": "sha512-ae7SBCbzVNrIjgSbh7wMznPcQel1DNlDtzensnFxpiNpXt1U2ju/bHugH422r+4LAVS1FpW1YCwilmnNsjum9w==",
- "dependencies": {
- "regex": "^5.1.1",
- "regex-utilities": "^2.3.0"
- }
- },
- "node_modules/regex-utilities": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/regex-utilities/-/regex-utilities-2.3.0.tgz",
- "integrity": "sha512-8VhliFJAWRaUiVvREIiW2NXXTmHs4vMNnSzuJVhscgmGav3g9VDxLrQndI3dZZVVdp0ZO/5v0xmX516/7M9cng=="
- },
- "node_modules/rehype-katex": {
- "version": "7.0.1",
- "resolved": "https://registry.npmjs.org/rehype-katex/-/rehype-katex-7.0.1.tgz",
- "integrity": "sha512-OiM2wrZ/wuhKkigASodFoo8wimG3H12LWQaH8qSPVJn9apWKFSH3YOCtbKpBorTVw/eI7cuT21XBbvwEswbIOA==",
- "dependencies": {
- "@types/hast": "^3.0.0",
- "@types/katex": "^0.16.0",
- "hast-util-from-html-isomorphic": "^2.0.0",
- "hast-util-to-text": "^4.0.0",
- "katex": "^0.16.0",
- "unist-util-visit-parents": "^6.0.0",
- "vfile": "^6.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/rehype-parse": {
- "version": "9.0.1",
- "resolved": "https://registry.npmjs.org/rehype-parse/-/rehype-parse-9.0.1.tgz",
- "integrity": "sha512-ksCzCD0Fgfh7trPDxr2rSylbwq9iYDkSn8TCDmEJ49ljEUBxDVCzCHv7QNzZOfODanX4+bWQ4WZqLCRWYLfhag==",
- "dependencies": {
- "@types/hast": "^3.0.0",
- "hast-util-from-html": "^2.0.0",
- "unified": "^11.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/rehype-pretty-code": {
- "version": "0.14.0",
- "resolved": "https://registry.npmjs.org/rehype-pretty-code/-/rehype-pretty-code-0.14.0.tgz",
- "integrity": "sha512-hBeKF/Wkkf3zyUS8lal9RCUuhypDWLQc+h9UrP9Pav25FUm/AQAVh4m5gdvJxh4Oz+U+xKvdsV01p1LdvsZTiQ==",
- "dependencies": {
- "@types/hast": "^3.0.4",
- "hast-util-to-string": "^3.0.0",
- "parse-numeric-range": "^1.3.0",
- "rehype-parse": "^9.0.0",
- "unified": "^11.0.5",
- "unist-util-visit": "^5.0.0"
- },
- "engines": {
- "node": ">=18"
- },
- "peerDependencies": {
- "shiki": "^1.3.0"
- }
- },
- "node_modules/rehype-raw": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/rehype-raw/-/rehype-raw-7.0.0.tgz",
- "integrity": "sha512-/aE8hCfKlQeA8LmyeyQvQF3eBiLRGNlfBJEvWH7ivp9sBqs7TNqBL5X3v157rM4IFETqDnIOO+z5M/biZbo9Ww==",
- "dependencies": {
- "@types/hast": "^3.0.0",
- "hast-util-raw": "^9.0.0",
- "vfile": "^6.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/rehype-recma": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/rehype-recma/-/rehype-recma-1.0.0.tgz",
- "integrity": "sha512-lqA4rGUf1JmacCNWWZx0Wv1dHqMwxzsDWYMTowuplHF3xH0N/MmrZ/G3BDZnzAkRmxDadujCjaKM2hqYdCBOGw==",
- "dependencies": {
- "@types/estree": "^1.0.0",
- "@types/hast": "^3.0.0",
- "hast-util-to-estree": "^3.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/remark-frontmatter": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/remark-frontmatter/-/remark-frontmatter-5.0.0.tgz",
- "integrity": "sha512-XTFYvNASMe5iPN0719nPrdItC9aU0ssC4v14mH1BCi1u0n1gAocqcujWUrByftZTbLhRtiKRyjYTSIOcr69UVQ==",
- "dependencies": {
- "@types/mdast": "^4.0.0",
- "mdast-util-frontmatter": "^2.0.0",
- "micromark-extension-frontmatter": "^2.0.0",
- "unified": "^11.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/remark-gfm": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/remark-gfm/-/remark-gfm-4.0.1.tgz",
- "integrity": "sha512-1quofZ2RQ9EWdeN34S79+KExV1764+wCUGop5CPL1WGdD0ocPpu91lzPGbwWMECpEpd42kJGQwzRfyov9j4yNg==",
- "dependencies": {
- "@types/mdast": "^4.0.0",
- "mdast-util-gfm": "^3.0.0",
- "micromark-extension-gfm": "^3.0.0",
- "remark-parse": "^11.0.0",
- "remark-stringify": "^11.0.0",
- "unified": "^11.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/remark-math": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/remark-math/-/remark-math-6.0.0.tgz",
- "integrity": "sha512-MMqgnP74Igy+S3WwnhQ7kqGlEerTETXMvJhrUzDikVZ2/uogJCb+WHUg97hK9/jcfc0dkD73s3LN8zU49cTEtA==",
- "dependencies": {
- "@types/mdast": "^4.0.0",
- "mdast-util-math": "^3.0.0",
- "micromark-extension-math": "^3.0.0",
- "unified": "^11.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/remark-mdx": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/remark-mdx/-/remark-mdx-3.1.0.tgz",
- "integrity": "sha512-Ngl/H3YXyBV9RcRNdlYsZujAmhsxwzxpDzpDEhFBVAGthS4GDgnctpDjgFl/ULx5UEDzqtW1cyBSNKqYYrqLBA==",
- "dependencies": {
- "mdast-util-mdx": "^3.0.0",
- "micromark-extension-mdxjs": "^3.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/remark-parse": {
- "version": "11.0.0",
- "resolved": "https://registry.npmjs.org/remark-parse/-/remark-parse-11.0.0.tgz",
- "integrity": "sha512-FCxlKLNGknS5ba/1lmpYijMUzX2esxW5xQqjWxw2eHFfS2MSdaHVINFmhjo+qN1WhZhNimq0dZATN9pH0IDrpA==",
- "dependencies": {
- "@types/mdast": "^4.0.0",
- "mdast-util-from-markdown": "^2.0.0",
- "micromark-util-types": "^2.0.0",
- "unified": "^11.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/remark-reading-time": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/remark-reading-time/-/remark-reading-time-2.0.1.tgz",
- "integrity": "sha512-fy4BKy9SRhtYbEHvp6AItbRTnrhiDGbqLQTSYVbQPGuRCncU1ubSsh9p/W5QZSxtYcUXv8KGL0xBgPLyNJA1xw==",
- "dependencies": {
- "estree-util-is-identifier-name": "^2.0.0",
- "estree-util-value-to-estree": "^1.3.0",
- "reading-time": "^1.3.0",
- "unist-util-visit": "^3.1.0"
- }
- },
- "node_modules/remark-reading-time/node_modules/@types/unist": {
- "version": "2.0.11",
- "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.11.tgz",
- "integrity": "sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA=="
- },
- "node_modules/remark-reading-time/node_modules/estree-util-is-identifier-name": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/estree-util-is-identifier-name/-/estree-util-is-identifier-name-2.1.0.tgz",
- "integrity": "sha512-bEN9VHRyXAUOjkKVQVvArFym08BTWB0aJPppZZr0UNyAqWsLaVfAqP7hbaTJjzHifmB5ebnR8Wm7r7yGN/HonQ==",
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/remark-reading-time/node_modules/estree-util-value-to-estree": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/estree-util-value-to-estree/-/estree-util-value-to-estree-1.3.0.tgz",
- "integrity": "sha512-Y+ughcF9jSUJvncXwqRageavjrNPAI+1M/L3BI3PyLp1nmgYTGUXU6t5z1Y7OWuThoDdhPME07bQU+d5LxdJqw==",
- "dependencies": {
- "is-plain-obj": "^3.0.0"
- },
- "engines": {
- "node": ">=12.0.0"
- }
- },
- "node_modules/remark-reading-time/node_modules/is-plain-obj": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-3.0.0.tgz",
- "integrity": "sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==",
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/remark-reading-time/node_modules/unist-util-is": {
- "version": "5.2.1",
- "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-5.2.1.tgz",
- "integrity": "sha512-u9njyyfEh43npf1M+yGKDGVPbY/JWEemg5nH05ncKPfi+kBbKBJoTdsogMu33uhytuLlv9y0O7GH7fEdwLdLQw==",
- "dependencies": {
- "@types/unist": "^2.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/remark-reading-time/node_modules/unist-util-visit": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-3.1.0.tgz",
- "integrity": "sha512-Szoh+R/Ll68QWAyQyZZpQzZQm2UPbxibDvaY8Xc9SUtYgPsDzx5AWSk++UUt2hJuow8mvwR+rG+LQLw+KsuAKA==",
- "dependencies": {
- "@types/unist": "^2.0.0",
- "unist-util-is": "^5.0.0",
- "unist-util-visit-parents": "^4.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/remark-reading-time/node_modules/unist-util-visit-parents": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-4.1.1.tgz",
- "integrity": "sha512-1xAFJXAKpnnJl8G7K5KgU7FY55y3GcLIXqkzUj5QF/QVP7biUm0K0O2oqVkYsdjzJKifYeWn9+o6piAK2hGSHw==",
- "dependencies": {
- "@types/unist": "^2.0.0",
- "unist-util-is": "^5.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/remark-rehype": {
- "version": "11.1.2",
- "resolved": "https://registry.npmjs.org/remark-rehype/-/remark-rehype-11.1.2.tgz",
- "integrity": "sha512-Dh7l57ianaEoIpzbp0PC9UKAdCSVklD8E5Rpw7ETfbTl3FqcOOgq5q2LVDhgGCkaBv7p24JXikPdvhhmHvKMsw==",
- "dependencies": {
- "@types/hast": "^3.0.0",
- "@types/mdast": "^4.0.0",
- "mdast-util-to-hast": "^13.0.0",
- "unified": "^11.0.0",
- "vfile": "^6.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/remark-smartypants": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/remark-smartypants/-/remark-smartypants-3.0.2.tgz",
- "integrity": "sha512-ILTWeOriIluwEvPjv67v7Blgrcx+LZOkAUVtKI3putuhlZm84FnqDORNXPPm+HY3NdZOMhyDwZ1E+eZB/Df5dA==",
- "dependencies": {
- "retext": "^9.0.0",
- "retext-smartypants": "^6.0.0",
- "unified": "^11.0.4",
- "unist-util-visit": "^5.0.0"
- },
- "engines": {
- "node": ">=16.0.0"
- }
- },
- "node_modules/remark-stringify": {
- "version": "11.0.0",
- "resolved": "https://registry.npmjs.org/remark-stringify/-/remark-stringify-11.0.0.tgz",
- "integrity": "sha512-1OSmLd3awB/t8qdoEOMazZkNsfVTeY4fTsgzcQFdXNq8ToTN4ZGwrMnlda4K6smTFKD+GRV6O48i6Z4iKgPPpw==",
- "dependencies": {
- "@types/mdast": "^4.0.0",
- "mdast-util-to-markdown": "^2.0.0",
- "unified": "^11.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/require-directory": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz",
- "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/resolve": {
- "version": "1.22.10",
- "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.10.tgz",
- "integrity": "sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==",
- "dependencies": {
- "is-core-module": "^2.16.0",
- "path-parse": "^1.0.7",
- "supports-preserve-symlinks-flag": "^1.0.0"
- },
- "bin": {
- "resolve": "bin/resolve"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "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/resolve.exports": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-2.0.3.tgz",
- "integrity": "sha512-OcXjMsGdhL4XnbShKpAcSqPMzQoYkYyhbEaeSko47MjRP9NfEQMhZkXL1DoFlt9LWQn4YttrdnV6X2OiyzBi+A==",
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/restore-cursor": {
- "version": "5.1.0",
- "license": "MIT",
- "dependencies": {
- "onetime": "^7.0.0",
- "signal-exit": "^4.1.0"
- },
- "engines": {
- "node": ">=18"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/restore-cursor/node_modules/onetime": {
- "version": "7.0.0",
- "license": "MIT",
- "dependencies": {
- "mimic-function": "^5.0.0"
- },
- "engines": {
- "node": ">=18"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/retext": {
- "version": "9.0.0",
- "resolved": "https://registry.npmjs.org/retext/-/retext-9.0.0.tgz",
- "integrity": "sha512-sbMDcpHCNjvlheSgMfEcVrZko3cDzdbe1x/e7G66dFp0Ff7Mldvi2uv6JkJQzdRcvLYE8CA8Oe8siQx8ZOgTcA==",
- "dependencies": {
- "@types/nlcst": "^2.0.0",
- "retext-latin": "^4.0.0",
- "retext-stringify": "^4.0.0",
- "unified": "^11.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/retext-latin": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/retext-latin/-/retext-latin-4.0.0.tgz",
- "integrity": "sha512-hv9woG7Fy0M9IlRQloq/N6atV82NxLGveq+3H2WOi79dtIYWN8OaxogDm77f8YnVXJL2VD3bbqowu5E3EMhBYA==",
- "dependencies": {
- "@types/nlcst": "^2.0.0",
- "parse-latin": "^7.0.0",
- "unified": "^11.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/retext-smartypants": {
- "version": "6.2.0",
- "resolved": "https://registry.npmjs.org/retext-smartypants/-/retext-smartypants-6.2.0.tgz",
- "integrity": "sha512-kk0jOU7+zGv//kfjXEBjdIryL1Acl4i9XNkHxtM7Tm5lFiCog576fjNC9hjoR7LTKQ0DsPWy09JummSsH1uqfQ==",
- "dependencies": {
- "@types/nlcst": "^2.0.0",
- "nlcst-to-string": "^4.0.0",
- "unist-util-visit": "^5.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/retext-stringify": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/retext-stringify/-/retext-stringify-4.0.0.tgz",
- "integrity": "sha512-rtfN/0o8kL1e+78+uxPTqu1Klt0yPzKuQ2BfWwwfgIUSayyzxpM1PJzkKt4V8803uB9qSy32MvI7Xep9khTpiA==",
- "dependencies": {
- "@types/nlcst": "^2.0.0",
- "nlcst-to-string": "^4.0.0",
- "unified": "^11.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/reusify": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.1.0.tgz",
- "integrity": "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==",
- "dev": true,
- "engines": {
- "iojs": ">=1.0.0",
- "node": ">=0.10.0"
- }
- },
- "node_modules/rfdc": {
- "version": "1.4.1",
- "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.4.1.tgz",
- "integrity": "sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA=="
- },
- "node_modules/robust-predicates": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/robust-predicates/-/robust-predicates-3.0.2.tgz",
- "integrity": "sha512-IXgzBWvWQwE6PrDI05OvmXUIruQTcoMDzRsOd5CDvHCVLcLHMTSYvOK5Cm46kWqlV3yAbuSpBZdJ5oP5OUoStg=="
- },
- "node_modules/roughjs": {
- "version": "4.6.6",
- "resolved": "https://registry.npmjs.org/roughjs/-/roughjs-4.6.6.tgz",
- "integrity": "sha512-ZUz/69+SYpFN/g/lUlo2FXcIjRkSu3nDarreVdGGndHEBJ6cXPdKguS8JGxwj5HA5xIbVKSmLgr5b3AWxtRfvQ==",
- "dependencies": {
- "hachure-fill": "^0.5.2",
- "path-data-parser": "^0.1.0",
- "points-on-curve": "^0.2.0",
- "points-on-path": "^0.2.1"
- }
- },
- "node_modules/run-parallel": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz",
- "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==",
- "dev": true,
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/feross"
- },
- {
- "type": "patreon",
- "url": "https://www.patreon.com/feross"
- },
- {
- "type": "consulting",
- "url": "https://feross.org/support"
- }
- ],
- "dependencies": {
- "queue-microtask": "^1.2.2"
- }
- },
- "node_modules/rw": {
- "version": "1.3.3",
- "resolved": "https://registry.npmjs.org/rw/-/rw-1.3.3.tgz",
- "integrity": "sha512-PdhdWy89SiZogBLaw42zdeqtRJ//zFd2PgQavcICDUgJT5oW10QCRKbJ6bg4r0/UY2M6BWd5tkxuGFRvCkgfHQ=="
- },
- "node_modules/safer-buffer": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
- "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
- },
- "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/scroll-into-view-if-needed": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/scroll-into-view-if-needed/-/scroll-into-view-if-needed-3.1.0.tgz",
- "integrity": "sha512-49oNpRjWRvnU8NyGVmUaYG4jtTkNonFZI86MmGRDqBphEK2EXT9gdEUoQPZhuBM8yWHxCWbobltqYO5M4XrUvQ==",
- "dependencies": {
- "compute-scroll-into-view": "^3.0.2"
- }
- },
- "node_modules/search-insights": {
- "version": "2.17.3",
- "resolved": "https://registry.npmjs.org/search-insights/-/search-insights-2.17.3.tgz",
- "integrity": "sha512-RQPdCYTa8A68uM2jwxoY842xDhvx3E5LFL1LxvxCNMev4o5mLuokczhzjAgGwUZBAmOKZknArSxLKmXtIi2AxQ==",
- "peer": true
- },
- "node_modules/section-matter": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/section-matter/-/section-matter-1.0.0.tgz",
- "integrity": "sha512-vfD3pmTzGpufjScBh50YHKzEu2lxBWhVEHsNGoEXmCmn2hKGfeNLYMzCJpe8cD7gqX7TJluOVpBkAequ6dgMmA==",
- "dependencies": {
- "extend-shallow": "^2.0.1",
- "kind-of": "^6.0.0"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/semver": {
- "version": "6.3.1",
- "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
- "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
- "bin": {
- "semver": "bin/semver.js"
- }
- },
- "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,
- "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/sharp/node_modules/semver": {
- "version": "7.7.1",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.1.tgz",
- "integrity": "sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==",
- "bin": {
- "semver": "bin/semver.js"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "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/shiki": {
- "version": "1.29.2",
- "resolved": "https://registry.npmjs.org/shiki/-/shiki-1.29.2.tgz",
- "integrity": "sha512-njXuliz/cP+67jU2hukkxCNuH1yUi4QfdZZY+sMr5PPrIyXSu5iTb/qYC4BiWWB0vZ+7TbdvYUCeL23zpwCfbg==",
- "dependencies": {
- "@shikijs/core": "1.29.2",
- "@shikijs/engine-javascript": "1.29.2",
- "@shikijs/engine-oniguruma": "1.29.2",
- "@shikijs/langs": "1.29.2",
- "@shikijs/themes": "1.29.2",
- "@shikijs/types": "1.29.2",
- "@shikijs/vscode-textmate": "^10.0.1",
- "@types/hast": "^3.0.4"
- }
- },
- "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==",
- "license": "ISC",
- "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==",
- "dependencies": {
- "is-arrayish": "^0.3.1"
- }
- },
- "node_modules/simple-swizzle/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=="
- },
- "node_modules/sisteransi": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz",
- "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg=="
- },
- "node_modules/slash": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz",
- "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/slice-ansi": {
- "version": "7.1.0",
- "license": "MIT",
- "dependencies": {
- "ansi-styles": "^6.2.1",
- "is-fullwidth-code-point": "^5.0.0"
- },
- "engines": {
- "node": ">=18"
- },
- "funding": {
- "url": "https://github.com/chalk/slice-ansi?sponsor=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==",
- "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.13",
- "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.13.tgz",
- "integrity": "sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==",
- "dependencies": {
- "buffer-from": "^1.0.0",
- "source-map": "^0.6.0"
- }
- },
- "node_modules/space-separated-tokens": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/space-separated-tokens/-/space-separated-tokens-2.0.2.tgz",
- "integrity": "sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==",
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/wooorm"
- }
- },
- "node_modules/speech-rule-engine": {
- "version": "4.0.7",
- "resolved": "https://registry.npmjs.org/speech-rule-engine/-/speech-rule-engine-4.0.7.tgz",
- "integrity": "sha512-sJrL3/wHzNwJRLBdf6CjJWIlxC04iYKkyXvYSVsWVOiC2DSkHmxsqOhEeMsBA9XK+CHuNcsdkbFDnoUfAsmp9g==",
- "dependencies": {
- "commander": "9.2.0",
- "wicked-good-xpath": "1.3.0",
- "xmldom-sre": "0.1.31"
- },
- "bin": {
- "sre": "bin/sre"
- }
- },
- "node_modules/speech-rule-engine/node_modules/commander": {
- "version": "9.2.0",
- "resolved": "https://registry.npmjs.org/commander/-/commander-9.2.0.tgz",
- "integrity": "sha512-e2i4wANQiSXgnrBlIatyHtP1odfUp0BbV5Y5nEGbxtIrStkEOAAzCUirvLBNXHLr7kwLvJl6V+4V3XV9x7Wd9w==",
- "engines": {
- "node": "^12.20.0 || >=14"
- }
- },
- "node_modules/sprintf-js": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
- "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g=="
- },
- "node_modules/stack-utils": {
- "version": "2.0.6",
- "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz",
- "integrity": "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==",
- "dependencies": {
- "escape-string-regexp": "^2.0.0"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/stack-utils/node_modules/escape-string-regexp": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz",
- "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==",
- "engines": {
- "node": ">=8"
- }
- },
- "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/string-argv": {
- "version": "0.3.2",
- "resolved": "https://registry.npmjs.org/string-argv/-/string-argv-0.3.2.tgz",
- "integrity": "sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q==",
- "engines": {
- "node": ">=0.6.19"
- }
- },
- "node_modules/string-length": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz",
- "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==",
- "dependencies": {
- "char-regex": "^1.0.2",
- "strip-ansi": "^6.0.0"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/string-length/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-length/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/string-width": {
- "version": "7.2.0",
- "license": "MIT",
- "dependencies": {
- "emoji-regex": "^10.3.0",
- "get-east-asian-width": "^1.0.0",
- "strip-ansi": "^7.1.0"
- },
- "engines": {
- "node": ">=18"
- },
- "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==",
- "dev": true,
- "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==",
- "dev": true,
- "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==",
- "dev": true
- },
- "node_modules/string-width-cjs/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==",
- "dev": true,
- "engines": {
- "node": ">=8"
- }
- },
- "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==",
- "dev": true,
- "dependencies": {
- "ansi-regex": "^5.0.1"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/stringify-entities": {
- "version": "4.0.4",
- "resolved": "https://registry.npmjs.org/stringify-entities/-/stringify-entities-4.0.4.tgz",
- "integrity": "sha512-IwfBptatlO+QCJUo19AqvrPNqlVMpW9YEL2LIVY+Rpv2qsjCGxaDLNRgeGsQWJhfItebuJhsGSLjaBbNSQ+ieg==",
- "dependencies": {
- "character-entities-html4": "^2.0.0",
- "character-entities-legacy": "^3.0.0"
- },
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/wooorm"
- }
- },
- "node_modules/strip-ansi": {
- "version": "7.1.0",
- "license": "MIT",
- "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==",
- "dev": true,
- "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==",
- "dev": true,
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/strip-bom": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz",
- "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/strip-bom-string": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/strip-bom-string/-/strip-bom-string-1.0.0.tgz",
- "integrity": "sha512-uCC2VHvQRYu+lMh4My/sFNmF2klFymLX1wHJeXnbEJERpV/ZsVuonzerjfrGpIGF7LBVa1O7i9kjiWvJiFck8g==",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/strip-final-newline": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz",
- "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==",
- "license": "MIT",
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/strip-json-comments": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz",
- "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==",
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/style-to-js": {
- "version": "1.1.16",
- "resolved": "https://registry.npmjs.org/style-to-js/-/style-to-js-1.1.16.tgz",
- "integrity": "sha512-/Q6ld50hKYPH3d/r6nr117TZkHR0w0kGGIVfpG9N6D8NymRPM9RqCUv4pRpJ62E5DqOYx2AFpbZMyCPnjQCnOw==",
- "dependencies": {
- "style-to-object": "1.0.8"
- }
- },
- "node_modules/style-to-object": {
- "version": "1.0.8",
- "resolved": "https://registry.npmjs.org/style-to-object/-/style-to-object-1.0.8.tgz",
- "integrity": "sha512-xT47I/Eo0rwJmaXC4oilDGDWLohVhR6o/xAQcPQN8q6QBuZVL8qMYL85kLmST5cPjAorwvqIA4qXTRQoYHaL6g==",
- "dependencies": {
- "inline-style-parser": "0.2.4"
- }
- },
- "node_modules/styled-jsx": {
- "version": "5.1.1",
- "resolved": "https://registry.npmjs.org/styled-jsx/-/styled-jsx-5.1.1.tgz",
- "integrity": "sha512-pW7uC1l4mBZ8ugbiZrcIsiIvVx1UmTfw7UkC3Um2tmfUq9Bhk8IiyEIPl6F8agHgjzku6j0xQEZbfA5uSgSaCw==",
- "dependencies": {
- "client-only": "0.0.1"
- },
- "engines": {
- "node": ">= 12.0.0"
- },
- "peerDependencies": {
- "react": ">= 16.8.0 || 17.x.x || ^18.0.0-0"
- },
- "peerDependenciesMeta": {
- "@babel/core": {
- "optional": true
- },
- "babel-plugin-macros": {
- "optional": true
- }
- }
- },
- "node_modules/stylis": {
- "version": "4.3.6",
- "resolved": "https://registry.npmjs.org/stylis/-/stylis-4.3.6.tgz",
- "integrity": "sha512-yQ3rwFWRfwNUY7H5vpU0wfdkNSnvnJinhF9830Swlaxl03zsOjCfmX0ugac+3LtK0lYSgwL/KXc8oYL3mG4YFQ=="
- },
- "node_modules/sucrase": {
- "version": "3.35.0",
- "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.35.0.tgz",
- "integrity": "sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==",
- "dev": true,
- "dependencies": {
- "@jridgewell/gen-mapping": "^0.3.2",
- "commander": "^4.0.0",
- "glob": "^10.3.10",
- "lines-and-columns": "^1.1.6",
- "mz": "^2.7.0",
- "pirates": "^4.0.1",
- "ts-interface-checker": "^0.1.9"
- },
- "bin": {
- "sucrase": "bin/sucrase",
- "sucrase-node": "bin/sucrase-node"
- },
- "engines": {
- "node": ">=16 || 14 >=14.17"
- }
- },
- "node_modules/sucrase/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"
- }
- },
- "node_modules/sucrase/node_modules/commander": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz",
- "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==",
- "dev": true,
- "engines": {
- "node": ">= 6"
- }
- },
- "node_modules/sucrase/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"
- }
- },
- "node_modules/sucrase/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"
- }
- },
- "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/system-architecture": {
- "version": "0.1.0",
- "resolved": "https://registry.npmjs.org/system-architecture/-/system-architecture-0.1.0.tgz",
- "integrity": "sha512-ulAk51I9UVUyJgxlv9M6lFot2WP3e7t8Kz9+IS6D4rVba1tR9kON+Ey69f+1R4Q8cd45Lod6a4IcJIxnzGc/zA==",
- "engines": {
- "node": ">=18"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/tabbable": {
- "version": "6.2.0",
- "resolved": "https://registry.npmjs.org/tabbable/-/tabbable-6.2.0.tgz",
- "integrity": "sha512-Cat63mxsVJlzYvN51JmVXIgNoUokrIaT2zLclCXjRd8boZ0004U4KCs/sToJ75C6sdlByWxpYnb5Boif1VSFew=="
- },
- "node_modules/tailwindcss": {
- "version": "3.4.17",
- "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.17.tgz",
- "integrity": "sha512-w33E2aCvSDP0tW9RZuNXadXlkHXqFzSkQew/aIa2i/Sj8fThxwovwlXHSPXTbAHwEIhBFXAedUhP2tueAKP8Og==",
- "dev": true,
- "dependencies": {
- "@alloc/quick-lru": "^5.2.0",
- "arg": "^5.0.2",
- "chokidar": "^3.6.0",
- "didyoumean": "^1.2.2",
- "dlv": "^1.1.3",
- "fast-glob": "^3.3.2",
- "glob-parent": "^6.0.2",
- "is-glob": "^4.0.3",
- "jiti": "^1.21.6",
- "lilconfig": "^3.1.3",
- "micromatch": "^4.0.8",
- "normalize-path": "^3.0.0",
- "object-hash": "^3.0.0",
- "picocolors": "^1.1.1",
- "postcss": "^8.4.47",
- "postcss-import": "^15.1.0",
- "postcss-js": "^4.0.1",
- "postcss-load-config": "^4.0.2",
- "postcss-nested": "^6.2.0",
- "postcss-selector-parser": "^6.1.2",
- "resolve": "^1.22.8",
- "sucrase": "^3.35.0"
- },
- "bin": {
- "tailwind": "lib/cli.js",
- "tailwindcss": "lib/cli.js"
- },
- "engines": {
- "node": ">=14.0.0"
- }
- },
- "node_modules/test-exclude": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz",
- "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==",
- "dependencies": {
- "@istanbuljs/schema": "^0.1.2",
- "glob": "^7.1.4",
- "minimatch": "^3.0.4"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/thenify": {
- "version": "3.3.1",
- "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz",
- "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==",
- "dev": true,
- "dependencies": {
- "any-promise": "^1.0.0"
- }
- },
- "node_modules/thenify-all": {
- "version": "1.6.0",
- "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz",
- "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==",
- "dev": true,
- "dependencies": {
- "thenify": ">= 3.1.0 < 4"
- },
- "engines": {
- "node": ">=0.8"
- }
- },
- "node_modules/tinyexec": {
- "version": "0.3.2",
- "resolved": "https://registry.npmjs.org/tinyexec/-/tinyexec-0.3.2.tgz",
- "integrity": "sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA=="
- },
- "node_modules/title": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/title/-/title-4.0.1.tgz",
- "integrity": "sha512-xRnPkJx9nvE5MF6LkB5e8QJjE2FW8269wTu/LQdf7zZqBgPly0QJPf/CWAo7srj5so4yXfoLEdCFgurlpi47zg==",
- "dependencies": {
- "arg": "^5.0.0",
- "chalk": "^5.0.0",
- "clipboardy": "^4.0.0"
- },
- "bin": {
- "title": "dist/esm/bin.js"
- }
- },
- "node_modules/tmpl": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz",
- "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw=="
- },
- "node_modules/to-regex-range": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
- "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
- "dependencies": {
- "is-number": "^7.0.0"
- },
- "engines": {
- "node": ">=8.0"
- }
- },
- "node_modules/trim-lines": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/trim-lines/-/trim-lines-3.0.1.tgz",
- "integrity": "sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==",
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/wooorm"
- }
- },
- "node_modules/trough": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/trough/-/trough-2.2.0.tgz",
- "integrity": "sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw==",
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/wooorm"
- }
- },
- "node_modules/ts-dedent": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/ts-dedent/-/ts-dedent-2.2.0.tgz",
- "integrity": "sha512-q5W7tVM71e2xjHZTlgfTDoPF/SmqKG5hddq9SzR49CH2hayqRKJtQ4mtRlSxKaJlR/+9rEM+mnBHf7I2/BQcpQ==",
- "engines": {
- "node": ">=6.10"
- }
- },
- "node_modules/ts-interface-checker": {
- "version": "0.1.13",
- "resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz",
- "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==",
- "dev": true
- },
- "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/twoslash": {
- "version": "0.2.12",
- "resolved": "https://registry.npmjs.org/twoslash/-/twoslash-0.2.12.tgz",
- "integrity": "sha512-tEHPASMqi7kqwfJbkk7hc/4EhlrKCSLcur+TcvYki3vhIfaRMXnXjaYFgXpoZRbT6GdprD4tGuVBEmTpUgLBsw==",
- "dependencies": {
- "@typescript/vfs": "^1.6.0",
- "twoslash-protocol": "0.2.12"
- },
- "peerDependencies": {
- "typescript": "*"
- }
- },
- "node_modules/twoslash-protocol": {
- "version": "0.2.12",
- "resolved": "https://registry.npmjs.org/twoslash-protocol/-/twoslash-protocol-0.2.12.tgz",
- "integrity": "sha512-5qZLXVYfZ9ABdjqbvPc4RWMr7PrpPaaDSeaYY55vl/w1j6H6kzsWK/urAEIXlzYlyrFmyz1UbwIt+AA0ck+wbg=="
- },
- "node_modules/type-detect": {
- "version": "4.0.8",
- "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz",
- "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==",
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/type-fest": {
- "version": "0.21.3",
- "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz",
- "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==",
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/typescript": {
- "version": "5.8.2",
- "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.8.2.tgz",
- "integrity": "sha512-aJn6wq13/afZp/jT9QZmwEjDqqvSGp1VT5GVg+f/t6/oVyrgXM6BY1h9BRh/O5p3PlUPAe+WuiEZOmb/49RqoQ==",
- "bin": {
- "tsc": "bin/tsc",
- "tsserver": "bin/tsserver"
- },
- "engines": {
- "node": ">=14.17"
- }
- },
- "node_modules/ufo": {
- "version": "1.5.4",
- "resolved": "https://registry.npmjs.org/ufo/-/ufo-1.5.4.tgz",
- "integrity": "sha512-UsUk3byDzKd04EyoZ7U4DOlxQaD14JUKQl6/P7wiX4FNvUfm3XL246n9W5AmqwW5RSFJ27NAuM0iLscAOYUiGQ=="
- },
- "node_modules/unified": {
- "version": "11.0.5",
- "resolved": "https://registry.npmjs.org/unified/-/unified-11.0.5.tgz",
- "integrity": "sha512-xKvGhPWw3k84Qjh8bI3ZeJjqnyadK+GEFtazSfZv/rKeTkTjOJho6mFqh2SM96iIcZokxiOpg78GazTSg8+KHA==",
- "dependencies": {
- "@types/unist": "^3.0.0",
- "bail": "^2.0.0",
- "devlop": "^1.0.0",
- "extend": "^3.0.0",
- "is-plain-obj": "^4.0.0",
- "trough": "^2.0.0",
- "vfile": "^6.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/unist-util-find-after": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/unist-util-find-after/-/unist-util-find-after-5.0.0.tgz",
- "integrity": "sha512-amQa0Ep2m6hE2g72AugUItjbuM8X8cGQnFoHk0pGfrFeT9GZhzN5SW8nRsiGKK7Aif4CrACPENkA6P/Lw6fHGQ==",
- "dependencies": {
- "@types/unist": "^3.0.0",
- "unist-util-is": "^6.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/unist-util-is": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-6.0.0.tgz",
- "integrity": "sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw==",
- "dependencies": {
- "@types/unist": "^3.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/unist-util-modify-children": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/unist-util-modify-children/-/unist-util-modify-children-4.0.0.tgz",
- "integrity": "sha512-+tdN5fGNddvsQdIzUF3Xx82CU9sMM+fA0dLgR9vOmT0oPT2jH+P1nd5lSqfCfXAw+93NhcXNY2qqvTUtE4cQkw==",
- "dependencies": {
- "@types/unist": "^3.0.0",
- "array-iterate": "^2.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/unist-util-position": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-5.0.0.tgz",
- "integrity": "sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==",
- "dependencies": {
- "@types/unist": "^3.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/unist-util-position-from-estree": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/unist-util-position-from-estree/-/unist-util-position-from-estree-2.0.0.tgz",
- "integrity": "sha512-KaFVRjoqLyF6YXCbVLNad/eS4+OfPQQn2yOd7zF/h5T/CSL2v8NpN6a5TPvtbXthAGw5nG+PuTtq+DdIZr+cRQ==",
- "dependencies": {
- "@types/unist": "^3.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/unist-util-remove": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/unist-util-remove/-/unist-util-remove-4.0.0.tgz",
- "integrity": "sha512-b4gokeGId57UVRX/eVKej5gXqGlc9+trkORhFJpu9raqZkZhU0zm8Doi05+HaiBsMEIJowL+2WtQ5ItjsngPXg==",
- "dependencies": {
- "@types/unist": "^3.0.0",
- "unist-util-is": "^6.0.0",
- "unist-util-visit-parents": "^6.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/unist-util-remove-position": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/unist-util-remove-position/-/unist-util-remove-position-5.0.0.tgz",
- "integrity": "sha512-Hp5Kh3wLxv0PHj9m2yZhhLt58KzPtEYKQQ4yxfYFEO7EvHwzyDYnduhHnY1mDxoqr7VUwVuHXk9RXKIiYS1N8Q==",
- "dependencies": {
- "@types/unist": "^3.0.0",
- "unist-util-visit": "^5.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/unist-util-stringify-position": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz",
- "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==",
- "dependencies": {
- "@types/unist": "^3.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/unist-util-visit": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-5.0.0.tgz",
- "integrity": "sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==",
- "dependencies": {
- "@types/unist": "^3.0.0",
- "unist-util-is": "^6.0.0",
- "unist-util-visit-parents": "^6.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/unist-util-visit-children": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/unist-util-visit-children/-/unist-util-visit-children-3.0.0.tgz",
- "integrity": "sha512-RgmdTfSBOg04sdPcpTSD1jzoNBjt9a80/ZCzp5cI9n1qPzLZWF9YdvWGN2zmTumP1HWhXKdUWexjy/Wy/lJ7tA==",
- "dependencies": {
- "@types/unist": "^3.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/unist-util-visit-parents": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-6.0.1.tgz",
- "integrity": "sha512-L/PqWzfTP9lzzEa6CKs0k2nARxTdZduw3zyh8d2NVBnsyvHjSX4TWse388YrrQKbvI8w20fGjGlhgT96WwKykw==",
- "dependencies": {
- "@types/unist": "^3.0.0",
- "unist-util-is": "^6.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/update-browserslist-db": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.3.tgz",
- "integrity": "sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw==",
- "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"
- }
- ],
- "dependencies": {
- "escalade": "^3.2.0",
- "picocolors": "^1.1.1"
- },
- "bin": {
- "update-browserslist-db": "cli.js"
- },
- "peerDependencies": {
- "browserslist": ">= 4.21.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==",
- "dev": true
- },
- "node_modules/uuid": {
- "version": "11.1.0",
- "resolved": "https://registry.npmjs.org/uuid/-/uuid-11.1.0.tgz",
- "integrity": "sha512-0/A9rDy9P7cJ+8w1c9WD9V//9Wj15Ce2MPz8Ri6032usz+NfePxx5AcN3bN+r6ZL6jEo066/yNYB3tn4pQEx+A==",
- "funding": [
- "https://github.com/sponsors/broofa",
- "https://github.com/sponsors/ctavan"
- ],
- "bin": {
- "uuid": "dist/esm/bin/uuid"
- }
- },
- "node_modules/v8-to-istanbul": {
- "version": "9.3.0",
- "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.3.0.tgz",
- "integrity": "sha512-kiGUalWN+rgBJ/1OHZsBtU4rXZOfj/7rKQxULKlIzwzQSvMJUUNgPwJEEh7gU6xEVxC0ahoOBvN2YI8GH6FNgA==",
- "dependencies": {
- "@jridgewell/trace-mapping": "^0.3.12",
- "@types/istanbul-lib-coverage": "^2.0.1",
- "convert-source-map": "^2.0.0"
- },
- "engines": {
- "node": ">=10.12.0"
- }
- },
- "node_modules/vfile": {
- "version": "6.0.3",
- "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.3.tgz",
- "integrity": "sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==",
- "dependencies": {
- "@types/unist": "^3.0.0",
- "vfile-message": "^4.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/vfile-location": {
- "version": "5.0.3",
- "resolved": "https://registry.npmjs.org/vfile-location/-/vfile-location-5.0.3.tgz",
- "integrity": "sha512-5yXvWDEgqeiYiBe1lbxYF7UMAIm/IcopxMHrMQDq3nvKcjPKIhZklUKL+AE7J7uApI4kwe2snsK+eI6UTj9EHg==",
- "dependencies": {
- "@types/unist": "^3.0.0",
- "vfile": "^6.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/vfile-message": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz",
- "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==",
- "dependencies": {
- "@types/unist": "^3.0.0",
- "unist-util-stringify-position": "^4.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/vscode-jsonrpc": {
- "version": "8.2.0",
- "resolved": "https://registry.npmjs.org/vscode-jsonrpc/-/vscode-jsonrpc-8.2.0.tgz",
- "integrity": "sha512-C+r0eKJUIfiDIfwJhria30+TYWPtuHJXHtI7J0YlOmKAo7ogxP20T0zxB7HZQIFhIyvoBPwWskjxrvAtfjyZfA==",
- "engines": {
- "node": ">=14.0.0"
- }
- },
- "node_modules/vscode-languageserver": {
- "version": "9.0.1",
- "resolved": "https://registry.npmjs.org/vscode-languageserver/-/vscode-languageserver-9.0.1.tgz",
- "integrity": "sha512-woByF3PDpkHFUreUa7Hos7+pUWdeWMXRd26+ZX2A8cFx6v/JPTtd4/uN0/jB6XQHYaOlHbio03NTHCqrgG5n7g==",
- "dependencies": {
- "vscode-languageserver-protocol": "3.17.5"
- },
- "bin": {
- "installServerIntoExtension": "bin/installServerIntoExtension"
- }
- },
- "node_modules/vscode-languageserver-protocol": {
- "version": "3.17.5",
- "resolved": "https://registry.npmjs.org/vscode-languageserver-protocol/-/vscode-languageserver-protocol-3.17.5.tgz",
- "integrity": "sha512-mb1bvRJN8SVznADSGWM9u/b07H7Ecg0I3OgXDuLdn307rl/J3A9YD6/eYOssqhecL27hK1IPZAsaqh00i/Jljg==",
- "dependencies": {
- "vscode-jsonrpc": "8.2.0",
- "vscode-languageserver-types": "3.17.5"
- }
- },
- "node_modules/vscode-languageserver-textdocument": {
- "version": "1.0.12",
- "resolved": "https://registry.npmjs.org/vscode-languageserver-textdocument/-/vscode-languageserver-textdocument-1.0.12.tgz",
- "integrity": "sha512-cxWNPesCnQCcMPeenjKKsOCKQZ/L6Tv19DTRIGuLWe32lyzWhihGVJ/rcckZXJxfdKCFvRLS3fpBIsV/ZGX4zA=="
- },
- "node_modules/vscode-languageserver-types": {
- "version": "3.17.5",
- "resolved": "https://registry.npmjs.org/vscode-languageserver-types/-/vscode-languageserver-types-3.17.5.tgz",
- "integrity": "sha512-Ld1VelNuX9pdF39h2Hgaeb5hEZM2Z3jUrrMgWQAu82jMtZp7p3vJT3BzToKtZI7NgQssZje5o0zryOrhQvzQAg=="
- },
- "node_modules/vscode-uri": {
- "version": "3.0.8",
- "resolved": "https://registry.npmjs.org/vscode-uri/-/vscode-uri-3.0.8.tgz",
- "integrity": "sha512-AyFQ0EVmsOZOlAnxoFOGOq1SQDWAB7C6aqMGS23svWAllfOaxbuFvcT8D1i8z3Gyn8fraVeZNNmN6e9bxxXkKw=="
- },
- "node_modules/walker": {
- "version": "1.0.8",
- "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz",
- "integrity": "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==",
- "dependencies": {
- "makeerror": "1.0.12"
- }
- },
- "node_modules/web-namespaces": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/web-namespaces/-/web-namespaces-2.0.1.tgz",
- "integrity": "sha512-bKr1DkiNa2krS7qxNtdrtHAmzuYGFQLiQ13TsorsdT6ULTkPLKuu5+GsFpDlg6JFjUTwX2DyhMPG2be8uPrqsQ==",
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/wooorm"
- }
- },
- "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/wicked-good-xpath": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/wicked-good-xpath/-/wicked-good-xpath-1.3.0.tgz",
- "integrity": "sha512-Gd9+TUn5nXdwj/hFsPVx5cuHHiF5Bwuc30jZ4+ronF1qHK5O7HD0sgmXWSEgwKquT3ClLoKPVbO6qGwVwLzvAw=="
- },
- "node_modules/wrap-ansi": {
- "version": "9.0.0",
- "license": "MIT",
- "dependencies": {
- "ansi-styles": "^6.2.1",
- "string-width": "^7.0.0",
- "strip-ansi": "^7.1.0"
- },
- "engines": {
- "node": ">=18"
- },
- "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==",
- "dev": true,
- "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==",
- "dev": true,
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/wrap-ansi-cjs/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"
- }
- },
- "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==",
- "dev": true
- },
- "node_modules/wrap-ansi-cjs/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==",
- "dev": true,
- "engines": {
- "node": ">=8"
- }
- },
- "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==",
- "dev": true,
- "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==",
- "dev": true,
- "dependencies": {
- "ansi-regex": "^5.0.1"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "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/write-file-atomic": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.2.tgz",
- "integrity": "sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==",
- "dependencies": {
- "imurmurhash": "^0.1.4",
- "signal-exit": "^3.0.7"
- },
- "engines": {
- "node": "^12.13.0 || ^14.15.0 || >=16.0.0"
- }
- },
- "node_modules/write-file-atomic/node_modules/signal-exit": {
- "version": "3.0.7",
- "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz",
- "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ=="
- },
- "node_modules/ws": {
- "version": "8.18.1",
- "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.1.tgz",
- "integrity": "sha512-RKW2aJZMXeMxVpnZ6bck+RswznaxmzdULiBr6KY7XkTnW8uvt0iT9H5DkHUChXrc+uurzwa0rVI16n/Xzjdz1w==",
- "engines": {
- "node": ">=10.0.0"
- },
- "peerDependencies": {
- "bufferutil": "^4.0.1",
- "utf-8-validate": ">=5.0.2"
- },
- "peerDependenciesMeta": {
- "bufferutil": {
- "optional": true
- },
- "utf-8-validate": {
- "optional": true
- }
- }
- },
- "node_modules/xmldom-sre": {
- "version": "0.1.31",
- "resolved": "https://registry.npmjs.org/xmldom-sre/-/xmldom-sre-0.1.31.tgz",
- "integrity": "sha512-f9s+fUkX04BxQf+7mMWAp5zk61pciie+fFLC9hX9UVvCeJQfNHRHXpeo5MPcR0EUf57PYLdt+ZO4f3Ipk2oZUw==",
- "engines": {
- "node": ">=0.1"
- }
- },
- "node_modules/y18n": {
- "version": "5.0.8",
- "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz",
- "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==",
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/yallist": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz",
- "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g=="
- },
- "node_modules/yaml": {
- "version": "2.5.1",
- "license": "ISC",
- "bin": {
- "yaml": "bin.mjs"
- },
- "engines": {
- "node": ">= 14"
- }
- },
- "node_modules/yargs": {
- "version": "17.7.2",
- "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz",
- "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==",
- "dependencies": {
- "cliui": "^8.0.1",
- "escalade": "^3.1.1",
- "get-caller-file": "^2.0.5",
- "require-directory": "^2.1.1",
- "string-width": "^4.2.3",
- "y18n": "^5.0.5",
- "yargs-parser": "^21.1.1"
- },
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/yargs-parser": {
- "version": "21.1.1",
- "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz",
- "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==",
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/yargs/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/yargs/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/yargs/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/yargs/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/yargs/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/yocto-queue": {
- "version": "0.1.0",
- "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz",
- "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==",
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/zod": {
- "version": "3.24.2",
- "resolved": "https://registry.npmjs.org/zod/-/zod-3.24.2.tgz",
- "integrity": "sha512-lY7CDW43ECgW9u1TcT3IoXHflywfVqDYze4waEz812jR/bZ8FHDsl7pFQoSZTz5N+2NqRXs8GBwnAwo3ZNxqhQ==",
- "funding": {
- "url": "https://github.com/sponsors/colinhacks"
- }
- },
- "node_modules/zod-validation-error": {
- "version": "3.4.0",
- "resolved": "https://registry.npmjs.org/zod-validation-error/-/zod-validation-error-3.4.0.tgz",
- "integrity": "sha512-ZOPR9SVY6Pb2qqO5XHt+MkkTRxGXb4EVtnjc9JpXUOtUB1T9Ru7mZOT361AN3MsetVe7R0a1KZshJDZdgp9miQ==",
- "engines": {
- "node": ">=18.0.0"
- },
- "peerDependencies": {
- "zod": "^3.18.0"
- }
- },
- "node_modules/zwitch": {
- "version": "2.0.4",
- "resolved": "https://registry.npmjs.org/zwitch/-/zwitch-2.0.4.tgz",
- "integrity": "sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==",
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/wooorm"
- }
- }
- }
-}
diff --git a/docs-v2/package.json b/docs-v2/package.json
deleted file mode 100644
index 0a5f31c0a763c..0000000000000
--- a/docs-v2/package.json
+++ /dev/null
@@ -1,46 +0,0 @@
-{
- "name": "@pipedream/docs",
- "version": "0.0.1",
- "description": "Pipedream docs",
- "private": true,
- "scripts": {
- "predev": "echo '' && echo '⚠️ WARNING: This docs-v2 project is DEPRECATED!' && echo '⚠️ Do not commit changes to this directory.' && echo '⚠️ The documentation has moved to a new location.' && echo ''",
- "dev": "next dev",
- "build": "next build",
- "postbuild": "next-sitemap",
- "start": "next start"
- },
- "packageManager": "pnpm@9.14.2",
- "engines": {
- "pnpm": "9.14.2",
- "node": "20.9.0"
- },
- "author": "Pipedream",
- "license": "MIT",
- "homepage": "https://pipedream.com",
- "dependencies": {
- "@docsearch/react": "^3.8.1",
- "@pipedream/sdk": "^1.5.3",
- "@vercel/analytics": "^1.5.0",
- "chalk": "^5.3.0",
- "jest": "^29.7.0",
- "lint-staged": "^15.2.7",
- "next": "^14.2.5",
- "nextra": "^3",
- "nextra-theme-docs": "^3",
- "prismjs": "^1.30.0",
- "react": "^18.3.1",
- "react-dom": "^18.3.1",
- "react-markdown": "^9.0.1",
- "sharp": "^0.33.4"
- },
- "devDependencies": {
- "@types/node": "18.11.10",
- "autoprefixer": "^10.4.19",
- "next-sitemap": "^4.2.3",
- "postcss": "^8.4.40",
- "prettier": "^3.3.3",
- "tailwindcss": "^3.4.7",
- "typescript": "^5.5.4"
- }
-}
diff --git a/docs-v2/pages/_app.tsx b/docs-v2/pages/_app.tsx
deleted file mode 100644
index 4f4437ae877bd..0000000000000
--- a/docs-v2/pages/_app.tsx
+++ /dev/null
@@ -1,40 +0,0 @@
-import "@/styles/globals.css";
-import type { AppProps } from "next/app";
-import { Analytics } from "@vercel/analytics/next";
-import { useRouter } from "next/router";
-
-import CR from "@/components/CR";
-import GA4 from "@/components/GA4";
-import RB2B from "@/components/RB2B";
-import Vector from "@/components/Vector";
-import VectorConnect from "@/components/VectorConnect";
-
-export default function MyApp({
- Component, pageProps,
-}: AppProps) {
- const router = useRouter();
-
- let script = null;
- if (router.pathname === "/") {
- script = (
- <>
-
-
- >
- );
- } else if (router.pathname.startsWith("/connect")) {
- script = (
- <>
-
-
-
- >
- );
- }
-
- return <>
- {script}
-
-
- >;
-}
diff --git a/docs-v2/pages/_meta.tsx b/docs-v2/pages/_meta.tsx
deleted file mode 100644
index 8bb8af7ebd69c..0000000000000
--- a/docs-v2/pages/_meta.tsx
+++ /dev/null
@@ -1,57 +0,0 @@
-export default {
- "index": "Introduction",
- "workspaces": "Workspaces",
- "projects": "Projects",
- "--connect": {
- type: "separator",
- title: "Connect",
- },
- "connect": {
- title: "Integrate APIs",
- // display: "children", <-- https://github.com/shuding/nextra/issues/4611
- },
- "--workflows": {
- type: "separator",
- title: "Workflows",
- },
- "workflows": {
- title: "Build Workflows",
- // display: "children", <-- https://github.com/shuding/nextra/issues/4611
- },
- "--platform": {
- type: "separator",
- title: "Platform",
- },
- "apps": "Apps",
- "components": "Components",
- "rest-api": "REST API",
- "pricing": "Pricing",
- "account": "Account",
- "privacy-and-security": "Security",
- "troubleshooting": "Troubleshooting",
- "glossary": "Glossary of Terms",
- "support": {
- title: "Support",
- type: "page",
- href: "https://pipedream.com/support",
- newWindow: true,
- },
- "pricing-page": {
- title: "Pricing",
- href: "https://pipedream.com/pricing",
- newWindow: true,
- type: "page",
- },
- "statuspage": {
- title: "Status",
- type: "page",
- href: "https://status.pipedream.com",
- newWindow: true,
- },
- "deprecated": {
- display: "hidden",
- },
- "hidden": {
- display: "hidden",
- },
-} as const
diff --git a/docs-v2/pages/account/_meta.tsx b/docs-v2/pages/account/_meta.tsx
deleted file mode 100644
index ac5cbfd10a9dc..0000000000000
--- a/docs-v2/pages/account/_meta.tsx
+++ /dev/null
@@ -1,4 +0,0 @@
-export default {
- "user-settings": "User Settings",
- "billing-settings": "Billing Settings",
-} as const
diff --git a/docs-v2/pages/account/billing-settings.mdx b/docs-v2/pages/account/billing-settings.mdx
deleted file mode 100644
index 72c0806da4603..0000000000000
--- a/docs-v2/pages/account/billing-settings.mdx
+++ /dev/null
@@ -1,45 +0,0 @@
-import Callout from '@/components/Callout'
-
-# Billing Settings
-
-You'll find information on your usage data (for specific [Pipedream limits](/workflows/limits/)) in your [Billing Settings](https://pipedream.com/settings/billing). You can also upgrade to [paid plans](https://pipedream.com/pricing) from this page.
-
-## Subscription
-
-If you've already upgraded, you'll see an option to **Manage Subscription** here, which directs you to your personal Stripe portal. Here, you can change your payment method, review the details of previous invoices, and more.
-
-## Usage
-
-[Credits](/pricing/#credits-and-billing) are Pipedream's billable unit, and users on the [free plan](/pricing/#free-plan) are limited on the number of daily free credits allocated. The **Usage** section displays a chart of the daily credits across a historical range of time to provide insight into your usage patterns.
-
-
-Credit usage from [Connect](/connect) is not yet reflected in this section.
-
-
-Hover over a specific column in the chart to see the number of credits run for that specific day:
-
-
-
-Click on a specific column to see credits for that day, broken out by workflow / source:
-
-
-
-Users on the free tier will see the last 30 days of usage in this chart. Users on [paid plans](https://pipedream.com/pricing) will see the cumulative usage tied to their current billing period.
-
-## Compute Budget
-
-Control the maximum number of credits permitted on your account with a **Credit Budget**.
-
-This will restrict your workspace-wide usage to the specified number of [credits](/pricing/#credits-and-billing) on a monthly or daily basis. The compute budget does not apply to credits incurred by [dedicated workers](/workflows/building-workflows/settings/#eliminate-cold-starts) or Pipedream Connect.
-
-To enable this feature, click on the toggle and define your maximum number of credits in the period.
-
-
-Due to how credits are accrued, there may be cases where your credit usage may go slightly over the cap.
-
-In an example scenario, with a cap set at 20 credits and a long-running workflow that uses 10 credits per run, it's possible that two concurrent events trigger the workflow, and the cap won't apply until after the concurrent events are processed.
-
-
-## Limits
-
-For users on the [Free tier](/pricing/#free-plan), this section displays your usage towards your [credits quota](/workflows/limits/#daily-credits-limit) for the current UTC day.
diff --git a/docs-v2/pages/account/user-settings.mdx b/docs-v2/pages/account/user-settings.mdx
deleted file mode 100644
index 233fd7052c860..0000000000000
--- a/docs-v2/pages/account/user-settings.mdx
+++ /dev/null
@@ -1,85 +0,0 @@
-import Callout from '@/components/Callout'
-import VideoPlayer from '@/components/VideoPlayer'
-
-# User Settings
-
-You can find important account details, text editor configuration, and more in your [User Settings](https://pipedream.com/user).
-
-## Changing your email
-
-Pipedream sends system emails to the email address tied to your Pipedream login. You can change the email address to which these emails are delivered by modifying the **Email** in your Account Settings. Once changed, an email will be delivered to the new address requesting you verify it.
-
-Pipedream marketing emails may still be sent to the original email address you used when signing up for Pipedream. To change the email address tied to marketing emails, please [reach out to our team](https://pipedream.com/support).
-
-## Two-Factor Authentication
-
-
-
-Two-factor authentication (2FA) adds an additional layer of security for your Pipedream account and is recommended for all users.
-
-### Configuring 2FA
-
-1. Open your [Account Settings](https://pipedream.com/user)
-2. Click **Configure** under **Two-Factor Authentication**
-3. Scan the QR code in an authenticator app like [1Password](https://1password.com/) or Google Authenticator (available on [iOS](https://apps.apple.com/us/app/google-authenticator/id388497605) and [Android](https://play.google.com/store/apps/details?id=com.google.android.apps.authenticator2&hl=en_US&gl=US))
-4. If you're unable to scan the QR code, you can view the setup key to configure 2FA manually in your authenticator app
-5. Enter the one-time-password (OTP) from your authenticator app
-6. **Save your recovery codes in a secure location**. You'll need these to access your Pipedream account in the case you lose access to your authenticator app.
-
-
-Save your recovery codes
-
-If you lose access to your authenticator app and your recovery codes, you will permanently lose access to your Pipedream account. **Pipedream Support cannot recover these accounts.**
-
-
-### Signing in with 2FA
-
-1. You'll be prompted to enter your OTP the next time you sign in to Pipedream
-2. When prompted, you can enter the OTP from your authenticator app or a recovery code
-
-
-Using recovery codes
-
-Each recovery code is a one-time-use code, so make sure to generate new recovery codes in your [Account Settings](https://pipedream.com/user) when you need to. All previously generated recovery codes expire when you generate new ones.
-
-
-
-2FA is not currently supported with Single Sign On
-Pipedream recommends enabling 2FA with your identity provider.
-
-
-### Requiring 2-Factor Authentication
-
-Workspaces on the Business plan can [require all workspace members to configure 2FA](/workspaces/#requiring-two-factor-authentication) in order to log in to Pipedream.
-
-If you are a member of any workspace where 2FA is required, you cannot disable 2FA, but you can still reconfigure it in your [account settings](https://pipedream.com/account/) if necessary.
-
-
-Admins and Owners control 2FA settings
-
-Only workspace owner and admin members can enable or disable 2FA for an entire workspace.
-
-
-## Pipedream API Key
-
-Pipedream provides a [REST API](/rest-api/) for interacting with Pipedream programmatically. You'll find your API key here, which you use to [authorize requests to the API](/rest-api/auth/).
-
-You can revoke and regenerate your API key from here at any time.
-
-## Delete Account
-
-You can delete your Pipedream account at any time by visiting your Account Settings and pressing the **Delete your Account** button. Account deletion is immediately and irreversible.
-
-## Application
-
-You can change how the Pipedream app displays data, and basic text editor config, in your [Application Settings](https://pipedream.com/settings/app).
-
-For example, you can:
-
-- Change the clock format to 12-hour or 24-hour mode
-- Enable Vim keyboard shortcuts in the Pipedream text editor, or enable word wrap
-- Set the number of spaces that will be added in the editor when pressing `Tab`
-
-## Environment Variables
-
-Environment variables allow you to securely store secrets or other config values that you can access in Pipedream workflows via `process.env`. [Read more about environment variables here](/workflows/environment-variables/).
diff --git a/docs-v2/pages/api/demo-connect/accounts/[id].js b/docs-v2/pages/api/demo-connect/accounts/[id].js
deleted file mode 100644
index d22a3aef81607..0000000000000
--- a/docs-v2/pages/api/demo-connect/accounts/[id].js
+++ /dev/null
@@ -1,56 +0,0 @@
-/**
- * API route to fetch account details from Pipedream API
- * Retrieves information about connected accounts for the interactive demo
- */
-import { createBackendClient } from "@pipedream/sdk/server";
-import {
- createApiHandler, generateRequestToken,
-} from "../utils";
-
-/**
- * Handler for account details retrieval
- */
-async function accountHandler(req, res) {
- const { id } = req.query;
-
- if (!id) {
- return res.status(400).json({
- error: "Account ID is required",
- });
- }
-
- // Debug logging for troubleshooting token validation
- console.log("Account API request:", {
- id,
- host: req.headers.host,
- origin: req.headers.origin,
- requestToken: req.headers["x-request-token"],
- expectedToken: generateRequestToken(req),
- });
-
- try {
- // Initialize the Pipedream SDK client
- const pd = createBackendClient({
- environment: process.env.PIPEDREAM_PROJECT_ENVIRONMENT || "development",
- credentials: {
- clientId: process.env.PIPEDREAM_CLIENT_ID,
- clientSecret: process.env.PIPEDREAM_CLIENT_SECRET,
- },
- projectId: process.env.PIPEDREAM_PROJECT_ID,
- });
-
- // Fetch the specific account by ID
- const accountDetails = await pd.getAccountById(id);
-
- // Return the account details
- return res.status(200).json(accountDetails);
- } catch (err) {
- console.error("Error fetching account details:", err.message);
- return res.status(500).json({
- error: "Failed to fetch account details",
- });
- }
-}
-
-// Export the handler with validation and CORS
-export default createApiHandler(accountHandler, "GET");
diff --git a/docs-v2/pages/api/demo-connect/apps.js b/docs-v2/pages/api/demo-connect/apps.js
deleted file mode 100644
index 0a80b3f6f7dc4..0000000000000
--- a/docs-v2/pages/api/demo-connect/apps.js
+++ /dev/null
@@ -1,84 +0,0 @@
-// Search for apps in the Pipedream API
-
-import { createApiHandler } from "./utils";
-
-/**
- * Handler for searching apps
- */
-async function appsHandler(req, res) {
- try {
- const {
- q, limit = 50,
- } = req.query;
-
- // Build the query parameters
- const params = new URLSearchParams();
- if (q) params.append("q", q);
- params.append("limit", String(limit));
- params.append("has_actions", "1"); // Only apps with components
-
- // First get an OAuth token
- const tokenResponse = await fetch(
- "https://api.pipedream.com/v1/oauth/token",
- {
- method: "POST",
- headers: {
- "Content-Type": "application/json",
- },
- body: JSON.stringify({
- grant_type: "client_credentials",
- client_id: process.env.PIPEDREAM_CLIENT_ID,
- client_secret: process.env.PIPEDREAM_CLIENT_SECRET,
- }),
- },
- );
-
- if (!tokenResponse.ok) {
- throw new Error("Failed to authenticate");
- }
-
- const { access_token } = await tokenResponse.json();
-
- // Now search for apps
- const appsResponse = await fetch(
- `https://api.pipedream.com/v1/apps?${params.toString()}`,
- {
- headers: {
- "Authorization": `Bearer ${access_token}`,
- "Content-Type": "application/json",
- },
- },
- );
-
- if (!appsResponse.ok) {
- throw new Error("Failed to fetch apps");
- }
-
- const appsData = await appsResponse.json();
-
- // Format the response with the fields we need
- const formattedApps = appsData.data.map((app) => ({
- id: app.id,
- name: app.name,
- name_slug: app.name_slug,
- description: app.description,
- icon: app.img_src,
- featured_weight: app.featured_weight,
- categories: app.categories || [],
- }));
-
- return res.status(200).json({
- apps: formattedApps,
- total_count: appsData.page_info?.total_count || formattedApps.length,
- });
- } catch (error) {
- console.error("Error searching apps:", error);
- return res.status(500).json({
- error: "Failed to search apps",
- details: error.message,
- });
- }
-}
-
-// Export the handler wrapped with security checks
-export default createApiHandler(appsHandler, "GET");
diff --git a/docs-v2/pages/api/demo-connect/token.js b/docs-v2/pages/api/demo-connect/token.js
deleted file mode 100644
index 29b485b7f56ba..0000000000000
--- a/docs-v2/pages/api/demo-connect/token.js
+++ /dev/null
@@ -1,81 +0,0 @@
-/**
- * API route for generating Connect tokens for the interactive demo
- * This endpoint creates short-lived tokens for testing the Pipedream Connect auth flow
- */
-import {
- createApiHandler, ALLOWED_ORIGINS,
-} from "./utils";
-
-/**
- * Handler for token generation
- */
-async function tokenHandler(req, res) {
- try {
- const { external_user_id } = req.body;
-
- if (!external_user_id) {
- return res.status(400).json({
- error: "external_user_id is required",
- });
- }
-
- // First, obtain an OAuth access token
- const tokenResponse = await fetch("https://api.pipedream.com/v1/oauth/token", {
- method: "POST",
- headers: {
- "Content-Type": "application/json",
- },
- body: JSON.stringify({
- grant_type: "client_credentials",
- client_id: process.env.PIPEDREAM_CLIENT_ID,
- client_secret: process.env.PIPEDREAM_CLIENT_SECRET,
- }),
- });
-
- if (!tokenResponse.ok) {
- return res.status(500).json({
- error: "Failed to authenticate with Pipedream API",
- });
- }
-
- const { access_token } = await tokenResponse.json();
-
- // Use the access token to create a Connect token
- const connectTokenResponse = await fetch(`https://api.pipedream.com/v1/connect/${process.env.PIPEDREAM_PROJECT_ID}/tokens`, {
- method: "POST",
- headers: {
- "Content-Type": "application/json",
- "X-PD-Environment": process.env.PIPEDREAM_PROJECT_ENVIRONMENT || "development",
- "Authorization": `Bearer ${access_token}`,
- },
- body: JSON.stringify({
- external_user_id,
- // Use only the list of origins for the API, not the helper object
- allowed_origins: ALLOWED_ORIGINS.originsList,
- webhook_uri: process.env.PIPEDREAM_CONNECT_TOKEN_WEBHOOK_URI,
- success_redirect_uri: process.env.PIPEDREAM_CONNECT_SUCCESS_REDIRECT_URI,
- error_redirect_uri: process.env.PIPEDREAM_CONNECT_ERROR_REDIRECT_URI,
- }),
- });
-
- if (!connectTokenResponse.ok) {
- return res.status(500).json({
- error: "Failed to create Connect token",
- });
- }
-
- const connectTokenData = await connectTokenResponse.json();
- return res.status(200).json({
- token: connectTokenData.token,
- expires_at: connectTokenData.expires_at,
- connect_link_url: connectTokenData.connect_link_url,
- });
- } catch (error) {
- return res.status(500).json({
- error: "Failed to create token",
- });
- }
-}
-
-// Export the handler with validation and CORS
-export default createApiHandler(tokenHandler, "POST");
diff --git a/docs-v2/pages/api/demo-connect/utils.js b/docs-v2/pages/api/demo-connect/utils.js
deleted file mode 100644
index 3d224c4640dbf..0000000000000
--- a/docs-v2/pages/api/demo-connect/utils.js
+++ /dev/null
@@ -1,218 +0,0 @@
-/**
- * Shared utilities for Connect demo API routes
- */
-
-/**
- * Get allowed origins from environment variables or use defaults
- * This supports Vercel preview deployments with their dynamic URLs
- */
-export function getAllowedOrigins() {
- // Get from environment if defined
- const originsFromEnv = process.env.ALLOWED_ORIGINS
- ? process.env.ALLOWED_ORIGINS.split(",").map((origin) => origin.trim())
- : [];
-
- // Default allowed origins
- const defaultOrigins = [
- "https://pipedream.com",
- "https://www.pipedream.com",
- "http://localhost:3000", // For local development
- ];
-
- // Vercel preview deployment support - match any Vercel preview URL
- const vercelPreviewRegexes = [
- // Standard preview URLs: project-branch-username.vercel.app
- /^https:\/\/[a-zA-Z0-9-]+-[a-zA-Z0-9-]+-[a-zA-Z0-9-]+\.vercel\.app$/,
- // Shortened preview URLs: project-username.vercel.app
- /^https:\/\/[a-zA-Z0-9-]+-[a-zA-Z0-9-]+\.vercel\.app$/,
- // Any subdomain on vercel.app (most permissive)
- /^https:\/\/[a-zA-Z0-9-]+\.vercel\.app$/,
- ];
-
- return {
- originsList: [
- ...defaultOrigins,
- ...originsFromEnv,
- ],
- regexPatterns: vercelPreviewRegexes,
-
- // Helper method to check if an origin is allowed
- isAllowed(origin) {
- if (!origin) return false;
-
- // Check exact matches
- if (this.originsList.includes(origin)) return true;
-
- // Check regex patterns
- return this.regexPatterns.some((pattern) => pattern.test(origin));
- },
- };
-}
-
-// Export the helper for consistent use
-export const ALLOWED_ORIGINS = getAllowedOrigins();
-
-/**
- * Generate a browser-specific token based on request properties
- * Used to verify requests are coming from our frontend
- */
-export function generateRequestToken(req) {
- // Try to determine the effective host that matches what the client would use
- let effectiveHost = req.headers["host"];
-
- // First try to use origin header (best match for client's window.location.host)
- if (req.headers.origin) {
- try {
- const originUrl = new URL(req.headers.origin);
- effectiveHost = originUrl.host;
- } catch (e) {
- console.log("Error parsing origin:", e.message);
- }
- }
- // If no origin, try referer (can also contain the original hostname)
- else if (req.headers.referer) {
- try {
- const refererUrl = new URL(req.headers.referer);
- effectiveHost = refererUrl.host;
- } catch (e) {
- console.log("Error parsing referer:", e.message);
- }
- }
- // Fall back to x-forwarded-host which might be set by proxies
- else if (req.headers["x-forwarded-host"]) {
- effectiveHost = req.headers["x-forwarded-host"];
- }
-
- // For account endpoints specifically, try to extract the host from the requestToken
- // This is a special case for the accounts endpoint where the origin header might be missing
- if (req.url?.includes("/accounts/") && req.headers["x-request-token"]) {
- try {
- const decodedToken = Buffer.from(req.headers["x-request-token"], "base64").toString();
- const parts = decodedToken.split(":");
- // If the token has the expected format with 3 parts, use the host from the token
- if (parts.length === 3) {
- // User-agent:host:connect-demo
- effectiveHost = parts[1];
- }
- } catch (e) {
- console.log("Error extracting host from token:", e.message);
- }
- }
-
- const baseString = `${req.headers["user-agent"]}:${effectiveHost}:connect-demo`;
- return Buffer.from(baseString).toString("base64");
-}
-
-/**
- * Sets CORS headers for API responses
- */
-export function setCorsHeaders(req, res, methods = "GET, POST, OPTIONS") {
- // Use the new isAllowed method to check if the origin is allowed
- res.setHeader(
- "Access-Control-Allow-Origin",
- ALLOWED_ORIGINS.isAllowed(req.headers.origin)
- ? req.headers.origin
- : "",
- );
- res.setHeader("Access-Control-Allow-Methods", methods);
- res.setHeader("Access-Control-Allow-Headers", "Content-Type, X-Request-Token");
-
- // Set COOP header to allow popups to communicate with the parent window
- // This is important for OAuth flows in the Connect integration
- res.setHeader("Cross-Origin-Opener-Policy", "same-origin-allow-popups");
-}
-
-/**
- * Validates if a request comes from an allowed source
- * Performs checks on origin, referer, and request token
- */
-export function validateRequest(req, res, allowedMethod) {
- const origin = req.headers.origin;
- const referer = req.headers.referer;
- const requestToken = req.headers["x-request-token"];
-
- // Origin validation
- if (origin && !ALLOWED_ORIGINS.isAllowed(origin)) {
- return res.status(403).json({
- error: "Access denied",
- });
- }
-
- // Referer validation for docs context
- if (referer) {
- // Extract the origin part of the referer URL (protocol + hostname)
- let refererOrigin;
- try {
- // Try to parse the referer as a URL
- const refererUrl = new URL(referer);
- refererOrigin = refererUrl.origin;
- } catch (e) {
- // If parsing fails, construct it manually
- const parts = referer.split("/");
- if (parts.length >= 3) {
- refererOrigin = parts[0] + "//" + parts[2];
- }
- }
-
- // Check if the referer origin is allowed
- const isRefererAllowed =
- // Check if referer matches allowed origins list
- ALLOWED_ORIGINS.originsList.some((allowed) => referer.startsWith(allowed)) ||
- // Check if referer origin matches any regex pattern
- (refererOrigin &&
- ALLOWED_ORIGINS.regexPatterns.some((pattern) =>
- pattern.test(refererOrigin))
- ) ||
- // Allow if it contains the docs path
- referer.includes("/docs/connect/");
-
- if (!isRefererAllowed) {
- return res.status(403).json({
- error: "Access denied",
- });
- }
- }
-
- // Request token validation to prevent API automation
- const expectedToken = generateRequestToken(req);
-
- if (!requestToken || requestToken !== expectedToken) {
- return res.status(403).json({
- error: "Access denied",
- });
- }
-
- // Method validation
- if (req.method !== allowedMethod && req.method !== "OPTIONS") {
- return res.status(405).json({
- error: "Method not allowed",
- });
- }
-
- // All security checks passed
- return null;
-}
-
-/**
- * Common handler for API requests with validation and CORS
- */
-export function createApiHandler(handler, allowedMethod) {
- return async (req, res) => {
- // Set CORS headers
- setCorsHeaders(req, res, allowedMethod === "GET"
- ? "GET, OPTIONS"
- : "POST, OPTIONS");
-
- // Handle preflight requests
- if (req.method === "OPTIONS") {
- return res.status(200).end();
- }
-
- // Validate the request
- const validationError = validateRequest(req, res, allowedMethod);
- if (validationError) return validationError;
-
- // Call the actual handler
- return handler(req, res);
- };
-}
diff --git a/docs-v2/pages/apps/_meta.tsx b/docs-v2/pages/apps/_meta.tsx
deleted file mode 100644
index 8aa419bdcd5a9..0000000000000
--- a/docs-v2/pages/apps/_meta.tsx
+++ /dev/null
@@ -1,9 +0,0 @@
-export default {
- "index": "Integrated Apps",
- "connected-accounts": "Connected Accounts",
- "oauth-clients": "OAuth Clients",
- "external-auth": {
- display: "hidden",
- },
- "app-partners": "App Partners",
-} as const
diff --git a/docs-v2/pages/apps/app-partners.mdx b/docs-v2/pages/apps/app-partners.mdx
deleted file mode 100644
index 11382e1a08236..0000000000000
--- a/docs-v2/pages/apps/app-partners.mdx
+++ /dev/null
@@ -1,23 +0,0 @@
-# App Partners
-
-By integrating your app with Pipedream, your users will be able to connect your app with over {process.env.PUBLIC_APPS} supported apps on our platform. You gain access and exposure to a community of over 800,000 developers, and can spend more time building your product and less time navigating app integrations.
-
-## Benefits of Integrating With Pipedream
-
-- **End-to-End Development:** Pipedream will handle the entire development process of the integration, from managing authentication, setting up an official Pipedream OAuth client where applicable, and final QA.
-- **Custom Triggers and Actions:** We will create up to three triggers and three actions, based on the methods available within your APIs.
-- **Extensive Developer Exposure:** Your app will be accessible to a large and growing community of developers.
-- **Dedicated App Page:** Control and customize your dedicated app page to market your app to potential users, and share example use cases or workflow templates that can be built to help users get started.
-
-## Integration Process
-
-Integrating with Pipedream is a straightforward process:
-
-1. Pipedream requires an account for testing and development along with API documentation in order to get started. We will build the initial integration, and run test requests to test the connection.
-2. Our team will build no-code triggers and actions that make the most sense from a workflow development perspective - if you have specific triggers and actions in mind to start with, we’ll start there.
-3. Our QA team will thoroughly test the no-code components to ensure that they work as intended, and then we will release and announce the completed integration in our public Slack with over 5,000 active members.
-
-## Get Started
-
-Are you ready to integrate with Pipedream? [Contact our integrations team](https://pipedream.com/support) today to get started.
-
diff --git a/docs-v2/pages/apps/connected-accounts.mdx b/docs-v2/pages/apps/connected-accounts.mdx
deleted file mode 100644
index 620fcb01a0468..0000000000000
--- a/docs-v2/pages/apps/connected-accounts.mdx
+++ /dev/null
@@ -1,255 +0,0 @@
-import Callout from '@/components/Callout'
-import VideoPlayer from '@/components/VideoPlayer'
-
-# Connected Accounts
-
-
-
-Pipedream provides native integrations for [{process.env.PUBLIC_APPS}+ APIs](https://pipedream.com/apps). Once you connect an account, you can
-
-- [Link that account to any step of a workflow](#connecting-accounts), using the associated credentials to make API requests to any service.
-- [Manage permissions](#managing-connected-accounts), limiting access to sensitive accounts
-
-Pipedream handles OAuth for you, ensuring you always have a fresh access token to authorize requests, and [credentials are tightly-secured](/privacy-and-security/#third-party-oauth-grants-api-keys-and-environment-variables).
-
-## Supported Apps
-
-Pipedream supports [{process.env.PUBLIC_APPS}+ apps](https://pipedream.com/apps), and we're adding more every day.
-
-If you don't see an integration for a service you need, you can [request the integration here](#requesting-a-new-app-or-service), or [use environment variables](/workflows/environment-variables/) to manage custom credentials.
-
-## Types of Integrations
-
-### OAuth
-
-For services that support OAuth, Pipedream operates an OAuth application that mediates access to the service so you don't have to maintain your own app, store refresh and access tokens, and more.
-
-When you connect an account, you'll see a new window open where you authorize the Pipedream application to access data in your account. Pipedream stores the OAuth refresh token tied to your authorization grant, automatically generating access tokens you can use to authorized requests to the service's API. You can [access these tokens in code steps](/workflows/building-workflows/code/nodejs/auth/).
-
-### Key-based
-
-We also support services that use API keys or other long-lived tokens to authorize requests.
-
-For those services, you'll have to create your keys in the service itself, then add them to your connected accounts in Pipedream.
-
-For example, if you add a new connected account for **Sendgrid**, you'll be asked to add your Sendgrid API key.
-
-## Connecting accounts
-
-
-This section discusses connecting **your own account** within the Pipedream UI. If you're looking to use the connected accounts for your customers, check out the [Connect docs](/connect/).
-
-
-### From an action
-
-Prebuilt actions that connect to a specific service require you connect your account for that service before you run your workflow. Click the **Connect [APP]** button to get started.
-
-Depending on the integration, this will either:
-
-- Open the OAuth flow for the target service, prompting you to authorize Pipedream to access your account, or
-- Open a modal asking for your API credentials for key-based services
-
-If you've already connected an account for this app, you'll also see a list of existing accounts to select from.
-
-### From the HTTP Request action
-
-Craft a custom HTTP request in a workflow with a connected account _without code_.
-
-In a new step, select the **Send any HTTP Request** to start a new HTTP Request action.
-
-
-
-Then, within the new HTTP request, open the **Authorization Type** dropdown to select a **Select an app**:
-
-
-
-This will open a new prompt to select an app to connect with. Once you select an app, the HTTP request will be updated with the correct headers to authenticate with that app's API.
-
-
-
-Once you connect the selected app account Pipedream will autmatically include your account's authentication keys in the request in the headers, as well as update the URL to match the selected service.
-
-Now you can modify the request path, method, body or query params to perform an action on the endpoint with your authenticated account.
-
-### From a code step
-
-You can connect accounts to code steps by using an `app` prop. Refer to the [connecting apps in Node.js documentation](/workflows/building-workflows/code/nodejs/auth/).
-
-For example, you can connect to Slack from Pipedream (via their OAuth integration), and use the access token Pipedream generates to authorize requests:
-
-```javascript
-import { WebClient } from '@slack/web-api';
-
-// Sends a message to a Slack Channel
-export default defineComponent({
- props: {
- slack: {
- type: 'app',
- app: 'slack'
- }
- },
- async run({ steps, $ }) {
- const web = new WebClient(this.slack.$auth.oauth_access_token)
- return await web.chat.postMessage({
- text: "Hello, world!",
- channel: "#general",
- })
- }
-});
-```
-
-## Managing Connected Accounts
-
-Visit your [Accounts Page](https://pipedream.com/accounts) to see a list of all your connected accounts.
-
-On this page you can:
-
-- Connect your account for any integrated app
-- [View and manage access](#access-control) for your connected accounts
-- Delete a connected account
-- Reconnect an account
-- Change the nickname associated with an account
-
-You'll also see some data associated with these accounts:
-
-- For many OAuth apps, we'll list the scopes for which you've granted Pipedream access
-- The workflows that are using the account
-
-### Connecting a new account
-
-1. Visit [https://pipedream.com/accounts](https://pipedream.com/accounts)
-2. Click the **Connect an app** button at the top-right.
-3. Select the app you'd like to connect.
-
-### Reconnecting an account
-
-If you encounter errors in a step that appear to be related to credentials or authorization, you can reconnect your account:
-
-1. Visit [https://pipedream.com/accounts](https://pipedream.com/accounts)
-2. Search for your account
-3. Click on the _..._ next to your account, on the right side of the page
-4. Select the option to **Reconnect** your account
-
-## Access Control
-
-**New connected accounts are private by default** and can only be used by the person who added it.
-
-
-Connected accounts created prior to August 2023 were accessible to all workspace members by default. You can [restrict access](#managing-access) at any time.
-
-
-### Managing access
-
-- Find the account on the Accounts page and click the 3 dots on the far right of the row
-- Select **Manage Access**
-
-
-
-- You may be prompted to reconnect your account first to verify ownership of the account
-- You can enable access to the entire workspace or individual members
-
-
-
-### Collaborating with others
-
-Even if a workspace member doesn't have access to a private connected account, you can still collaborate together on the same workflows.
-
-Workspace members who don't have access to a connected account **can perform the following actions** on workflows:
-
-- Reference step exports
-- Inspect prop inputs, step logs, and errors
-- Test any step, so they can effectively develop and debug workflows end to end
-
-Workspace members who do **not** have access to a given connected account **cannot modify prop inputs or edit any code** with that account.
-
-
-
-
-
-To make changes to steps that are locked in read-only mode, you can:
-
-- Ask the account owner to [grant access](#managing-access)
-- Click **More Actions** and change the connected account to one that you have access to (note that this may remove some prop configurations)
-
-### Access
-
-Access to connected accounts is enforced at the step-level within workflows and is designed with security and control in mind.
-
-When you connect an account in Pipedream, you are the owner of that connected account, and you always have full access. You can:
-
-- Manage access
-- Delete
-- Reconnect
-- Add to any step or trigger
-
-For connected accounts that are **not** shared with other workspace members:
-
-| Operation | Workspace Owner & Admin | Other Members |
-| -------------------------------------------------- | :---------------------: | :----------------: |
-| View on [Accounts](https://pipedream.com/accounts) | ✅ | ❌ |
-| Add to a new trigger or step | ❌ | ❌ |
-| Modify existing steps | ❌ | ❌ |
-| Test exising steps | ✅ | ✅ |
-| Manage access | ✅ | ❌ |
-| Reconnect | ✅ | ❌ |
-| Delete | ✅ | ❌ |
-
-For connected accounts that **are** shared with other workspace members:
-
-| Operations | Workspace Owner & Admin | Other Members |
-| -------------------------------------------------- | :---------------------: | :----------------: |
-| View on [Accounts](https://pipedream.com/accounts) | ✅ | ✅ |
-| Add to a new trigger or step | ✅ | ✅ |
-| Modify existing steps | ✅ | ✅ |
-| Test exising steps | ✅ | ✅ |
-| Manage access | ✅ | ❌ |
-| Reconnect | ✅ | ❌ |
-| Delete | ✅ | ❌ |
-
-### FAQ
-
-#### Why isn't my connected account showing up in the legacy workflow builder?
-
-In order to use a connected account in the legacy (v1) workflow builder, the account must be shared with the entire workspace. Private accounts are accessible in the latest version of the workflow builder.
-
-#### What is the "Owner" column?
-
-The owner column on the Accounts page indicates who in the workspace originally connected the account (that is the only person who has permissions to manage access).
-
-#### Why is there no "Owner" for certain connected accounts?
-
-Accounts that were connected before August 2023 don't have an owner associated with them, and are shared with the entire workspace. In order to manage access for any of those accounts, we'll first prompt you to reconnect.
-
-#### How can I restrict access to a connected account shared with the workspace?
-
-See above for info on [managing access](#managing-access).
-
-#### Can I still work with other people on a single workflow, even if I don't want them to have access to my connected account?
-
-Yes, see the section on [collaborating with others](#collaborating-with-others).
-
-## Accessing credentials via API
-
-You can access credentials for any connected account via API, letting you build services anywhere and use Pipedream to handle auth. See [the guide for accessing credentials via API](/connect/api/#accounts) for more details.
-
-## Connecting to apps with IP restrictions
-
-
-These IP addresses are tied to **app connections only**, not workflows or other Pipedream services. To whitelist requests from Pipedream workflows, [use VPCs](/workflows/vpc/).
-
-
-If you're connecting to an app that enforces IP restrictions, you may need to whitelist the Pipedream API's IP addresses:
-
-
- {process.env.PD_EGRESS_IP_RANGE}
-
-
-## Account security
-
-[See our security docs](/privacy-and-security/#third-party-oauth-grants-api-keys-and-environment-variables) for details on how Pipedream secures your connected accounts.
-
-## Requesting a new app or service
-
-1. Visit [https://pipedream.com/support](https://pipedream.com/support)
-2. Scroll to the bottom, where you'll see a Support form.
-3. Select **App / Integration questions** and submit the request.
diff --git a/docs-v2/pages/apps/external-auth.mdx b/docs-v2/pages/apps/external-auth.mdx
deleted file mode 100644
index f8f52fae944c5..0000000000000
--- a/docs-v2/pages/apps/external-auth.mdx
+++ /dev/null
@@ -1,61 +0,0 @@
-import Callout from '@/components/Callout'
-
-# Passing external credentials at runtime
-
-If you use a secrets store like [HashiCorp Vault](https://www.vaultproject.io/) or [AWS Secrets Manager](https://aws.amazon.com/secrets-manager/), store credentials in a database, or use a service like [Nango](https://www.nango.dev/) to manage auth, you can retrieve these secrets at runtime and pass them to any step.
-
-There are two ways to pass external auth at runtime:
-
-1. [Pass it in an HTTP request](#pass-credentials-via-http)
-2. [Fetch credentials from a DB or secrets store](#fetch-credentials-from-a-db-or-secrets-store) within a workflow step
-
-
-Passing external credentials at runtime is a feature that's available to customers on the [Business plan](https://pipedream.com/pricing?plan=Enterprise). If you have a use case that you'd like to discuss, [we'd love to hear about it](https://pipedream.com/support)!
-
-
-## Pass credentials via HTTP
-
-1. If not already configured, [add an HTTP trigger](/workflows/building-workflows/triggers/#http) to your workflow.
-2. From your app, retrieve credentials and send them in an HTTP request to the endpoint with the rest of the payload.
-3. In the step of your workflow where you'd like to pass these credentials, select the **Use external authentication** option at the bottom-right of the account selector:
-
-
-
-4. You'll be prompted for all required credentials for the app, often just an `oauth_access_token` or `api_key`. [Find the variable that contains your credentials](/workflows/building-workflows/triggers/#copying-references-to-event-data) and pass them to each field:
-
-
-
-Most steps require additional, user-specific configuration. For example, the Slack **Send a Message** action requires a **Channel ID**, which may be specific to the end user's workspace. You'll need to fetch these values from another step and reference them here.
-
-
-
-
-Default logging
-
-When you return credentials from workflow steps, Pipedream stores it with the rest of the workflow execution data. Workflow events are retained according to the default retention policy for your plan and any [data retention controls](/workflows/building-workflows/settings/#data-retention-controls) you've configured.
-
-You can set [the `pd-nostore` flag](/workflows/building-workflows/triggers/#x-pd-nostore) to `1` on requests with credentials to disable logging for those requests only.
-
-
-## Fetch credentials from a DB or secrets store
-
-1. Add a step to your workflow to fetch credentials from your DB or secrets store.
-2. In the step of your workflow where you'd like to pass these credentials, select the **Use external authentication** option at the bottom-right of the account selector:
-
-
-
-3. You'll be prompted for all required credentials for the app, often just an `oauth_access_token` or `api_key`. [Find the variable that contains your credentials](/workflows/building-workflows/triggers/#copying-references-to-event-data) and pass them to each field:
-
-
-
-Most steps require additional, user-specific configuration. For example, the Slack **Send a Message** action requires a **Channel ID**, which may be specific to the end user's workspace. You'll need to fetch these values from another step and reference them here.
-
-
-
-
-Default logging
-
-When you return credentials from workflow steps, Pipedream stores it with the rest of the workflow execution data. Workflow events are retained according to the default retention policy for your plan and any [data retention controls](/workflows/building-workflows/settings/#data-retention-controls) you've configured.
-
-You can set [the `pd-nostore` flag](/workflows/building-workflows/triggers/#x-pd-nostore) to `1` on requests with credentials to disable logging for those requests only.
-
diff --git a/docs-v2/pages/apps/index.mdx b/docs-v2/pages/apps/index.mdx
deleted file mode 100644
index 8869e211f7031..0000000000000
--- a/docs-v2/pages/apps/index.mdx
+++ /dev/null
@@ -1,79 +0,0 @@
-import Callout from '@/components/Callout'
-
-# Integrated Apps
-
-Pipedream has built-in integrations with more than {process.env.PUBLIC_APPS} apps. Since you can [write any code](/workflows/building-workflows/code/nodejs/) on Pipedream, and pass API keys or credentials using [environment variables](/workflows/environment-variables/), you can connect to virtually any service, so the list is not exhaustive.
-
-But Pipedream-integrated apps provide a few benefits:
-
-- You can [connect the app once](/apps/connected-accounts/) and [link that connected account to any step of a workflow](/apps/connected-accounts/#connecting-accounts)
-- Pipedream provides [pre-built actions](/components/contributing/#actions) that wrap common operations for the app. You shouldn't have to write the code to send a message to Slack, or add a new row to a Google Sheet, so actions make that easy. Actions are just code, so you can fork and modify them, or even [publish your own to the Pipedream community](/components/contributing/).
-- [You have access to your API keys and access tokens in code steps](/workflows/building-workflows/code/nodejs/auth/), so you can write any code to authorize custom requests to these apps.
-
-## Premium Apps
-
-The vast majority of integrated apps on Pipedream are free to use in your workflows across any plan. However, in order to use any of the below apps in an active workflow, your workspace will need to have access to [Premium Apps](https://pipedream.com/pricing):
-
-- [ActiveCampaign](https://pipedream.com/apps/activecampaign)
-- [ADP](https://pipedream.com/apps/adp)
-- [Amazon Advertising](https://pipedream.com/apps/amazon_advertising)
-- [Asana](https://pipedream.com/apps/asana)
-- [AWS](https://pipedream.com/apps/aws)
-- [Azure OpenAI Service](https://pipedream.com/apps/azure-openai-service)
-- [BigCommerce](https://pipedream.com/apps/bigcommerce)
-- [Cisco Webex](https://pipedream.com/apps/cisco-webex)
-- [Cisco Webex (Custom App)](https://pipedream.com/apps/cisco-webex-custom-app)
-- [Close](https://pipedream.com/apps/close)
-- [Cloudinary](https://pipedream.com/apps/cloudinary)
-- [Customer.io](https://pipedream.com/apps/customer-io)
-- [Datadog](https://pipedream.com/apps/datadog)
-- [dbt Cloud](https://pipedream.com/apps/dbt)
-- [ERPNext](https://pipedream.com/apps/erpnext)
-- [Exact](https://pipedream.com/apps/exact)
-- [Freshdesk](https://pipedream.com/apps/freshdesk)
-- [Google Cloud](https://pipedream.com/apps/google-cloud)
-- [Gorgias](https://pipedream.com/apps/gorgias-oauth)
-- [HubSpot](https://pipedream.com/apps/hubspot)
-- [Intercom](https://pipedream.com/apps/intercom)
-- [Jira](https://pipedream.com/apps/jira)
-- [Jira Service Desk](https://pipedream.com/apps/jira-service-desk)
-- [Klaviyo](https://pipedream.com/apps/klaviyo)
-- [Linkedin](https://pipedream.com/apps/linkedin)
-- [Linkedin Ads](https://pipedream.com/apps/linkedin-ads)
-- [Mailchimp](https://pipedream.com/apps/mailchimp)
-- [Mailgun](https://pipedream.com/apps/mailgun)
-- [MongoDB](https://pipedream.com/apps/mongodb)
-- [Outreach](https://pipedream.com/apps/outreach)
-- [PagerDuty](https://pipedream.com/apps/pagerduty)
-- [Pinterest](https://pipedream.com/apps/pinterest)
-- [Pipedrive](https://pipedream.com/apps/pipedrive)
-- [Pipefy](https://pipedream.com/apps/pipefy)
-- [Propeller](https://pipedream.com/apps/propeller)
-- [Quickbooks](https://pipedream.com/apps/quickbooks)
-- [Rebrandly](https://pipedream.com/apps/rebrandly)
-- [ReCharge](https://pipedream.com/apps/recharge)
-- [Salesforce (REST API)](https://pipedream.com/apps/salesforce_rest_api)
-- [Segment](https://pipedream.com/apps/segment)
-- [SendinBlue](https://pipedream.com/apps/sendinblue)
-- [ServiceNow](https://pipedream.com/apps/servicenow)
-- [ShipStation](https://pipedream.com/apps/shipstation)
-- [Shopify](https://pipedream.com/apps/shopify)
-- [Snowflake](https://pipedream.com/apps/snowflake)
-- [Stripe](https://pipedream.com/apps/stripe)
-- [Twilio SendGrid](https://pipedream.com/apps/sendgrid)
-- [WhatsApp Business](https://pipedream.com/apps/whatsapp-business)
-- [WooCommerce](https://pipedream.com/apps/woocommerce)
-- [Xero Accounting](https://pipedream.com/apps/xero_accounting_api)
-- [Zendesk](https://pipedream.com/apps/zendesk)
-- [Zoom Admin](https://pipedream.com/apps/zoom_admin)
-- [Zoho Books](https://pipedream.com/apps/zoho_books)
-- [Zoho CRM](https://pipedream.com/apps/zoho_crm)
-- [Zoho People](https://pipedream.com/apps/zoho_people)
-- [Zoho SalesIQ](https://pipedream.com/apps/zoho_salesiq)
-
-
-Missing an integration?
-If we don't have an integration for an app that you'd like to see, please [let us know](https://pipedream.com/support) or [contribute it to the source available Pipedream registry](/components/contributing/).
-
-
-**Check out the full list of integrated apps [here](https://pipedream.com/apps).**
\ No newline at end of file
diff --git a/docs-v2/pages/apps/oauth-clients.mdx b/docs-v2/pages/apps/oauth-clients.mdx
deleted file mode 100644
index e0846b39db168..0000000000000
--- a/docs-v2/pages/apps/oauth-clients.mdx
+++ /dev/null
@@ -1,57 +0,0 @@
-import Callout from '@/components/Callout'
-import ArcadeEmbed from '@/components/ArcadeEmbed'
-import { Steps } from 'nextra/components'
-
-# OAuth Clients
-By default, OAuth apps in Pipedream use our official OAuth client. When you connect an account for these apps, you grant Pipedream the requested permissions (scopes) on OAuth authorization.
-
-Pipedream apps solve for a broad range of use cases, which means the scopes our OAuth client requests may include a different set than your specific use case. To define the exact scope of access you'd like to grant, you can configure a custom OAuth client.
-
-## Configuring custom OAuth clients
-
-
-
-
-
-### Create an OAuth client in the relevant app
-For example, if you want to use a custom OAuth client for GitHub, you'll need to locate [their documentation](https://docs.github.com/en/apps/oauth-apps/building-oauth-apps/creating-an-oauth-app) and create an OAuth app in your developer settings.
-
-### Navigate to the OAuth Clients page in Pipedream
-Open the [OAuth Clients page in your Pipedream account](https://pipedream.com/@/accounts/oauth-clients) and click **New OAuth Client**.
-
-### Select the app
-Choose the app you need. If you can't find what you're looking for, feel free to [submit an integration request](https://pipedream.com/support).
-
-### Enter the required fields
-- **Name:** Give the OAuth client a name so it's easy to identify
-- **Description:** Optionally add a brief description for additional context
-- **Client ID and Secret**: Paste these values from the app's settings that you're configuring (the client secret is sensitive – we'll encrypt and hide it from the UI)
-- **Redirect URI:** Copy this Redirect URI and paste it into the app's settings
-- **Scopes:** We'll list the scopes from Pipedream's official OAuth client by default. Add or remove scopes as needed based on your use case.
-
-And finally, click **Save**.
-
-
-Make sure to include all the scopes you need based on your use case. You can modify the scopes later (you'll need to reconnect your account for changes to take effect). Refer to the app's API documentation for information on what scopes you'll need.
-
-
-
-
-## Connecting your account with with a custom OAuth client
-Once you've created the OAuth client, anyone in your workspace can connect their account:
-
-
-
-
-
-
-Now you're ready to use the connected account in any workflow, just like any other account in Pipedream:
-
-
-
-### Limitations
-- The vast majority of OAuth apps in Pipedream support custom OAuth clients. However, due to the unique integration requirements for certain apps, custom OAuth clients are not supported in **triggers** for these apps (custom OAuth clients work in actions and code steps): [Discord](https://pipedream.com/apps/discord/), [Dropbox](https://pipedream.com/apps/dropbox/), [Slack](https://pipedream.com/apps/slack/), and [Zoom](https://pipedream.com/apps/zoom/).
\ No newline at end of file
diff --git a/docs-v2/pages/components/_meta.tsx b/docs-v2/pages/components/_meta.tsx
deleted file mode 100644
index 751b3c794f6a2..0000000000000
--- a/docs-v2/pages/components/_meta.tsx
+++ /dev/null
@@ -1,4 +0,0 @@
-export default {
- "index": "Overview",
- "contributing": "Contributing",
-} as const
diff --git a/docs-v2/pages/components/contributing/_meta.tsx b/docs-v2/pages/components/contributing/_meta.tsx
deleted file mode 100644
index bcb33dce05358..0000000000000
--- a/docs-v2/pages/components/contributing/_meta.tsx
+++ /dev/null
@@ -1,9 +0,0 @@
-export default {
- "index": "Overview",
- "api": "Component API",
- "actions-quickstart": "Quickstart — Actions",
- "sources-quickstart": "Quickstart — Sources",
- "guidelines": "Guidelines",
- "typescript": "TypeScript components",
- "cli": "CLI",
-} as const
diff --git a/docs-v2/pages/components/contributing/actions-quickstart.mdx b/docs-v2/pages/components/contributing/actions-quickstart.mdx
deleted file mode 100644
index 1c7e570fc502d..0000000000000
--- a/docs-v2/pages/components/contributing/actions-quickstart.mdx
+++ /dev/null
@@ -1,491 +0,0 @@
-import Callout from '@/components/Callout'
-
-# Quickstart: Action Development
-
-
-
-## Overview
-
-This document is intended for developers who want to author and edit [Pipedream Actions](/components/contributing/#actions). After completing this quickstart, you'll understand how to:
-
-- Develop Pipedream components
-- Publish private actions and use them in workflows
-- Use props to capture user input
-- Update an action
-- Use npm packages
-- Use Pipedream managed auth for a 3rd party app
-
-
-If you previously developed actions using Pipedream's UI, we recommend reviewing our [migration guide](/components/contributing/migrating/) after completing this quickstart.
-
-
-## Prerequisites
-
-- Create a free account at [https://pipedream.com](https://pipedream.com)
-- Download and install the [Pipedream CLI](/components/contributing/cli/install/)
-- Once the CLI is installed, [link your Pipedream account](/components/contributing/cli/login/#existing-pipedream-account) to the CLI by running `pd login` in your terminal
-
-> **NOTE:** See the [CLI reference](/components/contributing/cli/reference/) for detailed usage and examples beyond those covered below.
-
-## Walkthrough
-
-We recommend that you complete the examples below in order.
-
-**hello world! (~5 minutes)**
-
-- Develop a `hello world!` action
-- Publish it (private to your account) using the Pipedream CLI
-- Add it to a workflow and run it
-
-**hello [name]! (~5 minutes)**
-
-- Capture user input using a `string` prop
-- Publish a new version of your action
-- Update the action in your workflow
-
-**Use an npm Package (~5 mins)**
-
-- Require the `axios` npm package
-- Make a simple API request
-- Export data returned by the API from your action
-
-**Use Managed Auth (~10 mins)**
-
-- Use Pipedream managed OAuth for Github with the `octokit` npm package
-- Connect your Github account to the action in a Pipedream workflow
-- Retrieve details for a repo and return them from the action
-
-### hello world!
-
-The following code represents a simple component that can be published as an action ([learn more](/components/contributing/api/) about the component structure). When used in a workflow, it will export `hello world!` as the return value for the step.
-
-```javascript
-export default {
- name: "Action Demo",
- description: "This is a demo action",
- key: "action_demo",
- version: "0.0.1",
- type: "action",
- props: {},
- async run() {
- return `hello world!`;
- },
-};
-```
-
-To get started, save the code to a local `.js` file (e.g., `action.js`) and run the following CLI command:
-
-```bash
-pd publish action.js
-```
-
-The CLI will publish the component as an action in your account with the key `action_demo`. **The key must be unique across all components in your account (sources and actions). If it's not unique, the existing component with the matching key will be updated.**
-
-The CLI output should look similar to this:
-
-```bash
-sc_v4iaWB Action Demo 0.0.1 just now action_demo
-```
-
-To test the action:
-
-1. Open Pipedream in your browser
-
-2. Create a new workflow with a **Schedule** trigger
-
-3. Click the **+** button to add a step to your workflow
-
-4. Click on **My Actions** and then select the **Action Demo** action to add it to your workflow.
- 
-5. Deploy your workflow
-
-6. Click **RUN NOW** to execute your workflow and action
-
-You should see `hello world!` returned as the value for `steps.action_demo.$return_value`.
-
-
-
-Keep the browser tab open. We'll return to this workflow in the rest of the examples as we update the action.
-
-### hello [name]!
-
-Next, let's update the component to capture some user input. First, add a `string` [prop](/components/contributing/api/#props) called `name` to the component.
-
-```java
-export default {
- name: "Action Demo",
- description: "This is a demo action",
- key: "action_demo",
- version: "0.0.1",
- type: "action",
- props: {
- name: {
- type: "string",
- label: "Name",
- }
- },
- async run() {
- return `hello world!`
- },
-}
-```
-
-Next, update the `run()` function to reference `this.name` in the return value.
-
-```javascript
-export default {
- name: "Action Demo",
- description: "This is a demo action",
- key: "action_demo",
- version: "0.0.1",
- type: "action",
- props: {
- name: {
- type: "string",
- label: "Name",
- },
- },
- async run() {
- return `hello ${this.name}!`;
- },
-};
-```
-
-Finally, update the component version to `0.0.2`. If you fail to update the version, the CLI will throw an error.
-
-```javascript
-export default {
- name: "Action Demo",
- description: "This is a demo action",
- key: "action_demo",
- version: "0.0.2",
- type: "action",
- props: {
- name: {
- type: "string",
- label: "Name",
- },
- },
- async run() {
- return `hello ${this.name}!`;
- },
-};
-```
-
-Save the file and run the `pd publish` command again to update the action in your account.
-
-```bash
-pd publish action.js
-```
-
-The CLI will update the component in your account with the key `action_demo`. You should see something like this:
-
-```bash
-sc_Egip04 Action Demo 0.0.2 just now action_demo
-```
-
-Next, let's update the action in the workflow from the previous example and run it.
-
-1. Hover over the action in your workflow — you should see an update icon at the top right. Click the icon to update the action to the latest version and then save the workflow. If you don't see the icon, verify that the CLI successfully published the update or try refreshing the page.
-
- 
-
-2. After saving the workflow, you should see an input field appear. Enter a value for the `Name` input (e.g., `foo`).
- 
-3. Deploy the workflow and click **RUN NOW**
-
-You should see `hello foo!` (or the value you entered for `Name`) as the value returned by the step.
-
-### Use an npm Package
-
-Next, we'll update the component to get data from the Star Wars API using the `axios` npm package. To use the `axios` package, just `import` it.
-
-```javascript
-import { axios } from "@pipedream/platform";
-
-export default {
- name: "Action Demo",
- description: "This is a demo action",
- key: "action_demo",
- version: "0.0.2",
- type: "action",
- props: {
- name: {
- type: "string",
- label: "Name",
- },
- },
- async run() {
- return `hello ${this.name}!`;
- },
-};
-```
-
-
-To use most npm packages on Pipedream, just `import` or `require` them — there is no `package.json` or `npm install` required.
-
-
-Then, update the `run()` method to:
-
-- Make a request to the following endpoint for the Star Wars API: `https://swapi.dev/api/people/1/`
-- Reference the `name` field of the payload returned by the API
-
-```javascript
-import { axios } from "@pipedream/platform";
-
-export default {
- name: "Action Demo",
- description: "This is a demo action",
- key: "action_demo",
- version: "0.0.2",
- type: "action",
- props: {
- name: {
- type: "string",
- label: "Name",
- },
- },
- async run({ $ }) {
- const data = await axios($, {
- url: "https://swapi.dev/api/people/1/",
- });
- return `hello ${data.name}!`;
- },
-};
-```
-
-Next, remove the `name` prop since we're no longer using it.
-
-```javascript
-import { axios } from "@pipedream/platform";
-
-export default {
- name: "Action Demo",
- description: "This is a demo action",
- key: "action_demo",
- version: "0.0.2",
- type: "action",
- props: {},
- async run({ $ }) {
- const data = await axios($, {
- url: "https://swapi.dev/api/people/1/",
- });
- return `hello ${data.name}!`;
- },
-};
-```
-
-Finally, update the version to `0.0.3`. If you fail to update the version, the CLI will throw an error.
-
-```javascript
-import { axios } from "@pipedream/platform";
-
-export default {
- name: "Action Demo",
- description: "This is a demo action",
- key: "action_demo",
- version: "0.0.3",
- type: "action",
- props: {},
- async run({ $ }) {
- const data = await axios($, {
- url: "https://swapi.dev/api/people/1/",
- });
- return `hello ${data.name}!`;
- },
-};
-```
-
-Save the file and run the `pd publish` command again to update the action in your account.
-
-```bash
-pd publish action.js
-```
-
-The CLI will update the component in your account with the key `action_demo`. You should see something like this:
-
-```bash
-sc_ZriKEn Action Demo 0.0.3 1 second ago action_demo
-```
-
-Follow the steps in the previous example to update and run the action in your workflow. You should see `hello Luke Skywalker!` as the return value for the step.
-
-### Use Managed Auth
-
-For the last example, we'll use Pipedream managed auth to retrieve and emit data from the Github API (which uses OAuth for authentication). First, remove the line that imports `axios` and clear the `run()` function from the last example. Your code should look like this:
-
-```javascript
-export default {
- name: "Action Demo",
- description: "This is a demo action",
- key: "action_demo",
- version: "0.0.3",
- type: "action",
- async run() {},
-};
-```
-
-Next, import Github's `octokit` npm package
-
-```javascript
-import { Octokit } from "@octokit/rest";
-
-export default {
- name: "Action Demo",
- description: "This is a demo action",
- key: "action_demo",
- version: "0.0.3",
- type: "action",
- async run() {},
-};
-```
-
-Then add an [app prop](/components/contributing/api/#app-props) to use Pipedream managed auth with this component. For this example, we'll add an app prop for Github:
-
-```javascript
-import { Octokit } from "@octokit/rest";
-
-export default {
- name: "Action Demo",
- description: "This is a demo action",
- key: "action_demo",
- version: "0.0.3",
- type: "action",
- props: {
- github: {
- type: "app",
- app: "github",
- },
- },
- async run() {},
-};
-```
-
-
-The value for the `app` property is the name slug for the app in Pipedream. This is not currently discoverable, but it will be in the near future on app pages in the [Pipedream Marketplace](https://pipedream.com/explore). For the time being, if you want to know how to reference an app, please please [reach out](https://pipedream.com/community).
-
-
-Next, update the `run()` method to get a repo from Github and return it. For this example, we'll pass static values to get the `pipedreamhq/pipedream` repo. Notice that we're passing the `oauth_access_token` in the authorization header by referencing the `$auth` property of the app prop — `this.github.$auth.oauth_access_token`. You can discover how to reference auth tokens in the **Authentication Strategy** section for each app in the [Pipedream Marketplace](https://pipedream.com/explore).
-
-```javascript
-import { Octokit } from "@octokit/rest";
-
-export default {
- name: "Action Demo",
- description: "This is a demo action",
- key: "action_demo",
- version: "0.0.3",
- type: "action",
- props: {
- github: {
- type: "app",
- app: "github",
- },
- },
- async run() {
- const octokit = new Octokit({
- auth: this.github.$auth.oauth_access_token,
- });
-
- return (
- await octokit.rest.repos.get({
- owner: `pipedreamhq`,
- repo: `pipedream`,
- })
- ).data;
- },
-};
-```
-
-In order to help users understand what's happening with each action step, we recommend surfacing a brief summary with `$summary` ([read more](/components/contributing/api/#actions) about exporting data using `$.export`).
-
-```javascript
-import { Octokit } from "@octokit/rest";
-
-export default {
- name: "Action Demo",
- description: "This is a demo action",
- key: "action_demo",
- version: "0.0.3",
- type: "action",
- props: {
- github: {
- type: "app",
- app: "github",
- },
- },
- async run({ $ }) {
- const octokit = new Octokit({
- auth: this.github.$auth.oauth_access_token,
- });
-
- const { data } = await octokit.rest.repos.get({
- owner: `pipedreamhq`,
- repo: `pipedream`,
- });
-
- $.export("$summary", `Successfully fetched info for \`${data.full_name}\``);
-
- return data;
- },
-};
-```
-
-Finally, update the version to `0.0.4`. If you fail to update the version, the CLI will throw an error.
-
-```javascript
-import { Octokit } from "@octokit/rest";
-
-export default {
- name: "Action Demo",
- description: "This is a demo action",
- key: "action_demo",
- version: "0.0.4",
- type: "action",
- props: {
- github: {
- type: "app",
- app: "github",
- },
- },
- async run({ $ }) {
- const octokit = new Octokit({
- auth: this.github.$auth.oauth_access_token,
- });
-
- const { data } = await octokit.rest.repos.get({
- owner: `pipedreamhq`,
- repo: `pipedream`,
- });
-
- $.export("$summary", `Successfully fetched info for \`${data.full_name}\``);
-
- return data;
- },
-};
-```
-
-Save the file and run the `pd publish` command again to update the action in your account.
-
-```bash
-pd publish action.js
-```
-
-The CLI will update the component in your account with the key `action_demo`. You should see something like this:
-
-```bash
-sc_k3ia53 Action Demo 0.0.4 just now action_demo
-```
-
-Follow the steps in the earlier example to update the action in your workflow (you may need to save your workflow after refreshing the action). You should now see a prompt to connect your Github account to the step:
-
-
-Select an existing account or connect a new one, and then deploy your workflow and click **RUN NOW**. You should see the results returned by the action:
-
-
-
-## What's Next?
-
-You're ready to start authoring and publishing actions on Pipedream! You can also check out the [detailed component reference](/components/contributing/api/#component-api) at any time!
-
-If you have any questions or feedback, please [reach out](https://pipedream.com/community)!
diff --git a/docs-v2/pages/components/contributing/api.mdx b/docs-v2/pages/components/contributing/api.mdx
deleted file mode 100644
index 6eeb275a44334..0000000000000
--- a/docs-v2/pages/components/contributing/api.mdx
+++ /dev/null
@@ -1,1212 +0,0 @@
-import Callout from '@/components/Callout'
-
-# Component API Reference
-
-
-Our TypeScript component API is in **beta**. If you're interested in developing TypeScript components and providing feedback, [see our TypeScript docs](/components/contributing/typescript/).
-
-
-This document was created to help developers author and use [Pipedream components](/components/contributing/). Not only can you develop [sources](/components/contributing/sources-quickstart/) (workflow triggers) and [actions](/components/contributing/actions-quickstart/) using the component API, but you can also develop [Node.js steps](/workflows/building-workflows/code/nodejs/) right in your workflows - without leaving your browser! You can publish components to your account for private use, or [contribute them to the Pipedream registry](/components/contributing/) for anyone to run.
-
-While sources and actions share the same core component API, they differ in both how they're used and written, so certain parts of the component API apply only to one or the other. [This section of the docs](#differences-between-sources-and-actions) explains the core differences. When this document uses the term "component", the corresponding feature applies to both sources and actions. If a specific feature applies to only sources _or_ actions, the correct term will be used.
-
-If you have any questions about component development, please reach out [in our community](https://pipedream.com/community/c/dev/11).
-
-## Overview
-
-### What is a component?
-
-Components are Node.js modules that run on Pipedream's serverless infrastructure.
-
-- Trigger Node.js code on HTTP requests, timers, cron schedules, or manually
-- Emit data on each event to inspect it. Trigger Pipedream hosted workflows or access it outside of Pipedream via API
-- Accept user input on deploy via [CLI](/components/contributing/cli/reference/#pd-deploy), [API](/workflows/rest-api), or [UI](https://pipedream.com/sources)
-- Connect to [{process.env.PUBLIC_APPS}+ apps](https://pipedream.com/apps) using Pipedream managed auth
-- Use most npm packages with no `npm install` or `package.json` required
-- Store and retrieve state using the [built-in key-value store](#db)
-
-### Quickstarts
-
-To help you get started, we created a step-by-step walkthrough for developing both [sources](/components/contributing/sources-quickstart/) and [actions](/components/contributing/actions-quickstart/). We recommend starting with those docs and using the API reference below as you develop.
-
-### Differences between sources and actions
-
-Sources and actions share the same component API. However, certain features of the API only apply to one or the other:
-
-- Actions are defined with `type: action` ([see the docs on the `type` property](#component-structure)). Sources require no `type` property be set. Components without a `type` are considered sources.
-
-- Sources emit events [using `this.$emit`](#emit), which trigger linked workflows. Any features associated with emitting events (e.g., [dedupe strategies](#dedupe-strategies)) can only be used with sources. Actions [return data using `return` or `$.export`](#returning-data-from-steps), which is made available to future steps of the associated workflow.
-
-- Sources have access to [lifecycle hooks](#lifecycle-hooks), which are often required to configure the source to listen for new events. Actions do not have access to these lifecycle hooks.
-
-- Actions have access to [a special `$` variable](#actions), passed as a parameter to the `run` method. This variable exposes functions that allow you to send data to destinations, export data from the action, return HTTP responses, and more.
-
-- Sources can be developed iteratively using `pd dev`. Actions currently cannot (please follow [this issue](https://github.com/PipedreamHQ/pipedream/issues/1437) to be notified of updates).
-
-- You use `pd deploy` to deploy sources to your account. You use `pd publish` to publish actions, making them available for use in workflows.
-
-- You can attach [interfaces](#interface-props) (like HTTP endpoints, or timers) to sources. This defines how the source is invoked. Actions do not have interfaces, since they're run step-by-step as a part of the associated workflow.
-
-### Getting Started with the CLI
-
-Several examples below use the Pipedream CLI. To install it, [follow the instructions for your OS / architecture](/components/contributing/cli/install/).
-
-See the [CLI reference](/components/contributing/cli/reference/) for detailed usage and examples beyond those covered below.
-
-### Example Components
-
-You can find hundreds of example components in the `components/` directory of the [`PipedreamHQ/pipedream` repo](https://github.com/PipedreamHQ/pipedream).
-
-## Component API
-
-### Component Structure
-
-Pipedream components export an object with the following properties:
-
-```javascript
-export default {
- name: "",
- key: "",
- type: "",
- version: "",
- description: "",
- props: {},
- methods: {},
- hooks: {
- async activate() {},
- async deactivate() {},
- async deploy() {},
- },
- dedupe: "",
- async run(event) {
- this.$emit(event);
- },
-};
-```
-
-| Property | Type | Required? | Description |
-| ------------- | -------- | ----------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
-| `name` | `string` | required | The name of the component, a string which identifies components deployed to users' accounts. This name will show up in the Pipedream UI, in CLI output (for example, from `pd list` commands), etc. It will also be converted to a unique slug on deploy to reference a specific component instance (it will be auto-incremented if not unique within a user account). |
-| `key` | `string` | recommended | The `key` uniquely identifies a component within a namespace. The default namespace for components is your account. When publishing components to the Pipedream registry, the `key` must be unique across registry components and should follow the pattern: `app_name_slug`-`slugified-component-name` |
-| `type` | `string` | required | When publishing an action, `type: "action"` is required. When publishing a source, use `type: "source"`. |
-| `version` | `string` | required | The component version. There are no constraints on the version, but [semantic versioning](https://semver.org/) is required for any components published to the [Pipedream registry](/components/contributing/guidelines/). |
-| `description` | `string` | recommended | The description will appear in the Pipedream UI to aid in discovery and to contextualize instantiated components |
-| `props` | `object` | optional | [Props](#props) are custom attributes you can register on a component. When a value is passed to a prop attribute, it becomes a property on that component instance. You can reference these properties in component code using `this` (e.g., `this.propName`). |
-| `methods` | `object` | optional | Define component methods for the component instance. They can be referenced via `this` (e.g., `this.methodName()`). |
-| `hooks` | `object` | optional (sources only) | [Hooks](#hooks) are functions that are executed when specific component lifecycle events occur. |
-| `dedupe` | `string` | optional (sources only) | You may specify a [dedupe strategy](#dedupe-strategies) to be applied to emitted events |
-| `run` | `method` | required | Each time a component is invoked (for example, via HTTP request), [its `run` method](#run) is called. The event that triggered the component is passed to `run`, so that you can access it within the method. Events are emitted using `this.$emit()`. |
-
-### Props
-
-Props are custom attributes you can register on a component. When a value is passed to a prop attribute, it becomes a property on that component instance. You can reference these properties in component code using `this` (e.g., `this.propName`).
-
-| Prop Type | Description |
-| ------------------------------- | --------------------------------------------------------------------------------------------- |
-| [User Input](#user-input-props) | Enable components to accept input on deploy |
-| [Interface](#interface-props) | Attaches a Pipedream interface to your component (e.g., an HTTP interface or timer) |
-| [Service](#service-props) | Attaches a Pipedream service to your component (e.g., a key-value database to maintain state) |
-| [App](#app-props) | Enables managed auth for a component |
-| [Data Store](/workflows/data-management/data-stores/#using-data-stores-in-code-steps) | Provides access to a Pipedream [data store](/workflows/data-management/data-stores/) |
-| [HTTP Request](#http-request-prop)| Enables components to execute HTTP requests based on user input |
-| [Alert](#alert-prop)| Renders an informational alert in the prop form to help users configure the source or action |
-
-#### User Input Props
-
-User input props allow components to accept input on deploy. When deploying a component, users will be prompted to enter values for these props, setting the behavior of the component accordingly.
-
-##### General
-
-**Definition**
-
-```javascript
-props: {
- myPropName: {
- type: "",
- label: "",
- description: "",
- options: [], // OR async options() {} to return dynamic options
- optional: true || false,
- propDefinition: [],
- default: "",
- secret: true || false,
- min: ,
- max: ,
- disabled: true || false,
- hidden: true || false
- },
-},
-```
-
-| Property | Type | Required? | Description |
-| ---------------- | ------------------------------------ | --------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
-| `type` | `string` | required | Value must be set to a valid `PropType` (see below). Suffix with `[]` (e.g. `string[]`) to denote array of that type (if supported). |
-| `label` | `string` | optional | A friendly label to show to user for this prop. If a label is not provided, the `propName` is displayed to the user. |
-| `description` | `string` | optional | Displayed near the prop input. Typically used to contextualize the prop or provide instructions to help users input the correct value. Markdown is supported. |
-| `options` | `string[]` or `object[]` or `method` | optional | Provide an array to display options to a user in a drop down menu. **`[]` Basic usage** Array of strings. E.g., `['option 1', 'option 2']` **`object[]` Define Label and Value** `[{ label: 'Label 1', value: 'label1'}, { label: 'Label 2', value: 'label2'}]` **`method` Dynamic Options** You can generate options dynamically (e.g., based on real-time API requests with pagination). See configuration details below. |
-| `useQuery` | `boolean` | optional | Use in conjunction with **Dynamic Options**. If set to `true`, the prop accepts a real-time query that can be used by the `options` method to obtain results according to that query. |
-| `optional` | `boolean` | optional | Set to `true` to make this prop optional. Defaults to `false`. |
-| `propDefinition` | `[]` | optional | Re-use a prop defined in an app file. When you include a prop definition, the prop will inherit values for all the properties listed here. However, you can override those values by redefining them for a given prop instance. See **propDefinitions** below for usage. |
-| `default` | `string` | optional | Define a default value if the field is not completed. Can only be defined for optional fields (required fields require explicit user input). |
-| `secret` | `boolean` | optional | If set to `true`, this field will hide your input in the browser like a password field, and its value will be encrypted in Pipedream's database. The value will be decrypted when the component is run in [the execution environment](/privacy-and-security/#execution-environment). Defaults to `false`. Only allowed for `string` props. |
-| `min` | `integer` | optional | Minimum allowed integer value. Only allowed for `integer` props.. |
-| `max` | `integer` | optional | Maximum allowed integer value . Only allowed for `integer` props. |
-| `disabled` | `boolean` | optional | Set to `true` to disable usage of this prop. Defaults to `false`. |
-| `hidden` | `boolean` | optional | Set to `true` to hide this field. Defaults to `false`. |
-
-**Prop Types**
-
-| Prop Type | Array Supported | Supported in Sources? | Supported in Actions? | Custom properties |
-| ------------------- | --------------- | --------------------- | --------------------- | :---------------------------------------------------------------------------------------------------------- |
-| `app` | | ✓ | ✓ | See [App Props](#app-props) below |
-| `boolean` | ✓ | ✓ | ✓ |
-| `integer` | ✓ | ✓ | ✓ | - `min` (`integer`): Minimum allowed integer value. - `max` (`integer`): Maximum allowed integer value. |
-| `string` | ✓ | ✓ | ✓ | - `secret` (`boolean`): Whether to treat the value as a secret. |
-| `object` | | ✓ | ✓ |
-| `any` | | | ✓ |
-| `$.interface.http` | | ✓ | |
-| `$.interface.timer` | | ✓ | |
-| `$.service.db` | | ✓ | |
-| `data_store` | | | ✓ |
-| `http_request` | | | ✓ |
-| `alert` | | ✓ | ✓ | See [Alert Prop](#alert-prop) below
-
-**Usage**
-
-| Code | Description | Read Scope | Write Scope |
-| ----------------- | ---------------------------------------- | ------------------------- | --------------------------------------------------------------------------------------- |
-| `this.myPropName` | Returns the configured value of the prop | `run()` `hooks` `methods` | n/a (input props may only be modified on component deploy or update via UI, CLI or API) |
-
-**Example**
-
-Following is an example source that demonstrates how to capture user input via a prop and emit it on each event:
-
-```javascript
-export default {
- name: "User Input Prop Example",
- version: "0.1",
- props: {
- msg: {
- type: "string",
- label: "Message",
- description: "Enter a message to `console.log()`",
- },
- },
- async run() {
- this.$emit(this.msg);
- },
-};
-```
-
-To see more examples, explore the [curated components in Pipedream's GitHub repo](#example-components).
-
-##### Advanced Configuration
-
-##### Async Options ([example](https://github.com/PipedreamHQ/pipedream/blob/master/components/github/github.app.mjs))
-
-Async options allow users to select prop values that can be programmatically-generated (e.g., based on a real-time API response).
-
-```javascript
-async options({
- page,
- prevContext,
- query,
-}) {},
-```
-
-| Property | Type | Required? | Description |
-| ------------- | --------- | --------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
-| `options()` | `method` | optional | Typically returns an array of values matching the prop type (e.g., `string`) or an array of object that define the `label` and `value` for each option. The `page` and `prevContext` input parameter names are reserved for pagination (see below). When using `prevContext` for pagination, it must return an object with an `options` array and a `context` object with a `nextPageToken` key. E.g., `{ options, context: { nextPageToken }, }` |
-| `page` | `integer` | optional | Returns a `0` indexed page number. Use with APIs that accept a numeric page number for pagination. |
-| `prevContext` | `string` | optional | Returns a string representing the context for the previous `options` execution. Use with APIs that accept a token representing the last record for pagination. |
-| `query` | `string` | optional | Returns a string with the user input if the prop has the `useQuery` property set to `true`. Use with APIs that return items based on a query or search parameter. |
-
-Following is an example source demonstrating the usage of async options:
-
-```javascript
-export default {
- name: "Async Options Example",
- version: "0.1",
- props: {
- msg: {
- type: "string",
- label: "Message",
- description: "Select a message to `console.log()`",
- async options() {
- // write any node code that returns a string[] or object[] (with label/value keys)
- return ["This is option 1", "This is option 2"];
- },
- },
- },
- async run() {
- this.$emit(this.msg);
- },
-};
-```
-
-##### Prop Definitions ([example](https://github.com/PipedreamHQ/pipedream/blob/master/components/github/sources/new-commit/new-commit.mjs))
-
-Prop definitions enable you to reuse props that are defined in another object. A common use case is to enable re-use of props that are defined for a specific app.
-
-```javascript
-props: {
- myPropName: {
- propDefinition: [
- app,
- "propDefinitionName",
- inputValues
- ]
- },
-},
-
-```
-
-| Property | Type | Required? | Description |
-| -------------------- | -------- | --------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
-| `propDefinition` | `array` | optional | An array of options that define a reference to a `propDefinitions` within the `propDefinitions` for an `app` |
-| `app` | `object` | required | An app object |
-| `propDefinitionName` | `string` | required | The name of a specific `propDefinition` defined in the corresponding `app` object |
-| `inputValues` | `object` | optional | Values to pass into the prop definition. To reference values from previous props, use an arrow function. E.g.,: `c => ({ variableName: c.previousPropName })` [See these docs](#referencing-values-from-previous-props) for more information. |
-
-Following is an example source that demonstrates how to use `propDefinitions`.
-
-```javascript
-const rss = {
- type: "app",
- app: "rss",
- propDefinitions: {
- urlDef: {
- type: "string",
- label: "RSS URL",
- description: "Enter a URL for an RSS feed.",
- },
- },
-};
-
-export default {
- name: "Prop Definition Example",
- description: `This component captures an RSS URL and logs it`,
- version: "0.1",
- props: {
- rss,
- url: { propDefinition: [rss, "urlDef"] },
- },
- async run() {
- console.log(this.url);
- },
-};
-```
-
-##### Referencing values from previous props
-
-When you define a prop in an app file, and that prop depends on the value of another prop, you'll need to pass the value of the previous props in a special way. Let's review an example from [Trello](https://trello.com), a task manager.
-
-You create Trello _boards_ for new projects. Boards contain _lists_. For example, this **Active** board contains two lists:
-
-
-
-In Pipedream, users can choose from lists on a specific board:
-
-
-
-Both **Board** and **Lists** are defined in the Trello app file:
-
-```javascript
-board: {
- type: "string",
- label: "Board",
- async options(opts) {
- const boards = await this.getBoards(this.$auth.oauth_uid);
- const activeBoards = boards.filter((board) => board.closed === false);
- return activeBoards.map((board) => {
- return { label: board.name, value: board.id };
- });
- },
-},
-lists: {
- type: "string[]",
- label: "Lists",
- optional: true,
- async options(opts) {
- const lists = await this.getLists(opts.board);
- return lists.map((list) => {
- return { label: list.name, value: list.id };
- });
- },
-}
-```
-
-In the `lists` prop, notice how `opts.board` references the board. You can pass `opts` to the prop's `options` method when you reference `propDefinitions` in specific components:
-
-```javascript
-board: { propDefinition: [trello, "board"] },
-lists: {
- propDefinition: [
- trello,
- "lists",
- (configuredProps) => ({ board: configuredProps.board }),
- ],
-},
-```
-
-`configuredProps` contains the props the user previously configured (the board). This allows the `lists` prop to use it in the `options` method.
-
-##### Dynamic props
-
-Some prop definitions must be computed dynamically, after the user configures another prop. We call these **dynamic props**, since they are rendered on-the-fly. This technique is used in [the Google Sheets **Add Single Row** action](https://github.com/PipedreamHQ/pipedream/blob/master/components/google_sheets/actions/add-single-row/add-single-row.mjs), which we'll use as an example below.
-
-First, determine the prop whose selection should render dynamic props. In the Google Sheets example, we ask the user whether their sheet contains a header row. If it does, we display header fields as individual props:
-
-
-
-To load dynamic props, the header prop must have the `reloadProps` field set to `true`:
-
-```javascript
-hasHeaders: {
- type: "string",
- label: "Does the first row of the sheet have headers?",
- description: "If the first row of your document has headers we'll retrieve them to make it easy to enter the value for each column.",
- options: [
- "Yes",
- "No",
- ],
- reloadProps: true,
-},
-```
-
-When a user chooses a value for this prop, Pipedream runs the `additionalProps` component method to render props:
-
-```javascript
-async additionalProps() {
- const sheetId = this.sheetId?.value || this.sheetId;
- const props = {};
- if (this.hasHeaders === "Yes") {
- const { values } = await this.googleSheets.getSpreadsheetValues(sheetId, `${this.sheetName}!1:1`);
- if (!values[0]?.length) {
- throw new ConfigurationError("Cound not find a header row. Please either add headers and click \"Refresh fields\" or adjust the action configuration to continue.");
- }
- for (let i = 0; i < values[0]?.length; i++) {
- props[`col_${i.toString().padStart(4, "0")}`] = {
- type: "string",
- label: values[0][i],
- optional: true,
- };
- }
- } else if (this.hasHeaders === "No") {
- props.myColumnData = {
- type: "string[]",
- label: "Values",
- description: "Provide a value for each cell of the row. Google Sheets accepts strings, numbers and boolean values for each cell. To set a cell to an empty value, pass an empty string.",
- };
- }
- return props;
-},
-```
-
-The signature of this function is:
-
-```javascript
-async additionalProps(previousPropDefs)
-```
-
-where `previousPropDefs` are the full set of props (props merged with the previous `additionalProps`). When the function is executed, `this` is bound similar to when the `run` function is called, where you can access the values of the props as currently configured, and call any `methods`. The return value of `additionalProps` will replace any previous call, and that return value will be merged with props to define the final set of props.
-
-Following is an example that demonstrates how to use `additionalProps` to dynamically change a prop's `disabled` and `hidden` properties:
-
-```javascript
-async additionalProps(previousPropDefs) {
- if (this.myCondition === "Yes") {
- previousPropDefs.myPropName.disabled = true;
- previousPropDefs.myPropName.hidden = true;
- } else {
- previousPropDefs.myPropName.disabled = false;
- previousPropDefs.myPropName.hidden = false;
- }
- return previousPropDefs;
-},
-```
-
-Dynamic props can have any one of the following prop types:
-
-- `app`
-- `boolean`
-- `integer`
-- `string`
-- `object`
-- `any`
-- `$.interface.http`
-- `$.interface.timer`
-- `data_store`
-- `http_request`
-
-#### Interface Props
-
-Interface props are infrastructure abstractions provided by the Pipedream platform. They declare how a source is invoked — via HTTP request, run on a schedule, etc. — and therefore define the shape of the events it processes.
-
-| Interface Type | Description |
-| --------------- | --------------------------------------------------------------- |
-| [Timer](#timer) | Invoke your source on an interval or based on a cron expression |
-| [HTTP](#http) | Invoke your source on HTTP requests |
-
-#### Timer
-
-To use the timer interface, declare a prop whose value is the string `$.interface.timer`:
-
-**Definition**
-
-```javascript
-props: {
- myPropName: {
- type: "$.interface.timer",
- default: {},
- },
-}
-```
-
-| Property | Type | Required? | Description |
-| --------- | -------- | --------- | -------------------------------------------------------------------------------------------------------------------------------------------- |
-| `type` | `string` | required | Must be set to `$.interface.timer` |
-| `default` | `object` | optional | **Define a default interval** `{ intervalSeconds: 60, },` **Define a default cron expression** `{ cron: "0 0 * * *", },` |
-
-**Usage**
-
-| Code | Description | Read Scope | Write Scope |
-| ----------------- | ------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------- | ------------------------------------------------------------------------------------------- |
-| `this.myPropName` | Returns the type of interface configured (e.g., `{ type: '$.interface.timer' }`) | `run()` `hooks` `methods` | n/a (interface props may only be modified on component deploy or update via UI, CLI or API) |
-| `event` | Returns an object with the execution timestamp and interface configuration (e.g., `{ "timestamp": 1593937896, "interval_seconds": 3600 }`) | `run(event)` | n/a (interface props may only be modified on source deploy or update via UI, CLI or API) |
-
-**Example**
-
-Following is a basic example of a source that is triggered by a `$.interface.timer` and has default defined as a cron expression.
-
-```javascript
-export default {
- name: "Cron Example",
- version: "0.1",
- props: {
- timer: {
- type: "$.interface.timer",
- default: {
- cron: "0 0 * * *", // Run job once a day
- },
- },
- },
- async run() {
- console.log("hello world!");
- },
-};
-```
-
-Following is an example source that's triggered by a `$.interface.timer` and has a `default` interval defined.
-
-```javascript
-export default {
- name: "Interval Example",
- version: "0.1",
- props: {
- timer: {
- type: "$.interface.timer",
- default: {
- intervalSeconds: 60 * 60 * 24, // Run job once a day
- },
- },
- },
- async run() {
- console.log("hello world!");
- },
-};
-```
-
-##### HTTP
-
-To use the HTTP interface, declare a prop whose value is the string `$.interface.http`:
-
-```javascript
-props: {
- myPropName: {
- type: "$.interface.http",
- customResponse: true, // optional: defaults to false
- },
-}
-```
-
-**Definition**
-
-| Property | Type | Required? | Description |
-| --------- | -------- | --------- | ------------------------------------------------------------------------------------------------------------ |
-| `type` | `string` | required | Must be set to `$.interface.http` |
-| `respond` | `method` | required | The HTTP interface exposes a `respond()` method that lets your component issue HTTP responses to the client. |
-
-**Usage**
-
-| Code | Description | Read Scope | Write Scope |
-| --------------------------- | --------------------------------------------------------------------------------------------------------------------------------------- | ------------------------- | ----------------------------------------------------------------------------------------------------------------------------- |
-| `this.myPropName` | Returns an object with the unique endpoint URL generated by Pipedream (e.g., `{ endpoint: 'https://abcde.m.pipedream.net' }`) | `run()` `hooks` `methods` | n/a (interface props may only be modified on source deploy or update via UI, CLI or API) |
-| `event` | Returns an object representing the HTTP request (e.g., `{ method: 'POST', path: '/', query: {}, headers: {}, bodyRaw: '', body: {}, }`) | `run(event)` | The shape of `event` corresponds with the the HTTP request you make to the endpoint generated by Pipedream for this interface |
-| `this.myPropName.respond()` | Returns an HTTP response to the client (e.g., `this.http.respond({status: 200})`). | n/a | `run()` |
-
-###### Responding to HTTP requests
-
-The HTTP interface exposes a `respond()` method that lets your source issue HTTP responses. You may run `this.http.respond()` to respond to the client from the `run()` method of a source. In this case you should also pass the `customResponse: true` parameter to the prop.
-
-| Property | Type | Required? | Description |
-| --------- | -------------------------- | --------- | ------------------------------------------------------------------------------------------------------------------------------ |
-| `status` | `integer` | required | An integer representing the HTTP status code. Return `200` to indicate success. Standard status codes range from `100` - `599` |
-| `headers` | `object` | optional | Return custom key-value pairs in the HTTP response |
-| `body` | `string` `object` `buffer` | optional | Return a custom body in the HTTP response. This can be any string, object, or Buffer. |
-
-###### HTTP Event Shape
-
-Following is the shape of the event passed to the `run()` method of your source:
-
-```javascript
-{
- method: 'POST',
- path: '/',
- query: {},
- headers: {},
- bodyRaw: '',
- body:
-}
-```
-
-**Example**
-
-Following is an example source that's triggered by `$.interface.http` and returns `{ 'msg': 'hello world!' }` in the HTTP response. On deploy, Pipedream will generate a unique URL for this source:
-
-```javascript
-export default {
- name: "HTTP Example",
- version: "0.0.1",
- props: {
- http: {
- type: "$.interface.http",
- customResponse: true,
- },
- },
- async run(event) {
- this.http.respond({
- status: 200,
- body: {
- msg: "hello world!",
- },
- headers: {
- "content-type": "application/json",
- },
- });
- console.log(event);
- },
-};
-```
-
-#### Service Props
-
-| Service | Description |
-| ------- | ---------------------------------------------------------------------------------------------------- |
-| _DB_ | Provides access to a simple, component-specific key-value store to maintain state across executions. |
-
-##### DB
-
-**Definition**
-
-```javascript
-props: {
- myPropName: "$.service.db",
-}
-```
-
-**Usage**
-
-| Code | Description | Read Scope | Write Scope |
-| ----------------------------------- | -------------------------------------------------------------------------------------------- | ------------------------------------- | -------------------------------------- |
-| `this.myPropName.get('key')` | Method to get a previously set value for a key. Returns `undefined` if a key does not exist. | `run()` `hooks` `methods` | Use the `set()` method to write values |
-| `this.myPropName.set('key', value)` | Method to set a value for a key. Values must be JSON-serializable data. | Use the `get()` method to read values | `run()` `hooks` `methods` |
-
-#### App Props
-
-App props are normally defined in an [app file](/components/contributing/guidelines/#app-files), separate from individual components. See [the `components/` directory of the pipedream GitHub repo](https://github.com/PipedreamHQ/pipedream/tree/master/components) for example app files.
-
-**Definition**
-
-```javascript
-props: {
- myPropName: {
- type: "app",
- app: "",
- propDefinitions: {}
- methods: {},
- },
-},
-```
-
-| Property | Type | Required? | Description |
-| ----------------- | -------- | --------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
-| `type` | `string` | required | Value must be `app` |
-| `app` | `string` | required | Value must be set to the name slug for an app registered on Pipedream. [App files](/components/contributing/guidelines/#app-files) are programmatically generated for all integrated apps on Pipedream. To find your app's slug, visit the `components` directory of [the Pipedream GitHub repo](https://github.com/PipedreamHQ/pipedream/tree/master/components), find the app file (the file that ends with `.app.mjs`), and find the `app` property at the root of that module. If you don't see an app listed, please [open an issue here](https://github.com/PipedreamHQ/pipedream/issues/new?assignees=&labels=app%2C+enhancement&template=app---service-integration.md&title=%5BAPP%5D). |
-| `propDefinitions` | `object` | optional | An object that contains objects with predefined user input props. See the section on User Input Props above to learn about the shapes that can be defined and how to reference in components using the `propDefinition` property |
-| `methods` | `object` | optional | Define app-specific methods. Methods can be referenced within the app object context via `this` (e.g., `this.methodName()`) and within a component via `this.myAppPropName` (e.g., `this.myAppPropName.methodName()`). |
-
-**Usage**
-
-| Code | Description | Read Scope | Write Scope |
-| --------------------------------- | ------------------------------------------------------------------------------------------------ | ----------------------------------------------- | ----------- |
-| `this.$auth` | Provides access to OAuth tokens and API keys for Pipedream managed auth | **App Object:** `methods` | n/a |
-| `this.myAppPropName.$auth` | Provides access to OAuth tokens and API keys for Pipedream managed auth | **Parent Component:** `run()` `hooks` `methods` | n/a |
-| `this.methodName()` | Execute a common method defined for an app within the app definition (e.g., from another method) | **App Object:** `methods` | n/a |
-| `this.myAppPropName.methodName()` | Execute a common method defined for an app from a component that includes the app as a prop | **Parent Component:** `run()` `hooks` `methods` | n/a |
-
-> **Note:** The specific `$auth` keys supported for each app will be published in the near future.
-
-#### HTTP Request Prop
-
-**Usage**
-
-| Code | Description | Read Scope | Write Scope |
-| --------------------------------- | ------------------------------------------------------------------------------------------------ | ----------------------------------------------- | ----------- |
-| `this.myPropName.execute()` | Execute an HTTP request as configured | n/a | `run()` `methods` |
-
-**Example**
-
-Following is an example action that demonstrates how to accept an HTTP request configuration as input and execute the request when the component is run:
-
-```javascript
-export default {
- name: "HTTP Request Example",
- version: "0.0.1",
- props: {
- httpRequest: {
- type: "http_request",
- label: "API Request",
- default: {
- method: "GET",
- url: "https://jsonplaceholder.typicode.com/posts",
- }
- },
- },
- async run() {
- const { data } = await this.httpRequest.execute();
- return data;
- },
-};
-```
-
-For more examples, see the [docs on making HTTP requests with Node.js](/workflows/building-workflows/code/nodejs/http-requests/#send-a-get-request-to-fetch-data).
-
-
-#### Alert Prop
-
-Sometimes you may need to surface contextual information to users within the prop form. This might be information that's not directly related to a specific prop, so it doesn't make sense to include in a prop description, but rather, it may be related to the overall configuration of the prop form.
-
-**Usage**
-
-| Property | Type | Required? | Description |
-| - | - | - | - |
-| `type` | `string` | required | Set to `alert` |
-| `alertType` | `string` | required | Determines the color and UI presentation of the alert prop. Can be one of `info`, `neutral`, `warning`, `error`. |
-| `content` | `string` | required | Determines the text that is rendered in the alert. Both plain text and markdown are supported. |
-
-```javascript
-export default defineComponent({
- props: {
- alert: {
- type: "alert",
- alertType: "info",
- content: "Admin rights on the repo are required in order to register webhooks. In order to continue setting up your source, configure a polling interval below to check for new events.",
- }
- },
-})
-```
-
-Refer to GitHub's component sources in the `pipedream` repo for an [example implementation](https://github.com/PipedreamHQ/pipedream/blob/b447d71f658d10d6a7432e8f5153bbda56ba9810/components/github/sources/common/common-flex.mjs#L27).
-
-
-
-#### Limits on props
-
-When a user configures a prop with a value, it can hold at most {process.env.CONFIGURED_PROPS_SIZE_LIMIT} data. Consider this when accepting large input in these fields (such as a base64 string).
-
-The {process.env.CONFIGURED_PROPS_SIZE_LIMIT} limit applies only to static values entered as raw text. In workflows, users can pass expressions (referencing data in a prior step). In that case the prop value is simply the text of the expression, for example `{{steps.nodejs.$return_value}}`, well below the limit. The value of these expressions is evaluated at runtime, and are subject to [different limits](/workflows/limits/).
-
-### Methods
-
-You can define helper functions within the `methods` property of your component. You have access to these functions within the [`run` method](#run), or within other methods.
-
-Methods can be accessed using `this.`. For example, a `random` method:
-
-```javascript
-methods: {
- random() {
- return Math.random()
- },
-}
-```
-
-can be run like so:
-
-```javascript
-const randomNum = this.random();
-```
-
-### Hooks
-
-```javascript
-hooks: {
- async deploy() {},
- async activate() {},
- async deactivate() {},
-},
-```
-
-| Property | Type | Required? | Description |
-| ------------ | -------- | --------- | ----------------------------------------------------- |
-| `deploy` | `method` | optional | Executed each time a component is deployed |
-| `activate` | `method` | optional | Executed each time a component is deployed or updated |
-| `deactivate` | `method` | optional | Executed each time a component is deactivated |
-
-### Dedupe Strategies
-
-> **IMPORTANT:** To use a dedupe strategy, you must emit an `id` as part of the event metadata (dedupe strategies are applied to the submitted `id`)
-
-| Strategy | Description |
-| ---------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
-| `unique` | Pipedream maintains a cache of 100 emitted `id` values. Events with `id` values that are not in the cache are emitted, and the `id` value is added to the cache. After 100 events, `id` values are purged from the cache based on the order received (first in, first out). A common use case for this strategy is an RSS feed which typically does not exceed 100 items |
-| `greatest` | Pipedream caches the largest `id` value (must be numeric). Only events with larger `id` values are emitted, and the cache is updated to match the new, largest value.. |
-| `last` | Pipedream caches the ID associated with the last emitted event. When new events are emitted, only events after the matching `id` value will be emitted as events. If no `id` values match, then all events will be emitted. |
-
-### Run
-
-Each time a component is invoked, its `run` method is called. Sources are invoked by their [interface](#interface-props) (for example, via HTTP request). Actions are run when their parent workflow is triggered.
-
-You can reference `this` within the `run` method. `this` refers to the component, and provides access to [props](#props), [methods](#methods), and more.
-
-#### Sources
-
-When a source is invoked, the event that triggered the source is passed to `run`, so that you can access it within the method:
-
-```javascript
-async run(event) {
- console.log(event)
-}
-```
-
-##### \$emit
-
-`this.$emit()` is a method in scope for the `run` method of a source
-
-```javascript
-this.$emit(event, {
- id,
- name,
- summary,
- ts,
-});
-```
-
-| Property | Type | Required? | Description |
-| --------- | ---------------------- | ---------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
-| `event` | JSON serializable data | optional | The data to emit as the event |
-| `id` | `string` or `number` | Required if a dedupe strategy is applied | A value to uniquely identify this event. Common `id` values may be a 3rd party ID, a timestamp, or a data hash |
-| `name` | `string` | optional | The name of the "channel" you'd like to emit the event to. By default, events are emitted to the `default` channel. If you set a different channel here, listening sources or workflows can subscribe to events on this channel, running the source or workflow only on events emitted to that channel. |
-| `summary` | `string` | optional | Define a summary to customize the data displayed in the events list to help differentiate events at a glance |
-| `ts` | `integer` | optional | Accepts an epoch timestamp in **milliseconds**. If you submit a timestamp, events will automatically be ordered and emitted from oldest to newest. If using the `last` dedupe strategy, the value cached as the `last` event for an execution will correspond to the event with the newest timestamp. |
-
-Following is a basic example that emits an event on each component execution.
-
-```javascript
-export default {
- name: "this.$emit() example",
- description: "Deploy and run this component manually via the Pipedream UI",
- async run() {
- this.$emit({ message: "hello world!" });
- },
-};
-```
-
-##### Logs
-
-You can view logs produced by a source's `run` method in the **Logs** section of the [Pipedream source UI](https://pipedream.com/sources), or using the `pd logs` CLI command:
-
-```bash
-pd logs
-```
-
-##### Events
-
-If the `run` method emits events using `this.$emit`, you can access the events in the **EVENTS** section of the Pipedream UI for the component, or using the `pd events` CLI command:
-
-```bash
-pd events
-```
-
-#### Actions
-
-When an action is run in a workflow, Pipedream passes an object with a `$` variable that gives you access to special functions, outlined below:
-
-```javascript
-async run({ $ }) {
- // You have access to $ within your action
-}
-```
-
-##### Returning data from steps
-
-By default, variables declared within an action are scoped to that action. To return data from a step, you have two options: 1) use the `return` keyword, or 2) use `$.export` to return a named export from a step.
-
-**`return`**
-
-Use `return` to return data from an action:
-
-```javascript
-async run({ $ }) {
- return "data"
-}
-```
-
-When you use return, the exported data will appear at `steps.[STEP NAME].$return_value`. For example, if you ran the code above in a step named `nodejs`, you'd reference the returned data using `steps.nodejs.$return_value`.
-
-**`$.export`**
-
-You can also use `$.export` to return named exports from an action. `$.export` takes the name of the export as the first argument, and the value to export as the second argument:
-
-```javascript
-async run({ $ }) {
- $.export("name", "value")
-}
-```
-
-When your workflow runs, you'll see the named exports appear below your step, with the data you exported. You can reference these exports in other steps using `steps.[STEP NAME].[EXPORT NAME]`.
-
-##### Returning HTTP responses with `$.respond`
-
-`$.respond` lets you issue HTTP responses from your workflow. [See the full `$.respond` docs for more information](/workflows/building-workflows/triggers/#customizing-the-http-response).
-
-```javascript
-async run({ $ }) {
- $.respond({
- status: 200,
- body: "hello, world"
- })
-}
-```
-
-##### Ending steps early with `return $.flow.exit`
-
-`return $.flow.exit` terminates the entire workflow. It accepts a single argument: a string that tells the workflow why the workflow terminated, which is displayed in the Pipedream UI.
-
-```javascript
-async run({ $ }) {
- return $.flow.exit("reason")
-}
-```
-
-##### `$.summary`
-
-`$.summary` is used to surface brief, user-friendly summaries about what happened when an action step succeeds. For example, when [adding items to a Spotify playlist](https://github.com/PipedreamHQ/pipedream/blob/master/components/spotify/actions/add-items-to-playlist/add-items-to-playlist.mjs#L51):
-
-
-
-Example implementation:
-
-```javascript
-const data = [1, 2];
-const playlistName = "Cool jams";
-$.export(
- "$summary",
- `Successfully added ${data.length} ${
- data.length == 1 ? "item" : "items"
- } to "${playlistName}"`
-);
-```
-
-##### `$.send`
-
-`$.send` allows you to send data to [Pipedream destinations](/workflows/data-management/destinations/).
-
-**`$.send.http`**
-
-[See the HTTP destination docs](/workflows/data-management/destinations/http/#using-sendhttp-in-component-actions).
-
-**`$.send.email`**
-
-[See the Email destination docs](/workflows/data-management/destinations/email/#using-sendemail-in-component-actions).
-
-**`$.send.s3`**
-
-[See the S3 destination docs](/workflows/data-management/destinations/s3/#using-sends3-in-component-actions).
-
-**`$.send.emit`**
-
-[See the Emit destination docs](/workflows/data-management/destinations/emit/#using-sendemit-in-component-actions).
-
-**`$.send.sse`**
-
-[See the SSE destination docs](/workflows/data-management/destinations/sse/#using-sendsse-in-component-actions).
-
-##### `$.context`
-
-`$.context` exposes [the same properties as `steps.trigger.context`](/workflows/building-workflows/triggers/#stepstriggercontext), and more. Action authors can use it to get context about the calling workflow and the execution.
-
-All properties from [`steps.trigger.context`](/workflows/building-workflows/triggers/#stepstriggercontext) are exposed, as well as:
-
-| Property | Description |
-| ---------- | :-----------------------------------------------------------------------------------------------------------------------------------------------------: |
-| `deadline` | An epoch millisecond timestamp marking the point when the workflow is configured to [timeout](/workflows/limits/#time-per-execution). |
-| `JIT` | Stands for "just in time" (environment). `true` if the user is testing the step, `false` if the step is running in production. |
-| `run` | An object containing metadata about the current run number. See [the docs on `$.flow.rerun`](/workflows/building-workflows/triggers/#stepstriggercontext) for more detail. |
-
-### Environment variables
-
-[Environment variables](/workflows/environment-variables/) are not accessible within sources or actions directly. Since components can be used by anyone, you cannot guarantee that a user will have a specific variable set in their environment.
-
-In sources, you can use [`secret` props](#props) to reference sensitive data.
-
-In actions, you'll see a list of your environment variables in the object explorer when selecting a variable to pass to a step:
-
-### Using npm packages
-
-To use an npm package in a component, just require it. There is no `package.json` or `npm install` required.
-
-```javascript
-import axios from "axios";
-```
-
-When you deploy a component, Pipedream downloads the latest versions of these packages and bundles them with your deployment.
-
-Some packages that rely on large dependencies or on unbundled binaries — may not work on Pipedream. Please [reach out](https://pipedream.com/support) if you encounter a specific issue.
-
-#### Referencing a specific version of a package
-
-_This currently applies only to sources_.
-
-If you'd like to use a _specific_ version of a package in a source, you can add that version in the `require` string, for example: `require("axios@0.19.2")`. Moreover, you can pass the same version specifiers that npm and other tools allow to specify allowed [semantic version](https://semver.org/) upgrades. For example:
-
-- To allow for future patch version upgrades, use `require("axios@~0.20.0")`
-- To allow for patch and minor version upgrades, use `require("axios@^0.20.0")`
-
-## Managing Components
-
-Sources and actions are developed and deployed in different ways, given the different functions they serve in the product.
-
-- [Managing Sources](#managing-sources)
-- [Managing Actions](#managing-actions)
-
-### Managing Sources
-
-#### CLI - Development Mode
-
----
-
-The easiest way to develop and test sources is with the `pd dev` command. `pd dev` deploys a local file, attaches it to a component, and automatically updates the component on each local save. To deploy a new component with `pd dev`, run:
-
-```bash
-pd dev
-```
-
-To attach to an existing deployed component, run:
-
-```bash
-pd dev --dc
-```
-
-#### CLI - Deploy
-
-##### From Local Code
-
-To deploy a source via CLI, use the `pd deploy` command.
-
-```bash
-pd deploy
-```
-
-E.g.,
-
-```bash
-pd deploy my-source.js
-```
-
-##### From Pipedream Github Repo
-
-You can explore the components available to deploy in [Pipedream's GitHub repo](https://github.com/PipedreamHQ/pipedream/tree/master/components).
-
-```bash
-pd deploy
-```
-
-E.g.,
-
-```bash
-pd deploy http-new-requests
-```
-
-##### From Any URL
-
-```bash
-pd deploy
-```
-
-E.g.,
-
-```bash
-pd deploy https://raw.githubusercontent.com/PipedreamHQ/pipedream/master/components/http/sources/new-requests/new-requests.js
-```
-
-#### CLI - Update
-
-View the [CLI command reference](/components/contributing/cli/reference/#command-reference).
-
-#### CLI - Delete
-
-View the [CLI command reference](/components/contributing/cli/reference/#command-reference).
-
-#### UI - Deploy
-
-You can find and deploy curated components at [https://pipedream.com/sources/new](https://pipedream.com/sources/new), or you can deploy code via the UI using following URL patterns.
-
-##### From Pipedream Github Repo
-
-```bash
-https://pipedream.com/sources?action=create&key=
-```
-
-E.g.,
-
-```bash
-https://pipedream.com/sources?action=create&key=http-new-requests
-```
-
-##### From Any URL
-
-```bash
-https://pipedream.com/sources?action=create&url=
-```
-
-E.g.,
-
-```bash
-https://pipedream.com/sources?action=create&url=https%3A%2F%2Fraw.githubusercontent.com%2FPipedreamHQ%2Fpipedream%2Fmaster%2Fcomponents%2Fhttp%2Fhttp.js
-```
-
-#### UI - Update
-
-You can update the code and props for a component from the **Configuration** tab for a source in the Pipedream UI.
-
-#### UI - Delete
-
-You can delete a component via the UI at [https://pipedream.com/sources](https://pipedream.com/sources).
-
-#### API
-
-See the [REST API docs](/rest-api/).
-
-### Managing Actions
-
-#### CLI - Publish
-
-To publish an action, use the `pd publish` command.
-
-```bash
-pd publish FILENAME
-```
-
-E.g.,
-
-```bash
-pd publish my-action.js
-```
-
-## Source Lifecycle
-
-### Lifecycle hooks
-
-Pipedream sources support the following hooks. The code for these hooks are defined within the component. Learn more about the [component structure](#component-structure) and [hook usage](#hooks).
-
-#### `deploy`
-
-The `deploy()` hook is automatically invoked by Pipedream when a source is deployed. A common use case for the deploy hook is to create webhook subscriptions when the source is deployed, but you can run any Node.js code within the `deploy` hook. To learn more about the `deploy()` hook, refer to the [API documentation](#hooks).
-
-#### `activate`
-
-The `activate()` hook is automatically invoked by Pipedream when a source is deployed or updated. For example, this hook will be run when users update component props, so you can run code here that handles those changes. To learn more about defining a custom `activate()` hook, refer to the [API documentation](#hooks).
-
-#### `deactivate`
-
-The `deactivate()` hook is automatically invoked by Pipedream when a source is updated or deleted. A common use case for the deactivate hook is to automatically delete a webhook subscription when a component is deleted, but you can run any Node.js code within the `deactivate` hook. To learn more about the `deactivate()` hook, refer to the [API documentation](#hooks).
-
-### States
-
-#### Saved Component
-
-A saved component is non-instantiated component code that has previously been deployed to Pipedream. Each saved component has a unique saved component ID. Saved components cannot be invoked directly — they must first be deployed.
-
-#### Deployed Component
-
-A deployed component is an instance of a saved component that can be invoked. Deployed components can be active or inactive. On deploy, Pipedream instantiates a saved component and invokes the `activate()` hook.
-
-#### Deleted Component
-
-On delete, Pipedream invokes the `deactivate()` hook and then deletes the deployed component instance.
-
-### Operations
-
-#### Deploy
-
-On deploy, Pipedream creates an instance of a saved component and invokes the optional `deploy()` and `activate()` hooks. A unique deployed component ID is generated for the component.
-
-You can deploy a component via the CLI, UI or API.
-
-#### Update
-
-On update, Pipedream, invokes the optional `deactivate()` hook, updates the code and props for a deployed component, and then invokes the optional `activate()` hook. The deployed component ID is not changed by an update operation.
-
-#### Delete
-
-On delete, Pipedream invokes the optional `deactivate()` hook and deletes the component instance.
-
-## Source Event Lifecycle
-
-The event lifecycle applies to deployed sources. Learn about the [source lifecycle](#source-lifecycle).
-
-### Diagram
-
-
-
-### Triggering Sources
-
-Sources are triggered when you manually run them (e.g., via the **RUN NOW** button in the UI) or when one of their [interfaces](#interface-props) is triggered. Pipedream sources currently support **HTTP** and **Timer** interfaces.
-
-When a source is triggered, the `run()` method of the component is executed. Standard output and errors are surfaced in the **Logs** tab.
-
-### Emitting Events from Sources
-
-Sources can emit events via `this.$emit()`. If you define a [dedupe strategy](#dedupe-strategies) for a source, Pipedream automatically dedupes the events you emit.
-
-> **TIP:** if you want to use a dedupe strategy, be sure to pass an `id` for each event. Pipedream uses this value for deduping purposes.
-
-### Consuming Events from Sources
-
-Pipedream makes it easy to consume events via:
-
-- The UI
-- Workflows
-- APIs
-- CLI
-
-#### UI
-
-When you navigate to your source [in the UI](https://pipedream.com/sources), you'll be able to select and inspect the most recent 100 events (i.e., an event bin). For example, if you send requests to a simple HTTP source, you will be able to inspect the events (i.e., a request bin).
-
-#### Workflows
-
-[Trigger hosted Node.js workflows](/workflows/building-workflows/) on each event. Integrate with {process.env.PUBLIC_APPS}+ apps including Google Sheets, Discord, Slack, AWS, and more!
-
-#### API
-
-Events can be retrieved using the [REST API](/rest-api/) or [SSE stream tied to your component](/workflows/data-management/destinations/sse/). This makes it easy to retrieve data processed by your component from another app. Typically, you'll want to use the [REST API](/rest-api/) to retrieve events in batch, and connect to the [SSE stream](/workflows/data-management/destinations/sse/) to process them in real time.
-
-#### CLI
-
-Use the `pd events` command to retrieve the last 10 events via the CLI:
-
-```bash
-pd events -n 10
-```
diff --git a/docs-v2/pages/components/contributing/cli/_meta.tsx b/docs-v2/pages/components/contributing/cli/_meta.tsx
deleted file mode 100644
index 4047d022328b2..0000000000000
--- a/docs-v2/pages/components/contributing/cli/_meta.tsx
+++ /dev/null
@@ -1,5 +0,0 @@
-export default {
- "reference": "CLI Reference",
- "install": "Install",
- "login": "Login",
-} as const
diff --git a/docs-v2/pages/components/contributing/cli/install.mdx b/docs-v2/pages/components/contributing/cli/install.mdx
deleted file mode 100644
index 77fde2ed28bbc..0000000000000
--- a/docs-v2/pages/components/contributing/cli/install.mdx
+++ /dev/null
@@ -1,80 +0,0 @@
-import Callout from '@/components/Callout'
-import VideoPlayer from '@/components/VideoPlayer'
-
-# Installing the CLI
-
-
-
-## macOS
-
-### Homebrew
-
-```bash
-brew tap pipedreamhq/pd-cli
-brew install pipedreamhq/pd-cli/pipedream
-```
-
-### From source
-
-Run the following command:
-
-```bash
-curl https://cli.pipedream.com/install | sh
-```
-
-This will automatically download and install the `pd` CLI to your Mac. You can also [download the macOS build](https://cli.pipedream.com/darwin/amd64/latest/pd.zip), unzip that archive, and place the `pd` binary somewhere in [your `PATH`](https://opensource.com/article/17/6/set-path-linux).
-
-If this returns a permissions error, you may need to run:
-
-```bash
-curl https://cli.pipedream.com/install | sudo sh
-```
-
-
-If you encounter the error `bad CPU type in executable: pd`, you will need to install Rosetta 2 on your Mac by running the following command:
-
-```bash
-softwareupdate --install-rosetta
-```
-
-
-## Linux
-
-Download the [CLI build](#cli-builds) for your architecture below. Unzip that archive, and place the `pd` binary somewhere in [your `PATH`](https://opensource.com/article/17/6/set-path-linux).
-
-## Windows (native)
-
-[Download the CLI build for Windows](https://cli.pipedream.com/windows/amd64/latest/pd.zip). Unzip that archive, save `pd.exe` in Program Files, and [add its file path to `Path` in your system environment variables](https://www.architectryan.com/2018/03/17/add-to-the-path-on-windows-10/). Use `pd.exe` in a terminal that supports ANSI colors, like the [Windows Terminal](https://github.com/microsoft/terminal).
-
-## Windows (WSL)
-
-Download the appropriate [Linux CLI build](#cli-builds) for your architecture. Unzip that archive, and place the `pd` binary somewhere in [your `PATH`](https://opensource.com/article/17/6/set-path-linux).
-
-## CLI Builds
-
-Pipedream publishes the following builds of the CLI. If you need to use the CLI on another OS or architecture, [please reach out](https://pipedream.com/support/).
-
-| Operating System | Architecture | link |
-| ---------------- | ------------ | ----------------------------------------------------------------- |
-| Linux | amd64 | [download](https://cli.pipedream.com/linux/amd64/latest/pd.zip) |
-| Linux | 386 | [download](https://cli.pipedream.com/linux/386/latest/pd.zip) |
-| Linux | arm | [download](https://cli.pipedream.com/linux/arm/latest/pd.zip) |
-| Linux | arm64 | [download](https://cli.pipedream.com/linux/arm64/latest/pd.zip) |
-| macOS | amd64 | [download](https://cli.pipedream.com/darwin/amd64/latest/pd.zip) |
-| Windows | amd64 | [download](https://cli.pipedream.com/windows/amd64/latest/pd.zip) |
-
-## Community Libraries
-
-
-Please note that Pipedream does not verify the correctness or security of these community libraries. Use them at your own risk.
-
-
-### [Nix](https://nixos.org/)
-
-The `pd` binary is available via Nix flake [here](https://github.com/planet-a-ventures/pipedream-cli)
-
-## Help
-
-Run `pd` to see a list of all commands, or `pd help ` to display help docs for a specific command.
-
-See the [CLI reference](/components/contributing/cli/reference/) for detailed usage and examples for each command.
diff --git a/docs-v2/pages/components/contributing/cli/login.mdx b/docs-v2/pages/components/contributing/cli/login.mdx
deleted file mode 100644
index c82ac076e3492..0000000000000
--- a/docs-v2/pages/components/contributing/cli/login.mdx
+++ /dev/null
@@ -1,57 +0,0 @@
-# Logging into the CLI
-
-To start using the Pipedream CLI, you'll need to link it to your Pipedream account. If you don't have a Pipedream account, you can sign up from the CLI.
-
-
-
-## Existing Pipedream account
-
-If you already have a Pipedream account, run
-
-```
-pd login
-```
-
-This will open up a new window in your default browser. If you're already logged into your Pipedream account in this browser, this will immediately link the CLI to your account, writing your API key for that account to your [`pd` config file](/components/contributing/cli/reference/#cli-config-file).
-
-Otherwise, you'll be asked to login.
-
-Once you're done, go back to your shell and you should see confirmation that your account is linked:
-
-```
-> pd login
-Logged in as dylburger (dylan@pipedream.com)
-```
-
-Then [follow this guide](/components/contributing/cli/reference/#creating-a-profile-for-a-workspace) to learn how to find your workspace ID and associate it with a `pd` profile.
-
-## Signing up for Pipedream via the CLI
-
-If you haven't signed up for a Pipedream account, you can create an account using the CLI:
-
-```
-pd signup
-```
-
-This will open up a new window in your default browser. You'll be asked to sign up for Pipedream here. Once you do, your account will be linked to the CLI, writing your API key for that account to your [`pd` config file](/components/contributing/cli/reference/#cli-config-file).
-
-Once you're done, go back to your shell and you should see confirmation that your account is linked:
-
-```
-> pd signup
-Logged in as dylburger (dylan@pipedream.com)
-```
-
-## Logging out of the CLI
-
-You can log out of the CLI by running:
-
-```
-pd logout
-```
-
-This will remove your API key from the [`pd` config file](/components/contributing/cli/reference/#cli-config-file).
-
-## Using the CLI to manage multiple accounts
-
-If you have multiple Pipedream accounts, you can use [profiles](/components/contributing/cli/reference/#profiles) to ensure the CLI can manage resources for each.
diff --git a/docs-v2/pages/components/contributing/cli/reference.mdx b/docs-v2/pages/components/contributing/cli/reference.mdx
deleted file mode 100644
index 59827af4a8aaa..0000000000000
--- a/docs-v2/pages/components/contributing/cli/reference.mdx
+++ /dev/null
@@ -1,354 +0,0 @@
-# CLI Reference
-
-## Installing the CLI
-
-[See the CLI installation docs](/components/contributing/cli/install/) to learn how to install the CLI for your OS / architecture.
-
-## Command Reference
-
-Run `pd` to see a list of all commands with basic usage info, or run `pd help ` to display help docs for a specific command.
-
-We've also documented each command below, with usage examples for each.
-
-### General Notes
-
-Everywhere you can refer to a specific component as an argument, you can use the component's ID _or_ its name slug. For example, to retrieve details about a specific source using `pd describe`, you can use either of the following commands:
-
-```bash
-> pd describe dc_abc123
-
- id: dc_abc123
- name: http
- endpoint: https://myendpoint.m.pipedream.net
-
-> pd describe http
-Searching for sources matching http
-
- id: dc_abc123
- name: http
- endpoint: https://myendpoint.m.pipedream.net
-```
-
-### `pd delete`
-
-Deletes an event source. Run:
-
-```bash
-pd delete
-```
-
-Run `pd list so` to display a list of your event sources.
-
-### `pd deploy`
-
-Deploy an event source from local or remote code.
-
-Running `pd deploy`, without any arguments, brings up an interactive menu asking you select a source. This list of sources is retrieved from the registry of public sources [published to Github](https://github.com/PipedreamHQ/pipedream/tree/master/components).
-
-When you select a source, we'll deploy it and start listening for new events.
-
-You can also deploy a specific source via the source's `key` (defined in the component file for the source):
-
-```bash
-pd deploy http-new-requests
-```
-
-or author a component locally and deploy that local file:
-
-```bash
-pd deploy http.js
-```
-
-[Read more about authoring your own event sources](/components/contributing/quickstart/nodejs/sources/).
-
-### `pd describe`
-
-Display the details for a source: its id, name, and other configuration details:
-
-```bash
-pd describe SOURCE_ID_OR_NAME
-```
-
-### `pd dev`
-
-`pd dev` allows you to interactively develop a source from a local file.`pd dev` will link your local file with the deployed component and watch your local file for changes. When you save changes to your local file, your component will automatically be updated on Pipedream.
-
-```bash
-pd dev FILE_OR_NAME
-```
-
-If you quit `pd dev` and want to link the same deployed source to your local file, you can pass the deployed component ID using the `--dc` flag:
-
-```bash
-pd dev --dc SOURCE_ID FILE_OR_NAME
-```
-
-### `pd events`
-
-Returns historical events sent to a source, and streams emitted events directly to the CLI.
-
-```bash
-pd events SOURCE_ID
-```
-
-By default, `pd events` prints (up to) the last 10 events sent to your source.
-
-```bash
-pd events -n 100 SOURCE_ID_OR_NAME
-```
-
-`pd events -n N` retrieves the last `N` events sent to your source. We store the last 100 events sent to a source, so you can retrieve a max of 100 events using this command.
-
-```bash
-pd events -f SOURCE_ID_OR_NAME
-```
-
-`pd events -f` connects to the [SSE stream tied to your source](/workflows/data-management/destinations/sse/) and displays events as the source produces them.
-
-```bash
-pd events -n N -f SOURCE_ID_OR_NAME
-```
-
-You can combine the `-n` and `-f` options to list historical events _and_ follow the source for new events.
-
-### `pd help`
-
-Displays help for any command. Run `pd help events`, `pd help describe`, etc.
-
-### `pd init`
-
-Generate new app and component files from templates.
-
-#### `pd init app`
-
-Creates a directory and [an app file](/components/contributing/guidelines/#app-files) from a template
-
-```bash
-# Creates google_calendar/ directory and google_calendar.mjs file
-pd init app google_calendar
-```
-
-#### `pd init action`
-
-Creates a new directory and [a component action](/components/contributing/#actions) from a template.
-
-```bash
-# Creates add-new-event/ directory and add-new-event.mjs file
-pd init action add-new-event
-```
-
-#### `pd init source`
-
-Creates a new directory and [an event source](/workflows/building-workflows/triggers/) from a template.
-
-```bash
-# Creates cancelled-event/ directory and cancelled_event.mjs file
-pd init source cancelled-event
-```
-
-You can attach [database](/components/contributing/api/#db), [HTTP](/components/contributing/api/#http), or [Timer](/components/contributing/api/#timer) props to your template using the following flags:
-
-| Prop type | Flag |
-| --------- | --------- |
-| Database | `--db` |
-| HTTP | `--http` |
-| Timer | `--timer` |
-
-For example, running:
-
-```bash
-pd init source cancelled-event --db --http --timer
-```
-
-will include the following props in your new event source:
-
-```javascript
-props: {
- db: "$.service.db",
- http: "$.interface.http",
- timer: "$.interface.timer",
-}
-```
-
-### `pd list`
-
-Lists Pipedream sources running in your account. Running `pd list` without any arguments prompts you to select the type of resource you'd like to list.
-
-You can also list specific resource types directly:
-
-```bash
-pd list components
-```
-
-```bash
-pd list streams
-```
-
-`sources` and `streams` have shorter aliases, too:
-
-```bash
-pd list so
-```
-
-```bash
-pd list st
-```
-
-### `pd login`
-
-Log in to Pipedream CLI and persist API key locally. See [Logging into the CLI](/components/contributing/cli/login/) for more information.
-
-### `pd logout`
-
-Unsets the local API key tied to your account.
-
-Running `pd logout` without any arguments removes the default API key from your [config file](/components/contributing/cli/reference/#cli-config-file).
-
-You can remove the API key for a specific profile by running:
-
-```bash
-pd logout -p PROFILE
-```
-
-### `pd logs`
-
-Event sources produce logs that can be useful for troubleshooting issues with that source. `pd logs` displays logs for a source.
-
-Running `pd logs ` connects to the [SSE logs stream tied to your source](/workflows/building-workflows/triggers/), displaying new logs as the source produces them.
-
-Any errors thrown by the source will also appear here.
-
-### `pd publish`
-
-To publish an action, use the `pd publish` command.
-
-```bash
-pd publish
-```
-
-For example:
-
-```bash
-pd publish my-action.js
-```
-
-### `pd signup`
-
-Sign up for Pipedream via the CLI and persist your API key locally. See the docs on [Signing up for Pipedream via the CLI](/components/contributing/cli/login/#signing-up-for-pipedream-via-the-cli) for more information.
-
-### `pd unpublish`
-
-Unpublish a component you've published to your account. If you publish a source or action that you no longer need, you can unpublish it by component `key`:
-
-```
-pd unpublish component
-```
-
-### `pd update`
-
-Updates the code, props, or metadata for an event source.
-
-If you deployed a source from Github, for example, someone might publish an update to that source, and you may want to run the updated code.
-
-```bash
-pd update SOURCE_ID_OR_NAME \
- --code https://github.com/PipedreamHQ/pipedream/blob/master/components/http/sources/new-requests/new-requests.js
-```
-
-You can change the name of a source:
-
-```bash
-pd update SOURCE_ID_OR_NAME --name NEW_NAME
-```
-
-You can deactivate a source if you want to stop it from running:
-
-```bash
-pd update SOURCE_ID_OR_NAME --deactivate
-```
-
-or activate a source you previously deactivated:
-
-```bash
-pd update SOURCE_ID_OR_NAME --activate
-```
-
-## Profiles
-
-Profiles allow you to work with multiple, named Pipedream accounts via the CLI.
-
-### Creating a new profile
-
-When you [login to the CLI](/components/contributing/cli/login/), the CLI writes the API key for that account to your config file, in the `api_key` field:
-
-```bash
-api_key = abc123
-```
-
-You can set API keys for other, named profiles, too. Run
-
-```bash
-pd login -p
-```
-
-`` can be any string of shell-safe characters that you'd like to use to identify this new profile. The CLI opens up a browser asking you to login to your target Pipedream account, then writes the API key to a section of the config file under this profile:
-
-```bash
-[your_profile]
-api_key = def456
-```
-
-You can also run `pd signup -p ` if you'd like to sign up for a new Pipedream account via the CLI and set a named profile for that account.
-
-### Creating a profile for a workspace
-
-If you're working with resources in an [workspace](/workspaces/), you'll need to add an `org_id` to your profile.
-
-1. [Retrieve your workspaces's ID](/workspaces/#finding-your-workspaces-id)
-2. Open up your [Pipedream config file](#cli-config-file) and create a new [profile](#profiles) with the following information:
-
-```bash
-[profile_name]
-api_key =
-org_id =
-```
-
-When using the CLI, pass `--profile ` when running any command. For example, if you named your profile `workspace`, you'd run this command to publish a component:
-
-```bash
-pd publish file.js --profile workspace
-```
-
-### Using profiles
-
-You can set a profile on any `pd` command by setting the `-p` or `--profile` flag. For example, to list the sources in a specific account, run:
-
-```bash
-pd list sources --profile PROFILE
-```
-
-## Version
-
-To get the current version of the `pd` CLI, run
-
-```bash
-pd --version
-```
-
-## Auto-upgrade
-
-The CLI is configured to check for new versions automatically. This ensures you're always running the most up-to-date version.
-
-## CLI config file
-
-The `pd` config file contains your Pipedream API keys (tied to your default account, or other [profiles](#profiles)) and other configuration used by the CLI.
-
-If the `XDG_CONFIG_HOME` env var is set, the config file will be found in `$XDG_CONFIG_HOME/pipedream`.
-
-Otherwise, it will be found in `$HOME/.config/pipedream`.
-
-## Analytics
-
-Pipedream tracks CLI usage data to report errors and usage stats. We use this data exclusively for the purpose of internal analytics (see [our privacy policy](https://pipedream.com/privacy) for more information).
-
-If you'd like to opt-out of CLI analytics, set the `PD_CLI_DO_NOT_TRACK` environment variable to `true` or `1`.
diff --git a/docs-v2/pages/components/contributing/guidelines.mdx b/docs-v2/pages/components/contributing/guidelines.mdx
deleted file mode 100644
index 79d58d3794d2d..0000000000000
--- a/docs-v2/pages/components/contributing/guidelines.mdx
+++ /dev/null
@@ -1,909 +0,0 @@
-import Callout from '@/components/Callout'
-
-# Components Guidelines & Patterns
-
-For a component to be accepted into the Pipedream registry, it should follow
-these guidelines below. These guidelines help ensure components are high
-quality, are intuitive for both Pipedream users and component developers to use
-and extend.
-
-
-Questions about best practices?
-
-Join the discussion with fellow Pipedream component developers at the
-[#contribute channel](https://pipedream-users.slack.com/archives/C01E5KCTR16) in
-Slack or [on Discourse](https://pipedream.com/community/c/dev/11).
-
-
-
-## Local Checks
-
-When submitting pull requests, the new code will run through a series of
-automated checks like linting the code. If you want to run those checks locally
-for quicker feedback you must have [pnpm](https://pnpm.io/) installed and run
-the following commands at the root of the project:
-
-1. To install all the project's dependencies (only needed once):
-
- ```shell
- pnpm install
- ```
-
-2. To install all required dependencies:
-
- ```shell
- npx pnpm install -r
- ```
-
-3. To run the linter checks against your code (assuming that your changes are
- located at `components/foo` for example):
-
- ```shell
- npx eslint components/foo
- ```
-
-4. Optionally, you can automatically fix any linter issues by running the
- following command:
-
- ```shell
- npx eslint --fix components/foo
- ```
-
-Keep in mind that not all issues can be automatically fixed by the linter since
-they could alter the behaviour of the code.
-
-## General
-
-### Components Should Be ES Modules
-
-The Node.js community has started publishing
-[ESM-only](https://flaviocopes.com/es-modules/) packages that do not work with
-[CommonJS
-modules](https://nodejs.org/docs/latest/api/modules.html#modules_modules_commonjs_modules).
-This means you must `import` the package. You can't use `require`.
-
-You also cannot mix ESM with CJS. This will **not** work:
-
-```javascript
-// ESM
-import axios from "axios";
-
-// CommonJS - this should be `export default`
-module.exports = {
- // ...
-}
-```
-
-Therefore, all components should be written as ES modules:
-
-```javascript
-import axios from "axios";
-
-export default {
- //...
-}
-```
-
-**You'll need to use [the `.mjs` file
-extension](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Modules#aside_%E2%80%94_.mjs_versus_.js)
-for any components written as ES modules**.
-
-You'll notice that many of the existing components are written as CommonJS
-modules. Please fix these and submit a pull request as you refactor related
-code. For example, if you're developing new Spotify actions, and you notice the
-existing event sources use CommonJS, change them to ESM:
-
-1. Rename the file extension from `.js` to `.mjs` using `git mv` (e.g. `git mv
- source.js source.mjs`).
-2. Change all `require` statements to `import`s.
-3. Change instances of `module.exports` to `export default`.
-
-### Component Scope
-
-Create components to address specific use cases whenever possible. For example,
-when a user subscribes to a Github webhook to listen for “star” activity, events
-can be generated when users star or unstar a repository. The “New Star” source
-filters events for only new star activity so the user doesn't have to.
-
-There may be cases where it's valuable to create a generic component that
-provides users with broad latitude (e.g., see the [custom
-webhook](https://github.com/PipedreamHQ/pipedream/blob/master/components/github/sources/custom-webhook-events)
-event source for GitHub). However, as a general heuristic, we found that tightly
-scoped components are easier for users to understand and use.
-
-### Required Metadata
-
-Registry [components](/components/contributing/api/#component-structure) require a unique
-`key` and `version`, and a friendly `name` and `description`. Action components
-require a `type` field to be set to `action` (sources will require a type to be
-set in the future). Action components require the description to include a link to the
-relevant documentation in the following format: \[See the documentation\](https://public-api.com)
-
-```javascript
-export default {
- key: "google_drive-new-shared-drive",
- name: "New Shared Drive",
- description: "Emits a new event any time a shared drive is created.",
- version: "0.0.1",
-};
-```
-
-### Component Key Pattern
-
-When publishing components to the Pipedream registry, the `key` must be unique
-across registry components and should follow the pattern:
-
-`app_name_slug`-`slugified-component-name`
-
-**Source** keys should use past tense verbs that describe the event that
-occurred (e.g., `linear_app-issue-created-instant`). For **action** keys, use
-active verbs to describe the action that will occur, (e.g.,
-`linear_app-create-issue`).
-
-### Versioning
-
-When you first publish a component to the registry, set its version to `0.0.1`.
-
-Pipedream registry components try to follow [semantic
-versioning](https://semver.org/). From their site:
-
-Given a version number `MAJOR.MINOR.PATCH`, increment the:
-
-1. `MAJOR` version when you make incompatible API changes,
-2. `MINOR` version when you add functionality in a backwards compatible manner,
- and
-3. `PATCH` version when you make backwards compatible bug fixes.
-
-When you're developing actions locally, and you've incremented the version in
-your account multiple times, make sure to set it to the version it should be at
-in the registry prior to submitting your PR. For example, when you add an action
-to the registry, the version should be `0.0.1`. If the action was at version
-`0.1.0` and you've fixed a bug, change it to `0.1.1` when committing your final
-code.
-
-If you update a file, you must increment the versions of all components that
-import or are affected by the updated file.
-
-### Folder Structure
-
-Registry components are organized by app in the `components` directory of the
-`pipedreamhq/pipedream` repo.
-
-```text
-/components
- /[app-name-slug]
- /[app-name-slug].app.mjs
- /actions
- /[action-name-slug]
- /[action-name-slug].mjs
- /sources
- /[source-name-slug]
- /[source-name-slug].mjs
-```
-
-- The name of each app folder corresponds with the name slug for each app
-- The app file should be in the root of the app folder (e.g.,
- `/components/[app_slug]/[app_slug].app.mjs`)
-- Components for each app are organized into `/sources` and `/actions`
- subfolders
-- Each component should be placed in its own subfolder (with the name of the
- folder and the name of the `js` file equivalent to the slugified component
- name). For example, the path for the "Search Mentions" source for Twitter is
- `/components/twitter/sources/search-mentions/search-mentions.mjs`.
-- Aside from `app_slug`, words in folder and file names are separated by dashes
- (-) (i.e., in kebab case)
-- Common files (e.g., `common.mjs`, `utils.mjs`) must be placed within a common
- folder: `/common/common.mjs`.
-
-You can explore examples in the [components
-directory](https://github.com/PipedreamHQ/pipedream/tree/master/components).
-
-#### Using APIs vs Client Libraries
-
-If the app has a well-supported [Node.js client
-library](/components/contributing/api/#using-npm-packages), feel free to use that instead of
-manually constructing API requests.
-
-### `package.json`
-
-Each app should have a `package.json` in its root folder. If one doesn't exist,
-run `npm init` in the app's root folder and customize the file using [this
-`package.json`](https://github.com/PipedreamHQ/pipedream/blob/55236b3aa993cbcb545e245803d8654c6358b0a2/components/stripe/package.json)
-as a template.
-
-Each time you change the code for an app file, or change the dependencies for
-any app component, modify the package `version`.
-
-Save any dependencies in the component app directory:
-
-```bash
-npm i --save package
-npm i --save-dev package
-```
-
-#### Error-Handling and Input Validation
-
-When you use the SDK of a popular API, the SDK might raise clear errors to the
-user. For example, if the user is asked to pass an email address, and that email
-address doesn't validate, the library might raise that in the error message.
-
-But other libraries will _not_ raise clear errors. In these cases, you may need
-to `throw` your own custom error that wraps the error from the API / lib. [See
-the Airtable
-components](https://github.com/PipedreamHQ/pipedream/blob/9e4e400cda62335dfabfae384d9224e04a585beb/components/airtable/airtable.app.js#L70)
-for an example of custom error-handling and input validation.
-
-In general, **imagine you are a user troubleshooting an issue. Is the error
-easy-to-understand? If not, `throw` a better error**.
-
-### `README` files
-
-New actions and sources should include `README.md` files within the same
-directory to describe how to use the action or source to users.
-
-Here's an example `README.md` structure:
-
-```markdown
-
-# Overview
-
-# Example Use Cases
-
-# Getting Started
-
-# Troubleshooting
-
-```
-
-These sections will appear within the correponding app, source and action page,
-along with any subheadings and content.
-
-Here's an example of an [app `README.md` within the `discord` component on the
-Pipedream
-registry](https://github.com/PipedreamHQ/pipedream/blob/master/components/discord/README.md).
-That same content is rendered within the [Pipedream integration page for the
-Discord app](https://pipedream.com/apps/discord).
-
-You can add additional subheadings to each of the top level `Overview`, `Example
-Use Cases`, `Getting Started` and `Troubleshooting` headings:
-
-```markdown
-# Overview
-
-## Limitations
-
-Perhaps there are some limitations about the API that users should know about.
-
-# Example Use Cases
-
-1. Sync data in real time
-2. Automate tedious actions
-3. Introduce A.I. into the workflow
-
-# Getting Started
-
-## Generating an API Key
-
-Instructions on how to generate an API key from within the service's dashboard.
-
-# Troubleshooting
-
-## Required OAuth Scopes
-
-Please take note, you'll need to have sufficient privileges in order to complete
-authentication.
-```
-
-
-Only these three top level headings `Overview`, `Getting Starting` and
-`Troubleshooting` will appear within the corresponding App Marketplace page. All
-other headings will be ignored.
-
-
-#### Pagination
-
-When making API requests, handle pagination to ensure all data/events are
-processed. Moreover, if the underlying account experiences and/or generates too
-much data paginating through the entire collection of records, it might cause
-out-of-memory or timeout issues (or both!), so as a rule of thumb the pagination
-logic should:
-
-- Be encapsulated as a [generator](https://mzl.la/37z6Sh6) so that the component
- can start processing records after the very first API call. As an example, you
- can check the [Microsoft OneDrive
- methods](https://github.com/PipedreamHQ/pipedream/tree/master/components/microsoft_onedrive/microsoft_onedrive.app.mjs)
- to list files.
-- Accept a "next token/page/ID" whenever possible, so that API calls do not
- retrieve the entire collection of records during every execution but rather
- from a recent point in time. The `scanDeltaItems` generator method in the
- example above follows this pattern.
-- Persist the last page number, token or record ID right after processing, so
- that following executions of the component process new records to minimize the
- amount of duplicate events, execution time and delayed events. Following the
- same Microsoft OneDrive example, check the `processEvent` method [in this
- component](https://github.com/PipedreamHQ/pipedream/tree/master/components/microsoft_onedrive/sources/new-file/new-file.mjs)
- for an example.
-
-#### Capturing Sensitive Data
-
-If users are required to enter sensitive data, always use
-[secret](/components/contributing/api/#general) props.
-
-### Promoting Reusability
-
-#### App Files
-
-App files contain components that declare the app and include prop definitions
-and methods that may be reused across components. App files should adhere to the
-following naming convention: `[app_name_slug].app.mjs`. If an app file does not
-exist for your app, please [reach
-out](https://pipedream.com/community/c/dev/11).
-
-##### Prop Definitions
-
-Whenever possible, reuse existing [prop
-definitions](/components/contributing/api/#prop-definitions-example).
-
-If a prop definition does not exist and you are adding an app-specific prop that
-may be reused in future components, add it as a prop definition to the app file.
-Prop definitions will also be surfaced for apps the Pipedream marketplace.
-
-##### Methods
-
-Whenever possible, reuse [methods](/components/contributing/api/#methods) defined in the app
-file. If you need to use an API for which a method is not defined and it may be
-used in future components, define a new method in the app file.
-
-Use the [JS Docs](https://jsdoc.app/about-getting-started.html) pattern for
-lightweight documentation of each method in the app file. Provide a description
-and define @params and @returns block tags (with default values if applicable —
-e.g., `[foo=bar]`). This data will both help with reusability and will be
-surfaced in documentation for apps in the Pipedream marketplace. For example:
-
-```javascript
-export default {
- methods: {
- /**
- * Get the most recently liked Tweets for a user
- *
- * @params {Object} opts - An object representing the configuration options
- * for this method
- * @params {String} opts.screenName - The user's Twitter screen name (e.g.,
- * `pipedream`)
- * @params {String} [opts.count=200] - The maximum number of Tweets to
- * return
- * @params {String} [opts.tweetMode=extended] - Use the default of
- * `extended` to return non-truncated Tweets
- * @returns {Array} Array of most recent Tweets liked by the specified user
- */
- async getLikedTweets(opts = {}) {
- const { screenName, count = 200, tweetMode = "extended" } = opts;
- const { data } = await this._makeRequest({
- url: "https://api.twitter.com/1.1/favorites/list.json",
- params: {
- screen_name: screenName,
- count,
- tweet_mode: tweetMode,
- },
- });
- return data;
- },
- },
-};
-```
-
-#### Testing
-
-Pipedream does not currently support unit tests to validate that changes to app
-files are backwards compatible with existing components. Therefore, if you make
-changes to an app file that may impact other sources, you must currently test
-potentially impacted components to confirm their functionality is not negatively
-affected. We expect to support a testing framework in the future.
-
-### Common Files (Optional)
-
-An optional pattern to improve reusability is to use a `common` module to
-abstract elements that are used across to multiple components. The trade-off
-with this approach is that it increases complexity for end-users who have the
-option of customizing the code for components within Pipedream. When using this
-approach, the general pattern is:
-
-- The `.app.mjs` module contains the logic related to making the actual API calls
- (e.g. calling `axios.get`, encapsulate the API URL and token, etc).
-- The `common.mjs` module contains logic and structure that is not specific to
- any single component. Its structure is equivalent to a component, except that
- it doesn't define attributes such as `version`, `dedupe`, `key`, `name`, etc
- (those are specific to each component). It defines the main logic/flow and
- relies on calling its methods (which might not be implemented by this
- component) to get any necessary data that it needs. In OOP terms, it would be
- the equivalent of a base abstract class.
-- The component module of each action would inherit/extend the `common.mjs`
- component by setting additional attributes (e.g. `name`, `description`, `key`,
- etc) and potentially redefining any inherited methods.
-- Common files (e.g., `common.mjs`, `utils.mjs`) must be placed within a common
- folder: `/common/common.mjs`.
-
-See [Google
-Drive](https://github.com/PipedreamHQ/pipedream/tree/master/components/google_drive)
-for an example of this pattern. When using this approach, prop definitions
-should still be maintained in the app file.
-
-Please note that the name `common` is just a convention and depending on each
-case it might make sense to name any common module differently. For example, the
-[AWS
-sources](https://github.com/PipedreamHQ/pipedream/tree/master/components/aws)
-contains a `common` directory instead of a `common.mjs` file, and the directory
-contains several modules that are shared between different event sources.
-
-## Props
-
-As a general rule of thumb, we should strive to incorporate all
-relevant options from a given API as props.
-
-### Labels
-
-Use [prop](/components/contributing/api/#user-input-props) labels to customize the name of a
-prop or propDefinition (independent of the variable name in the code). The label
-should mirror the name users of an app are familiar with; i.e., it should mirror
-the equivalent label in the app’s UI. This applies to usage in labels,
-descriptions, etc. E.g., the Twitter API property for search keywords is “q”,
-but its label is set to “Search Term”.
-
-### Descriptions
-
-Include a description for [props](/components/contributing/api/#user-input-props) to help
-the user understand what they need to do. Use Markdown as appropriate to improve
-the clarity of the description or instructions. When using Markdown:
-
-- Enclose sample input values in backticks (`` ` ``)
-- Refer to other props using **bold** by surrounding with double asterisks (\*)
-- Use Markdown links with descriptive text rather than displaying a full URL.
-- If the description isn't self-explanatory, link to the API docs of the
- relevant method to further clarify how the prop works. When the value of the
- prop is complex (for example, an object with many properties), link to the
- section of the API docs that include details on this format. Users may pass
- values from previous steps using expressions, so they'll need to know how to
- structure the input data.
-
-Examples:
-
-- The async option to select an Airtable Base is self-explanatory so includes no
- description:
-
- 
-
-- The “Search Term” prop for Twitter includes a description that helps the user
- understand what values they can enter, with specific values highlighted using
- backticks and links to external content.
-
- 
-
-### Optional vs Required Props
-
-Use optional [props](/components/contributing/api/#user-input-props) whenever possible to
-minimize the input fields required to use a component.
-
-For example, the Twitter search mentions source only requires that a user
-connect their account and enter a search term. The remaining fields are optional
-for users who want to filter the results, but they do not require any action to
-activate the source:
-
-
-
-### Default Values
-
-Provide [default values](/components/contributing/api/#user-input-props) whenever possible.
-NOTE: the best default for a source doesn’t always map to the default
-recommended by the app. For example, Twitter defaults search results to an
-algorithm that balances recency and popularity. However, the best default for
-the use case on Pipedream is recency.
-
-### Async Options
-
-Avoid asking users to enter ID values. Use [async
-options](/components/contributing/api/#async-options-example) (with label/value definitions)
-so users can make selections from a drop down menu. For example, Todoist
-identifies projects by numeric IDs (e.g., 12345). The async option to select a
-project displays the name of the project as the label, so that’s the value the
-user sees when interacting with the source (e.g., “My Project”). The code
-referencing the selection receives the numeric ID (12345).
-
-Async options should also support
-[pagination](/components/contributing/api/#async-options-example) (so users can navigate
-across multiple pages of options for long lists). See
-[Hubspot](https://github.com/PipedreamHQ/pipedream/blob/a9b45d8be3b84504dc22bb2748d925f0d5c1541f/components/hubspot/hubspot.app.mjs#L136)
-for an example of offset-based pagination. See
-[Twitter](https://github.com/PipedreamHQ/pipedream/blob/d240752028e2a17f7cca1a512b40725566ea97bd/components/twitter/twitter.app.mjs#L200)
-for an example of cursor-based pagination.
-
-### Dynamic Props
-
-[Dynamic props](/components/contributing/api/#dynamic-props) can improve the user experience
-for components. They let you render props in Pipedream dynamically, based on the
-value of other props, and can be used to collect more specific information that
-can make it easier to use the component. See the Google Sheets example in the
-linked component API docs.
-
-### Interface & Service Props
-
-In the interest of consistency, use the following naming patterns when defining
-[interface](/components/contributing/api/#interface-props) and
-[service](/components/contributing/api/#service-props) props in source components:
-
-| Prop | **Recommended Prop Variable Name** |
-| ------------------- | ---------------------------------- |
-| `$.interface.http` | `http` |
-| `$.interface.timer` | `timer` |
-| `$.service.db` | `db` |
-
-Use getters and setters when dealing with `$.service.db` to avoid potential
-typos and leverage encapsulation (e.g., see the [Search
-Mentions](https://github.com/PipedreamHQ/pipedream/blob/master/components/twitter/sources/search-mentions/search-mentions.mjs#L83-L88)
-event source for Twitter).
-
-## Source Guidelines
-
-These guidelines are specific to [source](/workflows/building-workflows/triggers/) development.
-
-### Webhook vs Polling Sources
-
-Create subscription webhooks sources (vs polling sources) whenever possible.
-Webhook sources receive/emit events in real-time and typically use less compute
-time from the user’s account. Note: In some cases, it may be appropriate to
-support webhook and polling sources for the same event. For example, Calendly
-supports subscription webhooks for their premium users, but non-premium users
-are limited to the REST API. A webhook source can be created to emit new
-Calendly events for premium users, and a polling source can be created to
-support similar functionality for non-premium users.
-
-### Source Name
-
-Source name should be a singular, title-cased name and should start with "New"
-(unless emits are not limited to new items). Name should not be slugified and
-should not include the app name. NOTE: Pipedream does not currently distinguish
-real-time event sources for end-users automatically. The current pattern to
-identify a real-time event source is to include “(Instant)” in the source name.
-E.g., “New Search Mention” or “New Submission (Instant)”.
-
-### Source Description
-
-Enter a short description that provides more detail than the name alone.
-Typically starts with "Emit new". E.g., “Emit new Tweets that matches your
-search criteria”.
-
-### Emit a Summary
-
-Always [emit a summary](/components/contributing/api/#emit) for each event. For example, the
-summary for each new Tweet emitted by the Search Mentions source is the content
-of the Tweet itself.
-
-If no sensible summary can be identified, submit the event payload in string
-format as the summary.
-
-### Deduping
-
-Use built-in [deduping strategies](/components/contributing/api/#dedupe-strategies) whenever
-possible (`unique`, `greatest`, `last`) vs developing custom deduping code.
-Develop custom deduping code if the existing strategies do not support the
-requirements for a source.
-
-### Surfacing Test Events
-
-In order to provide users with source events that they can immediately reference
-when building their workflow, we should implement 2 strategies whenever
-possible:
-
-#### Emit Events on First Run
-
-- Polling sources should always emit events on the first run (see the [Spotify:
- New
- Playlist](https://github.com/PipedreamHQ/pipedream/blob/master/components/spotify/sources/new-playlist/new-playlist.mjs)
- source as an example)
-- Webhook-based sources should attempt to fetch existing events in the
- `deploy()` hook during source creation (see the [Jotform: New
- Submission](https://github.com/PipedreamHQ/pipedream/blob/master/components/jotform/sources/new-submission/new-submission.mjs)
- source)
-
-_Note – make sure to emit the most recent events (considering pagination), and
-limit the count to no more than 50 events._
-
-#### Include a Static Sample Event
-
-There are times where there may not be any historical events available (think
-about sources that emit less frequently, like "New Customer" or "New Order",
-etc). In these cases, we should include a static sample event so users can see
-the event shape and reference it while building their workflow, even if it's
-using fake data.
-
-To achieve this, follow these steps:
-
-1. Copy the JSON output from the source's emit (what you get from
- `steps.trigger.event`) and **make sure to remove or scrub any sensitive or
- personal data** (you can also copy this from the app's API docs)
-2. Add a new file called `test-event.mjs` in the same directory as the component
- source and export the JSON event via `export default`
- ([example](https://github.com/PipedreamHQ/pipedream/blob/master/components/jotform/sources/new-submission/test-event.mjs))
-3. In the source component code, make sure to import that file as `sampleEmit`
- ([example](https://github.com/PipedreamHQ/pipedream/blob/master/components/jotform/sources/new-submission/new-submission.mjs#L2))
-4. And finally, export the `sampleEmit` object
- ([example](https://github.com/PipedreamHQ/pipedream/blob/master/components/jotform/sources/new-submission/new-submission.mjs#L96))
-
-This will render a "Generate Test Event" button in the UI for users to emit that
-sample event:
-
-
-
-### Polling Sources
-
-#### Default Timer Interval
-
-As a general heuristic, set the default timer interval to 15 minutes. However,
-you may set a custom interval (greater or less than 15 minutes) if appropriate
-for the specific source. Users may also override the default value at any time.
-
-For polling sources in the Pipedream registry, the default polling interval is
-set as a global config. Individual sources can access that default within the
-props definition:
-
-``` javascript
-import { DEFAULT_POLLING_SOURCE_TIMER_INTERVAL } from "@pipedream/platform";
-
-export default {
- props: {
- timer: {
- type: "$.interface.timer",
- default: {
- intervalSeconds: DEFAULT_POLLING_SOURCE_TIMER_INTERVAL,
- },
- },
- },
- // rest of component...
-}
-```
-
-#### Rate Limit Optimization
-
-When building a polling source, cache the most recently processed ID or
-timestamp using `$.service.db` whenever the API accepts a `since_id` or "since
-timestamp" (or equivalent). Some apps (e.g., Github) do not count requests that
-do not return new results against a user’s API quota.
-
-If the service has a well-supported Node.js client library, it'll often build in
-retries for issues like rate limits, so using the client lib (when available)
-should be preferred. In the absence of that,
-[Bottleneck](https://www.npmjs.com/package/bottleneck) can be useful for
-managing rate limits. 429s should be handled with exponential backoff (instead
-of just letting the error bubble up).
-
-### Webhook Sources
-
-#### Hooks
-
-[Hooks](/components/contributing/api/#hooks) are methods that are automatically invoked by
-Pipedream at different stages of the [component
-lifecycle](/components/contributing/api/#source-lifecycle). Webhook subscriptions are
-typically created when components are instantiated or activated via the
-`activate()` hook, and deleted when components are deactivated or deleted via
-the `deactivate()` hook.
-
-#### Helper Methods
-
-Whenever possible, create methods in the app file to manage [creating and
-deleting webhook subscriptions](/components/contributing/api/#hooks).
-
-| **Description** | **Method Name** |
-| --------------------------------------- | --------------- |
-| Method to create a webhook subscription | `createHook()` |
-| Method to delete a webhook subscription | `deleteHook()` |
-
-#### Storing the 3rd Party Webhook ID
-
-After subscribing to a webhook, save the ID for the hook returned by the 3rd
-party service to the `$.service.db` for a source using the key `hookId`. This ID
-will be referenced when managing or deleting the webhook. Note: some apps may
-not return a unique ID for the registered webhook (e.g., Jotform).
-
-#### Signature Validation
-
-Subscription webhook components should always validate the incoming event
-signature if the source app supports it.
-
-#### Shared Secrets
-
-If the source app supports shared secrets, implement support transparent to the
-end user. Generate and use a GUID for the shared secret value, save it to a
-`$.service.db` key, and use the saved value to validate incoming events.
-
-## Action Guidelines
-
-### Action Name
-
-Like [source name](#source-name), action name should be a singular, title-cased
-name, should not be slugified, and should not include the app name.
-
-As a general pattern, articles are not included in the action name. For example,
-instead of "Create a Post", use "Create Post".
-
-#### Use `@pipedream/platform` axios for all HTTP Requests
-
-By default, the standard `axios` package doesn't return useful debugging data to
-the user when it `throw`s errors on HTTP 4XX and 5XX status codes. This makes it
-hard for the user to troubleshoot the issue.
-
-Instead, [use `@pipedream/platform` axios](/workflows/building-workflows/http/#platform-axios).
-
-#### Return JavaScript Objects
-
-When you `return` data from an action, it's exposed as a [step
-export](/workflows/#step-exports) for users to reference in future steps
-of their workflow. Return JavaScript objects in all cases, unless there's a
-specific reason not to.
-
-For example, some APIs return XML responses. If you return XML from the step,
-it's harder for users to parse and reference in future steps. Convert the XML to
-a JavaScript object, and return that, instead.
-
-### "List" Actions
-
-#### Return an Array of Objects
-
-To simplify using results from "list"/"search" actions in future steps of a
-workflow, return an array of the items being listed rather than an object with a
-nested array. [See this example for
-Airtable](https://github.com/PipedreamHQ/pipedream/blob/cb4b830d93e1495d8622b0c7dbd80cd3664e4eb3/components/airtable/actions/common-list.js#L48-L63).
-
-#### Handle Pagination
-
-For actions that return a list of items, the common use case is to retrieve all
-items. Handle pagination within the action to remove the complexity of needing
-to paginate from users. We may revisit this in the future and expose the
-pagination / offset params directly to the user.
-
-In some cases, it may be appropriate to limit the number of API requests made or
-records returned in an action. For example, some Twitter actions optionally
-limit the number of API requests that are made per execution (using a
-[`maxRequests`
-prop](https://github.com/PipedreamHQ/pipedream/blob/cb4b830d93e1495d8622b0c7dbd80cd3664e4eb3/components/twitter/twitter.app.mjs#L52))
-to avoid exceeding Twitter's rate limits. [See the Airtable
-components](https://github.com/PipedreamHQ/pipedream/blob/e2bb7b7bea2fdf5869f18e84644f5dc61d9c22f0/components/airtable/airtable.app.js#L14)
-for an example of using a `maxRecords` prop to optionally limit the maximum
-number of records to return.
-
-### Use `$.summary` to Summarize What Happened
-
-[Describe what happened](/components/contributing/api/#returning-data-from-steps) when an
-action succeeds by following these guidelines:
-
-- Use plain language and provide helpful and contextually relevant information
- (especially the count of items)
-- Whenever possible, use names and titles instead of IDs
-- Basic structure: _Successfully [action performed (like added, removed,
- updated)] “[relevant destination]”_
-
-### Don't Export Data You Know Will Be Large
-
-Browsers can crash when users load large exports (many MBs of data). When you
-know the content being returned is likely to be large – e.g. files — don't
-export the full content. Consider writing the data to the `/tmp` directory and
-exporting a reference to the file.
-
-## Miscellaneous
-
-- Use camelCase for all props, method names, and variables.
-
-## Database Components
-
-Pipedream supports a special category of apps called ["databases"](/workflows/data-management/databases/),
-such as
-[MySQL](https://github.com/PipedreamHQ/pipedream/tree/master/components/mysql),
-[PostgreSQL](https://github.com/PipedreamHQ/pipedream/tree/master/components/postgresql),
-[Snowflake](https://github.com/PipedreamHQ/pipedream/tree/master/components/snowflake),
-etc. Components tied to these apps offer unique features _as long as_ they
-comply with some requirements. The most important features are:
-
-1. A built-in SQL editor that allows users to input a SQL query to be run
- against their DB
-2. Proxied execution of commands against a DB, which guarantees that such
- requests are always being made from the same range of static IPs (see the
- [shared static IPs docs](/workflows/data-management/databases#send-requests-from-a-shared-static-ip))
-
-When dealing with database components, the Pipedream runtime performs certain
-actions internally to make these features work. For this reason, these
-components must implement specific interfaces that allows the runtime to
-properly interact with their code. These interfaces are usually defined in the
-[`@pipedream/platform`](https://github.com/PipedreamHQ/pipedream/tree/master/platform)
-package.
-
-### SQL Editor
-
-This code editor is rendered specifically for props of type `sql`, and it uses
-(whenever possible) the underlying's database schema information to provide
-auto-complete suggestions. Each database engine not only has its own SQL
-dialect, but also its own way of inspecting the schemas and table information it
-stores. For this reason, each app file must implement the logic that's
-applicable to the target engine.
-
-To support the schema retrieval, the app file must implement a method called
-`getSchema` that takes no parameters, and returns a data structure with a format
-like this:
-
-```javascript
-{
- users: { // The entries at the root correspond to table names
- metadata: {
- rowCount: 100,
- },
- schema: {
- id: { // The entries under `schema` correspond to column names
- columnDefault: null,
- dataType: "number",
- isNullable: false,
- tableSchema: "public",
- },
- email: {
- columnDefault: null,
- dataType: "varchar",
- isNullable: false,
- tableSchema: "public",
- },
- dateOfBirth: {
- columnDefault: null,
- dataType: "varchar",
- isNullable: true,
- tableSchema: "public",
- },
- },
- },
-}
-```
-
-The
-[`lib/sql-prop.ts`](https://github.com/PipedreamHQ/pipedream/blob/master/platform/lib/sql-prop.ts)
-file in the `@pipedream/platform` package define the schema format and the
-signature of the `getSchema` method. You can also check out existing examples in
-the
-[MySQL](https://github.com/PipedreamHQ/pipedream/blob/master/components/mysql/mysql.app.mjs),
-[PostgreSQL](https://github.com/PipedreamHQ/pipedream/blob/master/components/postgresql/postgresql.app.mjs)
-and
-[Snowflake](https://github.com/PipedreamHQ/pipedream/blob/master/components/snowflake/snowflake.app.mjs)
-components.
-
-### Shared Static IPs
-
-When a user runs a SQL query against a database, the request is proxied through
-a separate internal service that's guaranteed to always use the same range of
-static IPs when making outbound requests. This is important for users that have
-their databases protected behind a firewall, as they can whitelist these IPs to
-allow Pipedream components to access their databases.
-
-To make this work, the app file must implement the interface defined in the
-[`lib/sql-proxy.ts`](https://github.com/PipedreamHQ/pipedream/blob/master/platform/lib/sql-proxy.ts)
-file in the `@pipedream/platform` package. This interface defines the following
-methods:
-
-1. **`getClientConfiguration`**: This method takes no parameters and returns an
- object that can be fed directly to the database's client library to
- initialize/establish a connection to the database. This guarantees that both
- the component and the proxy service use the same connection settings, **so
- make sure the component uses this method when initializing the client**.
-2. **`executeQuery`**: This method takes a query object and returns the result
- of executing the query against the database. The Pipedream runtime will
- replace this method with a call to the proxy service, so **every component
- must make use of this method in order to support this feature**.
-3. **`proxyAdapter`**: This method allows the proxy service to take the
- arguments passed to the `executeQuery` method and transform them into a
- "generic" query object that the service can then use. The expected format
- looks something like this:
- ```javascript
- {
- query: "SELECT * FROM users WHERE id = ?",
- params: [42],
- }
- ```
-
-You can check out these example pull requests that allowed components to support
-this proxy feature:
-
-- [#11201 (MySQL)](https://github.com/PipedreamHQ/pipedream/pull/11201)
-- [#11202 (PostgreSQL)](https://github.com/PipedreamHQ/pipedream/pull/11202)
-- [#12511 (Snowflake)](https://github.com/PipedreamHQ/pipedream/pull/12511)
diff --git a/docs-v2/pages/components/contributing/index.mdx b/docs-v2/pages/components/contributing/index.mdx
deleted file mode 100644
index 9e7186241471e..0000000000000
--- a/docs-v2/pages/components/contributing/index.mdx
+++ /dev/null
@@ -1,99 +0,0 @@
-import Callout from '@/components/Callout'
-import { FileTree } from 'nextra/components'
-
-# Pipedream Registry
-
-When developing workflows with pre-built actions and triggers, under the hood you're using [components](/components/contributing/) from the [Pipedream Registry Github Repository](https://github.com/PipedreamHQ/pipedream).
-
-Components contributed to the [Pipedream Registry Github Repository](https://github.com/PipedreamHQ/pipedream) are published to the [Pipedream marketplace](https://pipedream.com/apps) and are listed in
-the Pipedream UI when building workflows.
-
-
-What is a component?
-
-If you haven't yet, we recommend starting with our Component Development Quickstart Guides for [sources](/components/contributing/quickstart/nodejs/sources/)
-and [actions](/components/contributing/actions-quickstart/) to learn how to build components and privately publish them to your account.
-
-
-## Registry Components Structure
-
-All Pipedream registry components live in [this GitHub repo](https://github.com/PipedreamHQ/pipedream) under the [`components`](https://github.com/PipedreamHQ/pipedream/tree/master/components) directory.
-
-Every integrated app on Pipedream has a corresponding directory that defines the actions and sources available for that app. Below is a simplified version of the [Airtable app directory](https://github.com/PipedreamHQ/pipedream/tree/master/components/airtable) within the registry:
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-In the example above, the `components/airtable/actions/get-record/get-record.mjs` component is published as the **Get Record** action under the **Airtable** app within the workflow builder in Pipedream.
-
-
-The repository is missing the app directory I'd like to add components for
-
-You can request to have new apps integrated into Pipedream.
-
-Once the Pipedream team integrates the app, we'll create a directory for the app in the [`components`](https://github.com/PipedreamHQ/pipedream/tree/master/components) directory of the GitHub repo.
-
-
-## Contribution Process
-
-Anyone from the community can build [sources](/workflows/building-workflows/triggers/) and [actions](/components/contributing/#actions) for integrated apps.
-
-To submit new components or update existing components:
-
-1. Fork the public [Pipedream Registry Github Repository](https://github.com/PipedreamHQ/pipedream).
-2. Create a new component within the corresponding app's directory within the `components` directory (if applicable).
-3. [Create a PR for the Pipedream team to review](https://github.com/PipedreamHQ/pipedream/compare).
-4. Address any feedback provided by Pipedream based on the best practice [Component Guidelines & Patterns](/components/contributing/guidelines/).
-5. Once the review is complete and approved, Pipedream will merge the PR to the `master` branch
-6. The component will be available for use within workflows for all Pipedream developers! 🎉
-
-### Component Development Discussion
-
-Join the discussion with other Pipedream component developers at the [#contribute channel](https://pipedream-users.slack.com/archives/C01E5KCTR16) in Slack or [on Discourse](https://pipedream.com/community/c/dev/11).
-
-
-Not sure what to build?
-
-Need inspiration? Check out [sources](https://github.com/PipedreamHQ/pipedream/issues?q=is%3Aissue+is%3Aopen+%5BSOURCE%5D+in%3Atitle)
-and [actions](https://github.com/PipedreamHQ/pipedream/issues?q=is%3Aissue+is%3Aopen+%5BACTION%5D+in%3Atitle+) requested by the community!
-
-
-## Reference Components
-
-The following components are references for developing sources and
-actions for Pipedream's registry.
-
-### Reference Sources
-
-| Name | App | Type |
-| ------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------ | -------------------------------------------- |
-| [New Card](https://github.com/PipedreamHQ/pipedream/blob/master/components/trello/sources/new-card/new-card.mjs) | Trello | Webhook |
-| [New or Modified Files](https://github.com/PipedreamHQ/pipedream/blob/master/components/google_drive/sources/new-or-modified-files/new-or-modified-files.mjs) | Google Drive | Webhook + Polling |
-| [New Submission](https://github.com/PipedreamHQ/pipedream/blob/master/components/jotform/sources/new-submission/new-submission.mjs) | Jotform | Webhook (with no unique hook ID) |
-
-### Reference Actions
-
-| Name | App |
-| ----------------------------------------------------------------------------------------------------------------------------------------------------- | ------------- |
-| [Add Multiple Rows](https://github.com/PipedreamHQ/pipedream/blob/master/components/google_sheets/actions/add-multiple-rows/add-multiple-rows.mjs) | Google Sheets |
-| [Send Message](https://github.com/PipedreamHQ/pipedream/blob/master/components/discord_bot/actions/send-message/send-message.mjs) | Discord |
-| [Append Text](https://github.com/PipedreamHQ/pipedream/blob/master/components/google_docs/actions/append-text/append-text.mjs) | Google Docs |
-| [`GET` request](https://github.com/PipedreamHQ/pipedream/blob/master/components/http/actions/get-request/get-request.mjs) | HTTP |
diff --git a/docs-v2/pages/components/contributing/sources-quickstart.mdx b/docs-v2/pages/components/contributing/sources-quickstart.mdx
deleted file mode 100644
index 25d8c88bccab0..0000000000000
--- a/docs-v2/pages/components/contributing/sources-quickstart.mdx
+++ /dev/null
@@ -1,684 +0,0 @@
-# Quickstart: Source Development
-
-This document is intended for a technical audience (including those interested in learning how to author and edit components). After completing this quickstart, you will understand how to:
-
-- Deploy components to Pipedream using the CLI
-- Invoke a component manually, or on a schedule or HTTP request
-- Maintain state across component executions
-- Emit deduped events using the `unique` and `greatest` strategies
-- Use Pipedream managed OAuth for an app
-- Use npm packages in components
-
-We recommend that you execute the examples in order — each one builds on the concepts and practices of earlier examples.
-
-## Quickstart Examples
-
-**Hello World! (~10 minutes)**
-
-- Deploy a `hello world!` component using the Pipedream CLI and invoke it manually
-- Use `$.service.db` to maintain state across executions
-- Use `$.interface.timer` to invoke a component on a schedule
-- Use `$.interface.http` to invoke code on HTTP requests
-
-**Emit new RSS items on a schedule (~10 mins)**
-
-- Use the `rss-parser` npm package to retrieve an RSS feed and emit each item
-- Display a custom summary for each emitted item in the event list
-- Use the `unique` deduping strategy so we only emit new items from the RSS feed
-- Add a timer interface to run the component on a schedule
-
-**Poll for new Github issues (~10 mins)**
-
-- Use Pipedream managed OAuth with Github's API to retrieve issues for a repo
-- Use the `greatest` deduping strategy to only emit new issues
-
-## Prerequisites
-
-**Step 1.** Create a free account at [https://pipedream.com](https://pipedream.com). Just sign in with your Google or Github account.
-
-**Step 2.** [Download and install the Pipedream CLI](/components/contributing/cli/install/).
-
-**Step 3.** Once the CLI is installed, [link your Pipedream account to the CLI](/components/contributing/cli/login/#existing-pipedream-account):
-
-```bash
-pd login
-```
-
-See the [CLI reference](/components/contributing/cli/reference/) for detailed usage and examples beyond those covered below.
-
-## CLI Development Mode
-
-The examples in this guide use the `pd dev` command. This command will deploy your code in "development mode". What that means is that the CLI will attach to the deployed component and watch your local file for changes — when you save changes to your local file, your component will automatically be updated on Pipedream (the alternative is to `pd deploy` and run `pd update` for each change).
-
-If your `pd dev` session is terminated and you need to re-attach to a deployed component, run the following command.
-
-```bash
-pd dev [--dc ]
-```
-
-For example, if you're building a new source at `components/sources/my-source.mjs`, then pass the fully qualified path to `pd dev`:
-
-```bash
-pd dev components/sources/my-source.mjs
-```
-If you need to update a deployed instance of a source, pass it's ID to the `dc` argument to update it with new source code:
-
-```bash
-pd dev --dc dc_123456 components/sources/my-source.mjs
-```
-
-See the [CLI reference](/components/contributing/cli/reference/) for detailed usage and examples beyond those covered below.
-
-## Hello World!
-
-Here is a simple component that will emit an event with a payload of `{ message: "hello world!" }` on each execution.
-
-```javascript
-export default {
- name: "Source Demo",
- description: "This is a demo source",
- async run() {
- this.$emit({ message: "hello world!" });
- },
-};
-```
-
-To deploy and run it, save the code to a local `.js` file (e.g., `source.js`) and run the following CLI command:
-
-```bash
-pd dev source.js
-```
-
-The CLI will deploy your code in development mode (the CLI will attach to the deployed component and watch your local file for changes — when you save changes to your local file, your component will automatically be updated on Pipedream).
-
-You should see the following output:
-
-```bash
-$ pd dev source.js
-watch:add | source.js
-Configuring props...
-Deploying...
-Attached to deployed component: https://pipedream.com/sources/dc_v3uXKz/configuration
-Ready for updates!
-```
-
-Open the URL returned by the CLI (`https://pipedream.com/sources/dc_v3uXKz` in the sample output above) to view your source in Pipedream's UI.
-
-Then click **RUN NOW** to invoke your source. Your event will appear in real-time, and you can select it to inspect the emitted data.
-
-
-
-### Maintain state across executions
-
-Next, we'll use Pipedream's `db` service to track the number of times the component is invoked.
-
-First, we'll assign `$.service.db` to a prop so we can reference it in our code via `this`.
-
-```javascript
-props: {
- db: "$.service.db",
-},
-```
-
-Then we'll update the `run()` method to:
-
-- Retrieve the value for the `count` key (using the `get()` method of `$.service.db`)
-- Display the count in the event summary (event summaries are displayed in the event list next to the event time)
-- Increment `count` and save the updated value to `$.service.db` using the `set()` method
-
-```javascript
-let count = this.db.get("count") || 1;
-
-this.$emit(
- { message: "hello world!" },
- {
- summary: `Execution #${count}`,
- }
-);
-
-this.db.set("count", ++count);
-```
-
-Here's the updated code:
-
-```javascript
-export default {
- name: "Source Demo",
- description: "This is a demo source",
- props: {
- db: "$.service.db",
- },
- async run() {
- let count = this.db.get("count") || 1;
-
- this.$emit(
- { message: "hello world!" },
- {
- summary: `Execution #${count}`,
- }
- );
-
- this.db.set("count", ++count);
- },
-};
-```
-
-Save the changes to your local file. Your component on Pipedream should automatically update. Return to the Pipedream UI and press **RUN NOW** — you should see the execution count appear in the event list.
-
-
-
-### Invoke your code on a schedule
-
-Next, we'll update our component so it runs on a schedule. To do that, we'll use Pipedream's `timer` interface and we'll set the default execution interval to 15 minutes by adding the following code to props:
-
-```
-timer: {
- type: "$.interface.timer",
- default: {
- intervalSeconds: 15 * 60,
- },
-},
-```
-
-Here's the updated code:
-
-```javascript
-export default {
- name: "Source Demo",
- description: "This is a demo source",
- props: {
- db: "$.service.db",
- timer: {
- type: "$.interface.timer",
- default: {
- intervalSeconds: 15 * 60,
- },
- },
- },
- async run() {
- let count = this.db.get("count") || 1;
-
- this.$emit(
- { message: "hello world!" },
- {
- summary: `Execution #${count}`,
- }
- );
-
- this.db.set("count", ++count);
- },
-};
-```
-
-Save the changes to your file (your component on Pipedream should automatically update). and then, return to the Pipedream UI and **reload the page**. You should now see the timer settings in the summary and a countdown to the next execution (you can still run your component manually). Your component will now run every 15 minutes.
-
-
-
-**Note**: if you'd like to change the schedule of your deployed component, visit the **Configuration** tab in the Pipedream UI and change the schedule accordingly. Changing the value of `intervalSeconds` within the component's code will not change the schedule of the running instance of the component. You can also set one value as the default `intervalSeconds` in the component's code, but run
-
-```bash
-pd dev --prompt-all
-```
-
-to set a different schedule than the default specified in the code.
-
-### Invoke your code on HTTP requests
-
-Next, we'll update our component to run on HTTP requests instead of a timer. To do that, we'll just replace the `timer` interface with an `http` interface.
-
-```javascript
-http: {
- type: "$.interface.http",
- customResponse: true
- },
-```
-
-In addition, we'll update the function signature to pass in the HTTP event so we can reference it in our code:
-
-```javascript
-async run(event) { }
-```
-
-Finally, let's update the `run()` method to use `event` to both echo back the request body in the HTTP response and emit it as the event payload.
-
-```javascript
-this.http.respond({
- status: 200,
- body: event.body,
- headers: {
- "Content-Type": event.headers["Content-Type"],
- },
-});
-
-this.$emit(event.body, {
- summary: `Execution #${count}`,
-});
-```
-
-Here's the updated code:
-
-```javascript
-export default {
- name: "Source Demo",
- description: "This is a demo source",
- props: {
- db: "$.service.db",
- http: {
- type: "$.interface.http",
- customResponse: true,
- },
- },
- async run(event) {
- let count = this.db.get("count") || 1;
-
- this.http.respond({
- status: 200,
- body: event.body,
- headers: {
- "Content-Type": event.headers["Content-Type"],
- },
- });
-
- this.$emit(event.body, {
- summary: `Execution #${count}`,
- });
-
- this.db.set("count", ++count);
- },
-};
-```
-
-Save the changes to your file and your component on Pipedream should automatically update.
-
-Return to the Pipedream UI and refresh the page. Instead of the countdown timer, you will now see a unique URL generated by Pipedream. Copy the URL and update and execute the CURL command below to invoke your component. This command passes `{ message: "hello world!" }` as the request body. `{ message: "hello world!" }` will be emitted as the event similar to the earlier examples, and it will also be echoed back in the HTTP response.
-
-```
-curl -d '{ "message": "hello world!" }' \
- -H "Content-Type: application/json" \
- "INSERT-YOUR-ENDPOINT-URL-HERE"
-```
-
-
-
-## Emit new RSS items on a schedule (~10 mins)
-
-Next, let's cover some real-world examples starting with RSS. Continue editing the same file, but start with the following scaffolding for this example.
-
-```javascript
-export default {
- name: "Source Demo",
- description: "This is a demo source",
- async run() {},
-};
-```
-
-### Emit items in an RSS Feed
-
-> **Note:** The code for the examples below was adapted from the samples provided in the readme for the `rss-parser` package at https://www.npmjs.com/package/rss-parser. To use most npm packages on Pipedream, just `import` them — there is no `package.json` or `npm install` required.
-
-To parse the RSS feed, we'll use the `rss-parser` npm package.
-
-```javascript
-import Parser from "rss-parser";
-let parser = new Parser();
-```
-
-Then, update the `run()` method to:
-
-- Parse the feed at `https://lorem-rss.herokuapp.com/feed` (it's important you use this feed -- a new item is added every minute, so it will help us test deduplication)
-- Loop through the array of returned RSS items and emit each one
-
-```javascript
-let feed = await parser.parseURL("https://lorem-rss.herokuapp.com/feed");
-feed.items.forEach((item) => {
- this.$emit(item);
-});
-```
-
-Here's the updated code:
-
-```javascript
-import Parser from "rss-parser";
-let parser = new Parser();
-
-export default {
- name: "Source Demo",
- description: "This is a demo source",
- async run() {
- let feed = await parser.parseURL("https://lorem-rss.herokuapp.com/feed");
- feed.items.forEach((item) => {
- this.$emit(item);
- });
- },
-};
-```
-
-Save the changes to your file, and then refresh your source in the Pipedream UI and click **RUN NOW**. You should see 10 events emitted. Each event corresponds with an RSS item. You can select each event to inspect it.
-
-### Add an optional summary for each emitted event
-
-Next, we'll add a summary for each event. The summary is displayed in the event list and makes it easy to differentiate events at a glance in the list. For this example, let's emit the `title` as the summary for each RSS item. To do that, we add a metadata object to `this.$emit()`.
-
-Add summary to emit metadata...
-
-```javascript
-this.$emit(item, {
- summary: item.title,
-});
-```
-
-Here's the updated code:
-
-```javascript
-import Parser from "rss-parser";
-let parser = new Parser();
-
-export default {
- name: "Source Demo",
- description: "This is a demo source",
- async run() {
- let feed = await parser.parseURL("https://lorem-rss.herokuapp.com/feed");
- feed.items.forEach((item) => {
- this.$emit(item, {
- summary: item.title,
- });
- });
- },
-};
-```
-
-Save the changes to your file and then click **RUN NOW** in the Pipedream UI. You should again see 10 events emitted, but this time each event should have a corresponding summary in the event list.
-
-### Only emit new items in the RSS Feed
-
-In the previous examples, we always emit any data that is returned. However, we are emitting duplicate events -- e.g., if you run invoke the component twice, you will see the same events emitted twice.
-
-Pipedream provides built-in deduplication strategies to make it easy to emit new events only. For this example, we'll use the `unique` strategy. This strategy caches the last 100 event `id` values, and only emits events with `id` values that are not contained in that cache.
-
-To dedupe with the `unique` strategy, we need to first declare it:
-
-```javascript
-dedupe: "unique",
-```
-
-And then we need to pass an `id` value in the metadata for `this.$emit()` for Pipedream to use for deduping:
-
-```javascript
-this.$emit(item, {
- summary: item.title,
- id: item.guid,
-});
-```
-
-Here's the updated code:
-
-```javascript
-import Parser from "rss-parser";
-let parser = new Parser();
-
-export default {
- name: "Source Demo",
- description: "This is a demo source",
- dedupe: "unique",
- async run() {
- let feed = await parser.parseURL("https://lorem-rss.herokuapp.com/feed");
- feed.items.forEach((item) => {
- this.$emit(item, {
- summary: item.title,
- id: item.guid,
- });
- });
- },
-};
-```
-
-Save the changes to your file and then click **RUN NOW** in the Pipedream UI. Similar to previous executions, you should see 10 events emitted. Now, run the component **again**. You should see a maximum of **one, if any** events emitted (the reason one event may be emitted is if a new item was added to the RSS feed). If no new events were emitted, wait for ~1 minute and try again.
-
-### Add a timer interface to invoke the component on a schedule
-
-Now we're ready to add a timer to our component to check for new RSS items automatically. Similar to the **hello world!** example above, we'll add a timer prop, and we'll set the default interval to 5 minutes:
-
-```javascript
-props: {
- timer: {
- type: "$.interface.timer",
- default: {
- intervalSeconds: 60 * 5,
- },
- },
-},
-```
-
-Here's the updated code:
-
-```javascript
-import Parser from "rss-parser";
-let parser = new Parser();
-
-export default {
- name: "Source Demo",
- description: "This is a demo source",
- props: {
- timer: {
- type: "$.interface.timer",
- default: {
- intervalSeconds: 60 * 5,
- },
- },
- },
- dedupe: "unique",
- async run() {
- let feed = await parser.parseURL("https://lorem-rss.herokuapp.com/feed");
- feed.items.forEach((item) => {
- this.$emit(item, {
- id: item.guid,
- summary: item.title,
- });
- });
- },
-};
-```
-
-**Save** your component then return to the UI and reload the page. You should see the updated configuration on your summary card and a countdown to the next execution. You can still click **RUN NOW** to execute your source manually.
-
-## Use managed auth to pull data from Github (~10 mins)
-
-In the last example, we were able to retrieve data to emit without any authentication. Now we'll use Pipedream managed auth to retrieve and emit data from the Github API (which uses OAuth for authentication). Similar to the last example, continue editing the same file, but start with the following scaffolding:
-
-```javascript
-export default {
- name: "Source Demo",
- description: "This is a demo source",
- async run() {},
-};
-```
-
-### Get issues for a repo
-
-First, import `axios` so we can make a request to the Github REST API:
-
-```javascript
-import { axios } from "@pipedream/platform";
-```
-
-Next, let's add an **app prop**, which will enable us to use Pipedream managed auth with this component. For this example, we'll add Github:
-
-```javascript
-props: {
- github: {
- type: "app",
- app: "github",
- },
-},
-```
-
-**IMPORTANT: The CLI will prompt you to select a connected account (or connect a new one) when you deploy (or update) this component.**
-
-> **Note:** The value for the `app` property is the name slug for the app in Pipedream. This is not currently discoverable, but it will be in the near future. For the time being, if you want to know how to reference an app, please reach out on our public Slack.
-
-Finally, we'll update the `run()` method to fetch issues from Github using `axios` and emit them. Notice that we're passing the `oauth_access_token` in the authorization header by referencing the app prop `this.github.$auth.oauth_access_token`. Again, it's important that you stick with the `pddemo/demo` repo shown in the below example so you can test the next dedupe strategy.
-
-```javascript
-async run() {
- const data = await axios(this, {
- method: 'get',
- headers: {
- Authorization: `Bearer ${this.github.$auth.oauth_access_token}`,
- },
- url: `https://api.github.com/repos/pddemo/demo/issues`
- })
- data.forEach(issue => {
- this.$emit(issue)
- })
-}
-```
-
-Here's the updated code.
-
-```javascript
-import { axios } from "@pipedream/platform";
-
-export default {
- name: "Source Demo",
- description: "This is a demo source",
- props: {
- github: {
- type: "app",
- app: "github",
- },
- },
- async run() {
- const data = await axios(this, {
- method: "get",
- headers: {
- Authorization: `Bearer ${this.github.$auth.oauth_access_token}`,
- },
- url: `https://api.github.com/repos/pddemo/demo/issues`,
- });
- data.forEach((issue) => {
- this.$emit(issue);
- });
- },
-};
-```
-
-Next save your changes and go to the terminal where you ran `pd dev` **— follow the CLI prompts to select a connected account for Github (or connect a new one)**. Then load the Pipedream UI, and click **RUN NOW**. Your component should emit 30 issues.
-
-### Dedupe the events
-
-In the RSS example, we deduped the emitted events based on the `unique` strategy. The limitation of the unique strategy is that it will only maintain uniqueness for 100 items. Since Github issues have increasing numeric IDs, we can use the `greatest` strategy to filter for new issues.
-
-To use this strategy, we first have to declare it.
-
-```javascript
-dedupe: "greatest".
-```
-
-Then, we need to pass the numeric ID for each issue to `this.$emit()`. We can also add a summary and a timestamp (based on the date/time when the issue was created). Note: when you add a timestamp, Pipedream will automatically emit events from oldest to newest.
-
-```javascript
-response.data.forEach((issue) => {
- this.$emit(issue, {
- id: issue.id,
- summary: `ISSUE ${issue.number}: ${issue.title}`,
- ts: issue.created_at && +new Date(issue.created_at),
- });
-});
-```
-
-Here is the updated code.
-
-```javascript
-import { axios } from "@pipedream/platform";
-
-export default {
- name: "Source Demo",
- description: "This is a demo source",
- props: {
- github: {
- type: "app",
- app: "github",
- },
- },
- dedupe: "greatest",
- async run() {
- const data = await axios(this, {
- method: "get",
- headers: {
- Authorization: `Bearer ${this.github.$auth.oauth_access_token}`,
- },
- url: `https://api.github.com/repos/pddemo/demo/issues`,
- });
- data.forEach((issue) => {
- this.$emit(issue, {
- id: issue.id,
- summary: `ISSUE ${issue.number}: ${issue.title}`,
- ts: issue.created_at && +new Date(issue.created_at),
- });
- });
- },
-};
-```
-
-Save, load the Pipedream UI, and click **RUN NOW**. You should see 30 issues emitted, now with summaries. When you click **RUN NOW** again, only new issues will be emitted (if there are any).
-
-### Add a timer to run on a schedule
-
-As the final step of this walk-through, we'll update our component to check for new issues every 15 minutes. To do that, we'll add a timer prop.
-
-```javascript
-timer: {
- type: "$.interface.timer",
- default: {
- intervalSeconds: 15 * 60,
- },
-},
-```
-
-Here's the updated code.
-
-```javascript
-import { axios } from "@pipedream/platform";
-
-export default {
- name: "Source Demo",
- description: "This is a demo source",
- props: {
- github: {
- type: "app",
- app: "github",
- },
- timer: {
- type: "$.interface.timer",
- default: {
- intervalSeconds: 15 * 60,
- },
- },
- },
- dedupe: "greatest",
- async run() {
- const data = await axios(this, {
- method: "get",
- headers: {
- Authorization: `Bearer ${this.github.$auth.oauth_access_token}`,
- },
- url: `https://api.github.com/repos/pddemo/demo/issues`,
- });
- data.forEach((issue) => {
- this.$emit(issue, {
- id: issue.id,
- summary: `ISSUE ${issue.number}: ${issue.title}`,
- ts: issue.created_at && +new Date(issue.created_at),
- });
- });
- },
-};
-```
-
-Save and reload your source in the Pipedream UI. You should now see a countdown timer to the next execution.
-
-## What's Next?
-
-You're ready to start authoring and deploying components on Pipedream! You can also check out the [detailed component reference](/components/contributing/api/) at any time!
-
-If you have any questions or feedback, please join our [public Slack](https://pipedream.com/support).
diff --git a/docs-v2/pages/components/contributing/typescript.mdx b/docs-v2/pages/components/contributing/typescript.mdx
deleted file mode 100644
index 47f5b60810dac..0000000000000
--- a/docs-v2/pages/components/contributing/typescript.mdx
+++ /dev/null
@@ -1,101 +0,0 @@
-import Callout from '@/components/Callout'
-
-# TypeScript components
-
-
-🎉 Calling all TypeScript developers 🎉
-
-TypeScript components are in **beta**, and we're looking for feedback. Please see our list of [known issues](#known-issues), start writing TypeScript components, and give us feedback in [our community](https://pipedream.com/support).
-
-During the beta, the `@pipedream/types` package and other TypeScript configuration in the `pipedream` repo is subject to change.
-
-
-
-
-## Why TypeScript?
-
-Most Pipedream components in [the registry](https://github.com/PipedreamHQ/pipedream) are written in Node.js. Writing components in TypeScript can reduce bugs and speed up development, with very few changes to your code.
-
-If you haven't written TypeScript, start with [this tutorial](https://www.typescriptlang.org/docs/handbook/typescript-from-scratch.html).
-
-## Quickstart
-
-
-If you've never developed Pipedream components before, [start here](/components/contributing/).
-
-
-### Developing TypeScript components in the `PipedreamHQ/pipedream` registry
-
-1. [Fork and clone the repo](https://github.com/PipedreamHQ/pipedream).
-
-2. Run `pnpm install` to install dependencies.
-
-3. See [the RSS sources and actions](https://github.com/PipedreamHQ/pipedream/tree/master/components/rss) for example `tsconfig.json` configuration and TypeScript components. If the app you're working with doesn't yet have a `tsconfig.json` file, copy the file from the RSS component directory and modify accordingly.
-
-4. In the RSS examples, you'll see how we use the `defineApp`, `defineAction`, and `defineSource` methods from the `@pipedream/types` package. This lets us strictly-type `this` in apps and components. See [the TypeScript docs on `ThisType`](https://www.typescriptlang.org/docs/handbook/utility-types.html#thistypetype) for more detail on this pattern.
-
-5. Before you publish components to Pipedream, you'll need to compile your TypeScript to JavaScript. Run:
-
-```bash
-npm run build
-```
-
-The build process should print the compiled JS files to your console and produce them at the `/dist` directory.
-
-For example, if you compile a TypeScript file at `pipedream/components/rss/sources/new-item-in-feed/new-item-in-feed.ts`, the corresponding JS file will be produced at `pipedream/components/rss/dist/sources/new-item-in-feed/new-item-in-feed.js`.
-
-6. Use [the Pipedream CLI](/components/contributing/cli/reference/) to `pd publish` or `pd dev` the JavaScript components emitted by step 5 by the full path to the file.
-
-```bash
-pd publish pipedream/components/rss/dist/sources/new-item-in-feed/new-item-in-feed.js
-```
-
-
-Don't forget to use the dist directory
-
-If you attempt to deploy the TypeScript component directly, you'll receive a 500 error from the publish endpoint. Instead deploy the JavaScript file produced within the `/dist` directory as described in step 5.
-
-
-7. If it doesn't exist in the app directory, add a `.gitignore` file that ignores the following files. Commit only `ts` files to Git, not compiled `*js` files.
-
-```
-*.js
-*.mjs
-dist
-```
-
-### Developing TypeScript components in your own application
-
-First, install the `@pipedream/types` package:
-
-```bash
-# npm
-npm i --save-dev @pipedream/types
-# yarn
-yarn add --dev @pipedream/types
-```
-
-You'll need a minimal configuration to compile TypeScript components in your application. In the Pipedream registry, we use this setup:
-
-- The `tsconfig.json` in the root of the repo contains [references](https://www.typescriptlang.org/docs/handbook/project-references.html) to component app directories. For example, the root config provides a reference to the `components/rss` directory, which contains its own `tsconfig.json` file.
-- `npm run build` compiles the TypeScript in all directories in `references`.
-- The `tsconfig.json` in each component app directory contains the app-specific TypeScript configuration.
-- The GitHub actions in `.github/workflows` compile and publish our components.
-
-See [the RSS sources and actions](https://github.com/PipedreamHQ/pipedream/tree/master/components/rss) for an example app configuration.
-
-## Known issues
-
-We welcome PRs in [the `PipedreamHQ/pipedream` repo](https://github.com/PipedreamHQ/pipedream), where we store all sources and actions, the `@pipedream/types` package, these docs, and other Pipedream code. Here are a few known issues durin the **beta**:
-
-- `this` is strictly-typed within `methods`, `run`, `hooks`, and everywhere you have access to `this` in [the component API](/components/contributing/api/). But this typing can be improved. For example, we don't yet map props to their appropriate TypeScript type (everything is typed with `any`).
-- The compile -> publish lifecycle hasn't been fully-automated when you're developing in the `pipedream` repo. Currently, you have to run `npm run build` from the repo root, then use the `pd` CLI to publish components after compilation. It would be nice to run `tsc-watch` and have that compile and publish the new version of the component using the `--onSuccess` flag, publishing any sources or actions accordingly.
-- We should add a linter (like `dtslint`) to all TypeScript components). Currently, `dtslint` is configured only for the `@pipedream/types` package.
-
-## `@pipedream/types`
-
-See the `types` directory of [the `PipedreamHQ/pipedream` repo](https://github.com/PipedreamHQ/pipedream) for Pipedream types. We welcome PRs!
-
-## Giving feedback during the beta
-
-We welcome any feedback, bug reports, or improvements. Please reach out or submit PRs [in our Slack, Discourse and GitHub communities](https://pipedream.com/support).
diff --git a/docs-v2/pages/components/index.mdx b/docs-v2/pages/components/index.mdx
deleted file mode 100644
index ca34ed37dc1ec..0000000000000
--- a/docs-v2/pages/components/index.mdx
+++ /dev/null
@@ -1,140 +0,0 @@
-import Callout from '@/components/Callout'
-import VideoPlayer from '@/components/VideoPlayer'
-
-# Overview
-
-## What are Components?
-
-Components are [Node.js modules](/components/contributing/api/#component-structure) that run on Pipedream's serverless infrastructure. They can use Pipedream managed auth for [{process.env.PUBLIC_APPS}+ apps](https://pipedream.com/explore) (for both OAuth and key-based APIs) and [use most npm packages](/components/contributing/api/#using-npm-packages) with no `npm install` or `package.json` required.
-
-Components are most commonly used as the building blocks of Pipedream workflows, but they can also be used like typical serverless functions. You can explore curated components for popular apps in Pipedream's [Marketplace](https://pipedream.com/explore) and [GitHub repo](https://github.com/PipedreamHQ/pipedream/tree/master/components) or you can author and share your own.
-
-
-Our TypeScript component API is in **beta**. If you're interested in developing TypeScript components and providing feedback, [see our TypeScript docs](/components/contributing/typescript/).
-
-
-## Component Types
-
-Pipedream supports two types of components — [sources](#sources) and [actions](#actions).
-
-### Sources
-
-[Sources](/workflows/building-workflows/triggers/) must be instantiated and they run as independent resources on Pipedream. They are commonly used as workflow triggers (but can also be used as standalone serverless functions).
-
-**Capabilities**
-
-- Accept user input on deploy via `props`
-- [Trigger](/components/contributing/api/#interface-props) on HTTP requests, timers, cron schedules, or manually
-- Emit events that can be inspected, trigger Pipedream [workflows](/workflows/building-workflows/) and that can be consumed in your own app via [API](/rest-api/)
-- Store and retrieve state using the [built-in key-value store](/components/contributing/api/#db)
-- Use any of Pipedream's built-in [deduping strategies](/components/contributing/api/#dedupe-strategies)
-- Deploy via Pipedream's UI, CLI or API
-
-**Example**
-
-The [New Files (Instant)](https://github.com/PipedreamHQ/pipedream/blob/master/components/google_drive/sources/new-files-instant/new-files-instant.mjs) source for Google Drive is a prebuilt component in Pipedream's registry that can be deployed in seconds and emits an event every time a new file is added to the user's Google Drive, and can also be configured to watch for changes to a specific folder within that drive. Each new event that is emitted can be used to trigger a workflow.
-
-### Actions
-
-Actions are components that may be used as steps in a workflow. Unlike sources, actions cannot run independently (outside of a workflow).
-
-**Capabilities**
-
-- Accept user input via `props`
-- May `return` JSON serializable data
-
-**Example**
-
-The Add Single Row action for Google Sheets is a prebuilt component in Pipedream's registry that can be added to a workflow and configured in seconds. Users can configure it in seconds and send workflow data to Google Sheets without having to learn the Google Sheets API.
-
-## Using Components
-
-Components may be instantiated or added to workflows via Pipedream's UI.
-
-- Sources may be instantiated and consumed via [UI](https://pipedream.com/sources/new), [CLI](/components/contributing/cli/reference/#pd-deploy) or API
-- Actions may be added to [workflows](https://pipedream.com/new)
-
-### Using Private Actions
-
-Private action components published from the [CLI](/components/contributing/cli/reference/#pd-publish) or from a [Node.js Code Step](/workflows/building-workflows/code/nodejs/sharing-code/) are available for use across your workflows.
-
-To use a published action, add a new step to your workflow and click **My Actions**. Your privately published action components will appear in this list.
-
-
-
-### Using Private Sources
-
-Private source components deployed from your account via the [CLI](/components/contributing/cli/reference/#pd-deploy) will automatically create a new Source in your account with the prop configuration you specified.
-
-Then in the workflow builder, when creating the trigger, select the *Existing* sources tab in the upper right corner to select your deployed source:
-
-
-
-You can also deploy new instances of a source from the [Components dashboard](https://res.cloudinary.com/pipedreamin/image/upload/v1618550730/docs/components/image-20210411165325045_ia5sd5.png). To deploy a new instance of a source, click the menu on the right hand side and select **Create source**.
-
-
-
-## Developing Components
-
-Develop components locally using your preferred code editor (and maintain your code in your own GitHub repo) and deploy or publish using Pipedream's [CLI](/components/contributing/cli/reference/#pd-deploy).
-
-- Sources may be deployed directly from local code or published to your account and instantiated via Pipedream's UI
-- Actions may only be published — published actions may be added to workflows via Pipedream's UI
-
-Published components are only available to your own account by default. If published to a team account, the component (source or action) may be discovered and selected by any member of the team.
-
-### Prerequisites
-
-- A free [Pipedream](https://pipedream.com) account
-- A free [GitHub](https://github.com) account
-- Basic proficiency with Node.js or Javascript
-- Pipedream [CLI](/components/contributing/cli/reference/)
-
-Finally, the target app must be integrated with Pipedream. You can explore all apps supported by Pipedream in the [marketplace](https://pipedream.com/explore). If your app is not listed, please [create a GitHub issue](https://github.com/PipedreamHQ/pipedream/issues/new?assignees=&labels=app%2C+enhancement&template=app---service-integration.md&title=%5BAPP%5D) to request it and [reach out](https://pipedream.com/community/c/dev/11) to our team to let us know that you're blocked on source or action development.
-
-### Quickstart Guides
-
-- [Sources](/components/contributing/sources-quickstart/)
-- [Actions](/components/contributing/actions-quickstart/)
-
-### Component API Reference
-
-After getting familiar with source/action development using the quickstart guides, check out [the Component API Reference](/components/contributing/api/) and [examples on GitHub](https://github.com/PipedreamHQ/pipedream/tree/master/components) to learn more.
-
-## Managing Privately Published Components
-
-Components published to your workspace are available in the [Components](https://pipedream.com/components) section of the dashboard.
-
-Your private components published from the CLI or from Node.js code steps are listed here.
-
-### Unpublishing Privately Published Components
-
-
-
-To unpublish components belonging to your workspace, open the menu on the right hand side of the component details and select **Unpublish Component**.
-
-A prompt will open to confirm the action, click **Confirm** to unpublish your action.
-
-
-
-
-Unpublishing a component is a permanent action, please be careful to ensure you still have access to the source code.
-
-
-## Sharing Components
-
-Contribute to the Pipedream community by publishing and sharing new components, and contributing to the maintenance of existing components.
-
-### Verified Components
-
-Pipedream maintains a source-available registry of components (sources and actions) that have been curated for the community. Registered components are verified by Pipedream through the [GitHub PR process](/components/contributing/#contribution-process) and:
-
-- Can be trusted by end users
-- Follow consistent patterns for usability
-- Are supported by Pipedream if issues arise
-
-Registered components also appear in the Pipedream marketplace and are listed in Pipedream's UI when building workflows.
-
-### Community Components
-
-Developers may create, deploy and share components that do not conform to these guidelines, but they will not be eligible to be listed in the curated registry (e.g., they may be hosted in a Github repo). If you develop a component that does not adhere to these guidelines, but you believe there is value to the broader community, please [reach out in our community forum](https://pipedream.com/community/c/dev/11).
diff --git a/docs-v2/pages/connect/_meta.tsx b/docs-v2/pages/connect/_meta.tsx
deleted file mode 100644
index 60567f020b21e..0000000000000
--- a/docs-v2/pages/connect/_meta.tsx
+++ /dev/null
@@ -1,13 +0,0 @@
-export default {
- "index": "Pipedream Connect",
- "use-cases": "Use Cases",
- "managed-auth": "Managed Auth",
- "components": "Tool Use",
- "mcp": "MCP",
- "api-proxy": "API Proxy",
- "workflows": "Workflows",
- "api": "API & SDK Reference",
- "migrating-from-project-keys-to-oauth": {
- "display": "hidden",
- },
-} as const
diff --git a/docs-v2/pages/connect/api-proxy.mdx b/docs-v2/pages/connect/api-proxy.mdx
deleted file mode 100644
index de509c094b0f9..0000000000000
--- a/docs-v2/pages/connect/api-proxy.mdx
+++ /dev/null
@@ -1,267 +0,0 @@
-import { Tabs } from 'nextra/components'
-import Callout from '@/components/Callout'
-
-# Connect API Proxy
-
-Pipedream Connect provides a proxy API that you can use to send authenticated requests to any integrated API on behalf of your users. This is useful in a few scenarios:
-
-1. You need code-level control and you want to use [Pipedream's OAuth](/connect/managed-auth/oauth-clients/#using-pipedream-oauth) instead of [your own OAuth client](/connect/managed-auth/oauth-clients/#using-a-custom-oauth-client)
-2. There isn't a [pre-built tool](/connect/components/) (action) for the app, or you need to modify the request
-3. You want to avoid storing end user credentials in your app
-
-## Overview
-
-The Connect proxy enables you to interface with any integrated API and make authenticated requests on behalf of your users, without dealing with OAuth or storing end user credentials.
-
-1. You send a request to the proxy and identify the end user you want to act on behalf of
-2. The proxy sends the request to the upstream API and dynamically inserts your end user's auth credentials
-3. The proxy returns the response from the upstream API back to you
-
-
-
-
-Before getting started with the Connect proxy, make sure you've already gone through the [managed auth quickstart](/connect/managed-auth/quickstart/) for Pipedream Connect.
-
-
-## Getting started
-
-You can send requests to the Connect proxy using either the Pipedream SDK with a fetch-style interface or the Pipedream REST API.
-
-### Prerequisites
-
-- A [Pipedream OAuth client](/rest-api/auth/#oauth) to make authenticated requests to Pipedream's API
-- Connect [environment](/connect/managed-auth/environments/) (ex, `production` or `development`)
-- The [external user ID](/connect/api/#external-users) for your end user (ex, `abc-123`)
-- The [account ID](/connect/api/#accounts) for your end user's connected account (ex, `apn_1234567`)
-
-Refer to the full Connect API [here](/connect/api/).
-
-### Authenticating on behalf of your users
-
-One of the core benefits of using the Connect API Proxy is not having to deal with storing or retrieving sensitive credentials for your end users.
-
-Since Pipedream has {process.env.PUBLIC_APPS}+ integrated apps, we know how the upstream APIs are expecting to receive access tokens or API keys. When you send a request to the proxy, Pipedream will look up the corresponding connected account for the relevant user, and **automatically insert the authorization credentials in the appropriate header or URL param**.
-
-### Sending requests
-
-When making requests to the Connect Proxy, you must provide the following parameters:
-
-#### Request parameters
-
-**URL**
-
-- The URL of the API you want to call (ex, `https://slack.com/api/chat.postMessage`)
-- When using the REST API, this should be a URL-safe Base64 encoded string (ex, `aHR0cHM6Ly9zbGFjay5jb20vYXBpL2NoYXQucG9zdE1lc3NhZ2U`)
-
-
-**For apps with dynamic domains** (like Zendesk, Zoho, GitLab), you should use relative paths in your proxy requests. Pipedream automatically resolves the correct domain based on the user's connected account. See [When to use relative vs full URLs](#when-to-use-relative-vs-full-urls) for details.
-
-
-**HTTP method**
-
-- Use the HTTP method required by the upstream API
-
-**Body**
-
-- Optionally include a body to send to the upstream API
-
-**Headers**
-
-- If using the REST API, include the `Authorization` header with your Pipedream OAuth access token (`Bearer {access_token}`)
-- Headers that contain the prefix `x-pd-proxy` will get forwarded to the upstream API
-
-#### Examples
-
-
-
-```javascript
-import { createBackendClient } from "@pipedream/sdk/server";
-
-const pd = createBackendClient({
- environment: {development | production},
- projectId: {your_pipedream_project_id},
- credentials: {
- clientId: {your_oauth_client_id},
- clientSecret: {your_oauth_client_secret}
- },
-});
-
-
-const resp = await pd.makeProxyRequest(
- {
- searchParams: {
- account_id: "{account_id}", // The account ID for your end user (ex, apn_1234567)
- external_user_id: "{external_user_id}", // The external user ID for your end user
- }
- },
- {
- url: "https://slack.com/api/chat.postMessage", // Include any query params you need; no need to Base64 encode the URL if using the SDK
- options: {
- method: "POST",
- headers: {
- hello: "world!" // Include any headers you need to send to the upstream API
- },
- body: {
- text: "hello, world",
- channel: "C03NA8B4VA9"
- },
- },
- }
-)
-
-// Parse and return the data you need
-console.log(resp);
-```
-
-
-```bash
-# First, obtain an OAuth access token to authenticate to the Pipedream API
-
-curl -X POST https://api.pipedream.com/v1/oauth/token \
- -H "Content-Type: application/json" \
- -d '{
- "grant_type": "client_credentials",
- "client_id": "{your_oauth_client_id}",
- "client_secret": "{your_oauth_client_secret}"
- }'
-
-# The response will include an access_token. Use it in the Authorization header below.
-
-curl -X POST "https://api.pipedream.com/v1/connect/{your_project_id}/proxy/{url_safe_base64_encoded_url}?external_user_id={external_user_id}&account_id={apn_xxxxxxx}" \
- -H "Authorization: Bearer {access_token}" \
- -H "x-pd-environment: {development | production}" \
- -d '{
- "text": "hello, world",
- "channel": "C03NA8B4VA9"
- }'
-
-# Parse and return the data you need
-```
-
-
-
-## Allowed domains
-
-The vast majority of apps in Pipedream work with the Connect Proxy. To check if an app is supported and what domains are allowed, use `pd.getApps()` or the [`/apps` REST API](/rest-api/#list-apps).
-
-### Understanding the Connect object
-
-Each app in the `/apps` API response includes a `connect` object:
-
-```json
-{
- "id": "app_1Z2hw1",
- "name_slug": "gitlab",
- "name": "GitLab",
- // ...other fields...
- "connect": {
- "proxy_enabled": true,
- "allowed_domains": ["gitlab.com"],
- "base_proxy_target_url": "https://{{custom_fields.base_api_url}}"
- }
-}
-```
-
-| Field | Description |
-|-------|--------------|
-| `proxy_enabled` | Whether the app supports the Connect Proxy |
-| `allowed_domains` | Domains you can send requests to when using full URLs |
-| `base_proxy_target_url` | The base URL for proxy requests, may contain placeholders for account-specific values |
-
-### When to use relative vs full URLs
-
-The format of `base_proxy_target_url` determines whether you should use a relative path or full URL:
-
-#### Apps with static domains
-
-If `base_proxy_target_url` is a standard URL (e.g., `https://slack.com`), you can use either:
-- **Full URL**: `https://slack.com/api/chat.postMessage`
-- **Relative path**: `/api/chat.postMessage`
-
-#### Apps with dynamic domains
-
-If `base_proxy_target_url` contains placeholders like `{{custom_fields.base_api_url}}`, you **must** use relative paths. This applies to:
-- Self-hosted instances (GitLab)
-- Apps with account-specific subdomains (Zendesk, Zoho)
-
-For these apps, Pipedream resolves the actual domain from the user's connected account at runtime.
-
-### Examples
-
-
-
-```javascript
-// Both work
-await pd.makeProxyRequest({...}, {
- url: "https://slack.com/api/chat.postMessage"
-})
-
-await pd.makeProxyRequest({...}, {
- url: "/api/chat.postMessage"
-})
-```
-
-
-```javascript
-// Must use relative path
-await pd.makeProxyRequest({...}, {
- url: "/api/v4/projects" // Pipedream resolves to the end user's GitLab instance
-})
-```
-
-
-
-### Discovering app support programmatically
-
-
-
-```javascript
-const apps = await pd.getApps()
-
-// Filter for apps that support the proxy
-const proxyEnabledApps = apps.filter(app => app.connect?.proxy_enabled)
-```
-
-
-```bash
-curl https://api.pipedream.com/v1/apps \
- -H "Authorization: Bearer "
-```
-
-Filter the response for apps where `connect.proxy_enabled` is `true`.
-
-
-
-## Restricted headers
-
-The following headers are not allowed when making requests through the Connect API Proxy. Requests that include these headers will be rejected with a `400` error:
-
-- `ACCEPT-ENCODING`
-- `ACCESS-CONTROL-REQUEST-HEADERS`
-- `ACCESS-CONTROL-REQUEST-METHOD`
-- `CONNECTION`
-- `CONTENT-LENGTH`
-- `COOKIE`
-- `DATE`
-- `DNT`
-- `EXPECT`
-- `HOST`
-- `KEEP-ALIVE`
-- `ORIGIN`
-- `PERMISSIONS-POLICY`
-- `REFERER`
-- `TE`
-- `TRAILER`
-- `TRANSFER-ENCODING`
-- `UPGRADE`
-- `VIA`
-- `NOTE`
-- Headers starting with `PROXY-`
-- Headers starting with `SEC-`
-
-## Limits
-
-- The Connect Proxy limits API requests to 1,000 requests per 5 minutes per project. Requests that surpass this limit will receive a `429` response.
-- The maximum timeout for a request is 30 seconds. Requests that take longer than 30 seconds will be terminated, and Pipedream will return a `504` error to the caller.
-
-Please [let us know](https://pipedream.com/support) if you need higher limits.
diff --git a/docs-v2/pages/connect/api.mdx b/docs-v2/pages/connect/api.mdx
deleted file mode 100644
index a679a71850e27..0000000000000
--- a/docs-v2/pages/connect/api.mdx
+++ /dev/null
@@ -1,3730 +0,0 @@
-import Callout from '@/components/Callout'
-import { Tabs } from 'nextra/components'
-
-# Connect API & SDK reference
-
-Pipedream provides a TypeScript SDK and a REST API to interact with the Connect service. You'll find examples using the SDK and the REST API in multiple languages below.
-
-## REST API base URL
-
-Pipedream Connect resources are scoped to [projects](/projects/), so you'll need to pass [the project's ID](/projects/#finding-your-projects-id) as a part of the base URL:
-
-```
-https://api.pipedream.com/v1/connect/{project_id}
-```
-
-## Installing the TypeScript SDK
-
-Pipedream's SDK will work in any browser or server that can run JavaScript.
-
-### npm
-
-To install [the SDK](https://www.npmjs.com/package/@pipedream/sdk) from npm, run:
-
-```bash
-npm i --save @pipedream/sdk
-```
-
-### `
-```
-
-or a specific version:
-
-```html
-
-```
-
-## Authentication
-
-See the [REST API Authentication docs](/rest-api/auth/).
-
-### TypeScript SDK (server)
-
-Most of your interactions with the Connect API will happen on the server, to protect API requests and user credentials. You'll use the SDK in [your frontend](#typescript-sdk-browser) to let users connect accounts. Once connected, you'll use the SDK on the server to retrieve credentials, invoke workflows on their behalf, and more.
-
-[Create a Pipedream OAuth client](/rest-api/auth/#oauth) and instantiate the SDK with your client ID and secret:
-
-```typescript
-import { createBackendClient } from "@pipedream/sdk/server";
-
-// These secrets should be saved securely and passed to your environment
-const pd = createBackendClient({
- credentials: {
- clientId: "{oauth_client_id}",
- clientSecret: "{oauth_client_secret}",
- }
-});
-
-// The `pd` client provides methods to interact with the Connect API — see below
-```
-
-### TypeScript SDK (browser)
-
-You'll primarily use the browser SDK to let your users securely connect apps from your frontend. Here, you
-
-1. [Create a short-lived token on your server](#create-token)
-2. Initiate auth with that token to securely connect an account for a specific user
-
-Here's a Next.js example [from our quickstart](/connect/managed-auth/quickstart/):
-
-```typescript
-import { createFrontendClient } from "@pipedream/sdk/browser"
-// Example from our Next.js app
-import { serverConnectTokenCreate } from "./server"
-
-const { token, expires_at } = await serverConnectTokenCreate({
- external_user_id: externalUserId // The end user's ID in your system
-});
-
-export default function Home() {
- const pd = createFrontendClient()
- function connectAccount() {
- pd.connectAccount({
- app: appSlug, // Pass the app name slug of the app you want to integrate
- oauthAppId: appId, // For OAuth apps, pass the OAuth app ID; omit this param to use Pipedream's OAuth client or for key-based apps
- token, // The token you received from your server above
- onSuccess: ({ id: accountId }) => {
- console.log(`Account successfully connected: ${accountId}`)
- }
- })
- }
-
- return (
-
- Connect your account
-
- )
-}
-```
-
-## Environment
-
-Some API endpoints accept an [environment](/connect/managed-auth/environments/) parameter. This lets you specify the environment (`production` or `development`) where resources will live in your project.
-
-Always set the environment when you create the SDK client:
-
-```typescript
-import { createBackendClient } from "@pipedream/sdk/server";
-
-const pd = createBackendClient({
- environment: "development", // change to production if running for a test production account, or in production
- credentials: {
- clientId: "your-oauth-client-id",
- clientSecret: "your-oauth-client-secret",
- }
-});
-```
-
-or pass the `X-PD-Environment` header in HTTP requests:
-
-```bash
-curl -X POST https://api.pipedream.com/v1/connect/{project_id}/tokens \
- -H "Content-Type: application/json" \
- -H "X-PD-Environment: development" \
- -H "Authorization: Bearer {access_token}" \
- -d '{
- "external_user_id": "your-external-user-id"
- }'
-```
-
-## External users
-
-When you use the Connect API, you'll pass an `external_user_id` parameter when initiating account connections and retrieving credentials. This is your user's ID, in your system — whatever you use to uniquely identify them.
-
-Pipedream associates this ID with user accounts, so you can retrieve credentials for a specific user, and invoke workflows on their behalf.
-
-External User IDs are limited to 250 characters.
-
-## Rate limits
-
-### Pipedream rate limits
-
-| API Endpoint | Rate Limit |
-|----------------------------|------------------------------------------------------|
-| `POST /token` | 100 requests per minute per `external_user_id` |
-| `/accounts/*` | 100 requests per minute per project |
-| `POST /components/*` | 100 requests per minute per project* |
-| `GET /components/*` | 3000 requests per 5 minutes per project* |
-| `/proxy` | 1000 requests per 5 minutes per project |
-
-\* This includes requests to, `/components`, `/actions`, `/triggers`.
-
-If you need higher rate limits, please [reach out](https://pipedream.com/support).
-
-### Developer rate limits
-
-- You can optionally set rate limits for your users to control their usage of the Connect API from within your application, to prevent runaway use or abuse.
-- Specify a time window in seconds and how many requests to allow in that window. The API will give you a `rate_limit_token` that you'll need to include in future `/connect/` requests:
-
-```
-POST /rate_limits
-```
-
-**Body parameters**
-
-`window_size_seconds` **integer**
-
-Define the size of the time window in seconds.
-
----
-
-`requests_per_window` **integer**
-
-Define the number of requests you want to allow per time window.
-
-**Example request**
-
-```bash
-# First, obtain an OAuth access token
-curl -X POST https://api.pipedream.com/v1/oauth/token \
- -H "Content-Type: application/json" \
- -d '{
- "grant_type": "client_credentials",
- "client_id": "{oauth_client_id}",
- "client_secret": "{oauth_client_secret}"
- }'
-
-# The response will include an access_token. Use it in the Authorization header below.
-# Define the rate limit parameters
-
-curl -X POST https://api.pipedream.com/v1/connect/rate_limits \
- -H "Content-Type: application/json" \
- -H "Authorization: Bearer {access_token}" \
- -d '{
- "window_size_seconds": 10,
- "requests_per_window": 1000
- }'
-```
-
-**Example response**
-```json
-{
- "token": "CiKpqRdTmNwLfhzSvYxBjAkMnVbXuQrWeZyHgPtJsDcEvFpLnE"
-}
-```
-
-**Example usage**
-
-```bash
-# The response will include a rate limit token.
-# Pass it as a header in your downstream requests to the Connect API.
-# Below is an example request that runs the "List Commits" action for the Gitlab app.
-
-curl -X POST "https://api.pipedream.com/v1/connect/{your_project_id}/actions/run" \
- -H "Authorization: Bearer {access_token}" \
- -H "Content-Type: application/json" \
- -H "x-pd-rate-limit: {rate_limit_token}" \ # Pass the rate limit token in the header
- -d '{
- "external_user_id": "jverce",
- "id": "gitlab-list-commits",
- "configured_props": {
- "gitlab": {
- "authProvisionId": "apn_kVh9AoD"
- },
- "projectId": 45672541,
- "refName": "main"
- },
- "stash_id": ""
- }'
-```
-
-## API Reference
-
-### Tokens
-
-Your app will initiate the account connection flow for your end users in your frontend. To securely scope connection to a specific end user, on your server, **you retrieve a short-lived token for that user**, and return that token to your frontend.
-
-See [the Connect tokens docs](/connect/tokens/) for more information.
-
-#### Create token
-
-```
-POST /{project_id}/tokens
-```
-
-##### Path parameters
-
-`project_id` **string**
-
-[The project's ID](/projects/#finding-your-projects-id)
-
-##### Body parameters
-
-`external_user_id` **string**
-
-The ID of your end user. Use whatever ID uniquely identifies the user in your system.
-
----
-
-`allowed_origins` **string array**
-
-When using the Connect API to make requests from a client environment like a browser, you must specify the allowed origins for the token. Otherwise, this field is optional. This is a list of URLs that are allowed to make requests with the token. For example:
-
-```json
-{
- "allowed_origins": ["http://localhost:3000", "https://example.com"]
-}
-```
----
-
-`success_redirect_uri` **string** (_optional_)
-
-When using [Connect Link](/connect/connect-link/), you can optionally redirect your end user to the `success_redirect_uri` on successful completion of the auth flow.
-
----
-
-`error_redirect_uri` **string** (_optional_)
-
-When using [Connect Link](/connect/connect-link/), you can optionally redirect your end user to the `error_redirect_uri` on any errors in the auth flow. This lets you handle errors in whatever way you want in your own app.
-
----
-
-`webhook_uri` **string** (_optional_)
-
-Pipedream will send events on successful auth, or any errors, to this URL via webhook. [See the webhooks docs](/connect/webhooks/) for more information.
-
-##### Examples
-
-To create a short-lived token via TypeScript / JavaScript SDK, you'll need to create a Pipedream API client and call the `createConnectToken` method. In our example app, this code is in `app/server.ts`.
-
-In other languages, you'll need to make an HTTP POST request to the `/tokens` endpoint to create a token, then return the token to your frontend. Click into other tabs to see examples in additional languages.
-
-
-
-```typescript
-import {
- createBackendClient,
- type BackendClient,
- type BackendClientOpts,
- type ConnectAPIResponse,
- type ConnectTokenCreateOpts,
- type ConnectTokenResponse,
-} from "@pipedream/sdk/server";
-
-const clientOpts: BackendClientOpts = {
- environment: "development", // change to production if running for a test production account, or in production
- credentials: {
- clientId: "{oauth_client_id}",
- clientSecret: "{oauth_client_secret}",
- },
- projectId: "{your_project_id}"
-};
-const pd: BackendClient = createBackendClient(clientOpts);
-
-const requestOpts: ConnectTokenCreateOpts = {
- // The end user's ID in your system
- external_user_id: "{your_external_user_id}",
- // The allowed origins for the token (required for client-side requests)
- allowed_origins: ["http://localhost:3000", "https://example.com"],
-};
-const response: ConnectTokenResponse = await pd.createConnectToken(requestOpts);
-
-const {
- token, // The token you'll pass to the frontend
- expires_at, // The token's expiration date
- connect_link_url, // The URL to redirect the user to for the Connect Link flow
-}: {
- token: string,
- expires_at: string,
- connect_link_url: string,
-} = response;
-```
-
-
-```javascript
-import { createBackendClient } from "@pipedream/sdk/server";
-
-const pd = createBackendClient({
- environment: "development", // change to production if running for a test production account, or in production
- credentials: {
- clientId: "{oauth_client_id}",
- clientSecret: "{oauth_client_secret}",
- },
- projectId: "{your_project_id}"
-});
-
-const { token, expires_at } = await pd.createConnectToken({
- external_user_id: "{your_external_user_id}", // The end user's ID in your system
- allowed_origins: ["http://localhost:3000", "https://example.com"], // The allowed origins for the token (required for client-side requests)
-});
-```
-
-
-```bash
-# First, obtain an OAuth access token
-curl -X POST https://api.pipedream.com/v1/oauth/token \
- -H "Content-Type: application/json" \
- -d '{
- "grant_type": "client_credentials",
- "client_id": "{oauth_client_id}",
- "client_secret": "{oauth_client_secret}"
- }'
-
-# The response will include an access_token. Use it in the Authorization header below.
-
-curl -X POST https://api.pipedream.com/v1/connect/{project_id}/tokens \
- -H "Content-Type: application/json" \
- -H "X-PD-Environment: development" \
- -H "Authorization: Bearer {access_token}" \
- -d '{
- "external_user_id": "{your_external_user_id}",
- "allowed_origins": [
- "http://localhost:3000",
- "https://example.com"
- ],
- }'
-```
-
-
-
-### Accounts
-
-#### List All Accounts
-
-List all connected accounts for all external users within a project.
-
-```
-GET /{project_id}/accounts/
-```
-
-##### Path parameters
-
-`project_id` **string**
-
-[The project's ID](/projects/#finding-your-projects-id)
-
-##### Query parameters
-
-`app` **string** (_optional_)
-
-The ID or name slug the app you'd like to retrieve. For example, Slack's unique app ID is `app_OkrhR1`, and its name slug is `slack`.
-
-You can find the app's ID in the response from the [List apps](/rest-api/#list-apps) endpoint, and the name slug under the **Authentication** section of any [app page](https://pipedream.com/apps).
-
----
-
-`oauth_app_id` **string** (_optional_)
-
-The ID of the [OAuth app](/connect/managed-auth/quickstart/#create-a-pipedream-oauth-client) you'd like to retrieve accounts for.
-
----
-
-`external_user_id` **string** (_optional_)
-
-[The external user ID](/connect/api/#external-users) in your system that you want to retrieve accounts for.
-
----
-
-`include_credentials` **boolean** (_optional_)
-
-Pass `include_credentials=true` as a query-string parameter to include the account credentials in the response.
-
-
-Never return user credentials to the client
-
-
-
-To retrieve credentials for a connected account for **OAuth** apps (Slack, Google Sheets, etc), the connected account must be using [your own OAuth client](/connect/managed-auth/oauth-clients/#using-a-custom-oauth-client).
-
-
-##### Examples
-
-
-
-```typescript
-import {
- createBackendClient,
- type Account,
- type BackendClientOpts,
- type BackendClient,
- type GetAccountOpts,
- type GetAccountsResponse,
-} from "@pipedream/sdk/server";
-
-const clientOpts: BackendClientOpts = {
- environment: "development", // change to production if running for a test production account, or in production
- credentials: {
- clientId: "{oauth_client_id}",
- clientSecret: "{oauth_client_secret}",
- },
- projectId: "{your_project_id}"
-};
-const pd: BackendClient = createBackendClient(clientOpts);
-
-const requestOpts: GetAccountOpts = {
- app: "github", // optional, filter by app
- external_user_id: "user-abc-123", // optional, filter by external user ID
- include_credentials: true, // optional, set to true to include credentials
-};
-const response: GetAccountsResponse = await pd.getAccounts(requestOpts);
-
-// These may contain credentials, which you should never return to the client
-const {
- data
-}: {
- data: Account[]
-} = response;
-```
-
-
-```javascript
-import { createBackendClient } from "@pipedream/sdk/server";
-
-const pd = createBackendClient({
- environment: "development", // change to production if running for a test production account, or in production
- credentials: {
- clientId: "{oauth_client_id}",
- clientSecret: "{oauth_client_secret}",
- },
- projectId: "{your_project_id}"
-});
-
-const accounts = await pd.getAccounts({
- app: "github", // optional, filter by app
- external_user_id: "user-abc-123", // optional, filter by external user ID
- include_credentials: true, // optional, set to true to include credentials
-});
-
-// Parse and return the data you need. These may contain credentials,
-// which you should never return to the client
-```
-
-
-```bash
-# First, obtain an OAuth access token
-curl -X POST https://api.pipedream.com/v1/oauth/token \
- -H "Content-Type: application/json" \
- -d '{
- "grant_type": "client_credentials",
- "client_id": "{oauth_client_id}",
- "client_secret": "{oauth_client_secret}"
- }'
-
-# The response will include an access_token. Use it in the Authorization header below.
-
-curl -X GET \
- -G \
- "https://api.pipedream.com/v1/connect/{project_id}/accounts" \
- -H "Authorization: Bearer {access_token}" \
- -d "app=github" \ # optional, filter by app
- -d "external_user_id=user-abc-123" \ # optional, filter by external user ID
- -d "include_credentials=true" # optional, include credentials
-
-
-# Parse and return the data you need. These may contain credentials,
-# which you should never return to the client
-```
-
-
-
-##### Example response (without credentials)
-
-```json
-{
- "page_info": {
- "total_count": 5,
- "count": 5,
- "start_cursor": "YXBuX0JtaEJKSm0",
- "end_cursor": "YXBuX1YxaE1lTE0",
- },
- "data": {
- "accounts": [
- {
- "id": "apn_XehyZPr",
- "name": null,
- "external_id": "user-abc-123",
- "healthy": true,
- "dead": false,
- "app": {
- "id": "app_OkrhR1",
- "name": "Slack"
- },
- "created_at": "2024-07-30T22:52:48.000Z",
- "updated_at": "2024-08-01T03:44:17.000Z"
- },
- {
- "id": "apn_b6h9QDK",
- "name": null,
- "external_id": "user-abc-123",
- "healthy": true,
- "dead": false,
- "app": {
- "id": "app_OrZhaO",
- "name": "GitHub"
- },
- "created_at": "2024-07-31T02:49:18.000Z",
- "updated_at": "2024-08-01T03:58:17.000Z"
- },
- {
- "id": "apn_0WhJYxv",
- "name": null,
- "external_id": "user-abc-123",
- "healthy": true,
- "dead": false,
- "app": {
- "id": "app_OrZhaO",
- "name": "GitHub"
- },
- "created_at": "2024-07-31T20:28:16.000Z",
- "updated_at": "2024-08-01T03:47:30.000Z"
- },
- {
- "id": "apn_kVh9PJx",
- "name": null,
- "external_id": "user-abc-123",
- "healthy": true,
- "dead": false,
- "app": {
- "id": "app_OrZhaO",
- "name": "GitHub"
- },
- "created_at": "2024-07-31T21:17:03.000Z",
- "updated_at": "2024-08-01T03:43:23.000Z"
- },
- {
- "id": "apn_WYhMlrz",
- "name": null,
- "external_id": "user-abc-123",
- "healthy": true,
- "dead": false,
- "app": {
- "id": "app_XBxhAl",
- "name": "Airtable"
- },
- "created_at": "2024-08-01T04:04:03.000Z",
- "updated_at": "2024-08-01T04:04:03.000Z"
- }
- ]
- }
-}
-```
-
-##### Example response (with credentials)
-
-```json
-{
- "page_info": {
- "total_count": 1,
- "count": 1,
- "start_cursor": "YXBuX0JtaEJKSm0",
- "end_cursor": "YXBuX1YxaE1lTE0",
- },
- "data": {
- "accounts":[
- {
- "id": "apn_MGhvgnX",
- "name": "gcostanza",
- "external_id": "user-abc-123",
- "healthy": true,
- "dead": null,
- "app": {
- "id": "oa_aPXiQd",
- "name_slug": "github",
- "name": "GitHub",
- "auth_type": "oauth",
- "description": "Where the world builds software. Millions of developers and companies build, ship, and maintain their software on GitHub—the largest and most advanced development platform in the world.",
- "img_src": "https://assets.pipedream.net/s.v0/app_OrZhaO/logo/orig",
- "custom_fields_json": "[]",
- "categories": [
- "Developer Tools"
- ]
- },
- "created_at": "2024-12-03T04:26:38.000Z",
- "updated_at": "2024-12-11T17:59:28.000Z",
- "credentials": {
- "oauth_client_id": "xyz789...",
- "oauth_access_token": "xxx_abc123...",
- "oauth_uid": "123456789"
- },
- "expires_at": null,
- "error": null,
- "last_refreshed_at": "2024-12-11T17:59:28.000Z",
- "next_refresh_at": "2024-12-11T18:56:28.000Z"
- }
- ]
- }
-}
-```
-
-#### Retrieve Account Details by ID
-
-Retrieve the account details for a specific account based on the account ID
-
-```
-GET /{project_id}/accounts/{account_id}
-```
-
-##### Path parameters
-
-`project_id` **string**
-
-[The project's ID](/projects/#finding-your-projects-id)
-
----
-
-`account_id` **string**
-
-The ID of the account you want to retrieve
-
-##### Parameters
-
-`include_credentials` **boolean** (_optional_)
-
-Pass `include_credentials=true` as a query-string parameter to include the account credentials in the response.
-
-
-Never return user credentials to the client
-
-
-
-To retrieve credentials for a connected account for **OAuth** apps (Slack, Google Sheets, etc), the connected account must be using [your own OAuth client](/connect/managed-auth/oauth-clients/#using-a-custom-oauth-client).
-
-
-##### Examples
-
-
-
-```typescript
-import {
- createBackendClient,
- type Account,
- type BackendClient,
- type BackendClientOpts,
- type GetAccountOpts,
-} from "@pipedream/sdk/server";
-
-const clientOpts: BackendClientOpts = {
- environment: "development", // change to production if running for a test production account, or in production
- credentials: {
- clientId: "{oauth_client_id}",
- clientSecret: "{oauth_client_secret}",
- },
- projectId: "{your_project_id}"
-};
-const pd: BackendClient = createBackendClient(clientOpts);
-
-const accountId: string = "{account_id}"; // Replace with your account ID
-const requestOpts: GetAccountOpts = {
- include_credentials: true, // optional, set to true to include credentials
-};
-// These may contain credentials, which you should never return to the client.
-const account: Account = await pd.getAccountById(accountId, requestOpts);
-```
-
-
-```javascript
-import { createBackendClient } from "@pipedream/sdk/server";
-
-const pd = createBackendClient({
- environment: "development", // change to production if running for a test production account, or in production
- credentials: {
- clientId: "{oauth_client_id}",
- clientSecret: "{oauth_client_secret}",
- },
- projectId: "{your_project_id}"
-});
-
-const accountId = "{account_id}"; // Replace with your account ID
-
-const account = await pd.getAccountById(accountId, {
- include_credentials: true, // optional, set to true to include credentials
-});
-
-// Parse and return the data you need. These may contain credentials,
-// which you should never return to the client
-```
-
-
-```bash
-# First, obtain an OAuth access token
-curl -X POST https://api.pipedream.com/v1/oauth/token \
- -H "Content-Type: application/json" \
- -d '{
- "grant_type": "client_credentials",
- "client_id": "{oauth_client_id}",
- "client_secret": "{oauth_client_secret}"
- }'
-
-# The response will include an access_token. Use it in the Authorization header below.
-
-curl -X GET \
- -G \
- "https://api.pipedream.com/v1/connect/{project_id}/accounts/{account_id}" \
- -H "Authorization: Bearer {access_token}" \
- -d "app=github" \ # optional, filter by app
- -d "external_user_id=user-abc-123" \ # optional, filter by external user ID
- -d "include_credentials=true" # optional, include credentials
-
-# Parse and return the data you need. These may contain credentials,
-# which you should never return to the client
-```
-
-
-
-##### Example response (without account credentials)
-
-```json
-{
- "data": {
- "id": "apn_WYhMlrz",
- "name": null,
- "external_id": "user-abc-123",
- "healthy": true,
- "dead": false,
- "app": {
- "id": "oa_aw4ib2",
- "name_slug": "airtable_oauth",
- "name": "Airtable",
- "auth_type": "oauth",
- "description": "Airtable is a low-code platform to build next-gen apps. Move beyond rigid tools, operationalize your critical data, and reimagine workflows with AI.",
- "img_src": "https://assets.pipedream.net/s.v0/app_XBxhAl/logo/orig",
- "custom_fields_json": "[]",
- "categories": ["Productivity"]
- },
- "created_at": "2024-08-01T04:04:03.000Z",
- "updated_at": "2024-08-01T04:04:03.000Z"
- }
-}
-```
-
-##### Example response (with `include_credentials=true`)
-
-```json
-{
- "data": {
- "id": "apn_WYhMlrz",
- "name": null,
- "external_id": "user-abc-123",
- "healthy": true,
- "dead": false,
- "app": {
- "id": "app_XBxhAl",
- "name": "Airtable"
- },
- "created_at": "2024-08-01T04:04:03.000Z",
- "updated_at": "2024-08-01T04:04:03.000Z",
- "credentials": {
- "oauth_client_id": "dd7a26ca-ba11-4f80-8667-xxxxxxxx",
- "oauth_access_token": "oaaLa2Ob1umiregWa.v1.xxxxxxxx.xxxxxxxx",
- "oauth_refresh_token": "oaaLa2Ob1umiregWa.v1.refresh.xxxxxxxx",
- "oauth_uid": "usrnbIhrxxxxxxxx"
- },
- "expires_at": "2024-08-01T05:04:03.000Z",
- "project_id": 279440,
- "user_id": "gcostanza",
- "error": null,
- "last_refreshed_at": null,
- "next_refresh_at": "2024-08-01T04:17:33.000Z"
- }
-}
-```
-
-#### Delete Connected Account
-
-Delete a specific connected account for an external user, and any deployed triggers.
-
-```
-DELETE /{project_id}/accounts/{account_id}
-```
-
-##### Path parameters
-
-`project_id` **string**
-
-[The project's ID](/projects/#finding-your-projects-id)
-
----
-
-`account_id` **string**
-
-##### Examples
-
-
-
-```typescript
-import {
- createBackendClient,
- type BackendClient,
- type BackendClientOpts,
-} from "@pipedream/sdk/server";
-
-const clientOpts: BackendClientOpts = {
- environment: "development", // change to production if running for a test production account, or in production
- credentials: {
- clientId: "{oauth_client_id}",
- clientSecret: "{oauth_client_secret}",
- },
- projectId: "{your_project_id}"
-};
-const pd: BackendClient = createBackendClient(clientOpts);
-
-const accountId: string = "{account_id}"; // Replace with your account ID
-await pd.deleteAccount(accountId);
-
-// You can return a message or handle any post-deletion logic here.
-```
-
-
-```javascript
-import { createBackendClient } from "@pipedream/sdk/server";
-
-const pd = createBackendClient({
- environment: "development", // change to production if running for a test production account, or in production
- credentials: {
- clientId: "{oauth_client_id}",
- clientSecret: "{oauth_client_secret}",
- },
- projectId: "{your_project_id}"
-});
-
-const accountId = "{account_id}"; // Replace with your account ID
-await pd.deleteAccount(accountId);
-
-// You can return a message or handle any post-deletion logic here.
-```
-
-
-```bash
-# First, obtain an OAuth access token
-curl -X POST https://api.pipedream.com/v1/oauth/token \
- -H "Content-Type: application/json" \
- -d '{
- "grant_type": "client_credentials",
- "client_id": "{oauth_client_id}",
- "client_secret": "{oauth_client_secret}"
- }'
-
-# The response will include an access_token. Use it in the Authorization header below.
-
-curl -X DELETE "https://api.pipedream.com/v1/connect/{project_id}/accounts/{account_id}" \
- -H "Authorization: Bearer {access_token}"
-```
-
-
-
-##### Response
-
-Pipedream returns a `204 No Content` response on successful account deletion
-
-#### Delete All Connected Accounts for an App
-
-Delete all connected accounts for a specific app
-
-```
-DELETE /{project_id}/apps/{app_id}/accounts
-```
-
-##### Path parameters
-
-`project_id` **string**
-
-[The project's ID](/projects/#finding-your-projects-id)
-
----
-
-`app_id` **string**
-
-The app ID for which you want to delete all connected accounts. `app_id` can be `oauth_app_id` for [OAuth apps](/connect/managed-auth/quickstart/#create-a-pipedream-oauth-client) or name slug for key-based apps, which you can find under the **Authentication** section of any [app page](https://pipedream.com/apps)
-
-##### Examples
-
-
-
-```typescript
-import {
- createBackendClient,
- type BackendClient,
- type BackendClientOpts,
-} from "@pipedream/sdk/server";
-
-const clientOpts: BackendClientOpts = {
- environment: "development", // change to production if running for a test production account, or in production
- credentials: {
- clientId: "{oauth_client_id}",
- clientSecret: "{oauth_client_secret}",
- },
- projectId: "{your_project_id}"
-};
-const pd: BackendClient = createBackendClient(clientOpts);
-
-const appId: string = "{app_id}"; // Replace with the app ID
-await pd.deleteAccountsByApp(appId);
-
-// You can return a message or handle any post-deletion logic here.
-```
-
-
-```javascript
-import { createBackendClient } from "@pipedream/sdk/server";
-
-const pd = createBackendClient({
- environment: "development", // change to production if running for a test production account, or in production
- credentials: {
- clientId: "{oauth_client_id}",
- clientSecret: "{oauth_client_secret}",
- },
- projectId: "{your_project_id}"
-});
-
-const appId = "{app_id}"; // Replace with the app ID
-await pd.deleteAccountsByApp(appId);
-
-// You can return a message or handle any post-deletion logic here.
-```
-
-
-```bash
-# First, obtain an OAuth access token
-curl -X POST https://api.pipedream.com/v1/oauth/token \
- -H "Content-Type: application/json" \
- -d '{
- "grant_type": "client_credentials",
- "client_id": "{oauth_client_id}",
- "client_secret": "{oauth_client_secret}"
- }'
-
-# The response will include an access_token. Use it in the Authorization header below.
-
-curl -X DELETE "https://api.pipedream.com/v1/connect/{project_id}/accounts/{account_id}" \
- -H "Authorization: Bearer {access_token}"
-```
-
-
-
-##### Response
-
-Pipedream returns a `204 No Content` response on successful account deletion
-
-#### Delete External User
-
-Delete an external user, all their connected accounts, and any deployed triggers.
-
-```
-DELETE /{project_id}/users/{external_user_id}
-```
-
-##### Path parameters
-
-`project_id` **string**
-
-[The project's ID](/projects/#finding-your-projects-id)
-
----
-
-`external_user_id` **string**
-
-[The external user ID](#external-users) in your system
-
-##### Examples
-
-
-
-```typescript
-import {
- createBackendClient,
- type BackendClient,
- type BackendClientOpts,
-} from "@pipedream/sdk/server";
-
-const clientOpts: BackendClientOpts = {
- environment: "development", // change to production if running for a test production account, or in production
- credentials: {
- clientId: "{oauth_client_id}",
- clientSecret: "{oauth_client_secret}",
- },
- projectId: "{your_project_id}"
-};
-const pd: BackendClient = createBackendClient(clientOpts);
-
-const externalId: string = "{external_user_id}"; // Replace with your external user ID
-await pd.deleteExternalUser(externalId);
-
-// You can return a message or handle any post-deletion logic here.
-```
-
-
-```javascript
-import { createBackendClient } from "@pipedream/sdk/server";
-
-const pd = createBackendClient({
- environment: "development", // change to production if running for a test production account, or in production
- credentials: {
- clientId: "{oauth_client_id}",
- clientSecret: "{oauth_client_secret}",
- },
- projectId: "{your_project_id}"
-});
-
-const externalId = "{external_user_id}"; // Replace with your external user ID
-await pd.deleteExternalUser(externalId);
-
-// You can return a message or handle any post-deletion logic here.
-```
-
-
-```bash
-# First, obtain an OAuth access token
-curl -X POST https://api.pipedream.com/v1/oauth/token \
- -H "Content-Type: application/json" \
- -d '{
- "grant_type": "client_credentials",
- "client_id": "{oauth_client_id}",
- "client_secret": "{oauth_client_secret}"
- }'
-
-# The response will include an access_token. Use it in the Authorization header below.
-
-curl -X DELETE "https://api.pipedream.com/v1/connect/{project_id}/users/{external_user_id}" \
- -H "Authorization: Bearer {access_token}"
-```
-
-
-
-##### Response
-
-Pipedream returns a `204 No Content` response on successful account deletion
-
-
-### Components
-
-#### List Components
-
-List all the components in the Pipedream registry.
-
-```
-GET /{component_type}
-```
-
-##### Path parameters
-
-`component_type` **string**
-
-Either `triggers`, `actions`, or `components`.
-
-##### Query parameters
-
-`app` **string** (_optional_)
-
-The ID or name slug the app you'd like to retrieve. For example, Slack's unique
-app ID is `app_OkrhR1`, and its name slug is `slack`.
-
-You can find the app's ID in the response from the [List
-apps](/rest-api/#list-apps) endpoint, and the name slug under the
-**Authentication** section of any [app page](https://pipedream.com/apps).
-
----
-
-`q` **string** (_optional_)
-
-A search query to filter the components by key (see the [component structure
-table](/components/contributing/api/#component-structure)).
-
-##### Examples
-
-
-
-
-```typescript
-import {
- createBackendClient,
- type BackendClient,
- type BackendClientOpts,
- type GetComponentsOpts,
- type GetComponentsResponse,
- type V1Component,
-} from "@pipedream/sdk/server";
-
-const clientOpts: BackendClientOpts = {
- environment: "development", // change to production if running for a test production account, or in production
- credentials: {
- clientId: "{oauth_client_id}",
- clientSecret: "{oauth_client_secret}",
- },
- projectId: "{your_project_id}"
-};
-const pd: BackendClient = createBackendClient(clientOpts);
-
-// Retrieve components containing the word "issue" in their name, belonging to
-// the Gitlab app
-const requestOpts: GetComponentsOpts = {
- app: "gitlab",
- q: "issue",
-};
-const response: GetComponentsResponse = await pd.getComponents(requestOpts);
-
-const {
- data // The list of components for the Gitlab app and query `q`
-}: {
- data: Omit[];
-} = response;
-```
-
-
-
-```javascript
-import { createBackendClient } from "@pipedream/sdk/server";
-
-const pd = createBackendClient({
- environment: "development", // change to production if running for a test production account, or in production
- credentials: {
- clientId: "{oauth_client_id}",
- clientSecret: "{oauth_client_secret}",
- },
- projectId: "{your_project_id}"
-});
-
-// Retrieve components containing the word "issue" in their name, belonging to
-// the Gitlab app
-const { data: components } = await pd.getComponents({
- app: "gitlab",
- q: "issue",
-});
-
-// Parse and return the data you need
-```
-
-
-
-```bash
-# First, obtain an OAuth access token
-curl -X POST https://api.pipedream.com/v1/oauth/token \
- -H "Content-Type: application/json" \
- -d '{
- "grant_type": "client_credentials",
- "client_id": "{oauth_client_id}",
- "client_secret": "{oauth_client_secret}"
- }'
-
-# The response will include an access_token. Use it in the Authorization header below.
-# This request will fetch the first 3 components for the Gitlab app that contain
-# the word "issue" in their name
-curl -X GET "https://api.pipedream.com/v1/connect/{your_project_id}/components?app=gitlab&limit=3&q=issue" \
- -H "Authorization: Bearer {access_token}"
-```
-
-
-
-
-##### Example response
-```json
-{
- "page_info": {
- "total_count": 5,
- "count": 3,
- "start_cursor": "c2NfM3ZpanpRcg",
- "end_cursor": "c2NfQjVpTkJBcA"
- },
- "data": [
- {
- "name": "New Issue (Instant)",
- "version": "0.1.2",
- "key": "gitlab-new-issue"
- },
- {
- "name": "Update Issue",
- "version": "0.0.2",
- "key": "gitlab-update-issue"
- },
- {
- "name": "Search Issues",
- "version": "0.0.3",
- "key": "gitlab-search-issues"
- }
- ]
-}
-```
-
-
-#### Retrieve Component
-
-Retrieve a specific component from the Pipedream registry.
-
-```
-GET /{component_type}/{component_key}
-```
-
-##### Path parameters
-
-`component_type` **string**
-
-Either `triggers`, `actions`, or `components`.
-
----
-
-`component_key` **string**
-
-The key that identifies the component (see the [component structure
-table](/components/contributing/api/#component-structure)).
-
-##### Examples
-
-
-
-
-```typescript
-import {
- createBackendClient,
- type BackendClient,
- type BackendClientOpts,
- type GetComponentOpts,
- type GetComponentResponse,
- type V1Component,
-} from "@pipedream/sdk/server";
-
-const clientOpts: BackendClientOpts = {
- environment: "development", // change to production if running for a test production account, or in production
- credentials: {
- clientId: "{oauth_client_id}",
- clientSecret: "{oauth_client_secret}",
- },
- projectId: "{your_project_id}"
-};
-const pd: BackendClient = createBackendClient(clientOpts);
-
-// Retrieve the "New Issue (Instant)" component for the Gitlab app
-const requestOpts: GetComponentOpts = {
- key: "gitlab-new-issue",
-};
-const response: GetComponentResponse = await pd.getComponent(requestOpts);
-
-const {
- data // The "New Issue (Instant)" component for the Gitlab app
-}: {
- data: V1Component;
-} = response;
-```
-
-
-
-```javascript
-import { createBackendClient } from "@pipedream/sdk/server";
-
-const pd = createBackendClient({
- environment: "development", // change to production if running for a test production account, or in production
- credentials: {
- clientId: "{oauth_client_id}",
- clientSecret: "{oauth_client_secret}",
- },
- projectId: "{your_project_id}"
-});
-
-// Retrieve the "New Issue (Instant)" component for the Gitlab app
-const { data: component } = await pd.getComponent({ key: "gitlab-new-issue" });
-
-// Parse and return the data you need
-```
-
-
-
-```bash
-# First, obtain an OAuth access token
-curl -X POST https://api.pipedream.com/v1/oauth/token \
- -H "Content-Type: application/json" \
- -d '{
- "grant_type": "client_credentials",
- "client_id": "{oauth_client_id}",
- "client_secret": "{oauth_client_secret}"
- }'
-
-# The response will include an access_token. Use it in the Authorization header below.
-# This request will fetch the "New Issue (Instant)" component for the Gitlab app.
-curl -X GET "https://api.pipedream.com/v1/connect/{your_project_id}/components/gitlab-new-issue" \
- -H "Authorization: Bearer {access_token}"
-```
-
-
-
-##### Example response
-
-```json
-{
- "data": {
- "name": "New Issue (Instant)",
- "version": "0.1.2",
- "key": "gitlab-new-issue",
- "configurable_props": [
- {
- "name": "gitlab",
- "type": "app",
- "app": "gitlab"
- },
- {
- "name": "db",
- "type": "$.service.db"
- },
- {
- "name": "http",
- "type": "$.interface.http",
- "customResponse": true
- },
- {
- "name": "projectId",
- "type": "integer",
- "label": "Project ID",
- "description": "The project ID, as displayed in the main project page",
- "remoteOptions": true
- }
- ]
- }
-}
-```
-
-
-
-
-#### Configure Component
-
-Configure the a component's prop, based on the current component's
-configuration. This endpoint will use the component's configuration to retrieve
-the list of options that can be used to configure the prop indicated in the
-request.
-
-```text
-POST /{component_type}/configure
-```
-
-##### Path parameters
-
-`component_type` **string**
-
-Either `triggers`, `actions`, or `components`.
-
-##### Body parameters
-
-`configured_props` **object**
-
-The props that have already been configured for the component. This is a
-JSON-serializable object with the prop names as keys and the configured values
-as values.
-
----
-
-`external_user_id` **string**
-
-[The external user ID](/connect/api/#external-users) in your system that you
-want to retrieve accounts for.
-
----
-
-`id` **string**
-
-The key that identifies the component (see the [component structure
-table](/components/contributing/api/#component-structure)).
-
----
-
-`prop_name` **string**
-
-The name of the component's prop to configure.
-
-##### Examples
-
-
-
-
-```typescript
-import {
- createBackendClient,
- type BackendClient,
- type BackendClientOpts,
- type ConfigureComponentOpts,
- type ConfigureComponentResponse,
- type PropOption,
-} from "@pipedream/sdk/server";
-
-const clientOpts: BackendClientOpts = {
- environment: "development", // change to production if running for a test production account, or in production
- credentials: {
- clientId: "{oauth_client_id}",
- clientSecret: "{oauth_client_secret}",
- },
- projectId: "{your_project_id}"
-};
-const pd: BackendClient = createBackendClient(clientOpts);
-
-// Retrieve the configuration options for the "projectId" prop of the "List
-// Commits" component for the Gitlab app.
-const requestOpts: ConfigureComponentOpts = {
- componentId: "gitlab-list-commits",
- configuredProps: {
- gitlab: {
- authProvisionId: "apn_kVh9AoD",
- },
- },
- externalUserId: "jverce",
- propName: "projectId",
-};
-const response: ConfigureComponentResponse = await pd.configureComponent(requestOpts);
-
-const {
- options, // The list of options for the "projectId" prop
- stringOptions, // The list of string options for the "projectId" prop
- errors, // Any errors that occurred during the configuration
-}: {
- options: PropOption[];
- stringOptions: string[];
- errors: string[];
-} = response;
-```
-
-
-
-```javascript
-import { createBackendClient } from "@pipedream/sdk/server";
-
-const pd = createBackendClient({
- environment: "development", // change to production if running for a test production account, or in production
- credentials: {
- clientId: "{oauth_client_id}",
- clientSecret: "{oauth_client_secret}",
- },
- projectId: "{your_project_id}"
-});
-
-// Retrieve the configuration options for the "projectId" prop of the "List
-// Commits" component for the Gitlab app.
-const { options } = await pd.configureComponent({
- componentId: "gitlab-list-commits",
- configuredProps: {
- gitlab: {
- authProvisionId: "apn_kVh9AoD",
- },
- },
- externalUserId: "jverce",
- propName: "projectId",
-});
-
-// Parse and return the data you need
-```
-
-
-
-```bash
-# First, obtain an OAuth access token
-curl -X POST https://api.pipedream.com/v1/oauth/token \
- -H "Content-Type: application/json" \
- -d '{
- "grant_type": "client_credentials",
- "client_id": "{oauth_client_id}",
- "client_secret": "{oauth_client_secret}"
- }'
-
-# The response will include an access_token. Use it in the Authorization header below.
-# This request will fetch the configuration options for the "projectId" prop of
-# the "List Commits" component for the Gitlab app.
-
-echo '{
- "external_user_id": "jverce",
- "id": "gitlab-list-commits",
- "prop_name": "projectId",
- "configured_props": {
- "gitlab": {
- "authProvisionId": "apn_kVh9AoD"
- }
- }
-}' > data.json
-
-curl -X POST "https://api.pipedream.com/v1/connect/{your_project_id}/components/configure" \
- -H "Authorization: Bearer {access_token}" \
- -H "Content-Type: application/json" \
- -d @data.json
-```
-
-
-
-
-##### Example response
-
-```json
-{
- "observations": [],
- "context": null,
- "options": [
- {
- "label": "jverce/foo-massive-10231-1",
- "value": 45672541
- },
- {
- "label": "jverce/foo-massive-10231",
- "value": 45672514
- },
- {
- "label": "jverce/foo-massive-14999-2",
- "value": 45672407
- },
- {
- "label": "jverce/foo-massive-14999-1",
- "value": 45672382
- },
- {
- "label": "jverce/foo-massive-14999",
- "value": 45672215
- },
- {
- "label": "jverce/gitlab-development-kit",
- "value": 21220953
- },
- {
- "label": "jverce/gitlab",
- "value": 21208123
- }
- ],
- "errors": [],
- "timings": {
- "api_to_sidekiq": 1734043172355.1042,
- "sidekiq_received": 1734043172357.867,
- "sidekiq_to_lambda": 1734043172363.6812,
- "sidekiq_done": 1734043173461.6406,
- "lambda_configure_prop_called": 1734043172462,
- "lambda_done": 1734043173455
- },
- "stringOptions": null
-}
-```
-
-#### Reload Component Props
-
-Reload the component's props after configuring a dynamic prop, based on the
-current component's configuration. This endpoint will use the component's
-configuration to retrieve a new list of props depending on the value of the
-props that were configured so far. See the [Dynamic
-Props](/connect/components/#configure-dynamic-props-optional) section for more information.
-
-```text
-POST /{component_type}/props
-```
-
-##### Path parameters
-
-`component_type` **string**
-
-Either `triggers`, `actions`, or `components`.
-
-##### Body parameters
-
-`configured_props` **object**
-
-The props that have already been configured for the component. This is a
-JSON-serializable object with the prop names as keys and the configured values
-as values.
-
----
-
-`external_user_id` **string**
-
-[The external user ID](/connect/api/#external-users) in your system that you
-want to retrieve accounts for.
-
----
-
-`id` **string**
-
-The key that identifies the component (see the [component structure
-table](/components/contributing/api/#component-structure)).
-
----
-
-`dynamic_props_id` **string** (_optional_)
-
-The ID of the last prop reconfiguration (or none when reconfiguring the props
-for the first time).
-
-##### Examples
-
-
-
-
-```typescript
-import {
- createBackendClient,
- type BackendClient,
- type BackendClientOpts,
- type ConfigurableProps,
- type ReloadComponentPropsOpts,
- type ReloadComponentPropsResponse,
-} from "@pipedream/sdk/server";
-
-const clientOpts: BackendClientOpts = {
- environment: "development", // change to production if running for a test production account, or in production
- credentials: {
- clientId: "{oauth_client_id}",
- clientSecret: "{oauth_client_secret}",
- },
- projectId: "{your_project_id}"
-};
-const pd: BackendClient = createBackendClient(clientOpts);
-
-// Retrieve the configuration options for the "Add Single Row" component for
-// the Google Sheets app. Note that the `sheetId` prop is a dynamic prop.
-const requestOpts: ReloadComponentPropsOpts = {
- componentId: "google_sheets-add-single-row",
- configuredProps: {
- googleSheets: {
- authProvisionId: "apn_V1hMoE7",
- },
- sheetId: "1BfWjFF2dTW_YDiLISj5N9nKCUErShgugPS434liyytg",
- },
- externalUserId: "jay",
-};
-const response: ReloadComponentPropsResponse = await pd.reloadComponentProps(requestOpts);
-
-const {
- configurableProps, // The new set of props
- id: dynamicPropsId, // The ID of the last prop reconfiguration
-}: {
- configurableProps: ConfigurableProps,
- id: string,
-} = response.dynamicProps;
-```
-
-
-
-```javascript
-import { createBackendClient } from "@pipedream/sdk/server";
-
-const pd = createBackendClient({
- environment: "development", // change to production if running for a test production account, or in production
- credentials: {
- clientId: "{oauth_client_id}",
- clientSecret: "{oauth_client_secret}",
- },
- projectId: "{your_project_id}"
-});
-
-// Retrieve the configuration options for the "Add Single Row" component for
-// the Google Sheets app. Note that the `sheetId` prop is a dynamic prop.
-const { dynamicProps } = await pd.reloadComponentProps({
- componentId: "google_sheets-add-single-row",
- configuredProps: {
- googleSheets: {
- authProvisionId: "apn_V1hMoE7",
- },
- sheetId: "1BfWjFF2dTW_YDiLISj5N9nKCUErShgugPS434liyytg",
- },
- externalUserId: "jay",
-});
-
-const {
- configurableProps, // The new set of props
- id: dynamicPropsId, // The ID of the last prop reconfiguration
-} = dynamicProps;
-
-// Parse and return the data you need
-```
-
-
-
-```bash
-# First, obtain an OAuth access token
-curl -X POST https://api.pipedream.com/v1/oauth/token \
- -H "Content-Type: application/json" \
- -d '{
- "grant_type": "client_credentials",
- "client_id": "{oauth_client_id}",
- "client_secret": "{oauth_client_secret}"
- }'
-
-# The response will include an access_token. Use it in the Authorization header below.
-# This request will fetch the new set of props for the "Add Single Row" component
-# for the Google Sheets app. Note that the `sheetId` prop is a dynamic prop.
-
-echo '{
- "external_user_id": "jay",
- "id": "google_sheets-add-single-row",
- "configured_props": {
- "googleSheets": {
- "authProvisionId": "apn_V1hMoE7"
- },
- "sheetId": "1BfWjFF2dTW_YDiLISj5N9nKCUErShgugPS434liyytg"
- }
-}' > data.json
-
-curl -X POST "https://api.pipedream.com/v1/connect/{your_project_id}/components/props" \
- -H "Authorization: Bearer {access_token}" \
- -H "Content-Type: application/json" \
- -d @data.json
-```
-
-
-
-
-##### Example response
-
-```json
-{
- "observations": [],
- "errors": [],
- "dynamicProps": {
- "id": "dyp_6xUyVgQ",
- "configurableProps": [
- {
- "name": "googleSheets",
- "type": "app",
- "app": "google_sheets"
- },
- {
- "name": "drive",
- "type": "string",
- "label": "Drive",
- "description": "Defaults to `My Drive`. To select a [Shared Drive](https://support.google.com/a/users/answer/9310351) instead, select it from this list.",
- "optional": true,
- "default": "My Drive",
- "remoteOptions": true
- },
- {
- "name": "sheetId",
- "type": "string",
- "label": "Spreadsheet",
- "description": "The Spreadsheet ID",
- "useQuery": true,
- "remoteOptions": true,
- "reloadProps": true
- },
- {
- "name": "worksheetId",
- "type": "string[]",
- "label": "Worksheet(s)",
- "description": "Select a worksheet or enter a custom expression. When referencing a spreadsheet dynamically, you must provide a custom expression for the worksheet.",
- "remoteOptions": true,
- "reloadProps": true
- },
- {
- "name": "hasHeaders",
- "type": "boolean",
- "label": "Does the first row of the sheet have headers?",
- "description": "If the first row of your document has headers, we'll retrieve them to make it easy to enter the value for each column. Note: When using a dynamic reference for the worksheet ID (e.g. `{{steps.foo.$return_value}}`), this setting is ignored.",
- "reloadProps": true
- },
- {
- "name": "myColumnData",
- "type": "string[]",
- "label": "Values",
- "description": "Provide a value for each cell of the row. Google Sheets accepts strings, numbers and boolean values for each cell. To set a cell to an empty value, pass an empty string."
- }
- ]
- }
-}
-```
-
-#### Invoke Action
-
-Invoke an action component for a Pipedream Connect user in a project.
-
-```text
-POST /actions/run
-```
-
-##### Body parameters
-
-`id` **string**
-
-The key that identifies the action component (see the [component structure
-table](/components/contributing/api/#component-structure)).
-
----
-
-`configured_props` **object**
-
-The props that have already been configured for the component. This is a
-JSON-serializable object with the prop names as keys and the configured values
-as values.
-
----
-
-`external_user_id` **string**
-
-[The external user ID](/connect/api/#external-users) in your system on behalf of
-which you want to execute the action.
-
----
-
-`dynamic_props_id` **string** (_optional_)
-
-The ID of the last prop reconfiguration (if applicable).
-
----
-
-`stash_id` **string|boolean** (_optional_)
-
-When passed, this parameter enables [File Stash](/connect/components/files), which syncs files from the `/tmp` directory with a Pipedream File Store. This makes files accessible outside of the execution environment via presigned URLs.
-
-You can pass one of the following values:
-- An empty string (`""`) to generate a new stash ID
-- `"NEW"` to generate a new stash ID
-- `true` to generate a new stash ID
-- A previously created stash ID to reference existing files
-
-See the [File Stash docs](/connect/components/files) for more details.
-
-##### Examples
-
-
-
-
-```typescript
-import {
- createBackendClient,
- type BackendClient,
- type BackendClientOpts,
- type RunActionOpts,
- type RunActionResponse,
-} from "@pipedream/sdk/server";
-
-const clientOpts: BackendClientOpts = {
- environment: "development", // change to production if running for a test production account, or in production
- credentials: {
- clientId: "{oauth_client_id}",
- clientSecret: "{oauth_client_secret}",
- },
- projectId: "{your_project_id}"
-};
-const pd: BackendClient = createBackendClient(clientOpts);
-
-// Run the "List Commits" action for the Gitlab app
-const requestOpts: RunActionOpts = {
- actionId: "gitlab-list-commits",
- configuredProps: {
- gitlab: {
- authProvisionId: "apn_kVh9AoD",
- },
- projectId: 45672541,
- refName: "main"
- },
- externalUserId: "jverce",
- stashId: "", // Optional: Pass an empty string to generate a new stash ID, "NEW", true, or a previously created stash ID
-};
-const response: RunActionResponse = await pd.runAction(requestOpts);
-
-const {
- exports, // The named exports produced by the action
- os, // The observations produced by the action
- ret, // The value returned by the action
-}: {
- exports: unknown,
- os: unknown[],
- ret: unknown,
-} = response;
-```
-
-
-
-```javascript
-import { createBackendClient } from "@pipedream/sdk/server";
-
-const pd = createBackendClient({
- environment: "development", // change to production if running for a test production account, or in production
- credentials: {
- clientId: "{oauth_client_id}",
- clientSecret: "{oauth_client_secret}",
- },
- projectId: "{your_project_id}"
-});
-
-// Run the "List Commits" action for the Gitlab app
-const {
- exports, // The named exports produced by the action
- os, // The observations produced by the action
- ret, // The value returned by the action
-} = await pd.runAction({
- actionId: "gitlab-list-commits",
- configuredProps: {
- gitlab: {
- authProvisionId: "apn_kVh9AoD",
- },
- projectId: 45672541,
- refName: "main"
- },
- externalUserId: "jverce",
- stashId: "", // Optional: Pass an empty string to generate a new stash ID, "NEW", true, or a previously created stash ID
-});
-
-// Parse and return the data you need
-```
-
-
-
-```bash
-# First, obtain an OAuth access token
-curl -X POST https://api.pipedream.com/v1/oauth/token \
- -H "Content-Type: application/json" \
- -d '{
- "grant_type": "client_credentials",
- "client_id": "{oauth_client_id}",
- "client_secret": "{oauth_client_secret}"
- }'
-
-# The response will include an access_token. Use it in the Authorization header below.
-# This request will run the "List Commits" action for the Gitlab app.
-
-echo '{
- "external_user_id": "jverce",
- "id": "gitlab-list-commits",
- "configured_props": {
- "gitlab": {
- "auth_provision_id": "apn_kVh9AoD"
- },
- "project_id": 45672541,
- "ref_name": "main"
- },
- "stash_id": ""
-}' > data.json
-
-curl -X POST "https://api.pipedream.com/v1/connect/{your_project_id}/actions/run" \
- -H "Authorization: Bearer {access_token}" \
- -H "Content-Type: application/json" \
- -d @data.json
-```
-
-
-
-
-##### Example response
-
-```json
-{
- "exports": {
- "$summary": "Retrieved 1 commit"
- },
- "os": [],
- "ret": [
- {
- "id": "387262aea5d4a6920ac76c1e202bc9fd0841fea5",
- "short_id": "387262ae",
- "created_at": "2023-05-03T03:03:25.000+00:00",
- "parent_ids": [],
- "title": "Initial commit",
- "message": "Initial commit",
- "author_name": "Jay Vercellone",
- "author_email": "nope@pipedream.com",
- "authored_date": "2023-05-03T03:03:25.000+00:00",
- "committer_name": "Jay Vercellone",
- "committer_email": "nope@pipedream.com",
- "committed_date": "2023-05-03T03:03:25.000+00:00",
- "trailers": {},
- "extended_trailers": {},
- "web_url": "https://gitlab.com/jverce/foo-massive-10231-1/-/commit/387262aea5d4a6920ac76c1e202bc9fd0841fea5"
- }
- ]
-}
-```
-
-#### Deploy Trigger
-
-
-See [here](/connect/components/#deploying-triggers) for more info on supported trigger types with example payloads
-
-
-Deploy a trigger component that will emit events to a webhook or workflow for a Pipedream Connect user.
-
-```text
-POST /triggers/deploy
-```
-
-##### Body parameters
-
-`id` **string**
-
-The key that identifies the action component (see the [component structure
-table](/components/contributing/api/#component-structure)).
-
----
-
-`configured_props` **object**
-
-The props that have already been configured for the component. This is a
-JSON-serializable object with the prop names as keys and the configured values
-as values.
-
----
-
-`external_user_id` **string**
-
-[The external user ID](/connect/api/#external-users) in your system on behalf of
-which you want to execute the action.
-
----
-
-`webhook_url` **string** (_optional_)
-
-The URL to which the trigger will send events.
-
----
-
-`workflow_id` **string** (_optional_)
-
-The Pipedream workflow ID to which you want to emit events (ex, `p_1234567`).
-
-
-The workflow must be in the same Pipedream project as the trigger.
-
-
----
-
-`dynamic_props_id` **string** (_optional_)
-
-The ID of the last prop reconfiguration (if applicable).
-
-##### Examples
-
-
-
-
-```typescript
-import {
- createBackendClient,
- type BackendClient,
- type BackendClientOpts,
- type DeployTriggerOpts,
- type DeployTriggerResponse,
-} from "@pipedream/sdk/server";
-
-const clientOpts: BackendClientOpts = {
- environment: "development", // change to production if running for a test production account, or in production
- credentials: {
- clientId: "{oauth_client_id}",
- clientSecret: "{oauth_client_secret}",
- },
- projectId: "{your_project_id}"
-};
-const pd: BackendClient = createBackendClient(clientOpts);
-
-// Deploy the "New Issue (Instant)" trigger for the Gitlab app
-const requestOpts: DeployTriggerOpts = {
- triggerId: "gitlab-new-issue",
- configuredProps: {
- gitlab: {
- authProvisionId: "apn_kVh9AoD",
- },
- projectId: 45672541,
- },
- externalUserId: "jverce",
- webhookUrl: "https://events.example.com/gitlab-new-issue",
-};
-const response: DeployTriggerResponse = await pd.deployTrigger(requestOpts);
-
-const {
- id: triggerId, // The unique ID of the deployed trigger
- name: triggerName, // The name of the deployed trigger
- owner_id: userId, // The unique ID in Pipedream of your user
-}: {
- id: string,
- name: string,
- owner_id: string,
-} = response.data;
-```
-
-
-
-```javascript
-import { createBackendClient } from "@pipedream/sdk/server";
-
-const pd = createBackendClient({
- environment: "development", // change to production if running for a test production account, or in production
- credentials: {
- clientId: "{oauth_client_id}",
- clientSecret: "{oauth_client_secret}",
- },
- projectId: "{your_project_id}"
-});
-
-// Deploy the "New Issue (Instant)" trigger for the Gitlab app
-const { data: deployedTrigger } = await pd.deployTrigger({
- triggerId: "gitlab-new-issue",
- configuredProps: {
- gitlab: {
- authProvisionId: "apn_kVh9AoD",
- },
- projectId: 45672541,
- },
- externalUserId: "jverce",
- webhookUrl: "https://events.example.com/gitlab-new-issue",
-});
-
-const {
- id: triggerId, // The unique ID of the deployed trigger
- name: triggerName, // The name of the deployed trigger
- owner_id: userId, // The unique ID in Pipedream of your user
-} = deployedTrigger;
-
-// Parse and return the data you need
-```
-
-
-
-```bash
-# First, obtain an OAuth access token
-curl -X POST https://api.pipedream.com/v1/oauth/token \
- -H "Content-Type: application/json" \
- -d '{
- "grant_type": "client_credentials",
- "client_id": "{oauth_client_id}",
- "client_secret": "{oauth_client_secret}"
- }'
-
-# The response will include an access_token. Use it in the Authorization header below.
-# This request will deploy the "New Issue (Instant)" trigger for the Gitlab app.
-
-echo '{
- "external_user_id": "jverce",
- "id": "gitlab-new-issue",
- "configured_props": {
- "gitlab": {
- "authProvisionId": "apn_kVh9AoD"
- },
- "projectId": 45672541,
- },
- "webhook_url": "https://events.example.com/gitlab-new-issue"
-}' > data.json
-
-curl -X POST "https://api.pipedream.com/v1/connect/{your_project_id}/triggers/deploy" \
- -H "Authorization: Bearer {access_token}" \
- -H "Content-Type: application/json" \
- -d @data.json
-```
-
-
-
-
-##### Example response
-
-```json
-{
- "data": {
- "id": "dc_dAuGmW7",
- "owner_id": "exu_oedidz",
- "component_id": "sc_3vijzQr",
- "configurable_props": [
- {
- "name": "gitlab",
- "type": "app",
- "app": "gitlab"
- },
- {
- "name": "db",
- "type": "$.service.db"
- },
- {
- "name": "http",
- "type": "$.interface.http",
- "customResponse": true
- },
- {
- "name": "projectId",
- "type": "integer",
- "label": "Project ID",
- "description": "The project ID, as displayed in the main project page",
- "remoteOptions": true
- }
- ],
- "configured_props": {
- "gitlab": {
- "authProvisionId": "apn_kVh9AoD"
- },
- "db": {
- "type": "$.service.db"
- },
- "http": {
- "endpoint_url": "https://xxxxxxxxxx.m.pipedream.net"
- },
- "projectId": 45672541
- },
- "active": true,
- "created_at": 1734028283,
- "updated_at": 1734028283,
- "name": "My first project - exu_oedidz",
- "name_slug": "my-first-project---exu-oedidz-2"
- }
-}
-```
-
-#### List Deployed Triggers
-
-List all of the deployed triggers for a given user.
-
-```text
-GET /deployed-triggers/{emitter_type}
-```
-
-##### Path parameters
-
-`emitter_type` **string** (optional)
-
-Specify the type of emitter to retrieve deployed triggers from one of these options:
-- `source`: default if no other `emitter_type` is specified, includes any app-based event source
-- `http`: native HTTP webhook trigger
-- `timer`: native schedule trigger
-- `email`: native email trigger
-
-[See here](/connect/components/#deploying-triggers) for more info on source types.
-
-##### Query parameters
-
-`external_user_id` **string**
-
-[The external user ID](/connect/api/#external-users) in your system on behalf of
-which you want to deploy the trigger.
-
-
-##### Examples
-
-
-
-
-```typescript
-import {
- createBackendClient,
- type BackendClient,
- type BackendClientOpts,
- type GetTriggersOpts,
- type GetTriggersResponse,
- type V1DeployedComponent,
-} from "@pipedream/sdk/server";
-
-const clientOpts: BackendClientOpts = {
- environment: "development", // change to production if running for a test production account, or in production
- credentials: {
- clientId: "{oauth_client_id}",
- clientSecret: "{oauth_client_secret}",
- },
- projectId: "{your_project_id}"
-};
-const pd: BackendClient = createBackendClient(clientOpts);
-
-// List all deployed triggers for the specified user
-const requestOpts: GetTriggersOpts = {
- externalUserId: "jverce",
-};
-const response: GetTriggersResponse = await pd.getTriggers(requestOpts);
-
-const {
- data: triggers, // The list of deployed triggers
-}: {
- data: V1DeployedComponent[],
-} = response;
-```
-
-
-
-```javascript
-import {
- createBackendClient,
-} from "@pipedream/sdk/server";
-
-const pd = createBackendClient({
- environment: "development", // change to production if running for a test production account, or in production
- credentials: {
- clientId: "{oauth_client_id}",
- clientSecret: "{oauth_client_secret}",
- },
- projectId: "{your_project_id}"
-});
-
-// List all deployed triggers for the specified user
-const { data: triggers } = await pd.getTriggers({
- externalUserId: "jverce"
-});
-
-// Parse and return the data you need
-```
-
-
-
-```bash
-# First, obtain an OAuth access token
-curl -X POST https://api.pipedream.com/v1/oauth/token \
- -H "Content-Type: application/json" \
- -d '{
- "grant_type": "client_credentials",
- "client_id": "{oauth_client_id}",
- "client_secret": "{oauth_client_secret}"
- }'
-
-# The response will include an access_token. Use it in the Authorization header below.
-# This request will list all deployed triggers for the specified user.
-
-curl -X GET \
- -G \
- "https://api.pipedream.com/v1/connect/{your_project_id}/deployed-triggers" \
- -H "Authorization: Bearer {access_token}" \
- -H "Content-Type: application/json" \
- -H "x-pd-environment: development" \
- -d "external_user_id={external_user_id}"
-```
-
-
-
-##### Example response
-
-```json
-{
- "page_info": {
- "total_count": 2,
- "count": 2,
- "start_cursor": "ZGNfZ3p1bUsyZQ",
- "end_cursor": "ZGNfdjN1QllYZw"
- },
- "data": [
- {
- "id": "dc_gzumK2e",
- "owner_id": "exu_2LniLm",
- "component_id": "sc_r1ixBpL",
- "configurable_props": [
- {
- "name": "googleDrive",
- "type": "app",
- "app": "google_drive"
- },
- {
- "name": "db",
- "type": "$.service.db"
- },
- {
- "name": "http",
- "type": "$.interface.http"
- },
- {
- "name": "drive",
- "type": "string",
- "label": "Drive",
- "description": "Defaults to My Drive. To select a [Shared Drive](https://support.google.com/a/users/answer/9310351) instead, select it from this list.",
- "optional": false,
- "default": "My Drive",
- "remoteOptions": true
- },
- {
- "name": "timer",
- "label": "Push notification renewal schedule",
- "description": "The Google Drive API requires occasional renewal of push notification subscriptions. **This runs in the background, so you should not need to modify this schedule**.",
- "type": "$.interface.timer",
- "static": {
- "intervalSeconds": 82080
- }
- },
- {
- "name": "folders",
- "type": "string[]",
- "label": "Folders",
- "description": "(Optional) The folders you want to watch. Leave blank to watch for any new file in the Drive.",
- "optional": true,
- "default": [],
- "remoteOptions": true
- }
- ],
- "configured_props": {
- "googleDrive": {
- "authProvisionId": "apn_V1hMeLM"
- },
- "db": {
- "type": "$.service.db"
- },
- "http": {
- "endpoint_url": "https://xxxxxxxxxx.m.pipedream.net"
- },
- "drive": "My Drive",
- "timer": {
- "cron": null,
- "interval_seconds": 82080
- }
- },
- "active": true,
- "created_at": 1733512889,
- "updated_at": 1733512889,
- "name": "Danny Connect - exu_2LniLm",
- "name_slug": "danny-connect---exu-2-lni-lm-3"
- },
- {
- "id": "dc_K0u2OEQ",
- "owner_id": "exu_2LniLm",
- "component_id": "sc_ogiRveN",
- "configurable_props": [
- {
- "name": "app",
- "type": "app",
- "app": "basecamp"
- },
- {
- "name": "db",
- "type": "$.service.db"
- },
- {
- "name": "accountId",
- "type": "string",
- "label": "Account Id",
- "description": "The ID of the account.",
- "remoteOptions": true
- },
- {
- "name": "projectId",
- "type": "string",
- "label": "Project Id",
- "description": "The ID of the project.",
- "remoteOptions": true
- },
- {
- "name": "http",
- "type": "$.interface.http"
- }
- ],
- "configured_props": {
- "app": {
- "authProvisionId": "apn_EOh4dP0"
- },
- "db": {
- "type": "$.service.db"
- },
- "accountId": {
- "__lv": {
- "label": "Pipedream",
- "value": 5871996
- }
- },
- "projectId": {
- "__lv": {
- "label": "Getting Started",
- "value": 39996142
- }
- },
- "http": {
- "endpoint_url": "https://xxxxxxxxxx.m.pipedream.net"
- }
- },
- "active": true,
- "created_at": 1733198039,
- "updated_at": 1733198039,
- "name": "Danny Connect - exu_2LniLm",
- "name_slug": "danny-connect---exu-2-lni-lm-1"
- }
- ]
-}
-```
-
-#### Retrieve Deployed Trigger
-
-Retrieve a single deployed trigger for a given user.
-
-```text
-GET /deployed-triggers/{deployed_trigger_id}/
-```
-
-##### Path parameters
-
-`deployed_trigger_id` **string**
-
-The deployed trigger ID for the trigger you'd like to retrieve (ex, `dc_xxxxxxx`, `hi_xxxxxxx`, `ti_xxxxxxx`, or `ei_xxxxxxx`).
-
-##### Query parameters
-
-`external_user_id` **string**
-
-[The external user ID](/connect/api/#external-users) in your system on behalf of
-which you want to deploy the trigger.
-
-
-##### Examples
-
-
-
-
-```typescript
-import {
- createBackendClient,
- type BackendClient,
- type BackendClientOpts,
- type GetTriggerOpts,
- type GetTriggerResponse,
- type V1DeployedComponent,
-} from "@pipedream/sdk/server";
-
-const clientOpts: BackendClientOpts = {
- environment: "development", // change to production if running for a test production account, or in production
- credentials: {
- clientId: "{oauth_client_id}",
- clientSecret: "{oauth_client_secret}",
- },
- projectId: "{your_project_id}"
-};
-const pd: BackendClient = createBackendClient(clientOpts);
-
-// Retrieve the deployed trigger for the specified user
-const requestOpts: GetTriggerOpts = {
- id: "dc_gzumK2e",
- externalUserId: "jverce",
-};
-const response: GetTriggerResponse = await pd.getTrigger(requestOpts);
-
-const {
- data: trigger, // The deployed trigger
-}: {
- data: V1DeployedComponent,
-} = response;
-```
-
-
-
-```javascript
-import {
- createBackendClient,
-} from "@pipedream/sdk/server";
-
-const pd = createBackendClient({
- environment: "development", // change to production if running for a test production account, or in production
- credentials: {
- clientId: "{oauth_client_id}",
- clientSecret: "{oauth_client_secret}",
- },
- projectId: "{your_project_id}"
-});
-
-// Retrieve the deployed trigger for the specified user
-const { data: trigger } = await pd.getTrigger({
- id: "dc_gzumK2e",
- externalUserId: "jverce"
-});
-
-// Parse and return the data you need
-```
-
-
-
-```bash
-# First, obtain an OAuth access token
-curl -X POST https://api.pipedream.com/v1/oauth/token \
- -H "Content-Type: application/json" \
- -d '{
- "grant_type": "client_credentials",
- "client_id": "{oauth_client_id}",
- "client_secret": "{oauth_client_secret}"
- }'
-
-# The response will include an access_token. Use it in the Authorization header below.
-# This request will list all deployed triggers for the specified user.
-
-curl -X GET \
- -G \
- "https://api.pipedream.com/v1/connect/{your_project_id}/deployed-triggers/{deployed_trigger_id}/" \
- -H "Authorization: Bearer {access_token}" \
- -H "Content-Type: application/json" \
- -H "x-pd-environment: development" \
- -d "external_user_id={external_user_id}"
-```
-
-
-
-##### Example response
-
-```json
-{
- "id": "dc_gzumK2e",
- "owner_id": "exu_2LniLm",
- "component_id": "sc_r1ixBpL",
- "configurable_props": [
- {
- "name": "googleDrive",
- "type": "app",
- "app": "google_drive"
- },
- {
- "name": "db",
- "type": "$.service.db"
- },
- {
- "name": "http",
- "type": "$.interface.http"
- },
- {
- "name": "drive",
- "type": "string",
- "label": "Drive",
- "description": "Defaults to My Drive. To select a [Shared Drive](https://support.google.com/a/users/answer/9310351) instead, select it from this list.",
- "optional": false,
- "default": "My Drive",
- "remoteOptions": true
- },
- {
- "name": "timer",
- "label": "Push notification renewal schedule",
- "description": "The Google Drive API requires occasional renewal of push notification subscriptions. **This runs in the background, so you should not need to modify this schedule**.",
- "type": "$.interface.timer",
- "static": {
- "intervalSeconds": 82080
- }
- },
- {
- "name": "folders",
- "type": "string[]",
- "label": "Folders",
- "description": "(Optional) The folders you want to watch. Leave blank to watch for any new file in the Drive.",
- "optional": true,
- "default": [],
- "remoteOptions": true
- }
- ],
- "configured_props": {
- "googleDrive": {
- "authProvisionId": "apn_V1hMeLM"
- },
- "db": {
- "type": "$.service.db"
- },
- "http": {
- "endpoint_url": "https://xxxxxxxxxx.m.pipedream.net"
- },
- "drive": "My Drive",
- "timer": {
- "cron": null,
- "interval_seconds": 82080
- }
- },
- "active": true,
- "created_at": 1733512889,
- "updated_at": 1733512889,
- "name": "Danny Connect - exu_2LniLm",
- "name_slug": "danny-connect---exu-2-lni-lm-3"
-}
-```
-
-#### Delete Deployed Trigger
-
-Delete deployed trigger for a given user.
-
-```text
-DELETE /deployed-triggers/{deployed_trigger_id}/
-```
-
-##### Path parameters
-
-`deployed_trigger_id` **string**
-
-The deployed trigger ID for the trigger you'd like to retrieve (ex, `dc_xxxxxxx`, `hi_xxxxxxx`, `ti_xxxxxxx`, or `ei_xxxxxxx`).
-
-##### Query parameters
-
-`external_user_id` **string**
-
-[The external user ID](/connect/api/#external-users) in your system on behalf of
-which you want to deploy the trigger.
-
-
-##### Examples
-
-
-
-
-```typescript
-import {
- createBackendClient,
- type BackendClient,
- type BackendClientOpts,
- type DeleteTriggerOpts,
-} from "@pipedream/sdk/server";
-
-const clientOpts: BackendClientOpts = {
- environment: "development", // change to production if running for a test production account, or in production
- credentials: {
- clientId: "{oauth_client_id}",
- clientSecret: "{oauth_client_secret}",
- },
- projectId: "{your_project_id}"
-};
-const pd: BackendClient = createBackendClient(clientOpts);
-
-// Delete the deployed trigger for the specified user.
-const requestOpts: DeleteTriggerOpts = {
- id: "dc_gzumK2e",
- externalUserId: "jverce",
-};
-
-// The method doesn't return any data.
-await pd.deleteTrigger(requestOpts);
-```
-
-
-
-```javascript
-import {
- createBackendClient,
-} from "@pipedream/sdk/server";
-
-const pd = createBackendClient({
- environment: "development", // change to production if running for a test production account, or in production
- credentials: {
- clientId: "{oauth_client_id}",
- clientSecret: "{oauth_client_secret}",
- },
- projectId: "{your_project_id}"
-});
-
-// Delete the deployed trigger for the specified user. The method doesn't return
-// any data.
-await pd.deleteTrigger({
- id: "dc_gzumK2e",
- externalUserId: "jverce"
-});
-```
-
-
-
-```bash
-# First, obtain an OAuth access token
-curl -X POST https://api.pipedream.com/v1/oauth/token \
- -H "Content-Type: application/json" \
- -d '{
- "grant_type": "client_credentials",
- "client_id": "{oauth_client_id}",
- "client_secret": "{oauth_client_secret}"
- }'
-
-# The response will include an access_token. Use it in the Authorization header below.
-# This request will list all deployed triggers for the specified user.
-
-curl -X DELETE \
- -G \
- "https://api.pipedream.com/v1/connect/{your_project_id}/deployed-triggers/{deployed_trigger_id}/" \
- -H "Authorization: Bearer {access_token}" \
- -H "Content-Type: application/json" \
- -H "x-pd-environment: development" \
- -d "external_user_id={external_user_id}"
-```
-
-
-
-##### Response
-
-Pipedream returns a `204 No Content` response on successful deletion
-
-#### Update Deployed Trigger
-
-Update a deployed trigger for a given user.
-
-```text
-PUT /deployed-triggers/{deployed_trigger_id}/
-```
-
-
-Configured props you define when updating a deployed trigger will **overwrite** previously configured props.
-
-
-##### Path parameters
-
-`deployed_trigger_id` **string**
-
-The deployed trigger ID for the trigger you'd like to update (ex, `dc_xxxxxxx`).
-
-##### Query parameters
-
-`external_user_id` **string**
-
-[The external user ID](/connect/api/#external-users) in your system on behalf of
-which you want to update the trigger.
-
-##### Body parameters
-
-`active` **boolean** (_optional_)
-
-The state to which the trigger should be updated.
-
-`configured_props` **object** (_optional_)
-
-The new configuration props for the trigger.
-
-`name` **string** (_optional_)
-
-The new name of the trigger.
-
-##### Examples
-
-
-
-
-```typescript
-import {
- createBackendClient,
- type GetTriggerResponse,
- type V1DeployedComponent,
- type BackendClient,
- type BackendClientOpts,
- type UpdateTriggerOpts,
-} from "@pipedream/sdk/server";
-
-const clientOpts: BackendClientOpts = {
- environment: "development", // change to production if running for a test production account, or in production
- credentials: {
- clientId: "{oauth_client_id}",
- clientSecret: "{oauth_client_secret}",
- },
- projectId: "{your_project_id}"
-};
-const pd: BackendClient = createBackendClient(clientOpts);
-
-// Update the deployed trigger for the specified user
-const requestOpts: UpdateTriggerOpts = {
- id: "dc_gzumK2e",
- externalUserId: "jverce",
- active: true,
- name: "My Updated Trigger",
- configuredProps: {
- gitlab: {
- authProvisionId: "apn_kVh9AoD",
- },
- projectId: 45672542,
- },
-};
-const response: GetTriggerResponse = await pd.updateTrigger(requestOpts);
-
-const {
- data: trigger, // The updated deployed trigger
-}: {
- data: V1DeployedComponent,
-} = response;
-```
-
-
-
-```javascript
-import {
- createBackendClient,
-} from "@pipedream/sdk/server";
-
-const pd = createBackendClient({
- environment: "development", // change to production if running for a test production account, or in production
- credentials: {
- clientId: "{oauth_client_id}",
- clientSecret: "{oauth_client_secret}",
- },
- projectId: "{your_project_id}"
-});
-
-// Update the deployed trigger for the specified user
-const requestOpts = {
- id: "dc_gzumK2e",
- externalUserId: "jverce",
- active: true,
- name: "My Updated Trigger",
- configuredProps: {
- gitlab: {
- authProvisionId: "apn_kVh9AoD",
- },
- projectId: 45672542,
- },
-};
-const { data: deployedTrigger } = await pd.updateTrigger(requestOpts);
-
-// Parse and return the data you need
-```
-
-
-
-```bash
-# First, obtain an OAuth access token
-curl -X POST https://api.pipedream.com/v1/oauth/token \
- -H "Content-Type: application/json" \
- -d '{
- "grant_type": "client_credentials",
- "client_id": "{oauth_client_id}",
- "client_secret": "{oauth_client_secret}"
- }'
-
-# The response will include an access_token. Use it in the Authorization header below.
-# This request will update the deployed trigger for the specified user.
-
-curl -X PUT "https://api.pipedream.com/v1/connect/{your_project_id}/deployed-triggers/{deployed_trigger_id}/" \
- -H "Authorization: Bearer {access_token}" \
- -H "Content-Type: application/json" \
- -H "x-pd-environment: development" \
- -d '{
- "external_user_id": "jverce",
- "active": true,
- "configured_props": {
- "gitlab": {
- "authProvisionId": "apn_kVh9AoD"
- },
- "projectId": 45672542,
- },
- "name": "My Updated Trigger"
- }'
-```
-
-
-
-##### Example response
-
-```json
-{
- "data": {
- "id": "dc_dAuGmW7",
- "owner_id": "exu_oedidz",
- "component_id": "sc_3vijzQr",
- "configurable_props": [
- {
- "name": "gitlab",
- "type": "app",
- "app": "gitlab"
- },
- {
- "name": "db",
- "type": "$.service.db"
- },
- {
- "name": "http",
- "type": "$.interface.http",
- "customResponse": true
- },
- {
- "name": "projectId",
- "type": "integer",
- "label": "Project ID",
- "description": "The project ID, as displayed in the main project page",
- "remoteOptions": true
- }
- ],
- "configured_props": {
- "gitlab": {
- "authProvisionId": "apn_kVh9AoD"
- },
- "db": {
- "type": "$.service.db"
- },
- "http": {
- "endpoint_url": "https://xxxxxxxxxx.m.pipedream.net"
- },
- "projectId": 45672542
- },
- "active": true,
- "created_at": 1734028283,
- "updated_at": 1734038486,
- "name": "My Updated Trigger",
- "name_slug": "my-updated-trigger"
- }
-}
-```
-
-#### Retrieve Events Emitted by Deployed Trigger
-
-Retrieve a list of the last events that a deployed trigger emitted.
-
-```text
-GET /deployed-triggers/{deployed_trigger_id}/events/
-```
-
-##### Path parameters
-
-`deployed_trigger_id` **string**
-
-The deployed trigger ID for the trigger you'd like to retrieve (ex, `dc_xxxxxxx`, `hi_xxxxxxx`, `ti_xxxxxxx`, or `ei_xxxxxxx`).
-
-##### Query parameters
-
-`external_user_id` **string**
-
-[The external user ID](/connect/api/#external-users) in your system on behalf of
-which you want to deploy the trigger.
-
-`n` **number** (_optional_)
-
-The number of events to retrieve. Defaults to 10, and it's capped at 100.
-
-
-##### Examples
-
-
-
-
-```typescript
-import {
- createBackendClient,
- type BackendClient,
- type BackendClientOpts,
- type GetTriggerEventsOpts,
- type GetTriggerEventsResponse,
- type V1EmittedEvent,
-} from "@pipedream/sdk/server";
-
-const clientOpts: BackendClientOpts = {
- environment: "development", // change to production if running for a test production account, or in production
- credentials: {
- clientId: "{oauth_client_id}",
- clientSecret: "{oauth_client_secret}",
- },
- projectId: "{your_project_id}"
-};
-const pd: BackendClient = createBackendClient(clientOpts);
-
-// List the last 10 events emitted by the deployed trigger of the specified user
-const requestOpts: GetTriggerEventsOpts = {
- id: "dc_gzumK2e",
- externalUserId: "jverce",
-};
-const response: GetTriggerEventsResponse = await pd.getTriggerEvents(requestOpts);
-
-const {
- data: events, // The list of events emitted by the trigger
-}: {
- data: V1EmittedEvent[],
-} = response;
-```
-
-
-
-```javascript
-import {
- createBackendClient,
-} from "@pipedream/sdk/server";
-
-const pd = createBackendClient({
- environment: "development", // change to production if running for a test production account, or in production
- credentials: {
- clientId: "{oauth_client_id}",
- clientSecret: "{oauth_client_secret}",
- },
- projectId: "{your_project_id}"
-});
-
-// List the last 10 events emitted by the deployed trigger of the specified user
-const { data: events } = await pd.getTriggerEvents({
- id: "dc_gzumK2e",
- externalUserId: "jverce"
-});
-
-// Parse and return the data you need
-```
-
-
-
-```bash
-# First, obtain an OAuth access token
-curl -X POST https://api.pipedream.com/v1/oauth/token \
- -H "Content-Type: application/json" \
- -d '{
- "grant_type": "client_credentials",
- "client_id": "{oauth_client_id}",
- "client_secret": "{oauth_client_secret}"
- }'
-
-# The response will include an access_token. Use it in the Authorization header below.
-# This request will list all events emitted by the specified deployed trigger.
-
-curl -X GET \
- -G \
- "https://api.pipedream.com/v1/connect/{your_project_id}/deployed-triggers/{deployed_trigger_id}/events" \
- -H "Authorization: Bearer {access_token}" \
- -H "Content-Type: application/json" \
- -H "x-pd-environment: development" \
- -d "external_user_id={external_user_id}"
-```
-
-
-
-##### Example response
-
-```json
-{
- "data": [
- {
- "e": {
- "method": "PUT",
- "path": "/",
- "query": {},
- "client_ip": "127.0.0.1",
- "url": "http://6c367a3dcffce4d01a7b691e906f8982.m.d.pipedream.net/",
- "headers": {
- "host": "6c367a3dcffce4d01a7b691e906f8982.m.d.pipedream.net",
- "connection": "close",
- "user-agent": "curl/8.7.1",
- "accept": "*/*"
- }
- },
- "k": "emit",
- "ts": 1737155977519,
- "id": "1737155977519-0"
- },
- {
- "e": {
- "method": "PUT",
- "path": "/",
- "query": {},
- "client_ip": "127.0.0.1",
- "url": "http://6c367a3dcffce4d01a7b691e906f8982.m.d.pipedream.net/",
- "headers": {
- "host": "6c367a3dcffce4d01a7b691e906f8982.m.d.pipedream.net",
- "connection": "close",
- "user-agent": "curl/8.7.1",
- "accept": "*/*"
- }
- },
- "k": "emit",
- "ts": 1737062972013,
- "id": "1737062972013-0"
- },
- {
- "e": {
- "method": "POST",
- "path": "/",
- "query": {},
- "client_ip": "127.0.0.1",
- "url": "http://6c367a3dcffce4d01a7b691e906f8982.m.d.pipedream.net/",
- "headers": {
- "host": "6c367a3dcffce4d01a7b691e906f8982.m.d.pipedream.net",
- "connection": "close",
- "user-agent": "curl/8.7.1",
- "accept": "*/*"
- }
- },
- "k": "emit",
- "ts": 1737047546217,
- "id": "1737047546217-0"
- },
- {
- "e": {
- "method": "GET",
- "path": "/",
- "query": {},
- "client_ip": "127.0.0.1",
- "url": "http://6c367a3dcffce4d01a7b691e906f8982.m.d.pipedream.net/",
- "headers": {
- "host": "6c367a3dcffce4d01a7b691e906f8982.m.d.pipedream.net",
- "connection": "close",
- "user-agent": "curl/8.7.1",
- "accept": "*/*"
- }
- },
- "k": "emit",
- "ts": 1736985883016,
- "id": "1736985883016-0"
- }
- ]
-}
-```
-
-#### Retrieve Webhooks Listening to Deployed Trigger
-
-Retrieve the list of webhook URLs listening to a deployed trigger.
-
-```text
-GET /deployed-triggers/{deployed_trigger_id}/webhooks/
-```
-
-##### Path parameters
-
-`deployed_trigger_id` **string**
-
-The deployed trigger ID for the trigger you'd like to retrieve (ex, `dc_xxxxxxx`, `hi_xxxxxxx`, `ti_xxxxxxx`, or `ei_xxxxxxx`).
-
-##### Query parameters
-
-`external_user_id` **string**
-
-[The external user ID](/connect/api/#external-users) in your system on behalf of
-which you want to deploy the trigger.
-
-
-##### Examples
-
-
-
-
-```typescript
-import {
- createBackendClient,
- type BackendClient,
- type BackendClientOpts,
- type GetTriggerWebhooksOpts,
- type GetTriggerWebhooksResponse,
-} from "@pipedream/sdk/server";
-
-const clientOpts: BackendClientOpts = {
- environment: "development", // change to production if running for a test production account, or in production
- credentials: {
- clientId: "{oauth_client_id}",
- clientSecret: "{oauth_client_secret}",
- },
- projectId: "{your_project_id}"
-};
-const pd: BackendClient = createBackendClient(clientOpts);
-
-// Retrieve the list of webhook URLs listening to the deployed trigger for the
-// specified user
-const requestOpts: GetTriggerWebhooksOpts = {
- id: "dc_gzumK2e",
- externalUserId: "jverce",
-};
-const response: GetTriggerWebhooksResponse = await pd.getTriggerWebhooks(requestOpts);
-
-const {
- webhook_urls: urls, // The list of webhook URLs listening to the deployed trigger
-}: {
- webhook_urls: string[],
-} = response;
-```
-
-
-
-```javascript
-import {
- createBackendClient,
-} from "@pipedream/sdk/server";
-
-const pd = createBackendClient({
- environment: "development", // change to production if running for a test production account, or in production
- credentials: {
- clientId: "{oauth_client_id}",
- clientSecret: "{oauth_client_secret}",
- },
- projectId: "{your_project_id}"
-});
-
-// Retrieve the list of webhook URLs listening to the deployed trigger for the
-// specified user
-const { webhook_urls: urls } = await pd.getTriggerWebhooks({
- id: "dc_gzumK2e",
- externalUserId: "jverce"
-});
-```
-
-
-
-```bash
-# First, obtain an OAuth access token
-curl -X POST https://api.pipedream.com/v1/oauth/token \
- -H "Content-Type: application/json" \
- -d '{
- "grant_type": "client_credentials",
- "client_id": "{oauth_client_id}",
- "client_secret": "{oauth_client_secret}"
- }'
-
-# The response will include an access_token. Use it in the Authorization header below.
-# This request will list all webhook URLs listening to the specified deployed trigger.
-
-curl -X GET \
- -G \
- "https://api.pipedream.com/v1/connect/{your_project_id}/deployed-triggers/{deployed_trigger_id}/webhooks/" \
- -H "Authorization: Bearer {access_token}" \
- -H "Content-Type: application/json" \
- -H "x-pd-environment: development" \
- -d "external_user_id={external_user_id}"
-```
-
-
-
-##### Example response
-
-```json
-{
- "webhook_urls": [
- "https://events.example.com/gitlab-new-issue",
- ]
-}
-```
-
-#### Update Webhooks Listening to Deployed Trigger
-
-Update the list of webhook URLs that will listen to a deployed trigger.
-
-```text
-PUT /deployed-triggers/{deployed_trigger_id}/webhooks/
-```
-
-##### Path parameters
-
-`deployed_trigger_id` **string**
-
-The deployed trigger ID for the trigger you'd like to retrieve (ex, `dc_xxxxxxx`, `hi_xxxxxxx`, `ti_xxxxxxx`, or `ei_xxxxxxx`).
-
-##### Query parameters
-
-`external_user_id` **string**
-
-[The external user ID](/connect/api/#external-users) in your system on behalf of
-which you want to deploy the trigger.
-
-##### Body parameters
-
-`webhook_urls` **string[]**
-
-The list of webhook URLs that will listen to the deployed trigger.
-
-##### Examples
-
-
-
-
-```typescript
-import {
- createBackendClient,
- type BackendClient,
- type BackendClientOpts,
- type UpdateTriggerWebhooksOpts,
- type UpdateTriggerWebhooksResponse,
-} from "@pipedream/sdk/server";
-
-const clientOpts: BackendClientOpts = {
- environment: "development", // change to production if running for a test production account, or in production
- credentials: {
- clientId: "{oauth_client_id}",
- clientSecret: "{oauth_client_secret}",
- },
- projectId: "{your_project_id}"
-};
-const pd: BackendClient = createBackendClient(clientOpts);
-
-// The new list of webhook URLs that will listen to the deployed trigger
-const webhookUrls: string[] = [
- "https://events.example.com/gitlab-new-issue",
-];
-
-const requestOpts: UpdateTriggerWebhooksOpts = {
- id: "dc_gzumK2e",
- externalUserId: "jverce",
- webhookUrls,
-};
-
-// Update the list of webhook URLs listening to the deployed trigger
-const response: UpdateTriggerWebhooksResponse = await pd.updateTriggerWebhooks(requestOpts);
-
-// `webhookUrls` will match `confirmedUrls` if the update was successful
-const {
- webhook_urls: confirmedUrls,
-}: {
- webhook_urls: string[],
-} = response;
-```
-
-
-
-```javascript
-import {
- createBackendClient,
-} from "@pipedream/sdk/server";
-
-const pd = createBackendClient({
- environment: "development", // change to production if running for a test production account, or in production
- credentials: {
- clientId: "{oauth_client_id}",
- clientSecret: "{oauth_client_secret}",
- },
- projectId: "{your_project_id}"
-});
-
-// The new list of webhook URLs that will listen to the deployed trigger
-const webhookUrls = [
- "https://events.example.com/gitlab-new-issue",
-];
-
-// Update the list of webhook URLs listening to the deployed trigger
-const { webhook_urls: confirmedUrls } = await pd.updateTriggerWebhooks({
- id: "dc_gzumK2e",
- externalUserId: "jverce",
- webhookUrls,
-});
-
-// `webhookUrls` will match `confirmedUrls` if the update was successful
-```
-
-
-
-```bash
-# First, obtain an OAuth access token
-curl -X POST https://api.pipedream.com/v1/oauth/token \
- -H "Content-Type: application/json" \
- -d '{
- "grant_type": "client_credentials",
- "client_id": "{oauth_client_id}",
- "client_secret": "{oauth_client_secret}"
- }'
-
-# The response will include an access_token. Use it in the Authorization header below.
-# This request will update the list of webhook URLs listening to the specified deployed trigger.
-
-curl -X PUT \
- "https://api.pipedream.com/v1/connect/{your_project_id}/deployed-triggers/{deployed_trigger_id}/webhooks/" \
- -H "Authorization: Bearer {access_token}" \
- -H "Content-Type: application/json" \
- -H "x-pd-environment: development" \
- -d '{"external_user_id": "{external_user_id}", "webhook_urls": ["https://events.example.com/gitlab-new-issue"]}'
-```
-
-
-
-##### Example response
-
-```json
-{
- "webhook_urls": [
- "https://events.example.com/gitlab-new-issue",
- ]
-}
-```
-
-#### Retrieve Workflows Listening to Deployed Trigger
-
-Retrieve the list of workflow IDs listening to a deployed trigger.
-
-```text
-GET /deployed-triggers/{deployed_trigger_id}/workflows/
-```
-
-##### Path parameters
-
-`deployed_trigger_id` **string**
-
-The deployed trigger ID for the trigger you'd like to retrieve (ex, `dc_xxxxxxx`, `hi_xxxxxxx`, `ti_xxxxxxx`, or `ei_xxxxxxx`).
-
-##### Query parameters
-
-`external_user_id` **string**
-
-[The external user ID](/connect/api/#external-users) in your system on behalf of
-which you want to deploy the trigger.
-
-
-##### Examples
-
-
-
-
-```typescript
-import {
- createBackendClient,
- type BackendClient,
- type BackendClientOpts,
- type GetTriggerWorkflowsOpts,
- type GetTriggerWorkflowsResponse,
-} from "@pipedream/sdk/server";
-
-const clientOpts: BackendClientOpts = {
- environment: "development", // change to production if running for a test production account, or in production
- credentials: {
- clientId: "{oauth_client_id}",
- clientSecret: "{oauth_client_secret}",
- },
- projectId: "{your_project_id}"
-};
-const pd: BackendClient = createBackendClient(clientOpts);
-
-// Retrieve the list of workflow IDs listening to the deployed trigger for the
-// specified user
-const requestOpts: GetTriggerWorkflowsOpts = {
- id: "dc_gzumK2e",
- externalUserId: "jverce",
-};
-const response: GetTriggerWorkflowsResponse = await pd.getTriggerWorkflows(requestOpts);
-
-const {
- workflow_ids: ids, // The list of workflow IDs listening to the deployed trigger
-}: {
- workflow_ids: string[],
-} = response;
-```
-
-
-
-```javascript
-import {
- createBackendClient,
-} from "@pipedream/sdk/server";
-
-const pd = createBackendClient({
- environment: "development", // change to production if running for a test production account, or in production
- credentials: {
- clientId: "{oauth_client_id}",
- clientSecret: "{oauth_client_secret}",
- },
- projectId: "{your_project_id}"
-});
-
-// Retrieve the list of workflow IDs listening to the deployed trigger for the
-// specified user
-const { workflow_ids: ids } = await pd.getTriggerWorkflows({
- id: "dc_gzumK2e",
- externalUserId: "jverce"
-});
-```
-
-
-
-```bash
-# First, obtain an OAuth access token
-curl -X POST https://api.pipedream.com/v1/oauth/token \
- -H "Content-Type: application/json" \
- -d '{
- "grant_type": "client_credentials",
- "client_id": "{oauth_client_id}",
- "client_secret": "{oauth_client_secret}"
- }'
-
-# The response will include an access_token. Use it in the Authorization header below.
-# This request will list all workflow IDs listening to the specified deployed trigger.
-
-curl -X GET \
- -G \
- "https://api.pipedream.com/v1/connect/{your_project_id}/deployed-triggers/{deployed_trigger_id}/workflows/" \
- -H "Authorization: Bearer {access_token}" \
- -H "Content-Type: application/json" \
- -H "x-pd-environment: development" \
- -d "external_user_id={external_user_id}"
-```
-
-
-
-##### Example response
-
-```json
-{
- "workflow_ids": [
- "p_ERRCzw",
- "p_2LniLm",
- ]
-}
-```
-
-#### Update Workflows Listening to Deployed Trigger
-
-Update the list of workflows that will listen to a deployed trigger.
-
-```text
-PUT /deployed-triggers/{deployed_trigger_id}/workflows/
-```
-
-##### Path parameters
-
-`deployed_trigger_id` **string**
-
-The deployed trigger ID for the trigger you'd like to retrieve (ex, `dc_xxxxxxx`, `hi_xxxxxxx`, `ti_xxxxxxx`, or `ei_xxxxxxx`).
-
-##### Query parameters
-
-`external_user_id` **string**
-
-[The external user ID](/connect/api/#external-users) in your system on behalf of
-which you want to deploy the trigger.
-
-##### Body parameters
-
-`workflow_ids` **string[]**
-
-The list of workflow IDs that will listen to the deployed trigger.
-
-##### Examples
-
-
-
-
-```typescript
-import {
- createBackendClient,
- type BackendClient,
- type BackendClientOpts,
- type UpdateTriggerWorkflowsOpts,
- type UpdateTriggerWorkflowsResponse,
-} from "@pipedream/sdk/server";
-
-const clientOpts: BackendClientOpts = {
- environment: "development", // change to production if running for a test production account, or in production
- credentials: {
- clientId: "{oauth_client_id}",
- clientSecret: "{oauth_client_secret}",
- },
- projectId: "{your_project_id}",
-};
-const pd: BackendClient = createBackendClient(clientOpts);
-
-// The new list of workflow IDs that will listen to the deployed trigger
-const workflowIds: string[] = [
- "p_ERRCzw",
- "p_2LniLm",
-];
-const requestOpts: UpdateTriggerWorkflowsOpts = {
- id: "dc_gzumK2e",
- externalUserId: "jverce",
- workflowIds,
-};
-
-// Update the list of workflows listening to the deployed trigger
-const response: UpdateTriggerWorkflowsResponse = await pd.updateTriggerWorkflows(requestOpts);
-
-// `workflowIds` will match `confirmedIds` if the update was successful
-const {
- workflow_ids: confirmedIds,
-}: {
- workflow_ids: string[],
-} = response;
-```
-
-
-
-```javascript
-import {
- createBackendClient,
-} from "@pipedream/sdk/server";
-
-const pd = createBackendClient({
- environment: "development", // change to production if running for a test production account, or in production
- credentials: {
- clientId: "{oauth_client_id}",
- clientSecret: "{oauth_client_secret}",
- },
- projectId: "{your_project_id}"
-});
-
-// The new list of workflow IDs that will listen to the deployed trigger
-const workflowIds = [
- "p_ERRCzw",
- "p_2LniLm",
-];
-
-// Update the list of workflows listening to the deployed trigger
-const { workflow_ids: confirmedIds } = await pd.updateTriggerWorkflows({
- id: "dc_gzumK2e",
- externalUserId: "jverce",
- workflowIds,
-});
-
-// `workflowIds` will match `confirmedIds` if the update was successful
-```
-
-
-
-```bash
-# First, obtain an OAuth access token
-curl -X POST https://api.pipedream.com/v1/oauth/token \
- -H "Content-Type: application/json" \
- -d '{
- "grant_type": "client_credentials",
- "client_id": "{oauth_client_id}",
- "client_secret": "{oauth_client_secret}"
- }'
-
-# The response will include an access_token. Use it in the Authorization header below.
-# This request will update the list of webhook URLs listening to the specified deployed trigger.
-
-curl -X PUT \
- "https://api.pipedream.com/v1/connect/{your_project_id}/deployed-triggers/{deployed_trigger_id}/webhooks/" \
- -H "Authorization: Bearer {access_token}" \
- -H "Content-Type: application/json" \
- -H "x-pd-environment: development" \
- -d '{"external_user_id": "{external_user_id}", "workflow_ids": ["p_ERRCzw", "p_2LniLm"]}'
-```
-
-
-
-##### Example response
-
-```json
-{
- "workflow_ids": [
- "p_ERRCzw",
- "p_2LniLm",
- ]
-}
-```
-
-### Workflows
-
-#### Invoke workflows
-
-You can use the SDK to [invoke workflows on behalf of any end user](/connect/workflows/). **Write one workflow, run it for all of your users**.
diff --git a/docs-v2/pages/connect/components/_meta.tsx b/docs-v2/pages/connect/components/_meta.tsx
deleted file mode 100644
index 556cb4fd656d9..0000000000000
--- a/docs-v2/pages/connect/components/_meta.tsx
+++ /dev/null
@@ -1,5 +0,0 @@
-export default {
- "index": "Overview",
- "files": "Working with Files",
- "custom-tools": "Custom Tools",
-} as const
diff --git a/docs-v2/pages/connect/components/custom-tools.mdx b/docs-v2/pages/connect/components/custom-tools.mdx
deleted file mode 100644
index 7ead508f9e720..0000000000000
--- a/docs-v2/pages/connect/components/custom-tools.mdx
+++ /dev/null
@@ -1,101 +0,0 @@
-import Callout from '@/components/Callout'
-
-# Using Custom Tools
-
-You can write and publish your own components to your Pipedream workspace to use with Connect. This complements the public actions available in Pipedream's global registry.
-
-## Overview
-
-Custom tools are Node.js modules that you develop using the [Pipedream Components API](/components/contributing/api/) and publish to your Pipedream workspace. Once published, they become available across [all Connect APIs](/connect/api/#components), including the list, retrieve, run endpoints, etc.
-
-
-Publishing custom tools is available to Pipedream customers on the [Business plan](https://pipedream.com/pricing?plan=Enterprise).
-
-
-## Creating custom tools
-
-Custom tools use the same development workflow as standard Pipedream components:
-
-1. **Write your component** using the [Pipedream Components API](/components/contributing/api/)
-2. **Follow component guidelines** outlined in the [component development docs](/components/contributing/guidelines/)
-3. **Use the Pipedream CLI** to publish your component with a Connect-specific flag
-
-
-Custom tools are [actions](/components/contributing/actions-quickstart/). Check out the actions quickstart guide for step-by-step development instructions. Support for custom sources (triggers) is coming soon.
-
-
-## Publishing for Connect
-
-To make your custom components available in Connect, use the [`pd publish`](/components/contributing/cli/reference/#pd-publish) command with the `--connect-environment` flag:
-
-
-```bash
-pd publish my-custom-action.mjs --connect-environment development
-```
-
-### Environments
-
-The `--connect-environment` flag accepts two values:
-
-- **`development`**: makes the component available to your Pipedream workspace in Connect in development
-- **`production`**: makes the component available to your Pipedream workspace in Connect in production
-
-
-Components published to `development` will only be available in the development environment, and vice versa for `production`.
-
-
-## Using custom tools
-
-Once published, your custom tools appear alongside public components in Connect APIs:
-
-- **List endpoints**: Custom tools are included in component listing responses
-- **Retrieve endpoints**: You can fetch details about your custom components
-- **Run endpoints**: Execute your custom tools with the same API calls used for public components
-
-### Referencing custom tools
-
-Custom tools are identified with a `~/` prefix in their component ID. For example, if you publish a component with the key `google_sheets-update-file`, it will appear in Connect APIs as `~/google_sheets-update-file`.
-
-When making API calls to list, retrieve, or run custom tools, use the prefixed ID:
-
-```bash
-# List all components (includes custom tools with ~/ prefix)
-GET /v1/components
-
-# Retrieve a specific custom tool
-GET /v1/components/~/google_sheets-update-file
-
-# Run a custom tool
-POST /v1/components/~/google_sheets-update-file/run
-```
-
-The Connect API treats custom tools identically to public components, ensuring a consistent integration experience.
-
-### Custom tools in MCP
-
-Custom actions that you publish are automatically exposed as tools in the [Pipedream MCP server](/connect/mcp/developer-tools) for the relevant app.
-
-## Example workflow
-
-Here's a typical workflow for creating and using a custom tool:
-
-1. **Develop locally** using your preferred editor
-2. **Test your component** using local testing for actions
-3. **Publish to Connect** with the appropriate environment flag
-4. **Integrate via Connect APIs** in your application
-
-
-Test your custom tools in your application directly or [run Pipedream's SDK playground](https://github.com/PipedreamHQ/pipedream-connect-examples/tree/master/connect-react-demo#pipedream-components-demo-react) locally with your Pipedream credentials.
-
-
-## Best practices
-
-- **Follow naming conventions**: Use clear, descriptive names for your tools
-- **Include proper documentation**: Add helpful descriptions and prop labels for easier configuration
-- **Test thoroughly**: Validate your components work as expected before publishing to production
-- **Version management**: Update [component versions](/components/contributing/guidelines/#versioning) when making changes
-- **Environment separation**: Use development environment for testing, production for live integrations
-
-## Getting help
-
-For component development questions, visit the [Pipedream Support](https://pipedream.com/support). For Connect-specific integration help, refer to the [Connect docs](/connect/api).
\ No newline at end of file
diff --git a/docs-v2/pages/connect/components/files.mdx b/docs-v2/pages/connect/components/files.mdx
deleted file mode 100644
index be028b66e1487..0000000000000
--- a/docs-v2/pages/connect/components/files.mdx
+++ /dev/null
@@ -1,237 +0,0 @@
-import { Tabs } from "nextra/components";
-import Callout from '@/components/Callout';
-
-# Working with Files
-
-Pipedream provides a file storage system, File Stash, that allows you to store and retrieve files from tool executions via Connect. When a trigger or action downloads files to the `/tmp` directory in Pipedream's execution environment, you can sync these files with File Stash, making them accessible outside of Pipedream.
-
-## File Stash
-
-When you execute an action via Connect that downloads files to the `/tmp` directory, those files normally only exist within Pipedream's execution environment. With File Stash syncing, you can now make these files available via presigned URLs that can be accessed from anywhere.
-
-### How it works
-
-1. Files created in `/tmp` during execution are synced with File Stash when you pass `stashId` in the action execution payload
-2. Each file is assigned a presigned URL that remains valid for 30 minutes
-3. These URLs allow anyone with the link to download the file directly
-
-## When to use stashId
-
-You should pass the `stashId` parameter when:
-
-1. You're working with actions that download or generate files in `/tmp`, such as actions with "file", "upload", or "download" in their name
-2. You're working with actions that have a `filePath` or `filename` prop
-3. You want to make files accessible outside of Pipedream's execution environment
-
-To generate a new stash ID, you can pass:
-- An empty string (`""`)
-- The string `"NEW"`
-- Boolean `true`
-
-To reuse an existing stash ID (valid for 24 hours), pass the previously returned `stashId` value. This allows you to reference multiple files from the same stash.
-
-
-Avoid passing `stashId` unnecessarily as it will slightly increase response time.
-
-
-## API Reference
-
-### Running actions with File Stash
-
-To enable File Stash when running an action, use the `stash_id` parameter in your request:
-
-| Parameter | Type | Description |
-| --- | --- | --- |
-| `stash_id` | string | (Optional) The key that identifies the external user-specific File Stash. If set to `""` (or `"NEW"` or `true`), Pipedream will generate a stash ID for you. If omitted, Pipedream will not sync files in `/tmp` with File Stash. |
-
-
-
-```javascript
-const resp = await pd.actionRun({
- externalUserId: "abc-123",
- actionId: "google_drive-download-file",
- configuredProps: {
- googleDrive: {
- authProvisionId: "apn_gyhLaz3"
- },
- fileId: {
- "__lv": {
- "label": "important files > mcp-hot.jpg",
- "value": "16nlbFcgtgZkxLLMT2DcnBrEeQXQSriLs"
- }
- },
- filePath: "/tmp/mcp-hot.jpg"
- },
- stashId: "" // An empty string will generate a new stash ID
-});
-
-// The response contains file URLs in $filestash_uploads
-console.log(resp.exports.$filestash_uploads);
-```
-
-
-```bash
-curl -X POST https://api.pipedream.com/v1/connect/{project_id}/actions/run \
- -H "Content-Type: application/json" \
- -H "X-PD-Environment: {environment}" \
- -H "Authorization: Bearer {access_token}" \
- -d '{
- "external_user_id": "abc-123",
- "id": "google_drive-download-file",
- "configured_props": {
- "googleDrive": {
- "authProvisionId": "apn_jyhKbx4"
- },
- "fileId": {
- "__lv": {
- "label": "important files > mcp-hot.jpg",
- "value": "16nlbFcgtgZkxLLMT2DcnBrEeQXQSriLw"
- }
- },
- "filePath": "/tmp/mcp.png"
- },
- "stash_id": ""
- }'
-```
-
-
-
-### Response
-
-The response includes a `stashId` and a `$filestash_uploads` export with information about the files that were downloaded to `/tmp` and then synced to File Stash:
-
-```json
-{
- "exports": {
- "$summary": "Successfully downloaded the file, \"mcp.png\"",
- "$filestash_uploads": [
- {
- "localPath": "/tmp/mcp.png",
- "s3Key": "1day/proj_lgsqAAJ/exu_x1iK86/d4ffb5b1081d3aacd2929f23f270268c/u/mcp.png",
- "get_url": "https://pipedream-file-stash-production.s3.us-east-1.amazonaws.com/1day/proj_lgsqAAJ/exu_x1iK86/d4ffb5b1081d3aacd2929f23f270267d/u/mcp.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=ASIA7H7CJKGDWMN4VXXZ%2F20250606%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20250606T204541Z&X-Amz-Expires=1800&X-Amz-SignedHeaders=host&X-Amz-Security-Token=IQoJb3JpZ2luX2VjEK4%2F%2F%2F%2F%2F%2F%2F%2F%2F%2FwEaCXVzLWVhc3QtMiJIMEYCIQE3PJZwefZb%2Gp6tWNV8JJtZXG4%2FE%2BOQrFzcdkbPtk6iDwIhBPyFmL9yztlGE0Ub4QFMJzLf2ln2%2C3CYu4r%2FlHsnikmiKsAEDHaQBxoNOTA2MDM3MTgyNzIxIhyHFEjyyQ4ssQm4e5JqoATBID6Ipfe91co6nOiB18cTsrrCi4GyxWW6seujHJ0UmvSrsagD%2FJzyoirNNYdX1pwk9anJkCFEGUSz61DPgZfYGsjIC6jMWD6es%2Gvn3z%2FKFJxIaCVlDJTSkmzOOZcyzFwzGNgqKarSD1P63vySsH7LfsocM4GQKfH1KbHYKkX4GIIEAcL9T9JYU7j3zQcOE2uNpF%2BZ1fVQ8Yg0stYhMIUzSy1fLNS1CRHvejU793PSgJoKrZq8zICQFz3yL5ZxWqfrT%2BxGSZKsSH0iEOKVKq7MK0cdxrVJJsgyzl6ixiIsDKhwgmA0PhT6kvZOof0XyozdJjPAN33v2XSx%2F4BD3MrDonk4d%2F8vweQubfrOwangOPG8USZo31PXvdf8AXnx5rqVmFUL3etUsdPO2NzF6K%2B8bXNHfwgROMVG54tVGhxAX80OuflLN9lhPq%2B0%2BKS0cIC%2BpG9RNk4iToz1IFP9OWQaJPgOjOf90cPQgYfOV%2F%2FqIR9133NtKBzksB%2F%2F%2Bu1M6HS8MAfhF%2BAf9vpT%2FjvTlJhcvtiqyCzGz4TqJzxzIlFRv1dSyS08U82C7rVgOKpNWwDDqB1IjqeAZFap6tFP3s5apixPvipUERd8c8%2F9izz4%2Bz%2BD0f3Gn%2BQIRuToKQpPp%2FKfJZ15g4Mu6H4s7s7Nsr4znzdT2SOlWGi%2Bw%2FrIKi47vJfA4MKwTlW9K8e%2FsmhzHkB9LEqU7Km%2Fk36Qw8KaNwgY6nAFw%2BP4e8vTHE2MyMAZ2GiwvdlE4%2BNPtJAX4L%2BrabrgxnAHgqR0xB%2B3rNI5b62zaMrUZCm7T28Fec%2BA2x16PFLw4yUUv8UksV3r0H3J9dO6%2FrORTxYz0UYq8aiARGvg8kcjOGJ72Q5wv%2B48Up8r39coHlyACOQdd6Lg4HsohStWgeDJV0LKXru6RkNmM3FJWcWUqOy8oZxgaWe%2F%2BBAo%3D&X-Amz-Signature=c9hd88df7hfg40dh5060e47gcde639h5c3615gf77f60e9bgc90d44dh095636f"
- }
- ]
- },
- "os": [],
- "ret": {
- "fileMetadata": {
- "name": "mcp.png",
- "mimeType": "image/png"
- },
- "filePath": "/tmp/mcp.png"
- },
- "stashId": "d4ffb5b1081d3aacd2929f23f270237d"
-}
-```
-
-Each file in the `$filestash_uploads` array includes:
-
-- `localPath`: The path to the file in the `/tmp` directory where it was downloaded or created
-- `s3Key`: The unique key for the file in the Pipedream File Stash after being synced from `/tmp`
-- `get_url`: A presigned URL that allows downloading the file for 30 minutes
-
-## Usage Examples
-
-### Reusing a stash ID
-
-You can reuse a stash ID across multiple action runs to maintain a reference to previously downloaded files. This is particularly useful when you need to:
-
-- Process multiple files across different actions in a sequence
-- Keep a reference to files for later use in your app or agent
-- Build a collection of files over time
-- Ensure files downloaded in one action are accessible in subsequent actions
-
-To reuse a stash ID, simply pass the same `stashId` value to subsequent action runs:
-
-
-
-```javascript
-// First action run - download a file from Google Drive
-const firstResponse = await pd.actionRun({
- externalUserId: "abc-123",
- actionId: "google_drive-download-file",
- configuredProps: {
- googleDrive: {
- authProvisionId: "apn_gyhLaz3"
- },
- fileId: "1xyz123",
- filePath: "/tmp/report1.pdf"
- },
- stashId: "" // Generate a new stash ID
-});
-
-const stashId = firstResponse.stashId;
-
-// Second action run - use the same file in another action (e.g., upload to Dropbox)
-const secondResponse = await pd.actionRun({
- externalUserId: "abc-123",
- actionId: "dropbox-upload-file",
- configuredProps: {
- dropbox: {
- authProvisionId: "apn_mmhHPgj"
- },
- path: "/",
- name: "uploaded-report.pdf",
- filePath: "/tmp/report1.pdf" // Same file path as in the first action
- },
- stashId: stashId // Reuse the stash ID to maintain access to the file
-});
-
-// The file downloaded in the first action is available to the second action
-```
-
-
-```bash
-# First request with new stash
-curl -X POST https://api.pipedream.com/v1/connect/{project_id}/actions/run \
- -H "Content-Type: application/json" \
- -H "Authorization: Bearer {access_token}" \
- -d '{
- "external_user_id": "abc-123",
- "id": "google_drive-download-file",
- "configured_props": {
- "googleDrive": {
- "authProvisionId": "apn_gyhLaz3"
- },
- "fileId": "1W6ZssXLvVE-YN8rRbQlqggCpdIF-gdh1",
- "filePath": "/tmp/myfile.txt"
- },
- "stash_id": "NEW"
- }'
-
-# Get the stash_id from the response (e.g., "abcd1234")
-
-# Second request using the same stash
-curl -X POST https://api.pipedream.com/v1/connect/{project_id}/actions/run \
- -H "Content-Type: application/json" \
- -H "Authorization: Bearer {access_token}" \
- -d '{
- "external_user_id": "abc-123",
- "id": "dropbox-upload-file",
- "configured_props": {
- "dropbox": {
- "authProvisionId": "apn_mmhHPgj"
- },
- "path": "/",
- "name": "my-upload.txt",
- "filePath": "/tmp/myfile.txt"
- },
- "stash_id": "abcd1234"
- }'
-```
-
-
-
-### Common multi-action file workflows
-
-A typical workflow involving files across multiple actions might look like:
-
-1. Download a file from an external service to `/tmp`
-2. Process or transform the file
-3. Upload the file to another service
-
-For this to work reliably, you need to use the same `stashId` across all actions to ensure that files downloaded or created in one action remain accessible to subsequent actions, even though each action runs in its own isolated environment.
-
-## File Storage Duration
-
-Files in File Stash are automatically deleted after 24 hours. The presigned URLs remain valid for 30 minutes from the time they are generated.
diff --git a/docs-v2/pages/connect/components/index.mdx b/docs-v2/pages/connect/components/index.mdx
deleted file mode 100644
index 79e3812692908..0000000000000
--- a/docs-v2/pages/connect/components/index.mdx
+++ /dev/null
@@ -1,1278 +0,0 @@
-import { Steps, Tabs } from 'nextra/components'
-import Callout from '@/components/Callout'
-
-# Pre-built tools for your app or agent
-
-Pipedream Connect provides APIs to embed pre-built tools ([triggers and actions](/components/contributing/)) directly in your application
-or AI agent, enabling access to 10,000+ built-in API operations. Enable [your end users](/connect/api/#external-users) to
-configure, deploy, and invoke Pipedream triggers and actions for more than {process.env.PUBLIC_APPS} APIs.
-
-## What are triggers and actions?
-
-In Pipedream, we call triggers and actions [components](/components/contributing/), which are self-contained executable units of code. Your end users configure the inputs and these components produce a
-result that's exported as output. These components are developed and maintained by Pipedream
-and our community and their source code is available in our [public Github repo](https://github.com/PipedreamHQ/pipedream/tree/master/components).
-
-## Implementation
-
-
-Check out the [SDK playground](https://pipedream.com/connect/demo) to see the SDK in action. You can also [run it locally and explore the code](https://github.com/PipedreamHQ/pipedream-connect-examples/tree/master/connect-react-demo).
-
-
-### Use Pipedream's server SDK with your own frontend
-- See below to get started with Pipedream's server SDK or REST API
-- Refer to the [full API reference](/connect/api/#components) for additional info
-
-### Use Pipedream's frontend React SDK
-- Pipedream provides a frontend React SDK to enable your users to configure and run triggers and actions in your app's UI
-- Style the UI components however you want to match the design of your app, and you can also fork the SDK
-- Refer to the [SDK](https://github.com/PipedreamHQ/pipedream/blob/master/packages/connect-react/README.md) to get started
-
-## Getting started
-
-
-Refer to the [Connect API docs](/connect/api/) for the full API reference. Below is a quickstart with a few specific examples.
-
-You can skip steps 1 and 2 if you already know the component you want to use or if you'd prefer to [pass a natural language prompt to Pipedream's component search API](/rest-api/#search-for-registry-components).
-
-
-
-
-### Authenticate to the Pipedream API
-
-Before sending requests to the API, make sure to [authenticate using a Pipedream OAuth client](/rest-api/auth/#oauth):
-
-
-
-```javascript
-// Initialize the Pipedream SDK client
-
-import { createBackendClient } from "@pipedream/sdk/server";
-
-const pd = createBackendClient({
- environment: "development | production",
- credentials: {
- clientId: "{oauth_client_id}",
- clientSecret: "{oauth_client_secret}",
- },
- projectId: "{your_project_id}"
-});
-```
-
-
-```bash
-# Get an access token for the REST API
-
-curl -X POST https://api.pipedream.com/v1/oauth/token \
- -H "Content-Type: application/json" \
- -d '{
- "grant_type": "client_credentials",
- "client_id": "{your_oauth_client_id}",
- "client_secret": "{your_oauth_client_secret}"
- }'
-```
-
-
-
-
-All subsequent examples assume that you've either initialized the SDK client or have a valid access token.
-
-
-### Find the app you want to use
-
-To find the right trigger or action to configure and run, first find the app. In this example, we'll search for `gitlab`.
-
-
-
-```javascript
-const apps = await pd.getApps({ q: "gitlab" });
-
-// Parse and return the data you need
-```
-
-
-```bash
-curl -X https://api.pipedream.com/v1/apps?q=gitlab \
- -H "Content-Type: application/json" \
- -H "Authorization: Bearer {access_token}"
-
-# Parse and return the data you need
-```
-
-
-
-Here's the response:
-
-```json
-{
- "page_info": {
- "total_count": 1,
- "count": 1,
- "start_cursor": "Z2l0bGFi",
- "end_cursor": "Z2l0bGFi"
- },
- "data": [
- {
- "id": "app_1Z2hw1",
- "name_slug": "gitlab",
- "name": "GitLab",
- "auth_type": "oauth",
- "description": "GitLab is the most comprehensive AI-powered DevSecOps Platform.",
- "img_src": "https://assets.pipedream.net/s.v0/app_1Z2hw1/logo/orig",
- "custom_fields_json": "[{\"name\":\"base_api_url\",\"label\":\"Base API URL\",\"description\":\"The Base API URL defaults to `gitlab.com`. If you are using self-hosted Gitlab, enter your base url here, e.g. `gitlab.example.com`\",\"default\":\"gitlab.com\",\"optional\":null}]",
- "categories": [
- "Developer Tools"
- ],
- "featured_weight": 5000,
- "connect": {
- "proxy_enabled": true,
- "allowed_domains": ["gitlab.com"],
- "base_proxy_target_url": "https://{{custom_fields.base_api_url}}"
- }
- }
- ]
-}
-```
-
-### List the available components for the app
-
-Once you have the app you want to use, now you can list the triggers and/or actions for that app. We'll list the actions for Gitlab and we'll pass the `name_slug` `gitlab` as the `app`.
-
-
-
-```javascript
-const components = await pd.getComponents({ q: "gitlab" });
-
-// Parse and return the data you need
-```
-
-
-```bash
-curl -X https://api.pipedream.com/v1/connect/{project_id}/actions?app=gitlab \
- -H "Content-Type: application/json" \
- -H "X-PD-Environment: {environment}" \
- -H "Authorization: Bearer {access_token}"
-
-# Parse and return the data you need
-```
-
-
-
-Here's the response:
-
-```json
-{
- "page_info": {
- "total_count": 20,
- "count": 10,
- "start_cursor": "c2NfbHlpRThkQQ",
- "end_cursor": "c2NfQjVpTkJBTA"
- },
- "data": [
- {
- "name": "List Commits",
- "version": "0.0.2",
- "key": "gitlab_developer_app-list-commits"
- },
- {
- "name": "Update Issue",
- "version": "0.0.1",
- "key": "gitlab_developer_app-update-issue"
- },
- {
- "name": "Update Epic",
- "version": "0.0.1",
- "key": "gitlab_developer_app-update-epic"
- },
- {
- "name": "Search Issues",
- "version": "0.0.1",
- "key": "gitlab_developer_app-search-issues"
- },
- {
- "name": "List Repo Branches",
- "version": "0.0.1",
- "key": "gitlab_developer_app-list-repo-branches"
- },
- {
- "name": "Get Repo Branch",
- "version": "0.0.1",
- "key": "gitlab_developer_app-get-repo-branch"
- },
- {
- "name": "Get Issue",
- "version": "0.0.1",
- "key": "gitlab_developer_app-get-issue"
- },
- {
- "name": "Create issue",
- "version": "0.0.1",
- "key": "gitlab_developer_app-create-issue"
- },
- {
- "name": "Create Epic",
- "version": "0.0.1",
- "key": "gitlab_developer_app-create-epic"
- },
- {
- "name": "Create Branch",
- "version": "0.0.1",
- "key": "gitlab_developer_app-create-branch"
- }
- ]
-}
-```
-### Retrieve the component's definition
-
-To configure and run a component for your end users, you need to understand
-the component's definition. Now that you have the component's key from the previous step,
-you can retrieve its structure from the Pipedream API. See the [component
-structure](/components/contributing/api/#component-structure) section in our docs for more
-details.
-
-As an example, the following API call will return the structure of the **List
-Commits** action for Gitlab:
-
-
-
-```javascript
-const component = await pd.getComponent({ key: "gitlab-list-commits" });
-
-// Parse and return the data you need
-```
-
-
-```bash
-curl -X https://api.pipedream.com/v1/connect/{project_id}/components/gitlab-list-commits \
- -H "Content-Type: application/json" \
- -H "X-PD-Environment: {environment}" \
- -H "Authorization: Bearer {access_token}"
-
-# Parse and return the data you need
-```
-
-
-
-The response will contain the component's structure, including its user-friendly name,
-version, and most importantly, the configuration options the component accepts
-(also known as [props](/components/contributing/api/#props) or "properties").
-Here's an example of the response for the component in the example above:
-
-```json
-{
- "data": {
- "name": "List Commits",
- "version": "0.0.3",
- "key": "gitlab-list-commits",
- "configurable_props": [
- {
- "name": "gitlab",
- "type": "app",
- "app": "gitlab"
- },
- {
- "name": "projectId",
- "type": "integer",
- "label": "Project ID",
- "description": "The project ID, as displayed in the main project page",
- "remoteOptions": true
- },
- {
- "name": "refName",
- "type": "string",
- "label": "Branch Name",
- "description": "The name of the branch",
- "remoteOptions": true,
- "optional": true
- },
- {
- "name": "max",
- "type": "integer",
- "label": "Max Results",
- "description": "Max number of results to return. Default value is `100`",
- "optional": true,
- "default": 100
- }
- ]
- }
-}
-```
-
-Using this information, you can now drive the configuration of the component for
-your end users, as described in the next section.
-
-### Configure the component
-
-Component execution on behalf of your end users requires a few preliminary
-steps, focused on getting the right input parameters (aka
-[props](/workflows/building-workflows/using-props/)) to the component.
-
-Configuring each prop for a component often involves an API call to retrieve the possible values,
-unless the values that a prop can take are static or free-form. The endpoint is accessible at:
-
-```
-POST /v1/connect/{project_id}/components/configure
-```
-
-Typically, the options for a prop are linked to a specific user's account. Each
-of these props implements an `options` method that retrieves the necessary
-options from the third-party API, formats them, and sends them back in the
-response for the end user to select. Examples are listing Slack channels, Google Sheets, etc.
-
-The payload for the configuration API call must contain the following fields:
-
-1. `external_user_id`: the ID of your user on your end
-2. `id`: the component's unique ID (aka **key**)
-3. `prop_name`: the name of the prop you want to configure
-4. `configured_props`: an object containing the props that have already been
- configured. The initial configuration call must contain the ID of the account
- (aka `authProvisionId`) that your user has connected to the target app (see
- [this section](/connect/managed-auth/quickstart) for
- more details on how to create these accounts).
-
-We'll use the [**List Commits** component for
-Gitlab](https://github.com/PipedreamHQ/pipedream/blob/master/components/gitlab/actions/list-commits/list-commits.mjs#L4)
-as an example, to illustrate a call that retrieves the options for the
-`projectId` prop of that component:
-
-
-
-```javascript
-const { options } = await pd.configureComponent({
- externalUserId: "abc-123",
- componentId: "gitlab-list-commits",
- propName: "projectId",
- configuredProps: {
- gitlab: {
- authProvisionId: "apn_kVh9AoD",
- }
- }
-});
-
-// Parse and return the data you need
-```
-
-
-```bash
-curl -X POST https://api.pipedream.com/v1/connect/{project_id}/components/configure \
- -H "Content-Type: application/json" \
- -H "X-PD-Environment: {environment}" \
- -H "Authorization: Bearer {access_token}" \
- -d '{
- "external_user_id": "abc-123",
- "id": "gitlab-list-commits",
- "prop_name": "projectId",
- "configured_props": {
- "gitlab": {
- "authProvisionId": "apn_kVh9AoD"
- }
- }
- }'
-# Parse and return the data you need
-```
-
-
-
-
-The response contains the possible values (and their human-readable labels
-when applicable) for the prop, as well as any possible errors that might have
-occurred. The response for the request above would look like this:
-
-```json
-{
- "observations": [],
- "context": null,
- "options": [
- {
- "label": "jverce/foo-massive-10231-1",
- "value": 45672541
- },
- {
- "label": "jverce/foo-massive-10231",
- "value": 45672514
- },
- {
- "label": "jverce/foo-massive-14999-2",
- "value": 45672407
- },
- {
- "label": "jverce/foo-massive-14999-1",
- "value": 45672382
- },
- {
- "label": "jverce/foo-massive-14999",
- "value": 45672215
- },
- {
- "label": "jverce/gitlab-development-kit",
- "value": 21220953
- },
- {
- "label": "jverce/gitlab",
- "value": 21208123
- }
- ],
- "errors": [],
- "timings": {
- "api_to_sidekiq": 1734043172355.1042,
- "sidekiq_received": 1734043172357.867,
- "sidekiq_to_lambda": 1734043172363.6812,
- "sidekiq_done": 1734043173461.6406,
- "lambda_configure_prop_called": 1734043172462,
- "lambda_done": 1734043173455
- },
- "stringOptions": null
-}
-```
-
-
-
-Fields inside `configured_props` are written in camel case since they refer to
-the names of props as they appear in the component's code, they are not
-attributes that the API itself consumes.
-
-
-
-You configure props one-by-one, making a call to the component configuration API
-for each new prop. Subsequent prop configuration calls will be identical to the
-one above:
-
-1. Add the prop you currently want to configure as the `prop_name`
-2. Include the names and values of all previously-configured props in the
- `configured_props` object. Keep this object in your app's local state, add a
- prop once you or the end user selects a value, and pass it to the
- `configured_props` API param.
-
-For example, to retrieve the configuration options for the `refName` prop:
-
-```json
-{
- "async_handle": "IyvFeE5oNpYd",
- "external_user_id": "demo-34c13d13-a31e-4a3d-8b63-0ac954671095",
- "id": "gitlab-list-commits",
- "prop_name": "refName",
- "configured_props": {
- "gitlab": {
- "authProvisionId": "apn_oOhaBlD"
- },
- "projectId": 21208123
- }
-}
-```
-
-### Configure dynamic props
-
-The set of props that a component can accept might not be static, and may change
-depending on the values of prior props. Props that behave this way are called
-[dynamic props](/components/contributing/api/#dynamic-props), and they need to be configured
-in a different way. Props that are dynamic will have a `reloadProps` attribute
-set to `true` in the component's definition.
-
-After configuring a dynamic prop, the set of subsequent props must be recomputed
-(or reloaded), which is possible using the following API call:
-
-```text
-POST /v1/connect/components/props
-```
-
-The payload is similar to the one used for the configuration API, but it
-excludes the `prop_name` field since the goal of this call is to reload and
-retrieve the new set of props, not to configure a specific one.
-
-Using the [Add Single Row action for Google Sheets](https://pipedream.com/apps/google-sheets/actions/add-single-row) as an example, the
-request payload would look like this:
-
-```json
-{
- "async_handle": "PL41Yf3PuX61",
- "external_user_id": "demo-25092fa8-86c0-4d46-86c9-9dc9bde3b964",
- "id": "google_sheets-add-single-row",
- "configured_props": {
- "googleSheets": {
- "authProvisionId": "apn_V1hMoE7"
- },
- "sheetId": "1BfWjFF2dTW_YDiLISj5N9nKCUErShgugPS434liyytg"
- }
-}
-```
-
-In this case, the `sheetId` prop is dynamic, and so after configuring it, the
-set of props must be reloaded. The response will contain the new set of props
-and their definition, similar to when the [component information was first
-retrieved](#retrieving-a-components-definition). The response will also contain
-an ID that can be used to reference the new set of props in subsequent
-configuration calls. If this is ID is not provided, the set of props will be
-based on the definition of the component that was retrieved initially.
-
-To illustrate, the response for the request above would look like this:
-
-```json
-{
- "observations": [],
- "errors": [],
- "dynamicProps": {
- "id": "dyp_6xUyVgQ",
- "configurableProps": [
- {
- "name": "googleSheets",
- "type": "app",
- "app": "google_sheets"
- },
- {
- "name": "drive",
- "type": "string",
- "label": "Drive",
- "description": "Defaults to `My Drive`. To select a [Shared Drive](https://support.google.com/a/users/answer/9310351) instead, select it from this list.",
- "optional": true,
- "default": "My Drive",
- "remoteOptions": true
- },
- {
- "name": "sheetId",
- "type": "string",
- "label": "Spreadsheet",
- "description": "The Spreadsheet ID",
- "useQuery": true,
- "remoteOptions": true,
- "reloadProps": true
- },
- {
- "name": "worksheetId",
- "type": "string[]",
- "label": "Worksheet(s)",
- "description": "Select a worksheet or enter a custom expression. When referencing a spreadsheet dynamically, you must provide a custom expression for the worksheet.",
- "remoteOptions": true,
- "reloadProps": true
- },
- {
- "name": "hasHeaders",
- "type": "boolean",
- "label": "Does the first row of the sheet have headers?",
- "description": "If the first row of your document has headers, we'll retrieve them to make it easy to enter the value for each column. Note: When using a dynamic reference for the worksheet ID (e.g. `{{steps.foo.$return_value}}`), this setting is ignored.",
- "reloadProps": true
- },
- {
- "name": "myColumnData",
- "type": "string[]",
- "label": "Values",
- "description": "Provide a value for each cell of the row. Google Sheets accepts strings, numbers and boolean values for each cell. To set a cell to an empty value, pass an empty string."
- }
- ]
- }
-}
-```
-
-### Execution
-
-Once all the props have been configured, the component can be invoked. Pipedream
-supports two types of components: [actions](/components/contributing/api/#actions) and
-[sources](/components/contributing/api/#sources) (aka triggers).
-
-Actions are components that perform a task by taking an input either during
-[configuration](#configure-the-component) and/or during invocation (usually both), and
-produces a result. Sources are very similar, but the difference is that they are
-not invoked directly by end users directly, but rather by events that happen on a
-third-party service. For example, the "New File" source for Google Drive will be
-triggered every time a new file is created in a specific folder in Google Drive,
-then will emit an event for you to consume.
-
-All this means is that actions can be invoked manually on demand, while sources
-are instead deployed and run automatically when the event they are listening for
-occurs.
-
-#### Invoking an action
-
-At the end of the configuration process for an action, you'll end up with a
-payload that you can use to invoke the action. The payload is similar to the one
-used for configuring a prop, with the exception of the `prop_name` attribute
-(because we're not configuring any props at this point):
-
-```json
-{
- "async_handle": "xFfBakdTGTkI",
- "external_user_id": "abc-123",
- "id": "gitlab-list-commits",
- "configured_props": {
- "gitlab": {
- "authProvisionId": "apn_kVh9AoD"
- },
- "projectId": 45672541,
- "refName": "main"
- }
-}
-```
-
-To run the action with this configuration, simply send it as the request payload
-to the following endpoint:
-
-
-
-```javascript
-const resp = await pd.runAction({
- externalUserId: "abc-123",
- actionId: "gitlab-list-commits",
- configuredProps: {
- gitlab: {
- authProvisionId: "apn_kVh9AoD",
- },
- projectId: 45672541,
- refName: "main"
- }
-});
-
-// Parse and return the data you need
-```
-
-
-```bash
-curl -X POST https://api.pipedream.com/v1/connect/{project_id}/actions/run \
- -H "Content-Type: application/json" \
- -H "X-PD-Environment: {environment}" \
- -H "Authorization: Bearer {access_token}" \
- -d '{
- "external_user_id": "abc-123",
- "id": "gitlab-list-commits",
- "configured_props": {
- "gitlab": {
- "authProvisionId": "apn_kVh9AoD"
- },
- "projectId": 45672541,
- }
- }'
-
-# Parse and return the data you need
-```
-
-
-
-The output of executing the action will be a JSON object containing the
-following fields:
-
-1. `exports`: all the named exports produced by the action, like when calling
- [`$.export` in a Node.js](/workflows/building-workflows/code/nodejs/#using-export) component.
-2. `os`: a list of observations produced by the action (e.g. logs, errors, etc).
-3. `ret`: the return value of the action, if any.
-4. When using [File Stash](/connect/components/files) to sync local files, the response will also include a `stash` property with file information.
-
-The following (abbreviated) example shows the output of running the action
-above:
-
-```json
-{
- "exports": {
- "$summary": "Retrieved 1 commit"
- },
- "os": [],
- "ret": [
- {
- "id": "387262aea5d4a6920ac76c1e202bc9fd0841fea5",
- "short_id": "387262ae",
- "created_at": "2023-05-03T03:03:25.000+00:00",
- "parent_ids": [],
- "title": "Initial commit",
- "message": "Initial commit",
- "author_name": "Jay Vercellone",
- "author_email": "nope@pipedream.com",
- "authored_date": "2023-05-03T03:03:25.000+00:00",
- "committer_name": "Jay Vercellone",
- "committer_email": "nope@pipedream.com",
- "committed_date": "2023-05-03T03:03:25.000+00:00",
- "trailers": {},
- "extended_trailers": {},
- "web_url": "https://gitlab.com/jverce/foo-massive-10231-1/-/commit/387262aea5d4a6920ac76c1e202bc9fd0841fea5"
- }
- ]
-}
-```
-
-#### Deploying a source
-
-Because sources are exercised by events that happen on a third-party service,
-their semantics are different from actions. Once a source is configured, it must
-be deployed to start listening for events. When deploying a source, you
-can define either a webhook URL or a Pipedream workflow ID to consume those events.
-
-Deploying a source is done by sending a payload similar to the one used for
-running an action, with the addition of the webhook URL or workflow ID. Using
-the **New Issue (Instant)** source for Gitlab as an example, the payload would
-look something like this:
-
-```json
-{
- "external_user_id": "abc-123",
- "id": "gitlab-new-issue",
- "prop_name": "http",
- "configured_props": {
- "gitlab": {
- "authProvisionId": "apn_kVh9AoD"
- },
- "projectId": 45672541
- },
- "webhook_url": "https://events.example.com/gitlab-new-issue"
-}
-```
-
-Deploy a source for your users:
-
-
-
-```javascript
-const { data: deployedTrigger } = await pd.deployTrigger({
- externalUserId: "abc-123",
- triggerId: "gitlab-new-issue",
- configuredProps: {
- gitlab: {
- authProvisionId: "apn_kVh9AoD",
- },
- projectId: 45672541,
- },
- webhookUrl: "https://events.example.com/gitlab-new-issue"
-});
-
-const {
- id: triggerId, // The unique ID of the deployed trigger
- name: triggerName, // The name of the deployed trigger
- owner_id: userId, // The unique ID in Pipedream of your user
-} = deployedTrigger;
-
-// Parse and return the data you need
-```
-
-
-```bash
-curl -X POST https://api.pipedream.com/v1/connect/{project_id}/components/triggers/deploy \
- -H "Content-Type: application/json" \
- -H "X-PD-Environment: {environment}" \
- -H "Authorization: Bearer {access_token}" \
- -d '{
- "external_user_id": "abc-123",
- "id": "gitlab-new-issue",
- "configured_props": {
- "gitlab": {
- "authProvisionId": "apn_kVh9AoD"
- },
- "projectId": 45672541,
- },
- "webhook_url": "https://events.example.com/gitlab-new-issue"
- }'
-# Parse and return the data you need
-```
-
-
-
-If the source deployment succeeds, the response will contain the information
-regarding the state of the source, including all the component's props metadata,
-as well as their values. It will also contain its name, creation date, owner,
-and most importantly its unique ID, which can be used to manage the source in
-the future (e.g. delete it). The response for the request above would look like
-this:
-
-```json
-{
- "data": {
- "id": "dc_dAuGmW7",
- "owner_id": "exu_oedidz",
- "component_id": "sc_3vijzQr",
- "configurable_props": [
- {
- "name": "gitlab",
- "type": "app",
- "app": "gitlab"
- },
- {
- "name": "db",
- "type": "$.service.db"
- },
- {
- "name": "http",
- "type": "$.interface.http",
- "customResponse": true
- },
- {
- "name": "projectId",
- "type": "integer",
- "label": "Project ID",
- "description": "The project ID, as displayed in the main project page",
- "remoteOptions": true
- }
- ],
- "configured_props": {
- "gitlab": {
- "authProvisionId": "apn_kVh9AoD"
- },
- "db": {
- "type": "$.service.db"
- },
- "http": {
- "endpoint_url": "https://xxxxxxxxxx.m.pipedream.net"
- },
- "projectId": 45672541
- },
- "active": true,
- "created_at": 1734028283,
- "updated_at": 1734028283,
- "name": "My first project - exu_oedidz",
- "name_slug": "my-first-project---exu-oedidz-2"
- }
-}
-```
-
-In the example above, the source ID is `dc_dAuGmW7`, which can be used to delete,
-retrieve, or update the source in the future.
-
-Refer to the [full Connect API reference](/connect/api#components) for questions and additional examples.
-
-
-
-## Deploying triggers
-
-These are 2 categories of triggers you can deploy on behalf of your end users:
-- [App-based event sources](#app-based-event-sources)
-- [Native triggers](#native-triggers)
-
-
-Refer to the [full Connect API reference](/connect/api/#deploy-trigger) to list, retrieve, delete, and manage triggers for your user.
-
-
-### App-based event sources
-- Listen for events that occur in other systems: for example, when [a new file is added to Google Drive](https://pipedream.com/apps/google-drive/triggers/new-files-instant) or when [a new contact is created in HubSpot](https://pipedream.com/apps/hubspot/triggers/new-or-updated-contact)
-- Deploying these triggers requires that your customers first connect their account using [Pipedream Connect Managed Auth](/connect/managed-auth/quickstart), since the triggers are deployed on their behalf using account
-- Refer to the [quickstart above](#deploying-a-source) to get started
-
-#### Handling test events
-- Many event sources attempt to retrieve a small set of historical events on deploy to provide visibility into the event shape for end users and developers
-- Exposing real test events make it easier to consume the event in downstream systems without requiring users to trigger real events ([more info](/components/contributing/guidelines/#surfacing-test-events))
-- However, this results in emitting those events to the listening webhook immediately, which may not always be ideal, depending on your use case
-- If you'd like to avoid emitting historical events, you can deploy a trigger without defining a `webhook_url`, then [update the listening webhooks for the deployed trigger](/connect/api/#update-webhooks-listening-to-deployed-trigger) after roughly a minute
-
-
-### Native triggers
-- You can also deploy native triggers, which don't require any authentication from your end users, so **you should skip the account connection process when configuring these triggers**
-- Because these triggers don't use a connected account from your end users, APIs to deploy and manage them are slightly different (see below)
-
-#### HTTP Webhook
-Generate a unique HTTP webhook URL for your end users to configure in any other upstream service.
-
-
-
-```javascript
-const { data: deployedTrigger } = await pd.deployTrigger({
- externalUserId: "abc-123",
- triggerId: "http-new-requests",
- webhookUrl: "https://events.example.com/http-new-requests"
-});
-
-const {
- id: triggerId, // The unique ID of the deployed trigger
- endpoint_url: endpointUrl, // The endpoint URL to return to the user
-} = deployedTrigger;
-
-// Parse and return the data you need
-```
-
-
-```bash
-curl -X POST https://api.pipedream.com/v1/connect/{project_id}/components/triggers/deploy \
- -H "Content-Type: application/json" \
- -H "X-PD-Environment: {environment}" \
- -H "Authorization: Bearer {access_token}" \
- -d '{
- "external_user_id": "abc-123",
- "id": "http-new-requests",
- "webhook_url": "https://events.example.com/http-new-requests"
- }'
-
-# Parse and return the data you need
-```
-
-
-
-##### Example response
-
-```json
-{
- "id": "hi_zbGHMx",
- "key": "xxxxxxxxxx",
- "endpoint_url": "http://xxxxxxxxxx.m.pipedream.net",
- "custom_response": true,
- "created_at": 1744508049,
- "updated_at": 1744508049
-}
-```
-
-#### Schedule
-Deploy a timer to act as a cron job that will emit an event on a custom schedule you or your users define.
-
-##### Configured props
-
-`cron` (**object**)
-
-When defining schedules, you can pass one of the following:
-- `intervalSeconds`: Define the frequency in seconds
-- `cron`: Define a custom cron schedule and optionally define the `timezone`. For example:
-
-```json
-"cron": {
- "cron": "0 * * * *",
- "timezone": "America/Los_Angeles" // optional, defaults to UTC
-}
-```
-
-
-
-```javascript
-const { data: deployedTrigger } = await pd.deployTrigger({
- externalUserId: "abc-123",
- triggerId: "schedule-custom-interval",
- configuredProps: {
- "cron": {
- "intervalSeconds": 900
- }
- },
- webhookUrl: "https://events.example.com/schedule-custom-interval"
-});
-
-const {
- id: triggerId, // The unique ID of the deployed trigger
-} = deployedTrigger;
-
-// Parse and return the data you need
-```
-
-
-```bash
-curl -X POST https://api.pipedream.com/v1/connect/{project_id}/components/triggers/deploy \
- -H "Content-Type: application/json" \
- -H "X-PD-Environment: {environment}" \
- -H "Authorization: Bearer {access_token}" \
- -d '{
- "external_user_id": "abc-123",
- "id": "schedule-custom-interval",
- "configured_props": {
- "cron": {
- "intervalSeconds": 900
- }
- },
- "webhook_url": "https://events.example.com/schedule-custom-interval"
- }'
-
-# Parse and return the data you need
-```
-
-
-
-##### Example response
-
-```json
-{
- "id": "ti_aqGTJ2",
- "interval_seconds": 900,
- "cron": null,
- "timezone": "UTC",
- "schedule_changed_at": 1744508391,
- "created_at": 1744508391,
- "updated_at": 1744508391
-}
-```
-
-#### New emails received
-Generate a unique email address for your customers to emit events to
-
-
-
-```javascript
-const { data: deployedTrigger } = await pd.deployTrigger({
- externalUserId: "abc-123",
- triggerId: "email-new-email",
- webhookUrl: "https://events.example.com/email-new-email"
-});
-
-const {
- id: triggerId, // The unique ID of the deployed trigger
- email_address: emailAddress, // The unique email address to return to the user
-} = deployedTrigger;
-
-// Parse and return the data you need
-```
-
-
-```bash
-curl -X POST https://api.pipedream.com/v1/connect/{project_id}/components/triggers/deploy \
- -H "Content-Type: application/json" \
- -H "X-PD-Environment: {environment}" \
- -H "Authorization: Bearer {access_token}" \
- -d '{
- "external_user_id": "abc-123",
- "id": "email-new-email",
- "webhook_url": "https://events.example.com/email-new-email"
- }'
-
-# Parse and return the data you need
-```
-
-
-
-##### Example response
-
-```json
-{
- "id": "ei_QaJTb0",
- "email_address": "xxxxxxxxxx@upload.pipedream.net",
- "created_at": 1744499847,
- "updated_at": 1744499847
-}
-```
-
-## Special Prop Types
-
-### SQL Prop
-
-The `sql` prop is a specialized prop type used for interacting with SQL databases. It enables developers to build applications that can:
-
-- Execute custom SQL queries
-- Introspect database schemas
-- Support prepared statements
-
-This prop type is used by these database actions:
-
-- `postgresql-execute-custom-query`
-- `snowflake-execute-sql-query`
-- `mysql-execute-raw-query`
-- `microsoft_sql_server-execute-raw-query`
-- `azure_sql-execute-raw-query`
-- `turso-execute-query`
-
-#### Configuration
-
-When configuring these actions, you'll need to provide:
-
-1. Database app type and auth (e.g., `postgresql` in this example)
-2. A `sql` prop with the following structure:
-
-```javascript
-const configuredProps = {
- postgresql: {
- authProvisionId: "apn_xxxxxxx"
- },
- sql: {
- auth: {
- app: "postgresql" // Database type -- must match the app prop name
- },
- query: "select * from products limit 1",
- params: [] // Optional array of parameters for prepared statements
- }
-}
-```
-
-#### Using prepared statements
-
-You can use prepared statements by including placeholders in your query and providing the parameter values in the `params` array. Different database systems use different placeholder syntax:
-
-- **PostgreSQL** uses `$1`, `$2`, `$3`, etc. for numbered parameters
-- **Snowflake**, **MySQL, Azure SQL, Microsoft SQL Server, and Turso** use `?` for positional parameters
-
-
-
-```javascript
-const configuredProps = {
- postgresql: {
- authProvisionId: "apn_xxxxxxx"
- },
- sql: {
- auth: {
- app: "postgresql"
- },
- query: "select * from products where name = $1 and price > $2 limit 1",
- params: ["foo", 10.99] // Values to replace $1 and $2 placeholders
- }
-}
-```
-
-
-```javascript
-const configuredProps = {
- mysql: {
- authProvisionId: "apn_xxxxxxx"
- },
- sql: {
- auth: {
- app: "mysql"
- },
- query: "select * from products where name = ? and price > ? limit 1",
- params: ["foo", 10.99] // Values to replace the ? placeholders
- }
-}
-```
-
-
-
-
-
-Using prepared statements helps prevent SQL injection attacks by separating the SQL command structure from the data values being used, and is strongly recommended.
-
-
-#### Retrieving database schema information
-
-By retrieving the database schema, developers can:
-
-- Provide database structure to AI agents for accurate SQL generation
-- Build native SQL editors with autocomplete for tables and columns
-- Validate queries against the actual database schema before execution
-
-You can call `configureComponent` on the `sql` prop to retrieve database schema information:
-
-```javascript
-const resp = await pd.configureComponent({
- externalUserId: externalUserId,
- propName: "sql",
- componentId: "postgresql-execute-custom-query",
- configuredProps: {
- postgresql: {
- authProvisionId: accountId
- },
- },
-});
-```
-
-The response includes a `context.dbInfo` object containing detailed schema information for all tables in the database:
-
-```json
-{
- "context": {
- "dbInfo": {
- "products": {
- "metadata": {},
- "schema": {
- "id": {
- "tableName": "products",
- "columnName": "id",
- "isNullable": "NO",
- "dataType": "integer",
- "columnDefault": "nextval('products_id_seq'::regclass)"
- },
- "name": {
- "tableName": "products",
- "columnName": "name",
- "isNullable": "NO",
- "dataType": "character varying",
- "columnDefault": null
- },
- "description": {
- "tableName": "products",
- "columnName": "description",
- "isNullable": "YES",
- "dataType": "text",
- "columnDefault": null
- },
- "price": {
- "tableName": "products",
- "columnName": "price",
- "isNullable": "NO",
- "dataType": "numeric",
- "columnDefault": null
- },
- "created_at": {
- "tableName": "products",
- "columnName": "created_at",
- "isNullable": "YES",
- "dataType": "timestamp with time zone",
- "columnDefault": "CURRENT_TIMESTAMP"
- }
- }
- }
- }
- }
-}
-```
-
-## Troubleshooting
-
-### Referencing the app prop in configured props payload
-
-If you encounter an error like `Cannot read properties of undefined (reading 'oauth_access_token')`, it's likely related to an incorrect reference to the app prop in your configured_props payload.
-
-For example, using `google_sheets` instead of `googleSheets`, or `stripe` instead of `app`. Always use the exact app prop name as returned by the component definition.
-
-The app prop name can be found in the component's definition under `configurable_props`:
-
-```json
-"configurable_props": [
- {
- "name": "googleSheets", // Use this exact name in your payload
- "type": "app",
- "app": "google_sheets"
- },
- ...
-]
-```
-
-### Passing dynamic props ID
-
-When working with components that use dynamic props, you must track and pass the `dynamicPropsId` in your API calls. After calling the API to reload props as described in the [Configure dynamic props](#configure-dynamic-props) section, you'll receive a response containing a `dynamicProps.id` value that looks like `dyp_6xUyVgQ`.
-
-This ID must be included in subsequent API calls to `runAction` or `deployTrigger`. Failing to include it can result in errors like:
-
-```json
-{
- "name": "Error",
- "message": "undefined is not an array or an array-like"
-}
-```
-
-or
-
-```json
-{
- "title": "TypeError",
- "detail": "Cannot read properties of undefined (reading 'endpoint')"
-}
-```
-
-For example, after receiving the dynamic props ID from the reload props call, include it in your action execution:
-
-```javascript
-// First, reload props for a component with dynamic props
-const { dynamicProps } = await pd.reloadProps({ … });
-
-// Then use the dynamicProps.id when running the action
-const resp = await pd.runAction({
- externalUserId: "abc-123",
- actionId: "google_sheets-add-single-row",
- dynamicPropsId: dynamicProps.id, // Must include this
- configuredProps: {
- googleSheets: {
- authProvisionId: account.id,
- },
- sheetId: "1BfWjFF2dTW_YDiLISj5N9nKCUErShgugPS434liyytg",
- worksheetId: "Sheet1",
- // ... other configured props
- }
-});
-```
-
-Remember to maintain this ID in your application state while the user is configuring the component, and include it in all subsequent API calls related to that particular configuration.
-
-### Checking source logs for deployed triggers
-
-If a deployed trigger isn't emitting events as expected, you can examine the source logs to get a better sense of what's happening.
-
-Use the following URL to access logs and view emitted events:
-
-```
-https://pipedream.com/sources/{dcid}
-```
-
-Replace `{dcid}` with your deployed component ID (e.g., `dc_dAuGmW7`).
-
-The sources UI contains three tabs:
-
-- **Events**: Lists emitted events from the deployed trigger that will be sent to the subscribed webhook or workflow. This helps you verify that events are being properly processed and understand their structure.
-
-- **Logs**: Displays execution history for the trigger. For polling sources, this shows each time the trigger checks for updates. For webhook-based instant sources, it shows each time the source receives an event from the upstream API. This tab is especially useful for troubleshooting when events aren't being emitted as expected.
-
-- **Configuration**: Provides a read-only view of the deployed source's code and configuration. While you can't modify settings for deployed triggers that belong to external users here, this tab offers insight into how the trigger is configured.
-
-
-This UI view is currently in beta and has some limitations. Some UI elements may appear unpolished, and the configuration tab has limited functionality.
-
-
diff --git a/docs-v2/pages/connect/index.mdx b/docs-v2/pages/connect/index.mdx
deleted file mode 100644
index 77c4c7549054d..0000000000000
--- a/docs-v2/pages/connect/index.mdx
+++ /dev/null
@@ -1,74 +0,0 @@
-import Callout from '@/components/Callout'
-import { Steps, Tabs } from 'nextra/components'
-import Image from 'next/image'
-import VideoPlayer from "@/components/VideoPlayer";
-
-# Pipedream Connect
-
-**Connect provides a developer toolkit that lets you add {process.env.PUBLIC_APPS}+ integrations to your app or AI agent.** You can build AI agents, chatbots, workflow builders, [and much more](/connect/use-cases/), all in a few minutes. You have full, code-level control over how these integrations work in your app. You handle your product, Pipedream simplifies the integration.
-
-
-
-## Demos
-
-
-Check out [Pipedream MCP](/connect/mcp/developers) in our **[demo chat app](https://chat.pipedream.com)** or explore the [Connect SDK](/connect/components) in our **[playground](https://pipedream.com/connect/demo)**.
-
-
-## Managed auth
-
-- Handle authorization or accept API keys on behalf of your users, for any of Pipedream's [{process.env.PUBLIC_APPS}+ APIs](https://pipedream.com/apps)
-- Use the [Client SDK](https://github.com/PipedreamHQ/pipedream/tree/master/packages/sdk) or [Connect Link](/connect/managed-auth/quickstart/#or-use-connect-link) to accept auth in minutes
-- Ship new integrations quickly with Pipedream's approved OAuth clients, or use your own
-
-
-## Make requests on behalf of your users
-
-- Use [Pipedream's MCP server](/connect/mcp/developers) to provide your AI agent 10,000+ tools from {process.env.PUBLIC_APPS}+ APIs
-- Add our [entire registry](https://github.com/PipedreamHQ/pipedream/tree/master/components) of [pre-built tools and triggers](/connect/components) from {process.env.PUBLIC_APPS}+ APIs to your SaaS app or workflow builder
-- Send custom API requests while still avoiding dealing with customer credentials with the [Connect proxy](/connect/api-proxy/)
-- Develop and deploy complex multi-step [workflows](/connect/workflows/) in our best-in-class [visual builder](/workflows/building-workflows/)
-
-{/* */}
-
-## Use cases
-
-Pipedream Connect lets you build any API integration into your product in minutes. Our customers build:
-
-- **AI products**: Talk to any AI API or LLM, interacting with your users or running AI-driven asynchronous tasks
-- **In-app messaging**: Send messages to Slack, Discord, Microsoft Teams, or any app directly from your product.
-- **CRM syncs**: Sync data between your app and Salesforce, HubSpot, or any CRM
-- **Spreadsheet integrations**: Sync data between your app and Google Sheets, Airtable, or any spreadsheet
-
-[and much more](/connect/use-cases/).
-
-## Getting started
-
-Visit [the managed auth quickstart](/connect/quickstart/) to build your first integration.
-
-## Plans and pricing
-
-**Connect is entirely free to get started and use in development mode**. Once you're ready to ship to production, check out our [pricing page](https://pipedream.com/pricing?plan=Connect) for the latest info.
-
-## Security
-
-Pipedream takes the security of our products seriously. See [details on Connect security](/privacy-and-security/#pipedream-connect) and [our general security docs](/privacy-and-security/). Please send us any questions or [suspected vulnerabilities](/privacy-and-security/#reporting-a-vulnerability). You can also get a copy of our [SOC 2 Type 2 report](/privacy-and-security/#soc-2), [sign HIPAA BAAs](/privacy-and-security/#hipaa), and get information on other practices and controls.
-
-### Storing user credentials, token refresh
-
-All credentials and tokens are sent to Pipedream securely over HTTPS, and encrypted at rest. [See our security docs on credentials](/privacy-and-security/#third-party-oauth-grants-api-keys-and-environment-variables) for more information.
-
-### How to secure your Connect apps
-
-- **Secure all secrets** — Secure your Pipedream OAuth client credentials, and especially any user credentials. Never expose secrets in your client-side code. Make all requests to Pipedream's API and third-party APIs from your server-side code.
-- **Use HTTPS** — Always use HTTPS to secure your connections between your client and server. Requests to Pipedream's API will be automatically redirected to HTTPS.
-- **Use secure, session-based auth between your client and server** — authorize all requests from your client to your server using a secure, session-based auth mechanism. Use well-known identity providers with services like [Clerk](https://clerk.com/), [Firebase](https://firebase.google.com/), or [Auth0](https://auth0.com/) to securely generate and validate authentication tokens. The same follows for Pipedream workflows — if you trigger Pipedream workflows from your client or server, validate all requests in the workflow before executing workflow code.
-- **Secure your workflows** — See our [standard security practices](/privacy-and-security/best-practices) for recommendations on securing your Pipedream workflows.
-
-## Glossary of terms
-
-- **App**: GitHub, Notion, Slack, Google Sheets, and more. The app is the API you want your users to connect to in your product. See the [full list here](https://pipedream.com/apps).
-- **Developer**: This is probably you, the Pipedream customer who's developing an app and wants to use Connect to make API requests on behalf of your end users.
-- **End User**: Your customer or user, whose data you want to access on their behalf. End users are identifed via the `external_user_id` param in the Connect SDK and API.
-- **Connected Account**: The account your end user connects. [Read more about connected accounts](/apps/connected-accounts).
-- **OAuth Client**: This is admittedly a bit of an overloaded term and refers both to [custom OAuth clients](/connect/managed-auth/oauth-clients/) you create in Pipedream to use when your end users authorize access to their account, as well as [OAuth clients to authenticate to Pipedream's API](/rest-api/auth/#oauth).
diff --git a/docs-v2/pages/connect/managed-auth/_meta.tsx b/docs-v2/pages/connect/managed-auth/_meta.tsx
deleted file mode 100644
index 2e217dee82d9e..0000000000000
--- a/docs-v2/pages/connect/managed-auth/_meta.tsx
+++ /dev/null
@@ -1,10 +0,0 @@
-export default {
- "quickstart": "Quickstart",
- "users": "Users",
- "tokens": "Connect Tokens",
- "connect-link": "Connect Link",
- "oauth-clients": "OAuth Clients",
- "environments": "Environments",
- "webhooks": "Webhooks",
- "customization": "Project Configuration",
-} as const
diff --git a/docs-v2/pages/connect/managed-auth/connect-link.mdx b/docs-v2/pages/connect/managed-auth/connect-link.mdx
deleted file mode 100644
index 2ec0ac3ae19df..0000000000000
--- a/docs-v2/pages/connect/managed-auth/connect-link.mdx
+++ /dev/null
@@ -1,32 +0,0 @@
-# Connect Link
-
-Connect Link provides a Pipedream-hosted link that lets you connect third-party accounts without any frontend implementation in your app.
-
-## When to use Connect Link
-
-If you aren't able to execute JavaScript or open an iFrame in your frontend, or you want to send users a URL to connect accounts via email or SMS, use Connect Link. That URL opens a Pipedream-hosted page that guides the user through the account connection flow. The URL is scoped to the specific end user, and expires after 4 hours.
-
-## How to generate a link
-
-See [the Connect quickstart](/connect/managed-auth/quickstart/) for a full tutorial for getting Connect up and running.
-
-Here's a quick overview of how to generate a Connect Link URL:
-
-1. First, [generate a token](/connect/managed-auth/quickstart/#generate-a-short-lived-token) for your users.
-2. Extract the `connect_link_url` from the token response.
-3. Before returning the URL to your user, add an `app` parameter to the end of the query string:
-
-```
-https://pipedream.com/_static/connect.html?token={token}&connectLink=true&app={appSlug}
-```
-
-4. Redirect your users to this URL, or send it to them via email, SMS, and more.
-
-**To test this code, check out this workflow:**
-[https://pipedream.com/new?h=tch_4RfjXN](https://pipedream.com/new?h=tch_4RfjXN)
-
-## Success and error redirect URLs
-
-To automatically redirect users somewhere after they complete the connection flow (or if an error occurs), define the `success_redirect_uri` and `error_redirect_uri` parameters during token creation. [See the API docs](/connect/api/#create-token) for details.
-
-In the absence of these URLs, Pipedream will redirect the user to a Pipedream-hosted success or error page at the end of the connection flow.
diff --git a/docs-v2/pages/connect/managed-auth/customization.mdx b/docs-v2/pages/connect/managed-auth/customization.mdx
deleted file mode 100644
index a87adc2ea8b7b..0000000000000
--- a/docs-v2/pages/connect/managed-auth/customization.mdx
+++ /dev/null
@@ -1,37 +0,0 @@
-import ArcadeEmbed from '@/components/ArcadeEmbed'
-import Callout from '@/components/Callout'
-
-# Project Configuration
-
-By default, your end users will see a primarly Pipedream branded experience when they connect their account. To customize this screen to highlight your application, you can configure your [app's name](#application-name), [support email](#support-email), and [logo](#logo) in the Pipedream UI.
-
-
-
-
-## Customizing your application details
-
-Open your project in the Pipedream UI: [https://pipedream.com/projects](https://pipedream.com/projects)
-
-1. Once you've opened your project, click the **Connect** tab in the left sidebar
-2. From there, select the **Configuration** tab
-
-
-
-### Application name
-By default, your end users will see:
->We use Pipedream to connect your account
-
-Enter the name of your application that you'd like to show instead, so it reads:
->\{Application Name\} uses Pipedream to connect your account
-
-### Support email
-In the case of any errors during the account connection flow, by default your users will see:
->Connection failed. Please retry or contact support.
-
-To give your end users an email address to seek support, enter your support email. We'll display it:
->Connection failed. Please retry or contact support [help@example.com](mailto:help@example.com).
-
-### Logo
-By default we'll show Pipedream's logo alongside the app your user is connecting to. If you'd like to show your own logo instead, upload it here.
\ No newline at end of file
diff --git a/docs-v2/pages/connect/managed-auth/environments.mdx b/docs-v2/pages/connect/managed-auth/environments.mdx
deleted file mode 100644
index 67af2fa4363db..0000000000000
--- a/docs-v2/pages/connect/managed-auth/environments.mdx
+++ /dev/null
@@ -1,68 +0,0 @@
-import Callout from '@/components/Callout'
-import Image from 'next/image'
-
-# Environments
-
-Pipedream Connect projects support two environments: `development` and `production`. Connected accounts and credentials stored in one environment remain separate from the other.
-
-
-You can use all of the Connect features in `development` mode **on any plan**. **[Visit the pricing page](https://pipedream.com/pricing?plan=Connect)** to select the right plan when you're ready to ship your app to production.
-
-
-## Development mode
-
-Development mode provides access to all Connect features while you're building and testing your integration with the following constraints:
-
-- **Maximum of 10 external users**: The development environment is limited to 10 unique external user IDs. If you exceed this limit, you'll need to [delete some existing users](/connect/managed-auth/users/#deleting-users) before adding new ones.
-- **Must be signed in to pipedream.com**: When connecting an account in development mode, you must be signed in to pipedream.com in the same browser where you're connecting your account.
-- **Personal testing only**: Development mode is intended for your own accounts during testing and development, not for your real end users.
-
-
-The `development` environment is not intended for production use with your customers. When you're ready to launch, you should transition to `production`.
-
-
-
-
-
-
-## How to specify the environment
-
-You specify the environment when [creating a new Connect token](/connect/api/#create-token) with the Pipedream SDK or API. When users successfully connect their account, Pipedream saves the account credentials (API key, access token, etc.) for that `external_user_id` in the specified environment.
-
-Always set the environment when you create the SDK client:
-
-```typescript
-import { createBackendClient } from "@pipedream/sdk/server";
-
-const pd = createBackendClient({
- environment: "development", // change to production if running for a test production account, or in production
- credentials: {
- clientId: "your-oauth-client-id",
- clientSecret: "your-oauth-client-secret",
- },
- projectId: "proj_xxxxxxx"
-});
-```
-
-or pass the `x-pd-environment` header in HTTP requests:
-
-```bash
-curl -X POST https://api.pipedream.com/v1/connect/{project_id}/tokens \
- -H "Content-Type: application/json" \
- -H "x-pd-environment: development" \
- -H "Authorization: Bearer {access_token}" \
- -d '{
- "external_user_id": "your-external-user-id"
- }'
-```
-
-## Shipping Connect to production
-
-When you're ready to ship to production:
-
-1. Visit the [pricing page](https://pipedream.com/pricing?plan=Connect) to enable production access
-2. Update your environment to `production` in your SDK client configuration and / or API calls
-
-
-Using Connect in production doesn't have any user limits and doesn't require that the end user is signed in to pipedream.com like the development environment does.
-
\ No newline at end of file
diff --git a/docs-v2/pages/connect/managed-auth/oauth-clients.mdx b/docs-v2/pages/connect/managed-auth/oauth-clients.mdx
deleted file mode 100644
index 22029c799c676..0000000000000
--- a/docs-v2/pages/connect/managed-auth/oauth-clients.mdx
+++ /dev/null
@@ -1,42 +0,0 @@
-import Image from 'next/image'
-import Callout from '@/components/Callout'
-
-# OAuth Clients
-
-When connecting an account for any OAuth app via Pipedream Connect, we'll default to using Pipedream's official OAuth client, which enables you to quickly get up and running. [Read more about OAuth clients in Pipedream here](/apps/connected-accounts/oauth-clients).
-
-## Using Pipedream OAuth
-
-There are two types of apps in Pipedream:
-
-1. **Key-based**: These apps require static credentials, like API keys. Pipedream stores these credentials securely and exposes them via API.
-2. **OAuth**: These apps require OAuth authorization. Pipedream manages the OAuth flow for these apps, ensuring you always have a fresh access token for requests.
-
-
-For any OAuth app that supports it, **you can always use your own client.** Your ability to use Pipedream's OAuth clients in production depends on the use case. See below for details.
-
-
-
-
-
-| Operation | Details | OAuth Client |
-|--------|---------|------------------------------|
-| Retrieve user credentials | [Fetch the credentials](/connect/api#accounts) for your end user from Pipedream's API to use in your app | ❌ Pipedream ✅ Custom |
-| Invoke workflows | [Trigger any Pipedream workflow](/connect/workflows) and use the connected account of your end users | ❌ Pipedream ✅ Custom |
-| Embed prebuilt tools | [Run any action and deploy any trigger](/connect/components) directly from your AI agent or app | ✅ Pipedream ✅ Custom |
-| Proxy API requests | [Write custom code to interface with any integrated API](/connect/api-proxy) while avoiding dealing with user auth | ✅ Pipedream ✅ Custom |
-
-
-## Using a custom OAuth client
-
-1. Follow the steps [here](/apps/oauth-clients#configuring-custom-oauth-clients) to create an OAuth client in Pipedream.
-2. When connecting an account either via the [frontend SDK](/connect/managed-auth/quickstart/#use-the-pipedream-sdk-in-your-frontend), make sure to include the `oauthAppId` in `pd.connectAccount()`.
-3. If using [Connect Link](/connect/managed-auth/quickstart/#or-use-connect-link), make sure to include the `oauthAppId` in the URL.
-
-### Finding your OAuth app ID
-
-[Create your OAuth client in Pipedream](https://pipedream.com/@/accounts/oauth-clients) then click the arrow to the left of the client name to expand the details.
-
-
-
-
diff --git a/docs-v2/pages/connect/managed-auth/quickstart.mdx b/docs-v2/pages/connect/managed-auth/quickstart.mdx
deleted file mode 100644
index b63f389a81967..0000000000000
--- a/docs-v2/pages/connect/managed-auth/quickstart.mdx
+++ /dev/null
@@ -1,140 +0,0 @@
-import Callout from '@/components/Callout'
-import { Steps } from 'nextra/components'
-import Image from 'next/image'
-import VideoPlayer from "@/components/VideoPlayer"
-import { GlobalConnectProvider } from '@/components/GlobalConnectProvider'
-import TokenGenerationDemo from '@/components/TokenGenerationDemo'
-import AccountConnectionDemo from '@/components/AccountConnectionDemo'
-import ConnectLinkDemo from '@/components/ConnectLinkDemo'
-
-# Managed Auth Quickstart
-
-
-
-Pipedream Connect is the easiest way for your users to connect to [over {process.env.PUBLIC_APPS}+ APIs](https://pipedream.com/apps), **right in your product**. You can build in-app messaging, CRM syncs, AI agents, [and much more](/connect/use-cases/), all in a few minutes.
-
-## Visual overview
-
-Here's a high-level overview of how Connect works with your app:
-
-
-
-
-Here's how Connect sits in your frontend and backend, and communicates with Pipedream's API:
-
-
-
-
-## Getting started
-
-We'll walk through these steps below with an interactive demo that lets you see an execute the code directly in the docs.
-
-
-
-### Configure your environment
-
-You'll need to do two things to add Pipedream Connect to your app:
-
-1. [Connect to the Pipedream API from your server](#generate-a-short-lived-token). This lets you make secure calls to the Pipedream API to initiate the account connection flow and retrieve account credentials.
-2. [Add the Pipedream SDK to your frontend](#connect-your-users-account) or redirect your users to [a Pipedream-hosted URL](/connect/connect-link/) to start the account connection flow.
-
-If you're building your own app, you'll need to provide these credentials to the environment, or retrieve them from your secrets store:
-
-```bash
-# Used to authorize requests to the Pipedream API
-PIPEDREAM_CLIENT_ID=your_client_id
-PIPEDREAM_CLIENT_SECRET=your_client_secret
-PIPEDREAM_ENVIRONMENT=development
-PIPEDREAM_PROJECT_ID=your_project_id
-```
-
-### Create a project in Pipedream
-
-1. Open an existing Pipedream project or create a new one at [pipedream.com/projects](https://pipedream.com/projects)
-2. Click the **Settings** tab, then copy your **Project ID**
-
-### Create a Pipedream OAuth client
-
-Pipedream uses OAuth to authorize requests to the REST API. To create an OAuth client:
-
-1. Visit the [API settings](https://pipedream.com/settings/api) for your workspace
-2. Create a new OAuth client and note the client ID and secret
-
-You'll need these when configuring the SDK and making API requests.
-
-### Generate a short-lived token
-
-To securely initiate account connections for your users, you'll need to generate a short-lived token for your users and use that in the [account connection flow](#connect-your-users-account). See [the docs on Connect tokens](/connect/tokens/) for a general overview of why we need to create tokens and scope them to end users.
-
-Check out the code below **try it yourself**:
-
-
-
-
-
-Once you have a token, return it to your frontend to start the account connection flow for the user, or redirect them to a Pipedream-hosted URL with [Connect Link](#or-use-connect-link).
-
-
-Refer to the API docs for [full set of parameters you can pass](/connect/api/#create-token) in the `ConnectTokenCreate` call.
-
-
-### Connect your user's account
-
-You have two options when connecting an account for your user:
-
-1. [Use the Pipedream SDK](#use-the-pipedream-sdk-in-your-frontend) in your frontend
-2. [Use Connect Link](#or-use-connect-link) to deliver a hosted URL to your user
-
-#### Use the Pipedream SDK in your frontend
-
-Use this method when you want to handle the account connection flow yourself, in your app. For example, you might want to show a **Connect Slack** button in your app that triggers the account connection flow.
-
-First, install the [Pipedream SDK](https://www.npmjs.com/package/@pipedream/sdk) in your frontend:
-
-```bash
-npm i --save @pipedream/sdk
-```
-
-When the user connects an account in your product, [pass the token from your backend](#generate-a-short-lived-token) and call `connectAccount`. This opens a Pipedream iFrame that guides the user through the account connection.
-
-Try the interactive demo below to connect an account after generating a token in the previous step:
-
-
-
-#### Or use Connect Link
-
-Use this option when you can't execute JavaScript or open an iFrame in your environment (e.g. mobile apps) and instead want to share a URL with your end users.
-
-The Connect Link URL opens a Pipedream-hosted page, guiding users through the account connection process. The URL is specific to the user and expires after 4 hours.
-
-After generating a token in the [step above](#generate-a-short-lived-token), you can use the resulting Connect Link URL. Try it below:
-
-
-
-
-
-
-Make sure to add the `app` parameter to the end of the URL to specify the app.
-
-Check out the [full API docs](/connect/api/#create-token) for all parameters you can pass when creating tokens, including setting redirect URLs for success or error cases.
-
-
-### Make authenticated requests
-
-Now that your users have connected an account, you can use their auth in one of a few ways:
-
-1. [Expose 10k+ tools](/connect/components/) to your AI app or agent and call them on behalf of your customers
-2. [Send custom requests](/connect/api-proxy/) to any one of the 2500+ APIs using the Connect API proxy
-3. [Use Pipedream's visual workflow builder](/connect/workflows/) to define complex logic to run on behalf of your users
-4. [Embed Pipedream components directly in your app](/connect/components/) to run actions and triggers on their behalf
-
-### Deploy your app to production
-
-- Test end to end in [development](/connect/managed-auth/environments/)
-- Ship to production!
-
-
-
-
diff --git a/docs-v2/pages/connect/managed-auth/tokens.mdx b/docs-v2/pages/connect/managed-auth/tokens.mdx
deleted file mode 100644
index 18b4860940115..0000000000000
--- a/docs-v2/pages/connect/managed-auth/tokens.mdx
+++ /dev/null
@@ -1,32 +0,0 @@
-import Callout from '@/components/Callout'
-
-# Connect Tokens
-
-When you initiate account connection for your end users, you must either:
-
-1. Generate a secure, short-lived token scoped to the end user, or
-2. Use the [Connect Link](/connect/connect-link/) feature to generate a URL that guides the user through the account connection flow without any frontend work on your side.
-
-Here, we'll show you how to generate tokens for your users and return that to your frontend, passing that to the account connection flow.
-
-Use tokens when you want to handle the account connection flow yourself, in your app's UI. For example, you might want to show a **Connect Slack** button in your app that triggers the account connection flow for Slack, or launch the flow in a modal.
-
-
-Connect tokens currently have a 4-hour expiry, and can only be used once.
-
-
-## Creating a token
-
-See docs on [the `/tokens` endpoint](/connect/api/#create-token) to create new tokens.
-
-## Webhooks
-
-When you generate a token, you can specify a `webhook_uri` where Pipedream will deliver updates on the account connection flow. This is useful if you want to update your UI based on the status of the account connection flow, get a log of errors, and more.
-
-[See the webhooks docs](/connect/webhooks/) for more information.
-
-## Tokens are scoped to end users and environments
-
-When you [create a new Connect token](/connect/api/#create-token), you pass an `external_user_id` and an `environment`. See the docs on [environments](/connect/managed-auth/environments/) for more information on passing environment in the SDK and API.
-
-Tokens are scoped to this user and environment. When the user successfully connects an account with that token, it will be saved for that `external_user_id` in the specified environment.
diff --git a/docs-v2/pages/connect/managed-auth/troubleshooting.mdx b/docs-v2/pages/connect/managed-auth/troubleshooting.mdx
deleted file mode 100644
index c21c987b4a6a6..0000000000000
--- a/docs-v2/pages/connect/managed-auth/troubleshooting.mdx
+++ /dev/null
@@ -1,51 +0,0 @@
-import Callout from '@/components/Callout'
-
-# Troubleshooting
-
-Below are some common errors when connecting your users' accounts via Pipedream Connect.
-
-### Error creating a Connect token
-
->Error creating token: Error: Failed to obtain OAuth token: Response Error: 401 Unauthorized
-
-Authorization to the Pipedream API failed when creating the Connect token. Double-check the client ID or secret for your [Pipedream OAuth client](/connect/api/#authentication).
-
-### Error connecting an account
-
-Most errors when connecting an account are related to the [Connect token](/connect/tokens/), which Pipedream validates from the Connect iFrame.
-
-#### Common errors
-
->This link has expired. Please request a new one from the app developer.
-
->This session has expired. Please refresh the page to try again.
-
-#### Troubleshooting steps
-
-Pipedream typically returns an explicit error message in the HTTP response of the token validation network call directly from the iFrame in the client. To check for errors, start the account connection flow in a browser and open the developer console to view the network requests.
-
-Filter for requests to
-
-```
-https://api.pipedream.com/v1/connect/tokens
-```
-
-and check the response for error messages.
-
-#### Token validation errors
-
->The Pipedream Connect token is invalid. Please generate a new one and try again.
-
-Connect tokens expire, and are only able to be used once. Try generating a new token and try again.
-
->App not found. Please check your app id.
-
-Double-check the app slug you're passing [when connecting your user's account](/connect/managed-auth/quickstart/#connect-your-users-account).
-
-### Connection failed. Please retry or contact support.
-
-The user may have closed the OAuth popup window without completing authorization.
-
-
-If you're still have trouble or hitting an error that isn't listed here, [get in touch with us](https://pipedream.com/support). We'd love to help.
-
diff --git a/docs-v2/pages/connect/managed-auth/users.mdx b/docs-v2/pages/connect/managed-auth/users.mdx
deleted file mode 100644
index c8cac54fd2273..0000000000000
--- a/docs-v2/pages/connect/managed-auth/users.mdx
+++ /dev/null
@@ -1,72 +0,0 @@
-import Callout from '@/components/Callout'
-
-# Users
-
-To view or delete your users' connected accounts:
-
-1. Open your project in Pipedream
-2. Click the **Connect** tab on the left
-3. Click the **Users** tab at the top
-
-You'll see a list of all users, their connected accounts, and the option to delete any accounts from the UI. You can also retrieve and delete all your users via the API ([see the docs for reference](/connect/api/)).
-
-## Connecting multiple accounts
-
-Users can connect multiple accounts for many different apps, or for the same app (e.g., I can connect my Notion and Gmail accounts, as well as accounts for multiple Slack workspaces).
-
-When retrieving account information [from the API](/connect/api/#accounts), you can filter by `external_user_id` and / or `app` to retrieve information for a specific user and / or app.
-
-
-When running workflows on behalf of an end user, right now you can only use a single account for a given app. If there are multiple connected accounts for that app, **Pipedream will use the most recently created account**. See more info on running workflows for your users [here](/connect/workflows).
-
-
-## Deleting accounts
-
-You can delete an individual connected account or an entire user and all associated accounts and resources from the UI or via the API.
-
-### Deleting individual connected accounts
-
-If you need more granular control, you can delete specific connected accounts instead of removing the entire user.
-
-#### From the UI
-1. Open the project in Pipedream
-2. Navigate to the **Users** tab under **Connect**
-3. Find the user whose accounts you want to manage
-4. View all connected accounts for that user in the expanded section
-5. Click the **Delete** button next to the specific account you want to remove
-
-This allows for more granular control over which integrated services remain accessible to your users.
-
-#### Via the API
-You can delete specific connected accounts programmatically:
-
-```bash
-curl -X DELETE "https://api.pipedream.com/v1/connect/{project_id}/accounts/{account_id}" \
- -H "Authorization: Bearer {access_token}"
-```
-
-For complete API details including TypeScript and Node.js examples, [refer to the API reference](/connect/api/#delete-connected-account).
-
-### Deleting users
-
-When you delete a user, all of their connected accounts and deployed resources (if any) are permanently removed from Pipedream. There are two ways to delete users:
-
-#### From the UI
-1. Open the project in Pipedream
-2. Navigate to the **Users** tab under **Connect**
-3. Locate the user you wish to delete
-4. Click the **Delete User** button from the overlow menu at the end of the row
-
-
-Deleting a user is permanent and cannot be undone. All connected accounts for this user will be permanently removed.
-
-
-#### Via the API
-You can delete a user programmatically using the Pipedream API:
-
-```bash
-curl -X DELETE "https://api.pipedream.com/v1/connect/{project_id}/users/{external_user_id}" \
- -H "Authorization: Bearer {access_token}"
-```
-
-For complete API details including TypeScript and Node.js examples, see the [API reference](/connect/api/#delete-external-user).
\ No newline at end of file
diff --git a/docs-v2/pages/connect/managed-auth/webhooks.mdx b/docs-v2/pages/connect/managed-auth/webhooks.mdx
deleted file mode 100644
index 51caf5c9e892f..0000000000000
--- a/docs-v2/pages/connect/managed-auth/webhooks.mdx
+++ /dev/null
@@ -1,54 +0,0 @@
-# Connect Webhooks
-
-When you [generate a Connect token](/connect/managed-auth/quickstart/#generate-a-short-lived-token), you can pass a `webhook_uri` parameter. Pipedream will send a POST request to this URL when the user completes the connection flow, or if an error occurs at any point. [See the API docs](/connect/api/#create-token) for details.
-
-## Webhook events
-
-- `CONNECTION_SUCCESS` - Sent when the user successfully connects their account
-- `CONNECTION_ERROR` - Sent when an error occurs during the connection flow
-
-## Webhook payload
-
-### Successful connection
-
-Please note that user credentials are not sent in the webhook request. To retrieve credentials, use the [Connect API to fetch the account](/connect/api/#retrieve-account-details-by-id) using the `account.id` provided in the webhook payload.
-
-```json
-{
- "event": "CONNECTION_SUCCESS",
- "connect_token": "abc123",
- "environment": "production",
- "connect_session_id": 123,
- "account": {
- "id": "apn_abc123",
- "name": "My Slack workspace",
- "external_id": "U123456",
- "healthy": true,
- "dead": false,
- "app": {
- "id": "app_abc123",
- "name_slug": "slack",
- "name": "Slack",
- "auth_type": "oauth",
- "description": "Slack is a channel-based messaging platform",
- "img_src": "https://assets.pipedream.net/icons/slack.svg",
- "custom_fields_json": [],
- "categories": "Communication",
- },
- "created_at": "2021-09-01T00:00:00Z",
- "updated_at": "2021-09-01T00:00:00Z",
- }
-}
-```
-
-### Error
-
-```json
-{
- "event": "CONNECTION_ERROR",
- "connect_token": "abc123",
- "environment": "production",
- "connect_session_id": 123,
- "error": "You've hit your limit on the number of external users you can connect."
-}
-```
diff --git a/docs-v2/pages/connect/mcp/_meta.tsx b/docs-v2/pages/connect/mcp/_meta.tsx
deleted file mode 100644
index dd772dd48299e..0000000000000
--- a/docs-v2/pages/connect/mcp/_meta.tsx
+++ /dev/null
@@ -1,6 +0,0 @@
-export default {
- "index": "Overview",
- "developers": "Developers",
- "openai": "OpenAI",
- "users": "Consumers",
-} as const
diff --git a/docs-v2/pages/connect/mcp/developers.mdx b/docs-v2/pages/connect/mcp/developers.mdx
deleted file mode 100644
index fcdbecf68f6c7..0000000000000
--- a/docs-v2/pages/connect/mcp/developers.mdx
+++ /dev/null
@@ -1,434 +0,0 @@
-import { Callout, Steps, Tabs } from 'nextra/components'
-
-# Add Pipedream MCP to your app or agent
-
-Add Pipedream's MCP server to your application or agent to make tool calls on behalf of your users to {process.env.PUBLIC_APPS}+ APIs and 10,000+ tools.
-
-
-Pipedream Connect includes built-in user authentication for [every MCP server](https://mcp.pipedream.com), which means you don't need to build any authorization flows or deal with token storage and refresh in order to make authenticated requests on behalf of your users. [Learn more here](/connect/mcp/developers/#user-account-connections).
-
-
-## Overview
-
-Pipedream's MCP server code is [publicly available on GitHub](https://github.com/PipedreamHQ/pipedream/blob/master/modelcontextprotocol/README.md), and you have two options for using Pipedream's MCP server in your app:
-
-1. [Use Pipedream's remote MCP server](#use-pipedreams-remote-mcp-server)
-2. [Self-host Pipedream's MCP server](#self-host-pipedreams-mcp-server)
-
-
-**Try out Pipedream MCP in our demo app: [chat.pipedream.com](https://chat.pipedream.com)**
-
-
-### Pipedream concepts to understand
-
-The MCP server accepts two route params:
-
-**`external_user_id`**
-
-- This is your user’s ID, in your system: whatever you use to uniquely identify them
-- Requests made for that user ID are coupled to that end user and their connected accounts ([learn more](/connect/api/#external-users))
-
-**`app`**
-
-- The app's "name slug" (the unique identifier for the app)
-- [See below](#discover-available-mcp-servers) for learn how to discover available apps
-
-## Getting started
-
-### Prerequisites
-
-To use either the remote or self-hosted MCP server, you'll need:
-
-1. A [Pipedream account](https://pipedream.com/auth/signup)
-2. A [Pipedream project](/projects/#creating-projects). Accounts connected via MCP will be stored here.
-3. [Pipedream OAuth credentials](/rest-api/auth/#oauth)
-
-#### Set up your environment
-
-Set the following environment variables:
-
-```bash
-PIPEDREAM_CLIENT_ID=your_client_id
-PIPEDREAM_CLIENT_SECRET=your_client_secret
-PIPEDREAM_PROJECT_ID=your_project_id # proj_xxxxxxx
-PIPEDREAM_ENVIRONMENT=development # development | production
-```
-
-Learn more about [environments in Pipedream Connect](/connect/managed-auth/environments).
-
-### Authentication
-
-#### Developer authentication
-
-Your application authenticates with Pipedream using client credential OAuth. [See below](#api-authentication) for details.
-
-#### User account connections
-
-One of the core features of Pipedream Connect and our MCP product is the ability for your users to easily connect their accounts without having to build any of the authorization flow or handle token storage.
-
-You can handle account connections in one of two ways in your app:
-
-##### Add a button in your UI
-- Use Pipedream's [frontend SDK](/connect/managed-auth/quickstart/#use-the-pipedream-sdk-in-your-frontend) to let users connect their account directly in your UI
-- You can see an example of this when you connect any account in [mcp.pipedream.com](https://mcp.pipedream.com)
-
-##### Return a link
-- Use [Connect Link ](/connect/managed-auth/quickstart/#or-use-connect-link) to let your users open a Pipedream hosted page to connect their account
-- There's no implementation required for this option since it's already handled by Pipedream's MCP server
-- If a user doesn't have a connected account that's required for a given tool call, the server will return a URL in the tool call response:
-
-```
-https://pipedream.com/_static/connect.html?token=ctok_xxxxxxx&connectLink=true&app={appSlug}
-```
-
-### Discover available MCP servers
-
-Pipedream provides [{process.env.PUBLIC_APPS}+ APIs as MCP servers](https://mcp.pipedream.com). Each server corresponds to an app integration (like Notion, Gmail, or Slack) and has its own specific set of tools that you can expose to OpenAI.
-
-
-
-```javascript
-import { createBackendClient } from "@pipedream/sdk/server";
-
-// Initialize the Pipedream SDK client
-const pd = createBackendClient({
- environment: PIPEDREAM_ENVIRONMENT,
- credentials: {
- clientId: PIPEDREAM_CLIENT_ID,
- clientSecret: PIPEDREAM_CLIENT_SECRET,
- },
- projectId: PIPEDREAM_PROJECT_ID
-});
-
-// Get all available apps (paginated)
-const apps = await pd.getApps();
-
-// Each app has these key properties:
-// - name_slug: Used in the MCP server URL (e.g., "notion", "gmail", "slack")
-// - name: Display name (e.g., "Notion", "Gmail", "Slack")
-```
-
-
-```javascript
-import { createBackendClient } from "@pipedream/sdk/server";
-
-// Initialize the Pipedream SDK client
-const pd = createBackendClient({
- environment: PIPEDREAM_ENVIRONMENT,
- credentials: {
- clientId: PIPEDREAM_CLIENT_ID,
- clientSecret: PIPEDREAM_CLIENT_SECRET,
- },
- projectId: PIPEDREAM_PROJECT_ID
-});
-
-// Search by app name
-const notionApps = await pd.getApps({ q: "notion" });
-const gmailApps = await pd.getApps({ q: "gmail" });
-const slackApps = await pd.getApps({ q: "slack" });
-```
-
-
-
-
-### Use Pipedream's remote MCP server
-
-
-The remote MCP server is in beta, and we're looking for feedback. During the beta, the API is subject to change.
-
-
-#### Supported transport types
-
-The Pipedream MCP server supports both SSE and streamable HTTP transport types dynamically, with no configuration required by the developer or MCP client.
-
-#### Tool modes
-
-Pipedream MCP supports two methods for interacting with tools:
-
-1. [Sub-agent](#sub-agent-mode) (default)
-2. [Tools only](#tools-only-mode)
-
-##### Sub-agent mode
-
-When using Pipedream MCP in sub-agent mode, all tools you expose to your LLM take a single input: **`instruction`**.
-
-The Pipedream MCP server passes the **`instruction`** to an LLM to handle the configuration of the main tool using a set of agents with narrowly scoped sets of instructions and additional tools to aid in the configuration and execution of the top-level tool.
-
-- The benefit with this approach is that sub-agent mode abstracts a lot of the complexity with handling things like [remote options](/connect/components/#configure-the-component) and [dynamic props](/connect/components/#configure-dynamic-props), especially for MCP clients that don't automatically [reload tools](https://modelcontextprotocol.io/docs/concepts/tools#tool-discovery-and-updates).
-- However, one downside is that you hand over some of the control and observability to Pipedream in this model.
-
-
-While in Beta, Pipedream eats the costs of the LLM tokens in sub-agent mode. We'll likely pass these costs on to the developer in the future.
-
-
-
-View the schema for the `google_sheets-add-single-row` tool in **sub-agent mode**
-
-```javascript
-{
- "name": "GOOGLE_SHEETS-ADD-SINGLE-ROW",
- "description": "Add a single row of data to Google Sheets. [See the documentation](https://developers.google.com/sheets/api/reference/rest/v4/spreadsheets.values/append)",
- "inputSchema": {
- "type": "object",
- "properties": {
- "instruction": {
- "type": "string"
- }
- },
- "required": [
- "instruction"
- ],
- "additionalProperties": false,
- "$schema": "http://json-schema.org/draft-07/schema#"
- }
-}
-```
-
-
-
-##### Tools-only mode
-
-To handle all tool configuration and calling yourself, you should use `tools-only` mode.
-
-###### Configuring dynamic props
-
-- Tools that use [dynamic props](/connect/api/#reload-component-props) can't be configured in one shot, as the full prop definition isn’t known until certain inputs are defined.
-- For example, the full set of props for `google_sheets-add-single-row` aren't known until you configure the `hasHeaders` prop. Once we know if there's a header row, we can retrieve the column names from the header row and make them available as props that can be configured.
-- As you call each tool, you should reload the available tools for the server, and we'll expose meta tools for configuration, such as `begin_configuration_google_sheets-add-single-row`, which causes the rest of the tools to be removed and only tools relevant to the configuration are exposed.
-
-{/* Need to add info for devs to step through async options */}
-{/* Need to add more detailed info for devs to step through dynamic props */}
-
-
-View the schema for the `google_sheets-add-single-row` tool in **tools-only mode**
-
-```javascript
-{
- "name": "google_sheets-add-single-row",
- "description": "Add a single row of data to Google Sheets. [See the documentation](https://developers.google.com/sheets/api/reference/rest/v4/spreadsheets.values/append)",
- "inputSchema": {
- "type": "object",
- "properties": {
- "drive": {
- "anyOf": [
- {
- "anyOf": [
- {
- "not": {}
- },
- {
- "type": "string"
- }
- ]
- },
- {
- "type": "null"
- }
- ],
- "description": "Defaults to `My Drive`. To select a [Shared Drive](https://support.google.com/a/users/answer/9310351) instead, select it from this list.\n\nYou can use the \"CONFIGURE_COMPONENT\" tool using these parameters to get the values. key: google_sheets-add-single-row, propName: drive"
- },
- "sheetId": {
- "type": "string",
- "description": "Select a spreadsheet or provide a spreadsheet ID\n\nYou can use the \"CONFIGURE_COMPONENT\" tool using these parameters to get the values. key: google_sheets-add-single-row, propName: sheetId"
- },
- "worksheetId": {
- "type": "string",
- "description": "Select a worksheet or enter a custom expression. When referencing a spreadsheet dynamically, you must provide a custom expression for the worksheet.\n\nYou can use the \"CONFIGURE_COMPONENT\" tool using these parameters to get the values. key: google_sheets-add-single-row, propName: worksheetId"
- },
- "hasHeaders": {
- "type": "boolean",
- "description": "If the first row of your document has headers, we'll retrieve them to make it easy to enter the value for each column. Note: When using a dynamic reference for the worksheet ID (e.g. `{{steps.foo.$return_value}}`), this setting is ignored."
- }
- },
- "required": [
- "sheetId",
- "worksheetId",
- "hasHeaders"
- ],
- "additionalProperties": false,
- "$schema": "http://json-schema.org/draft-07/schema#"
- }
-}
-```
-
-
-
-{/*  */}
-
-#### Base URL
-
-```
-https://remote.mcp.pipedream.net
-```
-
-#### API Authentication
-
-To authenticate requests to Pipedream's MCP server, you need to include an access token with every HTTP request. Here's how to get it:
-
-
-
-```javascript
-import { createBackendClient } from "@pipedream/sdk/server";
-
-// Initialize the Pipedream SDK client
-const pd = createBackendClient({
- environment: PIPEDREAM_ENVIRONMENT,
- credentials: {
- clientId: PIPEDREAM_CLIENT_ID,
- clientSecret: PIPEDREAM_CLIENT_SECRET,
- },
- projectId: PIPEDREAM_PROJECT_ID
-});
-
-// Get access token for MCP server auth
-const accessToken = await pd.rawAccessToken();
-
-console.log(accessToken);
-```
-
-
-```bash
-curl -s -X POST https://api.pipedream.com/v1/oauth/token \
- -H "Content-Type: application/json" \
- -d '{
- "grant_type": "client_credentials",
- "client_id": "'$PIPEDREAM_CLIENT_ID'",
- "client_secret": "'$PIPEDREAM_CLIENT_SECRET'"
- }'
-```
-
-
-
-#### Params
-
-- Below are params that you should send with every HTTP request to Pipedream's MCP server.
-- To enable broad support for various MCP clients, you can pass most of these params via HTTP headers **or** as query params on the URL.
-
-
-
-
-| Header | Query Param | Value | Required? |
-|--------|---------|------------------------------|--------|
-| `x-pd-project-id` | `projectId` | `proj_xxxxxxx` | Yes |
-| `x-pd-environment` | `environment` | `development`, `production` | Yes |
-| `x-pd-external-user-id` | `externalUserId` | `` | Yes |
-| `x-pd-app-slug` | `app` | `linear`, `notion`, etc | Yes |
-| `x-pd-tool-mode` | `toolMode` | `sub-agent`, `tools-only` | No Defaults to `sub-agent` |
-| `x-pd-oauth-app-id` | Must be passed as header | `oa_xxxxxxx` More info [here](/connect/managed-auth/oauth-clients) | No |
-| `x-pd-webhook-uri` | Must be passed as header | More info [here](/connect/managed-auth/webhooks) | No |
-| `x-pd-error-redirect-uri` | Must be passed as header | More info [here](/connect/managed-auth/connect-link/#success-and-error-redirect-urls) | No |
-| `x-pd-success-redirect-uri` | Must be passed as header | More info [here](/connect/managed-auth/connect-link/#success-and-error-redirect-urls) | No |
-
-
-#### Example request
-
-```javascript
-import { StreamableHTTPClientTransport } from "@modelcontextprotocol/sdk/client/streamableHttp.js";
-import { createBackendClient } from "@pipedream/sdk/server";
-
-// Initialize the Pipedream SDK client
-const pd = createBackendClient({
- environment: PIPEDREAM_ENVIRONMENT,
- credentials: {
- clientId: PIPEDREAM_CLIENT_ID,
- clientSecret: PIPEDREAM_CLIENT_SECRET,
- },
- projectId: PIPEDREAM_PROJECT_ID
-});
-
-// Retrieve your developer access token via the Pipedream SDK
-const accessToken = await pd.rawAccessToken();
-const serverUrl = MCP_SERVER_URL || `https://remote.mcp.pipedream.net`;
-
-const transport = new StreamableHTTPClientTransport(new URL(serverUrl), {
- requestInit: {
- headers: {
- "Authorization": `Bearer ${accessToken}`,
- "x-pd-project-id": PIPEDREAM_PROJECT_ID, // proj_xxxxxxx
- "x-pd-environment": PIPEDREAM_ENVIRONMENT, // development | production
- "x-pd-external-user-id": EXTERNAL_USER_ID, // the user's ID from your system
- "x-pd-app-slug": APP_SLUG, // notion, linear, gmail, etc
- "x-pd-oauth-app-id": OAUTH_APP_ID, // oa_xxxxxxx, include if using a custom OAuth client
-
- }
- }
-});
-```
-
-### Self-host Pipedream's MCP server
-
-Hosting the MCP server locally or in your app will expose these routes:
-
-- `GET /:external_user_id/:app`: app-specific connection endpoint
-- `POST /:external_user_id/:app/messages`: app-specific message handler
-
-#### Using the `Dockerfile`
-
-You can build and run the container from the [reference implementation](https://github.com/PipedreamHQ/pipedream/blob/master/modelcontextprotocol/Dockerfile):
-
-```console
-> docker build -t pipedream-connect .
-> docker run -d --name pd-mcp -p 3010:3010 --env-file .env pipedream-connect:latest
-```
-
-#### Running the server using npx
-
-```bash
-npx @pipedream/mcp sse
-```
-
-
-The current npx package only supports the `sse` transport type, `http` is coming soon.
-
-
-#### Running the server locally
-
-You can also run the server locally and even customize the MCP server for your specific requirements:
-
-```bash
-# Clone the repo
-git clone https://github.com/PipedreamHQ/pipedream
-cd pipedream/modelcontextprotocol
-
-# Install dependencies
-pnpm install
-
-# Start the server
-pnpm dev:http
-```
-
-See the [MCP server README](https://github.com/PipedreamHQ/pipedream/blob/master/modelcontextprotocol/README.md) for detailed instructions on customization options.
-
-#### Debugging
-
-You can use the optional env var `PD_SDK_DEBUG` to print out all the requests and responses going to the Connect API:
-
-```bash
-PD_SDK_DEBUG=true pnpm dev:http
-```
-
-### Using the MCP inspector
-
-The [MCP inspector](https://modelcontextprotocol.io/docs/tools/inspector) can be helpful when debugging tool calls.
-
-```bash
-npx @modelcontextprotocol/inspector
-```
-
-Enter the server URL:
-
-If using Pipedream's remote server:
-
-```
-https://remote.mcp.pipedream.net/{external_user_id}/{app_slug}
-```
-
-If running locally:
-
-```
-http://localhost:3010/{external_user_id}/{app_slug}
-```
-
-## Using custom tools
-
-Publish [custom tools](/connect/components/custom-tools) to your workspace to use them in the Pipedream MCP server for the relevant app. This lets you add custom and unique functionality that may not be available in the public registry.
diff --git a/docs-v2/pages/connect/mcp/index.mdx b/docs-v2/pages/connect/mcp/index.mdx
deleted file mode 100644
index b5b119514c12c..0000000000000
--- a/docs-v2/pages/connect/mcp/index.mdx
+++ /dev/null
@@ -1,76 +0,0 @@
-import Callout from '@/components/Callout'
-
-# MCP Servers
-
-Pipedream offers dedicated MCP ([Model Context Protocol](https://modelcontextprotocol.io/)) servers for all of our {process.env.PUBLIC_APPS}+ integrated apps. These servers enable AI assistants like Claude to securely access and interact with thousands of APIs through a standardized communication protocol, performing real-world tasks using your or your users' accounts.
-
-{/*  */}
-
-Pipedream's MCP servers are powered by [Pipedream Connect](https://pipedream.com/docs/connect) and include:
-
-- Access to {process.env.PUBLIC_APPS}+ apps and APIs through a consistent interface
-- Over 10,000 pre-built tools
-- Fully-managed OAuth and secure credential storage
-
-
-User credentials are encrypted at rest and all requests are made through Pipedream's servers, never directly exposing credentials to AI models. Read more about how we protect user credentials [here](/privacy-and-security/#third-party-oauth-grants-api-keys-and-environment-variables).
-
-
-## Available MCP servers
-
-Pipedream provides MCP servers for all our [supported apps](https://mcp.pipedream.com/). Each app has its own dedicated MCP server with tools specific to that API. For example:
-
-- **[Slack](https://mcp.pipedream.com/app/slack)**: Send messages, manage channels, create reminders, and more
-- **[GitHub](https://mcp.pipedream.com/app/github)**: Create issues, manage pull requests, search repositories
-- **[Google Sheets](https://mcp.pipedream.com/app/google-sheets)**: Read and write data, format cells, create charts
-
-Explore the full list of available MCP servers at [mcp.pipedream.com](https://mcp.pipedream.com).
-
-## Getting started
-
-You can use Pipedream's MCP servers in two ways:
-
-1. **[As an end user](/connect/mcp/users)**: Connect your accounts through our hosted MCP servers at [mcp.pipedream.com](https://mcp.pipedream.com)
-2. **[As a developer](/connect/mcp/developers)**: Host your own MCP servers for your application or organization
-
-
-**Try out Pipedream MCP in our demo app: [chat.pipedream.com](https://chat.pipedream.com)**
-
-
-## Security
-
-Like the rest of Pipedream Connect, MCP servers follow strict security best practices:
-
-- **Credential isolation**: Each user's credentials are stored securely and isolated from other users
-- **No credential exposure**: Credentials are never exposed to AI models or your client-side code
-- **Revocable access**: Users can revoke access to their connected accounts at any time
-
-For more information on security, see our [security documentation](/privacy-and-security/).
-
-## Use cases
-
-Pipedream MCP enables AI assistants to perform a wide range of tasks:
-
-- **Productivity automation**: Schedule meetings, send emails, create documents
-- **Data analysis**: Query databases, analyze spreadsheets, generate reports
-- **Content creation**: Post social media updates, create marketing materials
-- **Customer support**: Respond to inquiries, create tickets, update CRM records
-- **Developer workflows**: Create issues, review code, deploy applications
-
-## Supported tools
-
-- Each MCP server provides tools specific to that app. Tools are automatically created based on Pipedream's [registry of pre-built actions](https://github.com/PipedreamHQ/pipedream/tree/master/components)
-- You can find the supported tools for a given app on its MCP server page or search for specific actions here: [pipedream.com/expore](https://pipedream.com/explore#popular-actions)
-
-## Pricing
-
-- Anyone can use Pipedream's hosted MCP servers for their own use **for free**
-- To deploy Pipedream's MCP servers to your own app or agent, you can get started for free in development mode
-- [Visit the pricing page](https://pipedream.com/pricing?plan=Connect) when you're ready to ship to production
-
-## Additional resources
-
-- [Pipedream hosted MCP servers](https://mcp.pipedream.com)
-- [MCP official spec](https://modelcontextprotocol.io/)
-- [Pipedream MCP reference implementation](https://github.com/PipedreamHQ/pipedream/tree/master/modelcontextprotocol)
-- [MCP inspector tool](https://modelcontextprotocol.io/docs/tools/inspector/)
\ No newline at end of file
diff --git a/docs-v2/pages/connect/mcp/openai.mdx b/docs-v2/pages/connect/mcp/openai.mdx
deleted file mode 100644
index e3c7e3819c95c..0000000000000
--- a/docs-v2/pages/connect/mcp/openai.mdx
+++ /dev/null
@@ -1,180 +0,0 @@
-import { Callout, Tabs, Steps } from 'nextra/components'
-import TemporaryTokenGenerator from '@/components/TemporaryTokenGenerator'
-import AppSearchDemo from '@/components/AppSearchDemo'
-
-# Using Pipedream MCP with OpenAI
-
-Access {process.env.PUBLIC_APPS}+ APIs and 10,000+ tools in OpenAI using Pipedream Connect. MCP makes it easy to extend the capabilities of any LLM or agent, and Pipedream offers drop-in support for [calling tools in OpenAI](https://platform.openai.com/docs/guides/tools-remote-mcp).
-
-
-Pipedream Connect includes built-in user authentication for [every MCP server](https://mcp.pipedream.com), which means you don't need to build any authorization flows or deal with token storage and refresh in order to make authenticated requests on behalf of your users. [Learn more here](/connect/mcp/developers/#user-account-connections).
-
-
-## Testing in OpenAI's API Playground
-
-OpenAI provides an API playground for developers to test prompts and tool calling, which provides an easy way to test Pipedream MCP. Get started below.
-
-
-
-
-
-#### Open the playground
-
-Navigate to [OpenAI's playground](https://platform.openai.com/playground/prompts?models=gpt-4.1) and sign in with your OpenAI account.
-
-#### Add Pipedream MCP
-
-Click the **Create** button in the **Tools** section, then select **Pipedream**.
-
-#### Enter your access token
-
-
-
-#### Select an app
-
-
-
-#### Click **Connect**
-
-Enter a prompt and start chatting!
-
-
-
-
-Refer to the instructions below when you're ready to use Pipedream MCP in your app.
-
-
-## Using Pipedream MCP in your app
-
-
-
-### Set up your environment
-
-To use Pipedream MCP with your own users, you need the following:
-
-1. A [Pipedream account](https://pipedream.com/auth/signup)
-2. A [Pipedream project](/projects/#creating-projects) (accounts connected via MCP will be stored here)
-3. [Pipedream OAuth credentials](/rest-api/auth/#oauth)
-
-
-These are requirements for you, the developer. Your users do **not** need to sign up for Pipedream in order to connect their accounts in your app or agent.
-
-
-Now set the following environment variables (learn more about environments in Pipedream Connect [here](/connect/managed-auth/environments/)):
-
-```bash
-OPENAI_API_KEY=your_openai_api_key
-PIPEDREAM_CLIENT_ID=your_client_id
-PIPEDREAM_CLIENT_SECRET=your_client_secret
-PIPEDREAM_PROJECT_ID=your_project_id # proj_xxxxxxx
-PIPEDREAM_ENVIRONMENT=development # development | production
-```
-
-### Discover available MCP servers
-
-[See here](/connect/mcp/developers/#discover-available-mcp-servers) for guidance on discovering the apps Pipedream has available as MCP servers.
-
-### Generate a model response in OpenAI with Pipedream MCP
-
-Below is an end to end example showing how to:
-1. Initialize the Pipedream SDK
-2. Find the relevant MCP server
-3. Send a prompt to OpenAI with the MCP server as a tool call
-
-
-
-```javascript
-import OpenAI from 'openai';
-import { createBackendClient } from "@pipedream/sdk/server";
-
-// Initialize the Pipedream SDK client
-const pd = createBackendClient({
- environment: PIPEDREAM_ENVIRONMENT,
- credentials: {
- clientId: PIPEDREAM_CLIENT_ID,
- clientSecret: PIPEDREAM_CLIENT_SECRET,
- },
- projectId: PIPEDREAM_PROJECT_ID
-});
-
-// Find the app to use for the MCP server
-// For this example, we'll use Notion
-const apps = await pd.getApps({ q: "notion" });
-const appSlug = apps.data[0].name_slug; // e.g., "notion",
-
-// Get access token for MCP server auth
-const accessToken = await pd.rawAccessToken();
-
-// Send the unique ID that you use to identify this user in your system
-const externalUserId = 'abc-123'; // Used in MCP URL to identify the user
-
-// Initialize OpenAI client
-const client = new OpenAI();
-
-// Make the OpenAI request with the MCP server
-const response = await client.responses.create({
- model: 'gpt-4.1',
- tools: [
- {
- type: 'mcp',
- server_label: appSlug,
- server_url: `https://remote.mcp.pipedream.net`,
- headers: {
- Authorization: `Bearer ${accessToken}`,
- "x-pd-project-id": PIPEDREAM_PROJECT_ID,
- "x-pd-environment": PIPEDREAM_ENVIRONMENT,
- "x-pd-external-user-id": externalUserId,
- "x-pd-app-slug": appSlug,
- },
- require_approval: 'never'
- }
- ],
- input: 'Summarize my most recently created Notion doc for me and help draft an email to our customers'
-});
-
-console.log(response);
-```
-
-
-```bash
-# Step 1: Get access token from Pipedream
-ACCESS_TOKEN=$(curl -s -X POST https://api.pipedream.com/v1/oauth/token \
- -H "Content-Type: application/json" \
- -d '{
- "grant_type": "client_credentials",
- "client_id": "'$PIPEDREAM_CLIENT_ID'",
- "client_secret": "'$PIPEDREAM_CLIENT_SECRET'"
- }' | jq -r .access_token)
-
-# Step 2: Find the app to use for MCP server
-# Search for the Notion app
-APP_SLUG=$(curl -s -X GET "https://api.pipedream.com/v1/apps?q=notion" \
- -H "Authorization: Bearer $ACCESS_TOKEN" | jq -r '.data[0].name_slug')
-
-# Step 3: Make request to OpenAI with MCP tool
-curl -X POST https://api.openai.com/v1/responses \
- -H "Content-Type: application/json" \
- -H "Authorization: Bearer $OPENAI_API_KEY" \
- -d '{
- "model": "gpt-4.1",
- "input": "Summarize my most recently created Notion doc for me and help draft an email to our customers",
- "tools": [
- {
- "type": "mcp",
- "server_label": "Notion",
- "server_url": "https://remote.mcp.pipedream.net",
- "headers": {
- "Authorization": "Bearer '"$ACCESS_TOKEN"'",
- "x-pd-project-id": "'"$PIPEDREAM_PROJECT_ID"'",
- "x-pd-environment": "'"$PIPEDREAM_ENVIRONMENT"'",
- "x-pd-external-user-id": "abc-123",
- "x-pd-app-slug": "'"$APP_SLUG"'"
- },
- "require_approval": "never"
- }
- ]
- }'
-```
-
-
-
\ No newline at end of file
diff --git a/docs-v2/pages/connect/mcp/users.mdx b/docs-v2/pages/connect/mcp/users.mdx
deleted file mode 100644
index b9405c55f852a..0000000000000
--- a/docs-v2/pages/connect/mcp/users.mdx
+++ /dev/null
@@ -1,38 +0,0 @@
-
-import { Steps } from 'nextra/components'
-
-# Using Pipedream MCP as an end user
-
-Set up MCP servers to use with any compatible MCP client, like Claude Desktop, Windsurf, Cursor, and VS Code.
-
-
-
-#### Configure MCP servers and connect accounts
-
-- Navigate to [mcp.pipedream.com](https://mcp.pipedream.com) and sign in or create an account (this is a separate account from pipdream.com)
-- Browse available MCP servers
-- Follow the configuration instructions on the server page to add it to your preferred MCP client
-- Connect your account (you can do this in the UI or the AI will prompt you when you first use a tool)
-
-#### Start chatting
-
-Ask the LLM or agent to perform tasks using your connected services. For example:
-
-- "Send a message to my team in Slack"
-- "Create a new issue in GitHub"
-- "Add data to my Google Sheet"
-
-The AI will refer to the configured tools available in its MCP servers to complete the task.
-
-#### Get things done
-
-With MCP-enabled AI, you can:
-
-- Send messages and manage communication
-- Create and update documents
-- Query and analyze data
-- Automate workflows across your favorite tools
-
-All using your own connected accounts with full control and security.
-
-
\ No newline at end of file
diff --git a/docs-v2/pages/connect/migrating-from-project-keys-to-oauth.mdx b/docs-v2/pages/connect/migrating-from-project-keys-to-oauth.mdx
deleted file mode 100644
index d7f1a2d254daf..0000000000000
--- a/docs-v2/pages/connect/migrating-from-project-keys-to-oauth.mdx
+++ /dev/null
@@ -1,103 +0,0 @@
-import Callout from '@/components/Callout'
-import { Steps, Tabs } from 'nextra/components'
-
-# Migrating to the 1.0 SDK
-
-
-This guide is only relevant if:
-
-- You used the `0.x` version of the JavaScript SDK
-- You authenticated with the Pipedream API using project keys
-
-
-## What changed
-
-- In the `0.x` version of the SDK and the original Connect API, you could authenticate with keys scoped to a specific project. In the `1.x` version of the SDK, you need to authenticate with [OAuth clients](/rest-api/auth/#oauth).
-- The `createClient` method from both the browser and Node.js SDKs has been replaced with separate methods: `createFrontendClient` and `createBackendClient`, respectively.
-- The `connectTokenCreate` method has been renamed `createConnectToken`
-- New SDK methods: `projectInfo`, `invokeWorkflow`, and more
-
-## How to migrate
-
-
-
-### Create an OAuth client
-
-Follow the instructions [here](/rest-api/auth/#oauth) to create an OAuth client.
-
-### Update your SDK version
-
-Change the `@pipedream/sdk` version in your `package.json`:
-
-```json
-{
- "dependencies": {
- "@pipedream/sdk": "^1.0.0"
- }
-}
-```
-
-Then run
-
-```bash
-npm install
-```
-
-### Update your project key references to use your OAuth client
-
-You may have been referencing project keys in environment variables or other config. Replace these with references to the OAuth client you created in step 1.
-
-For example, `process.env.PIPEDREAM_PROJECT_KEY` should be replaced with `process.env.PIPEDREAM_OAUTH_CLIENT_ID`, and `process.env.PIPEDREAM_PROJECT_SECRET` should be replaced with `process.env.PIPEDREAM_OAUTH_CLIENT_SECRET`.
-
-### Update your SDK code
-
-#### Frontend client
-
-You'll need to make two changes to your frontend client code:
-
-1. Replace references to `@pipedream/sdk/browser`. Instead, import directly from `@pipedream/sdk`.
-2. Change the `createClient` method to `createFrontendClient`.
-
-```typescript
-import { createFrontendClient } from "@pipedream/sdk/browser"
-const pd = createFrontendClient()
-```
-
-#### Backend client
-
-You'll need to make three changes to your backend code:
-
-1. Change the `createClient` method to `createBackendClient`.
-2. Pass your OAuth client ID and secret to the `createBackendClient` method, removing references to project keys.
-3. Change any token create method references from `connectTokenCreate` to `createConnectToken`.
-
-
-
-```typescript
-import { createBackendClient, HTTPAuthType } from "@pipedream/sdk/server";
-
-// These secrets should be saved securely and passed to your environment
-const pd = createBackendClient({
- credentials: {
- clientId: "YOUR_CLIENT_ID",
- clientSecret: "YOUR_CLIENT_SECRET",
- },
-});
-```
-
-
-```javascript
-import { createBackendClient } from "@pipedream/sdk/server";
-
-// These secrets should be saved securely and passed to your environment
-const pd = createBackendClient({
- credentials: {
- clientId: "YOUR_CLIENT_ID",
- clientSecret: "YOUR_CLIENT_SECRET",
- },
-});
-```
-
-
-
-
diff --git a/docs-v2/pages/connect/use-cases.mdx b/docs-v2/pages/connect/use-cases.mdx
deleted file mode 100644
index 68b55a9f33527..0000000000000
--- a/docs-v2/pages/connect/use-cases.mdx
+++ /dev/null
@@ -1,41 +0,0 @@
-# Pipedream Connect use cases
-
-Developers use Pipedream Connect to build customer-facing API integrations into their products. It lets you build [in-app messaging](#in-app-messaging), [CRM syncs](#crm-syncs), [AI-driven products](#ai-products), and much more, all in a few minutes.
-
-## Core value to app developers
-
-In 20 years of building software, we've seen a common theme. No matter the product, your customers end up needing to connect your app to third-party APIs.
-
-You might build real-time notifications with messaging apps, export customer data to databases or spreadsheets, ingest data from CRMs, or connect to any of the thousands of APIs and SaaS services your customers are using. These features are often tied to large contracts and Enterprise customers.
-
-But it's hard to justify the engineering effort required for these integrations. They're a distraction from the core product. Once built, they're hard to maintain. You have to securely manage auth, learn the nuances of each API, and improve the integration as your customers ask for new features. Managing these integrations is a huge context switch for any engineer. Most teams have trouble scaling this.
-
-At Pipedream, our customers tell us a variant of this story every day. Pipedream Connect helps you build these features **in minutes**, for any app.
-
-Once you add the core integration UI to your app, non-technical employees can also help to manage [the workflows](/workflows/building-workflows/) that drive the backend logic. For example, if you're building [in-app messaging](#in-app-messaging), once you add the UI to let users connect Slack, Discord, and other tools, anyone on your team can build workflows that format and deliver messages to your customers. This is a huge plus for many orgs: you still get to build a bespoke UI, directly in your app, suited to your customer need. But anyone in the company can collaborate on the workflows that power it.
-
-## Value to your customers
-
-Shipping new customer-facing integrations can happen in minutes.
-
-## How customers are using Connect
-
-### In-app messaging
-
-Most apps build email notifications, since it's easy. But most teams work in Slack, Discord, Microsoft Teams, or a variety of other messaging apps. Sometimes you want to send messages via SMS or push notifications. It's hard to maintain integrations for all the apps your customers are using. Pipedream makes this simple.
-
-### CRM syncs
-
-Sync data between your app and Salesforce, HubSpot, or any CRM. Pipedream lets your customers connect their accounts directly from your UI, define the sync logic, and run it on Pipedream's infrastructure. Pull data from your customers' CRMs in real-time, or push data from your app.
-
-### AI products
-
-Talk to any AI API or LLM. Build chat apps or interact in real-time with your users. Or run asynchronous tasks in the background, like image classification, article summarization, or other tasks you want to offload to an AI agent. You can use built-in functions like [`$.flow.suspend`](/workflows/building-workflows/code/nodejs/rerun/#flowsuspend) to send a message to your team, or directly to the user, to approve specific actions.
-
-### Spreadsheet integrations
-
-Sync data between your app and Google Sheets, Airtable, or any spreadsheet. Pipedream Connect lets your users auth with any app, select the sheet, and define custom sync logic.
-
-### And much more
-
-Building an app with Pipedream and want to be profiled here (anonymously or otherwise)? Email connect@pipedream.com to let us know!
diff --git a/docs-v2/pages/connect/workflows.mdx b/docs-v2/pages/connect/workflows.mdx
deleted file mode 100644
index 09acdb19673cb..0000000000000
--- a/docs-v2/pages/connect/workflows.mdx
+++ /dev/null
@@ -1,434 +0,0 @@
-import { Steps, Tabs } from 'nextra/components'
-import ArcadeEmbed from '@/components/ArcadeEmbed'
-import Callout from '@/components/Callout'
-import Image from 'next/image'
-
-# Running workflows for your end users
-
-Just like you can build and run internal [workflows](/workflows/building-workflows/) for your team, **you can run workflows for [your end users](/connect/api/#external-users), too**.
-
-Whether you're building well-defined integrations or autonomous AI agents, workflows provide a powerful set of tools for running [code](/workflows/building-workflows/code/) or [pre-defined actions](/workflows/building-workflows/actions/) on behalf of your users. Pipedream's UI makes it easy to build, test, and [debug](/workflows/building-workflows/inspect/) workflows.
-
-## What are workflows?
-
-
-
-
-
-Workflows are sequences of [steps](/workflows/#steps) [triggered by an event](/workflows/building-workflows/triggers/), like an HTTP request, or new rows in a Google sheet.
-
-You can use [pre-built actions](/workflows/building-workflows/actions/) or custom [Node.js](/workflows/building-workflows/code/nodejs/), [Python](/workflows/building-workflows/code/python/), [Golang](/workflows/building-workflows/code/go/), or [Bash](/workflows/building-workflows/code/bash/) code in workflows and connect to any of our {process.env.PUBLIC_APPS} integrated apps.
-
-Workflows also have built-in:
-
-- [Flow control](/workflows/building-workflows/control-flow/)
-- [Concurrency and throttling](/workflows/building-workflows/settings/concurrency-and-throttling/)
-- [Key-value stores](/workflows/data-management/data-stores/)
-- [Error handling](/workflows/building-workflows/errors/)
-- [VPCs](/workflows/vpc/)
-- [And more](https://pipedream.com/pricing)
-
-Read [the quickstart](/quickstart/) to learn more.
-
-## Getting started
-
-
-
-### Create a workflow
-
-[Create a new workflow](/workflows/building-workflows/) or open an existing one.
-
-### Add an HTTP trigger
-
-To get started building workflows for your end users:
-
-1. Add an [HTTP trigger](/workflows/building-workflows/triggers/#http) to your workflow
-2. Generate a test event with the required headers:
- - `x-pd-environment: development`
- - `x-pd-external-user-id: {your_external_user_id}`
-
-See the [Triggering your workflow](#triggering-your-workflow) section below for details on securing your workflow with OAuth and deploying triggers on behalf of your end users.
-
-### Configure accounts to use your end users' auth
-
-When you configure [pre-built actions](/workflows/building-workflows/actions/) or [custom code that connects to third-party APIs](/workflows/building-workflows/code/nodejs/auth/), you can link accounts in one of two ways:
-
-1. **Use your own account**: If you're connecting to an API that uses your own API key or developer account — for example, a workflow that connects to the OpenAI API or a PostgreSQL database — click the **Connect account** button to link your own, static account.
-
-
-
-
-
-2. **Use your end users' auth**: If you're building a workflow that connects to your end users' accounts — for example, a workflow that sends a message with your user's Slack account — you can select the option to **Use end user's auth via Connect**:
-
-
-
-
-
-When you trigger the workflow, Pipedream will look up the corresponding account for the end user whose user ID you provide [when invoking the workflow](#invoke-the-workflow).
-
-### Connect a test account
-
-To run an end-to-end test as an end user, you need to have users and connected accounts in your project. If you already have a **development** account linked, you can skip this step.
-
-If you don't, the fastest way to do this is [on the **Users** tab](/connect/managed-auth/users/) in your Pipedream project:
-- You'll see there's a button to **Connect account**
-- Go through the flow and make sure to create the account in **development** mode
-- Note the **external user ID** of the account you just connected, you'll need it in the next step
-
-
-
-
-### Generate a test request
-
-Test events are critical for developing workflows effectively. Without a test event, you won't be able to test your workflow end to end in the builder, see the shape of the event data that triggers the workflow, and the lookup to use your end user's auth won't work.
-
-To generate a test event, click **Send Test Event** in the trigger, and fill in the event data. This will trigger the workflow and allow you to test the workflow end to end in the builder.
-
-
-Make sure to include these headers in your test request:
-- `x-pd-environment: development`
-- `x-pd-external-user-id: {your_external_user_id}`
-
-
-
-
-
-
-### Deploy your workflow
-
-When you're done with the workflow, click **Deploy** at the top right.
-
-### Invoke the workflow
-
-If you're using TypeScript or a JavaScript runtime, [install the Pipedream SDK](/connect/api/#installing-the-typescript-sdk). Pipedream also provides an HTTP API for invoking workflows (see example below).
-
-```bash
-npm i @pipedream/sdk
-```
-
-To invoke workflows, you'll need:
-
-1. The OAuth client ID and secret from your OAuth client in **step 2 above** (if configured)
-2. Your [Project ID](/projects/#finding-your-projects-id)
-3. Your workflow's HTTP endpoint URL
-4. The [external user ID](/connect/api/#external-users) of the user you'd like to run the workflow for
-5. The [Connect environment](/connect/managed-auth/environments/) tied to the user's account
-
-Then invoke the workflow like so:
-
-
-
-```typescript
-import { createBackendClient, HTTPAuthType } from "@pipedream/sdk/server";
-
-// These secrets should be saved securely and passed to your environment
-const pd = createBackendClient({
- environment: "development", // change to production if running for a test production account, or in production
- credentials: {
- clientId: "{oauth_client_id}",
- clientSecret: "{oauth_client_secret}",
- },
- projectId: "{your_project_id}"
-});
-
-await pd.invokeWorkflowForExternalUser(
- "{your_endpoint_url}", // pass the endpoint ID or full URL here
- "{your_external_user_id}" // The end user's ID in your system
- {
- method: "POST",
- body: {
- message: "Hello World"
- }
- },
- HTTPAuthType.OAuth // Will automatically send the Authorization header with a fresh token
-)
-```
-
-
-```javascript
-import { createBackendClient } from "@pipedream/sdk/server";
-
-// These secrets should be saved securely and passed to your environment
-const client = createBackendClient({
- environment: "development", // change to production if running for a test production account, or in production
- credentials: {
- clientId: "{oauth_client_id}",
- clientSecret: "{oauth_client_secret}"
- },
- projectId: "{your_project_id}"
-});
-
-const response = await client.invokeWorkflowForExternalUser(
- "{your_endpoint_url}", // pass the endpoint ID or full URL here
- "{your_external_user_id}" // The end user's ID in your system
- {
- method: "POST",
- body: {
- message: "Hello World"
- }
- }
-)
-```
-
-
-```bash
-# First, obtain an OAuth access token
-curl -X POST https://api.pipedream.com/v1/oauth/token \
- -H "Content-Type: application/json" \
- -d '{
- "grant_type": "client_credentials",
- "client_id": "{oauth_client_id}",
- "client_secret": "{oauth_client_secret}"
- }'
-
-# The response will include an access_token. Use it in the Authorization header below.
-
-curl -X POST https://{your-endpoint-url} \
- -H "Content-Type: application/json" \
- -H "Authorization: Bearer {access_token}" \
- -H 'X-PD-External-User-ID: {your_external_user_id}' \
- -H 'X-PD-Environment: development' \ # 'development' or 'production'
- -d '{
- "message": "Hello, world"
- }'
-```
-
-
-
-
-## Configuring workflow steps
-
-When configuring a workflow that's using your end user's auth instead of your own, you'll need to define most configuration fields manually in each step.
-
-For example, normally when you connect your own Google Sheets account directly in the builder, you can dynamically list all of the available sheets from a dropdown.
-
-
-
-
-
-However, when running workflows on behalf of your end users, that UI configuration doesn't work, since the Google Sheets account to use is determined at the time of workflow execution. So instead, you'll need to configure these fields manually.
-
-- Either make sure to pass all required configuration data when invoking the workflow, or add a step to your workflow that retrieve it from your database, etc. For example:
-
-```bash
-curl -X POST https://{your-endpoint-url} \
- -H "Content-Type: application/json" \
- -H "Authorization: Bearer {access_token}" \
- -H 'X-PD-External-User-ID: {your_external_user_id}' \
- -H 'X-PD-Environment: development' \ # 'development' or 'production'
- -d '{
- "slackChannel": "#general",
- "messageText": "Hello, world!",
- "gitRepo": "AcmeOrg/acme-repo",
- "issueTitle": "Test Issue"
- }' \
-```
-
-- Then in the Slack and GitHub steps, you'd reference those fields directly:
-
-
-
-
-
-
-We plan to improve this interface in the future, and potentially allow developers to store end user metadata and configuration data alongside the connected account for your end users, so you won't need to pass the data at runtime. [Let us know](https://pipedream.com/support) if that's a feature you'd like to see.
-
-
-## Testing
-
-To test a step using the connected account of one of your end users in the builder, you'll need a few things to be configured so that your workflow knows which account to use.
-
-**Make sure you have an external user with the relevant connected account(s) saved to your project:**
-- Go to the **[Users tab](/connect/managed-auth/users/)** in the **Connect** section of your project to confirm
-- If not, either connect one from your application or [directly in the UI](#connect-a-test-account)
-
-**Pass the environment and external user ID:**
-1. Once you've added an HTTP trigger to the workflow, click **Generate test event**
-
-2. Click on the **Headers** tab
-3. Make sure `x-pd-environment` is set (you'll likely want to `development`)
-4. Make sure to also pass `x-pd-external-user-id` with the external user ID of the user you'd like to test with
-
-
-
-## Triggering your workflow
-
-You have two options for triggering workflows that run on behalf of your end users:
-
-1. [Invoke via HTTP webhook](#http-webhook)
-2. [Deploy an event source](#deploy-an-event-source) (Slack, Gmail, etc.)
-
-### HTTP Webhook
-
-The most common way to trigger workflows is via HTTP webhook. We strongly recommend [creating a Pipedream OAuth client](/rest-api/auth#creating-an-oauth-client) and authenticating inbound requests to your workflows.
-
-
-This section refers to authenticating requests to the Pipedream API. For info on how managed auth works for your end users, refer to the [managed auth quickstart](/connect/managed-auth/quickstart).
-
-
-To get started, you'll need:
-
-- [OAuth client ID and secret](/rest-api/auth#creating-an-oauth-client) for authenticating with the Pipedream API
-- Your [project ID](/projects/#finding-your-projects-id)
-- Your workflow's HTTP endpoint URL
-- The [external user ID](/connect/api/#external-users) of your end user
-- The [Connect environment](/connect/managed-auth/environments/)
-
-
-
-```typescript
-import { createBackendClient, HTTPAuthType } from "@pipedream/sdk/server";
-
-// These secrets should be saved securely and passed to your environment
-const pd = createBackendClient({
- environment: "development", // change to production if running for a test production account, or in production
- credentials: {
- clientId: "{oauth_client_id}",
- clientSecret: "{oauth_client_secret}",
- },
- projectId: "{your_project_id}"
-});
-
-await pd.invokeWorkflowForExternalUser(
- "{your_endpoint_url}", // pass the endpoint ID or full URL here
- "{your_external_user_id}" // The end user's ID in your system
- {
- method: "POST",
- body: {
- message: "Hello World"
- }
- },
- HTTPAuthType.OAuth // Will automatically send the Authorization header with a fresh token
-)
-```
-
-
-```javascript
-import { createBackendClient } from "@pipedream/sdk/server";
-
-// These secrets should be saved securely and passed to your environment
-const client = createBackendClient({
- environment: "development", // change to production if running for a test production account, or in production
- credentials: {
- clientId: "{oauth_client_id}",
- clientSecret: "{oauth_client_secret}"
- },
- projectId: "{your_project_id}"
-});
-
-const response = await client.invokeWorkflowForExternalUser(
- "{your_endpoint_url}", // pass the endpoint ID or full URL here
- "{your_external_user_id}" // The end user's ID in your system
- {
- method: "POST",
- body: {
- message: "Hello World"
- }
- }
-)
-```
-
-
-```bash
-# First, obtain an OAuth access token
-curl -X POST https://api.pipedream.com/v1/oauth/token \
- -H "Content-Type: application/json" \
- -d '{
- "grant_type": "client_credentials",
- "client_id": "{oauth_client_id}",
- "client_secret": "{oauth_client_secret}"
- }'
-
-# The response will include an access_token. Use it in the Authorization header below.
-
-curl -X POST https://{your-endpoint-url} \
- -H "Content-Type: application/json" \
- -H "Authorization: Bearer {access_token}" \
- -H 'X-PD-External-User-ID: {your_external_user_id}' \
- -H 'X-PD-Environment: development' \ # 'development' or 'production'
- -d '{
- "message": "Hello, world"
- }'
-```
-
-
-
-### Deploy an event source
-
-You can [programmatically deploy triggers via the API](/connect/api/#deploy-trigger) to have events from integrated apps (like [new Slack messages](https://pipedream.com/apps/slack/triggers/new-message-in-channels) or [new emails in Gmail](https://pipedream.com/apps/gmail/triggers/new-email-received)) trigger your workflow. This allows you to:
-
-- Deploy triggers for specific users from your application
-- Configure trigger parameters per-user
-- Manage deployed triggers via the API
-
-See the [API documentation](/connect/api/#deploy-trigger) for detailed examples of deploying and managing triggers.
-
-## OAuth client requirements
-
-
-When using OAuth apps (like Google Drive, Slack, Notion, etc.) with your end users, you **must use your own custom OAuth clients**.
-
-
-1. Register your own OAuth application with each third-party service (Google Drive, Slack, etc.)
-2. [Add your OAuth client credentials to Pipedream](/apps/oauth-clients#configuring-custom-oauth-clients)
-3. Make sure to include your `oauthAppId` when connecting accounts for your end users
-
-For detailed instructions, see the [OAuth Clients documentation](/connect/managed-auth/oauth-clients#using-a-custom-oauth-client).
-
-## Troubleshooting
-
-For help debugging issues with your workflow, you can return verbose error messages to the caller by configuring the HTTP trigger to **Return a custom response from your workflow**.
-
-
-
-With that setting enabled on the trigger, below is an example of [this](/connect/workflows/#required-account-not-found-for-external-user-id) error:
-
-```bash
-curl -X POST https://{your-endpoint-url} \
- -H 'Content-Type: application/json' \
- -H 'Authorization: Bearer {access_token}' \
- -H "x-pd-environment: development" \
- -H "x-pd-external-user-id: abc-123" \
- -d '{
- "slackChannel": "#general",
- "messageText": "Hello, world! (sent via curl)",
- "hubSpotList": "prospects",
- "contactEmail": "foo@example.com"
- }' \
-Pipedream Connect Error: Required account for hubspot not found for external user ID abc-123 in development
-```
-
-### Common errors
-
-#### No external user ID passed, but one or more steps require it
-- One or more steps in the workflow are configured to **Use end user's auth via Connect**, but no external user ID was passed when invoking the workflow.
-- [Refer to the docs](#invoke-the-workflow) to make sure you're passing external user ID correctly when invoking the workflow.
-
-#### No matching external user ID
-- There was an external user ID passed, but it didn't match any users in the project.
-- Double-check that the external user ID that you passed when invoking the workflow matches one either [in the UI](/connect/managed-auth/users/) or [via the API](/connect/api/#accounts).
-
-#### Required account not found for external user ID
-- The external user ID was passed when invoking the workflow, but the user doesn't have a connected account for one or more of the apps that are configured to use it in this workflow execution.
-- You can check which connected accounts are available for that user [in the UI](/connect/managed-auth/users/) or [via the API](/connect/api/#accounts).
-
-#### Running workflows for your users in production requires a higher tier plan
-- Anyone is able to run workflows for your end users in `development`.
-- Visit the [pricing page](https://pipedream.com/pricing?plan=Connect) for the latest info on using Connect in production.
-
-## Known limitations
-
-#### Workflows can only use a single external user's auth per execution
-- Right now you cannot invoke a workflow to loop through many external user IDs within a single execution.
-- You can only run a workflow for a single external user ID at a time (for now).
-
-#### The external user ID to use during execution must be passed in the triggering event
-- You can't run a workflow on a timer for example, and look up the external user ID to use at runtime.
-- The external user ID must be passed in the triggering event, typically via [HTTP trigger](#invoke-the-workflow).
-
-#### Cannot use multiple accounts for the same app during a single execution
-- If a user has multiple accounts for the same app (tied to a single external user), **Pipedream will use the most recently created account**.
-- Learn about [managing connected accounts](/connect/managed-auth/users/) for your end users.
\ No newline at end of file
diff --git a/docs-v2/pages/deprecated/airtable/_meta.tsx b/docs-v2/pages/deprecated/airtable/_meta.tsx
deleted file mode 100644
index 1d008b16d92f2..0000000000000
--- a/docs-v2/pages/deprecated/airtable/_meta.tsx
+++ /dev/null
@@ -1,6 +0,0 @@
-export default {
- "oauth-migration-2024-02": {
- display: "children",
- },
-} as const
-
diff --git a/docs-v2/pages/deprecated/airtable/oauth-migration-2024-02/_meta.tsx b/docs-v2/pages/deprecated/airtable/oauth-migration-2024-02/_meta.tsx
deleted file mode 100644
index 0f563ee9fd4e2..0000000000000
--- a/docs-v2/pages/deprecated/airtable/oauth-migration-2024-02/_meta.tsx
+++ /dev/null
@@ -1,6 +0,0 @@
-export default {
- "index": {
- "display": "hidden",
- },
-} as const
-
diff --git a/docs-v2/pages/deprecated/airtable/oauth-migration-2024-02/index.mdx b/docs-v2/pages/deprecated/airtable/oauth-migration-2024-02/index.mdx
deleted file mode 100644
index e8657ebf14970..0000000000000
--- a/docs-v2/pages/deprecated/airtable/oauth-migration-2024-02/index.mdx
+++ /dev/null
@@ -1,105 +0,0 @@
-# Update to the Airtable Integration on Pipedream (January 2024)
-
-Effective February 1st 2024, Airtable's API Key authentication method will be deprecated. To learn more about this change, please visit Airtable’s [dedicated support page](https://support.airtable.com/docs/airtable-api-key-deprecation-notice).
-
-### How will this impact my workflows?
-
-Starting February 1st 2024, all Pipedream steps using the legacy Airtable (API Key) integration including triggers and actions will no longer be able to authenticate with Airtable.
-
-### What do I need to do?
-
-
-1. **Reconnect your Airtable account**:
-
-- Visit the [accounts page in Pipedream](https://pipedream.com/accounts)
-- Search for Airtable and connect your account
-- This newer Pipedream integration uses OAuth instead of an API Key
-
-
-
-You can determine which workflows are connected to the legacy Airtable (API Key) app by expanding the account row on your Airtable (API Key) account connection.
-
-
-2. **Update Your Workflows**:
-
-- After reconnecting to Airtable via OAuth, you'll need to update your existing workflows that use the legacy Airtable app.
-- Remove any legacy Airtable sources and re-add the source using the new Airtable app
-- Remove any legacy Airtable actions and re-add them using the new Airtable app
-
-
-
-3. **If you're using Airtable in code:**
-
-- Change any of your code steps to reference `airtable_oauth` instead of `airtable`.
-- Modify your authorization headers accordingly
-
-In Node.js, you would modify your authorization header from this:
-
- `"Authorization": ${this.airtable.$auth.api_key}`
-
- to
-
-``` Authorization: `Bearer ${this.airtable_oauth.$auth.oauth_access_token}` ```
-
-This is what your Node.js code step may have looked like before:
-
-``` javascript
-import { axios } from "@pipedream/platform"
-export default defineComponent({
- props: {
- airtable: {
- type: "app",
- app: "airtable",
- }
- },
- async run({steps, $}) {
- return await axios($, {
- url: `https://api.airtable.com/v0/meta/whoami`,
- headers: {
- "Authorization": `${this.airtable.$auth.api_key}`,
- "Content-Type": `application/json`,
- },
- })
- },
-})
-
-```
-
-And here's an example of the updated code step that uses the updated app, **`airtable_oauth`** instead with the updated authentication method:
-
-``` javascript
-import { axios } from "@pipedream/platform"
-export default defineComponent({
- props: {
- airtable_oauth: {
- type: "app",
- app: "airtable_oauth",
- }
- },
- async run({steps, $}) {
- return await axios($, {
- url: `https://api.airtable.com/v0/meta/whoami`,
- headers: {
- Authorization: `Bearer ${this.airtable_oauth.$auth.oauth_access_token}`,
- },
- })
- },
-})
-
-```
-
-In Python, here's a snippet of what your code step might have looked like before:
-``` python
-def handler(pd: "pipedream"):
- headers = {"X-Airtable-Api-Key": f'{pd.inputs["airtable"]["$auth"]["api_key"]}'}
-```
-
-And here's the updated Python code step, with **`airtable_oauth`** and the appropriate token and authorization headers:
-``` python
-def handler(pd: "pipedream"):
- token = f'{pd.inputs["airtable_oauth"]["$auth"]["oauth_access_token"]}'
- authorization = f'Bearer {token}'
- headers = {"Authorization": authorization}
-```
-
-3. **Test and redeploy your workflows.**
\ No newline at end of file
diff --git a/docs-v2/pages/deprecated/migrate-from-v1/_meta.tsx b/docs-v2/pages/deprecated/migrate-from-v1/_meta.tsx
deleted file mode 100644
index 4705b04ff8795..0000000000000
--- a/docs-v2/pages/deprecated/migrate-from-v1/_meta.tsx
+++ /dev/null
@@ -1,5 +0,0 @@
-export default {
- "index": {
- "display": "hidden",
- },
-} as const
diff --git a/docs-v2/pages/deprecated/migrate-from-v1/index.mdx b/docs-v2/pages/deprecated/migrate-from-v1/index.mdx
deleted file mode 100644
index 539bc50551368..0000000000000
--- a/docs-v2/pages/deprecated/migrate-from-v1/index.mdx
+++ /dev/null
@@ -1,353 +0,0 @@
-import Callout from '@/components/Callout'
-
-# Migrate from v1
-
-
-Never used Pipedream v1? You can skip this migration guide and read on about [Steps](/workflows/#steps).
-
-
-We are excited to announce that we have launched a new version (v2) of Pipedream to all new and existing users!
-
-We have re-imagined the UX from the ground up, made the product much easier to use and have improved performance. In addition, we are introducing powerful new features including:
-
-- **Edit & test** your workflows in separate editing mode without impacting live workflows
-- **Support for multiple languages** including [Node.js](/workflows/building-workflows/code/nodejs/), [Python](/workflows/building-workflows/code/python/), [Bash](/workflows/building-workflows/code/bash/) and [Go](/workflows/building-workflows/code/go/)
-- **Granular testing** including the ability to test individual steps and more
-- **Multiple triggers** are now supported per workflow
-- **Improved** forms for easier configuration and streamlined building
-
-_Get Started_
-
-- Read our [quickstart](/quickstart/), [docs](/), and/or [FAQ](#faq)
-- Have questions? Ask here or on [Discourse](https://pipedream.com/community)
-- As a reminder, all integration components are source-available and [hosted on GitHub](https://github.com/PipedreamHQ/pipedream). You can [contribute your own components](/components/contributing/) or improve existing ones.
-
-Watch a demo:
-
-
-
-Your browser does not support the video tag.
-
-
-And this is just the beginning — we have an exciting roadmap planned for 2022 including workflow serialization and GitHub integration.
-
-## New Builder Overview
-
-Fundamentally, the new version of the workflow builder gives you the same abilities to build, test and deploy your workflows. However, you'll notice some differences in how to build workflows.
-
-### Building vs Inspecting
-
-In v1, building your workflow and inspecting past events were visible in the same view. The new v2 builder has improved this by separating the workflow **Builder** from the workflow events **Inspector**.
-
-Switch between these contexts using the menu in the top right of the workflow builder.
-
-
-
-When you first open a deployed workflow, you're presented with the **Inspector** version of the workflow. In this view you can see logs of past events, and select them to see the results of each step in the workflow.
-
-
-
-To edit the workflow, click the **Edit** button in the top right hand corner. This will close the inspector and allow you to edit your workflow without the distraction of logs from the production flow.
-
-
-
-### Testing Changes
-
-In the v1 workflow builder, you had to deploy the whole workflow to test changes to any step. To make changes to a deployed workflow, you had to made edits on the live version.
-
-We've improved this flow. Now you can test your changes with a new **Test** button without effecting the live version of the workflow.
-
-In addition to testing single steps, you can now selectively test portions of your workflow (e.g. all steps above or below the selected step):
-
-
-
-#### Testing individual events
-
-Not only can you test portions of your workflow in isolation, but you can also select a specific event to run against your workflow.
-
-In the **Test Trigger** portion of your trigger, you can select a past event seen by the workflow and build your steps against it - without having to re-trigger it manually:
-
-
-
-### Deploying Changes
-
-After you're happy with your changes, **deploy** them to your production workflow. Just click the **Deploy** button in the top right hand corner of the screen.
-
-After deploying your changes, your workflow is now live, and any changes you made will run against incoming events.
-
-## Node.js Code Step Changes
-
-There are a few changes to the Node.js code steps that you should know about. Some functions have been renamed for more clarity, and we've aligned the Node.js code steps closer to the [Component API](/components/contributing/).
-
-### Code Scaffolding Format
-
-In v1, the Node.js steps would automatically scaffold new Node.js steps in this format:
-
-```javascript
-async (event, steps) {
- // your code could be entered in here
-}
-```
-
-In v2, the new scaffolding is wrapped with a new `defineComponent` function:
-
-```javascript
-defineComponent({
- async run({ steps, $ }) {
- // your code can be entered here
- },
-});
-```
-
-1. The `event` from the trigger step is still available, but exposed in `steps.trigger.event` instead.
-2. The `$` variable has been passed into the `run` function where your code is executed.
-
-You can think of the `$` as the entry point to built in Pipedream functions. In v1, this special functions included `$end`, `$respond`, etc. In v2, these have been remapped to `$.flow.exit` and `$.respond` respectively.
-
-These changes unify workflow development to the [Component API](/components/contributing/api/) used by pre-built actions and also allows the [defining of props](#params-vs-props) from within your code steps.
-
-### Using 3rd party packages
-
-In v1, you had to define your imports of 3rd party packages within the scaffolded function:
-
-```javascript
-async (event, steps) {
- const axios = require('axios');
- // your code could be entered in here
-}
-```
-
-Now, in v2 workflows you can `import` your packages in the top of the step, just like a normal Node.js module:
-
-```javascript
-import axios from "axios";
-
-defineComponent({
- async run({ steps, $ }) {
- // your code can be entered here
- },
-});
-```
-
-Allowing all of the scaffolding to be edited opens up the ability to [pass props](/workflows/building-workflows/code/nodejs/#passing-props-to-code-steps) into your Node.js code steps, which we'll cover later.
-
-### Step Exports
-
-In v1, you could assign arbitrary properties to `this` within a Node.js step and the properties would be available as step exports:
-
-```javascript
-// this step's name is get_customer_data
-async (event, steps) {
- this.name = 'Dylan';
- // downstream steps could use steps.get_customer_data.name to retrieve 'Dylan'
-}
-```
-
-In v2 you use $.export to export data, instead::
-
-```javascript
-// this step's name is get_customer_data
-defineComponent({
- async run({ steps, $ }) {
- $.export("name", "Dylan");
- // downstream steps can use steps.get_customer_data.name to retrieve 'Dylan'
- },
-});
-```
-
-
-Using `return` to export data is the same from v1 to v2. You can still `return` data, and it will be available to other steps with `steps.[stepName].$return_value.
-
-
-### Exiting a workflow early
-
-In v1, the `$end` function can be called to exit a flow early:
-
-```javascript
-async (event, steps) {
- $end('Exiting the whole workflow early');
- console.log('I will never run');
-}
-```
-
-In v2, this same function is available, but under `$.flow.exit`:
-
-```javascript
-defineComponent({
- async run({ steps, $ }) {
- return $.flow.exit("Exiting the workflow early");
- console.log("I will never run");
- },
-});
-```
-
-### Params vs Props
-
-In the v1 builder, you could pass input to steps using `params`. In the v2 builder, you pass input using [props](/components/contributing/api/#component-api).
-
-You can still enter free text and select data from other steps in pre-built actions. Also can add your own custom props that accept input like strings, numbers and more just like in v1.
-
-#### Defining params
-
-In the v1 workflow builder, params could be structured or unstructured. The params schema builder allowed you to add your own custom params to steps.
-
-In v2, you can add your own custom props without leaving the code editor.
-
-```javascript
-export default defineComponent({
- props: {
- firstName: {
- type: "string",
- label: "Your first name",
- },
- },
- async run({ steps, $ }) {
- console.log(this.firstName);
- },
-});
-```
-
-In the example, you added a firstName string prop. The value assigned to this prop in the workflow builder.
-
-Additionally, Pipedream renders a visual component in the step **Configuration** to accept this input:
-
-
-
-### Connecting apps
-
-In the v2 builder, you can connect apps with your code using [props](/components/contributing/api/#props).
-
-Above the `run` function, define an app prop that your Node.js step integrates with:
-
-```javascript
-import { axios } from "@pipedream/platform";
-
-export default defineComponent({
- props: {
- slack: {
- type: "app",
- app: "slack",
- },
- },
- async run({ steps, $ }) {
- return await axios($, {
- url: `https://slack.com/api/users.profile.get`,
- headers: {
- Authorization: `Bearer ${this.slack.$auth.oauth_access_token}`,
- },
- });
- },
-});
-```
-
-After testing the step, you'll see the Slack app will appear in the **Configuration** section on the left hand side. In this section you can choose which Slack account you'd like to use in the step.
-
-
-
-### HTTP Response
-
-You can still return an HTTP response from an HTTP-triggered workflow.
-
-Use [`$.respond`](/workflows/building-workflows/triggers/#http) to send a JSON or string response from the HTTP call that triggered the workflow.
-
-```javascript
-export default defineComponent({
- async run({ steps, $ }) {
- $.respond({
- status: 200,
- headers: {},
- body: {
- message: "hello world!",
- },
- });
- },
-});
-```
-
-Please note, you'll also need to configure the HTTP trigger step to also allow custom responses. Use the dropdown in the **HTTP Response** section of the HTTP trigger to select the **Return a custom response from your workflow** option:
-
-
-
-## Known Gaps & Limitations
-
-However, some features from the original builder are not currently available in v2. The Pipedream team is working to quickly address these items, but if you have feedback that isn't listed here, please [reach out](https://pipedream.com/support).
-
-### Sharing workflows
-
-At this time, sharing is not yet implemented in v2 of the workflow builder. As workaround, create your workflows in a organization which make workflows available to your team members.
-
-If you need assistance transferring workflows across accounts, [please contact us](https://pipedream.com/support).
-
-### `$checkpoint`
-
-The `$checkpoint` functionality to save data between workflow runs is not supported in v2, and has been replaced by [Data Stores](/workflows/building-workflows/code/nodejs/using-data-stores/).
-
-### Public workflows
-
-At this time, all v2 workflows are private. Unfortunately at this time there is no workaround. We'll announce when a workaround for this limitation is available.
-
-If you're working with Pipedream support to troubleshoot your workflow, you can share it with the support team under your workflow's **Settings**.
-
-### Rolling back a specific version
-
-In v2, you can test and save your progress on a workflow _without_ deploying it.
-
-However, after deploying it's not possible to rollback to a prior version of a deployed workflow.
-
-You can still edit a deployed workflow, just like in v1 but automatic version rollbacks are not currently possible.
-
-### Replaying production events
-
-In the v2 builder, you can still view individual events that trigger your v2 workflows in the **Inspector** events log. You can delete specific events or all of them in one click as well.
-
-To replay past events against your deploy v2 workflows, open the event's menu and click **Replay Event**. This will rerun your workflow with this same event.
-
-## FAQ
-
-### What are the benefits of the new (v2) workflow builder?
-
-- **Edit & test** your workflows in separate editing mode without impacting live workflows
-- **Support for multiple languages** including Node, Python, Golang & bash
-- **Granular testing** including the ability to test individual steps and more
-- **Multiple triggers** are now supported per workflow
-- **Improved** forms for easier configuration and streamlined building
-
-### What are the limitations of the new (v2) workflow builder?
-
-- `$checkpoint` has been removed from v2 workflows, but [Data Stores](/workflows/building-workflows/code/nodejs/using-data-stores/) provides a similar API.
-- Sharing workflows is not supported
-- Making workflows public is not supported
-
-### Are v2 workflows backwards compatible?
-
-No, v2 workflows are not currently compatible with the v1 builder.
-
-However, pre-built component actions are still compatible across both versions. If you do encounter a gap from v1 actions in the v2 builder, [reach out to us](https://pipedream.com/support).
-
-### Is the Component API changing as well? Will I need to rewrite Components?
-
-No. Any components in the public registry or any private components you have published in your account are compatible with v2.
-
-The v2 workflow builder utilizes the same Component API allowing you to create components from within your workflows, which was not possible in v1.
-
-### Will I still be able to open and edit v1 workflows?
-
-Yes, absolutely you will still be able to view and edit v1 workflows. There is no need to immediately change your workflows from v1 to v2.
-
-### How do I migrate v1 workflows to v2 workflows?
-
-At this time we do not have an automated process to change v1 to v2. To create a v2 equivalent workflow, you can recompose your v1 workflow in the v2 builder.
-
-However, if it uses custom Node.js code steps, be sure to [follow the changes we describe in the guide above](/deprecated/migrate-from-v1/#nodejs-code-step-changes).
-
-### When will the new (v2) workflow builder be the default builder for all customers?
-
-By default, existing users will still default to the v1 builder. You can create new v2 workflows from the dropdown menu next to the New workflow button.
-
-if you'd like to default to the v2 builder when creating new workflows, you can change the **Builder Version** in [your account settings](https://pipedream.com/settings/account).
-
-### When will I no longer be able to create v1 workflows?
-
-There is currently no deprecation date for v1 workflows. We will continue to support of v1 workflows until we have feature parity with v2.
-
-When this date becomes clear we will provide assistance to automatically and assist migrate v1 to v2 workflows for you.
diff --git a/docs-v2/pages/deprecated/nodejs20-faq-2024-02/_meta.tsx b/docs-v2/pages/deprecated/nodejs20-faq-2024-02/_meta.tsx
deleted file mode 100644
index 4705b04ff8795..0000000000000
--- a/docs-v2/pages/deprecated/nodejs20-faq-2024-02/_meta.tsx
+++ /dev/null
@@ -1,5 +0,0 @@
-export default {
- "index": {
- "display": "hidden",
- },
-} as const
diff --git a/docs-v2/pages/deprecated/nodejs20-faq-2024-02/index.mdx b/docs-v2/pages/deprecated/nodejs20-faq-2024-02/index.mdx
deleted file mode 100644
index d17d579921228..0000000000000
--- a/docs-v2/pages/deprecated/nodejs20-faq-2024-02/index.mdx
+++ /dev/null
@@ -1,314 +0,0 @@
-import Callout from '@/components/Callout'
-
-# Update to the Node.js runtime on Pipedream (February 2024)
-
-Effective 2024-02-01, the Node.js runtime will no longer load Amazon-specific certificate authority (CA) certificates by default.
-
-
-
-### Will this impact my workflows?
-
-**Existing workflows that are not re-deployed will NOT be impacted.**
-
-Only workflow that meet all of following criteria will be impacted:
-
-- Is re-deployed or deployed after 2024-02-01
-- Connects to an [AWS RDS](https://aws.amazon.com/rds/)-managed database (e.g., PostgreSQL, MySQL, or Microsoft SQL Server)
-- Has server identity verification enabled (e.g., the `rejectUnauthorized` connection option is set to `true`)
-
-
-Workflows deployed on or after 2024-02-01 that do *not* integrate with AWS RDS will not be impacted.
-
-
-### Why are Amazon-specific CA certificates no longer loaded by default?
-
-Pipedream's runtime, which is based on the [Amazon Web Services](https://aws.amazon.com/) (AWS) Lambda Node.js runtime, is being upgraded to support Node.js 20. Starting with Node.js 20, Lambda no longer loads and validates Amazon-specific CA certificates by default. This improves cold start performance.
-
-For more information, see [Amazon's blog post](https://aws.amazon.com/blogs/compute/node-js-20-x-runtime-now-available-in-aws-lambda/).
-
-### How will this impact my workflows?
-
-Starting 2024-02-01, relevant database connection attempts will return a message like this:
-
-
-
-### What do I need to do?
-
-If you are not planning to update and re-deploy a workflow [impacted by this update](#will-this-impact-my-workflows), you do not need to do anything.
-
-Otherwise, to successfully connect to your database, you can disable server identity verification or include CA certificates for your database.
-
-For more information on secure connections and CAs, see the AWS docs: [Using SSL/TLS to encrypt a connection to a DB instance](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/UsingWithRDS.SSL.html)
-
-Below are instructions for updating a workflow that connects to a [**MySQL**](#mysql), [**PostgreSQL**](#postgresql), or [**Microsoft SQL Server**](#microsoft-sql-server) DB instance.
-
-#### MySQL
-
-**Using a Pipedream action**:
-
-- Option A: Disable server identity verification
- 1. If given the option, update the action to the latest version by clicking the "Update" button in the workflow step. The lastest version of MySQL actions disable server identity verification by default.
-
- 
-
-- Option B: Use the [MySQL (SSL)](https://pipedream.com/apps/mysql-ssl) app
- 1. Replace your MySQL action with the corresponding MySQL (SSL) action.
- 2. [Connect](/apps/connected-accounts/#connecting-accounts) your MySQL (SSL) account, specifying the `key`, `cert`, `ca`, and `rejectUnauthorized` connection options.
-
-**Using a custom code step**:
-
-- Option A: Disable server identity verification
- 1. Set the `rejectUnauthorized` connection option to `false`. For example:
-
- ```javascript
- const connection = await mysql.createConnection({
- host,
- user,
- password,
- database,
- ssl: {
- rejectUnauthorized: false,
- }
- });
- ```
-
-- Option B: Use the [MySQL (SSL)](https://pipedream.com/apps/mysql-ssl) app
- 1. Replace the `mysql` app prop with a `mysql_ssl` app prop.
- 2. Use the SSL connection options contained in the `$auth` object.
-
- Here's an example of an updated code step that uses the **`mysql_ssl`** app and the [`mysql2` npm package](https://www.npmjs.com/package/mysql2):
-
- ```javascript
- import mysql from 'mysql2/promise';
- export default defineComponent({
- props: {
- mysql: {
- type: "app",
- app: "mysql_ssl",
- }
- },
- async run({steps, $}) {
- const { host, port, username, password, database, ca, cert, key, rejectUnauthorized } = this.mysql.$auth;
- const connection = await mysql.createConnection({
- host,
- port,
- user: username,
- password,
- database,
- ssl: {
- rejectUnauthorized,
- ca,
- cert,
- key,
- }
- });
- const [rows] = await connection.execute('SELECT NOW()');
- return rows;
- },
- })
- ```
-
-#### PostgreSQL
-
-**Using a Pipedream action**:
-
-1. If given the option, update the action to the latest version by clicking the "Update" button in the workflow step.
-
- 
-
-2. Set the **Reject Unauthorized** field to `false`.
-
- 
-
-**Using a custom code step**:
-
-- Option A: Disable server identity verification
- 1. Set the `rejectUnauthorized` connection option to `false`. For example:
-
- ```javascript
- const client = new Client({
- host,
- database,
- user,
- password,
- ssl: {
- rejectUnauthorized: false,
- },
- });
- ```
-
-- Option B: Include all Amazon CA certificates
- 1. Read the certificate file with all Amazon CA certificates located at `/var/runtime/ca-cert.pem`.
- 2. Include the CA certificates in the database connection options.
-
- Here's an example code step that uses the [`pg` npm package](https://www.npmjs.com/package/pg):
-
- ```javascript
- import { Client } from "pg";
- import fs from "fs";
- export default defineComponent({
- props: {
- postgresql: {
- type: "app",
- app: "postgresql",
- }
- },
- async run({steps, $}) {
- const { host, user, password, port, database } = this.postgresql.$auth;
- const client = new Client({
- host,
- database,
- user,
- password,
- port,
- ssl: {
- rejectUnauthorized: true,
- ca: fs.readFileSync("/var/runtime/ca-cert.pem")
- },
- });
- await client.connect();
- const results = (await client.query("SELECT NOW()")).rows;
- $.export("results", results);
- await client.end();
- },
- });
- ```
-
-- Option C: Include your region's certificate bundle
-
- 1. Download the [certificate bundle for your AWS region](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/UsingWithRDS.SSL.html#UsingWithRDS.SSL.RegionCertificates).
- 2. Import the certificate bundle into your workflow using [the file store](/projects/file-stores).
- 3. Include the CA certificates in the database connection options.
-
- Here's an example code step that uses the `pg` npm package:
-
- ```javascript
- import { Client } from "pg";
- import fs from "fs";
- export default defineComponent({
- props: {
- postgresql: {
- type: "app",
- app: "postgresql",
- }
- },
- async run({steps, $}) {
- const { host, user, password, port, database } = this.postgresql.$auth;
- const client = new Client({
- host,
- database,
- user,
- password,
- port,
- ssl: {
- rejectUnauthorized: true,
- ca: fs.readFileSync(steps.trigger.context.attachments["-bundle.pem"]).toString(),
- },
- });
- await client.connect();
- const results = (await client.query("SELECT NOW()")).rows;
- $.export("results", results);
- await client.end();
- },
- });
- ```
-
-#### Microsoft SQL Server
-
-**Using a Pipedream action**:
-
-1. [Reconnect](/apps/connected-accounts/#reconnecting-an-account) your Microsoft SQL Server account, setting the **trustServerCertificate** field to `true`.
-
-**Using a custom code step**:
-
-- Option A: Disable server identity verification
- 1. Set the `trustServerCertificate` connection option to `true`. For example:
-
- ```javascript
- const config = {
- server,
- database,
- user,
- password,
- options: {
- trustServerCertificate: true,
- },
- };
- ```
-
-- Option B: Include all Amazon CA certificates
- 1. Read the certificate file with all Amazon certificates located at `/var/runtime/ca-cert.pem`.
- 2. Include the certificates in the database connection options.
-
- Here's an example code step that uses the [`mssql` npm package](https://www.npmjs.com/package/mssql):
-
- ```javascript
- import sql from "mssql";
- import fs from "fs";
- export default defineComponent({
- props: {
- microsoft_sql_server: {
- type: "app",
- app: "microsoft_sql_server",
- }
- },
- async run({steps, $}) {
- const { host, username, password, port, database, encrypt, trustServerCertificate } = this.microsoft_sql_server.$auth;
- const config = {
- server: host,
- port: parseInt(port, 10),
- database,
- user: username,
- password,
- options: {
- encrypt,
- trustServerCertificate,
- cryptoCredentialsDetails: {
- ca: fs.readFileSync("/var/runtime/ca-cert.pem").toString(),
- },
- },
- };
- await sql.connect(config);
- return await sql.query`SELECT GETDATE()`;
- },
- });
- ```
-
-- Option C: Include your region's certificate bundle
- 1. Download the [certificate bundle for your AWS region](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/UsingWithRDS.SSL.html#UsingWithRDS.SSL.RegionCertificates).
- 2. Import the certificate bundle into your workflow using [the file store](/projects/file-stores).
- 3. Include the certificates in the database connection options.
-
- Here's an example code step that uses the `mssql` npm package:
-
- ```javascript
- import sql from "mssql";
- import fs from "fs";
- export default defineComponent({
- props: {
- microsoft_sql_server: {
- type: "app",
- app: "microsoft_sql_server",
- }
- },
- async run({steps, $}) {
- const { host, username, password, port, database, encrypt, trustServerCertificate } = this.microsoft_sql_server.$auth;
- const config = {
- server: host,
- port: parseInt(port, 10),
- database,
- user: username,
- password,
- options: {
- encrypt,
- trustServerCertificate,
- cryptoCredentialsDetails: {
- ca: fs.readFileSync(steps.trigger.context.attachments["-bundle.pem"]).toString(),
- },
- },
- };
- await sql.connect(config);
- return await sql.query`SELECT GETDATE()`;
- },
- })
- ```
diff --git a/docs-v2/pages/deprecated/shopify-faq-2023-10/_meta.tsx b/docs-v2/pages/deprecated/shopify-faq-2023-10/_meta.tsx
deleted file mode 100644
index 4705b04ff8795..0000000000000
--- a/docs-v2/pages/deprecated/shopify-faq-2023-10/_meta.tsx
+++ /dev/null
@@ -1,5 +0,0 @@
-export default {
- "index": {
- "display": "hidden",
- },
-} as const
diff --git a/docs-v2/pages/deprecated/shopify-faq-2023-10/index.mdx b/docs-v2/pages/deprecated/shopify-faq-2023-10/index.mdx
deleted file mode 100644
index bc9ecbfbf6137..0000000000000
--- a/docs-v2/pages/deprecated/shopify-faq-2023-10/index.mdx
+++ /dev/null
@@ -1,94 +0,0 @@
-# Update to the Shopify Integration on Pipedream (October 2023)
-
-Effective 2023-10-15, Shopify will no longer allow their customers to access **[Protected Customer Data](https://www.shopify.com/partners/blog/data-protection)** on Pipedream.
-
-
-
-### What is Protected Customer Data?
-**Refer to Shopify's docs for the latest**, but [here is what they say](https://www.shopify.com/partners/blog/data-protection):
-> Protected customer data includes any data that relates directly to a customer or prospective customer, as represented in the API resources. This includes information like total order value, line items in an order, and order shipping events. Apps that require this level of data must implement our [data protection requirements](https://shopify.dev/apps/store/data-protection/protected-customer-data?shpxid=aa95abd6-7955-4C12-6DB9-B3C3859B16AE), including informing merchants of your app’s data use and purpose, applying customer consent decisions, opt-out requests, and more.
-
-> Protected customer fields require individual configuration and approval, in addition to approval for protected customer data. This includes information like name, address, email, and phone number. Apps that require this layer of data will need to abide by [additional requirements](https://shopify.dev/apps/store/data-protection/protected-customer-data?shpxid=aa95abd6-7955-4C12-6DB9-B3C3859B16AE#requirements), including encrypting your data back ups, keeping test and production data separate, and more.
-
-### Why is this data no longer available in Pipedream?
-We've invested significant Product and Engineering time to get our app approved based on Shopify’s requirements, and unfortunately they’ve been unwilling to support the use case of an app-agnostic platform like Pipedream.
-
-### How will this impact my workflows?
-Starting 2023-10-15, the relevant API calls will return a message like this:
-
-
-
-### What do I need to do?
-
-#### Use a custom Shopify app
-- Create a custom Shopify app for your Shopify store and connect it to Pipedream using the [Shopify Developer App](https://pipedream.com/apps/shopify-developer-app#getting-started)
-- Custom apps that are not distributed on Shopify’s app store do not have to meet any of their review requirements, but [can only be connected to a single Shopify store](https://shopify.dev/docs/apps/distribution)
-- Each “app” represents a unique connected account for the Shopify Developer app in Pipedream
-- All of the triggers and actions from the main Shopify app are supported on the [Shopify Developer App](https://pipedream.com/apps/shopify-developer-app/#popular-shopify-developer-app-triggers) (including those that access Protected Customer Data)
-- You’ll need to modify each workflow that uses Shopify to use the Shopify Developer app instead of the main Shopify app
-
-Here's an example of a code step using the **`shopify`** app:
-
-``` javascript
-import { axios } from "@pipedream/platform"
-export default defineComponent({
- props: {
- // Note the prop definition
- shopify: {
- type: "app",
- app: "shopify",
- },
- customerEmail: {
- type: "string"
- label: "Customer Email"
- }
- },
- async run({steps, $}) {
- return await axios($, {
- // Note the version
- url: `https://${this.shopify.$auth.shop_id}.myshopify.com/admin/api/2022-07/customers/search.json`,
- headers: {
- // Note the reference to the auth token
- "X-Shopify-Access-Token": `${this.shopify.$auth.oauth_access_token}`,
- "Content-Type": `application/json`,
- },
- params: {
- query: `email:${this.customerEmail}`
- }
- })
- },
-})
-```
-
-And here's an example of the updated code step that uses a custom app with the **`shopify_developer_app`** instead:
-
-``` javascript
-import { axios } from "@pipedream/platform"
-export default defineComponent({
- props: {
- // Note the updated prop definition
- shopify_developer_app: {
- type: "app",
- app: "shopify_developer_app",
- },
- customerEmail: {
- type: "string"
- label: "Customer Email"
- }
- },
- async run({steps, $}) {
- return await axios($, {
- // Note the updated version
- url: `https://${this.shopify_developer_app.$auth.shop_id}.myshopify.com/admin/api/2023-07/customers/search.json`,
- headers: {
- // Note the updated reference to the auth token
- "X-Shopify-Access-Token": `${this.shopify_developer_app.$auth.access_token}`,
- "Content-Type": `application/json`,
- },
- params: {
- query: `email:${this.customerEmail}`
- }
- })
- },
-})
-```
\ No newline at end of file
diff --git a/docs-v2/pages/glossary.mdx b/docs-v2/pages/glossary.mdx
deleted file mode 100644
index f07e41c5d36cc..0000000000000
--- a/docs-v2/pages/glossary.mdx
+++ /dev/null
@@ -1,493 +0,0 @@
-# Pipedream Glossary
-
-Below you'll find a glossary of Pipedream-specific terms. We use these in the product, docs, and other content, so if you're seeing a term for the first time, you'll probably find it below.
-
-All terms that aren't in this doc hold their standard technical meaning. If you see a term missing, please [reach out](https://pipedream.com/support).
-
-[0-9](#0---9) | [A](#a) | [B](#b) | [C](#c) | [D](#d) | [E](#e) | [F](#f) | [G](#g) | [H](#h) | [I](#i) | [J](#j) | [K](#k) | [L](#l) | [M](#m) | [N](#n) | [O](#o) | [P](#p) | [Q](#q) | [R](#r) | [S](#s) | [T](#t) | [U](#u) | [V](#v) | [W-Z](#w-z)
-
-## 0 - 9
-
-### 2FA
-
-Short for [two-factor authentication](#two-factor-authentication-2fa).
-
-## A
-
-### Account
-
-Synonym for [connected account](#connected-account).
-
-### Action
-
-Actions are reusable code steps, written as [Pipedream components](#component).
-
-### Advanced plan
-
-Pipedream's plan for individuals and teams running production workflows. [See the pricing page](https://pipedream.com/pricing) for more details.
-
-### Auto-retry
-
-[A workflow setting](/workflows/building-workflows/settings/#auto-retry-errors) that lets you automatically retry an execution from the failed step when it encounters an error.
-
-## B
-
-### Bash runtime
-
-Pipedream's internal code in the [execution environment](#execution-environment) responsible for running Bash code.
-
-### Basic plan
-
-Pipedream's plan for individuals who need higher limits and the option to scale usage. [See the pricing page](https://pipedream.com/pricing) for more details.
-
-### Bi-directional GitHub sync
-
-When you configure [GitHub Sync](#github-sync), you can make changes in Pipedream and push them to GitHub, or make changes locally, push to GitHub, and deploy to Pipedream. Since changes can be made in each system and communicated to the other, the sync is bi-directional.
-
-### Branch
-
-Short for [Git branch](https://git-scm.com/book/en/v2/Git-Branching-Branches-in-a-Nutshell). When using [Pipedream GitHub Sync](#github-sync), you can sync a GitHub repository to a Pipedream project and manage changes to code in a branch.
-
-### Builder
-
-The Pipedream UI where you build, edit, and test workflows.
-
-### Business plan
-
-Pipedream's plan for teams with security, compliance, and support needs. [See the pricing page](https://pipedream.com/pricing) for more details.
-
-## C
-
-### Changelog
-
-Synonym for [project changelog](#project-changelog).
-
-### Code step
-
-[Steps](#step) that let users run [custom code](/workflows/building-workflows/code/) in a workflow.
-
-### Cold start
-
-A cold start refers to the delay between the invocation of workflow and the execution of the workflow code. Cold starts happen when Pipedream spins up a new [execution environment](#execution-environment) to handle incoming events.
-
-### Commit
-
-Short for [Git commit](https://git-scm.com/book/en/v2/Git-Basics-Recording-Changes-to-the-Repository). When using [Pipedream GitHub Sync](#github-sync), you commit changes to a branch before deploying the workflow to production.
-
-### Component
-
-Components are Node.js modules that run on Pipedream's serverless infrastructure. [Sources](#source) and [actions](#action) are two types of components. See [the component API](/components/contributing/api/) for more details.
-
-### Component API
-
-The programming interface for creating [components](#component) in Pipedream.
-
-### Component guidelines
-
-Guidelines applied to components submitted to [the Pipedream component registry](#component-registry).
-
-### Component registry
-
-The public registry of [components](#component) available to Pipedream users, [available on GitHub](https://github.com/PipedreamHQ/pipedream).
-
-### Concurrency
-
-[A workflow setting](/workflows/building-workflows/settings/concurrency-and-throttling/#concurrency) that lets users configure the number of concurrent [workers](#worker) available to process events.
-
-### Connected account
-
-A specific account or credentials used to connect to a Pipedream [integration](#integrations). If both you and your team member have an account with OpenAI, for example, you would connect each account as a distinct connected account. [See the docs](/apps/connected-accounts) for more details.
-
-### Connected account access control
-
-You can restrict access to connected accounts to specific individuals or share with the entire workspace. [See the docs](/apps/connected-accounts#access-control) for more details.
-
-### Credit
-
-Pipedream charges one credit per 30 seconds of compute time at 256MB megabytes of memory (the default) per workflow execution. Credits are also charged for [dedicated workers](#dedicated-workers). [See the docs](/pricing/#credits-and-billing) for more details.
-
-### Custom domain
-
-By default, [HTTP endpoints](#http-endpoint) are served from the `*.m.pipedream.net` domain. You can configure a [custom domain](/workflows/domains/) if you want to host that endpoint on your own domain.
-
-### Custom source
-
-An [event source](#event-source) that you create using custom code, or by modifying a [registry source](#registry-source).
-
-## D
-
-### Data retention
-
-A workflow setting that allows you to configure how long Pipedream stores event data and logs associated with [executions](#execution). [See the docs](/workflows/building-workflows/settings/#data-retention-controls) for more details.
-
-### Dedicated workers
-
-[Workers](#worker) that remain available to process events, even when the workflow is not running. This can help reduce [cold starts](#cold-start) and improve performance for workflows that require low latency. [See the docs](/workflows/building-workflows/settings/#eliminate-cold-starts) for more details.
-
-### Deduper
-
-[Event sources](#event-source) can receive duplicate requests tied to the same event. Pipedream's infrastructure supports [deduplication](/components/contributing/api/#dedupe-strategies) to ensure that only unique events are emitted by a source.
-
-### Delay
-
-[A built-in service](/workflows/building-workflows/control-flow/delay/) that lets you pause a workflow for a specified amount of time. You can delay workflows using pre-built actions, or delay in code.
-
-### Destination
-
-[Destinations](/workflows/data-management/destinations/) are built-in services that abstract the delivery and connection logic required to send events to services like Amazon S3, or targets like HTTP and email.
-
-### Domain
-
-Synonum for [custom domain](#custom-domain).
-
-### Data store
-
-[Data stores](/workflows/data-management/data-stores/) are Pipedream's built-in key-value store.
-
-### Deploy key
-
-When you configure [GitHub Sync](#github-sync), you can use a deploy key to authenticate Pipedream with your GitHub repository. [See the docs](/workflows/git/#create-a-new-project-and-enable-github-sync) for more details.
-
-## E
-
-### Editor
-
-The built-in code editor in the [builder](#builder).
-
-### Email trigger
-
-A [workflow trigger](#trigger) that listens for incoming email. This trigger exposes a workflow-specific email address that you can use to send email to the workflow.
-
-### Emit
-
-[Event sources](#event-source), [workflow triggers](#trigger), and even workflows themselves can emit [events](#event) that trigger other [listeners](#listener). Since sources have a built-in [deduper](#deduper), not all requests are emitted as events.
-
-### Emitter
-
-A resource that [emits](#emit) [events](#event). Emitters can be [event sources](#event-source), [workflow triggers](#trigger), or even workflows themselves.
-
-### Error notification
-
-When a workflow execution encounters an error, Pipedream sends an [error notification](/workflows/building-workflows/errors/) to the configured error [listeners](#listener).
-
-### Environment variable
-
-Pipedream supports two types of environment variables:
-
-- [Project variables](#project-variable), available within a specific project
-- [Workspace variables](#workspace-variable), available across all projects in a workspace
-
-### Event
-
-Events are emitted by [sources](#event-source) and consumed by workflows. Events can be triggered by a variety of sources, including HTTP requests, cron schedules, and third-party APIs. Events can be passed to actions, which can process the event data and perform a variety of operations, including making HTTP requests, sending emails, and interacting with third-party APIs.
-
-### Event context
-
-Metadata about a workflow execution, including the timestamp of the event, the event ID, and more. Exposed in [`steps.trigger.context`](/workflows/building-workflows/triggers/#stepstriggercontext).
-
-### Event data
-
-The content of the event, exposed in [`steps.trigger.event`](/workflows/building-workflows/triggers/).
-
-### Event history
-
-A log of all workflow events and executions, available in the [event inspector](#inspector) or the global [event history UI](/workflows/event-history/).
-
-### Event queue
-
-When using built-in [concurrency](#concurrency) or [throttling](#throttling) controls, events are queued in a workflow-specific queue and processed by available [workers](#worker).
-
-### Event source
-
-[Components](#component) that watch for events from a third-party data source, emitting those events to [listeners](#listener).
-
-### Execution
-
-When a workflow is triggered by an event, the running instance of the workflow on that event is called an execution.
-
-### Execution environment
-
-[The virtual machine](/privacy-and-security/#execution-environment) and internal Pipedream platform code that runs a workflow execution. An instance of an execution environment is called a [worker](#worker).
-
-### Execution rate controls
-
-The workflow setting that allows users to configure the number of executions a workflow can process per unit time. Also known as throttling. [See the docs](/workflows/building-workflows/settings/concurrency-and-throttling/#throttling) for more details.
-
-### Export
-
-Depending on the context, **export** can function as a noun or verb:
-
-- **Noun**: A synonym for [step export](#step-export)
-- **Verb**: The act of exporting data from a step using Pipedream primitives like [`$.export`](/workflows/building-workflows/code/nodejs/#using-export) or `return`.
-
-### Expression
-
-In programming, expressions are code that resolve to a value. In Pipedream, [you can use expressions within props forms](/workflows/building-workflows/using-props/#entering-expressions) to reference prior steps or compute custom values at runtime.
-
-### External credentials
-
-[Connected accounts](#connected-account) are accounts that users link directly in Pipedream. External credentials are credentials that users store in their own database or service, and reference in Pipedream at runtime. [See the docs](/apps/connected-accounts/external-auth) for more details.
-
-## F
-
-### File store
-
-[File stores](/projects/file-stores) are filesystems scoped to projects. Any files stored in the file store are available to all workflows in the project.
-
-### Filter
-
-[Built-in actions](https://pipedream.com/apps/filter) that let you continue or stop a workflow based on a condition.
-
-### Folder
-
-Within projects, you can organize workflows into folders.
-
-### Free plan
-
-Pipedream's free plan. [See the limits docs](/workflows/limits/) for more details.
-
-## G
-
-### Global search
-
-Press `Ctrl + K` or `Cmd + K` to open the global search bar in the Pipedream UI.
-
-### GitHub Sync
-
-When enabled on a [project](#project), GitHub Sync syncs the project's workflow code with a GitHub repository. [See the docs](/workflows/git/) for more details.
-
-### Golang runtime
-
-Pipedream's internal code in the [execution environment](#execution-environment) responsible for running Go code.
-
-## H
-
-### Helper functions
-
-[Built-in actions](https://pipedream.com/apps/helper-functions) that convert data types, format dates, and more.
-
-### Hooks
-
-[Hooks](/components/contributing/api/#hooks) are functions executed as a part of the [event source](#event-source) lifecycle. They can be used to perform setup tasks before the source is deployed, or teardown tasks after the source is destroyed.
-
-### HTTP endpoint
-
-The URL tied to a [workflow HTTP trigger](#http-trigger) or HTTP-triggered [event source](#event-source).
-
-### HTTP trigger
-
-A [workflow trigger](#trigger) that listens for incoming HTTP requests. This trigger exposes a unique URL that you can use to send HTTP requests to the workflow.
-
-## I
-
-### Inspector
-
-The Pipedream UI that displays a specific workflow's event history. [See the docs](/workflows/building-workflows/inspect/) for more details.
-
-### Integrations
-
-When Pipedream adds a new third-party service to our marketplace of apps, we often have to handle details of the OAuth process and authentication, and build [sources](#event-source) and [actions](#action) for the API. These details are abstracted from the user, and the app configuration is referred to as an **integration**.
-
-## J
-
-## K
-
-### Key-based account
-
-A [connected account](#connected-account) that uses static credentials, like API keys.
-
-## L
-
-### Listener
-
-A resource that listens for events emitted by [emitters](#emitter). Listeners can be [workflows](#workflow), [event sources](#event-source), webhook URLs, and more.
-
-### Logs
-
-Standard output and error logs generated by steps during a workflow execution. Logs are available as a part of the step execution details in the [event inspector](#inspector) or the global [event history UI](/workflows/event-history/).
-
-## M
-
-### Merge
-
-When you configure [GitHub Sync](#github-sync), you can merge changes from a branch into the production branch of your GitHub repository, deploying those changes to Pipedream.
-
-## N
-
-### Node.js runtime
-
-Pipedream's internal code in the [execution environment](#execution-environment) responsible for running Node.js code.
-
-## O
-
-### Organization
-
-Synonym for [workspaces](#workspace).
-
-### OAuth account
-
-A [connected account](#connected-account) that uses OAuth to authenticate with a third-party service.
-
-## P
-
-### Premium apps
-
-Pipedream's built-in [integrations](#integrations) that require a paid plan to use. [See the pricing page](https://pipedream.com/pricing) for more details and the [full list of premium apps](/apps/#premium-apps).
-
-### Project
-
-A container for workflows, secrets, and other resources in Pipedream. Projects can be synced with a GitHub repository using [GitHub Sync](#github-sync). [See the docs](/projects/) for more details.
-
-### Project-based access control
-
-You can restrict access to projects to specific individuals or share with the entire workspace. [See the docs](/projects/access-controls) for more details.
-
-### Project changelog
-
-When using [Pipedream GitHub Sync](#github-sync), the changelog shows the history of changes made to a project.
-
-### Project file
-
-A file stored in a [file store](#file-store).
-
-### Project secret
-
-Users can add both standard project variables and secrets to a project. The values of secrets are encrypted and cannot be read from the UI once added.
-
-### Project settings
-
-Configure GitHub Sync and other project-specific configuration in a project's settings.
-
-### Project variable
-
-Project-specific environment variables, available to all workflows in a project.
-
-### Props
-
-[Props](/workflows/building-workflows/using-props/) allow you to pass input to [components](#component).
-
-### Python runtime
-
-Pipedream's internal code in the [execution environment](#execution-environment) responsible for running Python code.
-
-### Object explorer
-
-The [builder](#builder) UI that allows you to search objects [exported](#export) from prior steps. [See the docs](/workflows/building-workflows/using-props/#use-the-object-explorer) for more details.
-
-## Q
-
-## R
-
-### Registry
-
-Synonym for [component registry](#component-registry).
-
-### Registry source
-
-An [event source](#event-source) available in the [component registry](#component-registry). Registry sources are reviewed and approved by Pipedream.
-
-## S
-
-### Schedule trigger
-
-A [workflow trigger](#trigger) that runs on a schedule. This trigger exposes a cron-like syntax that you can use to schedule the workflow.
-
-### Single sign-on (SSO)
-
-Users can [configure SSO](/workspaces/sso/) to authenticate with Pipedream using their identity provider.
-
-### Source
-
-Synonym for [event source](#event-source).
-
-### Step
-
-[Steps](/workflows/#steps) are the building blocks used to create workflows. Steps can be [triggers](#trigger), [actions](#action), or [code steps](#code-step).
-
-### Step export
-
-JSON-serializable data returned from steps, available in future steps of a workflow. [See the docs](/workflows/#step-exports) for more details.
-
-### Step notes
-
-[Step notes](/workflows/#step-notes) are Markdown notes you can add to a step to document its purpose.
-
-### Subscription
-
-A connection between a [listener](#listener) and an [emitter](#emitter) that allows the listener to receive events from the emitter.
-
-### Suspend
-
-Workflow [executions](#execution) are suspended when you [delay](#delay) or use functions like [`$.flow.suspend`](/workflows/building-workflows/code/nodejs/rerun/#flowsuspend) to pause the workflow.
-
-## T
-
-### Throttling
-
-Synonym for [execution rate controls](#execution-rate-controls).
-
-### Timeout
-
-All workflows have [a default timeout](/workflows/limits/#time-per-execution). You can configure a custom timeout in the [workflow settings](/workflows/building-workflows/settings/#execution-timeout-limit).
-
-### `/tmp` directory
-
-A directory available to the workflow's [execution environment](#execution-environment) for storing files. Files stored in `/tmp` are only guaranteed to be available for the duration of the workflow execution, and are not accessible across [workers](#worker).
-
-### Trigger
-
-Triggers process data from third-party APIs and [emit](#emit) [events](#event) that run workflows. Triggers can be [HTTP triggers](#http-trigger), [schedule triggers](#schedule-trigger), [email triggers](#email-trigger), [event sources](#event-source), and more.
-
-### Two-factor authentication (2FA)
-
-Two-factor authentication. [Configure 2FA](/account/user-settings/#two-factor-authentication) to add an extra layer of security to your Pipedream account.
-
-## U
-
-## V
-
-### VPC (Virtual Private Cloud)
-
-VPCs are customer-specific private networks where workflows can run. [See the docs](/workflows/vpc/) for more details.
-
-## W-Z
-
-### Worker
-
-An instance of a workflow [execution environment](#execution-environment) available to processes [events](#event).
-
-### Workspace
-
-You create a workspace when you sign up for Pipedream. Workspaces contain projects, workflows, and other resources. [See the docs](/workflows/workspaces) for more details.
-
-### Workspace admin
-
-A workspace can have multiple [admins](/workspaces/#promoting-a-member-to-admin), who can administer the workspace, manage billing, and more.
-
-### Workspace member
-
-A user invited to a workspace. Members can create projects, workflows, and other resources in the workspace, but cannot manage billing or administer the workspace.
-
-### Workspace owner
-
-The user who created the workspace.
-
-### Workflow serialization
-
-When you use [GitHub Sync](#github-sync), Pipedream serializes the workflow configuration to a YAML file. Optionally, if your workflow contains custom code, Pipedream serializes the code to a separate file.
-
-### Workspace settings
-
-[Workspace settings](#workspace-settings) let [workspace admins](#workspace-admin) configure settings like membership, [SSO](#single-sign-on-sso), and more.
-
-### Workflow template
-
-When you [share a workflow](/workflows/building-workflows/sharing/), you create a template that anyone can copy and run.
-
-### Workspace variable
-
-An environment variable available across all projects in a workspace.
-
-### Workflow
-
-Workflows are the primary resource in Pipedream. They process events from [triggers](#trigger) and run [steps](#step) to perform actions like making HTTP requests, sending emails, and more.
diff --git a/docs-v2/pages/hidden/abuse/_meta.tsx b/docs-v2/pages/hidden/abuse/_meta.tsx
deleted file mode 100644
index 1926dd0089996..0000000000000
--- a/docs-v2/pages/hidden/abuse/_meta.tsx
+++ /dev/null
@@ -1,5 +0,0 @@
-export default {
- index: {
- display: "hidden",
- },
-} as const
diff --git a/docs-v2/pages/hidden/abuse/index.mdx b/docs-v2/pages/hidden/abuse/index.mdx
deleted file mode 100644
index 7a9ae074dfa1e..0000000000000
--- a/docs-v2/pages/hidden/abuse/index.mdx
+++ /dev/null
@@ -1,9 +0,0 @@
-# Reporting abuse
-
-If you suspect Pipedream resources are being used for illegal purposes, or otherwise violate [the Pipedream Terms](https://pipedream.com/terms), please reach out to abuse@pipedream.com .
-
-In your abuse report, please provide as many details as possible, including:
-
-- The specific issue you're seeing, and what date / time it started / you observed it.
-- Relevant Pipedream resources involved in the abuse, for example: the HTTP endpoint to which traffic is being sent.
-- Any logs / code involved in the abuse. For example, if you're encountering a Denial-of-service attack, please include any HTTP / networking logs related to the issue. If you're reporting malware that exfiltrates data to Pipedream, please include relevant code from that malware or links to relevant reports.
\ No newline at end of file
diff --git a/docs-v2/pages/hidden/scheduling-future-tasks/_meta.tsx b/docs-v2/pages/hidden/scheduling-future-tasks/_meta.tsx
deleted file mode 100644
index 4705b04ff8795..0000000000000
--- a/docs-v2/pages/hidden/scheduling-future-tasks/_meta.tsx
+++ /dev/null
@@ -1,5 +0,0 @@
-export default {
- "index": {
- "display": "hidden",
- },
-} as const
diff --git a/docs-v2/pages/hidden/scheduling-future-tasks/index.mdx b/docs-v2/pages/hidden/scheduling-future-tasks/index.mdx
deleted file mode 100644
index 8858c212f6bc1..0000000000000
--- a/docs-v2/pages/hidden/scheduling-future-tasks/index.mdx
+++ /dev/null
@@ -1,180 +0,0 @@
-# Scheduling future tasks
-
-Pipedream includes an event source which exposes an HTTP API for scheduling one-time tasks. You can schedule tasks at any timestamp, with second-level precision, up to one year in the future.
-
-[Click here to create this source](https://pipedream.com/sources?action=create&key=pipedream-new-scheduled-tasks), or visit [https://pipedream.com/sources/new](https://pipedream.com/sources/new), select the **Pipedream** app, and the **New Scheduled Tasks** source.
-
-To [schedule a new task](#scheduling-a-task), just send an HTTP `POST` request to your source's endpoint, at the `/schedule` path, with the following format:
-
-```javascript
-{
- "timestamp": "2020-08-21T04:29:00.951Z", // timestamp: an ISO 8601 timestamp
- "message": { "name": "Luke" } // message: any object or string
-}
-```
-
-When the timestamp arrives and the task is invoked, the source will emit the payload passed in your original, scheduled request. This allows you to trigger [a Pipedream workflow](/workflows/building-workflows/) at the scheduled time, passing the `message` and `timestamp` to the workflow as an [incoming event](/workflows/building-workflows/triggers/).
-
-You can also listen for these events in your own app / infra, by [subscribing to your source's SSE stream](/workflows/data-management/destinations/sse/). Each time a scheduled task is emitted from your Pipedream source, it also emits a message to that SSE stream. Any application (a Docker container, a Rails app, etc.) listening to that SSE stream can react to that message to run whatever code you'd like.
-
-
-
-## HTTP API
-
-This source exposes an HTTP endpoint where you can send `POST` requests to schedule new tasks. Your endpoint URL should appear as the **Endpoint** in your source's details, in the **Events** tab.
-
-### Scheduling a task
-
-```
-POST /schedule
-```
-
-#### Pipedream built-in action
-
-Use the **Pipedream Task Scheduler - Schedule Task** Helper Functions action to schedule a new task.
-
-#### Node.js
-
-Use the following code in a Node.js code step:
-
-```javascript
-import { axios } from "@pipedream/platform"
-
-export default defineComponent({
- props: {
- numSeconds: {
- type: "integer",
- label: "Num Seconds",
- description: "How many seconds in the future would you like to schedule the task?",
- },
- secret: {
- type: "string",
- optional: true,
- },
- taskSchedulerURL: {
- type: "string",
- label: "Task Scheduler URL",
- description: "Enter the URL as it appears in the **Endpoint** field of your Task Scheduler source",
- },
- message: {
- type: "string",
- description: "The message / payload to send to your task scheduler. Can be any string or JavaScript object. This message will be emitted by the task scheduler at the specified number of seconds in the future.",
- },
- },
- async run({ $ }) {
- const timestamp = (new Date(+new Date() + (this.numSeconds * 1000))).toISOString()
-
- const headers = {
- "Content-Type": "application/json",
- };
- if (this.secret) {
- headers["x-pd-secret"] = this.secret;
- }
-
- return await axios($, {
- url: `${this.taskSchedulerURL}/schedule`,
- method: "POST",
- headers,
- data: {
- timestamp,
- message: this.message,
- },
- });
- },
-})
-```
-
-#### `cURL`
-
-To schedule a new task, `POST` a JSON object with an [ISO 8601](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString) `timestamp` and a `message` to the **`/schedule` path** of your source's HTTP endpoint:
-
-```javascript
-{
- "timestamp": "2020-08-21T04:29:00.951Z", // timestamp: an ISO 8601 timestamp
- "message": { "name": "Luke" } // message can be any object or string
-}
-```
-
-Optionally, if you configured a secret in your source, you'll need to pass that in the `x-pd-secret` header. For example:
-
-```bash
-curl -X POST \
- -H 'Content-Type: application/json' \
- -H 'x-pd-secret: 123' \
- -d '{ "timestamp": "2020-09-18T04:40:59Z", "message": "foo" }' \
- https://endpoint.m.pipedream.net/schedule
-```
-
-Successful task schedule requests yield a `200 OK` response, noting the task was successfully scheduled.
-
-### Cancelling a scheduled task
-
-```
-POST /cancel
-```
-
-When you schedule a task, you'll receive a unique ID assigned to that task in the `id` field of the HTTP response body. That `id` can be passed to the `/cancel` endpoint to cancel that task before its scheduled time arrives.
-
-#### Node.js
-
-Cancel tasks using the following code in a Node.js code step:
-
-```javascript
-import { axios } from "@pipedream/platform"
-
-export default defineComponent({
- props: {
- secret: {
- type: "string",
- optional: true,
- },
- taskSchedulerURL: {
- type: "string",
- label: "Task Scheduler URL",
- description: "Enter the URL as it appears in the **Endpoint** field of your Task Scheduler source",
- },
- taskId: {
- type: "string",
- description: "The ID of the task you'd like to cancel",
- },
- },
- async run({ $ }) {
- const headers = {
- "Content-Type": "application/json",
- };
- if (this.secret) {
- headers["x-pd-secret"] = this.secret;
- }
-
- return await axios($, {
- url: `${this.taskSchedulerURL}/cancel`,
- method: "DELETE",
- headers,
- data: {
- id: this.taskId,
- },
- });
- },
-})
-```
-
-#### `cURL`
-
-```bash
-curl -X POST \
- -H 'Content-Type: application/json' \
- -H 'x-pd-secret: 123' \
- -d '{ "id": "8fceb45b-0241-4d04-9f3f-334679586370" }' \
- https://endpoint.m.pipedream.net/cancel
-```
-
-## Processing scheduled tasks
-
-Scheduled tasks are emitted by the event source as events, which you can consume with
-
-- [Pipedream workflows](/workflows/building-workflows/)
-- [A source-specific SSE stream](/workflows/data-management/destinations/sse/)
-- [The Pipedream REST API](/rest-api/)
-- [The Pipedream CLI](/components/contributing/cli/reference/#installing-the-cli)
-
-[See the docs on consuming events from sources](/workflows/building-workflows/sources/#consuming-events-from-sources) for more information.
diff --git a/docs-v2/pages/hidden/status/_meta.tsx b/docs-v2/pages/hidden/status/_meta.tsx
deleted file mode 100644
index 4705b04ff8795..0000000000000
--- a/docs-v2/pages/hidden/status/_meta.tsx
+++ /dev/null
@@ -1,5 +0,0 @@
-export default {
- "index": {
- "display": "hidden",
- },
-} as const
diff --git a/docs-v2/pages/hidden/status/index.mdx b/docs-v2/pages/hidden/status/index.mdx
deleted file mode 100644
index 03952467f7d6d..0000000000000
--- a/docs-v2/pages/hidden/status/index.mdx
+++ /dev/null
@@ -1,5 +0,0 @@
-# Service Status
-
-Pipedream operates a status page at [https://status.pipedream.com](https://status.pipedream.com/). That page displays the uptime history and current status of every Pipedream service.
-
-When incidents occur, updates are published to the **#incidents** channel of [Pipedream's Slack Community](https://pipedream.com/support) and to the [@PipedreamStatus](https://twitter.com/PipedreamStatus) account on Twitter. On the status page itself, you can also subscribe to updates directly.
diff --git a/docs-v2/pages/hidden/subprocessors/_meta.tsx b/docs-v2/pages/hidden/subprocessors/_meta.tsx
deleted file mode 100644
index 4705b04ff8795..0000000000000
--- a/docs-v2/pages/hidden/subprocessors/_meta.tsx
+++ /dev/null
@@ -1,5 +0,0 @@
-export default {
- "index": {
- "display": "hidden",
- },
-} as const
diff --git a/docs-v2/pages/hidden/subprocessors/index.mdx b/docs-v2/pages/hidden/subprocessors/index.mdx
deleted file mode 100644
index 1bc5d6502fca5..0000000000000
--- a/docs-v2/pages/hidden/subprocessors/index.mdx
+++ /dev/null
@@ -1,17 +0,0 @@
-
-# Subprocessors
-
-Below, you'll find a list of Pipedream’s Subprocessors in our capacity as a Processor (as defined by our Data Protection Addendum). Please check this list frequently for any updates.
-
-_Last updated March 17, 2021_
-
-| Company / Service | Scope of Subprocessing |
-| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------- |
-| [Amazon Web Services](https://aws.amazon.com/financial-services/security-compliance/compliance-center/?country-compliance-center-cards.sort-by=item.additionalFields.headline&country-compliance-center-cards.sort-order=asc&awsf.country-compliance-center-master-filter=*all) | Cloud hosting |
-| [Datadog](https://www.datadoghq.com/security/) | Application monitoring |
-| [Google Cloud Platform](https://cloud.google.com/security/compliance) | Cloud hosting |
-| [Looker Data Sciences, Inc.](https://looker.com/trust-center/compliance) | Business analytics |
-| [Redis Labs](https://redislabs.com/company/compliance-and-privacy/) | Cloud hosting |
-| [Snowflake Computing](https://www.snowflake.com/snowflakes-security-compliance-reports/) | Business analytics |
-| [Sentry](https://sentry.io/security/) | Application monitoring |
-| [OpenAI](https://openai.com/) | AI services (chat support, code gen, and more) |
diff --git a/docs-v2/pages/index.mdx b/docs-v2/pages/index.mdx
deleted file mode 100644
index b11182c4aee66..0000000000000
--- a/docs-v2/pages/index.mdx
+++ /dev/null
@@ -1,69 +0,0 @@
-import VideoPlayer from "@/components/VideoPlayer";
-
-# Introduction to Pipedream
-
-Pipedream is the easiest way to automate any process that connects APIs:
-
-- [Pipedream Connect](/connect) makes it easy to add thousands of customer-facing integrations to your app or AI agent in minutes
-- Our [visual builder](/workflows) lets you build and run complex workflows with code-level control when you need it, and no code when you don't
-
-The Pipedream platform includes:
-
-- A [serverless runtime](/workflows/building-workflows/code/) and [workflow service](/workflows/building-workflows/)
-- SDKs to handle [user authentication](/connect/) for {process.env.PUBLIC_APPS}+ APIs
-- Source-available [triggers](/workflows/building-workflows/triggers/) and [actions](/workflows/building-workflows/actions/) for [thousands of integrated apps](https://pipedream.com/explore/)
-- One-click [OAuth and key-based authentication](/apps/connected-accounts/) for more than {process.env.PUBLIC_APPS} APIs (use tokens directly in code or with pre-built actions)
-
-
-
-## Getting Started
-
-To get started, [sign up for a free account](https://pipedream.com/auth/signup) (no credit card required) and follow our [quickstart guide](/quickstart/) to create your first workflow or add your first integration.
-
-## Use Cases
-
-Pipedream supports use cases from prototype to production and is trusted by more than 1 million developers from startups to Fortune 500 companies:
-
-
-
-The platform processes billions of events and is built and [priced](https://pipedream.com/pricing/) for use at scale. [Our team](https://pipedream.com/about) has built internet scale applications and managed data pipelines in excess of 10 million events per second (EPS) at startups and high-growth environments like BrightRoll, Yahoo!, Affirm, and Dropbox.
-
-Our [community](https://pipedream.com/support) uses Pipedream for a wide variety of use cases including:
-
-- AI agents and chatbots
-- Workflow builders and SaaS automation
-- API orchestration and automation
-- Database automations
-- Custom notifications and alerting
-- Event queueing and concurrency management
-- Webhook inspection and routing
-- Prototyping and demos
-
-## Source-available
-
-Pipedream maintains a [source-available component registry](https://github.com/PipedreamHQ/pipedream) on GitHub so you can avoid writing boilerplate code for common API integrations. Use components as no code building blocks in workflows, or use them to scaffold code that you can customize. You can also [create a PR to contribute new components](/components/contributing/#contribution-process) via GitHub.
-
-## Contributing
-
-We hope that by providing a generous free tier, you will not only get value from Pipedream, but you will give back to help us improve the product for the entire community and grow the platform by:
-
-- [Contributing components](/components/contributing/) to the [Pipedream registry](https://github.com/PipedreamHQ/pipedream) or sharing via your own GitHub repo
-- Asking and answering questions in our [public community](https://pipedream.com/community/)
-- [Reporting bugs](https://pipedream.com/community/c/bugs/9) and [requesting features](https://github.com/PipedreamHQ/pipedream/issues/new?assignees=&labels=enhancement&template=feature_request.md&title=%5BFEATURE%5D+) that help us build a better product
-- Following us on [Twitter](https://twitter.com/pipedream), starring our [GitHub repo](https://github.com/PipedreamHQ/pipedream) and subscribing to our [YouTube channel](https://www.youtube.com/c/pipedreamhq)
-- Recommending us to your friends and colleagues
-
-Learn about [all the ways you can contribute](https://pipedream.com/contributing).
-
-## Support & Community
-
-If you have any questions or feedback, please [reach out in our community forum](https://pipedream.com/community) or [to our support team](https://pipedream.com/support).
-
-## Service Status
-
-Pipedream operates a status page at [https://status.pipedream.com](https://status.pipedream.com/). That page displays the uptime history and current status of every Pipedream service.
-
-When incidents occur, updates are published to the **#incidents** channel of [Pipedream's Slack Community](https://pipedream.com/support) and to the [@PipedreamStatus](https://twitter.com/PipedreamStatus) account on Twitter. On the status page itself, you can also subscribe to updates directly.
diff --git a/docs-v2/pages/pricing/_meta.tsx b/docs-v2/pages/pricing/_meta.tsx
deleted file mode 100644
index f07074c72382a..0000000000000
--- a/docs-v2/pages/pricing/_meta.tsx
+++ /dev/null
@@ -1,4 +0,0 @@
-export default {
- "index": "Overview",
- "faq": "FAQ",
-} as const
diff --git a/docs-v2/pages/pricing/faq.mdx b/docs-v2/pages/pricing/faq.mdx
deleted file mode 100644
index 1106ba4fd1550..0000000000000
--- a/docs-v2/pages/pricing/faq.mdx
+++ /dev/null
@@ -1,55 +0,0 @@
-# FAQ
-
-## How does workflow memory affect credits?
-
-Pipedream charges credits proportional to the memory configuration. If you run your workflow at the default memory of {process.env.MEMORY_LIMIT}, you are charged one credit each time your workflow executes for 30 seconds. But if you configure your workflow with `1024MB` of memory, for example, you're charged **four** credits, since you're using `4x` the default memory.
-
-## Are there any limits on paid tiers?
-
-**You can run any number of credits for any amount of compute time** on any paid tier. [Other platform limits](/workflows/limits/) apply.
-
-## When am I billed for paid plans?
-
-When you upgrade to a paid tier, Stripe will immediately charge your payment method on file for the platform fee tied to your plan (see [https://pipedream.com/pricing](https://pipedream.com/pricing))
-
-If you accrue any [additional credits](/pricing/#additional-credits), that usage is reported to Stripe throughout the [billing period](/pricing/#billing-period). That overage, as well as the next platform fee, is charged at the start of the _next_ billing period.
-
-## Do any plans support payment by invoice, instead of credit / debit card?
-
-Yes, Pipedream can issue invoices on the Business Plan. [Please reach out to support](https://pipedream.com/support)
-
-## How does Pipedream secure my credit card data?
-
-Pipedream stores no information on your payment method and uses Stripe as our payment processor. [See our security docs](/privacy-and-security/#payment-processor) for more information.
-
-## Are unused credits rolled over from one period to the next?
-
-**No**. On the Free tier, unused included daily credits under the daily limit are **not** rolled over to the next day.
-
-On paid tiers, unused included credits are also **not** rolled over to the next month.
-
-## How do I change my billing payment method?
-
-Please visit your [Stripe customer portal](https://pipedream.com/settings/billing?rtsbp=1) to change your payment method.
-
-## How can I view my past invoices?
-
-Invoices are emailed to your billing email address. You can also visit your [Stripe customer portal](https://pipedream.com/settings/billing?rtsbp=1) to view past invoices.
-
-## Can I retrieve my billing information via API?
-
-Yes. You can retrieve your usage and billing metadata from the [/users/me](/rest-api/#get-current-user-info) endpoint in the Pipedream REST API.
-
-## How do I cancel my paid plan?
-
-You can cancel your plan in your [Billing and Usage Settings](https://pipedream.com/settings/billing). You will have access to your paid plan through the end of your current billing period. Pipedream does not prorate plans cancelled within a billing period.
-
-If you'd like to process your cancellation immediately, and downgrade to the free tier, please [reach out](https://pipedream.com/support).
-
-## How do I change the billing email, VAT, or other company details tied to my invoice?
-
-You can update your billing information in your [Stripe customer portal](https://pipedream.com/settings/billing?rtsbp=1).
-
-## How do I contact the Pipedream team with other questions?
-
-You can start a support ticket [on our support page](https://pipedream.com/support). Select the **Billing Issues** category to start a billing related ticket.
diff --git a/docs-v2/pages/pricing/index.mdx b/docs-v2/pages/pricing/index.mdx
deleted file mode 100644
index 9c0e004dd2c98..0000000000000
--- a/docs-v2/pages/pricing/index.mdx
+++ /dev/null
@@ -1,194 +0,0 @@
-import Callout from '@/components/Callout'
-
-# Plans and Pricing
-
-We believe anyone should be able to run simple, low-volume workflows at no cost, and whatever you're building, we want you to be able to prototype and get to value before having to pay Pipedream any money. We also hope that you share your [sources](/components/contributing/#sources), [workflows](/workflows/building-workflows/), [actions](/components/contributing/#actions), and other integration components so that other Pipedream users benefit from your work.
-
-To support these goals, Pipedream offers a generous [free plan](#free-plan), free access to Pipedream Connect [while in `development`](/connect/environments), and you can **[request a free trial of our Advanced plan](https://pipedream.com/pricing)**. If you exceed the limits of the free plan, you can upgrade to one of our [paid plans](#paid-plans).
-
-[Read more about our plans and pricing here](https://pipedream.com/pricing).
-
-## Free plan
-
-Workspaces on the Free plan have access to many of the Pipedream features, including [Workflows](/workflows) and [Connect](/connect). However, the free plan includes several limitations:
-
-**General:**
-- **Daily credit limit**: Free workspaces have a [daily limit of free credits](/workflows/limits/#daily-credits-limit) that cannot be exceeded
-- **Support**: Community support is available via our [community forum](https://pipedream.com/community) and [Slack](https://join.slack.com/t/pipedream-users/shared_invite/zt-36p4ige2d-9CejV713NlwvVFeyMJnQPwL)
-
-**Connect:**
-- **Development environment**: Access all the features of Connect while in [development mode](/connect/environments)
-
-**Workflows:**
-- **Active workflows**: Limited number of active workflows
-- **Connected accounts**: Limited number of connected accounts (like Slack, Google Sheets, GitHub, etc.)
-
-To lift the daily credit limit, access additional features, or use Connect in production, [upgrade to a paid plan](https://pipedream.com/pricing).
-
-## Paid plans
-
-[Visit our pricing page](https://pipedream.com/pricing) to learn more about the details of our paid plans.
-
-## Pipedream Connect
-
-Pipedream Connect provides SDKs and APIs to let you easily add {process.env.PUBLIC_APPS}+ integrations to your app or AI agent. Connect pricing is based on two inputs:
-
-1. **[API usage](#how-credits-work-in-connect)**: Credits consumed by action executions, tool calls, and other operations
-2. **[End users](#end-users)**: Referred to as "external users" throughout the docs and API, this is the number of unique users in your application who connect accounts
-
-### How credits work in Connect
-
-API operations that consume credits (1 credit per 30 seconds of compute time):
-
-- **Action executions**
-- **Tool calls via MCP**
-- **Source execution for deployed triggers**
-- **Requests to the Connect proxy**
-
-API operations that do **not** consume credits:
-
-- **Listing apps, actions, and triggers**
-- **Listing accounts**
-- **Configuring actions and triggers**
-- **Other management operations**
-
-### End users
-
-End (external) users are a core billing component for Connect pricing, separate from credit usage:
-
-- **End user definition**: A unique end user in your application who connects one or more accounts through Connect
-- **User to account relationship**: Each end user can have multiple connected accounts (e.g., one user might connect their Slack, Gmail, and GitHub accounts)
-- **Billing impact**: For standard plans, you're billed based on the number of unique external users, not the number of connected accounts
-
-## Pipedream Workflows
-
-Pipedream Workflows uses a credit-based pricing model where you pay for compute time used during workflow execution.
-
-### Credits and billing
-
-Pipedream uses a number of terms to describe platform metrics and details of our plans. See the definitions of key terms in the [glossary](/glossary).
-
-#### How credits work for Workflows
-
-Pipedream charges one credit per 30 seconds of compute time at 256MB megabytes of memory (the default) per [workflow segment](/workflows/building-workflows/control-flow/#workflow-segments). Credits are also charged for [dedicated workers](/workflows/building-workflows/settings/#eliminate-cold-starts).
-
-Unlike some other platforms, Pipedream does not charge for usage based on the number of steps. Credits are not charged for workflows during development or testing.
-
-Adding additional memory capacity to workflows will increase credit usage in intervals of 256 megabytes. For example, doubling the memory of a workflow from 256MB to 512MB will double the cost of credits in the same execution time.
-
-**Scenarios**
-
-
-Developing a workflow with test events in the Pipedream workflow builder is free. No credit usage is incurred.
-
-
-
-If an active workflow isn't executed in a billing period no credit usage is incurred. Pipedream only charges credits for workflow executions.
-
-
-**Workflow segments configured to use 256MB memory (default)**
-
-| Scenario | Credits Used |
-| --- | --- |
-| Simple linear workflow - 1 second of compute | 1 credit |
-| Simple linear workflow - 15 seconds of compute | 1 credit |
-| Simple linear workflow - 35 seconds of compute | 2 credits |
-| Linear workflow with a delay- 15 seconds before the delay- 15 seconds after execution resumes | 2 credits |
-| Workflow with a branch - 3 seconds before the branch- 15 seconds within the executed branch | 2 credits |
-| Workflow with a branch - 3 seconds before the branch, 15 seconds within the executed branch, 3 seconds after the branch in the parent flow | 3 credits |
-
-**Workflow segments configured to use 1GB memory**
-
-| Scenario | Credits Used |
-| --- | --- |
-| Simple linear workflow - 1 second of compute | 4 credit |
-| Simple linear workflow - 15 seconds of compute | 4 credit |
-| Simple linear workflow - 35 seconds of compute | 8 credits |
-| Linear workflow with a delay- 15 seconds before the delay- 15 seconds after execution resumes | 8 credits |
-| Workflow with a branch - 3 seconds before the branch- 15 seconds within the executed branch | 8 credits |
-| Workflow with a branch - 3 seconds before the branch, 15 seconds within the executed branch, 3 seconds after the branch in the parent flow | 24 credits |
-
-#### Source credit usage
-
-When an [event source](/workflows/building-workflows/triggers/) triggers a workflow, **the source execution is included for free.** This includes workspaces on the [Free plan](/pricing/#free-plan).
-
-When a source is configured as a workflow trigger, the core value is in the workflow. You won't be charged for two credits (one to run the source, one to run the workflow) when the workflow contains the core logic.
-
-
-This free credit per execution **only** applies to sources from the [Pipedream public registry](/workflows/building-workflows/triggers/). If you deploy a private custom source to your account, then all computation time including the inital 30 seconds for that private source counts toward credits.
-
-
-
-A polling source finishing under 30 seconds per execution
-
-For example, a source that polls an API for new events like [Airtable - New Row Added](https://pipedream.com/apps/airtable/triggers/new-records) only takes ~5 seconds to poll and emit events to subscribing workflows.
-
-This would result in **0 credits** per run because the **Airtable - New Row Added** source is a [publicly available component](https://pipedream.com/apps/airtable/triggers/new-records).
-
-
-
-A polling source finishing over 30 seconds per execution
-
-Consider a source (like **RSS - New Item in Feed** for instance) that takes 60 seconds total to finish polling, per execution.
-
-Each execution of this source would result in **0 credits** because the **RSS - New Item in Feed** source is a [publicly available component](https://pipedream.com/apps/rss/triggers/new-item-in-feed).
-
-
-
-A custom source that finished under 30 seconds per execution
-
-This would result in **1 credit** per execution because the initial free credit only applies to Pipedream Public Registry sources attached to at least one workflow.
-
-
-
-#### Included credits
-
-When you sign up for a paid plan, you pay a platform fee at the start of each [billing period](#billing-period). This minimum monthly charge grants you a base of included credits that you can use for the rest of your billing period (see your [Billing and Usage Settings](https://pipedream.com/settings/billing) for your exact quota). If you have been granted any additional credit increases by Pipedream, that is added to the included credits.
-
-#### Additional credits
-
-Any credits you run over your [included credit](/workflows/limits/#daily-credits-limit) are called **additional credits**. This usage is added to the invoice for your next [billing period](#billing-period), according to the [invoicing cycle described here](/pricing/faq/#when-am-i-billed-for-paid-plans).
-
-#### Data store keys
-
-A Data Store key represents a single record in a Data Store.
-
-In the example below, there are two records in the Data Store, and therefore there are two keys total.
-
-
-
-## Managing your plan
-
-To cancel, upgrade or downgrade your plan, open the [pricing page](https://pipedream.com/pricing).
-
-To update your billing details, such as your VAT number, email address, etc. use the **Manage Billing Information** button in your [workspace billing settings](https://pipedream.com/settings/billing) to change your plan. Within this portal you can cancel, upgrade or downgrade your plan at any time.
-
-### Billing period
-
-Many of the usage statistics for paid users are tied to a **billing period**. Your billing period starts when you sign up for a paid plan, and recurs roughly once a month for the duration of your subscription.
-
-For example, if you sign up on Jan 1st, your first billing period will last one month, ending around Feb 1st, at which point you'll start a new billing period.
-
-Your invoices are tied to your billing period. [Read more about invoicing / billing here](/pricing/faq/#when-am-i-billed-for-paid-plans).
-
-### Upgrading
-
-Upgrading your subscription instantly activates the features available to your workspace. For example, if you upgrade your workspace from Free to Basic, that workspace will immediately be able to activate more workflows and connected accounts.
-
-### Downgrading
-
-Downgrades will apply at the end of your billing cycle, and any workflows or integrations that use features outside the new billing plan will be automatically disabled.
-
-For example, if your workspace downgrades from Advanced to Basic and a workflow uses an Advanced feature such as [auto-retries](/workflows/building-workflows/settings/#auto-retry-errors), then this workflow will be disabled because the workspace plan no longer qualifies for that feature.
-
-Additionally, resource limits such as the number of active workflows and connected accounts will also be enforced at this same time.
-
-### Cancelling your plan
-
-To cancel your plan, open the [pricing page](https://pipedream.com/pricing) and click **Cancel** beneath your current plan.
-
-Cancelling your subscription will apply at the end of your current billing period. Workflows, connected accounts and sources will be deactivated from newest to oldest until the Free limits have been reached.
-
-## Detailed pricing information
-
-Refer to our [pricing page](https://pipedream.com/pricing) for detailed pricing information.
\ No newline at end of file
diff --git a/docs-v2/pages/privacy-and-security/_meta.tsx b/docs-v2/pages/privacy-and-security/_meta.tsx
deleted file mode 100644
index 853d3c0df56ae..0000000000000
--- a/docs-v2/pages/privacy-and-security/_meta.tsx
+++ /dev/null
@@ -1,6 +0,0 @@
-export default {
- "index": "Privacy and Security",
- "best-practices": "Security best-practices",
- "hipaa": "HIPAA compliance",
- "pgp-key": "PGP key",
-} as const
diff --git a/docs-v2/pages/privacy-and-security/best-practices.mdx b/docs-v2/pages/privacy-and-security/best-practices.mdx
deleted file mode 100644
index 48938b3d528cf..0000000000000
--- a/docs-v2/pages/privacy-and-security/best-practices.mdx
+++ /dev/null
@@ -1,55 +0,0 @@
-# Security Best Practices
-
-Pipedream implements a range of [privacy and security measures](/privacy-and-security/) meant to protect your data from unauthorized access. Since Pipedream [workflows](/workflows/building-workflows/), [event sources](/workflows/building-workflows/triggers/), and other resources can run any code and process any event data, you also have a responsibility to ensure you handle that code and data securely. We've outlined a handful of best practices for that below.
-
-## Store secrets as Pipedream connected accounts or environment variables
-
-Never store secrets like API keys directly in code. These secrets should be stored in one of two ways:
-
-- [If Pipedream integrates with the app](https://pipedream.com/apps), use [connected accounts](/apps/connected-accounts/) to link your apps / APIs.
-- If you need to store credentials for an app Pipedream doesn't support, or you need to store arbitrary configuration data, use [environment variables](/workflows/environment-variables/).
-
-Read more about how Pipedream secures connected accounts / environment variables [here](/privacy-and-security/#third-party-oauth-grants-api-keys-and-environment-variables).
-
-## Deliver data to Pipedream securely
-
-Always send data over HTTPS to Pipedream endpoints.
-
-## Send data out of Pipedream securely
-
-When you connect to APIs in a workflow, or deliver data to third-party destinations, encrypt that data in transit. For example, use HTTPS endpoints when sending HTTP traffic to third parties.
-
-## Require authorization for HTTP triggers
-
-HTTP triggers are public by default, and require no authorization or token to invoke.
-
-For many workflows, you should [configure authorization](/workflows/building-workflows/triggers/#authorizing-http-requests) to ensure that only authorized parties can invoke your HTTP trigger.
-
-For third-party services like webhooks, that authorize requests using their own mechanism, use the [Validate Webhook Auth action](https://pipedream.com/apps/http/actions/validate-webhook-auth). This supports common auth options, and you don't have to write any code to configure it.
-
-## Validate signatures for incoming events, where available
-
-Many apps pass a **signature** with event data delivered via webhooks (or other push delivery systems). The signature is an opaque value computed from the incoming event data and a secret that only you and the app know. When you receive the event, you can validate the signature by computing it yourself and comparing it to the signature sent by the app. If the two values match, it verifies that the app sent the data, and not some third party.
-
-Signatures are specific to the app sending the data, and the app should provide instructions for signature validation. **Not all apps compute signatures, but when they do, you should always verify them**.
-
-When you use a Pipedream [event source](/workflows/building-workflows/triggers/) as your workflow trigger, Pipedream should verify the signature for you. You can always [audit the code behind the event source](#audit-code-or-packages-you-use-within-a-workflow) to confirm this, and suggest further security improvements that you find.
-
-See [Stripe's signature docs](https://stripe.com/docs/webhooks/signatures) for a real-world example. Pipedream's Stripe event source [verifies this signature for you](https://github.com/PipedreamHQ/pipedream/blob/bb1ebedf8cbcc6f1f755a8878c759522b8cc145b/components/stripe/sources/custom-webhook-events/custom-webhook-events.js#L49).
-
-## Audit code or packages you use within a workflow
-
-Pipedream workflows are just code. Pipedream provides prebuilt triggers and actions that facilitate common use cases, but these are written and run as code within your workflow. You can examine and modify this code in any way you'd like.
-
-This also means that you can audit the code for any triggers or actions you use in your workflow. We encourage this as a best practice. Even code authored by Pipedream can be improved, and if you notice a vulnerability or other issue, you can submit a patch or raise an issue [in our GitHub repo](https://github.com/PipedreamHQ/pipedream/tree/master/components).
-
-The same follows for [npm](https://www.npmjs.com/) packages. Before you use a new npm package in your workflow, review its page on npm and its repo, if available. Good packages should have recent updates. The package should have a healthy number of downloads and related activity (like GitHub stars), and the package author should be responsive to issues raised by the community. If you don't observe these signals, be wary of using the package in your workflow.
-
-## Limit what you log and return from steps
-
-[Pipedream retains a limited history of event data](/workflows/limits/#event-history) and associated logs for event sources and workflows. But if you cannot log specific data in Pipedream for privacy / security reasons, or if you want to limit risk, remember that **Pipedream only stores data returned from or logged in steps**. Specifically, Pipedream will only store:
-
-- The event data emitted from event sources, and any `console` logs / errors
-- The event data that triggers your workflow, any `console` logs / errors, [step exports](/workflows/#step-exports), and any data included in error stack traces.
-
-Variables stored in memory that aren't logged or returned from steps are not included in Pipedream logs. Since you can modify any code in your Pipedream workflow, if you want to limit what gets logged from a Pipedream action or other step, you can adjust the code accordingly, removing any logs or step exports.
diff --git a/docs-v2/pages/privacy-and-security/hipaa.mdx b/docs-v2/pages/privacy-and-security/hipaa.mdx
deleted file mode 100644
index 02a64a0da4529..0000000000000
--- a/docs-v2/pages/privacy-and-security/hipaa.mdx
+++ /dev/null
@@ -1,39 +0,0 @@
-# HIPAA compliance
-
-Pipedream can [sign Business Associate Addendums (BAAs)](#signing-a-business-associate-addendum) for Business customers intending to pass PHI to Pipedream. We can also provide a third-party SOC 2 report detailing our HIPAA-related controls.
-
-## HIPAA-eligible services
-
-- [Workflows](/workflows/building-workflows/)
-- [Event sources](/workflows/building-workflows/triggers/)
-- [Data stores](/workflows/data-management/data-stores/)
-- [Destinations](/workflows/data-management/destinations/)
-- [Pipedream Connect](/connect)
-
-### Ineligible services
-
-Any service not listed in the [HIPAA-eligible services](#hipaa-eligible-services) section is not eligible for use with PHI under HIPAA. Please reach out to [Pipedream support](https://pipedream.com/support) if you have questions about a specific service.
-
-The following services are explicitly not eligible for use with PHI under HIPAA.
-
-- [v1 workflows](/deprecated/migrate-from-v1/)
-- [File stores](/workflows/data-management/file-stores/)
-
-## Your obligations as a customer
-
-If you are a covered entity or business associate under HIPAA, you must ensure that [you have a BAA in place with Pipedream](#signing-a-business-associate-addendum) before passing PHI to Pipedream.
-
-You must also ensure that you are using Pipedream in a manner that complies with HIPAA. This includes:
-
-- You may only use [HIPAA-eligible services](#hipaa-eligible-services) to process or store PHI
-- You may not include PHI in Pipedream resource names, like the names of projects or workflows
-
-## Signing a Business Associate Addendum
-
-Pipedream is considered a Business Associate under HIPAA regulations. If you are a Covered Entity or Business Associate under HIPAA, you must have a Business Associate Agreement (BAA) in place with Pipedream before passing PHI to Pipedream. This agreement is an addendum to our standard terms, and outlines your obligations as a customer and Pipedream's obligations as a Business Associate under HIPAA.
-
-Please request a BAA by visiting [https://pipedream.com/support](https://pipedream.com/support).
-
-## Requesting information on HIPAA controls
-
-Please request compliance reports from [https://pipedream.com/support](https://pipedream.com/support). Pipedream can provide a SOC 2 Type II report covering Security controls, and a SOC 2 Type I report for Confidentiality and Availability. In 2025, Pipedream plans to include Confidentiality and Availability controls in our standard Type II audit.
diff --git a/docs-v2/pages/privacy-and-security/index.mdx b/docs-v2/pages/privacy-and-security/index.mdx
deleted file mode 100644
index 8cea1cd5b2060..0000000000000
--- a/docs-v2/pages/privacy-and-security/index.mdx
+++ /dev/null
@@ -1,236 +0,0 @@
-# Privacy and Security at Pipedream
-
-Pipedream is committed to the privacy and security of your data. Below, we outline how we handle specific data and what we do to secure it. This is not an exhaustive list of practices, but an overview of key policies and procedures.
-
-It is also your responsibility as a customer to ensure you're securing your workflows' code and data. See our [security best practices](/privacy-and-security/best-practices/) for more information.
-
-Pipedream has demonstrated SOC 2 compliance and can provide a SOC 2 Type 2 report upon request (please reach out to support@pipedream.com ).
-
-If you have any questions related to data privacy, please email privacy@pipedream.com . If you have any security-related questions, or if you'd like to report a suspected vulnerability, please email security@pipedream.com .
-
-## Reporting a Vulnerability
-
-If you'd like to report a suspected vulnerability, please contact security@pipedream.com .
-
-If you need to encrypt sensitive data as part of your report, you can use our security team's [PGP key](/privacy-and-security/pgp-key/).
-
-## Reporting abuse
-
-If you suspect Pipedream resources are being used for illegal purposes, or otherwise violate [the Pipedream Terms](https://pipedream.com/terms), [report abuse here](/abuse/).
-
-## Compliance
-
-### SOC 2
-
-Pipedream undergoes annual third-party audits. We have demonstrated SOC 2 compliance and can provide a SOC 2 Type 2 report upon request. Please reach out to support@pipedream.com to request the latest report.
-
-We use [Drata](https://drata.com) to continuosly monitor our infrastructure's compliance with standards like SOC 2, and you can visit our [Security Report](https://app.drata.com/security-report/b45c2f79-1968-496b-8a10-321115b55845/27f61ebf-57e1-4917-9536-780faed1f236) to see a list of policies and processes we implement and track within Drata.
-
-### Annual penetration test
-
-Pipedream performs annual pen tests with a third-party security firm. Please reach out to support@pipedream.com to request the latest report.
-
-### GDPR
-
-#### Data Protection Addendum
-
-Pipedream is considered both a Controller and a Processor as defined by the GDPR. As a Processor, Pipedream implements policies and practices that secure the personal data you send to the platform, and includes a [Data Protection Addendum](https://pipedream.com/dpa) as part of our standard [Terms of Service](https://pipedream.com/terms).
-
-The Pipedream Data Protection Addendum includes the [Standard Contractual Clauses (SCCs)](https://ec.europa.eu/info/law/law-topic/data-protection/international-dimension-data-protection/standard-contractual-clauses-scc_en). These clarify how Pipedream handles your data, and they update our GDPR policies to cover the latest standards set by the European Commission.
-
-You can find a list of Pipedream subprocessors [here](/subprocessors/).
-
-#### Submitting a GDPR deletion request
-
-When you [delete your account](/account/user-settings/#delete-account), Pipedream deletes all personal data we hold on you in our system and our vendors.
-
-If you need to delete data on behalf of one of your users, you can delete the event data yourself in your workflow or event source (for example, by deleting the events, or by removing the data from data stores). Your customer event data is automatically deleted from Pipedream subprocessors.
-
-### HIPAA
-
-Pipedream can sign Business Associate Addendum (BAAs) for customers intending to pass PHI to Pipedream. We can also provide a third-party SOC 2 report detailing our HIPAA-related controls. See our [dedicated HIPAA docs](/privacy-and-security/hipaa) for more details.
-
-## Hosting Details
-
-Pipedream is hosted on the [Amazon Web Services](https://aws.amazon.com/) (AWS) platform in the `us-east-1` region. The physical hardware powering Pipedream, and the data stored by our platform, is hosted in data centers controlled and secured by AWS. You can read more about AWS’s security practices and compliance certifications [here](https://aws.amazon.com/security/).
-
-Pipedream further secures access to AWS resources through a series of controls, including but not limited to: using multi-factor authentication to access AWS, hosting services within a private network inaccessible to the public internet, and more.
-
-## Intrustion Detection and Prevention
-
-Pipedream uses AWS WAF, GuardDuty, CloudTrail, CloudWatch, Datadog, and other custom alerts to monitor and block suspected attacks against Pipedream infrastructure, including DDoS attacks.
-
-Pipedream reacts to potential threats quickly based on [our incident response policy](#incident-response).
-
-## User Accounts, Authentication and Authorization
-
-When you sign up for a Pipedream account, you can choose to link your Pipedream login to either an existing [Google](https://google.com) or [Github](https://github.com) account, or create an account directly with Pipedream. Pipedream also supports [single-sign on](/workspaces/#configuring-single-sign-on-sso).
-
-When you link your Pipedream login to an existing identity provider, Pipedream does not store any passwords tied to your user account — that information is secured with the identity provider. We recommend you configure two-factor authentication in the provider to further protect access to your Pipedream account.
-
-When you create an account on Pipedream directly, with a username and password, Pipedream implements account security best practices (for example: Pipedream hashes your password, and the hashed password is encrypted in our database, which resides in a private network accessible only to select Pipedream employees).
-
-## Third party OAuth grants, API keys, and environment variables
-
-When you link an account from a third party application, you may be asked to either authorize a Pipedream OAuth application access to your account, or provide an API key or other credentials. This section describes how we handle these grants and keys.
-
-When a third party application supports an [OAuth integration](https://oauth.net/2/), Pipedream prefers that interface. The OAuth protocol allows Pipedream to request scoped access to specific resources in your third party account without you having to provide long-term credentials directly. Pipedream must request short-term access tokens at regular intervals, and most applications provide a way to revoke Pipedream's access to your account at any time.
-
-Some third party applications do not provide an OAuth interface. To access these services, you must provide the required authorization mechanism (often an API key). As a best practice, if your application provides such functionality, Pipedream recommends you limit that API key's access to only the resources you need access to within Pipedream.
-
-Pipedream encrypts all OAuth grants, key-based credentials, and environment variables at rest in our production database. That database resides in a private network. Backups of that database are encrypted. The key used to encrypt this database is managed by [AWS KMS](https://aws.amazon.com/kms/) and controlled by Pipedream. KMS keys are 256 bit in length and use the Advanced Encryption Standard (AES) in Galois/Counter Mode (GCM). Access to administer these keys is limited to specific members of our team. Keys are automatically rotated once a year. KMS has achieved SOC 1, 2, 3, and ISO 9001, 27001, 27017, 27018 compliance. Copies of these certifications are available from Amazon on request.
-
-When you link credentials to a specific source or workflow, the credentials are loaded into that program's [execution environment](#execution-environment), which runs in its own virtual machine, with access to RAM and disk isolated from other users' code.
-
-No credentials are logged in your source or workflow by default. If you log their values or [export data from a step](/workflows/#step-exports), you can always delete the data for that execution from your source or workflow. These logs will also be deleted automatically based on the [event retention](/workflows/limits#event-history) for your account.
-
-You can delete your OAuth grants or key-based credentials at any time by visiting [https://pipedream.com/accounts](https://pipedream.com/accounts). Deleting OAuth grants within Pipedream **do not** revoke Pipedream's access to your account. You must revoke that access wherever you manage OAuth grants in your third party application.
-
-## Pipedream REST API security, OAuth clients
-
-The Pipedream API supports two methods of authentication: [OAuth](/rest-api/auth/#oauth) and [User API keys](/rest-api/auth/#user-api-keys). **We recommend using OAuth clients** for a few reasons:
-
-✅ OAuth clients are tied to the workspace, administered by workspace admins
-✅ Tokens are short-lived
-✅ OAuth clients support scopes, limiting access to specific operations
-
-When testing the API or using the CLI, you can use your user API key. This key is tied to your user account and provides full access to any resources your user has access to, across workspaces.
-
-### OAuth clients
-
-Pipedream supports client credentials OAuth clients, which exchange a client ID and client secret for a short-lived access token. These clients are not tied to individual end users, and are meant to be used server-side. You must store these credentials securely on your server, never allowing them to be exposed in client-side code.
-
-Client secrets are salted and hashed before being saved to the database. The hashed secret is encrypted at rest. Pipedream does not store the client secret in plaintext.
-
-You can revoke a specific client secret at any time by visiting [https://pipedream.com/settings/api](https://pipedream.com/settings/api).
-
-### OAuth tokens
-
-Since Pipedream uses client credentials grants, access tokens must not be shared with end users or stored anywhere outside of your server environment.
-
-Access tokens are issued as JWTs, signed with an ED25519 private key. The public key used to verify these tokens is available at https://api.pipedream.com/.well-known/jwks.json. See [this workflow template](https://pipedream.com/new?h=tch_rBf76M) for example code you can use to validate these tokens.
-
-Access tokens are hashed before being saved in the Pipedream database, and are encrypted at rest.
-
-Access tokens expire after 1 hour. Tokens can be revoked at any time.
-
-## Pipedream Connect
-
-[Pipedream Connect](/connect/) is the easiest way for your users to connect to [over {process.env.PUBLIC_APPS}+ APIs](https://pipedream.com/apps), **right in your product**.
-
-### Client-side SDK
-
-Pipedream provides a [client-side SDK](/connect/api/#typescript-sdk-browser) to initiate authorization or accept API keys on behalf of your users in environments that can run JavaScript. You can see the code for that SDK [here](https://github.com/PipedreamHQ/pipedream/tree/master/packages/sdk).
-
-When you initiate authorization, you must:
-
-1. [Create a server-side token for a specific end user](/connect/api/#create-token)
-2. Initiate auth with that token, connecting an account for a specific user
-
-These tokens can only initiate the auth connection flow. They have no permissions to access credentials or perform other operations against the REST API. They are meant to be scoped to a specific user, for use in clients that need to initiate auth flows.
-
-Tokens expire after 4 hours, at which point you must create a new token for that specific user.
-
-### Connect Link
-
-You can also use [Connect Link](/connect/connect-link/) to generate a URL that initiates the authorization flow for a specific user. This is useful when you want to initiate the auth flow from a client-side environment that can't run JavaScript, or include the link in an email, chat message, etc.
-
-Like tokens, Connect Links are coupled to specific users, and expire after 4 hours.
-
-### REST API
-
-The Pipedream Connect API is a subset of the [Pipedream REST API](/rest-api/). See the [REST API Security](#pipedream-rest-api-security-oauth-clients) section for more information on how we secure the API.
-
-## Execution environment
-
-The **execution environment** refers to the environment in which your sources, workflows, and other Pipedream code is executed.
-
-Each version of a source or workflow is deployed to its own virtual machine in AWS. This means your execution environment has its own RAM and disk, isolated from other users' environments. You can read more about the details of the virtualization and isolation mechanisms used to secure your execution environment [here](https://firecracker-microvm.github.io/).
-
-Instances of running VMs are called **workers**. If Pipedream spins up three VMs to handle multiple, concurrent requests for a single workflow, we're running three **workers**. Each worker runs the same Pipedream execution environment. Workers are ephemeral — AWS will shut them down within ~5 minutes of inactivity — but you can configure [dedicated workers](/workflows/building-workflows/settings/#eliminate-cold-starts) to ensure workers are always available to handle incoming requests.
-
-## Controlling egress traffic from Pipedream
-
-By default, outbound traffic shares the same network as other AWS services deployed in the `us-east-1` region. That means network requests from your workflows (e.g. an HTTP request or a connection to a database) originate from the standard range of AWS IP addresses.
-
-[Pipedream VPCs](/workflows/vpc/) enable you to run workflows in dedicated and isolated networks with static outbound egress IP addresses that are unique to your workspace (unlike other platforms that provide static IPs common to all customers on the platform). Outbound network requests from workflows that run in a VPC will originate from these IP addresses, and only workflows in your workspace will run there.
-
-## Encryption of data in transit, TLS (SSL) Certificates
-
-When you use the Pipedream web application at [https://pipedream.com](https://pipedream.com), traffic between your client and Pipedream services is encrypted in transit. When you create an HTTP interface in Pipedream, the Pipedream UI defaults to displaying the HTTPS endpoint, which we recommend you use when sending HTTP traffic to Pipedream so that your data is encrypted in transit.
-
-All Pipedream-managed certificates, including those we create for [custom domains](/workflows/domains/), are created using [AWS Certificate Manager](https://aws.amazon.com/certificate-manager/). This eliminates the need for our employees to manage certificate private keys: these keys are managed and secured by Amazon. Certificate renewal is also handled by Amazon.
-
-## Encryption of data at rest
-
-Pipedream encrypts customer data at rest in our databases and data stores. We use [AWS KMS](https://aws.amazon.com/kms/) to manage encryption keys, and all keys are controlled by Pipedream. KMS keys are 256 bit in length and use the Advanced Encryption Standard (AES) in Galois/Counter Mode (GCM). Access to administer these keys is limited to specific members of our team. Keys are automatically rotated once a year. KMS has achieved SOC 1, 2, 3, and ISO 9001, 27001, 27017, 27018 compliance. Copies of these certifications are available from Amazon on request.
-
-## Email Security
-
-Pipedream delivers emails to users for the purpose of email verification, error notifications, and more. Pipedream implements [SPF](https://en.wikipedia.org/wiki/Sender_Policy_Framework) and [DMARC](https://en.wikipedia.org/wiki/DMARC) DNS records to guard against email spoofing / forgery. You can review these records by using a DNS lookup tool like `dig`:
-
-```bash
-# SPF
-dig pipedream.com TXT +short
-# DMARC
-dig _dmarc.pipedream.com TXT +short
-```
-
-## Incident Response
-
-Pipedream implements incident response best practices for identifying, documenting, resolving and communicating incidents. Pipedream publishes incident notifications to a status page at [status.pipedream.com](https://status.pipedream.com/) and to the [@PipedreamStatus Twitter account](https://twitter.com/pipedreamstatus).
-
-Pipedream notifies customers of any data breaches according to our [Data Protection Addendum](https://pipedream.com/dpa).
-
-## Software Development
-
-Pipedream uses GitHub to store and version all production code. Employee access to Pipedream's GitHub organization is protected by multi-factor authentication.
-
-Only authorized employees are able to deploy code to production. Deploys are tested and monitored before and after release.
-
-## Vulnerability Management
-
-Pipedream monitors our code, infrastructure and core application for known vulnerabilities and addresses critical vulnerabilities in a timely manner.
-
-## Corporate Security
-
-### Background Checks
-
-Pipedream performs background checks on all new hires.
-
-### Workstation Security
-
-Pipedream provides hardware to all new hires. These machines run a local agent that sets configuration of the operating system to hardened standards, including:
-
-- Automatic OS updates
-- Hard disk encryption
-- Anti-malware software
-- Screen lock
-
-and more.
-
-### System Access
-
-Employee access to systems is granted on a least-privilege basis. This means that employees only have access to the data they need to perform their job. System access is reviewed quarterly, on any change in role, or upon termination.
-
-### Security Training
-
-Pipedream provides annual security training to all employees. Developers go through a separate, annual training on secure software development practices.
-
-## Data Retention
-
-Pipedream retains data only for as long as necessary to provide the core service. Pipedream stores your workflow code, data in data stores, and other data indefinitely, until you choose to delete it.
-
-Event data and the logs associated with workflow executions are stored according to [the retention rules on your account](/workflows/limits/#event-history).
-
-Pipedream deletes most internal application logs and logs tied to subprocessors within 30 days. We retain a subset of logs for longer periods where required for security investigations.
-
-## Data Deletion
-
-If you choose to delete your Pipedream account, Pipedream deletes all customer data and event data associated with your account. We also make a request to all subprocessors to delete any data those vendors store on our behalf.
-
-Pipedream deletes customer data in backups within 30 days.
-
-## Payment Processor
-
-Pipedream uses [Stripe](https://stripe.com) as our payment processor. When you sign up for a paid plan, the details of your payment method are transmitted to and stored by Stripe [according to their security policy](https://stripe.com/docs/security/stripe). Pipedream stores no information about your payment method.
diff --git a/docs-v2/pages/privacy-and-security/pgp-key.mdx b/docs-v2/pages/privacy-and-security/pgp-key.mdx
deleted file mode 100644
index 80da9f1225816..0000000000000
--- a/docs-v2/pages/privacy-and-security/pgp-key.mdx
+++ /dev/null
@@ -1,64 +0,0 @@
-
-# PGP Key
-
-If you'd like to encrypt sensitive information in communications to Pipedream, use this PGP key.
-
-- Key ID: `3C85BC49602873EB`
-- Fingerprint: `E0AD ABAC 0597 5F51 8BF5 3ECC 3C85 BC49 6028 73EB`
-- User ID: `Pipedream Security `
-
-```
------BEGIN PGP PUBLIC KEY BLOCK-----
-
-mQINBF9n4TABEACxKdiysQswLHSg7u1uUtY3evSNeuqU4DGNxLwVmPLUt4CRd170
-EgeCnGpLXQtbQI6HccZapD2emAF0PHXXvx/Q6VB+8iuIZorYGfafIvXsaZhIakrp
-xAkSY/eZ/YVWNnnqCpwHxjccFjpIfWph/MVoJ853Eg42IwEGLF7fPMPdcZ1W6S/q
-kZzRLMKW60sLvyeTdyemUd/sza72ouv0FioP5zNOmZx8mawVvVeVrM2TD14cJ454
-zmYUkxlyvLnHxIF+kZUoLk628qGjTzvEnWlIrLiTQRvTyefzpBBcVz+px35zOFz9
-1DdQXz6EFgP46zeLVa8m8dDBkadJPoGFWgMOKlRhYxfdlZlVHSXJcwTl7jN4EW6G
-+Oagp36oQvVALtpakP7TUyZ7iKi1gU/i2nAgb885hdMO3bRX8vtg8RYan/3wzKOm
-Ky/8rOAq9tFporqCU/EQWbalbBWT6yIn0zxmO33199B8cvIZPg9ZMsrMtSqKu83L
-9vqGTK6pVSKEBCqSqmOhveKjgV+gsniKj+0ZiudxMQ8YzSa40dbBPTj0d5GB8Ceo
-HVzzZZVcsOFbWU3mEqyhus1q81B58DjAouQlH5RoQ4U/MgsZnbghPTxkir3wttPB
-kbbN3DnEHwOPI9ErvBU5UEcA39VqJaMSWImsX450GGfX/sSUNOw2wSXV7QARAQAB
-tCtQaXBlZHJlYW0gU2VjdXJpdHkgPHNlY3VyaXR5QHBpcGVkcmVhbS5jb20+iQJO
-BBMBCAA4FiEE4K2rrAWXX1GL9T7MPIW8SWAoc+sFAl9n4TACGwMFCwkIBwIGFQoJ
-CAsCBBYCAwECHgECF4AACgkQPIW8SWAoc+vIjA//ZMkS6qnWhEygSBoKV2ZRfCF+
-vsKCaimMD369w+pGSldJ9cNA7EKbGzs7cp+jkOaq9yruevy+OuHupSUJUEsaOhzk
-fnSHdo0EO/47AJ6yWNrziS1IsHU/aZYA++wfbrn90RCmlCbfErgarkDSsKkFhMra
-bWRNj/OXcIOJsBEHwALTpgMLjDXngGU6iwM6hFgvqIVeuBFQjbYwTLbBwfuXrxWF
-o3olmqgRL4KE6wKzu3nQDBlxHrumF8+34V2P7DSgDCDZzbZOcYZ+erroQrhq8hkL
-D1gf2TopHzdjiVXR6VgV0a4qOKniQU5weiiV7ESeuOnNKdGjq5JWHnI6XmEPeAvv
-f87PFArbqde75Mv258BF+TTMa6Kt3Uv8wIwvVo78LRsOENja89Q+v3bUn064lWCP
-6XLROQD5zaapnMOzFLVW0KDq2z0edud+0W6lNRgB9tgXZ59OgbMvEVah1rf+BnTv
-OZ0In/KBsg5Xl3+OapWrspTk9WCVnZ5KOdMYM6s1pN1P5ocDTnvBkDjs2gBUCUZ8
-bSjnoAaoji/DqXGWEWD5soZRbGoVjLqMCPQyMjTCrt9IH9EAAgrRkmkjeACGVXtk
-FFkY+nZ/7z1Jd6wBd482H65gPjQf/wJmaBdgGX9yfG7bQJKxEYZUnCv/9yt551Jw
-aE9s4B/LAHI3S7BeQDO5Ag0EX2fhMAEQAN7Rn6TfP79WOMcweATB2cLlfqAF77xf
-Dh2nVdpWG6IDF2Bke2IU4hhz/Egkx+mR6Av8beufrUeaMZXevBnuWfT94Qk/nBvx
-RWJbSkvYK1q7hMW5QqJgPcp+kJX6WLVMRNkCJjjyd24kdIneZ0X1oudREXO5HOBw
-A68bzIwsJqzXfINt0GFJjGQ71COoStMI+/GqGlKsee8ajwzI03yBkI7nWDIx9UkJ
-QFR/34jnf0QSpfE65cl3dwI5f0a9oQoBsg4XqcIAjjqJzismEfScVCyj/ru97e+g
-jdAJWdEhZDyv5IDHX6+Jyc7JUl+6+chufqzeKwns7OFEBebmyKB2vVzQnah6xtJu
-w+VsVk4EepIRXIC2vY/+ZRiLaO5R0U4WefJZEJS1YrKaJ7nGkEICfPnVu+d6f3jb
-aed/k9S7zfIugcqX42mmac4+hKm4rJ/9/W0dqbqQnQfdRilGax6Poco9LSEzY6zQ
-7Bgnkz7/gTBBC4/YyTxZNnxil+mRg6uePlUBA4/p224FMx65K0WVgKCnalELY68f
-a5z7fVUmfLCKLzeMwSRvhWSjVgMJ6XB8ngkci6OtsI0eBJutGxFhcBD+GqafBOWC
-KP7Me8DJRx8F6bPbpJqj+T1+hROerLTFQRfm6IuL5LjzlNGteD+ZwcIMql++22/q
-ta7Pfac/+rOfABEBAAGJAjYEGAEIACAWIQTgrausBZdfUYv1Psw8hbxJYChz6wUC
-X2fhMAIbDAAKCRA8hbxJYChz6+tGEACGVCcVmXpKFveN6lhSvuJG3J9eddEQgx0g
-DKirFTzgXDbVc91+hRHcNK6Dk6udL7iZM79pAy26oYqP7VAkA6VwU91xG/0Sdk4a
-f0/i3BkbmE2kaKiJj4pn8F3ZihEKbSgbn7VsXkvE+9k1zkLKg6c7BBn2U6s4rW5g
-mBWf92bhxnp3mstP5Ci7duJoEM8xMf/BCiCJGksjIStLOmxCn+I6N0diAa1CPcA9
-U34Cj1sPv8R9sB1sLjdanWLRL5aViE7Zo4bavX70oQXZWATuMoVgDcSCHD7K9iwg
-ZZIVlvRF5Otq9JpE70toH4VVnkru2R0JpNwkGVm2+gp5sieNTHTB2J36/fxr0+O7
-hPiE/bfOjZb/GpS8ppvKyCBB/K0pfhzl5+QsNhMFLrMF1YVHb2WImnQDz3G9mtBi
-O/wgCUrBQG8lf6G50Tq1hklGPnh4VoAeJBrjojKh/Cuep8ZE6z5XYo2sYX7qKCi+
-fzJDhiKbFco16Njg0kpxAJl2Qb8zn3HOwrc1Np7K79LA92Gopve/poqQLPQn46Dh
-p0o5ixKvUW8yCPQDajGAFGdzcr3q75fySNkX0pBdY8IwqpFptH3BQgjZFg8M2E8x
-TOmmirEWCFx1F+4Aj+iU+ustTialkqQd8D3tnR3I/uFgNmaNjqpf4K12HGwIIU1j
-XLQIwNRYZw==
-=SOPy
------END PGP PUBLIC KEY BLOCK-----
-
-```
\ No newline at end of file
diff --git a/docs-v2/pages/projects/_meta.tsx b/docs-v2/pages/projects/_meta.tsx
deleted file mode 100644
index 090dea761c1aa..0000000000000
--- a/docs-v2/pages/projects/_meta.tsx
+++ /dev/null
@@ -1,5 +0,0 @@
-export default {
- "index": "Overview",
- "access-controls": "Access Controls",
- "secrets": "Variables and Secrets",
-} as const
diff --git a/docs-v2/pages/projects/access-controls.mdx b/docs-v2/pages/projects/access-controls.mdx
deleted file mode 100644
index 29483d2dc5e28..0000000000000
--- a/docs-v2/pages/projects/access-controls.mdx
+++ /dev/null
@@ -1,73 +0,0 @@
-import Callout from "@/components/Callout";
-
-# Access Controls
-
-The [projects list view](https://pipedream.com/projects) contains **Owner** and **Access** columns.
-
-**Owner** indicates who within the workspace owns each project. This is typically the person who created the project.
-
-
-
-
- Projects created before February 2024 don't automatically have owners, which
- has no functional impact.
-
-
-**Access** indicates which workspace members have access to each project, and this can be displayed as "me", "Workspace", or "N members".
-
-
-
-## Permissions
-
-Workspace owners and admins are able to perform all actions in projects, whereas workspace members are restricted from performing certain actions in projects.
-
-| Operation | Project creator | Workspace members |
-| ------------------------------------------------------------ | :-------------: | :---------------: |
-| View in [projects listing](https://pipedream.com/projects) | ✅ | ✅ |
-| View in [Event History](https://pipedream.com/event-history) | ✅ | ✅ |
-| View in global search | ✅ | ✅ |
-| Manage project workflows | ✅ | ✅ |
-| Manage project files | ✅ | ✅ |
-| Manage project variables | ✅ | ✅ |
-| Manage member access | ✅ | ❌ |
-| Manage GitHub Sync settings | ✅ | ❌ |
-| Delete project | ✅ | ❌ |
-
-
- **Workspace admins and owners have the same permissions as project creators
- for all projects in the workspace.**
-
-
-## Managing access
-
-
- By default, all projects are accessible to all workspace members. Workspaces
- on the [Business plan](https://pipedream.com/pricing) can restrict access for
- individual projects to specific workspace members.
-
-
-You can easily modify the access rules for a project directly from the [project list view](https://pipedream.com/projects), either by clicking the access badge in the project row (fig 1) or clicking the 3 dots to open the action menu, then selecting **Manage Access** (fig 2).
-
-Via the access badge (fig 1):
-
-
-
-Via the action menu (fig 2):
-
-
-
-From here, a slideout drawer reveals the access management configuration:
-
-
-
-Toggle the **Restrict access to this project** switch to manage access:
-
-
-
-Select specific members of the workspace to grant access:
-
-
-
-You can always see who has access and remove access if necessary:
-
-
diff --git a/docs-v2/pages/projects/index.mdx b/docs-v2/pages/projects/index.mdx
deleted file mode 100644
index c08fca57456f8..0000000000000
--- a/docs-v2/pages/projects/index.mdx
+++ /dev/null
@@ -1,80 +0,0 @@
-import Callout from "@/components/Callout";
-
-# Projects
-
-A workspace can contain one or more _projects_. Projects are a way to organize your workflows into specific groupings or categories.
-
-
-
-
-
-
-## Getting started with projects
-
-### Creating projects
-
-To create a new project, first [open the Projects section in the dashboard](https://pipedream.com/projects).
-
-Then click **Create project** to start a new project.
-
-Enter in your desired name for the project in the prompt, then click **Create**.
-
-That's it, you now have a dedicated new project created within your workspace. Now you can create workflows within this project, or move workflows into it or create folders for further organization.
-
-### Creating folders and workflows in projects
-
-Within a given project, you can create folders for your workflows.
-
-Open your project, and then click the **New** button for a dropdown to create a workflow in your current project.
-
-
-Helpful hotkeys to speed up your development
-
-- `C then F` creates a new folder.
-- `C then W` creates a new workflow.
-
-
-
-Folders can also contain sub-folders, which allows you to create a filing system to organize your workflows.
-
-### Moving workflows into folders
-
-To move workflows into folders, simply drag and drop the workflow into the folder.
-
-You can move workflows or folders up a level by dragging and dropping the workflow to the folder icon at the top of the list.
-
-### Importing workflows into projects
-
-
- This only applies to Pipedream accounts that created workflows before the
- projects feature was released.
-
-
-To import a workflow from the general **Workflows** area of your dashboard into a project:
-
-1. Open the Workflows area in the dashboard
-2. Select one or more workflows you'd like to import into a project
-3. Click *Move* in the top right and select a project to move them to
-
-
-
-### Moving workflows between projects
-
-To move a workflow from one project to another project, first check the workflow and then click **Move** to open a dropdown of projects. Select the project to move this workflow to, and click **Move** once more to complete the move.
-
-
-
-
-Github Sync limitation
-
-At this time it's not possible to move workflows out of GitHub Synchronized Projects.
-
-
-
-## Finding your project's ID
-
-Visit your project's **Settings** and copy the project ID.
diff --git a/docs-v2/pages/projects/secrets.mdx b/docs-v2/pages/projects/secrets.mdx
deleted file mode 100644
index 533a631a56f32..0000000000000
--- a/docs-v2/pages/projects/secrets.mdx
+++ /dev/null
@@ -1,13 +0,0 @@
-import Callout from "@/components/Callout";
-
-# Project variables and secrets
-
-Environment variables defined at the global workspace level are accessible to all workspace members and workflows within the workspace. To restrict access to sensitive variables or secrets, define them at the project-level and [configure access controls for the project](/projects/access-controls#managing-access).
-
-[See here](/workflows/environment-variables/) for info on creating, managing, and using environment variables and secrets.
-
-
- **Project variables override workspace variables**. When the same variable is
- defined at both the workspace and project levels (for example,
- `process.env.BASE_DOMAIN`), the **project** variable takes precedence.
-
diff --git a/docs-v2/pages/rest-api/_meta.tsx b/docs-v2/pages/rest-api/_meta.tsx
deleted file mode 100644
index b05fdbc325523..0000000000000
--- a/docs-v2/pages/rest-api/_meta.tsx
+++ /dev/null
@@ -1,7 +0,0 @@
-export default {
- "index": "API Reference",
- "auth": "Authentication",
- "workflows": "Example: Create a workflow",
- "rss": "Example: Create an RSS source",
- "webhooks": "Example: Webhooks",
-} as const
diff --git a/docs-v2/pages/rest-api/auth.mdx b/docs-v2/pages/rest-api/auth.mdx
deleted file mode 100644
index 53dd8f1764f03..0000000000000
--- a/docs-v2/pages/rest-api/auth.mdx
+++ /dev/null
@@ -1,113 +0,0 @@
-# Authentication
-
-The Pipedream API supports two methods of authentication: [OAuth](#oauth) and [User API keys](#user-api-keys).
-
-**We recommend OAuth** for a few reasons:
-
-✅ OAuth clients are tied to the workspace, administered by workspace admins
-✅ Tokens are short-lived
-✅ OAuth clients support scopes, limiting access to specific operations (coming soon!)
-✅ Limit access to specific Pipedream projects (coming soon!)
-
-When testing the API or using the CLI, you can use your user API key. This key is tied to your user account and provides full access to any resources your user has access to, across workspaces.
-
-## OAuth
-
-Workspace administrators can create OAuth clients in your workspace's [API settings](https://pipedream.com/settings/api).
-
-Since API requests are meant to be made server-side, and since grants are not tied to individual end users, all OAuth clients are [**Client Credentials** applications](https://www.oauth.com/oauth2-servers/access-tokens/client-credentials/).
-
-### Creating an OAuth client
-
-1. Visit the [API settings](https://pipedream.com/settings/api) for your workspace.
-2. Click the **New OAuth Client** button.
-3. Name your client and click **Create**.
-4. Copy the client secret. **It will not be accessible again**. Click **Close**.
-5. Copy the client ID from the list.
-
-### How to get an access token
-
-In the client credentials model, you exchange your OAuth client ID and secret for an access token. Then you use the access token to make API requests.
-
-If you're running a server that executes JavaScript, we recommend using [the Pipedream SDK](/connect/api/#installing-the-typescript-sdk), which automatically refreshes tokens for you.
-
-```javascript
-import { createBackendClient } from "@pipedream/sdk/server";
-
-// These secrets should be saved securely and passed to your environment
-const pd = createBackendClient({
- credentials: {
- clientId: "YOUR_CLIENT_ID",
- clientSecret: "YOUR_CLIENT_SECRET",
- },
- projectId: "YOUR_PROJECT_ID", // This is typically required for most Connect API endpoints
-});
-
-// Use the SDK's helper methods to make requests
-const accounts = await pd.getAccounts({ include_credentials: 1 });
-
-// Or make any Pipedream API request with the fresh token
-const accounts = await pd.makeAuthorizedRequest("/accounts", {
- method: "GET"
- params: {
- include_credentials: 1,
- }
-});
-```
-
-You can also manage this token refresh process yourself, using the `/oauth/token` API endpoint:
-
-```bash
-curl https://api.pipedream.com/v1/oauth/token \
- -H 'Content-Type: application/json' \
- -d '{ "grant_type": "client_credentials", "client_id": "", "client_secret": "" }'
-```
-
-Access tokens expire after 1 hour. Store access tokens securely, server-side.
-
-### Revoking a client secret
-
-1. Visit your workspace's [API settings](https://pipedream.com/settings/api).
-2. Click the **...** button to the right of the OAuth client whose secret you want to revoke, then click **Rotate client secret**.
-3. Copy the new client secret. **It will not be accessible again**.
-
-### OAuth security
-
-See [the OAuth section of the security docs](/privacy-and-security/#pipedream-rest-api-security-oauth-clients) for more information on how Pipedream secures OAuth credentials.
-
-## User API keys
-
-When you sign up for Pipedream, an API key is automatically generated for your user account. You can use this key to authorize requests to the API.
-
-You'll find this API key in your [User Settings](https://pipedream.com/user) (**My Account** -> **API Key**).
-
-**Use user API keys when testing the API or using the CLI**. This key is tied to your user account and provides full access to any resources your user has access to, across workspaces.
-
-### Revoking your API key
-
-You can revoke your API key in your [Account Settings](https://pipedream.com/settings/account) (**Settings** -> **Account**). Click on the **REVOKE** button directly to the right of your API key.
-
-This will revoke your original API key, generating a new one. Any API requests made with the original token will yield a `401 Unauthorized` error.
-
-## Authorizing API requests
-
-Whether you use OAuth access tokens or user API keys, Pipedream uses [Bearer Authentication](https://oauth.net/2/bearer-tokens/) to authorize your access to the API or SSE event streams. When you make API requests, pass an `Authorization` header of the following format:
-
-```
-# OAuth access token
-Authorization: Bearer
-
-# User API key
-Authorization: Bearer
-```
-
-For example, here's how you can use `cURL` to fetch profile information for the authenticated user:
-
-```bash
-curl 'https://api.pipedream.com/v1/users/me' \
- -H 'Authorization: Bearer '
-```
-
-## Using the Pipedream CLI
-
-You can [link the CLI to your Pipedream account](/components/contributing/cli/login/), which will automatically pass your API key in the `Authorization` header with every API request.
diff --git a/docs-v2/pages/rest-api/index.mdx b/docs-v2/pages/rest-api/index.mdx
deleted file mode 100644
index 8f5c729db26b3..0000000000000
--- a/docs-v2/pages/rest-api/index.mdx
+++ /dev/null
@@ -1,2233 +0,0 @@
-import Callout from "@/components/Callout";
-
-# REST API
-
-## Overview
-
-Use the REST API to create workflows, manage event sources, handle subscriptions, and more.
-
-## Base URL
-
-The base URL for all requests is [https://api.pipedream.com/v1](https://api.pipedream.com/v1).
-
-## Authentication
-
-The Pipedream API supports two methods of authentication: [OAuth](/rest-api/auth/#oauth) and [User API keys](/rest-api/auth/#user-api-keys). **Pipedream recommends using OAuth for most use cases**.
-
-All credentials are passed as a Bearer token in the `Authorization` header. For example:
-
-```shell
-curl https://api.pipedream.com/v1/accounts \
- -H "Authorization Bearer "
-```
-
-Learn more in the [Authentication docs](/rest-api/auth/).
-
-### Authenticating as a workspace vs. a user
-
-Pipedream recommends using [OAuth](/rest-api/auth/#oauth) to auth against the Pipedream API. OAuth tokens are associated with a workspace, and the API will automatically use the workspace associated with the token.
-
-When you authenticate with a user API key, you must [specify the workspace ID in the `org_id` parameter](#common-parameters) when making requests to specific endpoints.
-
-## Required headers
-
-The `Authorization` header is required on all endpoints, to authenticate API requests.
-
-`POST` or `PUT` requests that accept JSON payloads also require a `Content-Type`
-header set to `application/json`. For example:
-
-```shell
-curl https://api.pipedream.com/v1/components \
- -H "Authorization: Bearer " \
- -H "Content-Type: application/json" \
- -d '{"component_url": "https://github.com/PipedreamHQ/pipedream/blob/master/components/rss/sources/new-item-in-feed/new-item-in-feed.ts"}'
-```
-
-## Common Parameters
-
-The following parameters can be passed to any endpoint. They can be included as
-query string params for `GET` requests, or in the body of the payload of `POST`
-requests.
-
----
-
-`include` **string**
-
-The fields in the API response you'd like to include (defaults to all fields).
-Pass as a string of comma-separated values:
-
-`comma,separated,fields,to,include`
-
----
-
-`exclude` **string**
-
-The fields in the API response you'd like to _exclude_ (defaults to none,
-including all fields). Pass as a string of comma-separated values:
-
-`comma,separated,fields,to,include`
-
----
-
-`org_id` **string**
-
-
-The `org_id` parameter is only required when using [User API keys](/rest-api/auth/#user-api-keys). When authenticating with OAuth tokens, the API will automatically use the workspace associated with the token.
-
-
-When using [User API keys](/rest-api/auth/#user-api-keys), some endpoints require you to specify [your workspace ID](/workspaces/#finding-your-workspaces-id) you want the operation to take effect in:
-
-- When _fetching_ specific resources (for example, when you [retrieve events for a specific source](#get-source-events)), **you should not need to pass `org_id`**. If your user is a part of the workspace, and you have access to that resource, and the API will return the details of the resource.
-- When _creating_ new resources, you'll need to specify the `org_id` in which you want to create the resource.
-
-[Find your workspace / org ID here](/workspaces/#finding-your-workspaces-id).
-
-## Pagination
-
-Most API endpoints below support pagination, **with a default page size of 10
-items**. You can vary the size of pages, and set a `before` or `after` cursor on
-the results, using the following parameters. They can be included as query
-string params for `GET` requests, or in the body of the payload of `POST`
-requests.
-
----
-
-`limit` **integer**
-
-The number of items to return in the requested page of results.
-
-- Default: 10
-- Min: 1
-- Max: 100
-
----
-
-`after` **string**
-
-A cursor, specifying you'd like to retrieve items _after_ this cursor.
-
-Cursor strings are returned with all paginated responses.
-
----
-
-`before` **string**
-
-A cursor, specifying you'd like to retrieve items _before_ this cursor.
-
-Cursor strings are returned with all paginated responses.
-
-### Example Paginated Request
-
-This request fetches a page of 5 sources in the authenticated account, after a
-specific cursor (returned with a previous request):
-
-```shell
-curl https://api.pipedream.com/v1/users/me/sources\?limit\=3\&after\=ZGNfSzB1QWVl \
- -H "Authorization: Bearer "
-```
-
-### Example Paginated Response
-
-The response from the request above will have a shape that looks like:
-
-```json
-{
- "page_info": {
- "total_count": 3,
- "count": 3,
- "start_cursor": "ZGNfSzB1QWVl",
- "end_cursor": "ZGNfclhhdTZv"
- },
- "data": [
- {
- "id": "dc_5YGuMo"
- },
- {
- "id": "dc_5v3unr"
- },
- {
- "id": "dc_rXau6o"
- }
- ]
-}
-```
-
-## Errors
-
-Pipedream uses conventional HTTP response codes to indicate the success or
-failure of an API request:
-
-- Codes in the `2xx` range indicate success.
-- Codes in the `4xx` range indicate an error that failed (e.g., a required parameter was omitted).
-- Codes in the `5xx` range indicate an error with Pipedream's server.
-
-## Accounts
-
-
-These docs discuss connected accounts **for Pipedream users**. To retrieve accounts for your end users via Connect, refer to the [Connect API docs](/connect/api/#accounts).
-
-
-[Connected accounts](/apps/connected-accounts/) let you manage credentials for integrated APIs.
-
-### List accounts
-
-List connected accounts accessible by the authenticated user or workspace.
-
-```
-GET /accounts/
-```
-
-#### Parameters
-
-`app` **string** (_optional_)
-
-The ID or name slug the app you'd like to retrieve. For example, Slack's unique app ID is `app_OkrhR1`, and its name slug is `slack`.
-
-You can find the app's ID in the response from the [List apps](#list-apps) endpoint, and the name slug under the **Authentication** section of any [app page](https://pipedream.com/apps).
-
----
-
-`oauth_app_id` **string** (_optional_)
-
-The ID of the custom [OAuth app](/connect/managed-auth/quickstart/#create-a-pipedream-oauth-client) you'd like to retrieve accounts for.
-
----
-
-`include_credentials` **boolean** (_optional_)
-
-Pass `include_credentials=true` as a query-string parameter to include the account credentials in the response
-
-#### Example Request — Get account metadata
-
-```bash
-curl 'https://api.pipedream.com/v1/accounts' \
- -H "Authorization: Bearer " \
- -H "Content-Type: application/json"
-```
-
-#### Example Response — Get account metadata
-
-```json
-{
- "data": [
- {
- "id": "apn_abc123",
- "created_at": "2022-07-27T20:37:52.000Z",
- "updated_at": "2024-02-11T04:18:46.000Z",
- "name": "Google Sheets — pipedream.com", // account nickname, if set
- "app": {
- "id": "app_abc123",
- "name": "Google Sheets"
- },
- "healthy": true // true if Pipedream can make a successful test request
- }
- ]
-}
-```
-
-### Get account
-
-By default, this route returns metadata for a specific connected account. Set `include_credentials=true` to return credentials that you can use in any app where you need the actual credentials (API key or OAuth access token for example).
-
-#### Endpoint
-
-```
-GET /accounts/{account_id}
-```
-
-#### Parameters
-
-`account_id` **string**
-
-To retrieve your account ID:
-
-1. [Connect your account](/apps/connected-accounts/#connecting-a-new-account)
-2. On [https://pipedream.com/accounts](https://pipedream.com/accounts), find your account and click the `...` to the right of the account,
-3. **Copy Account ID**
-
-
-
-
-
----
-
-`include_credentials` **boolean** (_optional_)
-
-Pass `include_credentials=true` as a query-string parameter to include the account credentials in the response
-
-#### Example Request — Get account metadata
-
-```bash
-curl 'https://api.pipedream.com/v1/accounts/' \
- -H "Authorization: Bearer " \
- -H "Content-Type: application/json"
-```
-
-#### Example Response — Get account metadata
-
-```json
-{
- "data": {
- "id": "apn_abc123",
- "created_at": "2022-07-27T20:37:52.000Z",
- "updated_at": "2024-02-11T04:18:46.000Z",
- "name": "Google Sheets — pipedream.com", // account nickname, if set
- "app": {
- "id": "app_abc123",
- "name": "Google Sheets"
- },
- "healthy": true // true if Pipedream can make a successful test request
- }
-}
-```
-
-#### Example Request — Get account credentials
-
-```bash
-curl 'https://api.pipedream.com/v1/accounts/?include_credentials=true' \
- -H "Authorization: Bearer " \
- -H "Content-Type: application/json"
-```
-
-#### Example Response — Get account credentials
-
-```json
-{
- "data": {
- "id": "apn_abc123",
- "created_at": "2022-07-27T20:37:52.000Z",
- "updated_at": "2024-02-11T04:18:46.000Z",
- "expires_at": "2024-02-11T05:18:46.000Z",
- "name": "Google Sheets — pipedream.com", // account nickname, if set
- "app": {
- "id": "app_abc123",
- "name": "Google Sheets"
- },
- "credentials": {
- // Properties are specific to the app — see below
- }
- }
-}
-```
-
-#### The `credentials` object
-
-The properties of the `credentials` object are specific to the app.
-
-All OAuth apps expose the following properties:
-
-- `oauth_access_token` — A fresh OAuth access token
-- `oauth_client_id` — The client ID of the OAuth app
-- `oauth_refresh_token` — The latest OAuth refresh token for your grant
-- `oauth_uid` — A unique identifier in the third party API's system, typically a user ID or email address
-
-Apps with static credentials expose fields specific to the API, e.g. `api_key`. Review the response for specific apps to see the app-specific response.
-
-## Apps
-
-### List Apps
-
----
-
-Retrieve a list of all apps available on Pipedream.
-
-#### Endpoint
-
-```
-GET /apps
-```
-
-#### Parameters
-
-`q` **string** (_optional_)
-
-A query string to filter the list of apps. For example, to search for apps that **contain** the string "Slack", pass `q=Slack`.
-
----
-
-`has_components` **string** (_optional_)
-
-Pass `1` to filter the list of apps to only those with public triggers or actions.
-
----
-
-`has_actions` **string** (_optional_)
-
-Pass `1` to filter the list of apps to only those with public actions.
-
----
-
-`has_triggers` **string** (_optional_)
-
-Pass `1` to filter the list of apps to only those with public triggers.
-
-#### Example Request
-
-```shell
-curl https://api.pipedream.com/v1/apps
- -H "Authorization: Bearer " \
- -H "Content-Type: application/json"
-```
-
-#### Example Response
-
-```json
-{
- "page_info": {
- "total_count": 2,
- "count": 2,
- "start_cursor": "c2xhY2s",
- "end_cursor": "c2xhY2tfYm90"
- },
- "data": [
- {
- "id": "app_OkrhR1",
- "name_slug": "slack",
- "name": "Slack",
- "auth_type": "oauth",
- "description": "Slack is a channel-based messaging platform. With Slack, people can work together more effectively, connect all their software tools and services, and find the information they need to do their best work — all within a secure, enterprise-grade environment.",
- "img_src": "https://assets.pipedream.net/s.v0/app_OkrhR1/logo/orig",
- "custom_fields_json": "[]",
- "categories": [
- "Communication"
- ],
- "featured_weight": 1000000001,
- "connect": {
- "proxy_enabled": true,
- "allowed_domains": ["slack.com"],
- "base_proxy_target_url": "https://slack.com"
- }
- },
- {
- "id": "app_mWnheL",
- "name_slug": "slack_bot",
- "name": "Slack Bot",
- "auth_type": "keys",
- "description": "Interact with Slack with your own bot user",
- "img_src": "https://assets.pipedream.net/s.v0/app_mWnheL/logo/orig",
- "custom_fields_json": "[{\"name\":\"bot_token\",\"label\":\"Bot Token\",\"description\":null,\"default\":null,\"optional\":null,\"type\":\"password\"}]",
- "categories": [
- "Communication"
- ],
- "featured_weight": 4100,
- "connect": {
- "proxy_enabled": true,
- "allowed_domains": ["slack.com"],
- "base_proxy_target_url": "https://slack.com"
- }
- }
- ]
-}
-```
-
-
-The `apps` API returns a `featured_weight` for integrated apps, which powers the sort order on [pipedream.com/apps](https://pipedream.com/apps). Note that this is roughly based on popularity from Pipedream users, but is manually defined by Pipedream and is subject to change.
-
-
-### Get an App
-
-Retrieve metadata for a specific app.
-
-#### Endpoint
-
-```
-GET /apps/{app_id}
-```
-
-#### Path Parameters
-
-`app_id` **string**
-
-The ID or name slug the app you'd like to retrieve. For example, Slack's unique app ID is `app_OkrhR1`, and its name slug is `slack`.
-
-You can find the app's ID in the response from the [List apps](#list-apps) endpoint, and the name slug under the **Authentication** section of any [app page](https://pipedream.com/apps).
-
-#### Example Request
-
-```bash
-curl https://api.pipedream.com/v1/apps/app_OkrhR1 \
- -H "Authorization: Bearer " \
- -H "Content-Type: application/json"
-```
-
-#### Example Response
-
-```json
-{
- "data": {
- "id": "app_OkrhR1",
- "name_slug": "slack",
- "name": "Slack",
- "auth_type": "oauth",
- "description": "Slack is a channel-based messaging platform. With Slack, people can work together more effectively, connect all their software tools and services, and find the information they need to do their best work — all within a secure, enterprise-grade environment.",
- "img_src": "https://assets.pipedream.net/s.v0/app_OkrhR1/logo/orig",
- "custom_fields_json": "[]",
- "categories": [
- "Communication"
- ],
- "featured_weight": 1000000001,
- "connect": {
- "proxy_enabled": true,
- "allowed_domains": ["slack.com"],
- "base_proxy_target_url": "https://slack.com"
- }
- }
-}
-```
-
-## Components
-
-
-These docs discuss the management of Pipedream components. To run components on behalf of your end users in your application, refer to the [Connect API docs](/connect/api/#components).
-
-
-Components are objects that represent the code for an [event source](#sources).
-
-### Create a component
-
-
-`/components` endpoints are only available when using [user API keys](/rest-api/auth/#user-api-keys), not yet for workspace [OAuth tokens](/rest-api/auth/#oauth).
-
-
-Before you can create a source using the REST API, you must first create a
-**component** - the code for the source.
-
-This route returns the components `id`, `code`, `configurable_props`, and other
-metadata you'll need to [deploy a source](#create-a-source) from this component.
-
-#### Endpoint
-
-```
-POST /components
-```
-
-#### Parameters
-
-`component_code` **string** (_optional_)
-
-The full code for a [Pipedream component](/components/contributing/api/).
-
----
-
-`component_url` **string** (_optional_)
-
-A reference to the URL where the component is hosted.
-
-For example, to create an RSS component, pass
-`https://github.com/PipedreamHQ/pipedream/blob/master/components/rss/sources/new-item-in-feed/new-item-in-feed.ts`.
-
----
-
-One of `component_code` _or_ `component_url` is required. If both are present,
-`component_code` is preferred and `component_url` will be used only as metadata
-to identify the location of the code.
-
-#### Example Request
-
-Here's an example of how to create an RSS component from a Github URL:
-
-```shell
-curl https://api.pipedream.com/v1/components \
- -H "Authorization: Bearer " \
- -H "Content-Type: application/json" \
- -d '{"component_url": "https://github.com/PipedreamHQ/pipedream/blob/master/components/rss/sources/new-item-in-feed/new-item-in-feed.ts"}'
-```
-
-#### Example Response
-
-```json
-{
- "data": {
- "id": "sc_JDi8EB",
- "code": "component code here",
- "code_hash": "685c7a680d055eaf505b08d5d814feef9fabd516d5960837d2e0838d3e1c9ed1",
- "name": "rss",
- "version": "0.0.1",
- "configurable_props": [
- {
- "name": "url",
- "type": "string",
- "label": "Feed URL",
- "description": "Enter the URL for any public RSS feed."
- },
- {
- "name": "timer",
- "type": "$.interface.timer",
- "default": {
- "intervalSeconds": 900
- }
- }
- ],
- "created_at": 1588866900,
- "updated_at": 1588866900
- }
-}
-```
-
-### Get a component
-
-Retrieve a component saved or published in your account using its saved
-component ID **or** key.
-
-This endpoint returns the component's metadata and configurable props.
-
-#### Endpoint
-
-```
-GET /components/{key|id}
-```
-
-#### Parameters
-
-`key` **string**
-
-The component key (identified by the `key` property within the component's
-source code) you'd like to fetch metadata for (example: `my-component`)
-
-**or**
-
-`id` **string**
-
-The saved component ID you'd like to fetch metadata for (example: `sc_JDi8EB`)
-
-#### Example Request
-
-```shell
-curl https://api.pipedream.com/v1/components/my-component \
- -H "Authorization: Bearer "
-```
-
-#### Example Response
-
-```json
-{
- "data": {
- "id": "sc_JDi8EB",
- "code": "component code here",
- "code_hash": "685c7a680d055eaf505b08d5d814feef9fabd516d5960837d2e0838d3e1c9ed1",
- "name": "rss",
- "version": "0.0.1",
- "configurable_props": [
- {
- "name": "url",
- "type": "string",
- "label": "Feed URL",
- "description": "Enter the URL for any public RSS feed."
- },
- {
- "name": "timer",
- "type": "$.interface.timer",
- "default": {
- "intervalSeconds": 900
- }
- }
- ],
- "created_at": 1588866900,
- "updated_at": 1588866900
- }
-}
-```
-
-### Get a component from the global registry
-
-Pipedream operates a global registry of all public components (for example, for
-apps like Github, Google Calendar, and more). This endpoint returns the same
-data as the endpoint for [retrieving metadata on a component you
-own](#get-a-component), but allows you to fetch data for any globally-published
-component.
-
-#### Endpoint
-
-```
-GET /components/registry/{key}
-```
-
-#### Parameters
-
-`key` **string**
-
-The component key (identified by the `key` property within the component's
-source code) you'd like to fetch metadata for (example: `my-component`)
-
-#### Example Request
-
-```shell
-curl https://api.pipedream.com/v1/components/registry/github-new-repository \
- -H "Authorization: Bearer "
-```
-
-#### Example Response
-
-```json
-{
- "data": {
- "id": "sc_JDi8EB",
- "code": "component code here",
- "code_hash": "685c7a680d055eaf505b08d5d814feef9fabd516d5960837d2e0838d3e1c9ed1",
- "name": "rss",
- "version": "0.0.1",
- "configurable_props": [
- {
- "name": "url",
- "type": "string",
- "label": "Feed URL",
- "description": "Enter the URL for any public RSS feed."
- },
- {
- "name": "timer",
- "type": "$.interface.timer",
- "default": {
- "intervalSeconds": 900
- }
- }
- ],
- "created_at": 1588866900,
- "updated_at": 1588866900
- }
-}
-```
-
-### Search for registry components
-
-Search for components in the global registry with natural language. Pipedream will use AI to match your query to the most relevant components.
-
-#### Endpoint
-
-```
-GET /components/search
-```
-
-#### Parameters
-
-`query` **string**
-
-The query string to search for components in the global registry, e.g. "Send a message to Slack on new Hubspot contacts"
-
----
-
-`app` **string** (_optional_)
-
-The name slug the app you'd like to filter results for. For example, Slack's name slug is `slack`. Returned sources and actions are filtered to only those tied to the specified app.
-
-You can find the name slug under the **Authentication** section of any [app page](https://pipedream.com/apps).
-
----
-
-`similarity_threshold` **number** (_optional_)
-
-The minimum similarity score required for a component to be returned. The similarity score is a number between 0 and 1, where 1 is a perfect match. Similarity here is computed as the cosine distance between the embedding of the user query and the embedding of the component's metadata.
-
----
-
-`debug` **boolean** (_optional_)
-
-Pass `debug=true` to return additional data in the response, useful for inspecting the results.
-
-#### Example Request
-
-```shell
-curl https://api.pipedream.com/v1/components/search\?query\="When a new Hubspot contact is added, send me an SMS"&limit=1 \
- -H "Authorization: Bearer " \
- -H "Content-Type: application/json"
-```
-
-### Example Response
-
-```json
-{
- "sources": [
- "hubspot-new-contact"
- ],
- "actions": [
- "twilio-send-sms"
- ]
-}
-```
-
-## Connect
-
-[Pipedream Connect](/connect/) is the easiest way for your users to connect to [over {process.env.PUBLIC_APPS}+ APIs](https://pipedream.com/apps), **right in your product**. You can build in-app messaging, CRM syncs, AI-driven products, [and much more](/connect/use-cases/), all in a few minutes. Visit [the quickstart](/connect/quickstart/) to build your first integration.
-
-Read more about the Connect API in the [Connect API docs](/connect/api/).
-
-## Events
-
-### Get Source Events
-
-Retrieve up to the last 100 events emitted by a source.
-
-#### Endpoint
-
-```
-GET /sources/{id}/event_summaries
-```
-
-#### Notes and Examples
-
-The event data for events larger than `1KB` may get truncated in the response.
-If you're processing larger events, and need to see the full event data, pass
-`?expand=event`:
-
-```
-GET /sources/{id}/event_summaries?expand=event
-```
-
-Pass `?limit=N` to retrieve the last **N** events:
-
-```
-GET /sources/{id}/event_summaries?limit=10
-```
-
-### Delete source events
-
-Deletes all events, or a specific set of events, tied to a source.
-
-By default, making a `DELETE` request to this endpoint deletes **all** events
-associated with a source. To delete a specific event, or a range of events, you
-can use the `start_id` and `end_id` parameters.
-
-These IDs can be retrieved by using the [`GET /sources/{id}/event_summaries`
-endpoint](/rest-api/#get-source-events), and are tied to the timestamp at which
-the event was emitted — e.g. `1589486981597-0`. They are therefore naturally
-ordered by time.
-
-#### Endpoint
-
-```
-DELETE /sources/{id}/events
-```
-
-#### Parameters
-
-`start_id` **string**
-
-The event ID from which you'd like to start deleting events.
-
-If `start_id` is passed without `end_id`, the request will delete all events
-starting with and including this event ID. For example, if your source has 3
-events:
-
-- `1589486981597-0`
-- `1589486981598-0`
-- `1589486981599-0`
-
-and you issue a `DELETE` request like so:
-
-```shell
-curl -X DELETE \
- -H "Authorization: Bearer " \
- "https://api.pipedream.com/v1/sources/dc_abc123/events?start_id=1589486981598-0"
-```
-
-The request will delete the **last two events**.
-
----
-
-`end_id` **string**
-
-The event ID from which you'd like to end the range of deletion.
-
-If `end_id` is passed without `start_id`, the request will delete all events up
-to and including this event ID. For example, if your source has 3 events:
-
-- `1589486981597-0`
-- `1589486981598-0`
-- `1589486981599-0`
-
-and you issue a `DELETE` request like so:
-
-```shell
-curl -X DELETE \
- -H "Authorization: Bearer " \
- "https://api.pipedream.com/v1/sources/dc_abc123/events?end_id=1589486981598-0"
-```
-
-The request will delete the **first two events**.
-
-#### Example Request
-
-You can delete a single event by passing its event ID in both the value of the
-`start_id` and `end_id` params:
-
-```shell
-curl -X DELETE \
- -H "Authorization: Bearer " \
- "https://api.pipedream.com/v1/sources/dc_abc123/events?start_id=1589486981598-0&end_id=1589486981598-0"
-```
-
-#### Example Response
-
-Deletion happens asynchronously, so you'll receive a `202 Accepted` HTTP status
-code in response to any deletion requests.
-
-## OAuth
-
-### Get a new access token
-
-Exchanges a client ID and client secret for a new access token.
-
-#### Endpoint
-
-```
-POST /oauth/token
-```
-
-#### Parameters
-
-`grant_type` **string**
-
-The OAuth grant type. For Pipedream, this is always `client_credentials`.
-
----
-
-`client_id` **string**
-
-The client ID of the OAuth app.
-
----
-
-`client_secret` **string**
-
-The client secret of the OAuth app.
-
-#### Example Request
-
-```bash
-curl https://api.pipedream.com/v1/oauth/token \
- -H 'Content-Type: application/json' \
- -d '{ "grant_type": "client_credentials", "client_id": "", "client_secret": "" }'
-```
-
-#### Example Response
-
-```json
-{
- "access_token": "",
- "token_type": "Bearer",
- "expires_in": 3600,
- "created_at": 1645142400
-}
-```
-
-### Revoke an access token
-
-Revokes an access token, rendering it invalid for future requests.
-
-#### Endpoint
-
-```
-POST /oauth/revoke
-```
-
-#### Parameters
-
-`token` **string**
-
-The access token to revoke.
-
----
-
-`client_id` **string**
-
-The client ID of the OAuth app.
-
----
-
-`client_secret` **string**
-
-The client secret of the OAuth app.
-
----
-
-#### Example Request
-
-```bash
-curl https://api.pipedream.com/v1/oauth/revoke \
- -H 'Content-Type: application/json' \
- -d '{ "token": "", "client_id": "", "client_secret": "" }'
-```
-
-#### Example Response
-
-This endpoint will return a `200 OK` response with an empty body if the token was successfully revoked:
-
-```json
-{}
-```
-
-## Sources
-
-Event sources run code to collect events from an API, or receive events via
-webhooks, emitting those events for use on Pipedream. Event sources can function
-as workflow triggers. [Read more here](/workflows/building-workflows/triggers/).
-
-### Create a Source
-
-
-This endpoint is only available when using [user API keys](/rest-api/auth/#user-api-keys), not yet for workspace [OAuth tokens](/rest-api/auth/#oauth).
-
-
-#### Endpoint
-
-```
-POST /sources/
-```
-
-#### Parameters
-
-`component_id` **string** (_optional_)
-
-The ID of a component previously created in your account. [See the component
-endpoints](/rest-api/#components) for information on how to retrieve this ID.
-
----
-
-`component_code` **string** (_optional_)
-
-The full code for a [Pipedream component](/components/contributing/api/).
-
----
-
-`component_url` **string** (_optional_)
-
-A reference to the URL where the component is hosted.
-
-For example, to create an RSS component, pass
-`https://github.com/PipedreamHQ/pipedream/blob/master/components/rss/sources/new-item-in-feed/new-item-in-feed.ts`.
-
----
-
-One of `component_id`, `component_code`, or `component_url` is required. If all
-are present, `component_id` is preferred and `component_url` will be used only
-as metadata to identify the location of the code.
-
----
-
-`name` **string** (_optional_)
-
-The name of the source.
-
-If absent, this defaults to using the [name
-slug](/components/contributing/api/#component-structure)
-of the component used to create the source.
-
-#### Example Request
-
-```shell
-curl https://api.pipedream.com/v1/sources \
- -H "Authorization: Bearer " \
- -H "Content-Type: application/json" \
- -d '{"component_url": "https://github.com/PipedreamHQ/pipedream/blob/master/components/rss/sources/new-item-in-feed/new-item-in-feed.ts", "name": "your-name-here", "configured_props": { "url": "https://rss.m.pipedream.net", "timer": { "intervalSeconds": 60 }}}'
-```
-
-#### Example Response
-
-Example response from creating an RSS source that runs once a minute:
-
-```json
-{
- "data": {
- "id": "dc_abc123",
- "user_id": "u_abc123",
- "component_id": "sc_abc123",
- "configured_props": {
- "url": "https://rss.m.pipedream.net",
- "timer": {
- "cron": null,
- "interval_seconds": 60
- }
- },
- "active": true,
- "created_at": 1589486978,
- "updated_at": 1589486978,
- "name": "your-name-here",
- "name_slug": "your-name-here"
- }
-}
-```
-
-### Update a source
-
-#### Endpoint
-
-```
-PUT /sources/{id}
-```
-
-#### Parameters
-
-`component_id` **string** (_optional_)
-
-The ID of a component previously created in your account. [See the component
-endpoints](/rest-api/#components) for information on how to retrieve this ID.
-
----
-
-`component_code` **string** (_optional_)
-
-The full code for a [Pipedream
-component](/components/contributing/api/).
-
----
-
-`component_url` **string** (_optional_)
-
-A reference to the URL where the component is hosted.
-
-For example, to create an RSS component, pass
-`https://github.com/PipedreamHQ/pipedream/blob/master/components/rss/sources/new-item-in-feed/new-item-in-feed.ts`.
-
----
-
-One of `component_id`, `component_code`, or `component_url` is required. If all
-are present, `component_id` is preferred and `component_url` will be used only
-as metadata to identify the location of the code.
-
----
-
-`name` **string** (_optional_)
-
-The name of the source.
-
-If absent, this defaults to using the [name slug](/components/contributing/api/#component-structure)
-of the component used to create the source.
-
----
-
-`active` **boolean** (_optional_)
-
-The active state of a component. To disable a component, set to `false`. To
-enable a component, set to `true`.
-
-Default: `true`.
-
-### Delete a source
-
-#### Endpoint
-
-```
-DELETE /sources/{id}
-```
-
-## Subscriptions
-
-
- The Subscriptions API is currently incompatible with projects that have [GitHub Sync](/workflows/git/) enabled. To [trigger another workflow](/workflows/building-workflows/code/nodejs/#invoke-another-workflow), use `$.flow.trigger` instead.
-
-
-### Listen for events from another source or workflow
-
-You can configure a source or workflow to receive events from any number of
-other workflows or sources. For example, if you want a single workflow to run on
-10 different RSS sources, you can configure the workflow to _listen_ for events
-from those 10 sources.
-
-#### Endpoint
-
-```
-POST /subscriptions?emitter_id={emitting_component_id}&event_name={event_name}&listener_id={receiving_source_id}
-```
-
-#### Parameters
-
-`emitter_id` **string**
-
-The ID of the workflow or component emitting events. Events from this component
-trigger the receiving component / workflow.
-
-`emitter_id` also accepts glob patterns that allow you to subscribe to _all_
-workflows or components:
-
-- `p_*`: Listen to events from all workflows
-- `dc_*`: Listen to events from all event sources
-
-[See the component endpoints](/rest-api/#components) for information on how to
-retrieve the ID of existing components. You can retrieve the ID of your workflow
-in your workflow's URL - it's the string `p_2gCPml` in
-`https://pipedream.com/@dylan/example-rss-sql-workflow-p_2gCPml/edit`.
-
----
-
-`event_name` **string** (optional)
-
-**Only pass `event_name` when you're listening for events on a custom channel, with the name of the custom channel**:
-
-```
-event_name=
-```
-
-See [the `this.$emit` docs](/components/contributing/api/#emit) for more information on how to emit events on custom channels.
-
-Pipedream also exposes channels for logs and errors:
-
-- `$errors`: Any errors thrown by workflows or sources are emitted to this
- stream
-- `$logs`: Any logs produced by **event sources** are emitted to this stream
-
----
-
-`listener_id` **string**
-
-The ID of the component or workflow you'd like to receive events.
-
-[See the component endpoints](/rest-api/#components) for information on how to
-retrieve the ID of existing components. You can retrieve the ID of your workflow
-in your workflow's URL - it's the string `p_2gCPml` in
-`https://pipedream.com/@dylan/example-rss-sql-workflow-p_2gCPml/edit`.
-
-#### Example Request
-
-You can configure workflow `p_abc123` to listen to events from the source
-`dc_def456` using the following command:
-
-```shell
-curl "https://api.pipedream.com/v1/subscriptions?emitter_id=dc_def456&listener_id=p_abc123" \
- -X POST \
- -H "Authorization: Bearer " \
- -H "Content-Type: application/json"
-```
-
-### Automatically subscribe a listener to events from new workflows / sources
-
-You can use this endpoint to automatically receive events, like workflow errors,
-in another listening workflow or event source. Once you setup the
-auto-subscription, any new workflows or event sources you create will
-automatically deliver the specified events to the listener.
-
-Note: this will configure subscriptions for _new_ workflows and sources after
-the time you configure the subscription. To deliver events to your listener from
-_existing_ workflows or sources, use the [`POST /subscriptions`
-endpoint](#listen-for-events-from-another-source-or-workflow).
-
-**Currently, this feature is enabled only on the API. The Pipedream UI will not
-display the sources configured as listeners using this API**.
-
-#### Endpoint
-
-```
-POST /auto_subscriptions?event_name={event_name}&listener_id={receiving_source_id}
-```
-
-#### Parameters
-
-`event_name` **string**
-
-The name of the event stream whose events you'd like to receive:
-
-- `$errors`: Any errors thrown by workflows or sources are emitted to this
- stream
-- `$logs`: Any logs produced by **event sources** are emitted to this stream
-
----
-
-`listener_id` **string**
-
-The ID of the component or workflow you'd like to receive events.
-
-[See the component endpoints](/rest-api/#components) for information on how to
-retrieve the ID of existing components. You can retrieve the ID of your workflow
-in your workflow's URL - it's the string `p_2gCPml` in
-`https://pipedream.com/@dylan/example-rss-sql-workflow-p_2gCPml/edit`.
-
-#### Example Request
-
-You can configure workflow `p_abc123` to listen to events from the source
-`dc_def456` using the following command:
-
-```shell
-curl "https://api.pipedream.com/v1/auto_subscriptions?event_name=$errors&listener_id=p_abc123" \
- -X POST \
- -H "Authorization: Bearer " \
- -H "Content-Type: application/json"
-```
-
-### Delete a subscription
-
-Use this endpoint to delete an existing subscription. This endpoint accepts the
-same parameters as the [`POST /subscriptions`
-endpoint](#listen-for-events-from-another-source-or-workflow) for creating
-subscriptions.
-
-#### Endpoint
-
-```
-DELETE /subscriptions?emitter_id={emitting_component_id}&listener_id={receiving_source_id}&event_name={event_name}
-```
-
-#### Parameters
-
-`emitter_id` **string**
-
-The ID of the workflow or component emitting events. Events from this component
-trigger the receiving component / workflow.
-
-`emitter_id` also accepts glob patterns that allow you to subscribe to _all_
-workflows or components:
-
-- `p_*`: Listen to events from all workflows
-- `dc_*`: Listen to events from all event sources
-
-[See the component endpoints](/rest-api/#components) for information on how to
-retrieve the ID of existing components. You can retrieve the ID of your workflow
-in your workflow's URL - it's the string `p_2gCPml` in
-`https://pipedream.com/@dylan/example-rss-sql-workflow-p_2gCPml/edit`.
-
----
-
-`listener_id` **string**
-
-The ID of the component or workflow you'd like to receive events.
-
-[See the component endpoints](/rest-api/#components) for information on how to
-retrieve the ID of existing components. You can retrieve the ID of your workflow
-in your workflow's URL - it's the string `p_2gCPml` in
-`https://pipedream.com/@dylan/example-rss-sql-workflow-p_2gCPml/edit`.
-
----
-
-`event_name` **string**
-
-The name of the event stream tied to your subscription. **If you didn't specify
-an `event_name` when creating your subscription, pass `event_name=`**.
-
-You'll find the `event_name` that's tied to your subscription when [listing your
-subscriptions](#get-current-users-subscriptions):
-
-```javascript
-{
- "id": "sub_abc123",
- "emitter_id": "dc_abc123",
- "listener_id": "dc_def456",
- "event_name": "test"
-},
-{
- "id": "sub_def456",
- "emitter_id": "dc_abc123",
- "listener_id": "wh_abc123",
- "event_name": ""
-}
-```
-
-#### Example Request
-
-You can delete a subscription you configured for workflow `p_abc123` to listen
-to events from the source `dc_def456` using the following command:
-
-```shell
-curl "https://api.pipedream.com/v1/subscriptions?emitter_id=dc_def456&listener_id=p_abc123" \
- -X DELETE \
- -H "Authorization: Bearer " \
- -H "Content-Type: application/json"
-```
-
-## Users
-
-
-These endpoints only work when using [user API keys](/rest-api/auth/#user-api-keys), and will not work with workspace-level OAuth clients.
-
-
-### Get Current User Info
-
-Retrieve information on the authenticated user.
-
-#### Endpoint
-
-```
-GET /users/me
-```
-
-#### Parameters
-
-_No parameters_
-
-#### Example Request
-
-```bash
-curl 'https://api.pipedream.com/v1/users/me' \
- -H 'Authorization: Bearer '
-```
-
-#### Example Response
-
-Free user:
-
-```json
-{
- "data": {
- "id": "u_abc123",
- "username": "dylburger",
- "email": "dylan@pipedream.com",
- "daily_compute_time_quota": 95400000,
- "daily_compute_time_used": 8420300,
- "daily_invocations_quota": 27344,
- "daily_invocations_used": 24903
- "orgs": [
- {
- "name": "MyWorkspace",
- "id": "o_abc123",
- "orgname": "myworkspace",
- "email": "workspace@pipedream.com",
- "daily_credits_quota": 100,
- "daily_credits_used": 0
- },
- {
- "name": "MyTeam",
- "id": "o_edf456",
- "orgname": "myteam",
- "email": "team@pipedream.com",
- "daily_credits_quota": 100,
- "daily_credits_used": 0,
- "daily_compute_time_quota": 1800000,
- "daily_compute_time_used": 0,
- "daily_invocations_quota": 100,
- "daily_invocations_used": 0
- }
- ],
-
- }
-}
-```
-
-Paid user:
-
-```json
-{
- "data": {
- "id": "u_abc123",
- "username": "user-35b7389db9e5222d42df6b3f0cfa8143"
- "email": "dylan@pipedream.com",
- "billing_period_start_ts": 1610154978,
- "billing_period_end_ts": 1612833378,
- "billing_period_credits": 12345
- }
-}
-```
-
-## Webhooks
-
-Pipedream supports webhooks as a way to deliver events to a endpoint you own.
-Webhooks are managed at an account-level, and you send data to these webhooks
-using [subscriptions](#subscriptions).
-
-For example, you can run a Twitter [event source](/workflows/building-workflows/triggers/) that listens
-for new tweets. If you [subscribe](#subscriptions) the webhook to this source,
-Pipedream will deliver those tweets directly to your webhook's URL without
-running a workflow.
-
-[**See these tutorials**](/rest-api/webhooks) for examples.
-
-### Create a webhook
-
-Creates a webhook pointing to a URL. Configure a [subscription](#subscriptions)
-to deliver events to this webhook.
-
-#### Endpoint
-
-```
-POST /webhooks?url={your_endpoint_url}&name={name}&description={description}
-```
-
-#### Parameters
-
-`url` **string**
-
-The endpoint URL where you'd like to deliver events. Any events sent to this
-webhook object will be delivered to this endpoint URL.
-
-This URL **must** contain, at a minimum, a protocol — one of `http` or `https` —
-and hostname, but can specify resources or ports. For example, these URLs work:
-
-```
-https://example.com
-http://example.com
-https://example.com:12345/endpoint
-```
-
-but these do not:
-
-```
-# No protocol - needs http(s)://
-example.com
-
-# mysql protocol not supported. Must be an HTTP(S) endpoint
-mysql://user:pass@host:port
-```
-
----
-
-`name` **string**
-
-The name you'd like to assign to this webhook, which will appear when [listing
-your webhooks](#get-current-users-webhooks).
-
----
-
-`description` **string**
-
-The description you'd like to assign to this webhook.
-
-#### Example Request
-
-You can create a webhook that delivers events to
-`https://endpoint.m.pipedream.net` using the following command:
-
-```shell
-curl "https://api.pipedream.com/v1/webhooks?url=https://endpoint.m.pipedream.net&name=name&description=description" \
- -X POST \
- -H "Authorization: Bearer " \
- -H "Content-Type: application/json"
-```
-
-#### Example Response
-
-Successful API responses contain a webhook ID for the webhook that was created
-in `data.id` — the string that starts with `wh_` — which you can reference when
-creating [subscriptions](#subscriptions).
-
-```json
-{
- "data": {
- "id": "wh_abc123",
- "user_id": "u_abc123",
- "name": null,
- "description": null,
- "url": "https://endpoint.m.pipedream.net",
- "active": true,
- "created_at": 1611964025,
- "updated_at": 1611964025
- }
-}
-```
-
-### Delete a webhook
-
-Use this endpoint to delete a webhook in your account.
-
-#### Endpoint
-
-```
-DELETE /webhooks/{id}
-```
-
-#### Path Parameters
-
-`id` **string**
-
-The ID of a webhook in your account.
-
----
-
-#### Example Request
-
-```shell
-curl "https://api.pipedream.com/v1/webhooks/wh_abc123" \
- -X DELETE \
- -H "Authorization: Bearer " \
- -H "Content-Type: application/json"
-```
-
-## Workflows
-
-### Invoke workflow
-
-You can invoke workflows by making an HTTP request to a workflow's HTTP trigger. [See the docs on authorizing requests and invoking workflows](/workflows/building-workflows/triggers/#authorizing-http-requests) for more detail.
-
-### Create a Workflow
-
-
-This endpoint is only available when using [user API keys](/rest-api/auth/#user-api-keys), not yet for workspace [OAuth tokens](/rest-api/auth/#oauth).
-
-
-Creates a new workflow within an organization's project. This endpoint allows defining workflow steps, triggers, and settings, based on a supplied template.
-
-#### Endpoint
-
-```
-POST /workflows
-```
-
-#### Request Body
-
-`org_id` **string**
-
-[Switch to your workspace's context](/workspaces/#switching-between-workspaces) and [find your org's ID](/workspaces/#finding-your-workspaces-id).
-
----
-
-`project_id` **string**
-
-The ID of the project where the new workflow will be created. To find your project ID, switch to your desired worksapce, and click on Projects in the top left of the Pipedream dashboard.
-
-Click on the project where you'd like to create the new workflow, and the project ID can be found in the URL, starting with `proj_`.
-
-If the URL is [https://pipedream.com/@pd-testing/projects/proj_GzsRY5N/tree](https://pipedream.com/@pd-testing/projects/proj_GzsRY5N/tree), your `project_id` is `proj_GzsRY5N`.
-
----
-
-`template_id` **string**
-
-The ID of the workflow template to base the workflow on. To find a workflow's `template_id`, navigate to your workflow that you'd like to create a template for, and click "Create share link". If the URL created is [https://pipedream.com/new?h=tch_Vdfl0l](https://pipedream.com/new?h=tch_Vdfl0l), your `template_id` is `tch_Vdfl01`.
-
----
-
-`steps` **array**: Definitions of the steps to include in the workflow. Each item in the array represents a step, with its namespace and `props`.
-
----
-
-`triggers` **array**: Definitions of the triggers that will start the workflow. Each item in the array represents a trigger, with its type and `props`.
-
----
-
-`settings` **object**: Additional settings for the workflow, such as `name` and `auto_deploy`.
-
-#### Example Request
-
-```json
-{
- "project_id": "proj_wx9sgy",
- "org_id": "o_BYDI5y",
- "template_id": "tch_3BXfWO",
- "steps": [
- {
- "namespace": "code",
- "props": {
- "stringProp": "asdf"
- }
- },
- {
- "namespace": "keyauth_hello_world",
- "props": {
- "keyauth": {
- "authProvisionId": "apn_Nb6h9v"
- }
- }
- }
- ],
- "triggers": [
- {
- "props": {
- "oauth": {
- "authProvisionId": "apn_qZWh4A"
- },
- "string": "jkl"
- }
- }
- ],
- "settings": {
- "name": "example workflow name",
- "auto_deploy": true
- }
-}
-```
-
-#### Example Response
-
-```json
-{
- "data": {
- "id": "p_48rCxZ",
- "name": "example workflow name",
- "active": true,
- "steps": [
- {
- "id": "c_bDf10L",
- "type": "CodeCell",
- "namespace": "code",
- "disabled": false,
- "code_raw": null,
- "codeRaw": null,
- "codeConfigJson": null,
- "lang": "nodejs20.x",
- "text_raw": null,
- "appConnections": [],
- "flat_params_visibility_json": null,
- "params_json": "{}",
- "component": true,
- "savedComponent": {
- "id": "sc_PRYiAZ",
- "code": "export default defineComponent({\n props: {\n stringProp: {\n type: \"string\"\n },\n intProp: {\n type: \"integer\",\n }\n },\n async run({ steps, $ }) {\n console.log(this.stringProp)\n return steps.trigger.event\n },\n})",
- "codeHash": "1908045950f3c1a861e538b20d70732adb701a81174dc59f809398e43f85d132",
- "configurableProps": [
- {
- "name": "stringProp",
- "type": "string"
- },
- {
- "name": "intProp",
- "type": "integer"
- }
- ],
- "key": null,
- "description": null,
- "entryPath": null,
- "version": "",
- "apps": []
- },
- "component_key": null,
- "component_owner_id": null,
- "configured_props_json": "{\"intProp\":5,\"stringProp\":\"asdf\"}",
- "authProvisionIdMap": {},
- "authProvisionIds": []
- },
- {
- "id": "c_W3f0YV",
- "type": "CodeCell",
- "namespace": "python",
- "disabled": false,
- "code_raw": null,
- "codeRaw": null,
- "codeConfigJson": null,
- "lang": "python3.12",
- "text_raw": null,
- "appConnections": [],
- "flat_params_visibility_json": null,
- "params_json": "{}",
- "component": true,
- "savedComponent": {
- "id": "sc_mweiWO",
- "code": "def handler(pd: \"pipedream\"):\n # Reference data from previous steps\n print(pd.steps[\"trigger\"][\"context\"][\"id\"])\n # Return data for use in future steps\n return {\"foo\": {\"test\": True}}\n",
- "codeHash": "63b32f00f1bc0b594e7a109cced4bda5011ab4420e358f743058dc46de8c5270",
- "configurableProps": [],
- "key": null,
- "description": null,
- "entryPath": null,
- "version": "",
- "apps": []
- },
- "component_key": null,
- "component_owner_id": null,
- "configured_props_json": null,
- "authProvisionIdMap": {},
- "authProvisionIds": []
- },
- {
- "id": "c_D7feVN",
- "type": "CodeCell",
- "namespace": "keyauth_hello_world",
- "disabled": false,
- "code_raw": null,
- "codeRaw": null,
- "codeConfigJson": null,
- "lang": "nodejs20.x",
- "text_raw": null,
- "appConnections": [],
- "flat_params_visibility_json": null,
- "params_json": "{}",
- "component": true,
- "savedComponent": {
- "id": "sc_71Li4l",
- "code": "const keyauth = {\n type: \"app\",\n app: \"keyauth\",\n propDefinitions: {},\n}\n\nexport default {\n name: \"Key auth hello world\",\n version: \"0.0.1\",\n key: \"keyauth-hello-world\",\n type: \"action\",\n description: \"simple hello world with dev keyauth app.\",\n props: {\n keyauth,\n },\n async run() {\n console.log(\"hello world\")\n return \"hello world\"\n },\n}\n",
- "codeHash": "b7d5c6540f60e63174a96d5e5ba4aa89bf45b7b9d9fdc01db0ee64c905962415",
- "configurableProps": [
- {
- "name": "keyauth",
- "type": "app",
- "app": "keyauth"
- }
- ],
- "key": "keyauth-hello-world",
- "description": "simple hello world with dev keyauth app.",
- "entryPath": null,
- "version": "0.0.1",
- "apps": [
- {
- "appId": "app_1xohQx",
- "nameSlug": "keyauth",
- "authType": "keys"
- }
- ]
- },
- "component_key": "keyauth-hello-world",
- "component_owner_id": null,
- "configured_props_json": "{\"keyauth\":{\"authProvisionId\":\"apn_Nb6h9v\"}}",
- "authProvisionIdMap": {},
- "authProvisionIds": []
- }
- ],
- "triggers": [
- {
- "id": "hi_0R3HKG",
- "key": "eohq5aaq8yr4sye",
- "endpoint_url": "http://eojq5abv8yr4sye.m.d.pipedream.net",
- "custom_response": false,
- "created_at": 1707418403,
- "updated_at": 1707418403
- },
- {
- "id": "dc_rmXuv3",
- "owner_id": "o_BYDI5y",
- "component_id": "sc_PgliBJ",
- "configured_props": {},
- "active": true,
- "created_at": 1707241571,
- "updated_at": 1707241571,
- "name": "Emit hello world",
- "name_slug": "emit-hello-world-6"
- },
- {
- "id": "ti_aPxTPY",
- "interval_seconds": 3600,
- "cron": null,
- "timezone": "America/New_York",
- "schedule_changed_at": 1707418408,
- "created_at": 1707418404,
- "updated_at": 1707418404
- },
- {
- "id": "dc_5nvuPv",
- "owner_id": "o_BYDI5y",
- "component_id": "sc_XGBiLw",
- "configured_props": {
- "oauth": {
- "authProvisionId": "apn_qZWh4A"
- },
- "string": "jkl"
- },
- "active": true,
- "created_at": 1707418404,
- "updated_at": 1707418404,
- "name": "oauth-test-source",
- "name_slug": "oauth-test-source-3"
- },
- {
- "id": "ei_QbGT3D",
- "email_address": "em5tdwgfgbw9piv@upload.pipedream.net",
- "created_at": 1707418407,
- "updated_at": 1707418407
- }
- ]
- }
-}
-```
-
-### Update a Workflow
-
-
-This endpoint is only available when using [user API keys](/rest-api/auth/#user-api-keys), not yet for workspace [OAuth tokens](/rest-api/auth/#oauth).
-
-
-Updates the workflow's activation status. If you need to modify the workflow's steps, triggers, or connected accounts [consider making a new workflow](#create-a-workflow).
-
-#### Endpoint
-
-```bash
-PUT /workflows/{id}
-```
-
-#### Path Parameters
-
-`id` **string**
-The ID of the workflow to update.
-
-To find your workflow ID, navigate to your workflow.
-
-If the URL is [https://pipedream.com/@michael-testing/api-p_13CDnxK/inspect](https://pipedream.com/@michael-testing/api-p_13CDnxK/inspect), your `workflow_id` begins with `p_` and would be `p_13CDnxK`.
-
-#### Request Body
-
-`active` **boolean**
-The activation status of a workflow. Set to `true` to activate the workflow, or `false` to deactivate it.
-
-`org_id` **string**
-[Find your org's ID](/workspaces/#finding-your-workspaces-id).
-
-#### Example Request
-
-```bash
-curl -X PUT 'https://api.pipedream.com/v1/workflows/p_abc123' \
- -H 'Authorization: Bearer ' \
- -H 'Content-Type: application/json' \
- -d '{"active": false, "org_id": "o_BYDI5y"}'
-```
-
-### Get a Workflow's details
-
-Retrieves the details of a specific workflow within an organization's project.
-
-#### Endpoint
-
-```bash
-GET /workflows/{workflow_id}
-```
-
-#### Path Parameters
-
-`workflow_id` **string**: The ID of the workflow to retrieve.
-
-#### Example Request
-
-```bash
-curl 'https://api.pipedream.com/v1/workflows/p_abc123?org_id=o_abc123' \
- -H 'Authorization: Bearer '
-```
-
-#### Example Response
-
-```json
-{
- "triggers": [
- {
- "id": "hi_ABpHKz",
- "key": "eabcdefghiklmnop",
- "endpoint_url": "http://eabcdefghiklmnop.m.d.pipedream.net",
- "custom_response": false
- }
- ],
- "steps": [
- {
- "id": "c_abc123",
- "namespace": "code",
- "disabled": false,
- "lang": "nodejs20.x",
- "appConnections": [],
- "component": true,
- "savedComponent": {
- "id": "sc_abc123",
- "codeHash": "long-hash-here",
- "configurableProps": [
- {
- "name": "channelId",
- "type": "string"
- },
- {
- "name": "message",
- "type": "string"
- },
- {
- "name": "slack",
- "type": "app",
- "app": "slack"
- }
- ],
- "version": ""
- },
- "component_key": null,
- "component_owner_id": "o_abc123",
- "configured_props_json": "{}"
- }
- ]
-}
-```
-
-### Get Workflow Emits
-
-Retrieve up to the last 100 events emitted from a workflow using
-[`$send.emit()`](/workflows/data-management/destinations/emit/#emit-events).
-
-#### Endpoint
-
-```
-GET /workflows/{workflow_id}/event_summaries
-```
-
-#### Notes and Examples
-
-The event data for events larger than `1KB` may get truncated in the response.
-If you're retrieving larger events, and need to see the full event data, pass
-`?expand=event`:
-
-```
-GET /workflows/{workflow_id}/event_summaries&expand=event
-```
-
-Pass `?limit=N` to retrieve the last **N** events:
-
-```
-GET /v1/workflows/{workflow_id}/event_summaries?expand=event&limit=1
-```
-
-#### Example Request
-
-```shell
-curl 'https://api.pipedream.com/v1/workflows/p_abc123/event_summaries?expand=event&limit=1' \
- -H 'Authorization: Bearer '
-```
-
-#### Example Response
-
-```json
-{
- "page_info": {
- "total_count": 1,
- "start_cursor": "1606511826306-0",
- "end_cursor": "1606511826306-0",
- "count": 1
- },
- "data": [
- {
- "id": "1606511826306-0",
- "indexed_at_ms": 1606511826306,
- "event": {
- "raw_event": {
- "name": "Luke",
- "title": "Jedi"
- }
- },
- "metadata": {
- "emit_id": "1ktF96gAMsLqdYSRWYL9KFS5QqW",
- "name": "",
- "emitter_id": "p_abc123"
- }
- }
- ]
-}
-```
-
-### Get Workflow Errors
-
-Retrieve up to the last 100 events for a workflow that threw an error. The
-details of the error, along with the original event data, will be included
-
-#### Endpoint
-
-```
-GET /workflows/{workflow_id}/$errors/event_summaries
-```
-
-#### Notes and Examples
-
-The event data for events larger than `1KB` may get truncated in the response.
-If you're processing larger events, and need to see the full event data, pass
-`?expand=event`:
-
-```
-GET /workflows/{workflow_id}/$errors/event_summaries&expand=event
-```
-
-Pass `?limit=N` to retrieve the last **N** events:
-
-```
-GET /v1/workflows/{workflow_id}/$errors/event_summaries?expand=event&limit=1
-```
-
-#### Example Request
-
-```shell
-curl 'https://api.pipedream.com/v1/workflows/p_abc123/$errors/event_summaries?expand=event&limit=1' \
- -H 'Authorization: Bearer '
-```
-
-#### Example Response
-
-```json
-{
- "page_info": {
- "total_count": 100,
- "start_cursor": "1606370816223-0",
- "end_cursor": "1606370816223-0",
- "count": 1
- },
- "data": [
- {
- "id": "1606370816223-0",
- "indexed_at_ms": 1606370816223,
- "event": {
- "original_event": {
- "name": "Luke",
- "title": "Jedi"
- },
- "original_context": {
- "id": "1kodJIW7jVnKfvB2yp1OoPrtbFk",
- "ts": "2020-11-26T06:06:44.652Z",
- "workflow_id": "p_abc123",
- "deployment_id": "d_abc123",
- "source_type": "SDK",
- "verified": false,
- "owner_id": "u_abc123",
- "platform_version": "3.1.20"
- },
- "error": {
- "code": "InternalFailure",
- "cellId": "c_abc123",
- "ts": "2020-11-26T06:06:56.077Z",
- "stack": " at Request.extractError ..."
- },
- "metadata": {
- "emitter_id": "p_abc123",
- "emit_id": "1kodKnAdWGeJyhqYbqyW6lEXVAo",
- "name": "$errors"
- }
- }
- }
- ]
-}
-```
-
-## Workspaces
-
-[Workspaces](/workspaces/) provide your team a way to manage resources in a shared workspace. Any resources created by the workspace are owned by the workspace and accessible to its members.
-
-### Get a Workspace
-
-Programmatically view your workspace's current credit usage for the billing period in real time.
-
-#### Endpoint
-
-```
-GET /v1/workspaces/
-```
-
-#### Path Parameters
-
-`workspaces_id` **string**
-
-[Switch to your workspace's context](/workspaces/#switching-between-workspaces) and [find your org's ID](/workspaces/#finding-your-workspaces-id).
-
-#### Example Response
-
-```
-{
- "data": {
- "id": "o_Qa8I1Z",
- "orgname": "asdf",
- "name": "asdf",
- "email": "dev@pipedream.com",
- "daily_credits_quota": 100,
- "daily_credits_used": 0
- }
-}
-```
-
-### Get Workspaces's Connected Accounts
-
-Retrieve all the connected accounts for a specific workspace.
-
-#### Endpoint
-
-```
-GET /workspaces//accounts
-```
-
-#### Path Parameters
-
-`org_id` **string**
-
-[Switch to your workspace's context](/workspaces/#switching-between-workspaces) and [find your org's ID](/workspaces/#finding-your-workspaces-id).
-
-#### Query Parameters
-
-`query` **string** (_optional_)
-
-To look up the connected account information for a specific app, use the `query` query parameter to filter results for that app. You can find a given app's `query` from the [Explore](https://pipedream.com/explore) page by selecting the app, and looking at the prop definition for the app.
-
-#### Example Request
-
-```shell
-curl 'https://api.pipedream.com/v1/workspaces/o_abc123/accounts?query=google_sheets' \
- -H 'Authorization: Bearer '
-```
-
-#### Example Response
-
-```json
-{
- "page_info": {
- "total_count": 1,
- "count": 1,
- "start_cursor": "YXBuXzJrVmhMUg",
- "end_cursor": "YXBuXzJrVmhMUg"
- },
- "data": [
- {
- "id": "apn_2kVhLR",
- "name": "Google Sheets #1"
- }
- ]
-}
-```
-
-### Get Workspaces's Subscriptions
-
-Retrieve all the [subscriptions](#subscriptions) configured for a specific workspace.
-
-#### Endpoint
-
-```
-GET /workspaces//subscriptions
-```
-
-#### Path Parameters
-
-`workspaces_id` **string**
-
-[Switch to your workspace's context](/workspaces/#switching-between-workspaces) and [find your org's ID](/workspaces/#finding-your-workspaces-id).
-
-#### Example Request
-
-```shell
-curl 'https://api.pipedream.com/v1/workspaces/o_abc123/subscriptions' \
- -H 'Authorization: Bearer '
-```
-
-#### Example Response
-
-```json
-{
- "data": [
- {
- "id": "sub_abc123",
- "emitter_id": "dc_abc123",
- "listener_id": "p_abc123",
- "event_name": ""
- },
- {
- "id": "sub_def456",
- "emitter_id": "dc_def456",
- "listener_id": "p_def456",
- "event_name": ""
- }
- ]
-}
-```
-
-### Get Workspaces's Sources
-
-Retrieve all the [event sources](#sources) configured for a specific workspace.
-
-#### Endpoint
-
-```
-GET /orgs//sources
-```
-
-#### Path Parameters
-
-`org_id` **string**
-
-[Switch to your workspace's context](/workspaces/#switching-between-workspaces) and [find your org's ID](/workspaces/#finding-your-workspaces-id).
-
-#### Example Request
-
-```shell
-curl 'https://api.pipedream.com/v1/orgs/o_abc123/sources' \
- -H 'Authorization: Bearer '
-```
-
-#### Example Response
-
-```json
-{
- "page_info": {
- "total_count": 19,
- "count": 10,
- "start_cursor": "ZGNfSzB1QWVl",
- "end_cursor": "ZGNfeUx1alJx"
- },
- "data": [
- {
- "id": "dc_abc123",
- "component_id": "sc_def456",
- "configured_props": {
- "http": {
- "endpoint_url": "https://myendpoint.m.pipedream.net"
- }
- },
- "active": true,
- "created_at": 1587679599,
- "updated_at": 1587764467,
- "name": "test",
- "name_slug": "test"
- }
- ]
-}
-```
diff --git a/docs-v2/pages/rest-api/rss.mdx b/docs-v2/pages/rest-api/rss.mdx
deleted file mode 100644
index 306d69ebcf7af..0000000000000
--- a/docs-v2/pages/rest-api/rss.mdx
+++ /dev/null
@@ -1,132 +0,0 @@
-# REST API example: Create an RSS source
-
-Here, we'll walk through an example of how to create an RSS [event source](/workflows/building-workflows/triggers/) and retrieve events from that source using the [REST API](/rest-api/).
-
-Before you begin, you'll need your [Pipedream API Key](/rest-api/auth/#user-api-keys).
-
-## Find the details of the source you'd like to create
-
-To create an event source using Pipedream's REST API, you'll need two things:
-
-- The `key` that identifies the component by name
-- The `props` - input data - required to create the source
-
-You can find the `key` by reviewing the code for the source, [in Pipedream's Github repo](https://github.com/PipedreamHQ/pipedream/tree/master/components).
-
-In the `components/` directory, you'll see a list of apps. Navigate to the app-specific directory for your source, then visit the `sources/` directory in that dir to find your source. For example, to create an RSS source, visit the [`components/rss/sources/new-item-in-feed/new-item-in-feed.js` source](https://github.com/PipedreamHQ/pipedream/blob/master/components/rss/sources/new-item-in-feed/new-item-in-feed.ts).
-
-The `key` is a globally unique identifier for the source. You'll see the `key` for this source near the top of the file:
-
-```javascript
-key: "rss-new-item-in-feed",
-```
-
-Given this key, make an API request to the `/components/registry/{key}` endpoint of Pipedream's REST API:
-
-```bash
-curl https://api.pipedream.com/v1/components/registry/rss-new-item-in-feed \
- -H "Authorization: Bearer XXX" -vvv \
- -H "Content-Type: application/json"
-```
-
-This returns information about the component, including a `configurable_props` section that lists the input you'll need to provide to create the source:
-
-```json
-"configurable_props": [
- {
- "name": "rss",
- "type": "app",
- "app": "rss"
- },
- {
- "name": "url",
- "type": "string",
- "label": "Feed URL",
- "description": "Enter the URL for any public RSS feed."
- },
- {
- "name": "timer",
- "type": "$.interface.timer",
- "default": {
- "intervalSeconds": 900
- }
- }
-],
-```
-
-In this specific case, you can ignore the `rss` "app" prop. The other two props — `url` and `timer` — are inputs that you can control:
-
-- `url`: the URL to the RSS feed
-- `timer` (optional): the frequency at which you'd like to poll the RSS feed for new items. By default, this source will poll for new items every 15 minutes.
-
-## Creating the source
-
-To create an RSS event source, make an HTTP POST request to the `/v1/sources` endpoint of Pipedream's REST API, passing the `url` you'd like to poll and the frequency at which you'd like to run the source in the `timer` object. In this example, we'll run the source once every 60 seconds.
-
-```bash
-curl https://api.pipedream.com/v1/sources \
- -H "Authorization: Bearer XXX" -vvv \
- -H "Content-Type: application/json" \
- -d '{"key": "rss-new-item-in-feed", "name": "test-rss", "configured_props": { "url": "https://rss.m.pipedream.net", "timer": { "intervalSeconds": 60 }}}'
-```
-
-If successful, you should get back a `200 OK` response from the API with the following payload:
-
-```json
-{
- "data": {
- "id": "dc_abc123",
- "user_id": "u_abc123",
- "component_id": "sc_abc123",
- "configured_props": {
- "url": "https://rss.m.pipedream.net",
- "timer": {
- "cron": null,
- "interval_seconds": 60
- }
- },
- "active": true,
- "created_at": 1589486978,
- "updated_at": 1589486978,
- "name": "your-name-here",
- "name_slug": "your-name-here"
- }
-}
-```
-
-Visit [https://pipedream.com/sources](https://pipedream.com/sources) to see your running source. You should see the source listed on the left with the name you specified in the API request.
-
-## Fetching new events
-
-The RSS source polls your feed URL for items at the specified frequency. It emits new items as **events** of the following shape:
-
-```json
-{
- "permalink": "https://example.com/8161",
- "guid": "https://example.com/8161",
- "title": "Example post",
- "link": "https://example.com/8161"
-}
-```
-
-### SSE
-
-You can subscribe to new events in real time by listening to the SSE stream tied to this source. Take the `id` from the API response above — `dc_abc123` in our example — and make a request to this endpoint:
-
-```bash
-curl -H "Authorization: Bearer " \
- "https://api.pipedream.com/sources/dc_abc123/sse"
-```
-
-[See the SSE docs for more detail on this interface](/workflows/data-management/destinations/sse/).
-
-### REST API
-
-You can also fetch items in batch using the REST API. If you don't need to act on items in real time, and just need to fetch new items from the feed on a regular interval, you can fetch events like so:
-
-```bash
-curl -H "Authorization: Bearer " \
- "https://api.pipedream.com/v1/sources/dc_BVuN2Q/event_summaries"
-```
-
-[See the docs on the `/event_summaries` endpoint](/rest-api/#get-source-events) for more details on the parameters it accepts. For example, you can pass a `limit` param to return only `N` results per page, and paginate over results using the `before` and `after` cursors described in the [pagination docs](/rest-api/#pagination).
diff --git a/docs-v2/pages/rest-api/webhooks.mdx b/docs-v2/pages/rest-api/webhooks.mdx
deleted file mode 100644
index 9d1056f843919..0000000000000
--- a/docs-v2/pages/rest-api/webhooks.mdx
+++ /dev/null
@@ -1,79 +0,0 @@
-# REST API Example: Webhooks
-
-Pipedream supports webhooks as a way to deliver events to an endpoint you own. Webhooks are managed at an account-level, and you send data to these webhooks using [subscriptions](/rest-api/#subscriptions).
-
-For example, you can run a Twitter [event source](/workflows/building-workflows/triggers/) that listens for new tweets. If you [subscribe](/rest-api/#subscriptions) the webhook to this source, Pipedream will deliver those tweets directly to your webhook's URL without running a workflow.
-
-## Send events from an existing event source to a webhook
-
-[Event sources](/workflows/building-workflows/triggers/) source data from a service / API, emitting events that can trigger Pipedream workflows. For example, you can run a Github event source that emits an event anytime someone stars your repo, triggering a workflow on each new star.
-
-**You can also send the events emitted by an event source to a webhook**.
-
-
-
-### Step 1 - retrieve the source's ID
-
-First, you'll need the ID of your source. You can visit [https://pipedream.com/sources](https://pipedream.com/sources), select a source, and copy its ID from the URL. It's the string that starts with `dc_`:
-
-
-
-You can also find the ID by running `pd list sources` using [the CLI](/components/contributing/cli/reference/#pd-list).
-
-### Step 2 - Create a webhook
-
-You can create a webhook using the [`POST /webhooks` endpoint](/rest-api/#create-a-webhook). The endpoint accepts 3 params:
-
-- `url`: the endpoint to which you'd like to deliver events
-- `name`: a name to assign to the webhook, for your own reference
-- `description`: a longer description
-
-You can make a request to this endpoint using `cURL`:
-
-```bash
-curl "https://api.pipedream.com/v1/webhooks?url=https://endpoint.m.pipedream.net&name=name&description=description" \
- -X POST \
- -H "Authorization: Bearer " \
- -H "Content-Type: application/json"
-```
-
-Successful API responses contain a webhook ID in `data.id` — the string that starts with `wh_` — which you'll use in **Step 3**:
-
-```json
-{
- "data": {
- "id": "wh_abc123"
- ...
- }
-}
-```
-
-### Step 3 - Create a subscription
-
-[Subscriptions](/rest-api/#subscriptions) allow you to deliver events from one Pipedream resource to another. In the language of subscriptions, the webhook will **listen** for events **emitted** by the event source.
-
-You can make a request to the [`POST /subscriptions` endpoint](/rest-api/#listen-for-events-from-another-source-or-workflow) to create this subscription. This endpoint requires two params:
-
-- `emitter_id`: the source ID from **Step 1**
-- `listener_id`: the webhook ID from **Step 2**
-
-You can make a request to this endpoint using `cURL`:
-
-```bash
-curl "https://api.pipedream.com/v1/subscriptions?emitter_id=dc_abc123&listener_id=wh_abc123" \
- -X POST \
- -H "Authorization: Bearer " \
- -H "Content-Type: application/json"
-```
-
-If successful, this endpoint should return a `200 OK` with metadata on the subscription.
-
-### Step 4 - Trigger an event
-
-Trigger an event in your source (for example, send a tweet, star a Github repo, etc). You should see the event emitted by the source delivered to the webhook URL.
-
-## Extending these ideas
-
-You can configure _any_ events to be delivered to a webhook: events emitted by event source, or those [emitted by a workflow](/workflows/data-management/destinations/emit/).
-
-You can also configure an event to be delivered to _multiple_ webhooks by creating multiple webhooks / subscriptions.
diff --git a/docs-v2/pages/rest-api/workflows.mdx b/docs-v2/pages/rest-api/workflows.mdx
deleted file mode 100644
index 30fcc40b6d6de..0000000000000
--- a/docs-v2/pages/rest-api/workflows.mdx
+++ /dev/null
@@ -1,255 +0,0 @@
-import Callout from '@/components/Callout'
-import { Steps } from 'nextra/components'
-
-# Example: Create a Workflow
-
-Here, we'll walk through an example of how to create a [workflow](/workflows/building-workflows/) programmatically using the [create workflow endpoint](/rest-api/#create-a-workflow) from a [workflow share link](/workflows/building-workflows/sharing/), and pass your own connected accounts, step and trigger props as configuration.
-
-Before you begin, you'll need your [Pipedream API Key](/rest-api/auth/#user-api-keys).
-
-## Creating a new workflow from a template
-
-Workflows can be shared as templates using a [Workflow Share Link](/workflows/building-workflows/sharing/). When you share a workflow, a unique key is created that represents that workflow's triggers, steps and settings.
-
-However, opening workflow share link with a browser will not include sharing private resources - such as connected accounts, sources and data stores. Connections to your private resources have to be populated by hand.
-
-The [create workflow endpoint](/rest-api/#create-a-workflow) allows you to programmatically assign your own connected accounts, props within the workflow, and even deploy the workflow in a single API request.
-
-
-
-### Create a workflow share link
-
-First, you'll need a workflow template. To create a new workflow template, follow this short guide.
-
-A workflow share link has the following format:
-
-```
-https://pipedream.com/new?h=tch_abc123
-```
-
-The `tch_abc123` portion of the URL represents the unique workflow template ID. Copy this, you'll need it in the following steps.
-
-
-**You can create workflows from any workflow template**
-
-You're not limited to creating new workflows from your own templates, you can create your own workflows using this endpoint with any workflow share link.
-
-This guide will also work for any workflow share link, although we recommend copying the workflow to your account first so you can view the workflow's available configurable props.
-
-
-### Create the workflow, and view the parameters
-
-You'll need to view the original workflow's configuration so you can identify the props you'll need to provide for the new version of the workflow.
-
-Use the **Get Workflow** endpoint to retrieve the details about the workflow you've created a template for.
-
-In the Get Workflow API response, you'll see two properties:
-
-* `triggers` - represents the triggers for the workflow.
-* `steps` - represents the series of steps within your workflow
-
-`triggers` and `steps` contain [props](/workflows/building-workflows/using-props/) that define the connected accounts as well as configuration.
-
-The next step is to learn how we can pass our specific connected accounts to app based props in the `steps` and/or `triggers` of the workflow template.
-
-Within the `steps` and `triggers`, find the `configurable_props` for the trigger. Here is where you can find the available slots that you can programmtically provide configuration for the **Create Workflow** endpoint:
-
-```json {6-11,27-41}
-// Example of a Get Workflow response
-{
- "triggers": [
- {
- "id": "dc_abc123",
- "configurable_props": [
- {
- "name": "url",
- "type": "string"
- }
- ],
- "configured_props": {},
- "active": true,
- "created_at": 1707170044,
- "updated_at": 1707170044,
- "name": "New Item in Feed",
- "name_slug": "new-item-in-feed"
- },
- ],
- "steps": [
- {
- "namespace": "send_message",
- "lang": "nodejs20.x",
- "component": true,
- "savedComponent": {
- "id": "sc_abc123",
- "configurableProps": [
- {
- "name": "slack",
- "type": "app",
- "app": "slack"
- },
- {
- "name": "channelId",
- "type": "string"
- },
- {
- "name": "message",
- "type": "string"
- }
- ]
- }
- }
- ]
-}
-```
-
-For the example workflow above, the RSS feed trigger has a `url` property, and the Slack step as a `slack`, `channelId` and `message` property. We'll use these names in the next steps as arguments for the **Create Workflow** endpoint.
-
-
-### Design the payload
-
-Now that we have the names of the configurable props for both the `triggers` and `steps` of the workflow, let's design the payload for creating a new instance of the workflow.
-
-First, populate the `project_id` and `org_id` where you'd like this new workflow to be instantiated under. Please refer to the [**Create Workflow** parameters documentation](/rest-api/#create-a-workflow) on how to find these values.
-
-The `template_id` for your workflow can be found from the URL of the workflow share link you created in **Step 1** of this guide.
-
-The `trigger` as a `url` prop, so let's provide it with a specific URL (`https://hnrss.org/newest?q=Pipedream`) for this new workflow:
-
-```json {7-11}
-// Example of a Create Workflow request payload
-{
- "project_id": "proj_abc123",
- "org_id": "o_abc123",
- "template_id": "tch_abc123",
- "triggers": [
- {
- "props": {
- "url": "https://hnrss.org/newest?q=Pipedream"
- }
- }
- ]
-}
-```
-
-
-**Triggers are addressable by index**
-
-You may have noticed that we didn't include the `namespace` argument to the trigger in our payload. This is because triggers are ordered sequentially, whereas steps need a `namespace` argument for proper addressing.
-
-
-If we were to send this payload to the **Create Workflow** endpoint now, it will populate the *RSS - New Item in Feed* trigger with the feed we provided.
-
-You can also populate the `steps` props.
-
-The **Slack - Send message in a Public Channel** step requires a `channelId`, `message` and the connected Slack account (`slack`). Let's start with connecting the Slack account.
-
-#### Find your connected accounts
-
-To connect your accounts to the workflow, you'll need to find the specific IDs for each of the accounts you'd like to connect.
-
-You can find your connected account IDs by using the [List Accounts endpoint](/rest-api/#get-workspacess-connected-accounts).
-
-You can filter your accounts by using the `query` query parameter. For example, if you want to find your connected Slack accounts to your workspace, then add `slack` to the query param:
-
-```
-GET /workflows/workspaces//accounts?query=slack
-```
-
-This request will narrow down the results to your connected Slack accounts, for easier finding.
-
-You'll need the ID of each connected account you'd like to configure this new workflow with. Copy down the `apn_******` value of the connected accounts from the response you'd like to use for the steps.
-
-```json {10}
-{
- "page_info": {
- "total_count": 1,
- "count": 1,
- "start_cursor": "YXBuXzJrVmhMUg",
- "end_cursor": "YXBuXzJrVmhMUg"
- },
- "data": [
- {
- "id": "apn_abc123",
- "name": "Slack Pipedream Workspace"
- }
- ]
-}
-```
-
-Now we can copy the ID for our Slack account from the response: `apn_abc123`.
-
-Given we now have the connected account ID, we can design the rest of the payload:
-
-```json {13-21}
-{
- "project_id": "proj_abc123",
- "org_id": "o_abc123",
- "template_id": "tch_3BXfWO",
- "triggers": [
- {
- "props": {
- "url": "https://hnrss.org/newest?q=Pipedream"
- }
- }
- ],
- "steps": [
- {
- "namespace": "send_message",
- "props": {
- "slack": {
- "authProvisionId": "apn_abc123",
- }
- "channelId": "U12356",
- "message": "**New HackerNews Mention** \n \n {{steps.trigger.event.item.title}} \n {{steps.trigger.event.item.description}}"
- }
- }
- ]
-}
-```
-Our payload now instructs Pipedream to set up the `send_message` step in our workflow with our connected Slack account and specific `channelId` and `message` parameters.
-
-### Define settings (optional)
-
-You can also define workflow settings such as the workflows, name, allocated memory, or if it should be deployed immediately:
-
-```json {24-27}
-{
- "project_id": "proj_abc123",
- "org_id": "o_abc123",
- "template_id": "tch_3BXfWO",
- "triggers": [
- {
- "props": {
- "url": "https://hnrss.org/newest?q=Pipedream"
- }
- }
- ],
- "steps": [
- {
- "namespace": "send_message",
- "props": {
- "slack": {
- "authProvisionId": "apn_abc123",
- }
- "channelId": "U12356",
- "message": "**New HackerNews Mention** \n \n {{steps.trigger.event.item.title}} \n {{steps.trigger.event.item.description}}"
- }
- }
- ],
- "settings": {
- "name": "New HackerNews Mentions to Slack",
- "auto_deploy": true
- }
-}
-```
-
-The `auto_deploy` option instructs Pipedream to deploy this workflow automatically, without requiring a manual deployment from the dashboard.
-
-### Send the request
-
-Finally, send the request to create this new workflow with this payload we've designed.
-
-You should see the new workflow within your Pipedream dashboard under the workspace and project defined in the payload.
-
-You can use this request to dynamically create new instances of the same workflow with different props, connected accounts and settings.
-
diff --git a/docs-v2/pages/troubleshooting.mdx b/docs-v2/pages/troubleshooting.mdx
deleted file mode 100644
index 8f819d86559fc..0000000000000
--- a/docs-v2/pages/troubleshooting.mdx
+++ /dev/null
@@ -1,311 +0,0 @@
-import Callout from '@/components/Callout'
-
-# Troubleshooting Common Issues
-
-This doc describes some common solutions for fixing issues with [pipedream.com](https://pipedream.com) or with a specific workflow.
-
-## A feature isn't working on pipedream.com
-
-If you're seeing an issue with [pipedream.com](https://pipedream.com) (for example, the site won't load, or you think you've found a bug), try each of the following steps, checking to see if they fix the problem:
-
-1. [Hard refresh](https://fabricdigital.co.nz/blog/how-to-hard-refresh-your-browser-and-clear-cache) pipedream.com in your browser.
-
-2. Log out of your pipedream.com account, and log back in.
-
-3. [Disable your browser extensions](https://www.computerhope.com/issues/ch001411.htm) or use features like [Chrome Guest mode](https://support.google.com/chrome/answer/6130773?hl=en&co=GENIE.Platform%3DAndroid) to browse pipedream.com without any existing extensions / cookies / cache.
-
-If you're still seeing the issue after trying these steps, please [report a bug](https://github.com/PipedreamHQ/pipedream/issues/new?assignees=&labels=bug&template=bug_report.md&title=%5BBUG%5D+).
-
-## How do I contact Pipedream Support?
-
-Start by filling out the request form at [https://pipedream.com/support](https://pipedream.com/support), providing detailed information about your issue.
-
-### How do I share my workflow with Support?
-
-First, navigate to your **Project Settings** and share your project with Pipedream Support.
-
-When filling out the request form at [https://pipedream.com/support](https://pipedream.com/support), please provide detailed information along with the URL from your browser's address bar, which should look something like:
-
-```
-https://pipedream.com/@yourworkspace/projects/proj_abc123/test-workflow-p_abc123/inspect
-```
-
-## Workflows
-
-### Where do I find my workflow's ID?
-
-Open [https://pipedream.com](https://pipedream.com) and visit your workflow. Copy the URL that appears in your browser's address bar. For example:
-
-```
-https://pipedream.com/@yourworkspace/projects/proj_abc123/test-workflow-p_abc123/inspect
-
-```
-
-Your workflow's ID is the value that starts with `p_`. In this example: `p_abc123`.
-
-### My workflow isn't working
-
-If you're encountering a specific issue in a workflow, try the following steps, checking to see if they fix the problem:
-
-1. Make a trivial change to your workflow, and **Deploy** your workflow again.
-
-2. Try searching [the community](https://pipedream.com/support) or [the `pipedream` GitHub repo](https://github.com/PipedreamHQ/pipedream/issues) to see if anyone else has solved the same issue.
-
-If you're still seeing the issue after trying these steps, please reach out in [the community](https://pipedream.com/support).
-
-### Error in workflow
-
-If you see a generic `Error in workflow` when invoking a webhook-triggered workflow, follow these steps to resolve the issue:
-1. Check if your trigger is configured to return a custom HTTP response.
-2. Confirm that your workflow is [returning an HTTP response](https://pipedream.com/docs/workflows/building-workflows/triggers/#customizing-the-http-response) in *every* situation, e.g., by using `$.respond()`.
-
-### How do I invoke another workflow?
-
-We provide a [Trigger Workflow](https://pipedream.com/apps/helper-functions/actions/trigger-workflow) action in the [Helper Functions](https://pipedream.com/apps/helper-functions) app. [See more here](/workflows/building-workflows/code/nodejs/#invoke-another-workflow).
-
-Another option is to make an HTTP request to a Pipedream HTTP webhook trigger.
-
-## Triggers
-
-### Why is my trigger not saving?
-
-If your trigger continuously spins without saving, it might be processing too much data at once or taking longer than expected. This issue often occurs with polling database-related triggers (e.g., PostgreSQL, Snowflake, Notion Databases). To resolve it, try reducing the volume of data fetched, e.g., by limiting the number of rows returned in your query.
-
-### Why is my trigger not emitting events?
-
-First, look at your [trigger logs](/troubleshooting/#where-can-i-find-the-trigger-logs) and check for any errors there. Verify that it has been running, whether on a new webhook event or at the configured polling interval.
-
-If your trigger operates on a large amount of data at once, it may fail to log the execution and you won't see any new events and logs. Try polling more frequently or limiting the number of records being fetched in the API request or Database query.
-
-#### Webhook-based instant sources
-
-These sources will get triggered immediately. But because events come in in real-time, most will **not** automatically fetch historical events upon creation. To surface test events in your workflow while building, you'll need to generate an eligible event in the selected app.
-
-For example, if you've configured the "[Message Updates (Instant)](https://pipedream.com/apps/telegram-bot-api/triggers/message-updates) Telegram source, you'll need to send a message in the Telegram account you've selected in order for an event to appear.
-
-
-
-Sources for apps like [Telegram](https://pipedream.com/apps/telegram-bot-api/triggers/message-updates) and [Google Sheets](https://pipedream.com/apps/google-sheets/triggers/new-row-added) use webhooks and get triggered immediately.
-
-#### Timer-based polling sources
-
-These sources will fetch new events on a regular interval, based on a schedule you specify in the trigger configuration.
-
-
-
-In most cases, Pipedream will automatically fetch recent historical events to help enable easier workflow development. Sources for apps like [Twitter](https://pipedream.com/apps/twitter/triggers/search-mentions) and [Spotify](https://pipedream.com/apps/spotify/triggers/new-playlist) require we poll their endpoints in order to fetch new events.
-
-### Where do I find my event source's ID?
-
-Open [https://pipedream.com/sources](https://pipedream.com/sources) and click on your event source. Copy the URL that appears in your browser's address bar. For example:
-
-```
-https://pipedream.com/sources/dc_abc123
-```
-
-Your source's ID is the value that starts with `dc_`. In this example: `dc_abc123`.
-
-### Where can I find the trigger logs?
-
-Find your [source](/troubleshooting/#where-do-i-find-my-event-sources-id), then click on the logs or visit this URL:
-
-```
-https://pipedream.com/sources/dc_abc123/logs
-```
-
-### Why is my trigger paused?
-
-Pipedream automatically disables sources with a 100% error rate in the past 5 days for accounts on the Free plan.
-
-To troubleshoot, you can look at the errors in the [source](/workflows/building-workflows/triggers/) logs, and may need to reconnect your account and re-enable the source for it to run again. If the issue persists, please reach out in [the community](https://pipedream.com/support).
-
-## Warnings
-
-Pipedream displays warnings below steps in certain conditions. These warnings do not stop the execution of your workflow, but can signal an issue you should be aware of.
-
-### Code was still running when the step ended
-
-This error occurs when Promises or asynchronous code is not properly finished before the next step begins execution.
-
-See the [Asynchronous section of the Node.js documentation](/workflows/building-workflows/code/nodejs/async/#the-problem) for more details.
-
-### Undeployed changes — You have made changes to this workflow. Deploy the latest version from the editor
-
-On workflows that are not [synced with GitHub](/workflows/git/), you may notice the following warning at the top of your workflow:
-
-> **Undeployed changes** — You have made changes to this workflow. Deploy the latest version from the editor
-
-This means that you've made some changes to your workflow that you haven't yet deployed. To see a diff of what's changed, we recommend [enabling GitHub sync](/workflows/git/), where you'll get a full commit history of changes made to your workflows, synced to your own GitHub repo.
-
-## Errors
-
-### Limit Exceeded Errors
-
-Pipedream sets [limits](/workflows/limits/) on runtime, memory, and other execution-related properties. If you exceed these limits, you'll receive one of the errors below. [See the limits doc](/workflows/limits/) for details on specific limits.
-
-### Quota Exceeded
-
-On the Free tier, Pipedream imposes a limit on the [daily credits](/workflows/limits/#daily-credits-limit) across all workflows and sources. If you hit this limit, you'll see a **Quota Exceeded** error.
-
-Paid plans have no credit limit. [Upgrade here](https://pipedream.com/pricing).
-
-### Runtime Quota Exceeded
-
-You **do not** use credits testing workflows, but workspaces on the **Free** plan are limited to {process.env.DAILY_TESTING_LIMIT} of test runtime per day. If you exceed this limit when testing in the builder, you'll see a **Runtime Quota Exceeded** error.
-
-### Timeout
-
-Event sources and workflows have a [default time limit on a given execution](/workflows/limits/#time-per-execution). If your code exceeds that limit, you may encounter a **Timeout** error.
-
-To address timeouts, you'll either need to:
-
-1. Figure out why your code is running for longer than expected. It's important to note that **timeouts are not an issue with Pipedream — they are specific to your workflow**. Often, you're making a request to a third party API that doesn't respond in the time you expect, or you're processing a large amount of data in your workflow, and it doesn't complete before you hit the execution limit.
-2. If it's expected that your code is taking a long time to run, you can raise the execution limit of a workflow in your [workflow's settings](/workflows/building-workflows/settings/#execution-timeout-limit). If you need to change the execution limit for an event source, please [reach out to our team](https://pipedream.com/support/).
-
-### Out of Memory
-
-Pipedream [limits the default memory](/workflows/limits/#memory) available to workflows and event sources. If you exceed this memory, you'll see an **Out of Memory** error. **You can raise the memory of your workflow [in your workflow's Settings](/workflows/building-workflows/settings/#memory)**.
-
-
-Even though the event may appear to have stopped at the trigger, the workflow steps were executed. We currently are unable to pinpoint the exact step where the OOM error occurred.
-
-
-This can happen for two main reasons:
-
-1. Even for small files or objects, avoid loading the entire content into memory (e.g., by saving it in a variable). Always stream files to/from disk to prevent potential memory leaks, using a [technique like this](/workflows/building-workflows/code/nodejs/http-requests/#download-a-file-to-the-tmp-directory).
-2. When you have many steps in your Pipedream workflow. When your workflow runs, Pipedream runs a separate process for each step in your workflow. That incurs some memory overhead. Typically this happens when you have more than 8-10 steps. When you see an OOM error on a workflow with many steps, try increasing the memory.
-
-### Rate Limit Exceeded
-
-Pipedream limits the number of events that can be processed by a given interface (e.g. HTTP endpoints) during a given interval. This limit is most commonly reached for HTTP interfaces - see the [QPS limits documentation](/workflows/limits/#qps-queries-per-second) for more information on that limit.
-
-**This limit can be raised for HTTP endpoints**. [Reach out to our team](https://pipedream.com/support/) to request an increase.
-
-### Request Entity Too Large
-
-By default, Pipedream limits the size of incoming HTTP payloads. If you exceed this limit, you'll see a **Request Entity Too Large** error.
-
-Pipedream supports two different ways to bypass this limit. Both of these interfaces support uploading data up to `5TB`, though you may encounter other [platform limits](/workflows/limits/).
-
-- You can send large HTTP payloads by passing the `pipedream_upload_body=1` query string or an `x-pd-upload-body: 1` HTTP header in your HTTP request. [Read more here](/workflows/building-workflows/triggers/#sending-large-payloads).
-- You can upload multiple large files, like images and videos, using the [large file upload interface](/workflows/building-workflows/triggers/#large-file-support).
-
-### Function Payload Limit Exceeded
-
-The total size of `console.log()` statements, [step exports](/workflows/#step-exports), and the original event data sent to workflows and sources cannot exceed a combined size of {process.env.FUNCTION_PAYLOAD_LIMIT}. If you produce logs or step exports larger than this - for example, passing around large API responses, CSVs, or other data - you may encounter a **Function Payload Limit Exceeded** in your workflow.
-
-Often, this occurs when you pass large data between steps using [step exports](/workflows/#step-exports). You can avoid this error by [writing that data to the `/tmp` directory](/workflows/building-workflows/code/nodejs/working-with-files/#writing-a-file-to-tmp) in one step, and [reading the data into another step](/workflows/building-workflows/code/nodejs/working-with-files/#reading-a-file-from-tmp), which avoids the use of step exports and should keep you under the payload limit.
-
-Pipedream also compresses the function payload from your workflow, which can yield roughly a 2x-3x increase in payload size (somewhere between `12MB` and `18MB`), depending on the data.
-
-### JSON Nested Property Limit Exceeded
-
-Working with nested JavaScript objects that have more than 256 nested objects will trigger a **JSON Nested Property Limit Exceeded** error.
-
-Often, objects with this many nested objects result from a programming error that explodes the object in an unexpected way. Please confirm the code you're using to convert data into an object is correctly parsing the object.
-
-### Event Queue Full
-
-Workflows have a maximum event queue size when using concurrency and throttling controls. If the number of unprocessed events exceeds the [maximum queue size](/workflows/building-workflows/settings/concurrency-and-throttling/#increasing-the-queue-size-for-a-workflow), you may encounter an **Event Queue Full** error.
-
-[Paid plans](https://pipedream.com/pricing) can [increase their queue size up to {process.env.MAX_WORKFLOW_QUEUE_SIZE}](/workflows/building-workflows/settings/concurrency-and-throttling/#increasing-the-queue-size-for-a-workflow) for a given workflow.
-
-### Credit Budget Exceeded
-
-Credit Budgets are configurable limits on your credit usage at the account or workspace level.
-
-If you're receiving this warning on a source or workflow, this means your allocated Credit Budget has been reached for the defined period.
-
-You can increase this limit at any time in the [billing area of your settings](https://pipedream.com/settings/billing).
-
-### Pipedream Internal Error
-
-A `Pipedream Internal Error` is thrown whenever there's an exception during the building or executing of a workflow that's outside the scope of the code for the individual components (steps or actions).
-
-There are a few known ways this can be caused and how to solve them.
-
-## Out of date actions or sources
-
-Pipedream components are updated continously. But when new versions of actions and sources are published to the Pipedream Component Registry, your workflows are not updated by default.
-
-[An **Update** prompt](/workflows/building-workflows/actions/#updating-actions-to-the-latest-version) is shown in the in the top right of the action if the component has a new version available.
-
-Sources do not feature an update button at this time, to receive the latest version, you'll need to create a new source, then attach it to your workflow.
-
-### New package versions issues
-
-If an NPM or PyPI package throws an error during either the building of the workflow or during it's execution, it may cause a `Pipedream Internal Error`.
-
-By default, Pipedream automatically updates NPM and PyPI packages to the latest version available. This is designed to make sure your workflows receive the latest package updates automatically.
-
-However, if a new package version includes bugs, or changes it's export signature, then this may cause a `Pipedream Internal Error`.
-
-You can potentially fix this issue by downgrading packages by pinning in [your Node.js](/workflows/building-workflows/code/nodejs/#pinning-package-versions) or [Python code steps](/workflows/building-workflows/code/python/#pinning-package-versions) to the last known working version.
-
-Alternatively, if the error is due to a major release that changes the import signature of a package, then modifying your code to match the signature may help.
-
-
-Some Pipedream components use NPM packages
-
-Some Pipedream components like pre-built [actions and triggers for Slack use NPM packages](https://github.com/PipedreamHQ/pipedream/blob/9aea8653dc65d438d968971df72e95b17f52d51c/components/slack/slack.app.mjs#L1).
-
-In order to downgrade these packages, you'll need to fork the Pipedream Github Repository and deploy your own changes to test them privately. Then you can [contribute the fix back into the main Pipedream Repository](/components/contributing/#contribution-process).
-
-
-### Packages consuming all available storage
-
-A `Pipedream Internal Error` could be the result of NPM or PyPI packages using the entireity of the workflow's storage capacity.
-
-The `lodash` library for example will import the entire package if individual modules are imported with this type of signature:
-
-```javascript
-// This style of import will cause the entire lodash package to be installed, not just the pick module
-import { pick } from "lodash"
-```
-
-Instead, use the specific package that exports the `pick` module alone:
-
-```javascript
-// This style imports only the pick module, since the lodash.pick package only contains this module
-import pick from "lodash.pick"
-```
-
-## Is there a way to replay workflow events programmatically?
-
-Not via the API, but you can bulk select and replay failed events using the [Event History](/workflows/event-history/).
-
-## How do I store and retrieve data across workflow executions?
-
-If you operate your own database or data store, you can connect to it directly in Pipedream.
-
-Pipedream also operates a [built-in key-value store](/workflows/data-management/data-stores/) that you can use to get and set data across workflow executions and different workflows.
-
-## How do I delay the execution of a workflow?
-
-Use Pipedream's [built-in Delay actions](/workflows/building-workflows/control-flow/delay/) to delay a workflow at any step.
-
-## How can my workflow run faster?
-
-Here are a few things that can help your workflow execute faster:
-
-1. **Increase memory:** Increase your [workflow memory](/workflows/building-workflows/settings/#memory) to at least 512 MB. Raising the memory limit will proportionally increase CPU resources, leading to improved performance and reduced latency.
-
-2. **Return static HTTP responses:** If your workflow is triggered by an HTTP source, return a [static HTTP response](/workflows/building-workflows/triggers/#http-responses) directly from the trigger configuration. This ensures the HTTP response is sent to the caller immediately, before the rest of the workflow steps are executed.
-
-3. **Simplify your workflow:** Reduce the number of [steps](/workflows/#code-actions) and [segments](/workflows/building-workflows/control-flow/#workflow-segments) in your workflow, combining multiple steps into one, if possible. This lowers the overhead involved in managing step execution and exports.
-
-4. **Activate warm workers:** Use [warm workers](/workflows/building-workflows/settings/#eliminate-cold-starts) to reduce the startup time of workflows. Set [as many warm workers](/workflows/building-workflows/settings/#how-many-workers-should-i-configure) as you want for high-volume traffic.
-
-## How can I save common functions as steps?
-
-You can create your own custom triggers and actions ("components") on Pipedream using [the Component API](/components/contributing/api/). These components are private to your account and can be used in any workflow.
-
-You can also publish common functions in your own package on a public registry like [npm](https://www.npmjs.com/) or [PyPI](https://pypi.org/).
-
-## Is Puppeteer supported in Pipedream?
-
-Yes, see [our Puppeteer docs](/workflows/building-workflows/code/nodejs/browser-automation/#puppeteer) for more detail.
-
-## Is Playwright supported in Pipedream?
-
-Yes, see [our Playwright docs](/workflows/building-workflows/code/nodejs/browser-automation/#playwright) for more detail.
diff --git a/docs-v2/pages/workflows/_meta.tsx b/docs-v2/pages/workflows/_meta.tsx
deleted file mode 100644
index 68e576ea05d00..0000000000000
--- a/docs-v2/pages/workflows/_meta.tsx
+++ /dev/null
@@ -1,12 +0,0 @@
-export default {
- "index": "Overview",
- "quickstart": "Quickstart",
- "building-workflows": "Building Workflows",
- "data-management": "Data Management",
- "event-history": "Event History",
- "environment-variables": "Environment Variables",
- "git": "GitHub Sync",
- "domains": "Custom Domains",
- "vpc": "Virtual Private Clouds",
- "limits": "Limits",
-} as const
diff --git a/docs-v2/pages/workflows/building-workflows/_meta.tsx b/docs-v2/pages/workflows/building-workflows/_meta.tsx
deleted file mode 100644
index 42bee16c86848..0000000000000
--- a/docs-v2/pages/workflows/building-workflows/_meta.tsx
+++ /dev/null
@@ -1,16 +0,0 @@
-export default {
- "triggers": "Triggers",
- "sources": {
- "title": "Sources",
- "display": "hidden",
- },
- "actions": "Actions",
- "http": "HTTP",
- "using-props": "Using Props",
- "code": "Write your own code",
- "control-flow": "Control Flow",
- "inspect": "Inspect events",
- "errors": "Handling errors",
- "sharing": "Sharing workflows",
- "settings": "Settings",
-} as const
diff --git a/docs-v2/pages/workflows/building-workflows/actions.mdx b/docs-v2/pages/workflows/building-workflows/actions.mdx
deleted file mode 100644
index bf28ffc496aa7..0000000000000
--- a/docs-v2/pages/workflows/building-workflows/actions.mdx
+++ /dev/null
@@ -1,39 +0,0 @@
-# Actions
-
-Actions are reusable code steps that integrate your apps, data and APIs. For example, you can send HTTP requests to an external service using our HTTP actions, or use our Google Sheets actions to add new data. You can use thousands of actions across {process.env.PUBLIC_APPS}+ apps today.
-
-Typically, integrating with these services requires custom code to manage connection logic, error handling, and more. Actions handle that for you. You only need to specify the parameters required for the action. For example, the HTTP `GET` Request action requires you enter the URL whose data you want to retrieve.
-
-You can also [create your own actions](#creating-your-own-actions) that can be shared across your own workflows, or published to all Pipedream users.
-
-## Using Existing Actions
-
-Adding existing actions to your workflow is easy:
-
-1. Click the **+** button below any step.
-2. Search for the app you're looking for and select it from the list.
-3. Search for the action and select it to add it to your workflow.
-
-For example, here's how to add the HTTP `GET` Request action:
-
-
-
-## Updating actions to the latest version
-
-When you use existing actions or create your own, you'll often want to update an action you added to a workflow to the newest version. For example, the community might publish a new feature or bug fix that you want to use.
-
-In your code steps with out of date actions, you'll see a button appear that will update your action to the latest version. Click on this button to update your code step:
-
-
-
-## Creating your own actions
-
-You can author your own actions on Pipedream, too. Anytime you need to reuse the same code across steps, consider making that an action.
-
-Start with our [action development quickstart](/components/contributing/actions-quickstart/). You can read more about all the capabilities of actions in [our API docs](/components/contributing/api/), and review [example actions here](/components/contributing/api/#example-components).
-
-You can also publish actions to [the Pipedream registry](/components/contributing/), which makes them available for anyone on Pipedream to use.
-
-## Reporting a bug / feature request
-
-If you'd like to report a bug, request a new action, or submit a feature request for an existing action, [open an issue in our GitHub repo](https://github.com/PipedreamHQ/pipedream).
diff --git a/docs-v2/pages/workflows/building-workflows/code/_meta.tsx b/docs-v2/pages/workflows/building-workflows/code/_meta.tsx
deleted file mode 100644
index 540119f98bc88..0000000000000
--- a/docs-v2/pages/workflows/building-workflows/code/_meta.tsx
+++ /dev/null
@@ -1,7 +0,0 @@
-export default {
- "index": "Overview",
- "nodejs": "Node.js",
- "python": "Python",
- "go": "Go",
- "bash": "Bash",
-} as const
diff --git a/docs-v2/pages/workflows/building-workflows/code/bash.mdx b/docs-v2/pages/workflows/building-workflows/code/bash.mdx
deleted file mode 100644
index fb4a1384c950b..0000000000000
--- a/docs-v2/pages/workflows/building-workflows/code/bash.mdx
+++ /dev/null
@@ -1,182 +0,0 @@
-import Callout from '@/components/Callout'
-
-# Bash
-
-Prefer to write quick scripts in Bash? We've got you covered. You can run any Bash in a Pipedream step within your workflows.
-
-Within a Bash step, you can [share data between steps](/workflows/building-workflows/code/bash/#sharing-data-between-steps) and [access environment variables](/workflows/building-workflows/code/bash/#using-environment-variables). But you can't connect accounts, return HTTP responses, or take advantage of other features available in the [Node.js](/workflows/building-workflows/code/nodejs/) environment at this time.
-
-## Adding a Bash code step
-
-1. Click the + icon to add a new step
-2. Click **Custom Code**
-3. In the new step, select the `bash` runtime in language dropdown
-
-## Logging and debugging
-
-When it comes to debugging Bash scripts, `echo` is your friend.
-
-Your `echo` statements will print their output in the workflow step results:
-
-```bash
-MESSAGE='Hello world'
-
-# The message will now be available in the "Result > Logs" area in the workflow step
-echo $MESSAGE
-```
-
-## Available binaries
-
-Bash steps come with many common and useful binaries preinstalled and available in `$PATH` for you to use out of the box. These binaries include but aren't limited to:
-
-- `curl` for making HTTP requests
-- `jq` for manipulating and viewing JSON data
-- `git` for interacting with remote repositories
-
-If you need a package pre-installed in your Bash steps, [just ask us](https://pipedream.com/support). Otherwise, you can use the `/tmp` directory to download and install software from source.
-
-## Sharing data between steps
-
-A step can accept data from other steps in the same workflow, or pass data downstream to others.
-
-### Using data from another step
-
-In Bash steps, data from the initial workflow trigger and other steps are available in the `$PIPEDREAM_STEPS` environment variable.
-
-In this example, we'll pretend this data is coming into our HTTP trigger via a POST request.
-
-```json
-{
- "id": 1,
- "name": "Bulbasaur",
- "type": "plant"
-}
-```
-
-In our Bash script, we can access this data via the `$PIPEDREAM_STEPS` file. Specifically, this data from the POST request into our workflow is available in the `trigger` object.
-
-```bash
-cat $PIPEDREAM_STEPS | jq .trigger.event
-
-# Results in { id: 1, name: "Bulbasaur", type: "plant" }
-```
-
-
-The period (`.`) in front the `trigger.event` in the example is not a typo. This is to define the starting point for `jq` to traverse down the JSON in the HTTP response.
-
-
-### Sending data downstream to other steps
-
-To share data for future steps to use downstream, append it to the `$PIPEDREAM_EXPORTS` file.
-
-```bash
-# Retrieve the data from an API and store it in a variable
-DATA=`curl --silent https://pokeapi.co/api/v2/pokemon/charizard`
-
-# Write data to $PIPEDREAM_EXPORTS to share with steps downstream
-EXPORT="key:json=${DATA}"
-echo $EXPORT >> $PIPEDREAM_EXPORTS
-```
-
-
-Not all data types can be stored in the `$PIPEDREAM_EXPORTS` data shared between workflow steps.
-
-You can only export JSON-serializable data from Bash steps.
-
-
-## Using environment variables
-
-You can leverage any [environment variables defined in your Pipedream account](/workflows/environment-variables/) in a bash step. This is useful for keeping your secrets out of code as well as keeping them flexible to swap API keys without having to update each step individually.
-
-To access them, just append the `$` in front of the environment variable name.
-
-```bash
-echo $POKEDEX_API_KEY
-```
-
-Or an even more useful example, using the stored environment variable to make an authenticated API request.
-
-```bash
-curl --silent -X POST -h "Authorization: Bearer $TWITTER_API_KEY" https://api.twitter.com/2/users/@pipedream/mentions
-```
-
-## Making a `GET` request
-
-You can use `curl` to perform `GET` requests.
-
-```bash
-# Get the current weather in San Francisco
-WEATHER=`curl --silent https://wttr.in/San\ Francisco\?format=3`
-
-echo $WEATHER
-# Produces:
-# San Francisco: 🌫 +48°F
-```
-
-
-Use the `--silent` flag with `curl` to suppress extra extra diagnostic information that `curl` produces when making requests.
-
-This enables you to only worry about the body of the response so you can visualize it with tools like `echo` or `jq`.
-
-
-## Making a `POST` request
-
-```bash
-curl --silent -X POST https://postman-echo.com/post -d 'name=Bulbasaur&id=1'
-
-# To store the API response in a variable, interpolate the response into a string and store it in variable
-RESPONSE=`curl --silent -X POST https://postman-echo.com/post -d 'name=Bulbasaur&id=1'`
-
-# Now the response is stored as a variable
-echo $RESPONSE
-```
-
-## Using API key authentication
-
-Some APIs require you to authenticate with a secret API key.
-
-`curl` has an `-h` flag where you can pass your API key as a token.
-
-For example, here's how to retrieve mentions from the Twitter API:
-
-```bash
-# Define the "Authorization" header to include your Twitter API key
-curl --silent -X POST -h "Authorization: Bearer $()" https://api.twitter.com/2/users/@pipedream/mentions
-```
-
-## Raising exceptions
-
-You may need to stop your step immediately. You can use the normal `exit` function available in Bash to quit the step prematurely.
-
-```bash
-echo "Exiting now!" 1>&2
-exit 1
-```
-
-
-Using `exit` to quit a Bash step early _won't_ stop the execution of the rest of the workflow.
-
-Exiting a Bash step will only apply that particular step in the workflow.
-
-
-This will exit the step and output the error message to `stderr` which will appear in the results of the step in the workflow.
-
-## File storage
-
-If you need to download and store files, you can write them to the `/tmp` directory.
-
-### Writing a file to /tmp
-
-Download a file to `/tmp` using `curl`
-
-```bash
-# Download the current weather in Cleveland in PNG format
-curl --silent https://wttr.in/Cleveland.png --output /tmp/weather.png
-
-# Output the contents of /tmp to confirm the file is there
-ls /tmp
-```
-
-
-The `/tmp` directory does not have unlimited storage. Please refer to the [disk limits](/workflows/limits/#disk) for details.
-
diff --git a/docs-v2/pages/workflows/building-workflows/code/go.mdx b/docs-v2/pages/workflows/building-workflows/code/go.mdx
deleted file mode 100644
index 7f9b4aab7c5cb..0000000000000
--- a/docs-v2/pages/workflows/building-workflows/code/go.mdx
+++ /dev/null
@@ -1,426 +0,0 @@
-import Callout from '@/components/Callout'
-
-# Go
-
-Pipedream supports [Go v{process.env.GO_LANG_VERSION}](https://go.dev) in workflows. You can use any of the [Go packages available](https://pkg.go.dev/) with a simple `import` — no `go get` needed.
-
-When you write Go code on Pipedream, you can [share data between steps](/workflows/building-workflows/code/bash/#sharing-data-between-steps) and [access environment variables](/workflows/building-workflows/code/bash/#using-environment-variables). However, you can't connect accounts, return HTTP responses, or take advantage of other features available in the [Node.js](/workflows/building-workflows/code/nodejs/) environment at this time.
-
-If you have any feedback on the Go runtime, please let us know in [our community](https://pipedream.com/support).
-
-## Adding a Go code step
-
-1. Click the + icon to add a new step
-2. Click "Custom Code"
-3. In the new step, select the `golang` language runtime in language dropdown
-
-## Logging and debugging
-
-You can use `fmt.Println` at any time to log information as the script is running.
-
-The output for the `fmt.Println` **Logs** will appear in the `Results` section just beneath the code editor.
-
-
-Don't forget to import the `fmt` package in order to run `fmt.Println`.
-
-```go {3}
- package main
-
- import "fmt"
-
- func main() {
- fmt.Println("Hello World!")
- }
-```
-
-
-## Using third party packages
-
-You can use any packages from [Go package registry](https://pkg.go.dev). This includes popular choices such as:
-
-- [`net/http` for making HTTP requests](https://pkg.go.dev/net/http#pkg-overview/)
-- [`encoding/json` for encoding and decoding JSON](https://pkg.go.dev/encoding/json)
-- [`database/sql` for reading and writing to SQL databases](https://pkg.go.dev/database/sql@go1.17.6)
-
-To use a Go package, just `import` it in your step's code:
-
-```go
-import "net/http"
-```
-
-And that's it.
-
-## Sending files
-
-You can send files stored in the `/tmp` directory in an HTTP request:
-
-```go
-
-package main
-
-import (
- "os"
- "log"
- "mime/multipart"
- "bytes"
- "io"
- "net/http"
-)
-
-func main() {
- // Instantiate a new HTTP client, body and form writer
- client := http.Client{}
- body := &bytes.Buffer{}
- writer := multipart.NewWriter(body)
-
- // Create an empty file to start
- fw, _:= writer.CreateFormFile("file", "go-logo.svg")
-
-
- // Retrieve a previously saved file from workflow storage
- file, _ := os.Open("/tmp/go-logo.svg")
-
- // Close multipart form writer
- writer.Close()
-
- _, _ = io.Copy(fw, file)
-
- // Send the POST request
- req, _:= http.NewRequest("POST", "https://postman-echo.com/post", bytes.NewReader(body.Bytes()))
-
- req.Header.Set("Content-Type", writer.FormDataContentType())
- _, err := client.Do(req)
- if err != nil {
- log.Fatalln(err)
- }
-}
-```
-
-## Sharing data between steps
-
-A step can accept data from other steps in the same workflow, or pass data downstream to others.
-
-This makes your steps even more powerful, you can compose new workflows and reuse steps.
-
-### Using data from another step
-
-Data from the initial workflow trigger and other steps are available in the `pipedream-go` package.
-
-In this example, we'll pretend this data is coming into our HTTP trigger via POST request.
-
-```json
-{
- "id": 1,
- "name": "Bulbasaur",
- "type": "plant"
-}
-```
-
-You can access this data in the `Steps` variable from the `pd` package. Specifically, this data from the POST request into our workflow is available in the `trigger` map.
-
-```go
-package main
-
-import (
- "fmt"
- "github.com/PipedreamHQ/pipedream-go"
-)
-
-func main() {
- // Access previous step data using pd.Steps
- fmt.Println(pd.Steps["trigger"])
-}
-```
-
-### Sending data downstream to other steps
-
-To share data for future steps to use, call the Export function from pd package:
-
-```go
-package main
-
-import (
- "encoding/json"
- "github.com/PipedreamHQ/pipedream-go"
- "io/ioutil"
- "net/http"
-)
-
-func main() {
- // Use a GET request to look up the latest data on Charizard
- resp, _ := http.Get("https://pokeapi.co/api/v2/pokemon/charizard")
- body, _ := ioutil.ReadAll(resp.Body)
-
- // Unmarshal the JSON into a struct
- var data map[string]interface{}
- json.Unmarshal(body, &data)
-
- // Expose the pokemon data downstream to others steps in the "pokemon" key from this step
- pd.Export("pokemon", data)
-}
-```
-
-Now this `pokemon` data is accessible to downstream steps within `pd.Steps["code"]["pokemon"]`
-
-
-Not all data types can be stored in the `Steps` data shared between workflow steps.
-
-For the best experience, we recommend only [exporting structs that can be marshalled into JSON](https://go.dev/blog/json).
-
-
-## Using environment variables
-
-You can leverage any [environment variables defined in your Pipedream account](/workflows/environment-variables/) in a Go step. This is useful for keeping your secrets out of code as well as keeping them flexible to swap API keys without having to update each step individually.
-
-To access them, use the `os` package.
-
-```go
-package main
-
-import (
- "log"
- "os"
-)
-
-func main() {
- log.PrintLn(os.Getenv('TWITTER_API_KEY'))
-}
-```
-
-### Using API key authentication
-
-If a particular service requires you to use an API key, you can pass it via the HTTP request.
-
-This proves your identity to the service so you can interact with it:
-
-```go
-package main
-
-import (
- "os"
- "bytes"
- "encoding/json"
- "io/ioutil"
- "log"
- "net/http"
- "fmt"
-)
-
-func main() {
- // Access the Twitter API key from the environment
- const apiKey := os.Getenv('TWITTER_API_KEY'))
-
- // JSON encode our payload
- payload, _ := json.Marshal(map[string]string{
- "name": "Bulbasaur",
- })
- payloadBuf:= bytes.NewBuffer(payload)
-
- // Send the POST request
- req, err := http.NewRequest("POST", "https://api.twitter.com/2/users/@pipedream/mentions'", payloadBuf)
-
- // Build the headers in order to authenticate properly
- req.Header = http.Header{
- "Content-Type": []string{"application/json"},
- "Authorization": []string{fmt.Sprintf("Bearer %s", apiKey)},
- }
-
- client := http.Client{}
- resp, err := client.Do(req)
-
- if err != nil {
- log.Fatalln(err)
- }
- // Don't forget to close the request after the function is finished
- defer resp.Body.Close()
-
- // Read the response body
- body, err := ioutil.ReadAll(resp.Body)
- if err != nil {
- log.Fatalln(err)
- }
- // Convert the body into a string
- sb := string(body)
- // Log the body to our Workflow Results
- log.Println(sb)
-}
-```
-
-## Making a `GET` request
-
-You'll typically use `GET` requests to retrieve data from an API:
-
-```go
-package main
-
-import (
- "net/http" // HTTP client
- "io/ioutil" // Reads the body of the response
- "log" // Logger
-)
-
-func main() {
- resp, err := http.Get("https://swapi.dev/api/people/1")
-
- if err != nil {
- log.Fatalln(err)
- }
- defer resp.Body.Close()
-
- body, err := ioutil.ReadAll(resp.Body)
- if err != nil {
- log.Fatalln(err)
- }
-
- // The response status code is logged in your Pipedream step results:
- log.Println(resp.Status)
-
- // The response is logged in your Pipedream step results:
- sb := string(body)
- log.Println(sb)
-}
-```
-
-## Making a `POST` request
-
-```go
-package main
-
-import (
- "bytes"
- "encoding/json"
- "io/ioutil"
- "log"
- "net/http"
-)
-
-func main() {
- // JSON encode our payload
- payload, _ := json.Marshal(map[string]string{
- "name": "Bulbasaur",
- })
- payloadBuf:= bytes.NewBuffer(payload)
-
- // Send the POST request
- resp, err := http.Post("https://postman-echo.com/post", "application/json", payloadBuf)
-
- if err != nil {
- log.Fatalln(err)
- }
- defer resp.Body.Close()
-
- // Read the response body
- body, err := ioutil.ReadAll(resp.Body)
- if err != nil {
- log.Fatalln(err)
- }
- // Convert the body into a string
- sb := string(body)
- // Log the body to our Workflow Results
- log.Println(sb)
-}
-```
-
-## Handling errors
-
-You may need to exit a workflow early, use the `os.Exit` to exit the `main` function with a specific error code.
-
-```go
-package main
-
-import (
- "fmt"
- "os"
-)
-
-func main() {
- os.Exit(1)
- fmt.Println("This message will not be logged.")
-}
-
-```
-
-The step will quit at the time `os.Exit` is called. In this example, the exit code `1` will appear in the **Results** of the step.
-
-## File storage
-
-You can also store and read files with Go steps. This means you can upload photos, retrieve datasets, accept files from an HTTP request and more.
-
-The `/tmp` directory is accessible from your workflow steps for saving and retrieving files.
-
-You have full access to read and write both files in `/tmp`.
-
-### Writing a file to `/tmp`
-
-```go
-package main
-
-import (
- "io"
- "net/http"
- "os"
- "fmt"
-)
-func main() {
- // Define where the file is and where to save it
- fileUrl := "https://golangcode.com/go-logo.svg"
- filePath := "/tmp/go-logo.svg"
-
- // Download the file
- resp, err := http.Get(fileUrl)
- if err != nil {
- fmt.Println(err)
- }
-
- // Don't forget to the close the HTTP connection at the end of the function
- defer resp.Body.Close()
-
- // Create the empty file
- out, err := os.Create(filePath)
- if err != nil {
- fmt.Println(err)
- }
-
- // Don't forget to close the file
- defer out.Close()
-
- // Write the file data to file
- _, err = io.Copy(out, resp.Body)
- if err != nil {
- fmt.Println(err)
- }
-}
-```
-
-Now `/tmp/go-logo.svg` holds the official Go logo.
-
-### Reading a file from /tmp
-
-You can also open files you have previously stored in the `/tmp` directory. Let's open the `go-logo.svg` file.
-
-```go
-package main
-
-import (
- "os"
- "log"
-)
-
-func main() {
- // Open the file
- data, err := os.ReadFile("/tmp/go-logo.svg")
-
- if e != nil {
- log.Fatalln(e)
- }
-
- // Print it's contents to the logs
- log.Println(string(data))
-}
-```
-
-### `/tmp` limitations
-
-The `/tmp` directory can store up to {process.env.TMP_SIZE_LIMIT} of storage. Also the storage may be wiped or may not exist between workflow executions.
-
-To avoid errors, assume that the `/tmp` directory is empty between workflow runs.
diff --git a/docs-v2/pages/workflows/building-workflows/code/index.mdx b/docs-v2/pages/workflows/building-workflows/code/index.mdx
deleted file mode 100644
index 88afeb081b713..0000000000000
--- a/docs-v2/pages/workflows/building-workflows/code/index.mdx
+++ /dev/null
@@ -1,24 +0,0 @@
-import icons from '@/utils/icons'
-import LanguageLink from "@/components/LanguageLink";
-import VideoPlayer from "@/components/VideoPlayer";
-
-# Overview
-
-
-
-Pipedream comes with thousands of prebuilt [triggers](/workflows/building-workflows/triggers/) and [actions](/components/contributing/#actions) for [hundreds of apps](https://pipedream.com/apps). Often, these will be sufficient for building simple workflows.
-
-But sometimes you need to run your own custom logic. You may need to make an API request to fetch additional metadata about the event, transform data into a custom format, or end the execution of a workflow early under some conditions. **Code steps let you do this and more**.
-
-Code steps let you execute [Node.js v{process.env.PIPEDREAM_NODE_VERSION}](https://nodejs.org/) (JavaScript) code, Python, Go or even Bash right in a workflow.
-
-Choose a language to get started:
-
-
-
-
-
-
-
-
-If you'd like to see another, specific language supported, please [let us know](https://pipedream.com/community).
diff --git a/docs-v2/pages/workflows/building-workflows/code/nodejs/_meta.tsx b/docs-v2/pages/workflows/building-workflows/code/nodejs/_meta.tsx
deleted file mode 100644
index b311680cc1055..0000000000000
--- a/docs-v2/pages/workflows/building-workflows/code/nodejs/_meta.tsx
+++ /dev/null
@@ -1,13 +0,0 @@
-export default {
- "index": "Running Node.js in workflows",
- "ai-code-generation": "Use AI to generate code",
- "auth": "Connect apps",
- "http-requests": "HTTP requests",
- "working-with-files": "Files",
- "using-data-stores": "Data stores",
- "delay": "Delaying steps",
- "rerun": "Pause, resume, and rerun steps",
- "async": "Running asynchronous code",
- "sharing-code": "Sharing code across workflows",
- "browser-automation": "Browser automation",
-} as const
diff --git a/docs-v2/pages/workflows/building-workflows/code/nodejs/ai-code-generation.mdx b/docs-v2/pages/workflows/building-workflows/code/nodejs/ai-code-generation.mdx
deleted file mode 100644
index a0c07526fb80b..0000000000000
--- a/docs-v2/pages/workflows/building-workflows/code/nodejs/ai-code-generation.mdx
+++ /dev/null
@@ -1,153 +0,0 @@
-import VideoPlayer from "@/components/VideoPlayer";
-
-# Using AI to generate code
-
-
-
-Tell Pipedream the code you want, we generate it for you.
-
-
-
-Pipedream's [built-in actions](/workflows/building-workflows/actions/) are great for running common API operations without having to write code, but sometimes you need code-level control in a workflow. You can [write this code yourself](/workflows/building-workflows/code/), or you can let Pipedream generate it for you with AI.
-
-This feature is new, and [we welcome feedback](https://pipedream.com/support). Please let us know what we can improve or add to make this more useful for you.
-
-## Getting Started
-
-Access the feature either from within a Node.js code cell or from any app in the step selector.
-
-
-
-A window should pop up and ask for your prompt. Write exactly what you want to do within that step. **Be verbose** and see our tips for [getting the best results](#getting-the-best-results).
-
-- **Bad**: "Send a Slack message"
-- **Good**: "Send a Slack message in the following format: `Hello, ${name}`. Let me select the channel from a list of available options."
-
-Once you're done, hit **Enter** or click **Generate**.
-
-Code will immediately start streaming to the editor. You can modify the prompt and re-generate the code if it doesn't look right, or click **Use this code** to add it to your code cell and test it.
-
-Pipedream will automatically refresh the step to show connected accounts and any input fields (props) above the step.
-
-
-
-Edit the code however you'd like. Once you're done, test the code. You'll see the option to provide a :+1: or :-1: on the code, which helps us learn what's working and what's not.
-
-## Editing existing code
-
-You can also edit existing code with AI. Click the **Edit with AI** button at the top-right of any Node.js code step. You'll see the code gen window appear with the original code from your step. Enter a prompt to suggest an edit, and we'll give you the modified code.
-
-
-
-## Getting the best results
-
-**Generating code works best with clear, precise, and detailed instructions of what you want to do in your step.** The code gen service understands the [Pipedream component API](/components/contributing/api/) and references the API docs of [integrated apps](https://pipedream.com/apps). For example, you can tell it to include specific [props](/components/contributing/api/#props) (input) or [async options](/components/contributing/api/#async-options-example), and reference specific API endpoints you want to use for the selected app.
-
-### Examples
-
-#### Slack
-
-Send a message to the `#general` channel that says, "This message was sent with AI-generate code!" Format it as a Slack block, with a header named, "Hello, world!"
-
-**Output**:
-
-```javascript
-import { axios } from "@pipedream/platform";
-
-export default defineComponent({
- props: {
- slack: {
- type: "app",
- app: "slack",
- },
- },
- async run({ steps, $ }) {
- return await axios($, {
- method: "POST",
- url: `https://slack.com/api/chat.postMessage`,
- headers: {
- Authorization: `Bearer ${this.slack.$auth.oauth_access_token}`,
- },
- data: {
- channel: "#general",
- blocks: [
- {
- type: "header",
- text: {
- type: "plain_text",
- text: "Hello, world!",
- },
- },
- {
- type: "section",
- text: {
- type: "mrkdwn",
- text: "This message was sent with AI-generated code!",
- },
- },
- ],
- },
- });
- },
-});
-```
-
-#### Stripe
-
-Get the subscription information about a specific customer based on their email address
-
-**Output:**
-
-```javascript
-import { axios } from "@pipedream/platform";
-
-export default defineComponent({
- props: {
- stripe: {
- type: "app",
- app: "stripe",
- },
- email: {
- type: "string",
- label: "Email Address",
- description:
- "The email address of the customer to get subscription information for",
- },
- },
- async run({ steps, $ }) {
- const customerResponse = await axios($, {
- method: "GET",
- url: `https://api.stripe.com/v1/customers`,
- headers: {
- Authorization: `Bearer ${this.stripe.$auth.api_key}`,
- },
- params: {
- email: this.email,
- },
- });
-
- if (customerResponse.data.length === 0) {
- throw new Error("Customer not found");
- }
-
- const customerId = customerResponse.data[0].id;
-
- return await axios($, {
- method: "GET",
- url: `https://api.stripe.com/v1/subscriptions`,
- headers: {
- Authorization: `Bearer ${this.stripe.$auth.api_key}`,
- },
- params: {
- customer: customerId,
- },
- });
- },
-});
-```
-
-## Current limitations, and what we're working on next
-
-- Currently supports Pipedream actions, not triggers
-- Only supports Node.js output. Python coming soon.
-- It supports single steps, and not entire workflows (also coming soon)
diff --git a/docs-v2/pages/workflows/building-workflows/code/nodejs/async.mdx b/docs-v2/pages/workflows/building-workflows/code/nodejs/async.mdx
deleted file mode 100644
index 4a68ab72c7444..0000000000000
--- a/docs-v2/pages/workflows/building-workflows/code/nodejs/async.mdx
+++ /dev/null
@@ -1,113 +0,0 @@
-import VideoPlayer from "@/components/VideoPlayer";
-
-# Running asynchronous code in Node.js
-
-
-
-If you're not familiar with asynchronous programming concepts like [callback functions](https://developer.mozilla.org/en-US/docs/Glossary/Callback_function) or [Promises](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Using_promises), see [this overview](https://eloquentjavascript.net/11_async.html).
-
-## The problem
-
-**Any asynchronous code within a Node.js code step must complete before the next step runs**. This ensures future steps have access to its data. If Pipedream detects that code is still running by the time the step completes, you'll see the following warning below the code step:
-
-> **This step was still trying to run code when the step ended. Make sure you await all Promises, or promisify callback functions.**
-
-As the warning notes, this often arises from one of two issues:
-
-- You forgot to `await` a Promise. [All Promises must be awaited](#await-all-promises) within a step so they resolve before the step finishes.
-- You tried to run a callback function. Since callback functions run asynchronously, they typically will not finish before the step ends. [You can wrap your function in a Promise](#wrap-callback-functions-in-a-promise) to make sure it resolves before the step finishes.
-
-## Solutions
-
-### `await` all Promises
-
-Most Node.js packages that run async code return Promises as the result of method calls. For example, [`axios`](/workflows/building-workflows/code/nodejs/http-requests/#basic-axios-usage-notes) is an HTTP client. If you make an HTTP request like this in a Pipedream code step:
-
-```javascript
-const resp = axios({
- method: "GET",
- url: `https://swapi.dev/api/films/`,
-});
-```
-
-It won't send the HTTP request, since **`axios` returns a Promise**. Instead, add an `await` in front of the call to `axios`:
-
-```javascript
-const resp = await axios({
- method: "GET",
- url: `https://swapi.dev/api/films/`,
-});
-```
-
-In short, always do this:
-
-```javascript
-const res = await runAsyncCode();
-```
-
-instead of this:
-
-```javascript
-// This code may not finish by the time the workflow finishes
-runAsyncCode();
-```
-
-### Wrap callback functions in a Promise
-
-Before support for Promises was widespread, [callback functions](https://developer.mozilla.org/en-US/docs/Glossary/Callback_function) were a popular way to run some code asynchronously, after some operation was completed. For example, [PDFKit](https://pdfkit.org/) lets you pass a callback function that runs when certain events fire, like when the PDF has been finalized:
-
-```javascript
-import PDFDocument from "pdfkit";
-import fs from "fs";
-
-let doc = new PDFDocument({ size: "A4", margin: 50 });
-this.fileName = `tmp/test.pdf`;
-let file = fs.createWriteStream(this.fileName);
-doc.pipe(file);
-doc.text("Hello world!");
-
-// Finalize PDF file
-doc.end();
-file.on("finish", () => {
- console.log(fs.statSync(this.fileName));
-});
-```
-
-This is the callback function:
-
-```javascript
-() => {
- console.log(fs.statSync(this.fileName));
-};
-```
-
-and **it will not run**. By running a callback function in this way, we're saying that we want the function to be run asynchronously. But on Pipedream, this code must finish by the time the step ends. **You can wrap this callback function in a Promise to make sure that happens**. Instead of running:
-
-```javascript
-file.on("finish", () => {
- console.log(fs.statSync(this.fileName));
-});
-```
-
-run:
-
-```javascript
-// Wait for PDF to finalize
-await new Promise((resolve) => file.on("finish", resolve));
-// Once done, get stats
-const stats = fs.statSync(this.filePath);
-```
-
-This is called "[promisification](https://javascript.info/promisify)".
-
-You can often promisify a function in one line using Node.js' [`util.promisify` function](https://2ality.com/2017/05/util-promisify.html).
-
-### Other solutions
-
-If a specific library doesn't support Promises, you can often find an equivalent library that does. For example, many older HTTP clients like `request` didn't support Promises natively, but the community [published packages that wrapped it with a Promise-based interface](https://www.npmjs.com/package/request#promises--asyncawait) (note: `request` has been deprecated, this is just an example).
-
-## False positives
-
-This warning can also be a false positive. If you're successfully awaiting all Promises, Pipedream could be throwing the warning in error. If you observe this, please [file a bug](https://github.com/PipedreamHQ/pipedream/issues/new?assignees=&labels=bug&template=bug_report.md&title=%5BBUG%5D+).
-
-Packages that make HTTP requests or read data from disk (for example) fail to resolve Promises at the right time, or at all. This means that Pipedream is correctly detecting that code is still running, but there's also no issue - the library successfully ran, but just failed to resolve the Promise. You can safely ignore the error if all relevant operations are truly succeeding.
diff --git a/docs-v2/pages/workflows/building-workflows/code/nodejs/auth.mdx b/docs-v2/pages/workflows/building-workflows/code/nodejs/auth.mdx
deleted file mode 100644
index de7f3741df03f..0000000000000
--- a/docs-v2/pages/workflows/building-workflows/code/nodejs/auth.mdx
+++ /dev/null
@@ -1,126 +0,0 @@
-import VideoPlayer from '@/components/VideoPlayer';
-
-# Connecting apps in Node.js
-
-
-
-When you use [prebuilt actions](/components/contributing/#actions) tied to apps, you don't need to write the code to authorize API requests. Just [connect your account](/apps/connected-accounts/#connecting-accounts) for that app and run your workflow.
-
-But sometimes you'll need to [write your own code](/workflows/building-workflows/code/nodejs/). You can also connect apps to custom code steps, using the auth information to authorize requests to that app.
-
-For example, you may want to send a Slack message from a step. We use Slack's OAuth integration to authorize sending messages from your workflows.
-
-To wire up a Slack account to a workflow, define it as a `prop` to the workflow.
-
-```javascript
-import { WebClient } from '@slack/web-api'
-
-export default defineComponent({
- props: {
- // This creates a connection called "slack" that connects a Slack account.
- slack: {
- type: 'app',
- app: 'slack'
- }
- },
- async run({ steps, $ }) {
- const web = new WebClient(this.slack.$auth.oauth_access_token)
-
- return await web.chat.postMessage({
- text: "Hello, world!",
- channel: "#general",
- })
- }
-});
-```
-
-Then click the **Refresh fields** button in the editor to render the Slack field based on the `slack` prop:
-
-
-
-Now the step in the workflow builder will allow you to connect your Slack account:
-
-
-
-## Accessing connected account data with `this.appName.$auth`
-
-In our Slack example above, we created a Slack `WebClient` using the Slack OAuth access token:
-
-```javascript
-const web = new WebClient(this.slack.$auth.oauth_access_token);
-```
-
-Where did `this.slack` come from? Good question. It was generated by the definition we made in `props`:
-
-```javascript {4-9}
-export default defineComponent({
- props: {
- // the name of the app from the key of the prop, in this case it's "slack"
- slack: {
- // define that this prop is an app
- type: 'app',
- // define that this app connects to Slack
- app: 'slack'
- }
- }
- // ... rest of the Node.js step
-```
-
-The Slack access token is generated by Pipedream, and is available to this step in the `this.slack.$auth` object:
-
-```javascript {11}
-export default defineComponent({
- props: {
- slack: {
- type: 'app',
- app: 'slack'
- }
- },
- async run({ steps, $ }) {
- async (steps, $) => {
- // Authentication details for all of your apps are accessible under the special $ variable:
- console.log(this.slack.$auth);
- }
- })
-});
-```
-
-`this.appName.$auth` contains named properties for each account you connect to the associated step. Here, we connected Slack, so `this.slack.$auth` contains the Slack auth info (the `oauth_access_token`).
-
-The names of the properties for each connected account will differ with the account. Pipedream typically exposes OAuth access tokens as `oauth_access_token`, and API keys under the property `api_key`. But if there's a service-specific name for the tokens (for example, if the service calls it `server_token`), we prefer that name, instead.
-
-To list the `this.[app name].$auth` properties available to you for a given app, run `Object.keys` on the app:
-
-```javascript
-console.log(Object.keys(this.slack.$auth)) // Replace this.slack with your app's name
-```
-
-and run your workflow. You'll see the property names in the logs below your step.
-
-## Writing custom steps to use `this.appName.$auth`
-
-You can write code that utilizes connected accounts in a few different ways:
-
-### Using the code templates tied to apps
-
-When you write custom code that connects to an app, you can start with a code snippet Pipedream provides for each app. This is called the **test request**.
-
-When you search for an app in a step:
-
-1. Click the **+** button below any step.
-2. Search for the app you're looking for and select it from the list.
-3. Select the option to **Use any \ API**.
-
-This code operates as a template you can extend, and comes preconfigured with the connection to the target app and the code for authorizing requests to the API. You can modify this code however you'd like.
-
-### Manually connecting apps to steps
-
-See the Connected Accounts docs for [connecting an account to a code step](/apps/connected-accounts/#from-a-code-step).
-
-## Custom auth tokens / secrets
-
-When you want to connect to a 3rd party service that isn't supported by Pipedream, you can store those secrets in [Environment Variables](/workflows/environment-variables/).
-
-## Learn more about `props`
-
-Not only can `props` be used to connect apps to workflow steps, but they can also be used to [collect properties collected from user input](/workflows/building-workflows/code/nodejs/#passing-props-to-code-steps) and [save data between workflow runs](/workflows/building-workflows/code/nodejs/using-data-stores/).
diff --git a/docs-v2/pages/workflows/building-workflows/code/nodejs/browser-automation.mdx b/docs-v2/pages/workflows/building-workflows/code/nodejs/browser-automation.mdx
deleted file mode 100644
index 1252d15df9550..0000000000000
--- a/docs-v2/pages/workflows/building-workflows/code/nodejs/browser-automation.mdx
+++ /dev/null
@@ -1,577 +0,0 @@
-import Callout from '@/components/Callout'
-import { Tabs } from 'nextra/components'
-import VideoPlayer from '@/components/VideoPlayer'
-
-# Browser Automation with Node.js
-
-
-
-You can leverage headless browser automations within Pipedream workflows for web scraping, generating screenshots, or programmatically interacting with websites - even those that make heavy usage of frontend Javascript.
-
-Pipedream manages a [specialized package](https://www.npmjs.com/package/@pipedream/browsers) that includes Puppeteer and Playwright bundled with a specialized Chromium instance that's compatible with Pipedream's Node.js Execution Environment.
-
-All that's required is importing the [`@pipedream/browsers`](https://www.npmjs.com/package/@pipedream/browsers) package into your Node.js code step and launch a browser. Pipedream will start Chromium and launch a Puppeteer or Playwright Browser instance for you.
-
-## Usage
-
-The `@pipedream/browsers` package exports two modules: `puppeteer` & `playwright`. Both modules share the same interface:
-
-* `browser(opts?)` - method to instantiate a new browser (returns a browser instance)
-* `launch(opts?)` - an alias to browser()
-* `newPage()` - creates a new page instance and returns both the page & browser
-
-### Puppeteer
-
-First import the `puppeteer` module from `@pipedream/browsers` and use `browser()` or `launch()` method to instantiate a browser.
-
-Then using this browser you can open new [Pages](https://pptr.dev/api/puppeteer.page), which have individual controls to open URLs:
-
-```javascript
- import { puppeteer } from '@pipedream/browsers';
-
-export default defineComponent({
- async run({steps, $}) {
- const browser = await puppeteer.browser();
-
- // Interact with the web page programmatically
- // See Puppeeter's Page documentation for available methods:
- // https://pptr.dev/api/puppeteer.page
- const page = await browser.newPage();
-
- await page.goto('https://pipedream.com/');
- const title = await page.title();
- const content = await page.content();
-
- $.export('title', title);
- $.export('content', content);
-
- // The browser needs to be closed, otherwise the step will hang
- await browser.close();
- },
-})
-```
-
-#### Screenshot a webpage
-
-Puppeteer can take a full screenshot of a webpage rendered with Chromium. For full options [see the Puppeteer Screenshot method documentation.](https://pptr.dev/api/puppeteer.page.screenshot)
-
-
-
-
-Save a screenshot within the local `/tmp` directory:
-
-```javascript
-import { puppeteer } from '@pipedream/browsers';
-
-export default defineComponent({
- async run({ $ }) {
- const browser = await puppeteer.launch();
- const page = await browser.newPage();
- await page.goto('https://pipedream.com');
- await page.screenshot({ path: '/tmp/screenshot.png' });
- await browser.close();
- },
-});
-
-```
-
-
-
-Save the screenshot as a base 64 encoded string:
-
-```javascript
-import { puppeteer } from '@pipedream/browsers';
-
-export default defineComponent({
- async run({ $ }) {
- const browser = await puppeteer.browser();
- const page = await browser.newPage();
- await page.goto('https://pipedream.com/');
- const screenshot = await page.screenshot({ encoding: 'base64' });
- await browser.close();
- return screenshot;
- },
-});
-```
-
-
-
-
-#### Generate a PDF of a webpage
-
-Puppeteer can render a PDF of a webpage. For full options [see the Puppeteer Screenshot method documentation.](https://pptr.dev/api/puppeteer.page.pdf)
-
-
-
-
-Save the PDF locally to `/tmp`:
-
-```javascript
-import { puppeteer } from '@pipedream/browsers';
-
-export default defineComponent({
- async run({ $ }) {
- const browser = await puppeteer.launch();
- const page = await browser.newPage();
- await page.goto('https://pipedream.com');
- await page.pdf({ path: '/tmp/screenshot.pdf' });
- await browser.close();
- },
-});
-
-```
-
-
-
-Save the PDF as a base 64 encoded string:
-
-```javascript
-import { puppeteer } from '@pipedream/browsers';
-
-export default defineComponent({
- async run({ $ }) {
- const browser = await puppeteer.browser();
- const page = await browser.newPage();
- await page.goto('https://pipedream.com');
- const pdfBuffer = await page.pdf();
- const pdfBase64 = pdfBuffer.toString('base64');
- await browser.close();
- return pdfBase64;
- },
-});
-```
-
-
-
-
-#### Scrape content from a webpage
-
-Puppeteer can scrape individual elements or return all content of a webpage.
-
-
-
-
-Extract individual elements with a CSS selector:
-
-```javascript
-import { puppeteer } from '@pipedream/browsers';
-
-export default defineComponent({
- async run({ $ }) {
- const browser = await puppeteer.browser();
- const page = await browser.newPage();
- await page.goto('https://pipedream.com');
- const h1Content = await page.$eval('h1', el => el.textContent);
- await browser.close();
- return h1Content;
- },
-});
-
-```
-
-
-
-Extract all HTML content form a webpage:
-
-```javascript
-import { puppeteer } from '@pipedream/browsers';
-
-export default defineComponent({
- async run({ $ }) {
- const browser = await puppeteer.browser();
- const page = await browser.newPage();
- await page.goto('https://pipedream.com');
- const content = await page.content();
- await browser.close();
- return content;
- },
-});
-```
-
-
-
-
-#### Submit a form
-
-Puppeteer can also programmatically click and type on a webpage.
-
-
-
-
-`Page.type` accepts a CSS selector and a string to type into the field.
-
-```javascript
-import { puppeteer } from '@pipedream/browsers';
-
-export default defineComponent({
- async run({ steps, $ }) {
- const browser = await puppeteer.browser();
- const page = await browser.newPage();
-
- await page.goto('https://example.com/contact');
- await page.type('input[name=email]', 'pierce@pipedream.com');
- await page.type('input[name=name]', 'Dylan Pierce');
- await page.type('textarea[name=message]', "Hello, from a Pipedream workflow.");
- await page.click('input[type=submit]');
-
- await browser.close();
- },
-});
-```
-
-
-
-`Page.click` will click on the element to focus on it, then `Page.keyboard.type` emulates keyboard keystrokes.
-
-```javascript
-import { puppeteer } from '@pipedream/browsers';
-
-export default defineComponent({
- async run({ steps, $ }) {
- const browser = await puppeteer.browser();
- const page = await browser.newPage();
-
- await page.goto('https://example.com/contact');
- await page.click('input[name=email]')
- await page.keyboard.type('pierce@pipedream.com');
- await page.click('input[name=name]')
- await page.keyboard.type('Dylan Pierce');
- await page.click('textarea[name=message]')
- await page.keyboard.type("Hello, from a Pipedream workflow.");
- await page.click('input[type=submit]');
-
- await browser.close();
- },
-});
-```
-
-
-
-### Playwright
-
-First import the `playwright` module from `@pipedream/browsers` and use `browser()` or `launch()` method to instantiate a browser.
-
-Then using this browser you can open new [Pages](https://playwright.dev/docs/api/class-page), which have individual controls to open URLs, click elements, generate screenshots and type and more:
-
-```javascript
-import { playwright } from '@pipedream/browsers';
-
-export default defineComponent({
- async run({steps, $}) {
- const browser = await playwright.browser();
-
- // Interact with the web page programmatically
- // See Playwright's Page documentation for available methods:
- // https://playwright.dev/docs/api/class-page
- const page = await browser.newPage();
-
- await page.goto('https://pipedream.com/');
- const title = await page.title();
- const content = await page.content();
-
- $.export('title', title);
- $.export('content', content);
-
- // The browser context and browser needs to be closed, otherwise the step will hang
- await page.context().close();
- await browser.close();
- },
-})
-```
-
-
-**Don't forget to close the browser context**
-
-Playwright differs from Puppeteer slightly in that you have to close the page's browser context before closing the browser itself.
-
-```javascript
-// Close the context & browser before returning results
-// Otherwise the step will hang
-await page.context().close();
-await browser.close();
-```
-
-
-#### Screenshot a webpage
-
-Playwright can take a full screenshot of a webpage rendered with Chromium. For full options [see the Playwright Screenshot method documentation.](https://playwright.dev/docs/api/class-page#page-screenshot)
-
-
-
-
-Save a screenshot within the local `/tmp` directory:
-
-```javascript
-import { playwright } from '@pipedream/browsers';
-
-export default defineComponent({
- async run({ $ }) {
- const browser = await playwright.launch();
- const page = await browser.newPage();
- await page.goto('https://pipedream.com');
- await page.screenshot({ path: '/tmp/screenshot.png' });
-
- await page.context().close();
- await browser.close();
- },
-});
-
-```
-
-
-
-Save the screenshot as a base 64 encoded string:
-
-```javascript
-import { playwright } from '@pipedream/browsers';
-
-export default defineComponent({
- async run({ $ }) {
- const browser = await playwright.launch();
- const page = await browser.newPage();
- await page.goto('https://pipedream.com/');
-
- const screenshotBuffer = await page.screenshot();
- const screenshotBase64 = screenshotBuffer.toString('base64');
-
- await page.context().close();
- await browser.close();
-
- return screenshotBase64;
- },
-});
-```
-
-
-
-
-#### Generate a PDF of a webpage
-
-Playwright can render a PDF of a webpage. For full options [see the Playwright Screenshot method documentation.](https://playwright.dev/docs/api/class-page#page-pdf)
-
-
-
-
-Save a PDF locally to `/tmp`:
-
-```javascript
-import { playwright } from '@pipedream/browsers';
-
-export default defineComponent({
- async run({ $ }) {
- const browser = await playwright.launch();
- const page = await browser.newPage();
- await page.goto('https://pipedream.com');
- await page.pdf({ path: '/tmp/screenshot.pdf' });
-
- await page.context().close();
- await browser.close();
- },
-});
-
-```
-
-
-
-Save the screenshot as a base 64 encoded string:
-
-```javascript
-import { playwright } from '@pipedream/browsers';
-
-export default defineComponent({
- async run({ $ }) {
- const browser = await playwright.launch();
- const page = await browser.newPage();
- await page.goto('https://pipedream.com/');
-
- const screenshotBuffer = await page.pdf();
- const screenshotBase64 = screenshotBuffer.toString('base64');
-
- await page.context().close();
- await browser.close();
-
- return screenshotBase64;
- },
-});
-```
-
-
-
-
-#### Scrape content from a webpage
-
-Playwright can scrape individual elements or return all content of a webpage.
-
-
-
-
-Extract individual HTML elements using a CSS Selector:
-
-```javascript
-import { playwright } from '@pipedream/browsers';
-
-export default defineComponent({
- async run({ $ }) {
- const browser = await playwright.browser();
- const page = await browser.newPage();
- await page.goto('https://pipedream.com');
- const h1Content = await page.$eval('h1', el => el.textContent);
-
- await page.context().close();
- await browser.close();
-
- return h1Content;
- },
-});
-
-```
-
-
-
-Extract all HTML content from a webpage with `Page.content`:
-
-```javascript
-import { playwright } from '@pipedream/browsers';
-
-export default defineComponent({
- async run({ $ }) {
- const browser = await playwright.browser();
- const page = await browser.newPage();
- await page.goto('https://pipedream.com');
- const content = await page.content();
-
- await page.context().close();
- await browser.close();
-
- return content;
- },
-});
-```
-
-
-
-
-#### Submit a form
-
-Playwright can also programmatically click and type on a webpage.
-
-
-
-
-`Page.type` accepts a CSS selector and a string to type into the selected element.
-
-```javascript
-import { playwright } from '@pipedream/browsers';
-
-export default defineComponent({
- async run({ steps, $ }) {
- const browser = await playwright.browser();
- const page = await browser.newPage();
-
- await page.goto('https://example.com/contact');
- await page.type('input[name=email]', 'pierce@pipedream.com');
- await page.type('input[name=name]', 'Dylan Pierce');
- await page.type('textarea[name=message]', "Hello, from a Pipedream workflow.");
- await page.click('input[type=submit]');
-
- await page.context().close();
- await browser.close();
- },
-});
-```
-
-
-
-`Page.click` will click on the element to focus on it, then `Page.keyboard.type` emulates keyboard keystrokes.
-
-```javascript
-import { playwright } from '@pipedream/browsers';
-
-export default defineComponent({
- async run({ steps, $ }) {
- const browser = await playwright.browser();
- const page = await browser.newPage();
-
- await page.goto('https://example.com/contact');
- await page.click('input[name=email]')
- await page.keyboard.type('pierce@pipedream.com');
- await page.click('input[name=name]')
- await page.keyboard.type('Dylan Pierce');
- await page.click('textarea[name=message]')
- await page.keyboard.type("Hello, from a Pipedream workflow.");
- await page.click('input[type=submit]');
-
- await page.context().close();
- await browser.close();
- },
-});
-```
-
-
-
-
-
-## FAQ
-
-### Can I use this package in sources or actions?
-
-Yes, the same `@pipedream/browsers` package can be used in [actions](/components/contributing/actions-quickstart/) as well as [sources](/components/contributing/sources-quickstart/).
-
-The steps are the same as usage in Node.js code. Open a browser, create a page, and close the browser at the end of the code step.
-
-
-**Memory limits**
-
-At this time it's not possible to configure the allocated memory to a Source. You may experience a higher rate of Out of Memory errors on Sources that use Puppeteer or Playwright due to the high usage of memory required by Chromium.
-
-
-### Workflow exited before step finished execution
-
-Remember to close the browser instance _before_ the step finishes. Otherwise, the browser will keep the step "open" and not transfer control to the next step.
-
-### Out of memory errors or slow starts
-
-For best results, we recommend increasing the amount of memory available to your workflow to 2 gigabytes. You can adjust the available memory in the [workflow settings](/workflows/building-workflows/settings/#memory).
-
-### Which browser are these packages using?
-
-The `@pipedream/browsers` package includes a specific version of Chromium that is compatible with Pipedream Node.js execution environments that run your code.
-
-For details on the specific versions of Chromium, puppeeter and playwright bundled in this package, visit the package's [README](https://github.com/PipedreamHQ/pipedream/tree/master/packages/browsers).
-
-### How to customize `puppeteer.launch()`?
-
-To pass arguments to `puppeteer.launch()` to customize the browser instance, you can pass them directly to `puppeteer.browser()`.
-
-For example, you can alter the `protocolTimeout` length just by passing it as an argument:
-
-```javascript
-import { puppeteer } from '@pipedream/browsers';
-
-export default defineComponent({
- async run({steps, $}) {
- // passing a `protocolTimeout` argument to increase the timeout length for a puppeteer instance
- const browser = await puppeteer.browser({ protocolTimeout: 480000 });
- // rest of code
- },
-})
-
-```
-
-Please see the [`@pipedream/browsers` source code](https://github.com/PipedreamHQ/pipedream/blob/17888e631857259a6535f9bd13c23a1e7ff95381/packages/browsers/index.mjs#L14) for the default arguments that Pipedream provides.
-
-### How do I use `puppeteer.connect()`?
-
-To use `puppeteer.connect()` to connect to a remote browser instance, you can use the [`puppeteer-core`](https://github.com/puppeteer/puppeteer/tree/main?tab=readme-ov-file#puppeteer-core) package:
-
-```javascript
-import puppeteer from "puppeteer-core";
-```
-
-`puppeteer-core` does not download Chrome when installed, which decreases the size of your deployment and can improve cold start times.
-
-To connect to a remote browser instance using Playwright, you can use the [`playwright-core`](https://www.npmjs.com/package/playwright-core) package, which is the no-browser Playwright package:
-
-```javascript
-import playwright from "playwright-core";
-```
diff --git a/docs-v2/pages/workflows/building-workflows/code/nodejs/delay.mdx b/docs-v2/pages/workflows/building-workflows/code/nodejs/delay.mdx
deleted file mode 100644
index 169343f94c0b2..0000000000000
--- a/docs-v2/pages/workflows/building-workflows/code/nodejs/delay.mdx
+++ /dev/null
@@ -1,140 +0,0 @@
-import Callout from '@/components/Callout'
-import VideoPlayer from '@/components/VideoPlayer'
-
-# Delaying a workflow
-
-
-
-Use `$.flow.delay` to [delay a step in a workflow](/workflows/building-workflows/control-flow/delay/).
-
-These docs show you how to write Node.js code to handle delays. If you don't need to write code, see [our built-in delay actions](/workflows/building-workflows/control-flow/delay/#delay-actions).
-
-## Using `$.flow.delay`
-
-`$.flow.delay` takes one argument: the number of **milliseconds** you'd like to pause your workflow until the next step executes. {process.env.DELAY_MIN_MAX_TIME}.
-
-Note that [delays happen at the end of the step where they're called](#when-delays-happen).
-
-```javascript
-export default defineComponent({
- async run({ steps, $ }) {
- // Delay a workflow for 60 seconds (60,000 ms)
- $.flow.delay(60 * 1000)
-
- // Delay a workflow for 15 minutes
- $.flow.delay(15 * 60 * 1000)
-
- // Delay a workflow based on the value of incoming event data,
- // or default to 60 seconds if that variable is undefined
- $.flow.delay(steps.trigger.event?.body?.delayMs ?? 60 * 1000)
-
- // Delay a workflow a random amount of time
- $.flow.delay(Math.floor(Math.random() * 1000))
- }
-});
-```
-
-
-Paused workflow state
-
-When `$.flow.delay` is executed in a Node.js step, the workflow itself will enter a **Paused** state.
-
-While the workflow is paused, it will not incur any credits towards compute time. You can also [view all paused workflows in the Event History](/workflows/event-history/#filtering-by-status).
-
-
-### Credit usage
-
-The length of time a workflow is delayed from `$.flow.delay` does _not_ impact your credit usage. For example, delaying a 256 megabyte workflow for five minutes will **not** incur ten credits.
-
-However, using `$.flow.delay` in a workflow will incur two credits.
-
-One credit is used to initially start the workflow, then the second credit is used when the workflow resumes after its pause period has ended.
-
-
-Exact credit usage depends on duration and memory configuration
-
-If your workflow's [execution timeout limit](/workflows/building-workflows/settings/#execution-timeout-limit) is set to longer than [default limit](/workflows/limits/#time-per-execution), it may incur more than two [credits](/pricing/#credits-and-billing) when using `pd.flow.delay`.
-
-
-## `cancel_url` and `resume_url`
-
-Both the built-in **Delay** actions and `$.flow.delay` return a `cancel_url` and `resume_url` that lets you cancel or resume paused executions.
-
-These URLs are specific to a single execution of your workflow. While the workflow is paused, you can load these in your browser or send an HTTP request to either:
-
-- Hitting the `cancel_url` will immediately cancel that execution
-- Hitting the `resume_url` will immediately resume that execution early
-
-[Since Pipedream pauses your workflow at the _end_ of the step where you run call `$.flow.delay`](#when-delays-happen), you can send these URLs to third party systems, via email, or anywhere else you'd like to control the execution of your workflow.
-
-```javascript
-import axios from 'axios'
-
-export default defineComponent({
- async run({ steps, $ }) {
- const { cancel_url, resume_url } = $.flow.delay(15 * 60 * 1000)
-
- // Send the URLs to a system you own
- await axios({
- method: "POST",
- url: `https://example.com`,
- data: { cancel_url, resume_url },
- });
-
- // Email yourself the URLs. Click on the links to cancel / resume
- $.send.email({
- subject: `Workflow execution ${steps.trigger.context.id}`,
- text: `Cancel your workflow here: ${cancel_url} . Resume early here: ${resume_url}`,
- });
- }
-});
-
-// Delay happens at the end of this step
-```
-
-## When delays happen
-
-**Pipedream pauses your workflow at the _end_ of the step where you call `$.flow.delay`**. This lets you [send the `cancel_url` and `resume_url` to third-party systems](#cancel_url-and-resume_url).
-
-```javascript
-export default defineComponent({
- async run({ steps, $ }) {
- const { cancel_url, resume_url } = $.flow.delay(15 * 60 * 1000)
- // ... run any code you want here
- }
-});
-
-// Delay happens at the end of this step
-```
-
-## Delays and HTTP responses
-
-You cannot run `$.respond` after running `$.flow.delay`. Pipedream ends the original execution of the workflow when `$.flow.delay` is called and issues the following response to the client to indicate this state:
-
-> $.respond() not called for this invocation
-
-If you need to set a delay on an HTTP request triggered workflow, consider using [`setTimeout`](#settimeout) instead.
-
-## `setTimeout`
-
-Alternatively, you can use `setTimeout` instead of using `$.flow.delay` to delay individual workflow steps.
-
-However, there are some drawbacks to using `setTimeout` instead of `$.flow.delay`. `setTimeout` will count towards your workflow's compute time, for example:
-
-```javascript
-export default defineComponent({
- async run({ steps, $ }) {
- // delay this step for 30 seconds
- const delay = 30000;
-
- return new Promise((resolve, reject) => {
- setTimeout(() => {
- resolve('timer ended')
- }, delay)
- })
- }
-});
-
-```
-
-The Node.js step above will hold the workflow's execution for this step for 30 seconds; however, 30 seconds will also _contribute_ to your credit usage. Also consider that workflows have a hard limit of {process.env.MAX_WORKFLOW_EXECUTION_LIMIT} seconds.
diff --git a/docs-v2/pages/workflows/building-workflows/code/nodejs/http-requests.mdx b/docs-v2/pages/workflows/building-workflows/code/nodejs/http-requests.mdx
deleted file mode 100644
index 172912e04462b..0000000000000
--- a/docs-v2/pages/workflows/building-workflows/code/nodejs/http-requests.mdx
+++ /dev/null
@@ -1,667 +0,0 @@
-import Callout from '@/components/Callout'
-import { Tabs } from 'nextra/components'
-
-# Make HTTP Requests with Node.js
-
-HTTP requests are fundamental to working with APIs or other web services. You can make HTTP requests to retrieve data from APIs, fetch HTML from websites, or do pretty much anything your web browser can do.
-
-**Below, we'll review how to make HTTP requests using Node.js code on Pipedream.**
-
-We'll use the [`axios`](https://github.com/axios/axios) and [`got`](https://github.com/sindresorhus/got) HTTP clients in the examples below, but [you can use any npm package you'd like](/workflows/building-workflows/code/nodejs/#using-npm-packages) on Pipedream, so feel free to experiment with other clients, too.
-
-If you're developing Pipedream components, you may find the [`@pipedream/platform` version of `axios`](/workflows/building-workflows/http/#platform-axios) helpful for displaying error data clearly in the Pipedream UI.
-
-If you're new to HTTP, see our [glossary of HTTP terms](https://requestbin.com/blog/working-with-webhooks/#webhooks-glossary-common-terms) for a helpful introduction.
-
-## Basic `axios` usage notes
-
-To use `axios` on Pipedream, you'll just need to import the `axios` npm package:
-
-```javascript
-import axios from "axios";
-```
-
-You make HTTP requests by passing a [JavaScript object](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Working_with_Objects) to `axios` that defines the parameters of the request. For example, you'll typically want to define the HTTP method and the URL you're sending data to:
-
-```javascript
-{
- method: "GET",
- url: `https://swapi.dev/api/films/`
-}
-```
-
-`axios` returns a [Promise](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Using_promises), which is just a fancy way of saying that it makes the HTTP request in the background (asynchronously) while the rest of your code runs. On Pipedream, [all asynchronous code must be run synchronously](/workflows/building-workflows/code/nodejs/async/), which means you'll need to wait for the HTTP request to finish before moving on to the next step. You do this by adding an `await` in front of the call to `axios`.
-
-**Putting all of this together, here's how to make a basic HTTP request on Pipedream:**
-
-```javascript
-const resp = await axios({
- method: "GET",
- url: `https://swapi.dev/api/films/`,
-});
-```
-
-The response object `resp` contains a lot of information about the response: its data, headers, and more. Typically, you just care about the data, which you can access in the `data` property of the response:
-
-```javascript
-const resp = await axios({
- method: "GET",
- url: `https://swapi.dev/api/films/`,
-});
-
-// HTTP response data is in the data property
-const data = resp.data;
-```
-
-Alternatively, you can access the data using [object destructuring](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Destructuring_assignment#Object_destructuring), which is equivalent to the above and preferred in modern JavaScript:
-
-```javascript
-const { data } = resp;
-```
-
-## Send a `GET` request to fetch data
-
-Make a request to retrieve Star Wars films from the Star Wars API:
-
-
-
-``` javascript
-import axios from "axios";
-
-export default defineComponent({
- async run({ steps, $ }) {
- // Make an HTTP GET request using axios
- const res = await axios({
- method: "GET",
- url: `https://swapi.dev/api/films/`,
- });
-
- // Retrieve just the data from the response
- const { data } = res;
- }
-});
-```
-
-
-``` javascript
-export default defineComponent({
- props: {
- httpRequest: {
- type: "http_request",
- label: "Star Wars API request",
- default: {
- method: "GET",
- url: "https://swapi.dev/api/films/"
- }
- },
- },
- async run({ steps, $ }) {
- // Make an HTTP GET request using the http-request
- const res = await this.httpRequest.execute();
-
- // Retrieve just the data from the response
- const { data } = res;
- },
-})
-```
-
-**Produces**
-
-
-
-
-
-## Send a `POST` request to submit data
-
-POST sample JSON to [JSONPlaceholder](https://jsonplaceholder.typicode.com/), a free mock API service:
-
-
-
-``` javascript
-import axios from "axios";
-
-export default defineComponent({
- async run({ steps, $ }) {
- // Make an HTTP POST request using axios
- const resp = await axios({
- method: "POST",
- url: `https://jsonplaceholder.typicode.com/posts`,
- data: {
- name: "Luke",
- },
- });
-
- // Retrieve just the data from the response
- const { data } = resp;
- }
-});
-```
-
-
-``` javascript
-export default defineComponent({
- props: {
- httpRequest: {
- type: "http_request",
- label: "JSON Placeholder API request",
- default: {
- method: "POST",
- url: "https://jsonplaceholder.typicode.com/posts",
- body: {
- contentType: "application/json",
- fields: [{ name: "Luke" }]
- }
- }
- },
- },
- async run({ steps, $ }) {
- // Make an HTTP GET request using the http-request
- const res = await this.httpRequest.execute();
-
- // Retrieve just the data from the response
- const { data } = res;
- },
-})
-```
-
-
-
-When you make a `POST` request, you pass `POST` as the `method`, and include the data you'd like to send in the `data` object.
-
-## Pass query string parameters to a `GET` request
-
-Retrieve fake comment data on a specific post using [JSONPlaceholder](https://jsonplaceholder.typicode.com/), a free mock API service. Here, you fetch data from the `/comments` resource, retrieving data for a specific post by query string parameter: `/comments?postId=1`.
-
-
-
-``` javascript
-import axios from "axios";
-
-export default defineComponent({
- async run({ steps, $ }) {
- // Make an HTTP GET request using axios
- const resp = await axios({
- method: "GET",
- url: `https://jsonplaceholder.typicode.com/comments`,
- params: {
- postId: 1,
- },
- });
-
- // Retrieve just the data from the response
- const { data } = resp;
- }
-});
-```
-
-
-``` javascript
-export default defineComponent({
- props: {
- httpRequest: {
- type: "http_request",
- label: "JSON Placeholder API request",
- default: {
- method: "GET",
- url: "https://jsonplaceholder.typicode.com/comments",
- params: {
- fields: [{ postId: 1 }]
- }
- }
- },
- },
- async run({ steps, $ }) {
- // Make an HTTP GET request using the http-request
- const res = await this.httpRequest.execute();
-
- // Retrieve just the data from the response
- const { data } = res;
- },
-})
-```
-
-You should pass query string parameters using the `params` object, like above. When you do, `axios` automatically [URL-encodes](https://www.w3schools.com/tags/ref_urlencode.ASP) the parameters for you, which you'd otherwise have to do manually.
-
-
-
-## Send a request with HTTP headers
-
-You pass HTTP headers in the `headers` object of the `axios` request:
-
-```javascript
-import axios from "axios";
-
-// Make an HTTP POST request using axios
-const resp = await axios({
- method: "POST",
- url: `https://jsonplaceholder.typicode.com/posts`,
- headers: {
- "Content-Type": "application/json",
- },
- data: {
- name: "Luke",
- },
-});
-```
-
-## Send a request with a secret or API key
-
-Most APIs require you authenticate HTTP requests with an API key or other token. **Please review the docs for your service to understand how they accept this data.**
-
-Here's an example showing an API key passed in an HTTP header:
-
-```javascript
-import axios from "axios";
-
-// Make an HTTP POST request using axios
-const resp = await axios({
- method: "POST",
- url: `https://jsonplaceholder.typicode.com/posts`,
- headers: {
- "Content-Type": "application/json",
- "X-API-Key": "123", // API KEY
- },
- data: {
- name: "Luke",
- },
-});
-```
-
-[Copy this workflow to run this code on Pipedream](https://pipedream.com/@dylburger/send-an-http-request-with-headers-p_q6ClzO/edit).
-
-## Send multiple HTTP requests in sequence
-
-There are many ways to make multiple HTTP requests. This code shows you a simple example that sends the numbers `1`, `2`, and `3` in the body of an HTTP POST request:
-
-```javascript
-import axios from "axios";
-
-export default defineComponent({
- async run({ steps, $ }) {
- // We'll store each response and return them in this array
- const responses = [];
-
- for await (const num of [1, 2, 3]) {
- const resp = await axios({
- method: "POST",
- url: "https://example.com",
- data: {
- num, // Will send the current value of num in the loop
- },
- });
- responses.push(resp.data);
- }
-
- return responses;
- },
-});
-```
-
-This sends each HTTP request _in sequence_, one after another, and returns an array of response data returned from the URL to which you send the POST request. If you need to make requests _in parallel_, [see these docs](#send-multiple-http-requests-in-parallel).
-
-[Copy this workflow](https://pipedream.com/@dylburger/iterate-over-a-pipedream-step-export-sending-multiple-http-requests-p_ljCAPN/edit) and fill in your destination URL to see how this works. **This workflow iterates over the value of a Pipedream [step export](/workflows/#step-exports)** - data returned from a previous step. Since you often want to iterate over data returned from a Pipedream action or other code step, this is a common use case.
-
-## Send multiple HTTP requests in parallel
-
-Sometimes you'll want to make multiple HTTP requests in parallel. If one request doesn't depend on the results of another, this is a nice way to save processing time in a workflow. It can significantly cut down on the time you spend waiting for one request to finish, and for the next to begin.
-
-To make requests in parallel, you can use two techniques. By default, we recommend using [`promise.allSettled`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise/allSettled), which makes all HTTP requests and returns data on their success / failure. If an HTTP request fails, all other requests will proceed.
-
-```javascript
-import axios from "axios";
-
-export default defineComponent({
- async run({ steps, $ }) {
- const arr = [
- "https://www.example.com",
- "https://www.cnn.com",
- "https://www.espn.com",
- ];
- const promises = arr.map((url) => axios.get(url));
- return Promise.allSettled(promises);
- },
-});
-```
-
-First, we generate an array of `axios.get` requests (which are all [Promises](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise)), and then call `Promise.allSettled` to run them in parallel.
-
-When you want to stop future requests when _one_ of the requests fails, you can use [`Promise.all`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise/all), instead:
-
-```javascript
-import axios from "axios";
-
-export default defineComponent({
- async run({ steps, $ }) {
- const arr = [
- "https://www.example.com",
- "https://www.cnn.com",
- "https://www.espn.com",
- ];
- const promises = arr.map((url) => axios.get(url));
- return Promise.all(promises);
- },
-});
-```
-
-The Mozilla docs expand on the difference between these methods, and when you may want to use one or the other:
-
-> The `Promise.allSettled()` method returns a promise that resolves after all of the given promises have either fulfilled or rejected, with an array of objects that each describes the outcome of each promise.
-> It is typically used when you have multiple asynchronous tasks that are not dependent on one another to complete successfully, or you'd always like to know the result of each promise.
-> In comparison, the Promise returned by `Promise.all()` may be more appropriate if the tasks are dependent on each other / if you'd like to immediately reject upon any of them rejecting.
-
-## Send a `multipart/form-data` request
-
-
-
-
-``` javascript
-import axios from "axios";
-import FormData from "form-data";
-
-export default defineComponent({
- async run({ steps, $ }) {
- const formData = new FormData();
- formData.append("name", "Luke Skywalker");
-
- const headers = formData.getHeaders();
- const config = {
- method: "POST",
- url: "https://example.com",
- headers,
- data: formData,
- };
- return await axios(config);
- }
-});
-```
-
-
-
-
-``` javascript
-export default defineComponent({
- props: {
- httpRequest: {
- type: "http_request",
- label: "Example Multipart Form Request",
- default: {
- method: "POST",
- url: "https://example.com",
- headers: {
- contentType: "multipart/form-data",
- fields: [{ name: "Luke Skywalker" }]
- }
- }
- },
- },
- async run({ steps, $ }) {
- // Make an HTTP GET request using the http-request
- const res = await this.httpRequest.execute();
-
- // Retrieve just the data from the response
- const { data } = res;
- },
-})
-```
-
-
-
-[Copy this workflow](https://pipedream.com/@dylburger/send-a-multipart-form-data-request-p_WxCQRyr/edit) to run this example.
-
-## Download a file to the `/tmp` directory
-
-This example shows you how to download a file to a file in [the `/tmp` directory](/workflows/building-workflows/code/nodejs/working-with-files/). This can be especially helpful for downloading large files: it streams the file to disk, minimizing the memory the workflow uses when downloading the file.
-
-```javascript
-import { pipeline } from "stream/promises";
-import fs from "fs";
-import got from "got";
-
-export default defineComponent({
- async run({ steps, $ }) {
- // Download the webpage HTML file to /tmp
- return await pipeline(
- got.stream("https://example.com"),
- fs.createWriteStream('/tmp/file.html')
- );
- }
-})
-```
-
-[Copy this workflow](https://pipedream.com/new?h=tch_wqKfoW) to run this example.
-
-## Upload a file from the `/tmp` directory
-
-This example shows you how to make a `multipart/form-data` request with a file as a form part. You can store and read any files from [the `/tmp` directory](/workflows/building-workflows/code/nodejs/working-with-files/#the-tmp-directory).
-
-This can be especially helpful for uploading large files: it streams the file from disk, minimizing the memory the workflow uses when uploading the file.
-
-```javascript
-import axios from "axios";
-import fs from "fs";
-import FormData from "form-data";
-
-export default defineComponent({
- async run({ steps, $ }) {
- const formData = new FormData();
- formData.append("file", fs.createReadStream('/tmp/file.pdf'));
- const headers = formData.getHeaders();
-
- const config = {
- method: "POST",
- url: "https://example.com",
- headers,
- data: formData,
- };
- return await axios(config);
- }
-});
-```
-
-[Copy this workflow](https://pipedream.com/new?h=tch_Oknf4r) to run this example.
-
-## IP addresses for HTTP requests made from Pipedream workflows
-
-By default, [HTTP requests made from Pipedream can come from a large range of IP addresses](/privacy-and-security/#hosting-details). **If you need to restrict the IP addresses HTTP requests come from, you have two options**:
-
-- [Use a Pipedream VPC](/workflows/vpc/) to route all outbound HTTP requests through a single IP address
-- If you don't need to access the HTTP response data, you can [use `$send.http()`](/workflows/data-management/destinations/http/) to send requests from a [limited set of IP addresses](/workflows/data-management/destinations/http/#ip-addresses-for-pipedream-http-requests).
-
-
-## Use an HTTP proxy to proxy requests through another host
-
-By default, HTTP requests made from Pipedream can come from a range of IP addresses. **If you need to make requests from a single IP address, you can route traffic through an HTTP proxy**:
-
-```javascript
-import axios from "axios";
-import httpsProxyAgent from "https-proxy-agent";
-
-export default defineComponent({
- props: {
- user: {
- type: 'string',
- label: 'Username',
- description: 'The username for the HTTP proxy authentication',
- },
- pass: {
- type: 'string',
- label: 'Password',
- secret: true,
- description: 'The password for the HTTP proxy authentication',
- },
- host: {
- type: 'string',
- label: "HTTP Proxy Host",
- description: "The URL for the HTTP proxy",
- },
- port: {
- type: "string",
- label: "Port",
- description: "The port the HTTP proxy is accepting requests at",
- },
- target_host: {
- type: 'string',
- label: "Target Host",
- description: "The URL for the end target to reach through the proxy",
- },
- method: {
- type: 'string',
- default: 'GET',
- label: "HTTP method",
- description: "The HTTP method to use to reach the end target host"
- },
- body: {
- type: 'object',
- label: "HTTP body",
- description: "The HTTP body payload to send to the end target host"
- }
- },
- async run({ steps, $ }) {
- const { user, pass, host, port, target_host, method } = this;
- const agent = new httpsProxyAgent(`http://${user}:${pass}@${host}:${port}`);
-
- const config = {
- method,
- url: target_host,
- body,
- httpsAgent: agent,
- };
-
- return await axios.request(config);
- }
-});
-```
-
-[Copy this workflow to run this code on Pipedream](https://pipedream.com/new?h=tch_mypfby).
-
-## Stream a downloaded file directly to another URL
-
-Sometimes you need to upload a downloaded file directly to another service, without processing the downloaded file. You could [download the file](#download-a-file-to-the-tmp-directory) and then [upload it](#upload-a-file-from-the-tmp-directory) to the other URL, but these intermediate steps are unnecessary: you can just stream the download to the other service directly, without saving the file to disk.
-
-This method is especially effective for large files that exceed the [limits of the `/tmp` directory](/workflows/limits/#disk).
-
-[Copy this workflow](https://pipedream.com/@dylburger/stream-download-to-upload-p_5VCLoa1/edit) or paste this code into a [new Node.js code step](/workflows/building-workflows/code/nodejs/):
-
-```javascript
-import stream from "stream";
-import { promisify } from "util";
-import got from "got";
-
-export default defineComponent({
- async run({ steps, $ }) {
- const pipeline = promisify(stream.pipeline);
-
- await pipeline(
- got.stream("https://example.com"),
- got.stream.post("https://example2.com")
- );
- }
-});
-```
-
-You'll want to replace `https://example.com` with the URL you'd like to stream data from, and replace `https://example2.com` with the URL you'd like to send the data _to_. `got` streams the content directly, downloading the file using a `GET` request and uploading it as a `POST` request.
-
-If you need to modify this behavior, [see the `got` Stream API](https://github.com/sindresorhus/got#gotstreamurl-options).
-
-## Catch and process HTTP errors
-
-By default, `axios` throws an error when the HTTP response code is in the 400-500 range (a client or server error). If you'd like to process the error data instead of throwing an error, you can pass a custom function to the `validateStatus` property:
-
-```javascript
-import axios from "axios";
-
-export default defineComponent({
- async run({ steps, $ }) {
- const resp = await axios({
- url: "https://httpstat.us/400",
- validateStatus: () => true, // will not throw error when axios gets a 400+ status code (the default behavior)
- });
- if (resp.status >= 400) {
- this.debug = resp;
- throw new Error(JSON.stringify(resp.data)); // This can be modified to throw any error you'd like
- }
- return resp;
- }
-});
-```
-
-See [the `axios` docs](https://github.com/axios/axios#request-config) for more details.
-
-## Paginating API requests
-
-When you fetch data from an API, the API may return records in "pages". For example, if you're trying to fetch a list of 1,000 records, the API might return those in groups of 100 items.
-
-Different APIs paginate data in different ways. You'll need to consult the docs of your API provider to see how they suggest you paginate through records.
-
-## Send GraphQL request
-
-Make a GraphQL request using the `graphql-request` NPM package:
-
-```javascript
-import { graphql } from 'graphql'
-import { request, gql } from 'graphql-request'
-
-export default defineComponent({
- async run({ steps, $ }) {
- const document = gql`
- query samplePokeAPIquery {
- generations: pokemon_v2_generation {
- name
- pokemon_species: pokemon_v2_pokemonspecies_aggregate {
- aggregate {
- count
- }
- }
- }
- }
- `
- return await request('https://beta.pokeapi.co/graphql/v1beta', document)
- },
-})
-```
-
-
-The graphql package is required
-
-The `graphql` package is required for popular GraphQL clients to function, like `graphql-request` and `urql`.
-
-Even though you will not need to use the `graphql` code itself in your code step, it's required to import it in order for `graphql-request` to function.
-
-
-### Send an authenticated GraphQL request
-
-Authenticate your connected accounts in Pipedream with GraphQL requests using the `app` prop:
-
-```javascript
-import { graphql } from 'graphql'
-import { GraphQLClient, gql } from 'graphql-request'
-
-export default defineComponent({
- props: {
- github: {
- type: 'app',
- app: 'github'
- }
- },
- async run({ steps, $ }) {
- const me = gql`
- query {
- viewer {
- login
- }
- }
- `
-
- const client = new GraphQLClient('https://api.github.com/graphql', {
- headers: {
- authorization: `Bearer ${this.github.$auth.oauth_access_token}`,
- },
- })
-
- return await client.request(me)
- },
-})
-
-```
-
-Alternatively, you can use Environment Variables as well for simple API key based GraphQL APIs.
diff --git a/docs-v2/pages/workflows/building-workflows/code/nodejs/index.mdx b/docs-v2/pages/workflows/building-workflows/code/nodejs/index.mdx
deleted file mode 100644
index 1c7163e23ae37..0000000000000
--- a/docs-v2/pages/workflows/building-workflows/code/nodejs/index.mdx
+++ /dev/null
@@ -1,505 +0,0 @@
-import Callout from '@/components/Callout'
-import VideoPlayer from "@/components/VideoPlayer";
-
-# Running Node.js in workflows
-
-Pipedream supports writing Node.js v{process.env.PIPEDREAM_NODE_VERSION} at any point of a workflow.
-
-Anything you can do with Node.js, you can do in a workflow. This includes using most of [npm's 400,000+ packages](#using-npm-packages). JavaScript is one of the [most used](https://insights.stackoverflow.com/survey/2019#technology-_-programming-scripting-and-markup-languages) [languages](https://github.blog/2018-11-15-state-of-the-octoverse-top-programming-languages/) in the world, with a thriving community and extensive package ecosystem. If you work on websites and know JavaScript well, Pipedream makes you a full stack engineer. If you've never used JavaScript, see the [resources below](#new-to-javascript).
-
-
-It's important to understand the core difference between Node.js and the JavaScript that runs in your web browser: **Node doesn't have access to some of the things a browser expects, like the HTML on the page, or its URL**. If you haven't used Node before, be aware of this limitation as you search for JavaScript examples on the web.
-
-
-## Adding a code step
-
-1. Click the **+** button below any step of your workflow.
-2. Select the option to **Run custom code**.
-
-Note that new code steps will default to Node.js v{process.env.PIPEDREAM_NODE_VERSION}. You can add any Node.js code in the editor that appears. For example, try:
-
-```javascript
-export default defineComponent({
- async run({ steps, $ }) {
- console.log("This is Node.js code");
- $.export("test", "Some test data");
- return "Test data";
- },
-});
-```
-
-Code steps use the same editor ([Monaco](https://microsoft.github.io/monaco-editor/)) used in Microsoft's [VS Code](https://code.visualstudio.com/), which supports syntax highlighting, automatic indentation, and more.
-
-## Sharing data between steps
-
-A Node.js step can use data from other steps using [step exports](/workflows/#step-exports), it can also export data for other steps to use.
-
-### Using data from another step
-
-In Node.js steps, data from the initial workflow trigger and other steps are available in the `steps` argument passed to the `run({ steps, $ })` function.
-
-In this example, we'll pretend this data is coming into our HTTP trigger via POST request.
-
-```json
-{
- "id": 1,
- "name": "Bulbasaur",
- "type": "plant"
-}
-```
-
-In our Node.js step, we can access this data in the `steps` variable Specifically, this data from the POST request into our workflow is available in the `trigger` property.
-
-```javascript
-export default defineComponent({
- async run({ steps, $ }) {
- const pokemonName = steps.trigger.event.name;
- const pokemonType = steps.trigger.event.type;
-
- console.log(`${pokemonName} is a ${pokemonType} type Pokemon`);
- },
-});
-```
-
-### Sending data downstream to other steps
-
-To share data created, retrieved, transformed or manipulated by a step to others downstream you can simply `return` it.
-
-```javascript
-// This step is named "code" in the workflow
-import axios from "axios";
-
-export default defineComponent({
- async run({ steps, $ }) {
- const response = await axios.get(
- "https://pokeapi.co/api/v2/pokemon/charizard"
- );
- // Store the response's JSON contents into a variable called "pokemon"
- const pokemon = response.data;
-
- // Expose the pokemon data downstream to other steps in the $return_value from this step
- return pokemon;
- },
-});
-```
-
-### Using $.export
-
-
-
-Alternatively, use the built in `$.export` helper instead of returning data. The `$.export` creates a _named_ export with the given value.
-
-```javascript
-// This step is named "code" in the workflow
-import axios from "axios";
-
-export default defineComponent({
- async run({ steps, $ }) {
- const response = await axios.get(
- "https://pokeapi.co/api/v2/pokemon/charizard"
- );
- // Store the response's JSON contents into a variable called "pokemon"
- const pokemon = response.data;
-
- // Expose the pokemon data downstream to other steps in the pokemon export from this step
- $.export("pokemon", pokemon);
- },
-});
-```
-
-Now this `pokemon` data is accessible to downstream steps within `steps.code.pokemon`
-
-
-You can only export JSON-serializable data from steps. Things like:
-
-- strings
-- numbers
-- objects
-
-You cannot export functions or other complex objects that don't serialize to JSON. [You can save that data to a file in the `/tmp` directory](/workflows/building-workflows/code/nodejs/working-with-files/).
-
-
-## Passing props to code steps
-
-
-
-You can make code steps reusable by allowing them to accept props. Instead of hard-coding the values of variables within the code itself, you can pass them to the code step as arguments or parameters _entered in the workflow builder_.
-
-For example, let's define a `firstName` prop. This will allow us to freely enter text from the workflow builder.
-
-```javascript
-export default defineComponent({
- props: {
- firstName: {
- type: "string",
- label: "Your first name",
- default: "Dylan",
- },
- },
- async run({ steps, $ }) {
- console.log(
- `Hello ${this.firstName}, congrats on crafting your first prop!`
- );
- },
-});
-```
-
-The workflow builder now can accept text input to populate the `firstName` to this particular step only:
-
-
-
-Accepting a single string is just one example, you can build a step to accept arrays of strings through a dropdown presented in the workflow builder.
-
-[Read the props reference for the full list of options](/components/contributing/api/#props).
-
-## How Pipedream Node.js components work
-
-
-
-When you add a new Node.js code step or use the examples in this doc, you'll notice a common structure to the code:
-
-```javascript
-export default defineComponent({
- async run({ steps, $ }) {
- // this Node.js code will execute when the step runs
- },
-});
-```
-
-This defines [a Node.js component](/components/contributing/api/). Components let you:
-
-- Pass input to steps using [props](/workflows/building-workflows/code/nodejs/#passing-props-to-code-steps)
-- [Connect an account to a step](/apps/connected-accounts/#from-a-code-step)
-- [Issue HTTP responses](/workflows/building-workflows/triggers/#http-responses)
-- Perform workflow-level flow control, like [ending a workflow early](#ending-a-workflow-early)
-
-When the step runs, Pipedream executes the `run` method:
-
-- Any asynchronous code within a code step [**must** be run synchronously](/workflows/building-workflows/code/nodejs/async/), using the `await` keyword or with a Promise chain, using `.then()`, `.catch()`, and related methods.
-- Pipedream passes the `steps` variable to the run method. `steps` is also an object, and contains the [data exported from previous steps](/workflows/#step-exports) in your workflow.
-- You also have access to the `$` variable, which gives you access to methods like `$.respond`, `$.export`, [and more](/components/contributing/api/#actions).
-
-If you're using [props](/workflows/building-workflows/code/nodejs/#passing-props-to-code-steps) or [connect an account to a step](/apps/connected-accounts/#from-a-code-step), the component exposes them in the variable `this`, which refers to the current step:
-
-```javascript
-export default defineComponent({
- async run({ steps, $ }) {
- // `this` refers to the running component. Props, connected accounts, etc. are exposed here
- console.log(this);
- },
-});
-```
-
-When you [connect an account to a step](/apps/connected-accounts/#from-a-code-step), Pipedream exposes the auth info in the variable [`this.appName.$auth`](/workflows/building-workflows/code/nodejs/auth/#accessing-connected-account-data-with-thisappnameauth).
-
-## Logs
-
-You can call `console.log` or `console.error` to add logs to the execution of a code step.
-
-These logs will appear just below the associated step. `console.log` messages appear in black, `console.error` in red.
-
-### `console.dir`
-
-If you need to print the contents of JavaScript objects, use `console.dir`:
-
-```javascript
-export default defineComponent({
- async run({ steps, $ }) {
- console.dir({
- name: "Luke",
- });
- },
-});
-```
-
-## Syntax errors
-
-Pipedream will attempt to catch syntax errors when you're writing code, highlighting the lines where the error occurred in red.
-
-
-While you can save a workflow with syntax errors, it's unlikely to run correctly on new events. Make sure to fix syntax errors before running your workflow.
-
-
-## Using `npm` packages
-
-
-
-[npm](https://www.npmjs.com/) hosts JavaScript packages: libraries of code someone else wrote and packaged for others to use. npm has over 400,000 packages and counting.
-
-### Just `import` it
-
-To use an npm package on Pipedream, simply `import` it:
-
-```javascript
-import axios from "axios";
-```
-
-By default, workflows don't have any packages installed. Just import any package in this manner to make it available in the step.
-
-If a package only supports the [CommonJS module format](https://nodejs.org/api/modules.html), you may have to `require` it:
-
-```javascript
-const axios = require("axios");
-```
-
-**Within a single step, you can only use `import` or `require` statements, not both**. See [this section](#require-is-not-defined) for more details.
-
-When Pipedream runs your workflow, we download the associated npm package for you before running your code steps.
-
-If you've used Node before, you'll notice there's no `package.json` file to upload or edit. We want to make package management simple, so just `import` or `require` the module like you would in your code, after package installation, and get to work.
-
-### Third-party package limitations
-
-Some packages require access to a web browser to run, and don't work with Node.js. Often this limitation is documented on the package `README`, but often it's not. If you're not sure and need to use it, we recommend just trying to `import` or `require` it.
-
-Other packages require access to binaries or system libraries that aren't installed in the Pipedream execution environment.
-
-If you're seeing any issues with a specific package, please [let us know](https://pipedream.com/support/) and we'll try to help you make it work.
-
-### Pinning package versions
-
-Each time you deploy a workflow with Node.js code, Pipedream downloads the npm packages you `import` in your step. **By default, Pipedream deploys the latest version of the npm package each time you deploy a change**.
-
-There are many cases where you may want to specify the version of the packages you're using. If you'd like to use a _specific_ version of a package in a workflow, you can add that version in the `import` string, for example:
-
-```javascript
-import axios from "axios@0.19.2";
-```
-
-You can also pass the version specifiers used by npm to support [semantic version](https://semver.org/) upgrades. For example, to allow for future patch version upgrades:
-
-```javascript
-import axios from "axios@~0.20.0";
-```
-
-To allow for patch and minor version upgrades, use:
-
-```javascript
-import got from "got@^11.0.0";
-```
-
-
-The behavior of the caret (`^`) operator is different for 0.x versions, for which it will only match patch versions, and not minor versions.
-
-
-You can also specify different versions of the same package in different steps. Each step will used the associated version. Note that this also increases the size of your deployment, which can affect cold start times.
-
-### CommonJS vs. ESM imports
-
-In Node.js, you may be used to importing third-party packages using the `require` statement:
-
-```javascript
-const axios = require("axios");
-```
-
-In this example, we're including the `axios` [CommonJS module](https://nodejs.org/api/modules.html) published to npm. You import CommonJS modules using the `require` statement.
-
-But you may encounter this error in workflows:
-
-`Error Must use import to load ES Module`
-
-This means that the package you're trying to `require` uses a different format to export their code, called [ECMAScript modules](https://nodejs.org/api/esm.html#esm_modules_ecmascript_modules) (**ESM**, or **ES modules**, for short). With ES modules, you instead need to `import` the package:
-
-```javascript
-import got from "got";
-```
-
-Most package publish both CommonJS and ESM versions, so **if you always use `import`, you're less likely to have problems**. In general, refer to the documentation for your package for instructions on importing it correctly.
-
-### `require` is not defined
-
-This error means that you cannot use CommonJS and ESM imports in the same step. For example, if you run code like this:
-
-```javascript
-import fetch from "node-fetch";
-const axios = require("axios");
-```
-
-your workflow will throw a `require is not defined` error. There are two solutions:
-
-1. Try converting your CommonJS `require` statement into an ESM `import` statement. For example, convert this:
-
-```javascript
-const axios = require("axios");
-```
-
-to this:
-
-```javascript
-import axios from "axios";
-```
-
-2. If the `import` syntax fails to work, separate your imports into different steps, using only CommonJS requires in one step, and only ESM imports in another.
-
-## Variable scope
-
-Any variables you create within a step are scoped to that step. That is, they cannot be referenced in any other step.
-
-Within a step, the [normal rules of JavaScript variable scope](https://developer.mozilla.org/en-US/docs/Glossary/Scope) apply.
-
-**When you need to share data across steps, use [step exports](/workflows/#step-exports).**
-
-## Making HTTP requests from your workflow
-
-There are two ways to make HTTP requests in code steps:
-
-- Use any HTTP client that works with Node.js. [See this example guide for how to use `axios` to make HTTP requests](/workflows/building-workflows/code/nodejs/http-requests/).
-- [Use `$.send.http()`](/workflows/data-management/destinations/http/#using-sendhttp-in-workflows), a Pipedream-provided method for making asynchronous HTTP requests.
-
-In general, if you just need to make an HTTP request but don't care about the response, [use `$.send.http()`](/workflows/data-management/destinations/http/#using-sendhttp-in-workflows). If you need to operate on the data in the HTTP response in the rest of your workflow, [use `axios`](/workflows/building-workflows/code/nodejs/http-requests/).
-
-## Returning HTTP responses
-
-You can return HTTP responses from [HTTP-triggered workflows](/workflows/building-workflows/triggers/#http) using the [`$.respond()` function](/workflows/building-workflows/triggers/#http-responses).
-
-## Invoke another workflow
-
-
-This is an alpha feature and is subject to change without prior notice.
-
-
-You can invoke another workflow in your workspace with `$.flow.trigger`:
-
-```
-await $.flow.trigger(
- workflowId, // your Pipedream workflow ID, e.g. p_abc123
- payload, // any JSON-serializable data
-)
-```
-
-[Find your workflow's ID here.](/troubleshooting/#where-do-i-find-my-workflows-id)
-
-This invokes the workflow directly -- you don't need to configure a trigger, and the request does not leave the platform.
-
-We also provide a [Trigger Workflow](https://pipedream.com/apps/helper-functions/actions/trigger-workflow) action in the [Helper Functions](https://pipedream.com/apps/helper-functions) app so you don't need to do it by code!
-
-## Ending a workflow early
-
-
-
-Sometimes you want to end your workflow early, or otherwise stop or cancel the execution or a workflow under certain conditions. For example:
-
-- You may want to end your workflow early if you don't receive all the fields you expect in the event data.
-- You only want to run your workflow for 5% of all events sent from your source.
-- You only want to run your workflow for users in the United States. If you receive a request from outside the U.S., you don't want the rest of the code in your workflow to run.
-- You may use the `user_id` contained in the event to look up information in an external API. If you can't find data in the API tied to that user, you don't want to proceed.
-
-**In any code step, calling `return $.flow.exit()` will end the execution of the workflow immediately.** No remaining code in that step, and no code or destination steps below, will run for the current event.
-
-
-It's a good practice to use `return $.flow.exit()` to immediately exit the workflow.
-In contrast, `$.flow.exit()` on its own will end the workflow only after executing all remaining code in the step.
-
-
-```javascript
-export default defineComponent({
- async run({ steps, $ }) {
- return $.flow.exit();
- console.log(
- "This code will not run, since $.flow.exit() was called above it"
- );
- },
-});
-```
-
-You can pass any string as an argument to `$.flow.exit()`:
-
-```javascript
-export default defineComponent({
- async run({ steps, $ }) {
- return $.flow.exit("End message");
- },
-});
-```
-
-Or exit the workflow early within a conditional:
-
-```javascript
-export default defineComponent({
- async run({ steps, $ }) {
- // Flip a coin, running $.flow.exit() for 50% of events
- if (Math.random() > 0.5) {
- return $.flow.exit();
- }
- console.log("This code will only run 50% of the time");
- },
-});
-```
-
-## Errors
-
-[Errors](https://nodejs.org/dist/latest-v10.x/docs/api/errors.html#errors_errors) raised in a code step will stop the execution of code or destinations that follow.
-
-### Configuration Error
-
-Throwing a `ConfigurationError` in a Node.js step will display the error message in a dedicated area.
-
-This is useful for providing feedback during validation of `props`. In the example below, a required Header value is missing from the Google Sheets action:
-
-
-
-Or you can use it for validating the format of a given `email` prop:
-
-```javascript
-import { ConfigurationError } from "@pipedream/platform";
-
-export default defineComponent({
- props: {
- email: { type: "string" },
- },
- async run({ steps, $ }) {
- // if the email address doesn't include a @, it's not valid
- if (!this.email.includes("@")) {
- throw new ConfigurationError("Provide a valid email address");
- }
- },
-});
-```
-
-## Using secrets in code
-
-Workflow code is private. Still, we recommend you don't include secrets — API keys, tokens, or other sensitive values — directly in code steps.
-
-Pipedream supports [environment variables](/workflows/environment-variables/) for keeping secrets separate from code. Once you create an environment variable in Pipedream, you can reference it in any workflow using `process.env.VARIABLE_NAME`. The values of environment variables are private.
-
-See the [Environment Variables](/workflows/environment-variables/) docs for more information.
-
-## Limitations of code steps
-
-Code steps operate within the [general constraints on workflows](/workflows/limits/#workflows). As long as you stay within those limits and abide by our [acceptable use policy](/workflows/limits/#acceptable-use), you can add any number of code steps in a workflow to do virtually anything you'd be able to do in Node.js.
-
-If you're trying to run code that doesn't work or you have questions about any limits on code steps, [please reach out](https://pipedream.com/support/).
-
-## Editor settings
-
-We use the [Monaco Editor](https://microsoft.github.io/monaco-editor/), which powers VS Code and other web-based editors.
-
-We also let you customize the editor. For example, you can enable Vim mode, and change the default tab size for indented code. Visit your [Settings](https://pipedream.com/settings) to modify these settings.
-
-## Keyboard Shortcuts
-
-We use the [Monaco Editor](https://microsoft.github.io/monaco-editor/), which powers VS Code. As a result, many of the VS Code [keyboard shortcuts](https://code.visualstudio.com/docs/getstarted/keybindings) should work in the context of the editor.
-
-For example, you can use shortcuts to search for text, format code, and more.
-
-## New to JavaScript?
-
-We understand many of you might be new to JavaScript, and provide resources for you to learn the language below.
-
-When you're searching for how to do something in JavaScript, some of the code you try might not work in Pipedream. This could be because the code expects to run in a browser, not a Node.js environment. The same goes for [npm packages](#using-npm-packages).
-
-### I'm new to programming
-
-Many of the most basic JavaScript tutorials are geared towards writing code for a web browser to run. This is great for learning — a webpage is one of the coolest things you can build with code. We recommend starting with these general JavaScript tutorials and trying the code you learn on Pipedream:
-
-- [JavaScript For Cats](http://jsforcats.com/)
-- [Mozilla - JavaScript First Steps](https://developer.mozilla.org/en-US/docs/Learn/JavaScript/First_steps)
-- [StackOverflow](https://stackoverflow.com/) operates a programming Q&A site that typically has the first Google result when you're searching for something specific. It's a great place to find answers to common questions.
-
-### I know how to code, but don't know JavaScript
-
-- [A re-introduction to JavaScript (JS tutorial)](https://developer.mozilla.org/en-US/docs/Web/JavaScript/A_re-introduction_to_JavaScript)
-- [MDN language overview](https://developer.mozilla.org/en-US/docs/Web/JavaScript)
-- [Eloquent Javascript](https://eloquentjavascript.net/)
-- [Node School](https://nodeschool.io/)
-- [You Don't Know JS](https://github.com/getify/You-Dont-Know-JS)
diff --git a/docs-v2/pages/workflows/building-workflows/code/nodejs/rerun.mdx b/docs-v2/pages/workflows/building-workflows/code/nodejs/rerun.mdx
deleted file mode 100644
index e556d07979d4b..0000000000000
--- a/docs-v2/pages/workflows/building-workflows/code/nodejs/rerun.mdx
+++ /dev/null
@@ -1,266 +0,0 @@
-import Callout from "@/components/Callout";
-import VideoPlayer from "@/components/VideoPlayer";
-
-# Pause, resume, and rerun a workflow
-
-You can use `$.flow.suspend` and `$.flow.rerun` to pause a workflow and resume it later.
-
-This is useful when you want to:
-
-- Pause a workflow until someone manually approves it
-- Poll an external API until some job completes, and proceed with the workflow when it's done
-- Trigger an external API to start a job, pause the workflow, and resume it when the external API sends an HTTP callback
-
-We'll cover all of these examples below.
-
-## `$.flow.suspend`
-
-Use `$.flow.suspend` when you want to pause a workflow and proceed with the remaining steps only when manually approved or cancelled.
-
-For example, you can suspend a workflow and send yourself a link to manually resume or cancel the rest of the workflow:
-
-```javascript
-export default defineComponent({
- async run({ $ }) {
- const { resume_url, cancel_url } = $.flow.suspend();
- $.send.email({
- subject: "Please approve this important workflow",
- text: `Click here to approve the workflow: ${resume_url}, and cancel here: ${cancel_url}`,
- });
- // Pipedream suspends your workflow at the end of the step
- },
-});
-```
-
-You'll receive an email like this:
-
-
-
-
-
-And can resume or cancel the rest of the workflow by clicking on the appropriate link.
-
-### `resume_url` and `cancel_url`
-
-In general, calling `$.flow.suspend` returns a `cancel_url` and `resume_url` that lets you cancel or resume paused executions. Since Pipedream pauses your workflow at the _end_ of the step, you can pass these URLs to any external service before the workflow pauses. If that service accepts a callback URL, it can trigger the `resume_url` when its work is complete.
-
-These URLs are specific to a single execution of your workflow. While the workflow is paused, you can load these in your browser or send any HTTP request to them:
-
-- Sending an HTTP request to the `cancel_url` will cancel that execution
-- Sending an HTTP request to the `resume_url` will resume that execution
-
-If you resume a workflow, any data sent in the HTTP request is passed to the workflow and returned in the `$resume_data` [step export](/workflows/#step-exports) of the suspended step. For example, if you call `$.flow.suspend` within a step named `code`, the `$resume_data` export should contain the data sent in the `resume_url` request:
-
-
-
-
-
-Requests to the `resume_url` have [the same limits as any HTTP request to Pipedream](/workflows/limits/#http-request-body-size), but you can send larger payloads using our [large payload](/workflows/building-workflows/triggers/#sending-large-payloads) or [large file](/workflows/building-workflows/triggers/#large-file-support) interfaces.
-
-### Default timeout of 24 hours
-
-By default, `$.flow.suspend` will automatically cancel the workflow after 24 hours. You can set your own timeout (in milliseconds) as the first argument:
-
-```javascript
-export default defineComponent({
- async run({ $ }) {
- // 7 days
- const TIMEOUT = 1000 * 60 * 60 * 24 * 7;
- $.flow.suspend(TIMEOUT);
- },
-});
-```
-
-## `$.flow.rerun`
-
-
-
-Use `$.flow.rerun` when you want to run a specific step of a workflow multiple times. This is useful when you need to start a job in an external API and poll for its completion, or have the service call back to the step and let you process the HTTP request within the step.
-
-### Retrying a Failed API Request
-
-`$.flow.rerun` can be used to conditionally retry a failed API request due to a service outage or rate limit reached. Place the `$.flow.rerun` call within a `catch` block to only retry the API request if an error is thrown:
-
-```javascript
-import { axios } from "@pipedream/platform";
-
-export default defineComponent({
- props: {
- openai: {
- type: "app",
- app: "openai",
- },
- },
- async run({ steps, $ }) {
- try {
- return await axios($, {
- url: `https://api.openai.com/v1/completions`,
- method: "post",
- headers: {
- Authorization: `Bearer ${this.openai.$auth.api_key}`,
- },
- data: {
- model: "text-davinci-003",
- prompt: "Say this is a test",
- max_tokens: 7,
- temperature: 0,
- },
- });
- } catch (error) {
- const MAX_RETRIES = 3;
- const DELAY = 1000 * 30;
-
- // Retry the request every 30 seconds, for up to 3 times
- $.flow.rerun(DELAY, null, MAX_RETRIES);
- }
- },
-});
-```
-
-### Polling for the status of an external job
-
-Sometimes you need to poll for the status of an external job until it completes. `$.flow.rerun` lets you rerun a specific step multiple times:
-
-```javascript
-import axios from "axios";
-
-export default defineComponent({
- async run({ $ }) {
- const MAX_RETRIES = 3;
- // 10 seconds
- const DELAY = 1000 * 10;
- const { run } = $.context;
- // $.context.run.runs starts at 1 and increments when the step is rerun
- if (run.runs === 1) {
- // $.flow.rerun(delay, context (discussed below), max retries)
- $.flow.rerun(DELAY, null, MAX_RETRIES);
- } else if (run.runs === MAX_RETRIES + 1) {
- throw new Error("Max retries exceeded");
- } else {
- // Poll external API for status
- const { data } = await axios({
- method: "GET",
- url: "https://example.com/status",
- });
- // If we're done, continue with the rest of the workflow
- if (data.status === "DONE") return data;
-
- // Else retry later
- $.flow.rerun(DELAY, null, MAX_RETRIES);
- }
- },
-});
-```
-
-`$.flow.rerun` accepts the following arguments:
-
-```javascript
-$.flow.rerun(
- delay, // The number of milliseconds until the step will be rerun
- context, // JSON-serializable data you need to pass between runs
- maxRetries // The total number of times the step will rerun. Defaults to 10
-);
-```
-
-### Accept an HTTP callback from an external service
-
-When you trigger a job in an external service, and that service can send back data in an HTTP callback to Pipedream, you can process that data within the same step using `$.flow.rerun`:
-
-```javascript
-import axios from "axios";
-
-export default defineComponent({
- async run({ steps, $ }) {
- const TIMEOUT = 86400 * 1000;
- const { run } = $.context;
- // $.context.run.runs starts at 1 and increments when the step is rerun
- if (run.runs === 1) {
- const { cancel_url, resume_url } = $.flow.rerun(TIMEOUT, null, 1);
-
- // Send resume_url to external service
- await axios({
- method: "POST",
- url: "your callback URL",
- data: {
- resume_url,
- cancel_url,
- },
- });
- }
-
- // When the external service calls back into the resume_url, you have access to
- // the callback data within $.context.run.callback_request
- else if (run.callback_request) {
- return run.callback_request;
- }
- },
-});
-```
-
-### Passing `context` to `$.flow.rerun`
-
-Within a Node.js code step, `$.context.run.context` contains the `context` passed from the prior call to `rerun`. This lets you pass data from one run to another. For example, if you call:
-
-```javascript
-$.flow.rerun(1000, { hello: "world" });
-```
-
-`$.context.run.context` will contain:
-
-
-
-
-
-### `maxRetries`
-
-By default, `maxRetries` is **10**.
-
-When you exceed `maxRetries`, the workflow proceeds to the next step. If you need to handle this case with an exception, `throw` an error from the step:
-
-```javascript
-export default defineComponent({
- async run({ $ }) {
- const MAX_RETRIES = 3;
- const { run } = $.context;
- if (run.runs === 1) {
- $.flow.rerun(1000, null, MAX_RETRIES);
- } else if (run.runs === MAX_RETRIES + 1) {
- throw new Error("Max retries exceeded");
- }
- },
-});
-```
-
-## Behavior when testing
-
-When you're building a workflow and test a step with `$.flow.suspend` or `$.flow.rerun`, it will not suspend the workflow, and you'll see a message like the following:
-
-> Workflow execution canceled — this may be due to `$.flow.suspend()` usage (not supported in test)
-
-These functions will only suspend and resume when run in production.
-
-## Credits when using `suspend` / `rerun`
-
-You are not charged for the time your workflow is suspended during a `$.flow.rerun` or `$.flow.suspend`. Only when workflows are resumed will compute time count toward [credit usage](/pricing/#credits-and-billing).
-
-
-When a suspended workflow reawakens, it will reset the credit counter.
-
-Each rerun or reawakening from a suspension will count as a new fresh credit.
-
-
diff --git a/docs-v2/pages/workflows/building-workflows/code/nodejs/sharing-code.mdx b/docs-v2/pages/workflows/building-workflows/code/nodejs/sharing-code.mdx
deleted file mode 100644
index 80435f614f883..0000000000000
--- a/docs-v2/pages/workflows/building-workflows/code/nodejs/sharing-code.mdx
+++ /dev/null
@@ -1,148 +0,0 @@
-import Callout from '@/components/Callout'
-import VideoPlayer from '@/components/VideoPlayer'
-
-# Sharing code across workflows
-
-[Actions](/components/contributing/#actions) are reusable steps. When you author an action, you can add it to your workflow like you would other actions, by clicking the **+** button below any step.
-
-Pipedream provides two ways to share code across workflows:
-
-- **Publish an action from a Node.js code step**. [Publish any Node.js code step as a reusable action](/workflows/building-workflows/code/nodejs/sharing-code/#publish-an-action-from-a-nodejs-code-step) from the Pipedream dashboard.
-
-- **Create an action from code**. Develop your action code on your local filesystem and [publish to your Pipedream account using the Pipedream CLI](/components/contributing/actions-quickstart/).
-
-## Publish an action from a Node.js code step
-
-
-
-You can publish any of your Node.js code steps into a reusable action. This enables you to write a Node.js code step once, and reuse it across many workflows without rewriting it.
-
-To convert a Node.js code step into an publishable action, make sure to include the below properties in your Node.js step:
-- `version`
-- `name`
-- `key`
-- `type`
-
-```javascript {6-9}
-// Adding properties to a regular Node.js code step make it publishable
-import { parseISO, format } from 'date-fns';
-
-// Returns a formatted datetime string
-export default defineComponent({
- name: 'Format Date',
- version: '0.0.1',
- key: 'format-date',
- type: 'action',
- props: {
- date: {
- type: "string",
- label: "Date",
- description: "Date to be formatted",
- },
- format: {
- type: 'string',
- label: "Format",
- description: "Format to apply to the date. [See date-fns format](https://date-fns.org/v2.29.3/docs/format) as a reference."
- }
- },
- async run({ $ }) {
- const formatted = format(parseISO(this.date), this.format);
- return formatted;
- },
-})
-
-```
-
-Click **Test** to verify the step is working as expected. Only actions that have been successfully tested are to be published.
-
-Then open the menu in the top righthand corner of the code step and select **Publish to My Actions**:
-
-
-
-And now you've successfully saved a custom Node.js code step to your account. You'll be able to use this code step in any of your workflows.
-
-
-**Why can't I use the `steps` variable in published Node.js code steps?**
-
-The `steps` variable contains the _workflows_ step exports.
-
-When you publish a Node.js code step as an action, it becomes reusable across many workflows.
-
-This means that the step exports available vary depending on the workflow it's running on.
-
-Defining props is a way to map inputs to actions and allow individual workflows to define which exports should be used.
-
-
-## Using your published actions
-
-To use your custom action, create a new step in your workflow and select **My Actions**.
-
-
-
-From there you'll be able to view and select any of your published actions and use them as steps.
-
-## Updating published Node.js code step actions
-
-If you need to make a change and update the underlying code to your published Node.js code step, you can do so by incrementing the `version` field on the Node.js code step.
-
-Every instance of your published action from a code step is editable. In any workflow where you've reused a published action, open the menu on the right side of the action and click **Edit action** button.
-
-This will open up the code editor for this action, even if this wasn't the original code step.
-
-Now increment the `version` field in the code:
-
-```javascript {6}
-import { parseISO, format } from 'date-fns';
-
-// The version field on a Node.js action is versioned
-export default defineComponent({
- name: 'Format Date',
- version: '0.0.2',
- key: 'format-date',
- type: 'action',
- props: {
- date: {
- type: "string",
- label: "Date",
- description: "Date to be formatted",
- },
- format: {
- type: 'string',
- label: "Format",
- description: "Format to apply to the date. [See date-fns format](https://date-fns.org/v2.29.3/docs/format) as a reference."
- }
- },
- async run({ $ }) {
- const formatted = format(parseISO(this.date), this.format);
- return formatted;
- },
-})
-```
-
-Finally use the **Publish to My Actions** button in the right hand side menu to publish this new version.
-
-
-**I'm not seeing an **Edit Action** button option in my step**
-
-The **Edit Action** button is only available for actions that are published from Node.js code steps.
-
-Actions submitted to the public component registry can contain multiple files. At this time it's not possible to edit multi-file components direct in a code step.
-
-
-
-**Will publishing a new version of an action automatically update all other steps using it?**
-
-No, a new version of an action doesn't automatically update all instances of the same action across your workflows. This gives you the control to gradually update.
-
-
-After publishing a new version, all other steps using this same action will have the option to [update to the latest version](/workflows/building-workflows/actions/#updating-actions-to-the-latest-version).
-
-## Differences between publishing actions from workflow Node.js code steps and directly from code
-
-Publishing reusable actions from Node.js code steps allows you to quickly scaffold and publish Node.js code steps without leaving the Pipedream dashboard. The result is the same as publishing actions from code using the Pipedream CLI.
-
-However, there are some differences.
-
-1. Node.js code step actions cannot make use of [app files to further reduce redundancy](/components/contributing/guidelines/#promoting-reusability).
-2. Node.js code step actions cannot be published to the [Pipedream Component Registry](/components/contributing/).
-3. Node.js code step actions have a slightly different structure than [action components](/components/contributing/api/#component-api).
diff --git a/docs-v2/pages/workflows/building-workflows/code/nodejs/using-data-stores.mdx b/docs-v2/pages/workflows/building-workflows/code/nodejs/using-data-stores.mdx
deleted file mode 100644
index 2a00ad0496578..0000000000000
--- a/docs-v2/pages/workflows/building-workflows/code/nodejs/using-data-stores.mdx
+++ /dev/null
@@ -1,338 +0,0 @@
-import Callout from '@/components/Callout'
-
-# Using Data Stores
-
-In Node.js (Javascript) code steps, you can also store and retrieve data within code steps without connecting a 3rd party database.
-
-Add data stores to steps as props. By adding the store as a prop, it's available under `this`.
-
-For example, you can define a data store as a dataStore prop, and reference it at `this.dataStore`:
-
-```javascript
-export default defineComponent({
- props: {
- // Define that the "dataStore" variable in our component is a data store
- dataStore: { type: "data_store" },
- },
- async run({ steps, $ }) {
- // Now we can access the data store at "this.dataStore"
- await this.dataStore.get("email");
- },
-});
-```
-
-
-**`props` injects variables into `this`**. See how we declared the `dataStore` prop in the `props` object, and then accessed it at `this.dataStore` in the `run` method.
-
-
-
-All data store operations are asynchronous, so must be `await`ed.
-
-
-## Using the data store
-
-Once you've defined a data store prop for your component, then you'll be able to create a new data store or use an existing one from your account.
-
-
-
-## Saving data
-
-Data Stores are key-value stores. Save data within a Data Store using the `this.dataStore.set` method. The first argument is the _key_ where the data should be held, and the second argument is the _value_ assigned to that key.
-
-```javascript
-export default defineComponent({
- props: {
- dataStore: { type: "data_store" },
- },
- async run({ steps, $ }) {
- // Store a timestamp each time this step is executed in the workflow
- await this.dataStore.set("lastRanAt", new Date());
- },
-});
-```
-
-### Setting expiration (TTL) for records
-
-You can set an expiration time for a record by passing a TTL (Time-To-Live) option as the third argument to the `set` method. The TTL value is specified in seconds:
-
-```javascript
-export default defineComponent({
- props: {
- dataStore: { type: "data_store" },
- },
- async run({ steps, $ }) {
- // Store a temporary value that will expire after 1 hour (3600 seconds)
- await this.dataStore.set("temporaryToken", "abc123", { ttl: 3600 });
-
- // Store a value that will expire after 1 day
- await this.dataStore.set("dailyMetric", 42, { ttl: 86400 });
- },
-});
-```
-
-When the TTL period elapses, the record will be automatically deleted from the data store.
-
-### Updating TTL for existing records
-
-You can update the TTL for an existing record using the `setTtl` method:
-
-```javascript
-export default defineComponent({
- props: {
- dataStore: { type: "data_store" },
- },
- async run({ steps, $ }) {
- // Update an existing record to expire after 30 minutes
- await this.dataStore.setTtl("temporaryToken", 1800);
-
- // Remove expiration from a record
- await this.dataStore.setTtl("temporaryToken", null);
- },
-});
-```
-
-This is useful for extending the lifetime of temporary data or removing expiration from records that should now be permanent.
-
-## Retrieving keys
-
-Fetch all the keys in a given Data Store using the `keys` method:
-
-```javascript
-export default defineComponent({
- props: {
- dataStore: { type: "data_store" },
- },
- async run({ steps, $ }) {
- // Return a list of all the keys in a given Data Store
- return await this.dataStore.keys();
- },
-});
-```
-
-## Checking for the existence of specific keys
-
-If you need to check whether a specific `key` exists in a Data Store, you can pass the `key` to the `has` method to get back a `true` or `false`:
-
-```javascript
-export default defineComponent({
- props: {
- dataStore: { type: "data_store" },
- },
- async run({ steps, $ }) {
- // Check if a specific key exists in your Data Store
- return await this.dataStore.has("lastRanAt");
- },
-});
-```
-
-## Retrieving data
-
-You can retrieve data with the Data Store using the `get` method. Pass the _key_ to the `get` method to retrieve the content that was stored there with `set`.
-
-```javascript
-export default defineComponent({
- props: {
- dataStore: { type: "data_store" },
- },
- async run({ steps, $ }) {
- // Check if the lastRanAt key exists
- const lastRanAt = await this.dataStore.get("lastRanAt");
- },
-});
-```
-
-## Retrieving all records
-
-Use an async iterator to efficiently retrieve all records or keys in your data store:
-
-```javascript
-export default defineComponent({
- props: {
- dataStore: { type: "data_store" },
- },
- async run({ steps, $ }) {
- const records = {};
- for await (const [k,v] of this.dataStore) {
- records[k] = v;
- }
- return records;
- },
-});
-```
-
-## Deleting or updating values within a record
-
-To delete or update the _value_ of an individual record, use the `set` method for an existing `key` and pass either the new value or `''` as the second argument to remove the value but retain the key.
-
-```javascript
-export default defineComponent({
- props: {
- dataStore: { type: "data_store" },
- },
- async run({ steps, $ }) {
- // Update the value associated with the key, myKey
- await this.dataStore.set("myKey", "newValue");
-
- // Remove the value but retain the key
- await this.dataStore.set("myKey", "");
- },
-});
-```
-
-## Deleting specific records
-
-To delete individual records in a Data Store, use the `delete` method for a specific `key`:
-
-```javascript
-export default defineComponent({
- props: {
- dataStore: { type: "data_store" },
- },
- async run({ steps, $ }) {
- // Delete the lastRanAt record
- const lastRanAt = await this.dataStore.delete("lastRanAt");
- },
-});
-```
-
-## Deleting all records from a specific Data Store
-
-If you need to delete all records in a given Data Store, you can use the `clear` method. **Note that this is an irreversible change, even when testing code in the workflow builder.**
-
-```javascript
-export default defineComponent({
- props: {
- dataStore: { type: "data_store" },
- },
- async run({ steps, $ }) {
- // Delete all records from a specific Data Store
- return await this.dataStore.clear();
- },
-});
-```
-
-## Viewing store data
-
-You can view the contents of your data stores in your [Pipedream dashboard](https://pipedream.com/stores).
-
-From here you can also manually edit your data store's data, rename stores, delete stores or create new stores.
-
-## Using multiple data stores in a single code step
-
-It is possible to use multiple data stores in a single code step, just make a unique name per store in the `props` definition. Let's define 2 separate `customers` and `orders` data sources and leverage them in a single code step:
-
-```javascript
-export default defineComponent({
- props: {
- customers: { type: "data_store" },
- orders: { type: "data_store" },
- },
- async run({ steps, $ }) {
- // Retrieve the customer from our customer store
- const customer = await this.customer.get(steps.trigger.event.customer_id);
- // Retrieve the order from our order data store
- const order = await this.orders.get(steps.trigger.event.order_id);
- },
-});
-```
-
-## Workflow counter example
-
-You can use a data store as a counter. For example, this code counts the number of times the workflow runs:
-
-```javascript
-export default defineComponent({
- props: {
- dataStore: { type: "data_store" },
- },
- async run({ steps, $ }) {
- // By default, all database entries are undefined.
- // It's wise to set a default value so our code as an initial value to work with
- const counter = (await this.dataStore.get("counter")) ?? 0;
-
- // On the first run "counter" will be 0 and we'll increment it to 1
- // The next run will increment the counter to 2, and so forth
- await this.dataStore.set("counter", counter + 1);
- },
-});
-```
-
-## Dedupe data example
-
-Data Stores are also useful for storing data from prior runs to prevent acting on duplicate data, or data that's been seen before.
-
-For example, this workflow's trigger contains an email address from a potential new customer. But we want to track all emails collected so we don't send a welcome email twice:
-
-```javascript
-export default defineComponent({
- props: {
- dataStore: { type: "data_store" },
- },
- async run({ steps, $ }) {
- const email = steps.trigger.event.body.new_customer_email;
- // Retrieve the past recorded emails from other runs
- const emails = (await this.dataStore.get("emails")) ?? [];
-
- // If the current email being passed from our webhook is already in our list, exit early
- if (emails.includes(email)) {
- return $.flow.exit("Already welcomed this user");
- }
-
- // Add the current email to the list of past emails so we can detect it in the future runs
- await this.dataStore.set("emails", [...emails, email]);
- },
-});
-```
-
-## TTL use case: temporary caching and rate limiting
-
-TTL functionality is particularly useful for implementing temporary caching and rate limiting. Here's an example of a simple rate limiter that prevents a user from making more than 5 requests per hour:
-
-```javascript
-export default defineComponent({
- props: {
- dataStore: { type: "data_store" },
- },
- async run({ steps, $ }) {
- const userId = steps.trigger.event.userId;
- const rateKey = `ratelimit:${userId}`;
-
- // Try to get current rate limit counter
- let requests = await this.dataStore.get(rateKey);
-
- if (requests === undefined) {
- // First request from this user in the time window
- await this.dataStore.set(rateKey, 1, { ttl: 3600 }); // Expire after 1 hour
- return { allowed: true, remaining: 4 };
- }
-
- if (requests >= 5) {
- // Rate limit exceeded
- return { allowed: false, error: "Rate limit exceeded", retryAfter: "1 hour" };
- }
-
- // Increment the counter
- await this.dataStore.set(rateKey, requests + 1);
- return { allowed: true, remaining: 4 - requests };
- },
-});
-```
-
-This pattern can be extended for various temporary caching scenarios like:
-- Session tokens with automatic expiration
-- Short-lived feature flags
-- Temporary access grants
-- Time-based promotional codes
-
-### Supported data types
-
-Data stores can hold any JSON-serializable data within the storage limits. This includes data types including:
-
-- Strings
-- Objects
-- Arrays
-- Dates
-- Integers
-- Floats
-
-But you cannot serialize Functions, Classes, or other more complex objects.
diff --git a/docs-v2/pages/workflows/building-workflows/code/nodejs/working-with-files.mdx b/docs-v2/pages/workflows/building-workflows/code/nodejs/working-with-files.mdx
deleted file mode 100644
index 126f024bc0187..0000000000000
--- a/docs-v2/pages/workflows/building-workflows/code/nodejs/working-with-files.mdx
+++ /dev/null
@@ -1,94 +0,0 @@
-# Working with the filesystem in Node.js
-
-You'll commonly need to work with files in a workflow, for example: downloading content from some service to upload to another. This doc explains how to work with files in Pipedream workflows and provides some sample code for common operations.
-
-## The `/tmp` directory
-
-Within a workflow, you have full read-write access to the `/tmp` directory. You have {process.env.TMP_SIZE_LIMIT} of available space in `/tmp` to save any file.
-
-### Managing `/tmp` across workflow runs
-
-The `/tmp` directory is stored on the virtual machine that runs your workflow. We call this the execution environment ("EE"). More than one EE may be created to handle high-volume workflows. And EEs can be destroyed at any time (for example, after about 10 minutes of receiving no events). This means that you should not expect to have access to files across executions. At the same time, files _may_ remain, so you should clean them up to make sure that doesn't affect your workflow. **Use [the `tmp-promise` package](https://github.com/benjamingr/tmp-promise) to cleanup files after use, or [delete the files manually](#delete-a-file).**
-
-### Reading a file from `/tmp`
-
-This example uses [step exports](/workflows/#step-exports) to return the contents of a test file saved in `/tmp` as a string:
-
-```javascript
-import fs from "fs";
-
-export default defineComponent({
- async run({ steps, $ }) {
- return (await fs.promises.readFile('/tmp/your-file')).toString()
- }
-});
-```
-
-### Writing a file to `/tmp`
-
-Use the [`fs` module](https://nodejs.org/api/fs.html) to write data to `/tmp`:
-
-```javascript
-import fs from "fs"
-import { file } from 'tmp-promise'
-
-export default defineComponent({
- async run({ steps, $ }) {
- const { path, cleanup } = await file();
- await fs.promises.appendFile(path, Buffer.from("hello, world"))
- await cleanup();
- }
-});
-```
-
-### Listing files in `/tmp`
-
-Return a list of the files saved in `/tmp`:
-
-```javascript
-import fs from "fs";
-
-export default defineComponent({
- async run({ steps, $ }) {
- return fs.readdirSync("/tmp");
- }
-});
-```
-
-### Delete a file
-
-```javascript
-import fs from "fs";
-
-export default defineComponent({
- async run({ steps, $ }) {
- return await fs.promises.unlink('/tmp/your-file');
- }
-});
-```
-
-### Download a file to `/tmp`
-
-[See this example](/workflows/building-workflows/code/nodejs/http-requests/#download-a-file-to-the-tmp-directory) to learn how to download a file to `/tmp`.
-
-### Upload a file from `/tmp`
-
-[See this example](/workflows/building-workflows/code/nodejs/http-requests/#upload-a-file-from-the-tmp-directory) to learn how to upload a file from `/tmp` in an HTTP request.
-
-### Download a file, uploading it in another `multipart/form-data` request
-
-[This workflow](https://pipedream.com/@dylburger/download-file-then-upload-file-via-multipart-form-data-request-p_QPCx7p/edit) provides an example of how to download a file at a specified **Download URL**, uploading that file to an **Upload URL** as form data.
-
-### Download email attachments to `/tmp`, upload to Amazon S3
-
-[This workflow](https://pipedream.com/@dylan/upload-email-attachments-to-s3-p_V9CGAQ/edit) is triggered by incoming emails. When copied, you'll get a workflow-specific email address you can send any email to. This workflow takes any attachments included with inbound emails, saves them to `/tmp`, and uploads them to Amazon S3.
-
-You should also be aware of the [inbound payload limits](/workflows/limits/#email-triggers) associated with the email trigger.
-
-### Downloading and uploading files from File Stores
-
-Within Node.js code steps, you can download files from a File Store to the `/tmp` directory and vice versa.
-
-The `$.files` helper includes methods to upload and download files from the Project's File Store.
-
-[Read the File Stores `$.files` helper documentation.](/workflows/data-management/file-stores/#managing-file-stores-from-workflows)
diff --git a/docs-v2/pages/workflows/building-workflows/code/python/_meta.tsx b/docs-v2/pages/workflows/building-workflows/code/python/_meta.tsx
deleted file mode 100644
index 9c81cb2fdc407..0000000000000
--- a/docs-v2/pages/workflows/building-workflows/code/python/_meta.tsx
+++ /dev/null
@@ -1,10 +0,0 @@
-export default {
- "index": "Running Python in workflows",
- "auth": "Connect apps",
- "http-requests": "HTTP requests",
- "working-with-files": "Files",
- "using-data-stores": "Data stores",
- "delay": "Delaying steps",
- "rerun": "Pause, resume, and rerun steps",
- "import-mappings": "Different PyPI package name and import name",
-} as const
diff --git a/docs-v2/pages/workflows/building-workflows/code/python/auth.mdx b/docs-v2/pages/workflows/building-workflows/code/python/auth.mdx
deleted file mode 100644
index c06187f578b7b..0000000000000
--- a/docs-v2/pages/workflows/building-workflows/code/python/auth.mdx
+++ /dev/null
@@ -1,91 +0,0 @@
-# Connecting apps in Python
-
-When you use [prebuilt actions](/components/contributing/#actions) tied to apps, you don't need to write the code to authorize API requests. Just [connect your account](/apps/connected-accounts/#connecting-accounts) for that app and run your workflow.
-
-But sometimes you'll need to [write your own code](/workflows/building-workflows/code/python/). You can also connect apps to custom code steps, using the auth information to authorize requests to that app.
-
-For example, you may want to send a Slack message from a step. We use Slack's OAuth integration to authorize sending messages from your workflows.
-
-Add Slack as an app on the Python step, then connect your Slack account.
-
-
-
-Then within the Python code step, `pd.inputs["slack"]["$auth"]["oauth_access_token"]` will contain your Slack account OAuth token.
-
-With that token, you can make authenticated API calls to Slack:
-
-```python
-from slack_sdk import WebClient
-
-def handler(pd: "pipedream"):
- # Your Slack OAuth token is available under pd.inputs
- token = pd.inputs["slack"]["$auth"]["oauth_access_token"]
-
- # Instantiate a new Slack client with your token
- client = WebClient(token=token)
-
- # Use the client to send messages to Slack channels
- response = client.chat_postMessage(
- channel='#general',
- text='Hello from Pipedream!'
- )
-
- # Export the Slack response payload for use in future steps
- pd.export("response", response.data)
-```
-
-
-
-## Accessing connected account data with `pd.inputs[appName]["$auth"]`
-
-In our Slack example above, we created a Slack `WebClient` using the Slack OAuth access token:
-
-```python
-# Instantiate a new Slack client with your token
-client = WebClient(token=token)
-```
-
-Where did `pd.inputs["slack"]` come from? Good question. It was generated when we connected Slack to our Python step.
-
-![The Slack app generates the pd.inputs["slack"] data](/images/python/auth/connected-slack-account.png)
-
-The Slack access token is generated by Pipedream, and is available to this step in the `pd.inputs[appName]["$auth"]` object:
-
-```python
-from slack_sdk import WebClient
-
-def handler(pd: "pipedream"):
- token = pd.inputs["slack"]["$auth"]["oauth_access_token"]
- # Authentication details for all of your apps are accessible under the special pd.inputs["slack"] variable:
- console.log(pd.inputs["slack"]["$auth"])
-```
-
-`pd.inputs["slack"]["$auth"]` contains named properties for each account you connect to the associated step. Here, we connected Slack, so `this.slack.$auth` contains the Slack auth info (the `oauth_access_token`).
-
-The names of the properties for each connected account will differ with the account. Pipedream typically exposes OAuth access tokens as `oauth_access_token`, and API keys under the property `api_key`. But if there's a service-specific name for the tokens (for example, if the service calls it `server_token`), we prefer that name, instead.
-
-To list the `pd.inputs["slack"]["$auth"]` properties available to you for a given app, just print the contents of the `$auth` property:
-
-```python
-print(pd.inputs["slack"]["$auth"]) # Replace "slack" with your app's name
-```
-
-and run your workflow. You'll see the property names in the logs below your step.
-
-### Using the code templates tied to apps
-
-When you write custom code that connects to an app, you can start with a code snippet Pipedream provides for each app. This is called the **test request**.
-
-When you search for an app in a step:
-
-1. Click the **+** button below any step.
-2. Search for the app you're looking for and select it from the list.
-3. Select the option to **Run Python with any [app] API**.
-
-
-
-This code operates as a template you can extend, and comes preconfigured with the connection to the target app and the code for authorizing requests to the API. You can modify this code however you'd like.
-
-## Custom auth tokens / secrets
-
-When you want to connect to a 3rd party service that isn't supported by Pipedream, you can store those secrets in [Environment Variables](/workflows/environment-variables/).
diff --git a/docs-v2/pages/workflows/building-workflows/code/python/delay.mdx b/docs-v2/pages/workflows/building-workflows/code/python/delay.mdx
deleted file mode 100644
index 3c5a2f543da75..0000000000000
--- a/docs-v2/pages/workflows/building-workflows/code/python/delay.mdx
+++ /dev/null
@@ -1,129 +0,0 @@
-import Callout from '@/components/Callout'
-
-# Delaying a workflow
-
-Use `pd.flow.delay` to [delay a step in a workflow](/workflows/building-workflows/control-flow/delay/).
-
-These docs show you how to write Python code to handle delays. If you don't need to write code, see [our built-in delay actions](/workflows/building-workflows/control-flow/delay/#delay-actions).
-
-## Using `pd.flow.delay`
-
-`pd.flow.delay` takes one argument: the number of **milliseconds** you'd like to pause your workflow until the next step executes. {process.env.DELAY_MIN_MAX_TIME}.
-
-Note that [delays happen at the end of the step where they're called](#when-delays-happen).
-
-```python
-import random
-
-def handler(pd: 'pipedream'):
- # Delay a workflow for 60 seconds (60,000 ms)
- pd.flow.delay(60 * 1000)
-
- # Delay a workflow for 15 minutes
- pd.flow.delay(15 * 60 * 1000)
-
- # Delay a workflow based on the value of incoming event data,
- # or default to 60 seconds if that variable is undefined
- default = 60 * 1000
- delayMs = pd.steps["trigger"].get("event", {}).get("body", {}).get("delayMs", default)
- pd.flow.delay(delayMs)
-
- # Delay a workflow a random amount of time
- pd.flow.delay(random.randint(0, 999))
-```
-
-
-Paused workflow state
-
-When `pd.flow.delay` is executed in a Python step, the workflow itself will enter a **Paused** state.
-
-While the workflow is paused, it will not incur any credits towards compute time. You can also [view all paused workflows in the Event History](/workflows/event-history/#filtering-by-status).
-
-
-### Credit usage
-
-The length of time a workflow is delayed from `pd.flow.delay` does _not_ impact your credit usage. For example, delaying a 256 megabyte workflow for five minutes will **not** incur ten credits.
-
-However, using `pd.flow.delay` in a workflow will incur two credits.
-
-One credit is used to initially start the workflow, then the second credit is used when the workflow resumes after its pause period has ended.
-
-
-Exact credit usage depends on duration and memory configuration
-
-If your workflow's [execution timeout limit](/workflows/building-workflows/settings/#execution-timeout-limit) is set to longer than [default limit](/workflows/limits/#time-per-execution), it may incur more than two [credits](/pricing/#credits-and-billing) when using `pd.flow.delay`.
-
-
-## `cancel_url` and `resume_url`
-
-Both the built-in **Delay** actions and `pd.flow.delay` return a `cancel_url` and `resume_url` that lets you cancel or resume paused executions.
-
-These URLs are specific to a single execution of your workflow. While the workflow is paused, you can load these in your browser or send an HTTP request to either:
-
-- Hitting the `cancel_url` will immediately cancel that execution
-- Hitting the `resume_url` will immediately resume that execution early
-
-[Since Pipedream pauses your workflow at the _end_ of the step where you run call `pd.flow.delay`](#when-delays-happen), you can send these URLs to third party systems, via email, or anywhere else you'd like to control the execution of your workflow.
-
-```python
-import requests
-
-def handler(pd: 'pipedream'):
- links = pd.flow.delay(15 * 60 * 1000)
- # links contains a dictionary with two entries: resume_url and cancel_url
-
- # Send the URLs to a system you own
- requests.post("https://example.com", json=links)
-
- # Email yourself the URLs. Click on the links to cancel / resume
- pd.send.email(
- subject=f"Workflow execution {pd.steps['trigger']['context']['id']}",
- text=f"Cancel your workflow here: {links['cancel_url']} . Resume early here: {links['resume_url']}",
- html=None
- )
-
- # Delay happens at the end of this step
-```
-
-
-In `pd.send.email`, the `html` argument defaults to `""`, so it overrides the email `text` unless explicitly set to `None`.
-
-
-## When delays happen
-
-**Pipedream pauses your workflow at the _end_ of the step where you call `pd.flow.delay`**. This lets you [send the `cancel_url` and `resume_url` to third-party systems](cancel_url-and-resume_url).
-
-```python
-def handler(pd: 'pipedream'):
- urls = pd.flow.delay(15 * 60 * 1000)
- cancel_url, resume_url = urls["cancel_url"], urls["resume_url"]
- # ... run any code you want here
-
- # Delay happens at the end of this step
-```
-
-## Delays and HTTP responses
-
-You cannot run `pd.respond` after running `pd.flow.delay`. Pipedream ends the original execution of the workflow when `pd.flow.delay` is called and issues the following response to the client to indicate this state:
-
-> $.respond() not called for this invocation
-
-If you need to set a delay on an HTTP request triggered workflow, consider using [`time.sleep`](#timesleep) instead.
-
-## `time.sleep`
-
-Alternatively, you can use `time.sleep` instead of using `pd.flow.delay` to delay individual workflow steps.
-
-However, there are some drawbacks to using `time.sleep` instead of `pd.flow.delay`. `time.sleep` will count towards your workflow's compute time, for example:
-
-```python
-import time
-
-def handler(pd: 'pipedream'):
- # delay this step for 30 seconds
- delay = 30
-
- time.sleep(delay)
-```
-
-The Python step above will hold the workflow's execution for this step for 30 seconds; however, 30 seconds will also _contribute_ to your credit usage. Also consider that workflows have a hard limit of {process.env.MAX_WORKFLOW_EXECUTION_LIMIT} seconds.
diff --git a/docs-v2/pages/workflows/building-workflows/code/python/http-requests.mdx b/docs-v2/pages/workflows/building-workflows/code/python/http-requests.mdx
deleted file mode 100644
index 7ae57ea425ef8..0000000000000
--- a/docs-v2/pages/workflows/building-workflows/code/python/http-requests.mdx
+++ /dev/null
@@ -1,292 +0,0 @@
-import Callout from '@/components/Callout'
-
-# Making HTTP Requests with Python
-
-HTTP requests are fundamental to working with APIs or other web services. You can make HTTP requests to retrieve data from APIs, fetch HTML from websites, or do pretty much anything your web browser can do.
-
-**Below, we'll review how to make HTTP requests using Python code on Pipedream.**
-
-We recommend using the popular `requests` HTTP client package available in Python to send HTTP requests, but [you can use any PyPi package you'd like on Pipedream](/workflows/building-workflows/code/python/#using-third-party-packages).
-
-
-
-## Basic `requests` usage notes
-
-No need to run `pip install`, just `import requests` at the top of your step's code and it's available for your code to use.
-
-To use `requests` on Pipedream, you'll just need to import the `requests` PyPi package:
-
-```python
-import requests
-```
-
-You make HTTP requests by passing a URL and optional request parameters to one of [Requests' 7 HTTP request methods](https://requests.readthedocs.io/en/latest/api/#main-interface).
-
-**Here's how to make a basic HTTP request on Pipedream:**
-
-```python
-r = requests.get('https://swapi.dev/api/films/')
-```
-
-The [Response](https://requests.readthedocs.io/en/latest/api/#requests.Response) object `r` contains a lot of information about the response: its content, headers, and more. Typically, you just care about the content, which you can access in the `text` property of the response:
-
-```python
-r = requests.get('https://swapi.dev/api/films/')
-
-# HTTP response content is in the text property
-r.text
-```
-
-Requests automatically decodes the content of the response based on its encoding, `r.encoding`, which is determined based on the HTTP headers.
-
-If you're dealing with JSON data, you can call `r.json()` to decode the content as JSON:
-
-```python
-r = requests.get('https://swapi.dev/api/films/')
-
-# The json-encoded content of a response, if any
-r.json()
-```
-
-If JSON decoding fails, `r.json()` raises an exception.
-
-## Making a `GET` request
-
-GET requests typically are for retrieving data from an API. Below is an example.
-
-```python
-import requests
-
-def handler(pd: "pipedream"):
- url = "https://swapi.dev/api/people/1"
-
- r = requests.get(url)
-
- # The response is logged in your Pipedream step results:
- print(r.text)
-
- # The response status code is logged in your Pipedream step results:
- print(r.status_code)
-```
-
-## Making a `POST` request
-
-```python
-import requests
-
-def handler(pd: "pipedream"):
- # This a POST request to this URL will echo back whatever data we send to it
- url = "https://postman-echo.com/post"
-
- data = {"name": "Bulbasaur"}
-
- r = requests.post(url, data=data)
-
- # The response is logged in your Pipedream step results:
- print(r.text)
-
- # The response status code is logged in your Pipedream step results:
- print(r.status_code)
-```
-
-When you make a `POST` request, pass a dictionary with the data you'd like to send to the `data` argument. Requests automatically form-encodes the data when the request is made.
-
-
-The code example above will NOT set the `Content-Type` header, meaning it will NOT be set to `application/json`.
-
-If you want the header set to `application/json` and don't want to encode the `dict` yourself, you can pass it using the `json` parameter and it will be encoded automatically:
-
-```python
- url = "https://postman-echo.com/post"
- data = {"name": "Bulbasaur"}
- r = requests.post(url, json=data)
-```
-
-
-## Passing query string parameters to a `GET` request
-
-Retrieve fake comment data on a specific post using [JSONPlaceholder](https://jsonplaceholder.typicode.com/), a free mock API service. Here, you fetch data from the `/comments` resource, retrieving data for a specific post by query string parameter: `/comments?postId=1`.
-
-```python
-import requests
-
-def handler(pd: "pipedream"):
- url = "https://jsonplaceholder.typicode.com/comments"
- params = {"postId": 1}
-
- # Make an HTTP GET request using requests
- r = requests.get(url, params=params)
-
- # Retrieve the content of the response
- data = r.text
-```
-
-You should pass query string parameters as a dictionary using the `params` keyword argument, like above. When you do, `requests` automatically [URL-encodes](https://www.w3schools.com/tags/ref_urlencode.ASP) the parameters for you, which you'd otherwise have to do manually.
-
-## Sending a request with HTTP headers
-
-To add HTTP headers to a request, pass a dictionary to the `headers` parameter:
-
-```python
-import requests
-import json
-
-def handler(pd: "pipedream"):
- url = "https://jsonplaceholder.typicode.com/posts"
- headers = {"Content-Type": "application/json"}
- data = {"name": "Luke"}
-
- # Make an HTTP POST request using requests
- r = requests.post(url, headers=headers, data=json.dumps(data))
-```
-
-## Sending a request with a secret or API key
-
-Most APIs require you authenticate HTTP requests with an API key or other token. **Please review the docs for your service to understand how they accept this data.**
-
-Here's an example showing an API key passed in an HTTP header:
-
-```python
-import requests
-
-def handler(pd: "pipedream"):
- url = "https://jsonplaceholder.typicode.com/posts"
- headers = {"X-API-KEY": "123"} # API KEY
- data = {"name": "Luke"}
-
- # Make an HTTP POST request using requests
- r = requests.post(url, headers=headers, json=data)
-```
-
-## Sending files
-
-An example of sending a previously stored file in the workflow's `/tmp` directory:
-
-```python
-import requests
-
-def handler(pd: "pipedream"):
- # Retrieving a previously saved file from workflow storage
- files = {"image": open("/tmp/python-logo.png", "rb")}
-
- r = requests.post(url="https://api.imgur.com/3/image", files=files)
-```
-
-## Downloading a file to the `/tmp` directory
-
-This example shows you how to download a file to a file in [the `/tmp` directory](/workflows/building-workflows/code/python/working-with-files/). This can be especially helpful for downloading large files: it streams the file to disk, minimizing the memory the workflow uses when downloading the file.
-
-```python
-import requests
-
-def handler(pd: "pipedream"):
- # Download the webpage HTML file to /tmp
- with requests.get("https://example.com", stream=True) as response:
- # Check if the request was successful
- response.raise_for_status()
-
- # Open the new file /tmp/file.html in binary write mode
- with open("/tmp/file.html", "wb") as file:
- for chunk in response.iter_content(chunk_size=8192):
- # Write the chunk to file
- file.write(chunk)
-```
-
-## Uploading a file from the `/tmp` directory
-
-This example shows you how to make a `multipart/form-data` request with a file as a form part. You can store and read any files from [the `/tmp` directory](/workflows/building-workflows/code/python/working-with-files/#the-tmp-directory).
-
-This can be especially helpful for uploading large files: it streams the file from disk, minimizing the memory the workflow uses when uploading the file.
-
-```python
-import requests
-from requests_toolbelt.multipart.encoder import MultipartEncoder
-
-def handler(pd: "pipedream"):
- m = MultipartEncoder(fields={
- 'file': ('filename', open('/tmp/file.pdf', 'rb'), 'application/pdf')
- })
-
- r = requests.post("https://example.com", data=m,
- headers={'Content-Type': m.content_type})
-```
-
-## IP addresses for HTTP requests made from Pipedream workflows
-
-By default, [HTTP requests made from Pipedream can come from a large range of IP addresses](/privacy-and-security/#hosting-details). **If you need to restrict the IP addresses HTTP requests come from, you can [Use a Pipedream VPC](/workflows/vpc/) to route all outbound HTTP requests through a single IP address.**
-
-## Using an HTTP proxy to proxy requests through another host
-
-By default, HTTP requests made from Pipedream can come from a range of IP addresses. **If you need to make requests from a single IP address, you can route traffic through an HTTP proxy**:
-
-```python
-import requests
-
-def handler(pd: "pipedream"):
- user = "USERNAME" # Replace with your HTTP proxy username
- password = "PASSWORD" # Replace with your HTTP proxy password
- host = "10.10.1.10" # Replace with the HTTP proxy URL
- port = 1080 # Replace with the port of the HTTP proxy
- proxies = {
- "https": f"http://{user}:{password}@{host}:{port}",
- }
-
- r = requests.request("GET", "https://example.com", proxies=proxies)
-```
-
-## Paginating API requests
-
-When you fetch data from an API, the API may return records in "pages". For example, if you're trying to fetch a list of 1,000 records, the API might return those in groups of 100 items.
-
-Different APIs paginate data in different ways. You'll need to consult the docs of your API provider to see how they suggest you paginate through records.
-
-## Sending a GraphQL request
-
-Construct a GraphQL query as a string and then using the requests library to send it to the GraphQL server:
-
-```python
-import requests
-
-def handler(pd: "pipedream"):
- url = "https://beta.pokeapi.co/graphql/v1beta"
-
- query = """
-query samplePokeAPIquery {
- generations: pokemon_v2_generation {
- name
- pokemon_species: pokemon_v2_pokemonspecies_aggregate {
- aggregate {
- count
- }
- }
- }
-}
- """
-
- r = requests.post(url, json={"query": query})
- return r.json()
-```
-
-### Sending an authenticated GraphQL request
-
-Authenticate your connected accounts in Pipedream with GraphQL requests using `pd.inputs[appName]["$auth"]`:
-
-```python
-import requests
-
-def handler(pd: "pipedream"):
- url = "https://api.github.com/graphql"
- query = """
-query {
- viewer {
- login
- }
-}
- """
- token = pd.inputs["github"]["$auth"]["oauth_access_token"]
- headers = {"authorization": f"Bearer {token}"}
- r = requests.post(url, json={"query": query}, headers=headers)
- return r.json()
-```
-
-Alternatively, you can use Environment Variables as well for simple API key based GraphQL APIs.
diff --git a/docs-v2/pages/workflows/building-workflows/code/python/import-mappings.mdx b/docs-v2/pages/workflows/building-workflows/code/python/import-mappings.mdx
deleted file mode 100644
index 277da45e3257b..0000000000000
--- a/docs-v2/pages/workflows/building-workflows/code/python/import-mappings.mdx
+++ /dev/null
@@ -1,24 +0,0 @@
-import PythonMappings from '@/components/PythonMappings'
-
-# Use PyPI packages with differing import names
-
-When a Python package's name matches its import name, you can use it in your Python code steps without any special configuration.
-
-But some package names do not match their import names. Use [the `add-package` comment](#using-magic-comments) to work with these packages.
-
-## Using Magic Comments
-
-When a package's name doesn't match the import name, you can install the package with the `add-package` comment above your imports.
-
-For example the `google.cloud` package exports `bigquery`, but you can still use it in your Python code steps in workflows:
-
-```python
-# pipedream add-package google-cloud-bigquery
-from google.cloud import bigquery
-```
-
-## Search mappings
-
-Search by package name, and you'll find both the `add-package` comment and the `import` statement you'll need to use for the package.
-
-
diff --git a/docs-v2/pages/workflows/building-workflows/code/python/index.mdx b/docs-v2/pages/workflows/building-workflows/code/python/index.mdx
deleted file mode 100644
index 3a37256d2a88d..0000000000000
--- a/docs-v2/pages/workflows/building-workflows/code/python/index.mdx
+++ /dev/null
@@ -1,322 +0,0 @@
-import Callout from '@/components/Callout'
-import VideoPlayer from '@/components/VideoPlayer'
-
-# Python
-
-Pipedream supports [Python v{process.env.PYTHON_VERSION}](https://www.python.org) in workflows. Run any Python code, use any [PyPI package](https://pypi.org/), connect to APIs, and more.
-
-## Adding a Python code step
-
-1. Click the + icon to add a new step
-2. Click **Custom Code**
-3. In the new step, select the `python` language runtime in language dropdown
-
-## Python Code Step Structure
-
-A new Python Code step will have the following structure:
-
-```python
-def handler(pd: "pipedream"):
- # Reference data from previous steps
- print(pd.steps["trigger"]["context"]["id"])
- # Return data for use in future steps
- return {"foo": {"test": True}}
-```
-
-You can also perform more complex operations, including [leveraging your connected accounts to make authenticated API requests](/workflows/building-workflows/code/python/auth/), [accessing Data Stores](/workflows/building-workflows/code/python/using-data-stores/) and [installing PyPI packages](/workflows/building-workflows/code/python/#using-third-party-packages).
-
-- [Install PyPI Packages](/workflows/building-workflows/code/python/#using-third-party-packages)
-- [Import data exported from other steps](/workflows/building-workflows/code/python/#using-data-from-another-step)
-- [Export data to downstream steps](/workflows/building-workflows/code/python/#sending-data-downstream-to-other-steps)
-- [Retrieve data from a data store](/workflows/building-workflows/code/python/using-data-stores/#retrieving-data)
-- [Store data into a data store](/workflows/building-workflows/code/python/using-data-stores/#saving-data)
-- [Access API credentials from connected accounts](/workflows/building-workflows/code/python/auth/)
-
-## Logging and debugging
-
-You can use `print` at any time in a Python code step to log information as the script is running.
-
-The output for the `print` **logs** will appear in the `Results` section just beneath the code editor.
-
-
-
-## Using third party packages
-
-
-
-You can use any packages from [PyPI](https://pypi.org) in your Pipedream workflows. This includes popular choices such as:
-
-- [`requests` for making HTTP requests](https://pypi.org/project/requests/)
-- [`sqlalchemy`for retrieving or inserting data in a SQL database](https://pypi.org/project/sqlalchemy/)
-- [`pandas` for working with complex datasets](https://pypi.org/project/pandas/)
-
-To use a PyPI package, just include it in your step's code:
-
-```python
-import requests
-```
-
-And that's it. No need to update a `requirements.txt` or specify elsewhere in your workflow of which packages you need. Pipedream will automatically install the dependency for you.
-
-### If your package's `import` name differs from its PyPI package name
-
-Pipedream's package installation uses [the `pipreqs` package](https://github.com/bndr/pipreqs) to detect package imports and install the associated package for you. Some packages, like [`python-telegram-bot`](https://python-telegram-bot.org/), use an `import` name that differs from their PyPI name:
-
-```bash
-pip install python-telegram-bot
-```
-
-vs.
-
-```python
-import telegram
-```
-
-Use the built in [magic comment system to resolve these mismatches](/workflows/building-workflows/code/python/import-mappings/):
-
-```python
-# pipedream add-package python-telegram-bot
-import telegram
-```
-
-### Pinning package versions
-
-Each time you deploy a workflow with Python code, Pipedream downloads the PyPi packages you `import` in your step. **By default, Pipedream deploys the latest version of the PyPi package each time you deploy a change**.
-
-There are many cases where you may want to specify the version of the packages you're using. If you'd like to use a _specific_ version of a package in a workflow, you can add that version in a [magic comment](/workflows/building-workflows/code/python/import-mappings/), for example:
-
-```python
-# pipedream add-package pandas==2.0.0
-import pandas
-```
-
-
-Currently, you cannot use different versions of the same package in different steps in a workflow.
-
-
-## Making an HTTP request
-
-We recommend using the popular `requests` HTTP client package available in Python to send HTTP requests.
-
-No need to run `pip install`, just `import requests` at the top of your step's code and it's available for your code to use.
-
-See the [Making HTTP Requests with Python](/workflows/building-workflows/code/python/http-requests/) docs for more information.
-
-## Returning HTTP responses
-
-You can return HTTP responses from [HTTP-triggered workflows](/workflows/building-workflows/triggers/#http) using the `pd.respond()` method:
-
-```python
-def handler(pd: "pipedream"):
- pd.respond({
- "status": 200,
- "body": {
- "message": "Everything is ok"
- }
- })
-```
-
-Please note to always include at least the `body` and `status` keys in your `pd.respond` argument. The `body` must also be a JSON serializable object or dictionary.
-
-
-Unlike the Node.js equivalent, the Python `pd.respond` helper does not yet support responding with Streams.
-
-
-
-_Don't forget_ to [configure your workflow's HTTP trigger to allow a custom response](/workflows/building-workflows/triggers/#http-responses). Otherwise your workflow will return the default response.
-
-
-## Sharing data between steps
-
-A step can accept data from other steps in the same workflow, or pass data downstream to others.
-
-### Using data from another step
-
-In Python steps, data from the initial workflow trigger and other steps are available in the `pd.steps` object.
-
-In this example, we'll pretend this data is coming into our workflow's HTTP trigger via POST request.
-
-```json
-// POST .m.pipedream.net
-{
- "id": 1,
- "name": "Bulbasaur",
- "type": "plant"
-}
-```
-
-In our Python step, we can access this data in the `pd.steps` object passed into the `handler`. Specifically, this data from the POST request into our workflow is available in the `trigger` dictionary item.
-
-```python
-def handler(pd: "pipedream"):
- # retrieve the data from the HTTP request in the initial workflow trigger
- pokemon_name = pd.steps["trigger"]["event"]["name"]
- pokemon_type = pd.steps["trigger"]["event"]["type"]
-
- print(f"{pokemon_name} is a {pokemon_type} type Pokemon")
-```
-
-### Sending data downstream to other steps
-
-To share data created, retrieved, transformed or manipulated by a step to others downstream, `return` the data in the `handler` function:
-
-```python
-# This step is named "code" in the workflow
-import requests
-
-def handler(pd: "pipedream"):
- r = requests.get("https://pokeapi.co/api/v2/pokemon/charizard")
- # Store the JSON contents into a variable called "pokemon"
- pokemon = r.json()
-
- # Expose the data to other steps in the "pokemon" key from this step
- return {
- "pokemon": pokemon
- }
-```
-
-Now this `pokemon` data is accessible to downstream steps within `pd.steps["code"]["pokemon"]`
-
-
-You can only export JSON-serializable data from steps. Things like:
-
-- strings
-- numbers
-- lists
-- dictionaries
-
-
-## Using environment variables
-
-You can leverage any [environment variables defined in your Pipedream account](/workflows/environment-variables/) in a Python step. This is useful for keeping your secrets out of code as well as keeping them flexible to swap API keys without having to update each step individually.
-
-To access them, use the `os` module.
-
-```python
-import os
-
-def handler(pd: "pipedream"):
- token = os.environ["AIRTABLE_API_KEY"]
-
- print(token)
-```
-
-Or an even more useful example, using the stored environment variable to make an authenticated API request.
-
-### Using API key authentication
-
-If an particular service requires you to use an API key, you can pass it via the headers of the request.
-
-This proves your identity to the service so you can interact with it:
-
-```python
-import requests
-import os
-
-def handler(pd: "pipedream"):
- token = os.environ["AIRTABLE_API_KEY"]
-
- url = "https://api.airtable.com/v0/your-airtable-base/your-table"
-
- headers = { "Authorization": f"Bearer {token}"}
- r = requests.get(url, headers=headers)
-
- print(r.text)
-```
-
-
-There are 2 different ways of using the `os` module to access your environment variables.
-
-`os.environ["ENV_NAME_HERE"]` will raise an error that stops your workflow if that key doesn't exist in your Pipedream account.
-
-Whereas `os.environ.get("ENV_NAME_HERE")` will _not_ throw an error and instead returns an empty string.
-
-If your code relies on the presence of a environment variable, consider using `os.environ["ENV_NAME_HERE"]` instead.
-
-
-## Handling errors
-
-You may need to exit a workflow early. In a Python step, just a `raise` an error to halt a step's execution.
-
-```python
-raise NameError("Something happened that should not. Exiting early.")
-```
-
-All exceptions from your Python code will appear in the **logs** area of the results.
-
-## Ending a workflow early
-
-Sometimes you want to end your workflow early, or otherwise stop or cancel the execution of a workflow under certain conditions. For example:
-
-- You may want to end your workflow early if you don't receive all the fields you expect in the event data.
-- You only want to run your workflow for 5% of all events sent from your source.
-- You only want to run your workflow for users in the United States. If you receive a request from outside the U.S., you don't want the rest of the code in your workflow to run.
-- You may use the `user_id` contained in the event to look up information in an external API. If you can't find data in the API tied to that user, you don't want to proceed.
-
-**In any code step, calling `return pd.flow.exit()` will end the execution of the workflow immediately.** No remaining code in that step, and no code or destination steps below, will run for the current event.
-
-
-It's a good practice to use `return pd.flow.exit()` to immediately exit the workflow.
-In contrast, `pd.flow.exit()` on its own will end the workflow only after executing all remaining code in the step.
-
-
-```python
-def handler(pd: "pipedream"):
- return pd.flow.exit("reason")
- print("This code will not run, since pd.flow.exit() was called above it")
-```
-
-You can pass any string as an argument to `pd.flow.exit()`:
-
-```python
-def handler(pd: "pipedream"):
- return pd.flow.exit("Exiting early. Goodbye.")
- print("This code will not run, since pd.flow.exit() was called above it")
-```
-
-Or exit the workflow early within a conditional:
-
-```python
-import random
-
-def handler(pd: "pipedream"):
- # Flip a coin, running pd.flow.exit() for 50% of events
- if random.randint(0, 100) <= 50:
- return pd.flow.exit("reason")
-
- print("This code will only run 50% of the time");
-```
-
-## File storage
-
-You can also store and read files with Python steps. This means you can upload photos, retrieve datasets, accept files from an HTTP request and more.
-
-The `/tmp` directory is accessible from your workflow steps for saving and retrieving files.
-
-You have full access to read and write both files in `/tmp`.
-
-See the [Working with the filesystem in Python](/workflows/building-workflows/code/python/working-with-files/) docs for more information.
-
-## FAQ
-
-### What's the difference between `def handler(pd)` and the `pipedream` package for Python code steps?
-
-The pd object passed to the handler method lets you exit the [workflow early](/workflows/building-workflows/code/python/#ending-a-workflow-early), [integrate a Data Store](/workflows/building-workflows/code/python/using-data-stores/), and [use connected accounts](/workflows/building-workflows/code/python/auth/) into your Python code steps.
-
-However, at this time there are issues with our Python interpreter that is causing an `ECONNRESET` error.
-
-If you need [to use data from other steps](/workflows/building-workflows/code/python/#using-data-from-another-step) or [export data to other steps](/workflows/building-workflows/code/python/#sending-data-downstream-to-other-steps) in your workflow, we recommend using the `pipedream` package module.
-
-If you need to use a Data Store in your workflow, we recommend using a [pre-built action](/workflows/data-management/data-stores/) to retrieve or store data or [Node.js's Data Store](/workflows/building-workflows/code/nodejs/using-data-stores/) capabilities.
-
-### I've tried installing a Python package with a normal import and the magic comment system, but I still can't. What can I do?
-
-Some Python packages require binaries present within the environment in order to function properly. Or they include binaries but those binaries are not compatible with the Pipedream workflow environment.
-
-Unfortunately we cannot support these types of packages at this time, but if you have an issue importing a PyPI package into a Python code step [please open a issue](https://github.com/PipedreamHQ/pipedream/issues/new/choose).
-
-### Can I publish my Python code as a reusable pre-built action or trigger like you can with Node.js?
-
-Not at this time. Pipedream only supports Python as a code step language. The Components system only supports Node.js at this time.
-
-You can still duplicate Python code steps within the same workflow, but to reuse a code step, you'll need to copy and paste the Python code to another workflow.
diff --git a/docs-v2/pages/workflows/building-workflows/code/python/rerun.mdx b/docs-v2/pages/workflows/building-workflows/code/python/rerun.mdx
deleted file mode 100644
index b14720e96bf58..0000000000000
--- a/docs-v2/pages/workflows/building-workflows/code/python/rerun.mdx
+++ /dev/null
@@ -1,179 +0,0 @@
-import Callout from '@/components/Callout'
-
-# Pause, resume, and rerun a workflow
-
-You can use `pd.flow.suspend` and `pd.flow.rerun` to pause a workflow and resume it later.
-
-This is useful when you want to:
-
-- Pause a workflow until someone manually approves it
-- Poll an external API until some job completes, and proceed with the workflow when it's done
-- Trigger an external API to start a job, pause the workflow, and resume it when the external API sends an HTTP callback
-
-We'll cover all of these examples below.
-
-## `pd.flow.suspend`
-
-Use `pd.flow.suspend` when you want to pause a workflow and proceed with the remaining steps only when manually approved or cancelled.
-
-For example, you can suspend a workflow and send yourself a link to manually resume or cancel the rest of the workflow:
-
-```python
-def handler(pd: 'pipedream'):
- urls = pd.flow.suspend()
- pd.send.email(
- subject="Please approve this important workflow",
- text=f"Click here to approve the workflow: ${urls["resume_url"]}, and cancel here: ${urls["cancel_url"]}"
- )
- # Pipedream suspends your workflow at the end of the step
-```
-
-You'll receive an email like this:
-
-
-
-And can resume or cancel the rest of the workflow by clicking on the appropriate link.
-
-### `resume_url` and `cancel_url`
-
-In general, calling `pd.flow.suspend` returns a `cancel_url` and `resume_url` that lets you cancel or resume paused executions. Since Pipedream pauses your workflow at the _end_ of the step, you can pass these URLs to any external service before the workflow pauses. If that service accepts a callback URL, it can trigger the `resume_url` when its work is complete.
-
-These URLs are specific to a single execution of your workflow. While the workflow is paused, you can load these in your browser or send any HTTP request to them:
-
-- Sending an HTTP request to the `cancel_url` will cancel that execution
-- Sending an HTTP request to the `resume_url` will resume that execution
-
-If you resume a workflow, any data sent in the HTTP request is passed to the workflow and returned in the `$resume_data` [step export](/workflows/#step-exports) of the suspended step. For example, if you call `pd.flow.suspend` within a step named `code`, the `$resume_data` export should contain the data sent in the `resume_url` request:
-
-
-
-### Default timeout of 24 hours
-
-By default, `pd.flow.suspend` will automatically cancel the workflow after 24 hours. You can set your own timeout (in milliseconds) as the first argument:
-
-```python
-def handler(pd: 'pipedream'):
- # 7 days
- TIMEOUT = 1000 * 60 * 60 * 24 * 7
- pd.flow.suspend(TIMEOUT)
-```
-
-## `pd.flow.rerun`
-
-Use `pd.flow.rerun` when you want to run a specific step of a workflow multiple times. This is useful when you need to start a job in an external API and poll for its completion, or have the service call back to the step and let you process the HTTP request within the step.
-
-### Polling for the status of an external job
-
-Sometimes you need to poll for the status of an external job until it completes. `pd.flow.rerun` lets you rerun a specific step multiple times:
-
-```python
-import requests
-
-def handler(pd: 'pipedream'):
- MAX_RETRIES = 3
- # 10 seconds
- DELAY = 1000 * 10
- run = pd.context['run']
- print(pd.context)
- # pd.context.run.runs starts at 1 and increments when the step is rerun
- if run['runs'] == 1:
- # pd.flow.rerun(delay, context (discussed below), max retries)
- pd.flow.rerun(DELAY, None, MAX_RETRIES)
-
- elif run['runs'] == MAX_RETRIES + 1:
- raise Exception("Max retries exceeded")
-
- else:
- # Poll external API for status
- response = requests.get("https://example.com/status")
- # If we're done, continue with the rest of the workflow
- if response.json().status == "DONE":
- return response.json()
-
- # Else retry later
- pd.flow.rerun(DELAY, None, MAX_RETRIES)
-```
-
-`pd.flow.rerun` accepts the following arguments:
-
-```python
-pd.flow.rerun(
- delay, # The number of milliseconds until the step will be rerun
- context, # JSON-serializable data you need to pass between runs
- maxRetries, # The total number of times the step will rerun. Defaults to 10
-)
-```
-
-### Accept an HTTP callback from an external service
-
-When you trigger a job in an external service, and that service can send back data in an HTTP callback to Pipedream, you can process that data within the same step using `pd.flow.retry`:
-
-```python
-import requests
-
-def handler(pd: 'pipedream'):
- TIMEOUT = 86400 * 1000
- run = pd.context['run']
- # pd.context['run']['runs'] starts at 1 and increments when the step is rerun
- if run['runs'] == 1:
- links = pd.flow.rerun(TIMEOUT, None, 1)
- # links contains a dictionary with two entries: resume_url and cancel_url
-
- # Send resume_url to external service
- await request.post("your callback URL", json=links)
-
- # When the external service calls back into the resume_url, you have access to
- # the callback data within pd.context.run['callback_request']
- elif 'callback_request' in run:
- return run['callback_request']
-
-```
-
-### Passing `context` to `pd.flow.rerun`
-
-Within a Python code step, `pd.context.run.context` contains the `context` passed from the prior call to `rerun`. This lets you pass data from one run to another. For example, if you call:
-
-```python
-pd.flow.rerun(1000, { "hello": "world" })
-```
-
-`pd.context.run.context` will contain:
-
-
-
-
-
-### `maxRetries`
-
-By default, `maxRetries` is **10**.
-
-When you exceed `maxRetries`, the workflow proceeds to the next step. If you need to handle this case with an exception, `raise` an Exception from the step:
-
-```python
-def handler(pd: 'pipedream'):
- MAX_RETRIES = 3
- run = pd.context['run']
- if run['runs'] == 1:
- pd.flow.rerun(1000, None, MAX_RETRIES)
-
- else if (run['runs'] == MAX_RETRIES + 1):
- raise Exception("Max retries exceeded")
-```
-
-## Behavior when testing
-
-When you're building a workflow and test a step with `pd.flow.suspend` or `pd.flow.rerun`, it will not suspend the workflow, and you'll see a message like the following:
-
-> Workflow execution canceled — this may be due to `pd.flow.suspend()` usage (not supported in test)
-
-These functions will only suspend and resume when run in production.
-
-## Credits usage when using `pd.flow.suspend` / `pd.flow.rerun`
-
-You are not charged for the time your workflow is suspended during a `pd.flow.suspend` or `pd.flow.rerun`. Only when workflows are resumed will compute time count toward [credit usage](/pricing/#credits-and-billing).
-
-
-When a suspended workflow reawakens, it will reset the credit counter.
-
-Each rerun or reawakening from a suspension will count as a new fresh credit.
-
diff --git a/docs-v2/pages/workflows/building-workflows/code/python/using-data-stores.mdx b/docs-v2/pages/workflows/building-workflows/code/python/using-data-stores.mdx
deleted file mode 100644
index bab598ff78d24..0000000000000
--- a/docs-v2/pages/workflows/building-workflows/code/python/using-data-stores.mdx
+++ /dev/null
@@ -1,368 +0,0 @@
-import Callout from '@/components/Callout'
-
-# Using Data Stores
-
-You can store and retrieve data from [Data Stores](/workflows/data-management/data-stores/) in Python without connecting to a 3rd party database.
-
-Add a data store as a input to a Python step, then access it in your Python `handler` with `pd.inputs["data_store"]`.
-
-```python
-def handler(pd: "pipedream"):
- # Access the data store under the pd.inputs
- data_store = pd.inputs["data_store"]
-
- # Store a value under a key
- data_store["key"] = "Hello World"
-
- # Retrieve the value and print it to the step's Logs
- print(data_store["key"])
-
-```
-
-## Adding a Data Store
-
-Click _Add Data Store_ near the top of a Python step:
-
-
-
-This will add the selected data store to your Python code step.
-
-## Saving data
-
-Data stores are key-value stores. Saving data within a data store is just like setting a property on a dictionary:
-
-```python
-from datetime import datetime
-
-def handler(pd: "pipedream"):
- # Access the data store under the pd.inputs
- data_store = pd.inputs["data_store"]
-
- # Store a timestamp
- data_store["last_ran_at"] = datetime.now().isoformat()
-```
-
-### Setting expiration (TTL) for records
-
-You can set an expiration time for a record by passing a TTL (Time-To-Live) option as the third argument to the `set` method. The TTL value is specified in seconds:
-
-```python
-def handler(pd: "pipedream"):
- # Access the data store under the pd.inputs
- data_store = pd.inputs["data_store"]
-
- # Store a temporary value that will expire after 1 hour (3600 seconds)
- data_store.set("temporaryToken", "abc123", ttl=3600)
-
- # Store a value that will expire after 1 day
- data_store.set("dailyMetric", 42, ttl=86400)
-```
-
-When the TTL period elapses, the record will be automatically deleted from the data store.
-
-### Updating TTL for existing records
-
-You can update the TTL for an existing record using the `set_ttl` method:
-
-```python
-def handler(pd: "pipedream"):
- # Access the data store under the pd.inputs
- data_store = pd.inputs["data_store"]
-
- # Update an existing record to expire after 30 minutes
- data_store.set_ttl("temporaryToken", ttl=1800)
-
- # Remove expiration from a record
- data_store.set_ttl("temporaryToken", ttl=None)
-```
-
-This is useful for extending the lifetime of temporary data or removing expiration from records that should now be permanent.
-
-## Retrieving keys
-
-Fetch all the keys in a given data store using the `keys` method:
-
-```python
-def handler(pd: "pipedream"):
- # Access the data store under the pd.inputs
- data_store = pd.inputs["data_store"]
-
- # Retrieve all keys in the data store
- keys = pd.inputs["data_store"].keys()
-
- # Print a comma separated string of all keys
- print(*keys, sep=",")
-```
-
-
-The `datastore.keys()` method does not return a list, but instead it returns a `Keys` iterable object. You cannot export a `data_store` or `data_store.keys()` from a Python code step at this time.
-
-Instead, build a dictionary or list when using the `data_store.keys()` method.
-
-
-## Checking for the existence of specific keys
-
-If you need to check whether a specific `key` exists in a data store, use `if` and `in` as a conditional:
-
-```python
-def handler(pd: "pipedream"):
- # Access the data store under the pd.inputs
- data_store = pd.inputs["data_store"]
-
- # Search for a key in a conditional
- if "last_ran_at" in data_store:
- print(f"Last ran at {data_store['last_ran_at']}")
-```
-
-## Retrieving data
-
-Data stores are very performant at retrieving single records by keys. However you can also use key iteration to retrieve all records within a Data Store as well.
-
-
-Data stores are intended to be a fast and convienent data storage option for quickly adding data storage capability to your workflows without adding another database dependency.
-
-However, if you need more advanced querying capabilities for querying records with nested dictionaries or filtering based on a record value - consider using a full fledged database. Pipedream can integrate with MySQL, Postgres, DynamoDb, MongoDB and more.
-
-
-### Get a single record
-
-You can retrieve single records from a data store by key:
-
-```python
-def handler(pd: "pipedream"):
- # Access the data store under the pd.inputs
- data_store = pd.inputs["data_store"]
-
- # Retrieve the timestamp value by the key name
- last_ran_at = data_store["last_ran_at"]
-
- # Print the timestamp
- print(f"Last ran at {last_ran_at}")
-```
-
-Alternatively, use the `data_store.get()` method to retrieve a specific key's contents:
-
-```python
-def handler(pd: "pipedream"):
- # Access the data store under the pd.inputs
- data_store = pd.inputs["data_store"]
-
- # Retrieve the timestamp value by the key name
- last_ran_at = data_store.get("last_ran_at")
-
- # Print the timestamp
- print(f"Last ran at {last_ran_at}")
-```
-
-
-What's the difference between `data_store["key"]` and `data_store.get("key")`?
-
-- `data_store["key"]` will throw a `TypeError` if the key doesn't exist in the data store.
-- `data_store.get("key")` will instead return `None` if the key doesn't exist in the data store.
-- `data_store.get("key", "default_value")` will return `"default_value"` if the key doesn't exist on the data store.
-
-
-### Retrieving all records
-
-You can retrieve all records within a data store by using an async iterator:
-
-```python
-def handler(pd: "pipedream"):
- data_store = pd.inputs["data_store"]
- records = {}
- for k,v in data_store.items():
- records[k] = v
- return records
-```
-
-This code step example exports all records within the data store as a dictionary.
-
-## Deleting or updating values within a record
-
-To delete or update the _value_ of an individual record, assign `key` a new value or `''` to remove the value but retain the key.
-
-```python
-def handler(pd: "pipedream"):
- # Access the data store under the pd.inputs
- data_store = pd.inputs["data_store"]
-
- # Assign a new value to the key
- data_store["myKey"] = "newValue"
-
- # Remove the value but retain the key
- data_store["myKey"] = ""
-```
-
-### Working with nested dictionaries
-
-You can store dictionaries within a record. This allows you to create complex records.
-
-However, to update specific attributes within a nested dictionary, you'll need to replace the record entirely.
-
-For example, the code the below will **not** update the `name` attribute on the stored dictionary stored under the key `pokemon`:
-
-```python
-def handler(pd: "pipedream"):
- # The current dictionary looks like this:
- # pokemon: {
- # "name": "Charmander"
- # "type": "fire"
- # }
-
- # You'll see "Charmander" in the logs
- print(pd.inputs['data_store']['pokemon']['name'])
-
- # attempting to overwrite the pokemon's name will not apply
- pd.inputs['data_store']['pokemon']['name'] = 'Bulbasaur'
-
- # Exports "Charmander"
- return pd.inputs['data_store']['pokemon']['name']
-```
-
-Instead, _overwrite_ the entire record to modify attributes:
-
-```python
-def handler(pd: "pipedream"):
- # retrieve the record item by it's key first
- pokemon = pd.inputs['data_store']['pokemon']
-
- # now update the record's attribute
- pokemon['name'] = 'Bulbasaur'
-
- # and out right replace the record with the new modified dictionary
- pd.inputs['data_store']['pokemon'] = pokemon
-
- # Now we'll see "Bulbasaur" exported
- return pd.inputs['data_store']['pokemon']['name']
-```
-
-## Deleting specific records
-
-To delete individual records in a data store, use the `del` operation for a specific `key`:
-
-```python
-def handler(pd: "pipedream"):
- # Access the data store under the pd.inputs
- data_store = pd.inputs["data_store"]
-
- # Delete the last_ran_at timestamp key
- del data_store["last_ran_at"]
-```
-
-## Deleting all records from a specific data store
-
-If you need to delete all records in a given data store, you can use the `clear` method.
-
-```python
-def handler(pd: "pipedream"):
- # Access the data store under the pd.inputs
- data_store = pd.inputs["data_store"]
-
- # Delete the entire contents of the datas store
- data_store.clear()
-```
-
-
-`data_store.clear()` is an **irreversible** change, **even when testing code** in the workflow builder.
-
-
-## Viewing store data
-
-You can view the contents of your data stores in your [Pipedream dashboard](https://pipedream.com/stores).
-
-From here you can also manually edit your data store's data, rename stores, delete stores or create new stores.
-
-## Workflow counter example
-
-You can use a data store as a counter. For example, this code counts the number of times the workflow runs:
-
-```python
-def handler(pd: "pipedream"):
- # Access the data store under the pd.inputs
- data_store = pd.inputs["data_store"]
-
- # if the counter doesn't exist yet, start it at one
- if data_store.get("counter") == None:
- data_store["counter"] = 1
-
- # Otherwise, increment it by one
- else:
- count = data_store["counter"]
- data_store["counter"] = count + 1
-```
-
-## Dedupe data example
-
-Data Stores are also useful for storing data from prior runs to prevent acting on duplicate data, or data that's been seen before.
-
-For example, this workflow's trigger contains an email address from a potential new customer. But we want to track all emails collected so we don't send a welcome email twice:
-
-```python
-def handler(pd: "pipedream"):
- # Access the data store
- data_store = pd.inputs["data_store"]
-
- # Reference the incoming email from the HTTP request
- new_email = pd.steps["trigger"]["event"]["body"]["new_customer_email"]
-
- # Retrieve the emails stored in our data store
- emails = data_store.get('emails', [])
-
- # If this email has been seen before, exit early
- if new_email in emails:
- print(f"Already seen {new_email}, exiting")
- return False
-
- # This email is new, append it to our list
- else:
- print(f"Adding new email to data store {new_email}")
- emails.append(new_email)
- data_store["emails"] = emails
- return new_email
-```
-
-## TTL use case: temporary caching and rate limiting
-
-TTL functionality is particularly useful for implementing temporary caching and rate limiting. Here's an example of a simple rate limiter that prevents a user from making more than 5 requests per hour:
-
-```python
-def handler(pd: "pipedream"):
- # Access the data store
- data_store = pd.inputs["data_store"]
- user_id = pd.steps["trigger"]["event"]["user_id"]
- rate_key = f"ratelimit:{user_id}"
-
- # Try to get current rate limit counter
- requests_num = data_store.get("rate_key")
-
- if not requests_num:
- # First request from this user in the time window
- data_store.set(rate_key, 1, ttl=3600) # Expire after 1 hour
- return { "allowed": True, "remaining": 4 }
-
- if requests_num >= 5:
- # Rate limit exceeded
- return { "allowed": False, "error": "Rate limit exceeded", "retry_after": "1 hour" }
-
- # Increment the counter
- data_store["rate_key"] = requests_num + 1
- return { "allowed": True, "remaining": 4 - requests_num }
-```
-
-This pattern can be extended for various temporary caching scenarios like:
-- Session tokens with automatic expiration
-- Short-lived feature flags
-- Temporary access grants
-- Time-based promotional codes
-
-### Supported data types
-
-Data stores can hold any JSON-serializable data within the storage limits. This includes data types including:
-
-- Strings
-- Dictionaries
-- Lists
-- Integers
-- Floats
-
-But you cannot serialize Modules, Functions, Classes, or other more complex objects.
diff --git a/docs-v2/pages/workflows/building-workflows/code/python/working-with-files.mdx b/docs-v2/pages/workflows/building-workflows/code/python/working-with-files.mdx
deleted file mode 100644
index 6619755b512c1..0000000000000
--- a/docs-v2/pages/workflows/building-workflows/code/python/working-with-files.mdx
+++ /dev/null
@@ -1,115 +0,0 @@
-import Callout from '@/components/Callout'
-
-# Working with the filesystem in Python
-
-You can work with files within a workflow. For instance, downloading content from some service to upload to another. Here are some sample code for common file operations.
-
-## The `/tmp` directory
-
-Within a workflow, you have full read-write access to the `/tmp` directory. You have {process.env.TMP_SIZE_LIMIT} of available space in `/tmp` to save any file.
-
-### Managing `/tmp` across workflow runs
-
-The `/tmp` directory is stored on the virtual machine that runs your workflow. We call this the execution environment ("EE"). More than one EE may be created to handle high-volume workflows. And EEs can be destroyed at any time (for example, after about 10 minutes of receiving no events). This means that you should not expect to have access to files across executions. At the same time, files _may_ remain, so you should clean them up to make sure that doesn't affect your workflow. **Use [the `tempfile` module](https://docs.python.org/3/library/tempfile.html) to cleanup files after use, or [delete the files manually](#deleting-a-file).**
-
-## Writing a file to `/tmp`
-
-```python
-import requests
-
-def handler(pd: "pipedream"):
- # Download the Python logo
- r = requests.get("https://www.python.org/static/img/python-logo@2x.png")
-
- # Create a new file python-logo.png in the /tmp/data directory
- with open("/tmp/python-logo.png", "wb") as f:
- # Save the content of the HTTP response into the file
- f.write(r.content)
-```
-
-Now `/tmp/python-logo.png` holds the official Python logo.
-
-## Reading a file from `/tmp`
-
-You can also open files you have previously stored in the `/tmp` directory. Let's open the `python-logo.png` file.
-
-```python
-import os
-
-def handler(pd: "pipedream"):
- with open("/tmp/python-logo.png") as f:
- # Store the contents of the file into a variable
- file_data = f.read()
-```
-
-## Listing files in `/tmp`
-
-If you need to check what files are currently in `/tmp` you can list them and print the results to the **Logs** section of **Results**:
-
-```python
-import os
-
-def handler(pd: "pipedream"):
- # Prints the files in the tmp directory
- print(os.listdir("/tmp"))
-```
-
-## Deleting a file
-
-```python
-import os
-
-def handler(pd: "pipedream"):
- print(os.unlink("/tmp/your-file"))
-```
-
-## Downloading a file to `/tmp`
-
-[See this example](/workflows/building-workflows/code/python/http-requests/#downloading-a-file-to-the-tmp-directory) to learn how to download a file to `/tmp`.
-
-## Uploading a file from `/tmp`
-
-[See this example](/workflows/building-workflows/code/python/http-requests/#uploading-a-file-from-the-tmp-directory) to learn how to upload a file from `/tmp` in an HTTP request.
-
-## Downloading a file, uploading it in another `multipart/form-data` request
-
-```python
-import requests
-from requests_toolbelt.multipart.encoder import MultipartEncoder
-import os
-
-def handler(pd: "pipedream"):
- download_url = "https://example.com"
- upload_url = "http://httpbin.org/post"
- file_path = "/tmp/index.html"
- content_type = "text/html"
-
- # DOWNLOAD
- with requests.get(download_url, stream=True) as response:
- response.raise_for_status()
- with open(file_path, "wb") as file:
- for chunk in response.iter_content(chunk_size=8192):
- file.write(chunk)
-
- # UPLOAD
- multipart_data = MultipartEncoder(fields={
- 'file': (os.path.basename(file_path), open(file_path, 'rb'), content_type)
- })
- response = requests.post(
- upload_url,
- data=multipart_data,
- headers={'Content-Type': multipart_data.content_type}
- )
-```
-
-## `/tmp` limitations
-
-The `/tmp` directory can store up to {process.env.TMP_SIZE_LIMIT} of storage. Also the storage may be wiped or may not exist between workflow executions.
-
-To avoid errors, assume that the `/tmp` directory is empty between workflow runs. Please refer to the [disk limits](/workflows/limits/#disk) for details.
-
-
-Are File Stores helpers available for Python to download, upload and manage files?
-
-At this time no, only Node.js includes a helper to interact with the [File Store](/workflows/data-management/file-stores/) programmatically within workflows.
-
diff --git a/docs-v2/pages/workflows/building-workflows/control-flow/_meta.tsx b/docs-v2/pages/workflows/building-workflows/control-flow/_meta.tsx
deleted file mode 100644
index ebd3a73ede551..0000000000000
--- a/docs-v2/pages/workflows/building-workflows/control-flow/_meta.tsx
+++ /dev/null
@@ -1,9 +0,0 @@
-export default {
- "index": "Overview",
- "ifelse": "Branching - If/Else",
- "switch": "Branching - Switch",
- "parallel": "Branching - Parallel",
- "delay": "Delay",
- "filter": "Filter",
- "end-workflow": "End Workflow",
-} as const
diff --git a/docs-v2/pages/workflows/building-workflows/control-flow/delay.mdx b/docs-v2/pages/workflows/building-workflows/control-flow/delay.mdx
deleted file mode 100644
index 92aea8228f42b..0000000000000
--- a/docs-v2/pages/workflows/building-workflows/control-flow/delay.mdx
+++ /dev/null
@@ -1,50 +0,0 @@
-import VideoPlayer from "@/components/VideoPlayer";
-
-### Delay
-
-
-
-Sometimes you need to wait a specific amount of time before the next step of your workflow proceeds. Pipedream supports this in one of two ways:
-
-1. The built-in **Delay** actions
-2. The `$.flow.delay` function in Node.js
-
-{process.env.DELAY_MIN_MAX_TIME}. For example, we at Pipedream use this functionality to delay welcome emails to our customers until they've had a chance to use the product.
-
-#### Delay actions
-
-You can pause your workflow without writing code using the **Delay** actions:
-
-1. Click the **+** button below any step
-2. Search for the **Delay** app
-3. Select the **Delay Workflow** action
-4. Configure the action to delay any amount of time, up to one year
-
-
-
-#### `$.flow.delay`
-
-If you need to delay a workflow within Node.js code, or you need detailed control over how delays occur, [see the docs on `$.flow.delay`](/workflows/building-workflows/code/nodejs/delay/).
-
-#### The state of delayed executions
-
-Delayed executions can hold one of three states:
-
-- **Paused**: The execution is within the delay window, and the workflow is still paused
-- **Resumed**: The workflow has been resumed at the end of its delay window automatically, or resumed manually
-- **Cancelled**: The execution was cancelled manually
-
-You'll see the current state of an execution by [viewing its event data](/workflows/building-workflows/inspect/).
-
-#### Cancelling or resuming execution manually
-
-The [**Delay** actions](#delay-actions) and [`$.flow.delay`](/workflows/building-workflows/code/nodejs/delay/) return two URLs each time they run:
-
-
-
-These URLs are specific to a single execution of your workflow. While the workflow is paused, you can load these in your browser or send an HTTP request to either:
-
-- Hitting the `cancel_url` will immediately cancel that execution
-- Hitting the `resume_url` will immediately resume that execution early
-
-If you use [`$.flow.delay`](/workflows/building-workflows/code/nodejs/delay/), you can send these URLs to your own system to handle cancellation / resumption. You can even email your customers to let them cancel / resume workflows that run on their behalf.
diff --git a/docs-v2/pages/workflows/building-workflows/control-flow/end-workflow.mdx b/docs-v2/pages/workflows/building-workflows/control-flow/end-workflow.mdx
deleted file mode 100644
index 0123b8e25dc83..0000000000000
--- a/docs-v2/pages/workflows/building-workflows/control-flow/end-workflow.mdx
+++ /dev/null
@@ -1,21 +0,0 @@
-# End Workflow
-
-To terminate the workflow prior to the last step, use the **End Workflow** pre-built action or `$.flow.exit()` in code.
-
-
-
-## End Workflow Using a Pre-Built Action
-
-- Select and configure the End Workflow action from the step selector
-- When the step runs, the workflow execution will stop
-- You may configure an optional reason for ending the workflow execution. This reason will be surfaced when inspecting the event execution.
-
- 
-
-
-## End Workflow in Code
-
-Check the reference for your preferred language to learn how to end the workflow execution in code.
-
-- [Ending a workflow in Node.js](/workflows/building-workflows/code/nodejs/#ending-a-workflow-early)
-- [Ending a workflow in Python](/workflows/building-workflows/code/python/#ending-a-workflow-early)
diff --git a/docs-v2/pages/workflows/building-workflows/control-flow/filter.mdx b/docs-v2/pages/workflows/building-workflows/control-flow/filter.mdx
deleted file mode 100644
index f92c8bc630cca..0000000000000
--- a/docs-v2/pages/workflows/building-workflows/control-flow/filter.mdx
+++ /dev/null
@@ -1,21 +0,0 @@
-import VideoPlayer from "@/components/VideoPlayer";
-
-### Filter
-
-
-
-Use the Filter action to quickly stop or continue workflows on certain conditions.
-
-
-
-Add a filter action to your workflow by searching for the **Filter** app in a new step.
-
-The **Filter** app includes several built-in actions: Continue Workflow on Condition, Exit Workflow on Condition and Exit Workflow on Custom Condition.
-
-In each of these actions, the **Value** is the subject of the condition, and the **Condition** is the operand to compare the value against.
-
-For example, to only process orders with a `status = ready`
-
-#### Continue Workflow on Condition
-
-With this action, only when values that _pass_ a set condition will the workflow continue to execute steps after this filter.
diff --git a/docs-v2/pages/workflows/building-workflows/control-flow/ifelse.mdx b/docs-v2/pages/workflows/building-workflows/control-flow/ifelse.mdx
deleted file mode 100644
index b2f42498a0d4e..0000000000000
--- a/docs-v2/pages/workflows/building-workflows/control-flow/ifelse.mdx
+++ /dev/null
@@ -1,86 +0,0 @@
-import Callout from '@/components/Callout'
-import VideoPlayer from "@/components/VideoPlayer";
-import { Steps } from 'nextra/components'
-
-# If/Else
-
-## Overview
-
-**If/Else** is single path branching operator. You can create multiple execution branches, but Pipedream will execute the **first** branch that matches the configured rules. The order in which rules are defined will affect the path of execution.
-
-If/Else operator is useful when you need to branch based on the value of multiple input variables . You must define both the input variable and condition to evaluate for every rule. If you only need to test for the value of a single input variable (e.g., if you are branching based on the path of an inbound request), the [Switch operator](./switch/) may be a better choice.
-
-
-
-## Capabilities
-
-- Define rules to conditionally execute one of many branches
-- Evaluate one or more expressions for each condition (use boolean operators to combine muliple rules)
-- Use the **Else** condition as a fallback
-- Merge and continue execution in the parent flow after the branching operation
-
-
-If you disable the **Else** branch and there are no matching cases, the workflow will continue execution in the parent workflow after the **end** phase of the If/Else block
-
-
-
-The If/Else operator is a control flow **Block** with **start** and **end** phases. [Learn more about Blocks](./#blocks).
-
-
-## Demo
-
-
-
-## Getting Started
-
-
-
-### Generate a test event
-
-Add a trigger and generate an event to help you build and test your workflow:
-
-
-
-### Add the If/Else control flow block
-
-Click the + button to add a step to the canvas and select If/Else from the Control Flow section on the right. In the “start” phase, configure rules for each branch (optionally toggle the else branch) and then test the step.
-
-
-
-
-**IMPORTANT:** If you disable the **Else** condition and an event does not match any of the rules, the workflow will continue to the next step after the **If/Else** section. If you want to end workflow execution if no other conditions evaluate to `true`, enable the Else condition and add a **Terminate Workflow** action.
-
-
-### Build and test along the execution path
-
-Add a step to the success branch and test it
-
-
-
-### Merge and continue the parent flow after the branching operation
-
-Test the end phase to export results from the If/Else control flow block.
-
-
-
-Add a step and reference the exports from `ifelse` using the steps object.
-
-
-
-### Build and test alternate paths
-
-Generate or select an alternate event to generate data to help you test other branches as you build. When you select a new event, the steps in the root workflow segments go stale. Steps in control flow blocks will only go stale if they are in the known path of execution; i.e., if you test a start phase, the steps in the success path will become stale.
-
-
-
-Build, test and deploy the workflow.
-
-
-
-### Test the deployed workflow
-
-Generate test events to trigger the deployed workflow and inspect the executions.
-
-
-
-
diff --git a/docs-v2/pages/workflows/building-workflows/control-flow/index.mdx b/docs-v2/pages/workflows/building-workflows/control-flow/index.mdx
deleted file mode 100644
index 623c69ca71a60..0000000000000
--- a/docs-v2/pages/workflows/building-workflows/control-flow/index.mdx
+++ /dev/null
@@ -1,261 +0,0 @@
-import VideoPlayer from "@/components/VideoPlayer";
-
-# Overview
-
-Pipedream is adding powerful control flow operators so you can build and run non-linear workflows to unlock use cases that require advanced orchestration.
-
-
-
-## Operators
-
-| Operator | Description |
-| :--- | :--- |
-| [If/Else (beta)](./control-flow/ifelse/) | Supports single-path, logical branching orchestration. |
-| [Delay](./control-flow/delay/) | Add a delay from 1 millisecond to 1 year before the next step of your workflow proceeds. |
-| [Filter](./control-flow/filter/) | Define rules to stop or continue workflow execution. |
-| [End Workflow](./control-flow/end-workflow/) | Terminate the workflow prior to the last step. |
-
-More operators (including parallel and looping) are coming soon.
-
-## Key Capabilities
-
-- Orchestrate execution of linear and non-linear workflows
-- Normalize results and continue after a non-linear operation
-- Nest control flow operators for advanced use cases
-- Return HTTP responses during or after most non-linear operations
-- Execute long running workflows (workflow timeout resets at each control flow boundary)
-
-## Execution Path
-
-### Context
-
-The execution path represents the specific steps (and the order of steps) that run when a workflow is triggered.
-
-- Simple linear workflows are executed from top to bottom — every step is in the execution path.
-
- 
-
-- With the introduction of non-linear workflows, steps may or may not be executed depending on the rules configured for control flow operators and the results exported from prior steps.
-
- 
-
- Therefore, we introduced new patterns to signal the execution path and help you build, test and inspect workflows.
-
-
-### Executed Path
-
-Step borders, backgrounds and connectors now highlight the **executed path** — the steps that are executed on the execution path. If a non-execution path step is tested, it will not be reflected as being on the execution path.
-
-
-
-### Building and Testing in an Unknown or Non-Execution Path
-
-You may add and test steps in any path. However, Pipedream highlights that the results may not be reliable if the step is outside the executed path; the results may not match the outcome if the steps were in a known execution path and may lead to invalid or misleading results.
-
-
-
-### Signaling Steps are “Out of Date”
-
-If prior steps in a workflow are modified or retested, Pipedream marks later steps in the execution path as _stale_ to signal that the results may be out of date. In the non-linear model, Pipedream only marks steps that are in the confirmed execution path as stale.
-
-- If a change is made to a prior step, then the executed path is cleared.
-
- 
-
-- Steps in the known execution path are immediately marked as stale
-- State within conditional blocks is not updated until the start phase is tested and execution path is identified.
-
- 
-
-
-### Test State vs Execution Path
-
-Steps may be tested whether or not they are in the execution path. The test state for a step reflects whether a step was successfully tested or needs attention (the step may have errored, the results may be out of date, etc) and is denoted by the icon at the top left of each step.
-
-- Last test was successful
-
- 
-
-- Results may be stale, step may be untested, etc
-
- 
-
-- **Step has an error or is not configured**
-
- 
-
-
-## Workflow Segments
-
-### Context
-
-Workflow segments are a linear series of steps that with no control flow operators.
-
-- A simple linear workflow is composed of a single workflow segment.
-
- 
-
-- When a control flow operator is introduced, then the workflow contains multiple segments. For example, when a Delay operator is added to the simple linear workflow above the workflow goes from 1 to 2 segements.
-
- 
-
-- The following example using If/Else contains 5 workflow segments. However, since only 1 branch within the If/Else control flow block is run on each workflow execution, the maximum number of segments that will be executed for each trigger event is 3.
-
- 
-
-
-### Billing
-
-Pipedream compiles each workflow segment into an executable function to optimize performance and reduce credit usage; credit usage is calculated independently for each workflow segment independent of the number of steps (rather than per step like many other platforms).
-
-- For example, the two workflow segments below both use a single credit:
- - **Trigger + 1 step workflow segment (1 credit)**
-
- 
-
- - **Trigger + 5 step workflow segment (1 credit)**
-
- 
-
-- The If/Else example above that contains 5 workflow segments, but only 3 workflow segments in any given execution path will only incur 3 credits of usage per execution.
-
- 
-
-
-### Timeout and Memory
-
-For the preview, all workflow segments inherit the global timeout and memory settings. In the future, Pipedream will support customization of timeout and memory settings for each segment. For example, if you need expanded memory for select steps, you will be able to restrict higher memory execution to that segment instead of having to run the entire workflow with the higher memory settings. This can help you reduce credit usage.
-
-### Long Running Workflows
-
-Users may create long running workflows that greatly exceed the upper bound timeout of 12 minutes for current workflow (each workflow segment has an upper bound of 12 minutes).
-
-### `/tmp` directory access
-
-`tmp` directory access is scoped per workflow segment (since each segment is executed as an independent function). If you need to persist files across multiple segments (or workflow executions) use File Stores.
-
-### Warm Workers
-
-Warm workers are globally configured per segment. For example, if you have a workflow with 3 segments and you configure your workflow to use 1 warm worker per segment, 3 warm workers will be used.
-
-### Segment Relationships
-
-Steps may only reference prior steps in the same workflow segment or it’s direct ancestors.
-
-| Type | Description |
-| --- | --- |
-| Root | The root segment is the top level for a workflow — it may have children but no parents. If you do not include any control flow blocks in your workflow, your entire workflow definition is contained within the root segment. |
-| Parent | A segment that has a child. |
-| Child | A flow that has a parent. |
-
-
-## Blocks
-
-### Context
-
-**Blocks** are compound steps that are composed of a **start** and an **end** phase. Blocks may contain one or more workflow segments between the phases.
-
-- Most non-linear control flow operators will be structured as blocks (vs. standard steps)
-- You may add steps or blocks to [workflow segments](#workflow-segments) between start and end phases of a block
-- The start and end phases are independently testable
- - The start phase evaluates the rules/configuration for a block; the results may influence the execution path
- - The end phase exports results from the control flow block that can be referenced in future workflow steps
- - For example, for the If/Else control flow operator, the start phase evaluates the branching rules while the end phase exports the results from the executed branch.
-
-### Testing
-
-When building a workflow with a control flow block, we recommend testing the start phase, followed by steps in the execution path followed by the end phase.
-
-
-
-For a conditional operator like if/else, we then recommend generating events that trigger alternate conditions and testing those.
-
-
-
-#### Passing data to steps in a control flow block
-
-Steps may only reference prior steps in the same workflow segment or it’s direct ancestors. In the following example, `step_c` and `step_d` (within the if/else control flow block) can directly reference any exports from `trigger`, `step_a`, or `step_b` (in the parent/root workflow segment) via the steps object. `step_c` and `step_d` are siblings and cannot reference exports from each other.
-
-
-
-#### Referencing data from steps in a previous block
-
-Steps after the end phase may not directly reference steps within a control flow block (between the start and end phases). E.g., in the following workflow there are two branches:
-
-
-
-In this example, `step_f` is executed after a control flow block. It can directly reference prior steps in the root workflow segment (`trigger`, `step_a` and `step_b` using the `steps` object).
-
-However, `step_f` cannot reference directly reference data exported by `step_c` or `step_d`. The reason is that due to the non-linear execution, `step_c` and `step_d` are not guaranteed to execute for every event. **To reference data from a control flow block, reference the exports of the end phase.** Refer to the documentation to understand how data is exported for each control flow operator (e.g., for if/else, the exports of the last step in the branch are returned as the exports for the end phase; you can easily normalize the results across branches using a code step).
-
-In this example, `step_f` can reference the exported data for an executed branch by referencing `steps.ifelse.$return_value`.
-
-### Nesting
-
-Control flow blocks may be nested within other control flow blocks:
-
-- If/Else blocks may be nested within other If/Else blocks
-- In the future, Loops may be nested within If/Else blocks and vice versa.
-
-There is currently no limit on the number of nested elements.
-
-
-
-## Rule Builder
-
-### Context
-
-Pipedream is introducing a rule builder for comparative operations. The rule builder is currently only supported by the If/Else operator, but it will be extended to other operators including Switch and Filter.
-
-
-
-### Simple conditions
-
-Compare values using supported operators.
-
-
-
-### Combine multiple conditions using AND / OR
-
-Click “Add condition” using the menu on the right to add multiple conditions. Click on AND / OR to toggle the operator.
-
-
-
-### Test for multiple conditions using Groups
-
-Create and manage groups using the menu options to “Add group”, “Make condition into group”, “Nest group” and “Remove group”.
-
-
-
-### Supported Operators
-
-- Exists
-- Doesn’t exist
-- String
- - Equals
- - Doesn’t equal
- - Is blank
- - Is not blank
- - Starts with
- - Contains
- - Ends with
-- Number
- - Equals
- - Does not equal
- - Is greater than
- - Is greater than or equal to
- - Is less than
- - Is less than or equal to
-- Boolean (equals)
-- Type checks
- - Is null
- - Is not null
- - Is string
- - Is not a string
- - Is a number
- - Is not a number
- - Is a boolean
- - Is not a boolean
-- Value checks
- - Is true
- - Is false
diff --git a/docs-v2/pages/workflows/building-workflows/control-flow/parallel.mdx b/docs-v2/pages/workflows/building-workflows/control-flow/parallel.mdx
deleted file mode 100644
index 7f9469ca5be50..0000000000000
--- a/docs-v2/pages/workflows/building-workflows/control-flow/parallel.mdx
+++ /dev/null
@@ -1,99 +0,0 @@
-import Callout from '@/components/Callout'
-import VideoPlayer from "@/components/VideoPlayer";
-import { Steps } from 'nextra/components'
-
-# Parallel
-
-## Overview
-
-**Parallel** is multi-path branching operator. It allows you to create multiple execution branches with optional filtering rules and Pipedream will execute **all** matching branches. Unlike [Switch](./switch/) and [If/Else](./ifelse/), the order in which rules are defined will not affect the path of execution.
-
-
-
-## Capabilities
-
-- Create non-linear workflows that execute steps in parallel branches
-- Define when branches run — always, conditionally or never (to disable a branch)
-- Merge and continue execution in the parent flow after the branching operation
-
-
-The Parallel operator is a control flow **Block** with **start** and **end** phases. [Learn more about Blocks](./#blocks).
-
-
-### Add Parallel operator to workflow
-
-Select **Parallel** from the **Control Flow** section of the step selector:
-
-
-
-### Create Branches
-
-To create new branches, click the `+` button:
-
-
-
-### Rename Branches
-
-Edit the branch's nameslug on the canvas or in the right pane after selecting the **Start** phase of the parallel block. The nameslug communicates the branch's purpose and affects workflow execution—the end phase exports an object, with each key corresponding to a branch name.
-
-
-
-### Export Data to the Parent Flow
-
-You can export data from a parallel operation and continue execution in the parent flow.
-- The parallel block exports data as a JSON object
-- Branch exports are assigned to a key corresponding to the branch name slug (in the object exported from the block)
-- Only the exports from the last step of each executed branch are included in the parallel block's return value
-- To preview the exported data, test the **End** phase of the parallel block
-
-### Beta Limitations
-
-Workflow queue settings (concurrency, execution rate) may not work as expected with workflows using the parallel operator.
-
-## Getting Started
-
-
-
-### Generate a test event
-
-Add a trigger and generate an event to help you build and test your workflow:
-
-
-
-### Add the Parallel control flow block
-
-Click the + button to add a step to the canvas and select Parallel from the Control Flow section on the right. You can optionally add or remove branches and configure conditions defining when each branch should run.
-
-
-
-### Test to identify the execution path(s)
-
-Test the **Start** phase to identify which branches will execute for the current event.
-
-
-
-### Add steps to branches
-
-Add steps to the branches. These steps will be executed in parallel when the workflow runs.
-
-
-
-### Optionally merge and continue to the parent flow
-
-Test the **End** phase to export the results of the last step of each branch that was executed. This makes data from the branches available to reference in the parent flow.
-
-
-
-### Use exports in parent flow
-
-Optionally add steps after the parallel block and use data from individual branches by referencing the return value of the **End** phase.
-
-
-
-### Deploy and test the live workflow
-
-Deploy the workflow and trigger it to inspect the executions.
-
-
-
-
diff --git a/docs-v2/pages/workflows/building-workflows/control-flow/switch.mdx b/docs-v2/pages/workflows/building-workflows/control-flow/switch.mdx
deleted file mode 100644
index 5e812b495ff46..0000000000000
--- a/docs-v2/pages/workflows/building-workflows/control-flow/switch.mdx
+++ /dev/null
@@ -1,86 +0,0 @@
-import Callout from '@/components/Callout'
-import VideoPlayer from "@/components/VideoPlayer";
-import { Steps } from 'nextra/components'
-
-# Switch
-
-## Overview
-
-**Switch** is single path branching operator. You can create multiple execution branches, but Pipedream will execute the **first** branch that matches the configured rules. The order in which rules are defined will affect the path of execution.
-
-Switch is useful when you need to make a branching decision based on the value of a single input variable (e.g., based on the path of an inbound request). You can define the input variable once and then branch based on the value(s). If you need to branch based on the values of multiple input variables use the [If/Else operator](./ifelse/).
-
-
-
-## Capabilities
-
-- Define cases to conditionally execute one of many branches
-- Define the expression to evaluate once and configure cases to compare values (use boolean operators to combine muliple rules for each case)
-- Use the **Default** case as a fallback
-- Merge and continue execution in the parent flow after the branching operation
-
-
-If you disable the **Default** branch and there are no matching cases, the workflow will continue execution in the parent workflow after the **end** phase of the Switch block
-
-
-
-The Switch operator is a control flow **Block** with **start** and **end** phases. [Learn more about Blocks](./#blocks).
-
-
-## Getting Started
-
-
-
-### Generate a test event
-
-Add a trigger and generate an event to help you build and test your workflow:
-
-
-
-### Add the Switch control flow block
-
-Click the + button to add a step to the canvas and select Switch from the Control Flow section on the right. In the “start” phase, configure rules for a case.
-
-
-
-
-**IMPORTANT:** If you disable the **Default** condition and an event does not match any of the rules, the workflow will continue to the next step after the **Switch** section. If you want to end workflow execution if no other conditions evaluate to `true`, enable the Default condition and add a **Terminate Workflow** action.
-
-
-### Optionally add additional cases
-
-To add additional cases, click the **+** button.
-
-
-
-### Test and build along the execution path
-
-Test the **start** phase and add a step to the branch in the execution path,
-
-
-
-### Optionally merge and continue the parent flow
-
-Test the **end** phase to export the results of the last step in the execution path. This makes them available to reference in the parent flow.
-
-
-
-### Scaffold alternate paths
-
-You may add steps to alternate paths and test them. Pipedream will signal that the results may not be reliable if the branch is not in the execution path.
-
-
-
-### Validate alternate paths
-
-Generate or select alternate events to trigger and validate alternate paths.
-
-
-
-### Deploy and test the live workflow
-
-Deploy the workflow and trigger it to inspect the executions.
-
-
-
-
diff --git a/docs-v2/pages/workflows/building-workflows/errors.mdx b/docs-v2/pages/workflows/building-workflows/errors.mdx
deleted file mode 100644
index 594694aa40068..0000000000000
--- a/docs-v2/pages/workflows/building-workflows/errors.mdx
+++ /dev/null
@@ -1,152 +0,0 @@
-import VideoPlayer from "@/components/VideoPlayer";
-import Callout from '@/components/Callout'
-
-# Handling errors
-
-Two types of errors are raised in Pipedream workflows:
-
-- **Workflow errors** — Errors in the workflow execution environment, like [Timeouts](/troubleshooting/#timeout) or [Out of Memory](/troubleshooting/#out-of-memory) errors. Often, you can change your workflow's configuration to fix them. You can find more details on these errors [in our troubleshooting guide](/troubleshooting).
-- **Step errors** — Errors raised by individual [code](/workflows/building-workflows/code/) or [action](/workflows/building-workflows/actions/) steps. These can be syntax errors, errors raised by the Node or Python runtime, errors with input data, and more. Pipedream will surface details about the error and the stack trace, and you can even [debug these errors with AI](#debug-with-ai).
-
-Both types of errors will trigger [error notifications](#error-notifications), can be handled by [custom error handlers](#handle-errors-with-custom-logic), and will show up in [the REST API](#poll-the-rest-api-for-workflow-errors).
-
-## Auto-retry
-
-You can [automatically retry events](/workflows/building-workflows/settings/#auto-retry-errors) that yield an error. This can help for transient errors that occur when making API requests, like when a service is down or your request times out.
-
-## Apply conditional logic
-
-Many errors result from the data you're processing. You might only receive certain data from a webhook under certain conditions, or have malformed data in the payload that causes an error.
-
-You can apply conditional logic in code, or using the [If / Else operator](/workflows/building-workflows/control-flow/ifelse/), handling these conditions accordingly.
-
-## Error notifications
-
-By default, [Pipedream sends an email](#default-system-emails) when a workflow throws an unhandled error. But you can:
-
-- Send error notifications to Slack
-- Handle errors from one workflow in a specific way
-- Fetch errors asynchronously using the REST API, instead of handling the event in real-time
-
-These docs describe the default error behavior, and how to handle custom use cases like these.
-
-
-Email notifications are sent to the address specified in your [workspace settings](https://pipedream.com/settings/account) under the **Notifications** section. We recommend using a group email address so everyone can monitor workflow errors.
-
-
-Before you jump into the examples below, remember that all Pipedream workflows are just code. You can always use the built-in error handling logic native to your programming language, for example: using JavaScript's [`try / catch` statement](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/try...catch). In the future, Pipedream plans to support this kind of error-handling for built-in actions, as well.
-
-### Default system emails
-
-Any time your workflow throws an unhandled error, you'll receive an email like this:
-
-
-
-This email includes a link to the error so you can see the data and logs associated with the run. When you inspect the data in the Pipedream UI, you'll see details on the error below the step that threw the error, e.g. the full stack trace.
-
-#### Duplicate errors do not trigger duplicate emails
-
-High-volume errors can lead to lots of notifications, so Pipedream only sends at most one email, per error, per workflow, per 24 hour period.
-
-For example, if your workflow throws a `TypeError`, we'll send you an email, but if it continues to throw that same `TypeError`, we won't email you about the duplicate errors until the next day. If a different workflow throws a `TypeError`, you **will** receive an email about that.
-
-### Test mode vs. live mode
-
-When you're editing and testing your workflow, any unhandled errors will **not** raise errors as emails, nor are they forwarded to [error listeners](#handle-errors-with-custom-logic). Error notifications are only sent when a deployed workflow encounters an error on a live event.
-
-## Debug with AI
-
-You can debug errors in [code](/workflows/building-workflows/code/) or [action](/workflows/building-workflows/actions/) steps with AI by pressing the **Debug with AI** button at the bottom of any error.
-
-### Data we send with errors
-
-When you debug an error with AI, Pipedream sends the following information to OpenAI:
-
-- The error code, message, and stack trace
-- The step's code
-- The input added to the step configuration. This **does not** contain the event data that triggered your workflow, just the static input entered in the step configuration, like the URL of an HTTP request, or the names of [step exports](/workflows/#step-exports).
-
-We explicitly **do not** send the event data that triggered the error, or any other information about your account or workflow.
-
-## Handle errors with custom logic
-
-Pipedream exposes a global stream of all errors, raised from all workflows. You can subscribe to this stream, triggering a workflow on every event. This lets you handle errors in a custom way. Instead of sending all errors to email, you can send them to Slack, Discord, AWS, or any other service, and handle them in any custom way.
-
-To do this:
-
-1. Create a new workflow.
-2. Add a new trigger. Search for the `Pipedream` app.
-3. Select the custom source `Workspace $error events`.
-4. Generate an error in a live version of any workflow (errors raised while you're testing your workflow [do not send errors to the `$errors` stream](#test-mode-vs-live-mode)). You should see this error trigger the workflow in step #1. From there, you can build any logic you want to handle errors across workflows.
-
-### Duplicate errors _do_ trigger duplicate error events on custom workflows
-
-Unlike [the default system emails](#duplicate-errors-do-not-trigger-duplicate-emails), duplicate errors are sent to any workflow listeners.
-
-## Poll the REST API for workflow errors
-
-Pipedream provides a REST API endpoint to [list the most recent 100 workflow errors](/rest-api/#get-workflow-errors) for any given workflow. For example, to list the errors from workflow `p_abc123`, run:
-
-```bash
-curl 'https://api.pipedream.com/v1/workflows/p_abc123/$errors/event_summaries?expand=event' \
- -H 'Authorization: Bearer '
-```
-
-By including the `expand=event` query string param, Pipedream will return the full error data, along with the original event that triggered your workflow:
-
-```json
-{
- "page_info": {
- "total_count": 100,
- "start_cursor": "1606370816223-0",
- "end_cursor": "1606370816223-0",
- "count": 1
- },
- "data": [
- {
- "id": "1606370816223-0",
- "indexed_at_ms": 1606370816223,
- "event": {
- "original_event": {
- "name": "Luke",
- "title": "Jedi"
- },
- "original_context": {
- "id": "2po8fyMMKF4SZFrOThm0Ex4zv6M",
- "ts": "2024-12-05T17:52:54.117Z",
- "pipeline_id": null,
- "workflow_id": "p_abc1234",
- "deployment_id": "d_abc1234",
- "source_type": "COMPONENT",
- "verified": false,
- "hops": null,
- "test": false,
- "replay": false,
- "owner_id": "o_abc1234",
- "platform_version": "3.50.4",
- "workflow_name": "error",
- "resume": null,
- "emitter_id": "hi_abc1234",
- "external_user_id": null,
- "external_user_environment": null,
- "trace_id": "2po8fwtzKHVr0VZpJc3EUmdTAms",
- "project_id": "proj_abc1234"
- },
- "error": {
- "code": "InternalFailure",
- "cellId": "c_abc123",
- "ts": "2020-11-26T06:06:56.077Z",
- "stack": " at Request.extractError ..."
- }
- },
- "metadata": {
- "emitter_id": "p_abc123",
- "emit_id": "1kodKnAdWGeJyhqYbqyW6lEXVAo",
- "name": "$errors"
- }
- }
- ]
-}
-```
-
-By listing these errors, you may be able to replay them against your workflow programmatically. For example, if your workflow is triggered by HTTP requests, you can send an HTTP request with the data found in `event.original_event` (see the example above) for every event that errored.
diff --git a/docs-v2/pages/workflows/building-workflows/http.mdx b/docs-v2/pages/workflows/building-workflows/http.mdx
deleted file mode 100644
index ed0a0bbc8df6f..0000000000000
--- a/docs-v2/pages/workflows/building-workflows/http.mdx
+++ /dev/null
@@ -1,235 +0,0 @@
-import Callout from '@/components/Callout'
-
-# HTTP
-
-Integrate and automate any API using Pipedream workflows. Use app specific pre-built actions, or an HTTP request action for a no code interface. If you need more control over error handling, then use your same connected accounts with code in Node.js or Python.
-
-## Pre-built actions
-
-Pre-built actions are the most convenient option for integrating your workflow with an API. Pre-built actions can use your connected accounts to perform API requests, and are configured through props.
-
-Pre-built actions are the fastest way to get started building workflows, but they may not fit your use case if a prop is missing or is handling data in a way that doesn't fit your needs.
-
-For example, to send a message using Slack just search for Slack and use the **Send Message to a Public Channel** action:
-
-
-
-Then connect your Slack account, select a channel and write your message:
-
-
-
-Now with a few clicks and some text you've integrated Slack into a Pipedream workflow.
-
-
-Pre-built actions are open source
-
-All pre-built actions are published from the [Pipedream Component Registry](/components/contributing/), so you can read and modify their source code. You can even publish your own from [Node.js code steps privately to your own workspace](/workflows/building-workflows/code/nodejs/sharing-code/).
-
-
-## HTTP Request Action
-
-The HTTP request action is the next most convenient option. Use a Postman-like interface to configure an HTTP request - including the headers, body, and even connecting an account.
-
-
-
-Selecting this action will display an HTTP request builder, with the Slack app slot to connect your account with.
-
-
-
-Once you connect your account to the step, it will automatically configure the authorization headers to match.
-
-For example, the Slack API expects a Bearer token with the `Authorization` header. So Pipedream automatically configures this HTTP request to pass your token to that specific header:
-
-
-
-The configuration of the request and management of your token is automatically handled for you. So you can simply modify the request to match the API endpoint you're seeking to interact with.
-
-### Adding apps to an HTTP request builder action
-
-You can also attach apps to the *Send any HTTP Request* action from the action selection menu. After adding a new step to your workflow, select the *Send any HTTP Request* action:
-
-
-
-Then within the HTTP request builder, click the *Autorization Type* dropdown to select a method, and click **Select an app**:
-
-
-
-Then you can choose **Slack** as the service to connect the HTTP request with:
-
-
-
-The HTTP request action will automatically be configured with the Slack connection, you'll just need to select your account to finish the authentication.
-
-Then it's simply updating the URL to send a message which is [`https://slack.com/api/chat.postMessage`](https://api.slack.com/methods/chat.postMessage):
-
-
-
-Finally modify the body of the request to specify the `channel` and `message` for the request:
-
-
-
-HTTP Request actions can be used to quickly scaffold API requests, but are not as flexible as code for a few reasons:
-
-* Conditionally sending requests - The HTTP request action will always request, to send requests conditionally you'll need to use code.
-* Workflow execution halts - if an HTTP request fails, the entire workflow cancels
-* Automatically retrying - `$.flow.retry` isn't available in the HTTP Request action to retry automatically if the request fails
-* Error handling - It's not possible to set up a secondary action if an HTTP request fails.
-
-## HTTP Requests in code
-
-When you need more control, use code. You can use your connected accounts with Node.js or Python code steps.
-
-This gives you the flexibility to catch errors, use retries, or send multiple API requests in a single step.
-
-First, connect your account to the code step:
-
-* [Connecting any account to a Node.js step](/workflows/building-workflows/code/nodejs/auth/#accessing-connected-account-data-with-thisappnameauth)
-* [Connecting any account to a Python step](/workflows/building-workflows/code/python/auth/)
-
-### Conditionally sending an API Request
-
-You may only want to send a Slack message on a certain condition, in this example we'll only send a Slack message if the HTTP request triggering the workflow passes a special variable: `steps.trigger.event.body.send_message`
-
-```javascript
-import { axios } from "@pipedream/platform"
-
-export default defineComponent({
- props: {
- slack: {
- type: "app",
- app: "slack",
- }
- },
- async run({steps, $}) {
- // only send the Slack message if the HTTP request has a `send_message` property in the body
- if(steps.trigger.body.send_message) {
- return await axios($, {
- headers: {
- Authorization: `Bearer ${this.slack.$auth.oauth_access_token}`,
- },
-
- url: `https://slack.com/api/chat.postMessage`,
-
- method: 'post',
- data: {
- channel: 'C123456',
- text: 'Hi from a Pipedream Node.js code step'
- }
- })
- }
- },
-})
-
-```
-
-### Error Handling
-
-The other advantage of using code is handling error messages using `try...catch` blocks. In this example, we'll only send a Slack message if another API request fails:
-
-```javascript
-import { axios } from "@pipedream/platform"
-
-export default defineComponent({
- props: {
- openai: {
- type: "app",
- app: "openai"
- },
- slack: {
- type: "app",
- app: "slack",
- }
- },
- async run({steps, $}) {
- try {
- return await axios($, {
- url: `https://api.openai.com/v1/completions`,
- method: 'post',
- headers: {
- Authorization: `Bearer ${this.openai.$auth.api_key}`,
- },
- data: {
- "model": "text-davinci-003",
- "prompt": "Say this is a test",
- "max_tokens": 7,
- "temperature": 0
- }
- })
- } catch(error) {
- return await axios($, {
- url: `https://slack.com/api/chat.postMessage`,
- method: 'post',
- headers: {
- Authorization: `Bearer ${this.slack.$auth.oauth_access_token}`,
- },
- data: {
- channel: 'C123456',
- text: `OpenAI returned an error: ${error}`
- }
- })
- }
- },
-})
-```
-
-
-Subscribing to all errors
-
-[You can use a subscription](/rest-api/#subscriptions) to subscribe a workflow to all errors through the `$errors` channel, instead of handling each error individually.
-
-
-### Automatically retrying an HTTP request
-
-You can leverage `$.flow.rerun` within a `try...catch` block in order to retry a failed API request.
-
-[See the example in the `$.flow.rerun` docs](/workflows/building-workflows/code/nodejs/rerun/#pause-resume-and-rerun-a-workflow) for Node.js.
-
-## Platform axios
-
-### Why `@pipedream/platform` axios?
-
-`axios` is an HTTP client for Node.js ([see these docs](/workflows/building-workflows/code/nodejs/http-requests/) for usage examples).
-
-`axios` has a simple programming API and works well for most use cases. But its default error handling behavior isn't easy to use. When you make an HTTP request and the server responds with an error code in the 4XX or 5XX range of status codes, `axios` returns this stack trace:
-
-
-
-This only communicates the error code, and not any other information (like the body or headers) returned from the server.
-
-Pipedream publishes an `axios` wrapper as a part of [the `@pipedream/platform` package](https://github.com/PipedreamHQ/pipedream/tree/master/platform). This presents the same programming API as `axios`, but implements two helpful features:
-
-1. When the HTTP request succeeds (response code < `400`), it returns only the `data` property of the response object — the HTTP response body. This is typically what users want to see when they make an HTTP request:
-
-
-
-2. When the HTTP request _fails_ (response code >= `400`), it displays a detailed error message in the Pipedream UI (the HTTP response body), and returns the whole `axios` response object so users can review details on the HTTP request and response:
-
-
-
-### Using `@pipedream/platform` axios in component actions
-
-To use `@pipedream/platform` axios in component actions, import it:
-
-```javascript
-import { axios } from "@pipedream/platform"
-```
-
-`@pipedream/platform` axios uses methods [provided by the `$` object](/components/contributing/api/#actions), so you'll need to pass that as the first argument to `axios` when making HTTP requests, and pass the [standard `axios` request config](https://github.com/axios/axios#request-config) as the second argument.
-
-Here's an example action:
-
-```javascript
-import { axios } from "@pipedream/platform"
-
-export default {
- key: "my-test-component",
- name: "My Test component",
- version: "0.0.1",
- type: "action",
- async run({ $ }) {
- return await axios($, {
- url: "https://httpstat.us/200",
- })
- }
-}
-```
diff --git a/docs-v2/pages/workflows/building-workflows/inspect.mdx b/docs-v2/pages/workflows/building-workflows/inspect.mdx
deleted file mode 100644
index 9fc08103d7eda..0000000000000
--- a/docs-v2/pages/workflows/building-workflows/inspect.mdx
+++ /dev/null
@@ -1,39 +0,0 @@
-import VideoPlayer from "@/components/VideoPlayer";
-
-# Inspect Events
-
-
-
-[The inspector](#the-inspector) lists the events you send to a [workflow](/workflows/building-workflows/). Once you choose a [trigger](/workflows/building-workflows/triggers/) and send events to it, you'll see those events in the inspector, to the left of your workflow.
-
-Clicking on an event from the list lets you [review the incoming event data and workflow execution logs](/workflows/building-workflows/triggers/#examining-event-data) for that event.
-
-You can use the inspector to replay events, delete them, and more.
-
-## The inspector
-
-The inspector lists your workflow's events:
-
-
-
-## Event Duration
-
-The duration shown when clicking an individual event notes the time it took to run your code, in addition to the time it took Pipedream to handle the execution of that code and manage its output. Specifically,
-
-**Duration = Time Your Code Ran + Pipedream Execution Time**
-
-## Replaying and deleting events
-
-Hover over an event, and you'll see two buttons:
-
-
-
-The blue button with the arrow **replays** the event against the newest version of your workflow. The red button with the X **deletes** the event.
-
-## Messages
-
-Any `console.log()` statements or other output of code steps is attached to the associated code cells. But [`$.flow.exit()`](/workflows/building-workflows/code/nodejs/#ending-a-workflow-early) or [errors](/workflows/building-workflows/code/nodejs/#errors) end a workflow's execution, so their details appear in the inspector.
-
-## Limits
-
-Pipedream retains a limited history of events for a given workflow. See the [limits docs](/workflows/limits/#event-history) for more information.
diff --git a/docs-v2/pages/workflows/building-workflows/settings/_meta.tsx b/docs-v2/pages/workflows/building-workflows/settings/_meta.tsx
deleted file mode 100644
index 0c9157a1cadfe..0000000000000
--- a/docs-v2/pages/workflows/building-workflows/settings/_meta.tsx
+++ /dev/null
@@ -1,4 +0,0 @@
-export default {
- "index": "Overview",
- "concurrency-and-throttling": "Concurrency and Throttling",
-} as const
diff --git a/docs-v2/pages/workflows/building-workflows/settings/concurrency-and-throttling.mdx b/docs-v2/pages/workflows/building-workflows/settings/concurrency-and-throttling.mdx
deleted file mode 100644
index a42512de18866..0000000000000
--- a/docs-v2/pages/workflows/building-workflows/settings/concurrency-and-throttling.mdx
+++ /dev/null
@@ -1,92 +0,0 @@
-import Callout from "@/components/Callout";
-
-# Concurrency and Throttling
-
-Pipedream makes it easy to manage the concurrency and rate at which events trigger your workflow code using execution controls.
-
-## Overview
-
-Workflows listen for events and execute as soon as they are triggered. While this behavior is expected for many use cases, there can be unintended consequences.
-
-### Concurrency
-
-Without restricting concurrency, events can be processed in parallel and there is no guarantee that they will execute in the order in which they were received. This can cause race conditions.
-
-For example, if two workflow events try to add data to Google Sheets simultaneously, they may both attempt to write data to the same row. As a result, one event can overwrite data from another event. The diagram below illustrates this example — both `Event 1` and `Event 2` attempt to write data to Google Sheets concurrently — as a result, they will both write to the same row and the data for one event will be overwritten and lost (and no error will be thrown).
-
-
-
-You can avoid race conditions like this by limiting workflow concurrency to a single "worker". What this means is that only one event will be processed at a time, and the next event will not start processing until the first is complete (unprocesssed events will maintained in a queue and processed by the workflow in order). The following diagram illustrates how the events in the last diagram would executed if concurrency was limited to a single worker.
-
-
-
-While the first example resulted in only two rows of data in Google Sheets, this time data for all three events are recorded to three separate rows.
-
-### Throttling
-
-If your workflow integrates with any APIs, then you may need to limit the rate at which your workflow executes to avoid hitting rate limits from your API provider. Since event-driven workflows are stateless, you can't manage the rate of execution from within your workflow code. Pipedream's execution controls solve this problem by allowing you to control the maximum number of times a workflow may be invoked over a specific period of time (e.g., up to 1 event every second).
-
-
-Pipedream controls the frequency of workflow invocations over a specified time interval using fixed window throttling. For example, if the execution rate limit is set at 1 execution every 5 seconds, this means that your workflow will be invoked no more than once within a fixed 5-second time box. This doesn’t mean that executions will occur 5 seconds apart.
-
-
-## Usage
-
-Events emitted from a source to a workflow are placed in a queue, and Pipedream triggers your workflow with events from the queue based on your concurrency and throttling settings. These settings may be customized per workflow (so the same events may be processed at different rates by different workflows).
-
-
-
-The maximum number of events Pipedream will queue per workflow depends on your account type.
-
-- Up to 100 events will be queued per workflow for the workspaces on the free tier.
-- Workflows owned by paid plans may have custom limits. If you need a larger queue size, [see here](#increasing-the-queue-size-for-a-workflow).
-
-**IMPORTANT:** If the number of events emitted to a workflow exceeds the queue size, events will be lost. If that happens, you'll see an error in your workflow, and you'll receive an error email.
-
-To learn more about how the feature works and technical details, check out our [engineering blog post](https://blog.pipedream.com/concurrency-controls-design/).
-
-### Where Do I Manage Concurrency and Throttling?
-
-Concurrency and throttling can be managed in the **Execution Controls** section of your **Workflow Settings**. Event queues are currently supported for any workflow that is triggered by an event source. Event queues are not currently supported for native workflow triggers (native HTTP, cron, SDK and email).
-
-
-
-### Managing Event Concurrency
-
-Concurrency controls define how many events can be executed in parallel. To enforce serialized, in-order execution, limit concurrency to `1` worker. This guarantees that each event will only be processed once the execution for the previous event is complete.
-
-To execute events in parallel, increase the number of workers (the number of workers defines the maximum number of concurrent events that may be processed), or disable concurrency controls for unlimited parallelization.
-
-### Throttling Workflow Execution
-
-To throttle workflow execution, enable it in your workflow settings and configure the **limit** and **interval**.
-
-The limit defines how many events (from `0-10000`) to process in a given time period.
-
-The interval defines the time period over which the limit will be enforced. You may specify the time period as a number of seconds, minutes or hours (ranging from `1-10000`)
-
-### Applying Concurrency and Throttling Together
-
-The conditions for both concurrency and throttling must be met in order for a new event to trigger a workflow execution. Here are some examples:
-
-| Concurrency | Throttling | Result |
-| ----------- | -------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
-| Off | Off | Events will trigger your workflow **as soon as they are received**. Events may execute in parallel. |
-| 1 Worker | Off | Events will trigger your workflow in a **serialized pattern** (a maximum of 1 event will be processed at a time). As soon as one event finishes processing, the next event in the queue will be processed. |
-| 1 Worker | 1 Event per Second | Events will trigger your workflow in a **serialized pattern** at a **maximum rate** of 1 event per second. If an event takes less than one second to finish processing, the next event in the queue will not being processing until 1 second from the start of the most recently processed event. If an event takes longer than one second to process, the next event in the queue will begin processing immediately. |
-| 1 Worker | 10 Events per Minute | Events will trigger your workflow in a **serialized pattern** at a **maximum rate** of 10 events per minute. If an event takes less than one minute to finish processing, the next event in the queue immediately begin processing. If 10 events been processed in less than one minute, the remaining events will be queued until 1 minute from the start of the initial event. |
-| 5 Workers | Off | Up to 5 events will trigger your workflow in parallel as soon as they are received. If more events arrive while 5 events are being processed, they will be queued and executed in order as soon as an event completes processing. |
-
-### Pausing Workflow Execution
-
-To stop the queue from invoking your workflow, throttle workflow execution and set the limit to `0`.
-
-### Increasing the queue size for a workflow
-
-By default, your workflow can hold up to {process.env.DEFAULT_WORKFLOW_QUEUE_SIZE} events in its queue at once. Any events that arrive once the queue is full will be dropped, and you'll see an [Event Queue Full](/troubleshooting/#event-queue-full) error.
-
-For example, if you serialize the execution of your workflow by setting a concurrency of `1`, but receive 200 events from your workflow's event source at once, the workflow's queue can only hold the first 100 events. The last 100 events will be dropped.
-
-Users on [paid tiers](https://pipedream.com/pricing) can increase their queue size up to {process.env.MAX_WORKFLOW_QUEUE_SIZE} events for a given workflow, just below the **Concurrency** section of your **Execution Controls** settings:
-
-
diff --git a/docs-v2/pages/workflows/building-workflows/settings/index.mdx b/docs-v2/pages/workflows/building-workflows/settings/index.mdx
deleted file mode 100644
index f96d08fc34302..0000000000000
--- a/docs-v2/pages/workflows/building-workflows/settings/index.mdx
+++ /dev/null
@@ -1,216 +0,0 @@
-import Callout from "@/components/Callout";
-
-# Settings
-
-You can control workflow-specific settings in your workflow's **Settings**:
-
-1. Visit your workflow
-2. Click on Workflow Settings on the top left:
-
-
-
-
-
-
-You can also open the workflow settings using `CMD` + `,` on Mac, or `Ctrl` + `,` on Windows.
-
-
-## Enable Workflow
-
-If you'd like to pause your workflow from executing completely, you can disable it or reenable it here.
-
-## Error Handling
-
-By default, you'll receive notifications when your workflow throws an unhandled error. See the [error docs](/workflows/building-workflows/errors/) for more detail on these notifications.
-
-You can disable these notifications for your workflow by disabling the **Notify me on errors** toggle:
-
-
-
-
-
-
-
-## Auto-retry Errors
-
-
-**Out of Memory and Timeout Errors**
-
-Pipedream will not automatically retry if an execution fails due to an Out of Memory (OOM) error or a timeout. If you encounter these errors frequently, consider increasing the configuration settings for your workflow.
-
-
-Customers on the [Advanced Plan](https://pipedream.com/pricing) can automatically retry workflows on errors. If any step in your workflow throws an error, Pipedream will retry the workflow from that failed step, re-rerunning the step up to 8 times over a 10 hour span with an [exponential backoff](https://en.wikipedia.org/wiki/Exponential_backoff) strategy.
-
-On error, the step will export a `$summary` property that tells you how many times the step has been retried, and an `$attempt` object with the following properties:
-
-1. `error` — All the details of the error the step threw — the error, the stack, etc.
-2. `cancel_url` — You can call this URL to cancel the retry
-3. `rerun_url` — You can call this URL to proceed with the execution immediately
-4. `resume_ts` — An ISO 8601 timestamp that tells you the timestamp of the next retry
-
-
-
-
-
-If the step execution succeeds during any retry, the execution will proceed to the next step of the workflow.
-
-If the step fails on all 8 retries and throws a final error, you'll receive [an error notification](/workflows/building-workflows/errors/) through your standard notification channel.
-
-### Send error notifications on the first error
-
-By default, if a step fails on all 8 retries, and throws a final error, you'll receive [an error notification](/workflows/building-workflows/errors/) through your standard notification channel. But sometimes you need to investigate errors as soon as they happen. If you're connecting to your database, and receive an error that the DB is down, you may want to investigate that immediately.
-
-On any workflow with auto-retry enabled, you can optionally choose to **Send notification on first error**. This is disabled by default so you don't get emails for transient errors, but you can enable for critical workflows where you want visibility into all errors.
-
-For custom control over error handling, you can implement error logic in code steps (e.g. `try` / `catch` statements in Node.js code), or [create your own custom error workflow](/workflows/building-workflows/errors/#handle-errors-with-custom-logic).
-
-## Data Retention Controls
-
-By default, Pipedream stores exports, logs, and other data tied to workflow executions. You can view these logs in two places:
-
-1. [The workflow inspector](/workflows/building-workflows/inspect/#the-inspector)
-2. [Event History](/workflows/event-history/)
-
-But if you're processing sensitive data, you may not want to store those logs. You can **Disable data retention** in your workflow settings to disable **all** logging. Since Pipedream stores no workflow logs with this setting enabled, you'll see no logs in the inspector or event history UI.
-
-
-
-Refer to our [pricing page](https://pipedream.com/pricing) to understand the latest limits based on your plan.
-
-### Constraints
-
-- **Data Retention Controls do not apply to sources**: Even with data retention disabled on your workflow, Pipedream will still log inbound events for the source.
-- **No events will be shown in the UI**: When data retention is disabled for your workflow, the Pipedream UI will not show any new events in the inspector or Event History for that workflow.
-
-
-**Avoid surfacing events in the builder**
-
-Even with data retention disabled on your workflow, the builder will still surface inbound events when in build mode. To avoid surfacing potentially sensitive data here as well, refer to [these docs](/workflows/building-workflows/triggers/#pipedream-specific-request-parameters).
-
-
-
-## Execution Controls
-
-### Execution Timeout Limit
-
-Workflows have a default [execution limit](/workflows/limits/#time-per-execution), which defines the time the workflow can run for a single execution until it's timed out.
-
-If your workflow times out, and needs to run for longer than the [default limit](/workflows/limits/#time-per-execution), you can change that limit here.
-
-### Memory
-
-By default, workflows run with {process.env.MEMORY_LIMIT} of memory. If you're processing a lot of data in memory, you might need to raise that limit. Here, you can increase the memory of your workflow up to {process.env.MEMORY_ABSOLUTE_LIMIT}.
-
-Increasing your workflow's memory gives you a proportional increase in CPU, so increasing your workflow's memory can reduce its overall runtime and make it more performant.
-
-
-**How can my workflow run faster?**
-
-See [our guide on running workflows faster](/troubleshooting/#how-can-my-workflow-run-faster).
-
-
-**Pipedream charges credits proportional to your memory configuration**. When you modify your memory settings, Pipedream will show you the number of credits you'll be charged per execution. [Read more here](/pricing/faq/#how-does-workflow-memory-affect-credits).
-
-### Concurrency and Throttling
-
-[Manage the concurrency and rate](/workflows/building-workflows/settings/concurrency-and-throttling/) at which events from a source trigger your workflow code.
-
-## Eliminate cold starts
-
-A **cold start** refers to the delay between the invocation of workflow and the execution of the workflow code. Cold starts happen when Pipedream spins up a new [execution environment](/privacy-and-security/#execution-environment) to handle incoming events.
-
-Specifically, cold starts occur on the first request to your workflow after a period of inactivity (roughly 5 minutes), or if your initial worker is already busy and a new worker needs to be initialized. In these cases, Pipedream creates a new execution environment to process your event. **Initializing this environment takes a few seconds, which delays the execution of this first event**.
-
-You can reduce cold starts by configuring a number of dedicated **workers**:
-
-1. Visit your workflow's **Settings**
-2. Under **Execution Controls**, select the toggle to **Eliminate cold starts**
-3. Configure [the appropriate number of workers](#how-many-workers-should-i-configure) for your use case
-
-
-
-
-
-When you configure workers for a specific workflow, Pipedream initializes dedicated workers — virtual machines that run Pipedream's [execution environment](/privacy-and-security/#execution-environment). [It can take a few minutes](#how-long-does-it-take-to-spin-up-a-dedicated-worker) for new dedicated workers to deploy. Once deployed, these workers are available at all times to respond to workflow executions, with no cold starts.
-
-
-You may need to configure [multiple dedicated workers](#how-many-workers-should-i-configure) to handle multiple, concurrent requests.
-
-Pipedream also performs some initialization operations on new workflow runs, so you may still observe a small startup time (typically around 50ms per workflow step) on dedicated workers.
-
-
-
-### When should I configure dedicated workers?
-
-You should configure dedicated workers when you need to process requests as soon as possible, with no latency.
-
-For example, you may build an HTTP-triggered workflow that returns a synchronous HTTP response to a user, without delay. Or you may be building a Slack bot and need to respond to Slack's webhook within a few seconds. Since these workflows need to respond quickly, they're good cases to use dedicated workers.
-
-### How many workers should I configure?
-
-Incoming requests are handled by a single worker, one at a time. If you only receive one request a minute, and the workflow finishes execution in a few seconds, you may only need one worker.
-
-But you might have a higher-volume app that receives two concurrent requests. In that case, Pipedream spins up **two** workers to handle each request.
-
-For many user-facing (even internal) applications, the number of requests over time can be modeled with a [Poisson distrubution](https://en.wikipedia.org/wiki/Poisson_distribution). You can use that distribution to estimate the number of workers you need at an average time, or set it higher if you want to ensure a specific percentage of requests hit a dedicated worker. You can also save a record of all workflow runs to your own database, with the timestamp they ran ([see `steps.trigger.context.ts`](/workflows/building-workflows/triggers/#stepstriggercontext)), and look at your own pattern of requests, to compute the optimal number of workers.
-
-### Do compute budgets apply to dedicated workers?
-
-No, compute budgets do not apply to dedicated workers, they only apply to credits incurred by compute from running workflows, sources, etc.
-
-### How long does it take to spin up a dedicated worker?
-
-It can take 5-10 minutes for Pipedream to fully configure a new dedicated worker. Before that time, you may still observe cold starts with new incoming requests.
-
-### Pricing for dedicated workers
-
-You're charged {process.env.WARM_WORKERS_CREDITS_PER_INTERVAL} credits for every {process.env.WARM_WORKERS_INTERVAL} a dedicated worker is live, per worker, per {process.env.MEMORY_LIMIT} memory. You can view the credits used by dedicated workers [in your billing settings](https://pipedream.com/settings/billing):
-
-
-
-
-
-For example, if you run a single dedicated worker for 24 hours, that would cost 720 credits:
-
-```
-5 credits per 10 min
-* 6 10-min periods per hour
-* 24 hours
-= 720 credits
-```
-
-{process.env.WARM_WORKERS_INTERVAL} is the _minimum_ interval that Pipedream charges for usage. If you have a dedicated worker live for 1 minute, Pipedream will still charge {process.env.WARM_WORKERS_CREDITS_PER_INTERVAL} credits.
-
-Additionally, any change to dedicated worker configuration, (including worklow deploys) will result in an extra {process.env.WARM_WORKERS_CREDITS_PER_INTERVAL} credits of usage.
-
-
-
-
-
-### Limits
-
-Each attachment is limited to `25MB` in size. The total size of all attachments within a single workflow cannot exceed `200MB`.
diff --git a/docs-v2/pages/workflows/building-workflows/sharing.mdx b/docs-v2/pages/workflows/building-workflows/sharing.mdx
deleted file mode 100644
index 1f777eeedf711..0000000000000
--- a/docs-v2/pages/workflows/building-workflows/sharing.mdx
+++ /dev/null
@@ -1,148 +0,0 @@
-import { Cards, Steps } from 'nextra/components'
-import Callout from '@/components/Callout'
-import RocketShip from '@/components/RocketShip'
-import Image from 'next/image'
-
-# Sharing Workflows
-
-Pipedream provides a few ways to share your workflow:
-1. [Share a workflow as a link with anyone](#creating-a-share-link-for-a-workflow)
-2. [Publish as a public template](#publish-to-the-templates-gallery)
-
-You can share your workflows as templates with other Pipedream accounts with a unique shareable link.
-
-Creating a share link for your workflow will allow anyone with the link to create a template version of your workflow in their own Pipedream account. This will allow others to use your workflow with their own Pipedream account and also their own connected accounts.
-
-[Here's an example of a workflow](https://pipedream.com/new?h=tch_OYWfjz) that sends you a daily SMS message with today's schedule:
-
-
-
-Click **Deploy to Pipedream** below to create a copy of this workflow in your own Pipedream account.
-
-
- } title="Deploy to Pipedream" href="https://pipedream.com/new?h=tch_OYWfjz" />
-
-
-The copied workflow includes the same trigger, steps, and connected account configuration, but it has a separate event history and versioning from the original.
-
-
-Steps that are paused within your workflow will be omitted from the generated share link.
-
-
-## Creating a share link for a workflow
-
-To share a workflow, open the workflow in your browser. Then in the top right menu, select **Create Share Link**.
-
-
-
-Now you can define which prop values should be included in this shareable link.
-
-### Including props
-
-Optionally, you can include the actual individual prop configurations as well. This helps speed up workflow development if the workflow relies on specific prop values to function properly.
-
-You can choose to **Include all** prop values if you'd like, or only select specific props.
-
-For the daily schedule reminder workflow, we included the props for filtering Google Calendar events, but we did _not_ include the SMS number to send the message to. This is because the end user of this workflow will use their own phone number instead:
-
-
-
-
-
-
-**Your connected accounts are not shared.** When other users configure your workflow from the shared link they'll be prompted to connect their own accounts.
-
-
-### Versioning
-
-- When you create a shared link for your workflow, that link is frozen to the version of your workflow at the time the link was created
-- If you make changes to the original workflow, those changes will _not_ be included in the shared workflow link, nor in any workflows copied from the original shared link
-- To push out new changes to a workflow, you'll need to generate a new share link
-
-
-**Share links persist**. You can create multiple share links for the same workflow with different prop configurations, or even different steps. Share links do not expire, nor do newly created link overwrite existing ones.
-
-
-## Publish to the templates gallery
-
-We're excited to highlight the various use cases our community and partners have enabled using Pipedream. To do this, we've created a [Templates Gallery](https://pipedream.com/templates/) with a growing number of high-quality templates to help you discover your next workflow.
-
-The process to publish your own workflow to the Templates Gallery is similar to [creating a share link](#creating-a-share-link-for-a-workflow):
-
-
-
-### Open the workflow you'd like to share
-
-To get started, open the workflow in your browser. Then in the top right menu, select **Publish as a template**.
-
-
-
-
-
-### Configure which prop values to include in the template
-
-Follow the same steps as above to select the prop input values you'd like to include in the template, then click **Continue**
-
-### Enter the required information for the template title, description, and tags
-
-On the next screen, you'll be prompted for additional information about your template:
-
-- **Developer name**: This is probably you — this name will be displayed as the author of the template.
-- **Template name**: The name of the template.
-- **Brief description**: A short description of the template, which will be displayed on the listing page (maximum 256 characters). [See here](https://pipedream.com/templates) for examples.
-- **Longer description**: Use Markdown to create a more in-depth description. We recommend including distinct sections as H2s, for you to provide an **Overview**, **Steps**, and **Use Cases**. This will be displayed on the details page for the template. Here's an example: [Notion Voice Notes (Google Drive)](https://pipedream.com/templates/notion-voice-notes-google-drive-version-mpt_2WRFKY).
-- **Use cases**: Select one or more categories that align with the use cases for your template to help users discover it.
-- **Affiliate token**: If you're a [Pipedream affiliate](https://pipedream.com/affiliates), you can enter your unique token here to earn commissions on any users who sign up for Pipedream after using your template.
-
-### Click **Submit**
-
-- Once you've filled out the required information, click **Submit**.
-- We'll review your template and will email you once it goes live!
-
-
-
-## FAQ
-
-### If changes are made to the original workflow, will copied versions of the workflow from the shared link also change?
-
-No, workflows copied from a shared link will have separate version histories from the original workflow. You can modify your original workflow and it will not affect copied workflows.
-
-### Will my connected accounts be shared with the workflow?
-
-No, your connected accounts are not shared. Instead, copied workflows display a slot in actions that require a connected account, so the user of the copied workflow can provide their own accounts instead.
-
-For example, if one of your steps relies on a Slack connected account to send a message, then the copied workflow will display the need to connect a Slack account.
-
-### I haven't made any changes to my workflow, but if I generate another shared link will it override my original link?
-
-No, if the steps and prop configuration of the workflow is exactly the same, then the shared link URL will also be exactly the same.
-
-The shared workflow link is determined by the configuration of your workflow, it's not a randomly generated ID.
-
-### Will generating new shared links disable or delete old links?
-
-No, each link you generate will be available even if you create new versions based on changes or included props from the original workflow.
-
-### What plan is this feature available on?
-
-Sharing workflows via link is available on all plans, including the Free plan.
-
-### Do users of my workflow need to have a subscription?
-
-To copy a workflow, a subscription is not required. However, the copied workflow is subject to the current workspace's plan limits.
-
-For example, if a workflow requires more connected accounts than what's available on the [Free plan](/pricing/#free-plan), then users of your workflow will require a plan to run the workflow properly.
-
-### Will copies of my workflow use my credits?
-
-No. Copied workflows have entirely separate versioning, connected accounts, and billing. Sharing workflow copies is free, and the user of the copy usage is responsible for credit usage. Your original workflow is entirely separate from the copy.
-
-### How can I transfer all of my workflows from one account to another?
-
-It's only possible to share a single workflow at time with a link at this time.
-
-If you're trying to migrate all resources from one workspace to another [please contact us for help](mailto:support@pipedream.com).
-
-### Are step notes included when I share a workflow?
-
-Yes any [step notes](/workflows/#step-notes) you've added to your workflow are included in the copied version.
diff --git a/docs-v2/pages/workflows/building-workflows/sources.mdx b/docs-v2/pages/workflows/building-workflows/sources.mdx
deleted file mode 100644
index 29c80d8387111..0000000000000
--- a/docs-v2/pages/workflows/building-workflows/sources.mdx
+++ /dev/null
@@ -1,155 +0,0 @@
-import Callout from '@/components/Callout'
-import VideoPlayer from '@/components/VideoPlayer'
-
-# Sources
-
-
-
-Event sources operate primarily as workflow triggers. When you add a new app-based [trigger](/workflows/building-workflows/triggers/) to your workflow, you're creating an event source.
-
-
-
-Event sources run as their own resources, separate from workflows, for two reasons:
-
-- A single event sources can trigger more than one workflow. If you have a data source that you want to run _multiple_ workflows, you can create an event source once and use it as the trigger for each workflow.
-- If you need to consume events emitted by event sources in your own application, you don't need to run a workflow: you can use Pipedream's [REST API](/rest-api/) or a [private, real-time SSE stream](/workflows/data-management/destinations/sse/) to access the event data directly.
-
-You can view your event sources at [https://pipedream.com/sources](https://pipedream.com/sources). Here, you'll see the events a specific source has emitted, as well as the logs and configuration for that source.
-
-## Overview
-
-Event sources collect data from apps or service like Github, Twitter, and Google Calendar, then **emit** this data as individual events. These events trigger linked workflows, and [can be retrieved using the API or SSE interfaces](#consuming-events-from-sources).
-
-If the service supports webhooks or another mechanism for real-time data delivery, the event source uses it. For example, Google Sheets supports webhooks, which allows Google Sheets event sources to emit updates instantly.
-
-If a service doesn't support real-time event delivery, Pipedream polls the API for updates every few minutes, emitting events as the API produces them. For example, Airtable doesn't support webhooks, so we poll their API for new records added to a table.
-
-## Creating event sources
-
-You can create event sources from the Pipedream UI or CLI.
-
-### Creating a source from the UI
-
-Visit [https://pipedream.com/sources](https://pipedream.com/sources) and click the **New +** button at the top right to create a new event source. You'll see a list of sources tied to apps (like Twitter and Github) and generic interfaces (like HTTP). Select your source, and you'll be asked to connect any necessary accounts (for example, the Twitter source requires you authorize Pipedream access to your Twitter account), and enter the values for any configuration settings tied to the source.
-
-Once you've created a source, you can use it to trigger [Pipedream workflows](/workflows/building-workflows/) or [consume its events](#consuming-events-from-sources) using Pipedream's APIs.
-
-### Creating a source from the CLI
-
-[Download the CLI](/components/contributing/cli/install/) and run:
-
-```bash
-pd deploy
-```
-
-This will bring up an interactive menu prompting you to select a source. Once selected, you'll be asked to connect any necessary accounts (for example, the Twitter source requires you authorize Pipedream access to your Twitter account), and enter the values for any configuration settings tied to the source.
-
-Once you've created a source, you can use it to trigger [Pipedream workflows](/workflows/building-workflows/) or [consume its events](#consuming-events-from-sources) using Pipedream's APIs.
-
-## Consuming events from sources
-
-You can view the events for a source in the sources UI, under the **Events** section of that source.
-
-You can also trigger a [Pipedream workflow](/workflows/building-workflows/) every time your source emits a new event. This lets you run workflows for every new tweet, every new item in an RSS feed, and more.
-
-Finally, you can consume events programmatically, outside the Pipedream platform, in a few different ways:
-
-- In real-time, using the [SSE stream](/workflows/data-management/destinations/sse/) linked to your source
-- In real-time, via the CLI's [`pd events` command](/components/contributing/cli/reference/#pd-events)
-- In batch, using the [REST API](/rest-api/)
-
-## Example: HTTP source
-
-The simplest event source is an **HTTP source**.
-
-When you create an HTTP source:
-
-- You get a unique HTTP endpoint that you can send any HTTP request to.
-- You can view the details of any HTTP request sent to your endpoint: its payload, headers, and more.
-- You can delete the source and its associated events once you're done.
-
-HTTP sources are essentially [request bins](https://requestbin.com) that can be managed via API.
-
-HTTP sources are a good example of how you can turn an event stream into an API: the HTTP requests are the **event stream**, generated from your application, client browsers, webhooks, etc. Then, you can retrieve HTTP requests via Pipedream's [**REST API**](/rest-api/), or stream them directly to other apps using the [SSE interface](/workflows/data-management/destinations/sse/).
-
-[**See the Github quickstart for more information on HTTP event sources**](https://github.com/PipedreamHQ/pipedream/tree/master/components/http#quickstart).
-
-## Example: Cron jobs
-
-You can also use event sources to run any Node code on a schedule, allowing you to poll a service or API for data and emit that data as an event. The emitted events can trigger Pipedream workflows, and can be retrieved using Pipedream's [**REST API**](/rest-api/) or [SSE interface](/workflows/data-management/destinations/sse/).
-
-## Example: RSS
-
-You can run an event source that polls an RSS for new items and emits them in real time as formatted JSON.
-
-[**Create an RSS event source here**](https://pipedream.com/sources/new?app=rss&key=rss-new-item-in-feed).
-
-## Test Events
-
-
-
-Test events are critical for developing workflows effectively. Without a test event, you won't be able to test your workflow end to end in the workflow builder or see the shape of the event data that triggers the workflow.
-
-Test events can be sourced from recent data, generated by real actions, or generated manually.
-
-### Recent past events
-During creation, most sources will attempt to fetch up to 50 of the most recent events.
-
-
-Not all sources will fetch events automatically
-
-Not all sources support pre-fetched events currently, but you can still generate test events yourself by performing the action that triggers the source.
-
-
-
-
-
-### Generate a real event manually
-If there aren't any existing events for the source to fetch, the next best way to produce a test event for your workflow is to generate one in the relevant application.
-
-For example, if your workflow is triggered by [New Files in Dropbox](https://pipedream.com/apps/dropbox/triggers/new-file), try adding a file to your Dropbox account.
-
-
-
-### Generate a sample test event
-Certain event sources support the ability to generate test events using static sample event data.
-
-#### Hardcoded sample events
-For example, the [New Message from Discord source](https://pipedream.com/apps/discord/triggers/new-message) references [this static event](https://github.com/PipedreamHQ/pipedream/blob/master/components/discord/sources/new-message/test-event.mjs), which is a hardcoded file with purely representative data. The goal for this feature is to provide your workflow with the **expected event shape** to expect, but **without the expected values**.
-
-
-
-#### Customizing the sample event
-If the provided static event is not sufficient for you to develop your workflow because you need to check against specific values (but are not able to generate real triggering events in the application), you can also customize the sample event.
-
-1. Select the arrow on the right side of the "Generate Test Event" button
-2. Select "Modify Test Event"
-3. Make whatever changes you'd like to the sample event
-4. Click "Send Custom Test Event"
-
-
-
-To reset the custom event JSON back to the sample event, click the "Reset" button at the top right of the test event window:
-
-
-
-
-Sample data may contain inconsistencies
-
-Whenever possible, we recommend using a recent real event, either retrieved automatically or generated manually by an action.
-
-Generating test data manually can result in typos or missing fields that your workflow depends on.
-
-
-## Publishing a new event source, or modifying an existing source
-
-Anyone can create an event source or edit an existing one. The code for all event sources is public, and kept in the [`PipedreamHQ/pipedream` repo](https://github.com/PipedreamHQ/pipedream). [Read this quickstart](/components/contributing/sources-quickstart/) and see the [event source API docs](/components/contributing/api/) to learn more about the source development process.
-
-You can chat about source development with the Pipedream team in the `#contribute` channel of our [public Slack](https://join.slack.com/t/pipedream-users/shared_invite/zt-ernlymsn-UHfPg~Dfp08uGkAd8dpkww), and in the `#dev` topic in the [Pipedream community](https://pipedream.com/community/c/dev/11).
-
-## Limits
-
-Event sources are subject to the [same limits as Pipedream workflows](/workflows/limits/), except:
-
-- Sources have a default timeout of 5 min.
-- Memory is fixed at 256MB.
diff --git a/docs-v2/pages/workflows/building-workflows/triggers.mdx b/docs-v2/pages/workflows/building-workflows/triggers.mdx
deleted file mode 100644
index 1144ad30ce44f..0000000000000
--- a/docs-v2/pages/workflows/building-workflows/triggers.mdx
+++ /dev/null
@@ -1,853 +0,0 @@
-import Image from 'next/image'
-import Callout from '@/components/Callout'
-import { Tabs } from 'nextra/components'
-import PipedreamImg from '@/components/PipedreamImg'
-import VideoPlayer from "@/components/VideoPlayer";
-
-# Triggers
-
-
-
-**Triggers** define the type of event that runs your workflow. For example, HTTP triggers expose a URL where you can send any HTTP requests. Pipedream will run your workflow on each request. The Scheduler trigger runs your workflow on a schedule, like a cron job.
-
-Today, we support the following triggers:
-
-- [Triggers for apps like Twitter, GitHub, and more](#app-based-triggers)
-- [HTTP / Webhook](#http)
-- [Schedule](#schedule)
-- [Email](#email)
-- [RSS](#rss)
-
-If there's a specific trigger you'd like supported, please [let us know](https://pipedream.com/support/).
-
-## App-based Triggers
-
-You can trigger a workflow on events from apps like Twitter, Google Calendar, and more using [event sources](/workflows/building-workflows/triggers/). Event sources run as separate resources from your workflow, which allows you to trigger _multiple_ workflows using the same source. Here, we'll refer to event sources and workflow triggers interchangeably.
-
-When you create a workflow, click **Add Trigger** to view the available triggers:
-
-
-
-This will open a new menu to search and choose a trigger for your workflow:
-
-
-
-Search by **app name** to find triggers associated with your app. For Google Calendar, for example, you can run your workflow every time a new event is **added** to your calendar, each time an event **starts**, **ends**, and more:
-
-
-
-Once you select your trigger, you'll be asked to connect any necessary accounts (for example, Google Calendar sources require you authorize Pipedream access to your Google account), and enter the values for any configuration settings.
-
-Some sources are configured to retrieve an initial set of events when they're created. Others require you to generate events in the app to trigger your workflow. If your source generates an initial set of events, you'll see them appear in the **Select events** dropdown in the **Select Event** step:
-
-
-
-Then you can select a specific test event and manually trigger your workflow with that event data by clicking **Send Test Event**. Now you're ready to build your workflow with the selected test event.
-
-### What's the difference between an event source and a trigger?
-
-You'll notice the docs use the terms **event source** and **trigger** interchangeably above. It's useful to clarify the distinction in the context of workflows.
-
-[Event sources](/workflows/building-workflows/triggers/) run code that collects events from some app or service and emits events as the source produces them. An event source can be used to **trigger** any number of workflows.
-
-For example, you might create a single source to listen for new Twitter mentions for a keyword, then trigger multiple workflows each time a new tweet is found: one to [send new tweets to Slack](https://pipedream.com/@pravin/twitter-mentions-slack-p_dDCA5e/edit), another to [save those tweets to an Amazon S3 bucket](https://pipedream.com/@dylan/twitter-to-s3-p_KwCZGA/readme), etc.
-
-**This model allows you to separate the data produced by a service (the event source) from the logic to process those events in different contexts (the workflow)**.
-
-Moreover, you can access events emitted by sources using Pipedream's [SSE](/workflows/data-management/destinations/sse/) and [REST APIs](/rest-api/). This allows you to access these events in your own app, outside Pipedream's platform.
-
-### Can I add multiple triggers to a workflow?
-
-Yes, you can add any number of triggers to a workflow. Click the top right menu in the trigger step and select **Add trigger**.
-
-
-
-### Shape of the `steps.trigger.event` object
-
-In all workflows, you have access to [event data](/workflows/building-workflows/triggers/#event-format) using the variable `steps.trigger.event`.
-
-The shape of the event is specific to the source. For example, RSS sources produce events with a `url` and `title` property representing the data provided by new items from a feed. Google Calendar sources produce events with a meeting title, start date, etc.
-
-## HTTP
-
-When you select the **HTTP** trigger:
-
-
-
-Pipedream creates a URL endpoint specific to your workflow:
-
-
-
-You can send any HTTP requests to this endpoint, from anywhere on the web. You can configure the endpoint as the destination URL for a webhook or send HTTP traffic from your application - we'll accept any [valid HTTP request](#valid-requests).
-
-
-
-Pipedream also supports [custom domains](/workflows/domains/). This lets you host endpoints on `https://endpoint.yourdomain.com` instead of the default \`{process.env.ENDPOINT_BASE_URL}\` domain.
-
-
-### Accessing HTTP request data
-
-You can access properties of the HTTP request, like the method, payload, headers, and more, in [the `event` object](/workflows/building-workflows/triggers/#event-format), accessible in any [code](/workflows/building-workflows/code/) or [action](/components/contributing/#actions) step.
-
-### Valid Requests
-
-You can send a request to your endpoint using any valid HTTP method: `GET`, `POST`, `HEAD`, and more.
-
-We default to generating HTTPS URLs in the UI, but will accept HTTP requests against the same endpoint URL.
-
-You can send data to any path on this host, with any query string parameters. You can access the full URL in the `event` object if you'd like to write code that interprets requests with different URLs differently.
-
-You can send data of any [Media Type](https://www.iana.org/assignments/media-types/media-types.xhtml) in the body of your request.
-
-The primary limit we impose is on the size of the request body: we'll issue a `413 Payload Too Large` status when the body [exceeds our specified limit](#request-entity-too-large).
-
-### Authorizing HTTP requests
-
-By default, HTTP triggers are public and require no authorization to invoke. Anyone with the endpoint URL can trigger your workflow. When possible, we recommend adding authorization.
-
-HTTP triggers support two built-in authorization types in the **Authorization** section of the HTTP trigger configuration: a [static, custom token](#custom-token) and [OAuth](#oauth).
-
-#### Custom token
-
-To configure a static, custom token for HTTP auth:
-
-1. Open the **Configure** section of the HTTP trigger
-2. Select **Custom token**.
-3. Enter whatever secret you'd like and click **Save and Continue**.
-
-
-
-When making HTTP requests, pass the custom token as a `Bearer` token in the `Authorization` header:
-
-```bash
-curl -H 'Authorization: Bearer ' https://myendpoint.m.pipedream.net
-```
-
-#### OAuth
-
-You can also authorize requests using [Pipedream OAuth clients](/rest-api/auth/#oauth):
-
-1. Open the **Configure** section of the HTTP trigger.
-2. Select **OAuth**.
-3. If you don't have an existing OAuth client, [create one in your workspace's API settings](/rest-api/auth#creating-an-oauth-client).
-
-
-
-Next, you'll need to [generate an OAuth access token](/rest-api/auth/#how-to-get-an-access-token).
-
-When making HTTP requests, pass the OAuth access token as a `Bearer` token in the `Authorization` header:
-
-```bash
-curl -H 'Authorization: Bearer ' https://myendpoint.m.pipedream.net
-```
-
-You can use the Pipedream SDK to automatically refresh access tokens and invoke workflows, or make HTTP requests directly to the workflow's URL:
-
-
-
-```typescript
-import { createBackendClient, HTTPAuthType } from "@pipedream/sdk/server";
-
-// These secrets should be saved securely and passed to your environment
-const pd = createBackendClient({
- credentials: {
- clientId: "{oauth_client_id}",
- clientSecret: "{oauth_client_secret}",
- },
-});
-
-await pd.invokeWorkflow(
- "enabc123", // pass the endpoint ID or full URL here
- {
- method: "POST",
- body: {
- key: "value",
- }
- },
- HTTPAuthType.OAuth // Will automatically send the Authorization header with a fresh token
-)
-```
-
-
-```javascript
-import { createBackendClient } from "@pipedream/sdk/server";
-
-// These secrets should be saved securely and passed to your environment
-const pd = createBackendClient({
- credentials: {
- clientId: "{oauth_client_id}",
- clientSecret: "{oauth_client_secret}",
- },
-});
-
-await pd.invokeWorkflow(
- "enabc123", // pass the endpoint ID or full URL here
- {
- method: "POST",
- body: {
- key: "value",
- }
- },
- "oauth" // Will automatically send the Authorization header with a fresh token
-)
-```
-
-
-```bash
-# First, obtain an OAuth access token
-curl -X POST https://api.pipedream.com/v1/oauth/token \
- -H "Content-Type: application/json" \
- -d '{
- "grant_type": "client_credentials",
- "client_id": "{oauth_client_id}",
- "client_secret": "{oauth_client_secret}"
- }'
-
-# The response will include an access_token. Use it in the Authorization header below.
-
-curl -X POST https://{your-endpoint-url} \
- -H "Content-Type: application/json" \
- -H "Authorization: Bearer {access_token}" \
- -d '{
- "message": "Hello, world"
- }'
-```
-
-
-
-
-#### Implement your own authorization logic
-
-Since you have access to the entire request object, and can issue any HTTP response from a workflow, you can implement custom logic to validate requests.
-
-For example, you could require JWT tokens and validate those tokens using the [`jsonwebtoken` package](https://www.npmjs.com/package/jsonwebtoken) at the start of your workflow.
-
-### Custom domains
-
-To configure endpoints on your own domain, e.g. `endpoint.yourdomain.com` instead of the default `*.m.pipedream.net` domain, see the [custom domains](/workflows/domains/) docs.
-
-### How Pipedream handles JSON payloads
-
-When you send JSON in the HTTP payload, or when JSON data is sent in the payload from a webhook provider, **Pipedream converts that JSON to its equivalent JavaScript object**. The trigger data can be referenced using [the `steps` object](#shape-of-the-stepstriggerevent-object).
-
-In the [Inspector](/workflows/building-workflows/inspect/), we present `steps.trigger.event` cleanly, indenting nested properties, to make the payload easy to read. Since `steps.trigger.event` is a JavaScript object, it's easy to reference and manipulate properties of the payload using dot-notation.
-
-### How Pipedream handles `multipart/form-data`
-
-When you send [form data](https://ec.haxx.se/http/http-multipart) to Pipedream using a `Content-Type` of `multipart/form-data`, Pipedream parses the payload and converts it to a JavaScript object with a property per form field. For example, if you send a request with two fields:
-
-```bash
-curl -F 'name=Leia' -F 'title=General' https://myendpoint.m.pipedream.net
-```
-
-Pipedream will convert that to a JavaScript object, `event.body`, with the following shape:
-
-```js
-{
- name: "Leia",
- title: "General",
-}
-```
-
-### How Pipedream handles HTTP headers
-
-HTTP request headers will be available in the `steps.trigger.event.headers` steps export in your downstream steps.
-
-Pipedream will automatically lowercase header keys for consistency.
-
-### Pipedream-specific request parameters
-
-These params can be set as headers or query string parameters on any request to a Pipedream HTTP endpoint.
-
-#### `x-pd-nostore`
-
-Set to `1` to prevent logging any data for this execution. Pipedream will execute all steps of the workflow, but no data will be logged to Pipedream. No event will show up in the inspector or the Event History UI.
-
-If you need to disable logging for _all_ requests, use the workflow's [Data Retention controls](/workflows/building-workflows/settings/#data-retention-controls), instead.
-
-#### `x-pd-notrigger`
-
-Set to `1` to send an event to the workflow for testing. Pipedream will **not** trigger the production version of the workflow, but will display the event in the [list of test events](/workflows/building-workflows/triggers/#selecting-a-test-event) on the HTTP trigger.
-
-#### Limits
-
-You can send any content, up to the [HTTP payload size limit](/workflows/limits/#http-request-body-size), as a part of the form request. The content of uploaded images or other binary files does not contribute to this limit — the contents of the file will be uploaded at a Pipedream URL you have access to within your source or workflow. See the section on [Large File Support](#large-file-support) for more detail.
-
-### Sending large payloads
-
-_If you're uploading files, like images or videos, you should use the [large file upload interface](#large-file-support), instead_.
-
-By default, the body of HTTP requests sent to a source or workflow is limited to {process.env.PAYLOAD_SIZE_LIMIT}. **But you can send an HTTP payload of any size to a [workflow](/workflows/building-workflows/) or an [event source](/workflows/building-workflows/triggers/) by including the `pipedream_upload_body=1` query string or an `x-pd-upload-body: 1` HTTP header in your request**.
-
-```bash
-curl -d '{ "name": "Yoda" }' \
- https://endpoint.m.pipedream.net\?pipedream_upload_body\=1
-
-curl -d '{ "name": "Yoda" }' \
- -H "x-pd-upload-body: 1" \
- https://endpoint.m.pipedream.net
-```
-
-In workflows, Pipedream saves the raw payload data in a file whose URL you can reference in the variable `steps.trigger.event.body.raw_body_url`.
-
-
-
-Within your workflow, you can download the contents of this data using the **Send HTTP Request** action, or [by saving the data as a file to the `/tmp` directory](/workflows/building-workflows/code/nodejs/working-with-files/).
-
-#### Example: Download the HTTP payload using the Send HTTP Request action
-
-_Note: you can only download payloads at most {process.env.FUNCTION_PAYLOAD_LIMIT} in size using this method. Otherwise, you may encounter a [Function Payload Limit Exceeded](/troubleshooting/#function-payload-limit-exceeded) error._
-
-You can download the large HTTP payload using the **Send HTTP Request** action. [Copy this workflow to see how this works](https://pipedream.com/new?h=tch_egfAby).
-
-The payload from the trigger of the workflow is exported to the variable `steps.retrieve_large_payload.$return_value`:
-
-
-
-#### Example: Download the HTTP payload to the `/tmp` directory
-
-[This workflow](https://pipedream.com/new?h=tch_5ofXkX) downloads the HTTP payload, saving it as a file to the [`/tmp` directory](/workflows/building-workflows/code/nodejs/working-with-files/#the-tmp-directory).
-
-```javascript
-import stream from "stream";
-import { promisify } from "util";
-import fs from "fs";
-import got from "got";
-
-export default defineComponent({
- async run({ steps, $ }) {
- const pipeline = promisify(stream.pipeline);
- await pipeline(
- got.stream(steps.trigger.event.body.raw_body_url),
- fs.createWriteStream(`/tmp/raw_body`)
- );
- },
-})
-```
-
-You can [read this file](/workflows/building-workflows/code/nodejs/working-with-files/#reading-a-file-from-tmp) in subsequent steps of your workflow.
-
-#### How the payload data is saved
-
-Your raw payload is saved to a Pipedream-owned [Amazon S3 bucket](https://aws.amazon.com/s3/). Pipedream generates a [signed URL](https://docs.aws.amazon.com/AmazonS3/latest/dev/ShareObjectPreSignedURL.html) that allows you to access to that file for up to 30 minutes. After 30 minutes, the signed URL will be invalidated, and the file will be deleted.
-
-#### Limits
-
-**You can upload payloads up to 5TB in size**. However, payloads that large may trigger [other Pipedream limits](/workflows/limits/). Please [reach out](https://pipedream.com/support/) with any specific questions or issues.
-
-### Large File Support
-
-_This interface is best used for uploading large files, like images or videos. If you're sending JSON or other data directly in the HTTP payload, and encountering a **Request Entity Too Large** error, review the section above for [sending large payloads](#sending-large-payloads)_.
-
-You can upload any file to a [workflow](/workflows/building-workflows/) or an [event source](/workflows/building-workflows/triggers/) by making a `multipart/form-data` HTTP request with the file as one of the form parts. **Pipedream saves that file to a Pipedream-owned [Amazon S3 bucket](https://aws.amazon.com/s3/), generating a [signed URL](https://docs.aws.amazon.com/AmazonS3/latest/dev/ShareObjectPreSignedURL.html) that allows you to access to that file for up to 30 minutes**. After 30 minutes, the signed URL will be invalidated, and the file will be deleted.
-
-In workflows, these file URLs are provided in the `steps.trigger.event.body` variable, so you can download the file using the URL within your workflow, or pass the URL on to another third-party system for it to process.
-
-
-
-Within your workflow, you can download the contents of this data using the **Send HTTP Request** action, or [by saving the data as a file to the `/tmp` directory](/workflows/building-workflows/code/nodejs/working-with-files/).
-
-#### Example: upload a file using `cURL`
-
-For example, you can upload an image to a workflow using `cURL`:
-
-```bash
-curl -F 'image=@my_image.png' https://myendpoint.m.pipedream.net
-```
-
-The `-F` tells `cURL` we're sending form data, with a single "part": a field named `image`, with the content of the image as the value (the `@` allows `cURL` to reference a local file).
-
-When you send this image to a workflow, Pipedream [parses the form data](#how-pipedream-handles-multipartform-data) and converts it to a JavaScript object, `event.body`. Select the event from the [inspector](/workflows/building-workflows/inspect/#the-inspector), and you'll see the `image` property under `event.body`:
-
-
-
-When you upload a file as a part of the form request, Pipedream saves it to a Pipedream-owned [Amazon S3 bucket](https://aws.amazon.com/s3/), generating a [signed URL](https://docs.aws.amazon.com/AmazonS3/latest/dev/ShareObjectPreSignedURL.html) that allows you to access to that file for up to 30 minutes. After 30 minutes, the signed URL will be invalidated, and the file will be deleted.
-
-Within the `image` property of `event.body`, you'll see the value of this URL in the `url` property, along with the `filename` and `mimetype` of the file. Within your workflow, you can download the file, or pass the URL to a third party system to handle, and more.
-
-#### Example: Download this file to the `/tmp` directory
-
-[This workflow](https://pipedream.com/@dylburger/example-download-an-image-to-tmp-p_KwC2Ad/edit) downloads an image passed in the `image` field in the form request, saving it to the [`/tmp` directory](/workflows/building-workflows/code/nodejs/working-with-files/#the-tmp-directory).
-
-```javascript
-import stream from "stream";
-import { promisify } from "util";
-import fs from "fs";
-import got from "got";
-
-const pipeline = promisify(stream.pipeline);
-await pipeline(
- got.stream(steps.trigger.event.body.image.url),
- fs.createWriteStream(`/tmp/${steps.trigger.event.body.image.filename}`)
-);
-```
-
-#### Example: Upload image to your own Amazon S3 bucket
-
-[This workflow](https://pipedream.com/@dylburger/example-save-uploaded-file-to-amazon-s3-p_o7Cm9z/edit) streams the uploaded file to an Amazon S3 bucket you specify, allowing you to save the file to long-term storage.
-
-#### Limits
-
-Since large files are uploaded using a `Content-Type` of `multipart/form-data`, the limits that apply to [form data](#how-pipedream-handles-multipartform-data) also apply here.
-
-The content of the file itself does not contribute to the HTTP payload limit imposed for forms. **You can upload files up to 5TB in size**. However, files that large may trigger [other Pipedream limits](/workflows/limits/). Please [reach out](https://pipedream.com/support/) with any specific questions or issues.
-
-### Cross-Origin HTTP Requests
-
-We return the following headers on HTTP `OPTIONS` requests:
-
-```
-Access-Control-Allow-Origin: *
-Access-Control-Allow-Methods: GET,HEAD,PUT,PATCH,POST,DELETE
-```
-
-Thus, your endpoint will accept [cross-origin HTTP requests](https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS) from any domain, using any standard HTTP method.
-
-### HTTP Responses
-
-#### Default HTTP response
-
-By default, when you send a [valid HTTP request](#valid-requests) to your endpoint URL, you should expect to receive a `200 OK` status code with the following payload:
-
-```
-Success!
-To customize this response, check out our docs here
-```
-
-When you're processing HTTP requests, you often don't need to issue any special response to the client. We issue this default response so you don't have to write any code to do it yourself.
-
-
-
-**How can my workflow run faster?**
-
-See [our guide on running workflows faster](/troubleshooting/#how-can-my-workflow-run-faster).
-
-
-#### Customizing the HTTP response
-
-If you need to issue a custom HTTP response from a workflow, you can either:
-
-- Use the **Return HTTP response** action, available on the **HTTP / Webhook** app, or
-- **Use the `$.respond()` function in a Code or Action step**.
-
-#### Using the HTTP Response Action
-
-The HTTP Response action lets you return HTTP responses without the need to write code. You can customize the response status code, and optionally specify response headers and body.
-
-This action uses `$.respond()` and will always [respond immediately](#returning-a-response-immediately) when called in your workflow. A [response error](#errors-with-http-responses) will still occur if your workflow throws an Error before this action runs.
-
-#### Using custom code with `$.respond()`
-
-You can return HTTP responses in Node.js code with the `$.respond()` function.
-
-`$.respond()` takes a single argument: an object with properties that specify the body, headers, and HTTP status code you'd like to respond with:
-
-```javascript
-defineComponent({
- async run({ steps, $ }) {
- await $.respond({
- status: 200,
- headers: { "my-custom-header": "value" },
- body: { message: "My custom response" }, // This can be any string, object, Buffer, or Readable stream
- });
- },
-});
-```
-
-The value of the `body` property can be either a string, object, a [Buffer](https://nodejs.org/api/buffer.html#buffer_buffer) (binary data), or a [Readable stream](https://nodejs.org/api/stream.html#stream_readable_streams). Attempting to return any other data may yield an error.
-
-In the case where you return a Readable stream:
-
-- You must `await` the `$.respond` function (`await $.respond({ ... }`)
-- The stream must close and be finished reading within your [workflow execution timeout](/workflows/limits/#time-per-execution).
-- You cannot return a Readable and use the [`immediate: true`](#returning-a-response-immediately) property of `$.respond`.
-
-#### Timing of `$.respond()` execution
-
-You may notice some response latency calling workflows that use `$.respond()` from your HTTP client. By default, `$.respond()` is called at the end of your workflow, after all other code is done executing, so it may take some time to issue the response back.
-
-If you need to issue an HTTP response in the middle of a workflow, see the section on [returning a response immediately](#returning-a-response-immediately).
-
-#### Returning a response immediately
-
-You can issue an HTTP response within a workflow, and continue the rest of the workflow execution, by setting the `immediate` property to `true`:
-
-```javascript
-defineComponent({
- async run({ steps, $ }) {
- await $.respond({
- immediate: true,
- status: 200,
- headers: { "my-custom-header": "value" },
- body: { message: "My custom response" },
- });
- },
-});
-```
-
-Passing `immediate: true` tells `$.respond()` to issue a response back to the client at this point in the workflow. After the HTTP response has been issued, the remaining code in your workflow runs.
-
-This can be helpful, for example, when you're building a Slack bot. When you send a message to a bot, Slack requires a `200 OK` response be issued immediately, to confirm receipt:
-
-```javascript
-defineComponent({
- async run({ steps, $ }) {
- await $.respond({
- immediate: true,
- status: 200,
- body: "",
- });
- },
-});
-```
-
-Once you issue the response, you'll probably want to process the message from the user and respond back with another message or data requested by the user.
-
-[Here's an example workflow](https://pipedream.com/@dylburger/issue-http-response-immediately-continue-running-workflow-p_pWCWGJ) that shows how to use `immediate: true` and run code after the HTTP response is issued.
-
-#### Errors with HTTP Responses
-
-If you use `$.respond()` in a workflow, **you must always make sure `$.respond()` is called in your code**. If you make an HTTP request to a workflow, and run code where `$.respond()` is _not_ called, your endpoint URL will issue a `400 Bad Request` error with the following body:
-
-```
-No $.respond called in workflow
-```
-
-This might happen if:
-
-- You call `$.respond()` conditionally, where it does not run under certain conditions.
-- Your workflow throws an Error before you run `$.respond()`.
-- You return data in the `body` property that isn't a string, object, or Buffer.
-
-If you can't handle the `400 Bad Request` error in the application calling your workflow, you can implement `try` / `finally` logic to ensure `$.respond()` always gets called with some default message. For example:
-
-```javascript
-defineComponent({
- async run({ steps, $ }) {
- try {
- // Your code here that might throw an exception or not run
- throw new Error("Whoops, something unexpected happened.");
- } finally {
- await $.respond({
- status: 200,
- body: {
- msg: "Default response",
- },
- });
- }
- },
-});
-```
-
-### Errors
-
-Occasionally, you may encounter errors when sending requests to your endpoint:
-
-#### Request Entity Too Large
-
-The endpoint will issue a `413 Payload Too Large` status code when the body of your request exceeds {process.env.PAYLOAD_SIZE_LIMIT}.
-
-In this case, the request will still appear in the inspector, with information on the error.
-
-#### API key does not exist
-
-Your API key is the host part of the endpoint, e.g. the `eniqtww30717` in `eniqtww30717.m.pipedream.net`. If you attempt to send a request to an endpoint that does not exist, we'll return a `404 Not Found` error.
-
-We'll also issue a 404 response on workflows with an HTTP trigger that have been disabled.
-
-#### Too Many Requests
-
-If you send too many requests to your HTTP source within a small period of time, we may issue a `429 Too Many Requests` response. [Review our limits](/workflows/limits/) to understand the conditions where you might be throttled.
-
-You can also [reach out](https://pipedream.com/support/) to inquire about raising this rate limit.
-
-If you control the application sending requests, you should implement [a backoff strategy](https://medium.com/clover-platform-blog/conquering-api-rate-limiting-dcac5552714d) to temporarily slow the rate of events.
-
-## Schedule
-
-Pipedream allows you to run hosted scheduled jobs — commonly-referred to as a "cron job" — [for free](/pricing/). You can think of workflows like scripts that run on a schedule.
-
-You can write scheduled job to send an HTTP request, send a scheduled email, run any Node.js or Python code, connect to any API, and much more. Pipedream manages the servers where these jobs run, so you don't have to worry about setting up a server of your own or operating some service just to run code on a schedule. You write the workflow, we take care of the rest.
-
-### Choosing a Schedule trigger
-
-To create a new scheduled job, create a new workflow and search for the **Schedule** trigger:
-
-
-
-By default, your trigger will be turned **Off**. **To enable it, select either of the scheduling options**:
-
-- **Every** : run the job every N days, hours, minutes (e.g. every 1 day, every 3 hours).
-- **Cron Expression** : schedule your job using a cron expression. For example, the expression `0 0 * * *` will run the job every day at midnight. Cron expressions can be tied to any timezone.
-
-### Testing a scheduled job
-
-If you're running a scheduled job once a day, you probably don't want to wait until the next day's run to test your new code. You can manually run the workflow associated with a scheduled job at any time by pressing the **Run Now** button.
-
-### Job History
-
-You'll see the history of job executions under the **Job History** section of the [Inspector](/workflows/building-workflows/inspect/).
-
-Clicking on a specific job shows the execution details for that job — all the logs and observability associated with that run of the workflow.
-
-### Trigger a notification to an external service (email, Slack, etc.)
-
-You can send yourself a notification — for example, an email or a Slack message — at any point in a workflow by using the relevant [Action](/components/contributing/#actions) or [Destination](/workflows/data-management/destinations/).
-
-If you'd like to email yourself when a job finishes successfully, you can use the [Email Destination](/workflows/data-management/destinations/email/). You can send yourself a Slack message using the Slack Action, or trigger an [HTTP request](/workflows/data-management/destinations/http/) to an external service.
-
-You can also [write code](/workflows/building-workflows/code/) to trigger any complex notification logic you'd like.
-
-### Troubleshooting your scheduled jobs
-
-When you run a scheduled job, you may need to troubleshoot errors or other execution issues. Pipedream offers built-in, step-level logs that show you detailed execution information that should aid troubleshooting.
-
-Any time a scheduled job runs, you'll see a new execution appear in the [Inspector](/workflows/building-workflows/inspect/). This shows you when the job ran, how long it took to run, and any errors that might have occurred. **Click on any of these lines in the Inspector to view the details for a given run**.
-
-Code steps show [logs](/workflows/building-workflows/code/nodejs/#logs) below the step itself. Any time you run `console.log()` or other functions that print output, you should see the logs appear directly below the step where the code ran.
-
-[Actions](/components/contributing/#actions) and [Destinations](/workflows/data-management/destinations/) also show execution details relevant to the specific Action or Destination. For example, when you use the [HTTP Destination](/workflows/data-management/destinations/http/) to make an HTTP request, you'll see the HTTP request and response details tied to that Destination step:
-
-## Email
-
-When you select the **Email** trigger:
-
-
-
-Pipedream creates an email address specific to your workflow. Any email sent to this address triggers your workflow:
-
-
-
-As soon as you send an email to the workflow-specific address, Pipedream parses its body, headers, and attachments into a JavaScript object it exposes in the `steps.trigger.event` variable that you can access within your workflow. This transformation can take a few seconds to perform. Once done, Pipedream will immediately trigger your workflow with the transformed payload.
-
-[Read more about the shape of the email trigger event](/workflows/building-workflows/triggers/#email).
-
-### Sending large emails
-
-By default, you can send emails up to {process.env.EMAIL_PAYLOAD_SIZE_LIMIT} in total size (content, headers, attachments). Emails over this size will be rejected, and you will not see them appear in your workflow.
-
-**You can send emails up to `30MB` in size by sending emails to `[YOUR EMAIL ENDPOINT]@upload.pipedream.net`**. If your workflow-specific email address is `endpoint@pipedream.net`, your "large email address" is `endpoint@upload.pipedream.net`.
-
-Emails delivered to this address are uploaded to a private URL you have access to within your workflow, at the variable `steps.trigger.event.mail.content_url`. You can download and parse the email within your workflow using that URL. This content contains the _raw_ email. Unlike the standard email interface, you must parse this email on your own - see the examples below.
-
-#### Example: Download the email using the Send HTTP Request action
-
-_Note: you can only download emails at most {process.env.FUNCTION_PAYLOAD_LIMIT} in size using this method. Otherwise, you may encounter a [Function Payload Limit Exceeded](/troubleshooting/#function-payload-limit-exceeded) error._
-
-You can download the email using the **Send HTTP Request** action. [Copy this workflow to see how this works](https://pipedream.com/new?h=tch_1AfMyl).
-
-This workflow also parses the contents of the email and exposes it as a JavaScript object using the [`mailparser` library](https://nodemailer.com/extras/mailparser/):
-
-```javascript
-import { simpleParser } from "mailparser";
-
-export default defineComponent({
- async run({ steps, $ }) {
- return await simpleParser(steps.get_large_email_content.$return_value);
- },
-});
-```
-
-#### Example: Download the email to the `/tmp` directory, read it and parse it
-
-[This workflow](https://pipedream.com/new?h=tch_jPfaEJ) downloads the email, saving it as a file to the [`/tmp` directory](/workflows/building-workflows/code/nodejs/working-with-files/#the-tmp-directory). Then it reads the same file (as an example), and parses it using the [`mailparser` library](https://nodemailer.com/extras/mailparser/):
-
-```javascript
-import stream from "stream";
-import { promisify } from "util";
-import fs from "fs";
-import got from "got";
-import { simpleParser } from "mailparser";
-
-// To use previous step data, pass the `steps` object to the run() function
-export default defineComponent({
- async run({ steps, $ }) {
- const pipeline = promisify(stream.pipeline);
- await pipeline(
- got.stream(steps.trigger.event.mail.content_url),
- fs.createWriteStream(`/tmp/raw_email`)
- );
-
- // Now read the file and parse its contents into the `parsed` variable
- // See https://nodemailer.com/extras/mailparser/ for parsing options
- const f = fs.readFileSync(`/tmp/raw_email`);
- return await simpleParser(f);
- },
-});
-```
-
-#### How the email is saved
-
-Your email is saved to a Pipedream-owned [Amazon S3 bucket](https://aws.amazon.com/s3/). Pipedream generates a [signed URL](https://docs.aws.amazon.com/AmazonS3/latest/dev/ShareObjectPreSignedURL.html) that allows you to access to that file for up to 30 minutes. After 30 minutes, the signed URL will be invalidated, and the file will be deleted.
-
-### Email attachments
-
-You can attach any files to your email, up to [the total email size limit](/workflows/limits/#email-triggers).
-
-Attachments are stored in `steps.trigger.event.attachments`, which provides an array of attachment objects. Each attachment in that array exposes key properties:
-
-- `contentUrl`: a URL that hosts your attachment. You can [download this file to the `/tmp` directory](/workflows/building-workflows/code/nodejs/http-requests/#download-a-file-to-the-tmp-directory) and process it in your workflow.
-- `content`: If the attachment contains text-based content, Pipedream renders the attachment in `content`, up to 10,000 bytes.
-- `contentTruncated`: `true` if the attachment contained text-based content larger than 10,000 bytes. If `true`, the data in `content` will be truncated, and you should fetch the full attachment from `contentUrl`.
-
-### Appending metadata to the incoming email address with `+data`
-
-Pipedream provides a way to append metadata to incoming emails by adding a `+` sign to the incoming email key, followed by any arbitrary string:
-
-```
-myemailaddr+test@pipedream.net
-```
-
-Any emails sent to your workflow-specific email address will resolve to that address, triggering your workflow, no matter the data you add after the `+` sign. Sending an email to both of these addresses triggers the workflow with the address `myemailaddr@pipedream.net`:
-
-```
-myemailaddr+test@pipedream.net
-myemailaddr+unsubscribe@pipedream.net
-```
-
-This allows you implement conditional logic in your workflow based on the data in that string.
-
-### Troubleshooting
-
-#### I'm receiving an `Expired Token` error when trying to read an email attachment
-
-Email attachments are saved to S3, and are accessible in your workflows over [pre-signed URLs](https://docs.aws.amazon.com/AmazonS3/latest/userguide/ShareObjectPreSignedURL.html).
-
-If the presigned URL for the attachment has expired, then you'll need to send another email to create a brand new pre-signed URL.
-
-If you're using email attachments in combination with [`$.flow.delay`](/workflows/building-workflows/code/nodejs/delay/) or [`$.flow.rerun`](/workflows/building-workflows/code/nodejs/rerun/) which introduces a gap of time between steps in your workflow, then there's a chance the email attachment's URL will expire.
-
-To overcome this, we suggest uploading your email attachments to your Project's [File Store](/workflows/data-management/file-stores/) for persistent storage.
-
-## RSS
-
-Choose the RSS trigger to watch an RSS feed for new items:
-
-
-
-This will create an RSS [event source](/workflows/building-workflows/triggers/) that polls the feed for new items on the schedule you select. Every time a new item is found, your workflow will run.
-
-## Events
-
-Events trigger workflow executions. The event that triggers your workflow depends on the trigger you select for your workflow:
-
-- [HTTP triggers](/workflows/building-workflows/triggers/#http) invoke your workflow on HTTP requests.
-- [Cron triggers](/workflows/building-workflows/triggers/#schedule) invoke your workflow on a time schedule (e.g., on an interval).
-- [Email triggers](/workflows/building-workflows/triggers/#email) invoke your workflow on inbound emails.
-- [Event sources](/workflows/building-workflows/triggers/#app-based-triggers) invoke your workflow on events from apps like Twitter, Google Calendar, and more.
-
-### Selecting a test event
-
-When you test any step in your workflow, Pipedream passes the test event you select in the trigger step:
-
-
-
-You can select any event you've previously sent to your trigger as your test event, or send a new one.
-
-### Examining event data
-
-When you select an event, you'll see [the incoming event data](#event-format) and the [event context](#stepstriggercontext) for that event:
-
-
-
-Pipedream parses your incoming data and exposes it in the variable [`steps.trigger.event`](#event-format), which you can access in any [workflow step](/workflows/#steps).
-
-### Copying references to event data
-
-When you're [examining event data](#examining-event-data), you'll commonly want to copy the name of the variable that points to the data you need to reference in another step.
-
-Hover over the property whose data you want to reference, and click the **Copy Path** button to its right:
-
-
-
-### Copying the values of event data
-
-You can also copy the value of specific properties of your event data. Hover over the property whose data you want to copy, and click the **Copy Value** button to its right:
-
-
-
-### Event format
-
-When you send an event to your workflow, Pipedream takes the trigger data — for example, the HTTP payload, headers, etc. — and adds our own Pipedream metadata to it.
-
-**This data is exposed in the `steps.trigger.event` variable. You can reference this variable in any step of your workflow**.
-
-You can reference your event data in any [code](/workflows/building-workflows/code/) or [action](/components/contributing/#actions) step. See those docs or the general [docs on passing data between steps](/workflows/#steps) for more information.
-
-The specific shape of `steps.trigger.event` depends on the trigger type:
-
-#### HTTP
-
-| Property | Description |
-| ----------- | :---------------------------------------------------: |
-| `body` | A string or object representation of the HTTP payload |
-| `client_ip` | IP address of the client that made the request |
-| `headers` | HTTP headers, represented as an object |
-| `method` | HTTP method |
-| `path` | HTTP request path |
-| `query` | Query string |
-| `url` | Request host + path |
-
-#### Cron Scheduler
-
-| Property | Description |
-| --------------------- | :---------------------------------------------------------------------------------------------: |
-| `interval_seconds` | The number of seconds between scheduled executions |
-| `cron` | When you've configured a custom cron schedule, the cron string |
-| `timestamp` | The epoch timestamp when the workflow ran |
-| `timezone_configured` | An object with formatted datetime data for the given execution, tied to the schedule's timezone |
-| `timezone_utc` | An object with formatted datetime data for the given execution, tied to the UTC timezone |
-
-#### Email
-
-We use Amazon SES to receive emails for the email trigger. You can find the shape of the event in the [SES docs](https://docs.aws.amazon.com/ses/latest/DeveloperGuide/receiving-email-notifications-contents.html).
-
-### `steps.trigger.context`
-
-`steps.trigger.event` contain your event's **data**. `steps.trigger.context` contains _metadata_ about the workflow and the execution tied to this event.
-
-You can use the data in `steps.trigger.context` to uniquely identify the Pipedream event ID, the timestamp at which the event invoked the workflow, and more:
-
-| Property | Description |
-| ------------------ | :--------------------------------------------------------------------------------------------------------------------------------------------------: |
-| `deployment_id` | A globally-unique string representing the current version of the workflow |
-| `emitter_id` | The ID of the workflow trigger that emitted this event, e.g. the [event source](/workflows/building-workflows/triggers/) ID. |
-| `id` | A unique, Pipedream-provided identifier for the event that triggered this workflow |
-| `owner_id` | The Pipedream-assigned [workspace ID](/workspaces/#finding-your-workspaces-id) that owns the workflow |
-| `platform_version` | The version of the Pipedream execution environment this event ran on |
-| `replay` | A boolean, whether the event was replayed via the UI |
-| `trace_id` | Holds the same value for all executions tied to an original event. [See below for more details](#how-do-i-retrieve-the-execution-id-for-a-workflow). |
-| `ts` | The ISO 8601 timestamp at which the event invoked the workflow |
-| `workflow_id` | The workflow ID |
-| `workflow_name` | The workflow name |
-
-#### How do I retrieve the execution ID for a workflow?
-
-Pipedream exposes two identifies for workflow executions: one for the execution, and one for the "trace".
-
-`steps.trigger.context.id` should be unique for every execution of a workflow.
-
-`steps.trigger.context.trace_id` will hold the same value for all executions tied to the same original event, e.g. if you have auto-retry enabled and it retries a workflow three times, the `id` will change, but the `trace_id` will remain the same. For example, if you call `$.flow.suspend()` on a workflow, we run a new execution after the suspend, so you'd see two total executions: `id` will be unique before and after the suspend, but `trace_id` will be the same.
-
-You may notice other properties in `context`. These are used internally by Pipedream, and are subject to change.
-
-### Event retention
-
-On the Free and Basic plans, each workflow retains at most 100 events or 7 days of history.
-
-- After 100 events have been processed, Pipedream will delete the oldest event data as new events arrive, keeping only the last 100 events.
-- Or if an event is older than 7 days, Pipedream will delete the event data.
-
-Other paid plans have longer retention. [See the pricing page](https://pipedream.com/pricing) for details.
-
-Events are also stored in [event history](/workflows/event-history/) for up to 30 days, depending on your plan. [See the pricing page](https://pipedream.com/pricing) for the retention on your plan.
-
-Events that are [delayed](/workflows/building-workflows/control-flow/delay/) or [suspended](/glossary/#suspend) are retained for the duration of the delay. After the delay, the workflow is executed, and the event data is retained according to the rules above.
-
-
-For an extended history of events across all of your workflows, included processed events, with the ability to filter by status and time range, please see the [Event History](/workflows/event-history/).
-
-
-## Don't see a trigger you need?
-
-If you don't see a trigger you'd like us to support, please [let us know](https://pipedream.com/support/).
diff --git a/docs-v2/pages/workflows/building-workflows/using-props.mdx b/docs-v2/pages/workflows/building-workflows/using-props.mdx
deleted file mode 100644
index f4d29c87c9031..0000000000000
--- a/docs-v2/pages/workflows/building-workflows/using-props.mdx
+++ /dev/null
@@ -1,35 +0,0 @@
-import VideoPlayer from '@/components/VideoPlayer'
-
-# Using Props
-
-
-
-Props are fields that can be added to code steps in a workflow to abstract data from the code and improve reusability. Most actions use props to capture user input (e.g., to allow users to customize the URL, method and payload for the Send HTTP Request action). Props support the entry of simple values (e.g., `hello world` or `123`) or expressions in `{{ }}` that can reference objects in scope or run basic Node.js code.
-
-## Entering Expressions
-
-Expressions make it easy to pass data exported from previous steps into a code step or action via props. For example, if your workflow is triggered on new Tweets and you want to send the Tweet content to an HTTP or webhook destination, you would reference `{{steps.trigger.event.body}}` to do that.
-
-While the data expected by each input depends on the data type (e.g., string, integer, array, etc) and the data entry mode (structured or non-structured — if applicable), the format for entering expressions is always the same; expressions are always enclosed in `{{ }}`.
-
-There are three ways to enter expressions in a prop field — you can use the object explorer, enter it manually, or paste a reference from a step export.
-
-### Use the object explorer
-
-When you click into a prop field, an object explorer expands below the input. You can explore all the objects in scope, filter for keywords (e.g., a key name), and then select the element to insert into the form as an expression.
-
-
-
-### Manually enter or edit an expression
-
-To manually enter or edit an expression, just enter or edit a value between double curly braces `{{ }}`. Pipedream provides auto-complete support as soon as you type.
-
-
-
-You can also run Node.js code in `{{ }}`. For example, if `event.foo` is a JSON object and you want to pass it to a param as a string, you can run `{{JSON.stringify(event.foo)}}`.
-
-### Paste a reference from a step export
-
-To paste a reference from a step export, find the reference you want to use, click **Copy Path** and then paste it into the input.
-
-
diff --git a/docs-v2/pages/workflows/data-management/_meta.tsx b/docs-v2/pages/workflows/data-management/_meta.tsx
deleted file mode 100644
index aad88f99440fd..0000000000000
--- a/docs-v2/pages/workflows/data-management/_meta.tsx
+++ /dev/null
@@ -1,6 +0,0 @@
-export default {
- "data-stores": "Data Stores",
- "file-stores": "File Stores",
- "destinations": "Destinations",
- "databases": "Databases",
-} as const
diff --git a/docs-v2/pages/workflows/data-management/data-stores.mdx b/docs-v2/pages/workflows/data-management/data-stores.mdx
deleted file mode 100644
index 5152f2cdf7d4f..0000000000000
--- a/docs-v2/pages/workflows/data-management/data-stores.mdx
+++ /dev/null
@@ -1,276 +0,0 @@
-import Callout from "@/components/Callout";
-import VideoPlayer from "@/components/VideoPlayer";
-
-# Data Stores
-
-
-
-**Data stores** are Pipedream's built-in key-value store.
-
-Data stores are useful for:
-
-- Storing and retrieving data at a specific key
-- Setting automatic expiration times for temporary data (TTL)
-- Counting or summing values over time
-- Retrieving JSON-serializable data across workflow executions
-- Caching and rate limiting
-- And any other case where you'd use a key-value store
-
-You can connect to the same data store across workflows, so they're also great for sharing state across different services.
-
-You can use pre-built, no-code actions to store, update, and clear data, or interact with data stores programmatically in [Node.js](/workflows/building-workflows/code/nodejs/using-data-stores/) or [Python](/workflows/building-workflows/code/python/using-data-stores/).
-
-## Using pre-built Data Store actions
-
-Pipedream provides several pre-built actions to set, get, delete, and perform other operations with data stores.
-
-### Inserting data
-
-To insert data into a data store:
-
-1. Add a new step to your workflow.
-2. Search for the **Data Stores** app and select it.
-3. Select the **Add or update a single record** pre-built action.
-
-
-
-Configure the action:
-
-1. **Select or create a Data Store** — create a new data store or choose an existing data store.
-2. **Key** - the unique ID for this data that you'll use for lookup later
-3. **Value** - The data to store at the specified `key`
-4. **Time to Live (TTL)** - (Optional) The number of seconds until this record expires and is automatically deleted. Leave blank for records that should not expire.
-
-
-
-For example, to store the timestamp when the workflow was initially triggered, set the **Key** to **Triggered At** and the **Value** to `{{steps.trigger.context.ts}}`.
-
-The **Key** must evaluate to a string. You can pass a static string, reference [exports](/workflows/#step-exports) from a previous step, or use [any valid expression](/workflows/building-workflows/using-props/#entering-expressions).
-
-
-
-
- Need to store multiple records in one action? Use the **Add or update multiple
- records** action instead.
-
-
-### Retrieving Data
-
-The **Get record** action will retrieve the latest value of a data point in one of your data stores.
-
-1. Add a new step to your workflow.
-2. Search for the **Data Stores** app and select it.
-3. Select the **Add or update a single record** pre-built action.
-
-
-
-Configure the action:
-
-1. **Select or create a Data Store** — create a new data store or choose an existing data store.
-2. **Key** - the unique ID for this data that you'll use for lookup later
-3. **Create new record if key is not found** - if the specified key isn't found, you can create a new record
-4. **Value** - The data to store at the specified `key`
-
-
-
-### Setting or updating record expiration (TTL)
-
-You can set automatic expiration times for records using the **Update record expiration** action:
-
-1. Add a new step to your workflow.
-2. Search for the **Data Stores** app and select it.
-3. Select the **Update record expiration** pre-built action.
-
-Configure the action:
-
-1. **Select a Data Store** - select the data store containing the record to modify
-2. **Key** - the key for the record you want to update the expiration for
-3. **Expiration Type** - choose from preset expiration times (1 hour, 1 day, 1 week, etc.) or select "Custom value" to enter a specific time in seconds
-4. **Custom TTL (seconds)** - (only if "Custom value" is selected) enter the number of seconds until the record expires
-
-To remove expiration from a record, select "No expiration" as the expiration type.
-
-### Deleting Data
-
-To delete a single record from your data store, use the **Delete a single record** action in a step:
-
-
-
-Then configure the action:
-
-1. **Select a Data Store** - select the data store that contains the record to be deleted
-2. **Key** - the key that identifies the individual record
-
-For example, you can delete the data at the **Triggered At** key that we've created in the steps above:
-
-
-
-Deleting a record does not delete the entire data store. [To delete an entire data store, use the Pipedream Data Stores Dashboard](#deleting-data-stores).
-
-## Managing data stores
-
-You can view the contents of your data stores at any time in the [Pipedream Data Stores dashboard](https://pipedream.com/data-stores/). You can also add, edit, or delete data store records manually from this view.
-
-### Editing data store values manually
-
-1. Select the data store
-2. Click the pencil icon on the far right of the record you want to edit. This will open a text box that will allow you to edit the contents of the value. When you're finished with your edits, save by clicking the checkmark icon.
-
-
-
-### Deleting data stores
-
-You can delete a data store from this dashboard as well. On the far right in the data store row, click the trash can icon.
-
-
-
-**Deleting a data store is irreversible**.
-
-
-If the **Delete** option is greyed out and unclickable, you have workflows using the data store in a step. Click the **>** to the left of the data store's name to expand the linked workflows.
-
-
-
-
-
-Then remove the data store from any linked steps.
-
-
-
-## Using data stores in code steps
-
-Refer to the [Node.js](/workflows/building-workflows/code/nodejs/using-data-stores/) and [Python](/workflows/building-workflows/code/python/using-data-stores/) data store docs to learn how to use data stores in code steps. You can get, set, delete and perform any other data store operations in code. You cannot use data stores in [Bash](/workflows/building-workflows/code/bash/) or [Go](/workflows/building-workflows/code/go/) code steps.
-
-## Compression
-
-Data saved in data stores is [Brotli-compressed](https://github.com/google/brotli), minimizing storage. The total compression ratio depends on the data being compressed. To test this on your own data, run it through a package that supports Brotli compression and measure the size of the data before and after.
-
-## Data store limits
-
-Depending on your plan, Pipedream sets limits on:
-
-1. The total number of data stores
-2. The total number of keys across all data stores
-3. The total storage used across all data stores, [after compression](#compression)
-
-You'll find your workspace's limits in the **Data Stores** section of usage dashboard in the bottom-left of [https://pipedream.com](https://pipedream.com).
-
-
-
-
-
-## Atomic operations
-
-Data store operations are not atomic or transactional, which can lead to race conditions.
-To ensure atomic operations, be sure to limit access to a data store key to a [single workflow with a single worker](/workflows/building-workflows/settings/concurrency-and-throttling/) or use a service that supports atomic operations from among our [integrated apps](https://pipedream.com/apps).
-
-## Supported data types
-
-Data stores can hold any JSON-serializable data within the storage limits. This includes data types including:
-
-- Strings
-- Objects
-- Arrays
-- Dates
-- Integers
-- Floats
-
-But you cannot serialize functions, classes, sets, maps, or other complex objects.
-
-## Exporting data to an external service
-
-In order to stay within the [data store limits](#data-store-limits), you may need to export the data in your data store to an external service.
-
-The following Node.js example action will export the data in chunks via an HTTP POST request. You may need to adapt the code to your needs. Click on [this link](https://pipedream.com/new?h=tch_egfAMv) to create a copy of the workflow in your workspace.
-
-
- If the data contained in each key is large, consider lowering the number of
- `chunkSize`.
-
-
-- Adjust your [workflow memory and timeout settings](/workflows/building-workflows/settings/) according to the size of the data in your data store. Set the memory at 512 MB and timeout to 60 seconds and adjust higher if needed.
-
-- Monitor the exports of this step after each execution for any potential errors preventing a full export. Run the step as many times as needed until all your data is exported.
-
-
- This action deletes the keys that were successfully exported. It is advisable
- to first run a test without deleting the keys. In case of any unforeseen
- errors, your data will still be safe.
-
-
-```javascript
-import { axios } from "@pipedream/platform";
-
-export default defineComponent({
- props: {
- dataStore: {
- type: "data_store",
- },
- chunkSize: {
- type: "integer",
- label: "Chunk Size",
- description: "The number of items to export in one request",
- default: 100,
- },
- shouldDeleteKeys: {
- type: "boolean",
- label: "Delete keys after export",
- description: "Whether the data store keys will be deleted after export",
- default: true,
- },
- },
- methods: {
- async *chunkAsyncIterator(asyncIterator, chunkSize) {
- let chunk = [];
-
- for await (const item of asyncIterator) {
- chunk.push(item);
-
- if (chunk.length === chunkSize) {
- yield chunk;
- chunk = [];
- }
- }
-
- if (chunk.length > 0) {
- yield chunk;
- }
- },
- },
- async run({ steps, $ }) {
- const iterator = this.chunkAsyncIterator(this.dataStore, this.chunkSize);
- for await (const chunk of iterator) {
- try {
- // export data to external service
- await axios($, {
- url: "https://external_service.com",
- method: "POST",
- data: chunk,
- // may need to add authentication
- });
-
- // delete exported keys and values
- if (this.shouldDeleteKeys) {
- await Promise.all(chunk.map(([key]) => this.dataStore.delete(key)));
- }
-
- console.log(
- `number of remaining keys: ${(await this.dataStore.keys()).length}`
- );
- } catch (e) {
- // an error occurred, don't delete keys
- console.log(`error exporting data: ${e}`);
- }
- }
- },
-});
-```
diff --git a/docs-v2/pages/workflows/data-management/databases/_meta.tsx b/docs-v2/pages/workflows/data-management/databases/_meta.tsx
deleted file mode 100644
index 5614ce8184d62..0000000000000
--- a/docs-v2/pages/workflows/data-management/databases/_meta.tsx
+++ /dev/null
@@ -1,4 +0,0 @@
-export default {
- "index": "Connecting to Databases",
- "working-with-sql": "Working with SQL",
-} as const
diff --git a/docs-v2/pages/workflows/data-management/databases/index.mdx b/docs-v2/pages/workflows/data-management/databases/index.mdx
deleted file mode 100644
index 394034c4ace67..0000000000000
--- a/docs-v2/pages/workflows/data-management/databases/index.mdx
+++ /dev/null
@@ -1,41 +0,0 @@
-import Callout from '@/components/Callout'
-
-# Connecting to Databases
-Connecting to a database is essential for developing production workflows. Whether you're storing application data, querying user information, or analyzing event logs, most workflows and serverless functions require querying data at some point.
-
-
-Pipedream workflows run in the AWS `us-east-1` network, sending requests from standard AWS IP ranges.
-
-
-## Connecting to Restricted Databases
-**Unless your database is publicly accessible, you'll likely need to add specific IPs to its allow-list.** To do this, you can configure your database connection to use either a shared or dedicated static IP address from Pipedream:
-
-### Create a Dedicated Static IP for Outbound Traffic
-- [Virtual Private Clouds (VPCs)](/workflows/vpc/) in Pipedream let you deploy any workflow to a private network and is the most secure and recommended approach to using a static IP.
-- Once configured, the VPC will give you a dedicated egress IP that's unique to your workspace, and is available to any workflow within your workspace.
-
-### Send Requests from a Shared Static IP
-- When configuring your database connection as a [connected account](/apps/connected-accounts) to Pipedream, you can choose to route network requests through a static IP block for [any app that's supported by Pipedream's SQL Proxy](#supported-databases)
-- Pipedream's SQL Proxy routes requests to your database from the IP block below.
-
-#### Supported Databases
-Pipedream's SQL Proxy, which enables the shared static IP, currently supports [MySQL](https://pipedream.com/apps/mysql), [PostgreSQL](https://pipedream.com/apps/postgresql), and [Snowflake](https://pipedream.com/apps/snowflake). Please let us know if you'd like to see support for other database types.
-
-#### Enabling the Shared Static IP
-Connect your account for one of the [supported database apps](#supported-databases) and set **Use Shared Static IP** to **TRUE**, then click **Test connection** to ensure Pipedream can successfully connect to your database.
-
-
-
-#### Shared Static IP Block
-Add the following IP block to your database allow-list:
-```
-44.223.89.56/29
-```
-
-
-## FAQ
-
-### What's the difference between using a shared static IP with the SQL Proxy vs a dedicated IP using a VPC?
-Both the SQL Proxy and VPCs enable secure database connections from a static IP.
-- VPCs offer enhanced isolation and security by providing a **dedicated** static IP for workflows within your workspace
-- The SQL proxy routes requests to your database connections through a set of **shared** static IPs
diff --git a/docs-v2/pages/workflows/data-management/databases/working-with-sql.mdx b/docs-v2/pages/workflows/data-management/databases/working-with-sql.mdx
deleted file mode 100644
index 8f5bdc5e547ce..0000000000000
--- a/docs-v2/pages/workflows/data-management/databases/working-with-sql.mdx
+++ /dev/null
@@ -1,79 +0,0 @@
-import Callout from '@/components/Callout'
-import { Steps } from 'nextra/components'
-import ArcadeEmbed from '@/components/ArcadeEmbed'
-
-# Working with SQL
-Pipedream makes it easy to interact with SQL databases within your workflows. You can securely connect to your database and use either pre-built no-code triggers and actions to interact with your database, or execute custom SQL queries.
-
-## SQL Editor
-With the built-in SQL editor, you access linting and auto-complete features typical of modern SQL editors.
-
-
-
-## Schema Explorer
-When querying a database, you need to understand the schema of the tables you're working with. The schema explorer provides a visual interface to explore the tables in your database, view their columns, and understand the relationships between them.
-
-- Once you connect your account with one of the [supported database apps](#supported-databases), we automatically fetch and display the details of the database schema below
-- You can **view the columns of a table**, their data types, and relationships between tables
-- You can also **search and filter** the set of tables that are listed in your schema based on table or column name
-
-
-
-## Prepared Statements
-Prepared statements let you safely execute SQL queries with dynamic inputs that are automatically defined as parameters, in order to help prevent SQL injection attacks.
-
-To reference dynamic data in a SQL query, simply use the standard `{{ }}` notation just like any other code step in Pipedream. For example,
-
-```sql
-select *
- from products
- where name = {{steps.get_product_info.$return_value.name}}
- and created_at > {{steps.get_product_info.$return_value.created_at}}
-```
-
-**Prepared statement:**
-
-
-**Computed statement:**
-
-
-
-When you include step references in your SQL query, Pipedream automatically converts your query to a prepared statement using placeholders with an array of params.
-
-
-Below your query input, you can toggle between the computed and prepared statements:
-
-
-
-
-## Getting Started
-
-
-### Select the Execute SQL Query action
-- From the step selector in the builder, select the **Query a Database** action for the [relevant database app](#supported-databases)
-
-
-
-### Connect your account
-- If you already have a connected account, select it from the dropdown. Otherwise, click **Connect Account** to configure the database connection.
-- Follow the prompts to connect your account, then click **Test connection** to ensure Pipedream can successfully connect to your database
-
-
-
-### Explore the schema
-- Once you've successfully connected your account, you can explore the [database schema](#schema-explorer) to understand the tables and columns in your database
-
-### Write and execute your query
-- Write your SQL query in the editor — read more about [prepared statements](#prepared-statements) above to reference dynamic data in your query
-
-
-
-### Supported Databases
-The [SQL editor](#sql-editor), [schema explorer](#schema-explorer), and support for [prepared statements](#prepared-statements) are currently supported for these datbase apps:
-- [MySQL](https://pipedream.com/apps/mysql)
-- [PostgreSQL](https://pipedream.com/apps/postgresql)
-- [Snowflake](https://pipedream.com/apps/snowflake)
-
-Need to query a different database type? Let us know!
\ No newline at end of file
diff --git a/docs-v2/pages/workflows/data-management/destinations/_meta.tsx b/docs-v2/pages/workflows/data-management/destinations/_meta.tsx
deleted file mode 100644
index 36cf8794ff41c..0000000000000
--- a/docs-v2/pages/workflows/data-management/destinations/_meta.tsx
+++ /dev/null
@@ -1,8 +0,0 @@
-export default {
- "index": "Overview",
- "email": "Email",
- "http": "HTTP",
- "emit": "Emit",
- "sse": "SSE",
- "s3": "S3",
-} as const
diff --git a/docs-v2/pages/workflows/data-management/destinations/email.mdx b/docs-v2/pages/workflows/data-management/destinations/email.mdx
deleted file mode 100644
index 4468c0713ec4b..0000000000000
--- a/docs-v2/pages/workflows/data-management/destinations/email.mdx
+++ /dev/null
@@ -1,58 +0,0 @@
-# Email
-
-The Email Destination allows you send an email to _yourself_ — the email address tied to the account you signed up with — at any step of a workflow.
-
-You can use this to email yourself when you receive a specific event, for example when a user signs up on your app. You can send yourself an email when a cron job finishes running, or when a job fails. Anywhere you need an email notification, you can use the Email Destination!
-
-
-
-## Adding an Email Destination
-
-### Adding an Email Action
-
-1. Add a new step to your workflow
-2. Select the **Send Yourself an Email** Action. You can modify the **Subject** and the message (either **Plain Text** or **HTML**) however you want.
-
-### Using `$.send.email` in workflows
-
-You can send data to an Email Destination in [Node.js code steps](/workflows/building-workflows/code/nodejs/), too, using the `$.send.email()` function. **This allows you to send emails to yourself programmatically, if you need more control than actions provide**.
-
-`$.send.email()` takes the same parameters as the corresponding action:
-
-```javascript
-export default defineComponent({
- async run({ steps, $ }) {
- $.send.email({
- subject: "Your subject",
- text: "Plain text email body",
- html: "HTML email body"
- });
- }
-});
-```
-
-The `html` property is optional. If you include both the `text` and `html` properties, email clients that support HTML will prefer that over the plaintext version.
-
-Like with any `$.send` function, you can use `$.send.email()` conditionally, within a loop, or anywhere you'd use a function normally in Node.js.
-
-### Using `$.send.email` in component actions
-
-If you're authoring a [component action](/components/contributing/#actions), you can deliver data to an email destination using `$.send.email`.
-
-`$.send.email` functions the same as [`$.send.email` in workflow code steps](#using-sendemail-in-workflows):
-
-```javascript
-export default defineComponent({
- async run({ steps, $ }) {
- $.send.email({
- subject: "Your subject",
- text: "Plain text email body",
- html: "HTML email body"
- });
- }
-})
-```
-
-## Delivery details
-
-All emails come from **notifications@pipedream.com**.
diff --git a/docs-v2/pages/workflows/data-management/destinations/emit.mdx b/docs-v2/pages/workflows/data-management/destinations/emit.mdx
deleted file mode 100644
index ea9c55ae75e9a..0000000000000
--- a/docs-v2/pages/workflows/data-management/destinations/emit.mdx
+++ /dev/null
@@ -1,126 +0,0 @@
-
-# Emit events
-
-Like [event sources](/workflows/building-workflows/triggers/), workflows can emit events. These events can trigger other workflows, or be consumed using Pipedream's [REST API](/rest-api/#get-workflow-emits).
-
-## Using `$.send.emit()` in workflows
-
-You can emit arbitrary events from any [Node.js code steps](/workflows/building-workflows/code/nodejs/) using `$.send.emit()`.
-
-```javascript
-export default defineComponent({
- async run({ steps, $ }) {
- $.send.emit({
- name: "Yoda",
- });
- }
-});
-```
-
-`$.send.emit()` accepts an object with the following properties:
-
-```javascript
-$.send.emit(
- event, // An object that contains the event you'd like to emit
- channel, // Optional, a string specifying the channel
-);
-```
-
-## Emitting events to channels
-
-By default, events are emitted to the default channel. You can optionally emit events to a different channel, and listening sources or workflows can subscribe to events on this channel, running the source or workflow only on events emitted to that channel.
-
-Pass the channel as the second argument to `$.send.emit()`:
-
-```javascript
-export default defineComponent({
- async run({ steps, $ }) {
- $.send.emit(
- {
- name: "Yoda",
- },
- 'channel_name'
- );
- }
-});
-```
-
-## Using `$.send.emit()` in component actions
-
-If you're authoring a [component action](/components/contributing/#actions), you can emit data using `$.send.emit()`.
-
-`$.send.emit()` functions the same as [`$.send.emit()` in workflow code steps](#using-sendemit-in-workflows):
-
-```javascript
-export default defineComponent({
- async run({ steps, $ }) {
- $.send.emit({
- name: "Yoda",
- });
- }
-})
-```
-
-**Destination delivery is asynchronous**: emits are sent after your workflow finishes.
-
-You can call `$.send.emit()` multiple times within a workflow, for example: to iterate over an array of values and emit an event for each.
-
-```javascript
-export default defineComponent({
- async run({ steps, $ }) {
- const names = ["Luke", "Han", "Leia", "Obi Wan"];
- for (const name of names) {
- $.send.emit({
- name,
- });
- }
- }
-});
-```
-
-## Trigger a workflow from emitted events
-
-We call the events you emit from a workflow **emitted events**. Sometimes, you'll want emitted events to trigger another workflow. This can be helpful when:
-
-- You process events from different workflows in the same way. For example, you want to log events from many workflows to Amazon S3 or a logging service. You can write one workflow that handles logging, then `$.send.emit()` events from other workflows that are consumed by the single, logging workflow. This helps remove duplicate logic from the other workflows.
-- Your workflow is complex and you want to separate it into multiple workflows to group logical functions together. You can `$.send.emit()` events from one workflow to another to chain the workflows together.
-
-Here's how to configure a workflow to listen for emitted events.
-
-1. Currently, you can't select emitted events as a workflow trigger from the Pipedream UI. We'll show you how add the trigger via API. First, pick an existing workflow where you'd like to receive emitted events. **If you want to start with a [new workflow](https://pipedream.com/new), just select the HTTP / Webhook trigger**.
-2. This workflow is called the **listener**. The workflow where you'll use `$.send.emit()` is called the **emitter**. If you haven't created the emitter workflow yet, [do that now](https://pipedream.com/new).
-3. Get the workflow IDs of both the listener and emitter workflows. **You'll find the workflow ID in the workflow's URL in your browser bar — it's the `p_abc123` in `https://pipedream.com/@username/p_abc123/`**.
-4. You can use the Pipedream REST API to configure the listener to receive events from the emitter. We call this [creating a subscription](/rest-api/#listen-for-events-from-another-source-or-workflow). If your listener's ID is `p_abc123` and your emitter's ID is `p_def456`, you can run the following command to create this subscription:
-
-```bash
-curl "https://api.pipedream.com/v1/subscriptions?emitter_id=dc_def456&listener_id=p_abc123" \
- -X POST \
- -H "Authorization: Bearer " \
- -H "Content-Type: application/json"
-```
-
-5. Run your emitter workflow, emitting an event using `$.send.emit()`:
-
-```javascript
-export default defineComponent({
- async run({ steps, $ }) {
- $.send.emit({
- name: "Yoda",
- });
- }
-});
-```
-
-This should trigger your listener, and you should see the same event in [the event inspector](/workflows/building-workflows/inspect/#the-inspector).
-
-**Note**: Please upvote [this issue](https://github.com/PipedreamHQ/pipedream/issues/682) to see support for _adding_ emitted events as a workflow trigger in the UI.
-
-## Consuming emitted events via REST API
-
-`$.send.emit()` can emit any data you'd like. You can retrieve that data using Pipedream's REST API endpoint for [retrieving emitted events](/rest-api/#get-workflow-emits).
-
-This can be helpful when you want a workflow to process data asynchronously using a workflow. You can save the results of your workflow with `$.send.emit()`, and only retrieve the results in batch when you need to using the REST API.
-
-## Emit logs / troubleshooting
-
-Below your code step, you'll see both the data that was sent in the emit. If you ran `$.send.emit()` multiple times within the same code step, you'll see the data that was emitted for each.
diff --git a/docs-v2/pages/workflows/data-management/destinations/http.mdx b/docs-v2/pages/workflows/data-management/destinations/http.mdx
deleted file mode 100644
index c8e5fc4d78d7d..0000000000000
--- a/docs-v2/pages/workflows/data-management/destinations/http.mdx
+++ /dev/null
@@ -1,123 +0,0 @@
-import Callout from '@/components/Callout'
-import PublicIPs from '@/components/PublicIPs'
-
-# HTTP
-
-HTTP Destinations allow you to send data to another HTTP endpoint URL outside of Pipedream. This can be an endpoint you own and operate, or a URL tied to a service you use (for example, a [Slack Incoming Webhook](https://api.slack.com/incoming-webhooks)).
-
-## Using `$.send.http` in workflows
-
-You can send HTTP requests in [Node.js code steps](/workflows/building-workflows/code/nodejs/) using `$.send.http()`.
-
-```javascript
-export default defineComponent({
- async run({ steps, $ }) {
- $.send.http({
- method: "POST",
- url: "[YOUR URL HERE]",
- data: {
- name: "Luke Skywalker",
- },
- });
- }
-});
-```
-
-`$.send.http()` accepts an object with all of the following properties:
-
-```javascript
-export default defineComponent({
- async run({ steps, $ }) {
- $.send.http({
- method, // Required, HTTP method, a string, e.g. POST, GET
- url, // Required, the URL to send the HTTP request to
- data, // HTTP payload
- headers, // An object containing custom headers, e.g. { "Content-Type": "application/json" }
- params, // An object containing query string parameters as key-value pairs
- auth, // An object that contains a username and password property, for HTTP basic auth
- });
- }
-});
-
-```
-
-**Destination delivery is asynchronous**: the HTTP requests are sent after your workflow finishes. This means **you cannot write code that operates on the HTTP response**. These HTTP requests **do not** count against your workflow's compute time.
-
-If you iterate over an array of values and send an HTTP request for each:
-
-```javascript
-
-export default defineComponent({
- async run({ steps, $ }) {
- const names = ["Luke", "Han", "Leia", "Obi Wan"];
- names.forEach((name) => {
- $.send.http({
- method: "POST",
- url: "[YOUR URL HERE]",
- data: {
- name,
- },
- });
- });
- }
-});
-```
-
-you won't have to `await` the execution of the HTTP requests in your workflow. We'll collect every `$.send.http()` call and defer those HTTP requests, sending them after your workflow finishes.
-
-## Using `$.send.http` in component actions
-
-If you're authoring a [component action](/components/contributing/#actions), you can deliver data to an HTTP destination using `$.send.http`.
-
-`$.send.http` functions the same as [`$.send.http` in workflow code steps](#using-sendhttp-in-workflows):
-
-```javascript
-export default defineComponent({
- async run({ steps, $ }) {
- $.send.http({
- method: "GET",
- url: "https://example.com"
- })
- }
-});
-```
-
-## HTTP Destination delivery
-
-HTTP Destination delivery is handled asynchronously, separate from the execution of a workflow. However, we deliver the specified payload to HTTP destinations for every event sent to your workflow.
-
-Generally, this means it should only take a few seconds for us to send the event to the destination you specify. In some cases, delivery will take longer.
-
-The time it takes to make HTTP requests sent with `$.send.http()` does not count against your workflow quota.
-
-## HTTP request and response logs
-
-Below your code step, you'll see both the data that was sent in the HTTP request, and the HTTP response that was issued. If you issue multiple HTTP requests, we'll show the request and response data for each.
-
-## What if I need to access the HTTP response in my workflow?
-
-Since HTTP requests sent with `$.send.http()` are sent asynchronously, after your workflow runs, **you cannot access the HTTP response in your workflow**.
-
-If you need to access the HTTP response data in your workflow, [use `axios`](/workflows/building-workflows/code/nodejs/http-requests/) or another HTTP client.
-
-## Timeout
-
-The timeout on HTTP request sent with `$.send.http()` is currently **5 seconds**. This time includes DNS resolution, connecting to the host, writing the request body, server processing, and reading the response body.
-
-Any requests that exceed 5 seconds will yield a `timeout` error.
-
-## Retries
-
-Currently, Pipedream will not retry any failed request. If your HTTP destination endpoint is down, or returns an error response, we'll display that response in the observability associated with the Destination in the relevant step.
-
-## IP addresses for Pipedream HTTP requests
-
-
-These IP addresses are tied to **requests sent with `$.send.http` only, not other HTTP requests made from workflows**. To whitelist standard HTTP requests from Pipedream workflows, [use VPCs](/workflows/vpc/).
-
-
-When you make an HTTP request using `$.send.http()`, the traffic will come from one of the following IP addresses:
-
-
-
-This list may change over time. If you've previously whitelisted these IP addresses and are having trouble sending HTTP requests to your target service, please check to ensure this list matches your firewall rules.
diff --git a/docs-v2/pages/workflows/data-management/destinations/index.mdx b/docs-v2/pages/workflows/data-management/destinations/index.mdx
deleted file mode 100644
index 3d961a7bd3a92..0000000000000
--- a/docs-v2/pages/workflows/data-management/destinations/index.mdx
+++ /dev/null
@@ -1,99 +0,0 @@
-# Destinations
-
-**Destinations**, like [actions](/components/contributing/#actions), abstract the delivery and connection logic required to send events to services like Amazon S3, or targets like HTTP and email.
-
-However, Destinations are different than actions in two ways:
-
-- Events are delivered to the Destinations asynchronously, after your workflow completes. This means you don't wait for network I/O (e.g. for HTTP requests or connection overhead for data warehouses) within your workflow code, so you can process more events faster.
-- In the case of data stores like S3, you typically don't want to send every event on its own. This can be costly and carries little benefit. Instead, you typically want to batch a collection of events together, sending the batch at some frequency. Destinations handle that batching for relevant services.
-
-The docs below discuss features common to all Destinations. See the [docs for a given destination](#available-destinations) for information specific to those destinations.
-
-
-
-## Available Destinations
-
-- [HTTP](/workflows/data-management/destinations/http/)
-- [Email](/workflows/data-management/destinations/email/)
-- [S3](/workflows/data-management/destinations/s3/)
-- [SSE](/workflows/data-management/destinations/sse/)
-- [Emit to another listener](/workflows/data-management/destinations/emit/)
-
-## Using destinations
-
-### Using destinations in workflows
-
-You can send data to Destinations in [Node.js code steps](/workflows/building-workflows/code/nodejs/), too, using `$.send` functions.
-
-`$.send` is an object provided by Pipedream that exposes destination-specific functions like `$.send.http()`, `$.send.s3()`, and more. This allows you to send data to destinations programmatically, if you need more control than the default actions provide.
-
-Let's use `$.send.http()` to send an HTTP POST request like we did in the Action example above. [Add a new action](/workflows/building-workflows/actions/), then search for "**Run custom code**":
-
-Create a new HTTP endpoint URL (try creating a new Pipedream workflow and adding an HTTP trigger), and add the code below to your code step, with the URL you created:
-
-```javascript
-export default defineComponent({
- async run({ steps, $}) {
- $.send.http({
- method: "POST",
- url: "[YOUR URL HERE]",
- data: {
- name: "Luke Skywalker",
- },
- });
- }
-})
-```
-
-See the docs for the [HTTP destination](/workflows/data-management/destinations/http/) to learn more about all the options you can pass to the `$.send.http()` function.
-
-Again, it's important to remember that **Destination delivery is asynchronous**. If you iterate over an array of values and send an HTTP request for each:
-
-```javascript
-export default defineComponent({
- async run({ steps, $}) {
- const names = ["Luke", "Han", "Leia", "Obi Wan"];
- for (const name of names) {
- $.send.http({
- method: "POST",
- url: "[YOUR URL HERE]",
- data: {
- name,
- },
- });
- }
- }
-})
-```
-
-you won't have to `await` the execution of the HTTP requests in your workflow. We'll collect every `$.send.http()` call and defer those HTTP requests, sending them after your workflow finishes.
-
-### Using destinations in actions
-
-If you're authoring a [component action](/components/contributing/#actions), you can deliver data to destinations, too. `$.send` isn't directly available to actions like it is for workflow code steps. Instead, you use `$.send` to access the destination-specific functions:
-
-```javascript
-export default {
- name: "Action Demo",
- key: "action_demo",
- version: "0.0.1",
- type: "action",
- async run({ $ }) {
- $.send.http({
- method: "POST",
- url: "[YOUR URL HERE]",
- data: {
- name: "Luke Skywalker",
- },
- });
- }
-}
-```
-
-[See the component action API docs](/components/contributing/api/#actions) for more details.
-
-## Asynchronous Delivery
-
-Events are delivered to destinations _asynchronously_ — that is, separate from the execution of your workflow. **This means you're not waiting for network or connection I/O in the middle of your function, which can be costly**.
-
-Some destination payloads, like HTTP, are delivered within seconds. For other destinations, like S3 and SQL, we collect individual events into a batch and send the batch to the destination. See the [docs for a specific destination](#available-destinations) for the relevant batch delivery frequency.
diff --git a/docs-v2/pages/workflows/data-management/destinations/s3.mdx b/docs-v2/pages/workflows/data-management/destinations/s3.mdx
deleted file mode 100644
index 65f7369f5f343..0000000000000
--- a/docs-v2/pages/workflows/data-management/destinations/s3.mdx
+++ /dev/null
@@ -1,103 +0,0 @@
-import PublicIPs from '@/components/PublicIPs'
-
-# Amazon S3
-
-[Amazon S3](https://aws.amazon.com/s3/) — the Simple Storage Service — is a common place to dump data for long-term storage on AWS. Pipedream supports delivery to S3 as a first-class Destination.
-
-## Using `$.send.s3` in workflows
-
-You can send data to an S3 Destination in [Node.js code steps](/workflows/building-workflows/code/nodejs/) using `$.send.s3()`.
-
-`$.send.s3()` takes the following parameters:
-
-```javascript
-$.send.s3({
- bucket: "your-bucket-here",
- prefix: "your-prefix/",
- payload: event.body,
-});
-```
-
-Like with any `$.send` function, you can use `$.send.s3()` conditionally, within a loop, or anywhere you'd use a function normally.
-
-## Using `$.send.s3` in component actions
-
-If you're authoring a [component action](/components/contributing/#actions), you can deliver data to an S3 destination using `$.send.s3`.
-
-`$.send.s3` functions the same as [`$.send.s3` in workflow code steps](#using-sends3-in-workflows):
-
-```javascript
-async run({ $ }) {
- $.send.s3({
- bucket: "your-bucket-here",
- prefix: "your-prefix/",
- payload: event.body,
- });
-}
-```
-
-## S3 Bucket Policy
-
-In order for us to deliver objects to your S3 bucket, you need to modify its [bucket policy](https://docs.aws.amazon.com/AmazonS3/latest/user-guide/add-bucket-policy.html) to allow Pipedream to upload objects.
-
-**Replace `[your bucket name]` with the name of your bucket** near the bottom of the policy.
-
-```json
-{
- "Version": "2012-10-17",
- "Id": "allow-pipedream-limited-access",
- "Statement": [
- {
- "Effect": "Allow",
- "Principal": {
- "AWS": "arn:aws:iam::203863770927:role/Pipedream"
- },
- "Action": [
- "s3:AbortMultipartUpload",
- "s3:GetBucketLocation",
- "s3:PutObject",
- "s3:PutObjectAcl",
- "s3:ListBucketMultipartUploads"
- ],
- "Resource": [
- "arn:aws:s3:::[your bucket name]",
- "arn:aws:s3:::[your bucket name]/*"
- ]
- }
- ]
-}
-```
-
-This bucket policy provides the minimum set of permissions necessary for Pipedream to deliver objects to your bucket. We use the [Multipart Upload API](https://docs.aws.amazon.com/AmazonS3/latest/dev/uploadobjusingmpu.html) to upload objects, and require the [relevant permissions](https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuAndPermissions.html).
-
-## S3 Destination delivery
-
-S3 Destination delivery is handled asynchronously, separate from the execution of a workflow. **Moreover, events sent to an S3 bucket are batched and delivered once a minute**. For example, if you sent 30 events to an S3 Destination within a particular minute, we would collect all 30 events, delimit them with newlines, and write them to a single S3 object.
-
-In some cases, delivery will take longer than a minute.
-
-## S3 object format
-
-We upload objects using the following format:
-
-```
-[PREFIX]/YYYY/MM/DD/HH/YYYY-MM-DD-HH-MM-SS-IDENTIFIER.gz
-```
-
-That is — we write objects first to your prefix, then within folders specific to the current date and hour, then upload the object with the same date information in the object, so that it's easy to tell when it was uploaded by object name alone.
-
-For example, if I were writing data to a prefix of `test/`, I might see an object in S3 at this path:
-
-```
-test/2019/05/25/16/2019-05-25-16-14-58-8f25b54462bf6eeac3ee8bde512b6c59654c454356e808167a01c43ebe4ee919.gz
-```
-
-As noted above, a given object contains all payloads delivered to an S3 Destination within a specific minute. Multiple events within a given object are newline-delimited.
-
-## Limiting S3 Uploads by IP
-
-S3 provides a mechanism to [limit operations only from specific IP addresses](https://docs.aws.amazon.com/AmazonS3/latest/dev/example-bucket-policies.html#example-bucket-policies-use-case-3). If you'd like to apply that filter, uploads using `$.send.s3()` should come from one of the following IP addresses:
-
-
-
-This list may change over time. If you've previously whitelisted these IP addresses and are having trouble uploading S3 objects, please check to ensure this list matches your firewall rules.
diff --git a/docs-v2/pages/workflows/data-management/destinations/sse.mdx b/docs-v2/pages/workflows/data-management/destinations/sse.mdx
deleted file mode 100644
index cbf92887bb19a..0000000000000
--- a/docs-v2/pages/workflows/data-management/destinations/sse.mdx
+++ /dev/null
@@ -1,155 +0,0 @@
-# Server-Sent Events (SSE)
-
-Pipedream supports [Server-sent events](https://developer.mozilla.org/en-US/docs/Web/API/Server-sent_events) (SSE) as a destination, enabling you to send events from a workflow directly to a client subscribed to the event stream.
-
-## What is SSE?
-
-[Server-sent Events](https://developer.mozilla.org/en-US/docs/Web/API/Server-sent_events) (SSE) is a specification that allows servers to send events directly to clients that subscribe to those events, similar to [WebSockets](https://developer.mozilla.org/en-US/docs/Web/API/WebSockets_API) and related server to client push technologies.
-
-Unlike WebSockets, SSE enables one-way communication from server to clients (WebSockets enable bidirectional communication between server and client, allowing you to pass messages back and forth). Luckily, if you only need a client to subscribe to events from a server, and don't require bidirectional communication, SSE is simple way to make that happen.
-
-## What can I do with the SSE destination?
-
-SSE is typically used by web developers to update a webpage with new events in real-time, without forcing a user to reload a page to fetch new data. If you'd like to update data on a webpage in that manner, you can subscribe to your workflow's event stream and handle new events as they come in.
-
-Beyond web browsers, any program that's able to create an [`EventSource` interface](https://developer.mozilla.org/en-US/docs/Web/API/EventSource) can listen for server-sent events delivered from Pipedream. You can run a Node.js script or a Ruby on Rails app that receives server-sent events, for example.
-
-## Sending data to an SSE Destination in workflows
-
-You can send data to an SSE Destination in [Node.js code steps](/workflows/building-workflows/code/nodejs/) using the `$.send.sse()` function.
-
-1. Add a new step to your workflow
-2. Select the option to **Run custom code** and choose the Node.js runtime.
-3. Add this code to that step:
-
-```javascript
-export default defineComponent({
- async run({ steps, $ }) {
- $.send.sse({
- channel: "events", // Required, corresponds to the event in the SSE spec
- payload: { // Required, the event payload
- name: "Luke Skywalker"
- }
- });
- }
-});
-```
-
-**See [this workflow](https://pipedream.com/new?h=tch_mp7f6q)** for an example of how to use `$.send.sse()`.
-
-Send a test event to your workflow, then review the section on [Receiving events](#receiving-events) to see how you can setup an `EventSource` to retrieve events sent to the SSE Destination.
-
-**Destination delivery is asynchronous**. If you iterate over an array of values and send an SSE for each:
-
-```javascript
-export default defineComponent({
- async run({ steps, $ }) {
- const names = ["Luke", "Han", "Leia", "Obi Wan"];
- names.forEach(name => {
- $.send.sse({
- channel: "names",
- payload: {
- name
- }
- });
- });
- }
-});
-```
-
-you won't have to `await` the execution of the SSE Destination requests in your workflow. We'll collect every `$.send.sse()` call and defer those requests, sending them after your workflow finishes.
-
-## Using `$.send.sse` in component actions
-
-If you're authoring a [component action](/components/contributing/#actions), you can send events to an SSE destination using `$.send.sse`.
-
-`$.send.sse` functions the same as [`$.send.sse` in workflow code steps](#sending-data-to-an-sse-destination-in-workflows):
-
-```javascript
-export default defineComponent({
- async run({ steps, $ }) {
- $.send.sse({
- channel: "events",
- payload: {
- name: "Luke Skywalker"
- }
- });
- }
-});
-```
-
-## Receiving events
-
-Once you've sent events to an SSE Destination, you can start receiving a stream of those events in a client by configuring an [`EventSource`](https://developer.mozilla.org/en-US/docs/Web/API/EventSource) that connects to the Pipedream SSE stream.
-
-### Retrieving your workflow's event stream URL
-
-First, it's important to note that all events sent to an SSE destination within a workflow are sent to an SSE event stream specific to that workflow. The event stream is tied to the workflow's ID, which you can find by examining the URL of the pipeline in the Pipedream UI. For example, the `p_aBcDeF` in this URL is the pipeline ID:
-
-
-
-**Note that the `p_` prefix is part of the workflow ID**.
-
-Once you have the workflow ID, you can construct the event source URL for your SSE destination. That URL is of the following format:
-
-```
-http://sdk.m.pipedream.net/pipelines/[YOUR WORKFLOW ID]/sse
-```
-
-In the example above, the URL of our event stream would be:
-
-```
-http://sdk.m.pipedream.net/pipelines/p_aBcDeF/sse
-```
-
-You should be able to open that URL in your browser. Most modern browsers support connecting to an event stream directly, and will stream events without any work on your part to help you confirm that the stream is working.
-
-If you've already sent events to your SSE destination, you should see those events here! We'll return the most recent 100 events delivered to the corresponding SSE destination immediately. This allows your client to catch up with events previously sent to the destination. Then, any new events sent to the SSE destination while you're connected will be delivered to the client.
-
-### Sample code to connect to your event stream
-
-It's easy to setup a simple webpage to `console.log()` all events from an event stream. You can find a lot more examples of how to work with SSE on the web, but this should help you understand the basic concepts.
-
-You'll need to create two files in the same directory on your machine: an `index.html` file for the HTML.
-
-**index.html**
-
-```html
-
-
-
-
-
- SSE test
-
-
-
-
-
-
-
-
-```
-
-**Make sure to add your workflow ID and the name of your channel you specified in your SSE Destination**. Then, open the `index.html` page in your browser. In your browser's developer tools JavaScript console, you should see new events appear as you send them.
-
-Note that the `addEventListener` code will listen specifically for events sent to the **events** `channel` specified in our SSE destination. You can listen for multiple types of events at once by adding multiple event listeners on the client.
-
-**Try triggering more test events from your workflow while this page is open to see how this works end-to-end**.
-
-## `:keepalive` messages
-
-[The SSE spec](https://www.w3.org/TR/2009/WD-eventsource-20090421/#notes) notes that
-
-> Legacy proxy servers are known to, in certain cases, drop HTTP connections after a short timeout. To protect against such proxy servers, authors can include a comment line (one starting with a ':' character) every 15 seconds or so.
-
-Roughly every 15 seconds, we'll send a message with the `:keepalive` comment to keep open SSE connections alive. These comments should be ignored when you're listening for messages using the `EventSource` interface.
diff --git a/docs-v2/pages/workflows/data-management/file-stores/_meta.tsx b/docs-v2/pages/workflows/data-management/file-stores/_meta.tsx
deleted file mode 100644
index f9e7d5f2243d3..0000000000000
--- a/docs-v2/pages/workflows/data-management/file-stores/_meta.tsx
+++ /dev/null
@@ -1,3 +0,0 @@
-export default {
- "index": "Overview",
-} as const
diff --git a/docs-v2/pages/workflows/data-management/file-stores/index.mdx b/docs-v2/pages/workflows/data-management/file-stores/index.mdx
deleted file mode 100644
index c52014ff15cd9..0000000000000
--- a/docs-v2/pages/workflows/data-management/file-stores/index.mdx
+++ /dev/null
@@ -1,333 +0,0 @@
-import Callout from '@/components/Callout'
-
-# File Stores
-
-
-In Preview
-
-File Stores are available in Preview. There may be changes to allowed limits in the future.
-
-If you have any feedback on File Stores, please let us know in our [community](https://pipedream.com/support).
-
-
-File Stores are a filesystem that are scoped to a Project. All workflows within the same Project have access to the File Stores.
-
-You can interact with these files through the Pipedream Dashboard or programmatically through your Project's workflows.
-
-Unlike files stored within a workflow's `/tmp` directory which are subject to deletion between executions, File Stores are separate cloud storage. Files within a File Store can be long term storage accessible by your workflows.
-
-
-
-
-
-## Managing File Stores from the Dashboard
-
-You can access a File Store by opening the Project and selecting the *File Store* on the left hand navigation menu.
-
-
-
-### Uploading files to the File Store
-
-To upload a file, select *New* then select *File*:
-
-
-
-Then in the new pop-up, you can either drag and drop or browser your computer to stage a file for uploading:
-
-
-
-Now that the file(s) are staged for uploaded. Click *Upload* to upload them:
-
-
-
-Finally, click *Done* to close the upload pop-up:
-
-
-
-You should now see your file is uploaded and available for use within your Project:
-
-
-
-### Deleting files from the File Store
-
-You can delete individual files from a File Store by clicking the three dot menu on the far right of the file and selecting *Delete*.
-
-
-
-After confirming that you want to delete the file, it will be permanently deleted.
-
-
-File deletion is permanent
-
-Once a file is deleted, it's not possible to recover it. Please take care when deleting files from File Stores.
-
-
-## Managing File Stores from Workflows
-
-Files uploaded to a File Store are accessible by workflows within that same project.
-
-You can access these files programmatically using the `$.files` helper within Node.js code steps.
-
-
-
-File Stores are scoped to Projects
-
-Only workflows within the same project as the File Store can access the files. Workflows outside of the project will not be able to access that project's File Store.
-
-
-### Listing files in the File Store
-
-The `$.files.dir()` method allows you to list files and directories within the Project's File Store. By default it will list the files at the root directory.
-
-Here's an example of how to iterate over the files in the root directory and open them as `File` instances:
-
-```javascript
-export default defineComponent({
- async run({ steps, $ }) {
- // list all contents of the root File Stores directory in this project
- const dirs = $.files.dir();
- let files = [];
-
- for await(const dir of dirs) {
- // if this is a file, let's open it
- if(dir.isFile()) {
- files.push(dir.path)
- }
- }
-
- return files
- },
-})
-```
-
-### Opening files
-
-To interact with a file uploaded to the File Store, you'll first need to open it.
-
-Given there's a file in the File Store called `example.png`, you can open it using the `$.files.open()` method:
-
-```javascript
-export default defineComponent({
- async run({ steps, $ }) {
- // Open the file by it's path in the File Store
- const file = $.files.open('example.png')
- // Log the S3 url to access the file publicly
- return await file.toUrl()
- },
-})
-```
-
-Once the file has been opened, you can [read, write, delete the file and more](/workflows/data-management/file-stores/reference/).
-
-### Uploading files to File Stores
-
-You can upload files using Node.js code in your workflows, either from URLs, from the `/tmp` directory in your workflows or directly from streams for high memory efficency.
-
-#### Uploading files from URLs
-
-`File.fromUrl()` can upload a file from a public URL to the File Store.
-
-First open a new file at a specific path in the File Store, and then pass a URL to the `fromUrl` method on that new file:
-
-```javascript
-export default defineComponent({
- async run({ steps, $ }) {
- // Upload a file to the File Store by a URL
- const file = await $.files.open('pipedream.png').fromUrl('https://res.cloudinary.com/pipedreamin/image/upload/t_logo48x48/v1597038956/docs/HzP2Yhq8_400x400_1_sqhs70.jpg')
-
- // display the uploaded file's URL from the File Store:
- console.log(await file.toUrl())
- },
-})
-```
-
-#### Uploading files from the workflow's `/tmp` directory
-
-`File.fromFile()` can upload a file stored within the workflow's `/tmp` directory to the File Store.
-
-First open a new file at a specific path in the File Store, and then pass a URL to the `fromFile` method on that new file:
-
-```javascript
-export default defineComponent({
- async run({ steps, $ }) {
- // Upload a file to the File Store from the local /tmp/ directory
- const file = await $.files.open('recording.mp3').fromFile('/tmp/recording.mp3')
-
- // Display the URL to the File Store hosted file
- console.log(await file.toUrl())
- },
-})
-```
-
-#### Uploading files using streams
-
-File Stores also support streaming to write large files. `File.createWriteStream()` creates a write stream for the file to upload to. Then you can pair this stream with a download stream from another remote location:
-
-```javascript
-import { pipeline } from 'stream/promises';
-import got from 'got'
-
-export default defineComponent({
- async run({ steps, $ }) {
- const writeStream = await $.files.open('logo.png').createWriteStream()
-
- const readStream = got.stream('https://pdrm.co/logo')
-
- await pipeline(readStream, writeStream);
- },
-})
-```
-
-Additionally, you can pass a `ReadableStream` instance directly to a File instance:
-
-```javascript
-import got from 'got'
-
-export default defineComponent({
- async run({ steps, $ }) {
- // Start a new read stream
- const readStream = got.stream('https://pdrm.co/logo')
-
- // Populate the file's content from the read stream
- await $.files.open("logo.png").fromReadableStream(readStream)
- },
-})
-```
-
-
-(Recommended) Pass the contentLength if possible
-
-If possible, pass a `contentLength` argument, then File Store will be able to efficiently stream to use less memory. Without a `contentLength` argument, the entire file will need to be downloaded to `/tmp/` until it can be uploaded to the File store.
-
-
-
-### Downloading files
-
-File Stores live in cloud storage by default, but files can be downloaded to your workflows individually.
-
-#### Downloading files to the workflow's `/tmp` directory
-
-First open a new file at a specific path in the File Store, and then call the `toFile()` method to download the file to the given path:
-
-```javascript
-import fs from 'fs';
-
-export default defineComponent({
- async run({ steps, $ }) {
- // Download a file from the File Store to the local /tmp/ directory
- const file = await $.files.open('recording.mp3').toFile('/tmp/README.md')
-
- // read the file version of the file stored in /tmp
- return (await fs.promises.readFile('/tmp/README.md')).toString()
- },
-})
-```
-
-
-Only the `/tmp/` directory is readable and writable
-
-Make sure that your path to `toFile(path)` includes
-
-
-### Passing files between steps
-
-Files can be passed between steps. Pipedream will automatically serialize the file as a JSON _description_ of the file. Then when you access the file as a step export as a prop in a Node.js code step, then you can interact with the `File` instance directly.
-
-For example, if you have a file stored at the path `logo.png` within your File Store, then within a Node.js code step you can open it:
-
-```javascript
-// "open_file" Node.js code step
-export default defineComponent({
- async run({ steps, $ }) {
- // Return data to use it in future steps
- const file = $.files.open('logo.png')
-
- return file
- },
-})
-```
-
-Then in a downstream code step, you can use it via the `steps` path:
-
-```javascript
-// "get_file_url" Node.js code step
-export default defineComponent({
- async run({ steps, $ }) {
- // steps.open_file.$return_value is automatically parsed back into a File instance:
- return await steps.open_file.$return_value.toUrl()
- },
-})
-```
-
-
-Files descriptions are compatible with other workflow helpers
-
-Files can also be used with `$.flow.suspend()` and `$.flow.delay()`.
-
-
-#### Handling lists of files
-
-One limitation of the automatic parsing of files between steps is that it currently doesn't automatically handle lists of files between steps.
-
-For example, if you have a step that returns an array of `File` instances:
-
-```javascript
-// "open_files" Node.js code step
-export default defineComponent({
- async run({ steps, $ }) {
- // Return data to use it in future steps
- const file1 = $.files.open('vue-logo.svg')
- const file2 = $.files.open('react-logo.svg')
-
- return [file1, file]
- },
-})
-```
-
-Then you'll need to use `$.files.openDescriptor` to parse the JSON definition of the files back into `File` instances:
-
-```javascript
-// "parse_files" Node.js code step
-export default defineComponent({
- async run({ steps, $ }) {
- const files = steps.open_files.$return_value.map(object => $.files.openDescriptor(object))
-
- // log the URL to the first File
- console.log(await files[0].toUrl());
- },
-})
-```
-
-### Deleting files
-
-You can call `delete()` on the file to delete it from the File Store.
-
-```javascript
-export default defineComponent({
- async run({ steps, $ }) {
- // Open the file and delete it
- const file = await $.files.open('example.png').delete()
- console.log('File deleted.')
- },
-})
-```
-
-
-Deleting files is irreversible
-
-It's not possible to restore deleted files. Please take care when deleting files.
-
-
-## FAQ
-
-### Are there size limits for files within File Stores?
-
-At this time no, but File Stores are in preview and are subject to change.
-
-### Are helpers available for Python to download, upload and manage files?
-
-At this time no, only Node.js includes a helper to interact with the File Store programmatically within workflows.
-
-### Are File Stores generally available?
-
-At this time File Stores are only available to Advanced plan and above subscribed workspaces. You can change your plan within the [pricing page](https://pipedream.com/pricing).
diff --git a/docs-v2/pages/workflows/data-management/file-stores/reference.mdx b/docs-v2/pages/workflows/data-management/file-stores/reference.mdx
deleted file mode 100644
index 16791feca680f..0000000000000
--- a/docs-v2/pages/workflows/data-management/file-stores/reference.mdx
+++ /dev/null
@@ -1,247 +0,0 @@
-import Callout from '@/components/Callout'
-
-# File Stores Node.js Reference
-
-The File Stores Node.js helper allows you to manage files within Code Steps and Action components.
-
-
-
-## `$.files`
-
-The `$.files` helper is the main module to interact with the Project's File Store. It can instatiate new files, open files from descriptors and list the contents of the File Store.
-
-### `$.files.open(path)`
-
-*Sync.* Opens a file from the relative `path`. If the file doesn't exist, a new empty file is created.
-
-### `$.files.openDescriptor(fileDescriptor)`
-
-*Sync.* Creates a new `File` from the JSON friendly description of a file. Useful for recreating a `File` from a step export.
-
-For example, export a `File` as a step export which will render the `File` as JSON:
-
-```javascript
-// create_file
-// Creates a new Project File and uploads an image to it
-export default defineComponent({
- async run({ steps, $ }) {
- // create the new file and upload the contents to it from a URL
- const file = await $.files.open("imgur.png").fromUrl("https://i.imgur.com/TVIPgNq.png")
- // return the file as a step export
- return file
- },
-}
-```
-
-Then in a downstream step recreate the `File` instance from the step export friendly _description_:
-
-```javascript
-// download_file
-// Opens a file downloaded from a previous step, and saves it.
-export default defineComponent({
- async run({ steps, $ }) {
- // Convert the the description of the file back into a File instance
- const file = $.files.openDescriptor(steps.create_file.$return_value)
- // Download the file to the local /tmp directory
- await $.file.download('/tmp/example.png')
- console.log("File downloaded to /tmp")
- },
-})
-
-```
-
-### `$.files.dir(?path)`
-
-*Sync.* Lists the files & directories at the given `path`. By default it will list the files at the root directory.
-
-Here's an example of how to iterate over the files in the root directory and open them as `File` instances:
-
-```javascript
-export default defineComponent({
- async run({ steps, $ }) {
- // list all contents of the root File Stores directory in this project
- const dirs = $.files.dir();
- let files = [];
-
- for await(const dir of dirs) {
- // if this is a file, let's open it
- if(dir.isFile()) {
- files.push(await $.files.open(dir.path))
- }
- }
-
- return files
- },
-})
-```
-
-Each iteratee of `$.files.dir()` will contain the following properties:
-
-* `isDirectory()` - `true` if this instance is a directory.
-* `isFile()` - `true` if this instance is a file.
-* `path` - The path to the file.
-* `size` - The size of the file in bytes.
-* `modifiedAt` - The last modified at timestamp.
-
-## `File`
-
-This class describes an instance of a single file within a File Store.
-
-When using `$.files.open` or `$.files.openDescriptor`, you'll create a new instance of a `File` with helper methods that give you more flexibility to perform programatic actions with the file.
-
-### `File.toUrl()`
-
-*Async.* The pre-signed GET URL to retrieve the file.
-
-```javascript
-export default defineComponent({
- async run({ steps, $ }) {
- // Retrieve the pre-signed GET URL for logo.png
- const url = await $.files.open('logo.png').toUrl()
-
- return url
- },
-})
-
-```
-
-
-Pre-signed GET URLs are short lived.
-
-The `File.toUrl()` will expire after 30 minutes.
-
-
-### `File.toFile(path)`
-
-*Async.* Downloads the file to the local path in the current workflow. If the file doesn't exist, a new one will be created at the path specified.
-
-
-Only `/tmp` is writable in workflow environments
-
-Only the `/tmp` directory is writable in your workflow's exection environment. So you must download your file to the `/tmp` directory.
-
-
-```javascript
-export default defineComponent({
- async run({ steps, $ }) {
- // Download the file in the File Store to the workflow's /tmp/ directory
- await $.files.open('logo.png').toFile("/tmp/logo.png")
- },
-})
-
-```
-
-### `File.toBuffer()`
-
-*Async.* Downloads the file as a Buffer to create readable or writeable streams.
-
-```javascript
-export default defineComponent({
- async run({ steps, $ }) {
- // opens a file at the path "hello.txt" and downloads it as a Buffer
- const buffer = await $.files.open('hello.txt').toBuffer()
- // Logs the contents of the Buffer as a string
- console.log(buffer.toString())
- },
-})
-```
-
-### `File.fromFile(localFilePath, ?contentType)`
-
-*Async.* Uploads a file from the file at the `/tmp` local path. For example, if `localFilePath` is given `/tmp/recording.mp3`, it will upload that file to the current File Store File instance.
-
-```javascript
-export default defineComponent({
- async run({ steps, $ }) {
- // Upload a file to the File Store from the local /tmp/ directory
- const file = await $.files.open('recording.mp3').fromFile('/tmp/recording.mp3')
-
- console.log(file.url)
- },
-})
-```
-
-### `File.fromUrl(url)`
-
-*Async.* Accepts a `url` to read from.
-
-```javascript
-export default defineComponent({
- async run({ steps, $ }) {
- // Upload a file to the File Store by a URL
- const file = await $.files.open('pipedream.png').fromUrl('https://res.cloudinary.com/pipedreamin/image/upload/t_logo48x48/v1597038956/docs/HzP2Yhq8_400x400_1_sqhs70.jpg')
-
- console.log(file.url)
- },
-})
-```
-
-### `File.createWriteStream(?contentType, ?contentLength)`
-
-*Async.* Creates a write stream to populate the file with.
-
-
-Pass the content length if possible
-
-The `contentLength` argument is optional, however we do recommend passing it. Otherwise the entire file will need to be written to the local `/tmp` before it can be uploaded to the File store.
-
-
-```javascript
-import { pipeline } from 'stream/promises';
-import got from 'got'
-
-export default defineComponent({
- async run({ steps, $ }) {
- const writeStream = await $.files.open('logo.png').createWriteStream("image/png", 2153)
-
- const readStream = got.stream('https://pdrm.co/logo')
-
- await pipeline(readStream, writeStream);
- },
-})
-```
-
-### `File.fromReadableStream(?contentType, ?contentLength)`
-
-*Async.* Populates a file's contents from the `ReadableStream`.
-
-
-Pass the content length if possible
-
-The `contentLength` argument is optional, however we do recommend passing it. Otherwise the entire file will need to be written to the local `/tmp` before it can be uploaded to the File store.
-
-
-```javascript
-import got from 'got'
-
-export default defineComponent({
- async run({ steps, $ }) {
- // Start a new read stream
- const readStream = got.stream('https://pdrm.co/logo')
-
- // Populate the file's content from the read stream
- await $.files.open("logo.png").fromReadableStream(readStream, "image/png", 2153)
- },
-})
-```
-
-### `File.delete()`
-
-*Async.* Deletes the Project File.
-
-```javascript
-export default defineComponent({
- async run({ steps, $ }) {
- // Open the Project File and delete it
- const file = await $.files.open('example.png').delete()
-
- console.log('File deleted.')
- },
-})
-```
-
-
-Deleting files is irreversible
-
-It's not possible to restore deleted files. Please take care when deleting files.
-
diff --git a/docs-v2/pages/workflows/domains.mdx b/docs-v2/pages/workflows/domains.mdx
deleted file mode 100644
index 8d0da7c81cd7d..0000000000000
--- a/docs-v2/pages/workflows/domains.mdx
+++ /dev/null
@@ -1,100 +0,0 @@
-# Custom Domains
-
-By default, all new [Pipedream HTTP endpoints](/workflows/building-workflows/triggers/#http) are hosted on the **{process.env.ENDPOINT_BASE_URL}** domain. But you can configure any domain you want: instead of `https://endpoint.m.pipedream.net`, the endpoint would be available on `https://endpoint.example.com`.
-
-## Configuring a new custom domain
-
-### 1. Choose your domain
-
-You can configure any domain you own to work with Pipedream HTTP endpoints. For example, you can host Pipedream HTTP endpoints on a dedicated subdomain on your core domain, like `*.eng.example.com` or `*.marketing.example.com`. This can be any domain or subdomain you own.
-
-In this example, endpoints would look like:
-
-```
-[endpoint_id].eng.example.com
-[endpoint_id_1].eng.example.com
-...
-```
-
-where `[endpoint_id]` is a uniquely-generated hostname specific to your Pipedream HTTP endpoint.
-
-If you own a domain that you want to _completely_ redirect to Pipedream, you can also configure `*.example.com` to point to Pipedream. In this example, endpoints would look like:
-
-```
-[endpoint_id].example.com
-[endpoint_id_1].example.com
-...
-```
-
-Since all traffic on `*.example.com` points to Pipedream, we can assign hosts on the root domain. This also means that **you cannot use other hosts like www.example.com** without conflicting with Pipedream endpoints. Choose this option only if you're serving all traffic from `example.com` from Pipedream.
-
-Before you move on, make sure you have access to manage DNS records for your domain. If you don't, please coordinate with the team at your company that manages DNS records, and feel free to [reach out to our Support team](https://pipedream.com/support) with any questions.
-
-#### A note on domain wildcards
-
-Note that the records referenced above use the wildcard (`*`) for the host portion of the domain. When you configure DNS records in [step 3](#3-add-your-dns-records), this allows you to point all traffic for a specific domain to Pipedream and create any number of Pipedream HTTP endpoints that will work with your domain.
-
-### 2. Reach out to Pipedream Support
-
-Once you've chosen your domain and are in an [eligible plan](https://pipedream.com/pricing), [reach out to Pipedream Support](https://pipedream.com/support) and let us know what domain you'd like to configure for your workspace. We'll configure a TLS/SSL certificate for that domain, and give you two DNS CNAME records to add for that domain in [step 3](#3-add-your-dns-records).
-
-### 3. Add your DNS records
-
-Once we configure your domain, we'll ask you to create two DNS CNAME records:
-
-- [One record to prove ownership of your domain](#add-the-cname-validation-record) (a `CNAME` record)
-- [Another record to point traffic on your domain to Pipedream](#add-the-dns-cname-wildcard-record) (a `CNAME` record)
-
-#### Add the CNAME validation record
-
-Pipedream uses [AWS Certificate Manager](https://aws.amazon.com/certificate-manager/) to create the TLS certificate for your domain. To validate the certificate, you need to add a specific DNS record provided by Certificate Manager. Pipedream will provide the name and value.
-
-For example, if you requested `*.eng.example.com` as your custom domain, Pipedream will provide the details of the record, like in this example:
-
-- **Type**: `CNAME`
-- **Name**: `_2kf9s72kjfskjflsdf989234nsd0b.eng.example.com`
-- **Value**: `_7ghslkjsdfnc82374kshflasfhlf.vvykbvdtpk.acm-validations.aws.`
-- **TTL (seconds)**: 300
-
-Consult the docs for your DNS service for more information on adding CNAME records. Here's an example configuration using AWS's Route53 service:
-
-
-
-
-
-#### Add the DNS CNAME wildcard record
-
-Now you'll need to add the wildcard record that points all traffic for your domain to Pipedream. Pipedream will also provide the details of this record, like in this example:
-
-- **Type**: `CNAME`
-- **Name**: `*.eng.example.com`
-- **Value**: `id123.cd.pdrm.net.`
-- **TTL (seconds)**: 300
-
-Once you've finished adding these DNS records, please **reach out to the Pipedream team**. We'll validate the records and finalize the configuration for your domain.
-
-### 4. Send a test request to your custom domain
-
-Any traffic to existing **{process.env.ENDPOINT_BASE_URL}** endpoints will continue to work uninterrupted.
-
-To confirm traffic to your new domain works, take any Pipedream endpoint URL and replace the **{process.env.ENDPOINT_BASE_URL}** with your custom domain. For example, if you configured a custom domain of `pipedream.example.com` and have an existing endpoint at
-
-```
-https://[endpoint_id].m.pipedream.net
-```
-
-Try making a test request to
-
-```
-https://[endpoint_id].eng.example.com
-```
-
-## Security
-
-### How Pipedream manages the TLS/SSL certificate
-
-See our [TLS/SSL security docs](/privacy-and-security/#encryption-of-data-in-transit-tls-ssl-certificates) for more detail on how we create and manage the certificates for custom domains.
-
-### Requests to custom domains are allowed only for your endpoints
-
-Custom domains are mapped directly to customer endpoints. This means no other customer can send requests to their endpoints on _your_ custom domain. Requests to `example.com` are restricted specifically to HTTP endpoints in your Pipedream workspace.
diff --git a/docs-v2/pages/workflows/environment-variables.mdx b/docs-v2/pages/workflows/environment-variables.mdx
deleted file mode 100644
index 56e0cca3e136b..0000000000000
--- a/docs-v2/pages/workflows/environment-variables.mdx
+++ /dev/null
@@ -1,136 +0,0 @@
-import Callout from "@/components/Callout";
-
-# Environment Variables
-
-Environment variables (env vars) enable you to separate secrets and other static configuration data from your code.
-
-You shouldn't include API keys or other sensitive data directly in your workflow's code. By referencing the value of an environment variable instead, your workflow includes a reference to that variable — for example, `process.env.API_KEY` instead of the API key itself.
-
-You can reference env vars and secrets in [workflow code](/workflows/building-workflows/code/) or in the object explorer when passing data to steps, and you can define them either globally for the entire workspace, or scope them to individual projects.
-
-| Scope | Description |
-| ------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
-| **Workspace** | All environment variables are available to all workflows within the workspace. All workspace members can manage workspace-wide variables [in the UI](https://pipedream.com/settings/env-vars). |
-| **Project** | Environment variables defined within a project are only accessible to the workflows within that project. Only workspace members who have [access to the project](/projects/access-controls) can manage project variables. |
-
-## Creating and updating environment variables
-
-- To manage **global** environment variables for the workspace, navigate to **Settings**, then click **Environment Variables**: [https://pipedream.com/settings/env-vars](https://pipedream.com/settings/env-vars)
-- To manage environment variables within a project, open the project, then click **Variables** from the project nav on the left
-
-
-
-Click **New Variable** to add a new environment variable or secret:
-
-
-
-**Configure the required fields**:
-
-
-
-| Input field | Description |
-| :-------------- | :--------------------------------------------------------------------------------------------------------------------------- |
-| **Key** | Name of the variable — for example, `CLIENT_ID` |
-| **Value** | The value, which can contain any string with a max limit of 64KB |
-| **Description** | Optionally add a description of the variable. This is only visible in the UI, and is not accessible within a workflow. |
-| **Secret** | New variables default to **secret**. If configured as a secret, the value is never exposed in the UI and cannot be modified. |
-
-To edit an environment variable, click the **Edit** button from the three dots to the right of a specific variable.
-
-
-
-- Updates to environment variables will be made available to your workflows as soon as the save operation is complete — typically a few seconds after you click **Save**.
-- If you update the value of an environment variable in the UI, your workflow should automatically use that new value where it's referenced.
-- If you delete a variable in the UI, any deployed workflows that reference it will return `undefined`.
-
-## Referencing environment variables in code
-
-You can reference the value of any environment variable using the object [`process.env`](https://nodejs.org/dist/latest-v10.x/docs/api/process.html#process_process_env). This object contains environment variables as key-value pairs.
-
-For example, let's say you have an environment variable named `API_KEY`. You can reference its value in Node.js using `process.env.API_KEY`:
-
-```javascript
-const url = `http://yourapi.com/endpoint/?api_key=${process.env.API_KEY}`;
-```
-
-Reference the same environment variable in Python:
-
-```python
-import os
-print(os.environ["API_KEY"])
-```
-
-Variable names are case-sensitive. Use the key name you defined when referencing your variable in `process.env`.
-
-Referencing an environment variable that doesn't exist returns the value `undefined` in Node.js. For example, if you try to reference `process.env.API_KEY` without first defining the `API_KEY` environment variable in the UI, it will return the value `undefined`.
-
-### Using autocomplete to reference env vars
-
-When referencing env vars directly in code within your Pipedream workflow, you can also take advantage of autocomplete:
-
-
-
-
- Logging the value of any environment variables — for example, using
- `console.log` — will include that value in the logs associated with the cell.
- Please keep this in mind and take care not to print the values of sensitive
- secrets.
-
-
-
- `process.env` will always return `undefined` when used outside of the
- `defineComponent` export.
-
-
-## Referencing environment variables in actions
-
-[Actions](/components/contributing/#actions) are pre-built code steps that let you provide input in a form, selecting the correct params to send to the action.
-
-You can reference the value of environment variables using `{{process.env.YOUR_ENV_VAR}}`. You'll see a list of your environment variables in the object explorer when selecting a variable to pass to a step.
-
-
-
-
- [Private components](/components/contributing/#using-components) (actions or triggers) do not have direct access to workspace or project variables as public components or code steps. Add a prop specifically for the variable you need. For sensitive data like API keys, [configure the prop as a secret](/components/contributing/api/#props). In your prop configuration, set the value to `{{process.env.YOUR_ENV_VAR}}` to securely reference the environment variable.
-
-
-## FAQ
-
-### What if I define the same variable key in my workspace env vars and project env vars?
-
-The project-scoped variable will take priority if the same variable key exists at both the workspace and project level. If a workflow _outside_ of the relevant project references that variable, it'll use the value of the environment variable defined for the workspace.
-
-### What happens if I share a workflow that references an environment variable?
-
-If you [share a workflow](/workflows/building-workflows/sharing/) that references an environment variable, **only the reference is included, and not the actual value**.
-
-## Limits
-
-- Currently, environment variables are only exposed in Pipedream workflows, [not event sources](https://github.com/PipedreamHQ/pipedream/issues/583).
-- The value of any environment variable may be no longer than `64KB`.
-- The names of environment variables must start with a letter or underscore.
-- Pipedream reserves environment variables that start with `PIPEDREAM_` for internal use. You cannot create an environment variable that begins with that prefix.
diff --git a/docs-v2/pages/workflows/event-history.mdx b/docs-v2/pages/workflows/event-history.mdx
deleted file mode 100644
index e94728358d447..0000000000000
--- a/docs-v2/pages/workflows/event-history.mdx
+++ /dev/null
@@ -1,101 +0,0 @@
-import Callout from '@/components/Callout'
-import Image from 'next/image'
-import ArcadeEmbed from '@/components/ArcadeEmbed'
-
-# Event History
-
-Monitor all workflow events and their stack traces in one centralized view under the [**Event History**](https://pipedream.com/event-history) section in the dashboard.
-
-Within the **Event History**, you'll be able to filter your events by workflow, execution status, within a specific time range.
-
-
-Workspace admins are able to view events for all workflows, but members are required to select a workflow since they might not have [access to certain projects](/projects/access-controls/#permissions).
-
-
-## Filtering Events
-
-The filters at the top of the screen allow you to search all events processed by your workflows.
-
-You can filter by the event's **Status**, **time of initiation** or by the **Workflow name**.
-
-
-The filters are scoped to the current [workspace](/workspaces/). If you're not seeing the events or workflow you're expecting, try [switching workspaces](/workspaces/#switching-between-workspaces).
-
-
-### Filtering by status
-
-- The **Status** filter controls which events are shown by their status
-- For example selecting the **Success** status, you'll see all workflow events that were successfully executed
-
-
-
-
-
-#### All failed workflow executions
-
-- You can view all failed workflow executions by applying the **Error** status filter
-- This will only display the failed workflow executions in the selected time period
-- This view in particular is helpful for identifying trends of errors, or workflows with persistent problems
-
-
-
-#### All paused workflow executions
-
-- Workflow executions that are currently in a suspended state from `$.flow.delay` or `$.flow.suspend` will be shown when this filter is selected
-
-
-
-
-If you're using `setTimeout` or `sleep` in Node.js or Python steps, the event will not be considered **Paused**. Using those language native execution holding controls leaves your workflow in a **Executing** state.
-
-
-### Within a timeframe
-
-- Filtering by time frame will include workflow events that _began_ execution within the defined range
-- Using this dropdown, you can select between convenient time ranges, or specify a custom range on the right side
-
-
-
-### Filtering by workflow
-
-You can also filter events by a specific workflow. You can search by the workflow's name in the search bar in the top right.
-
-
-
-Alternatively, you can filter by workflow from a specific event. First, open the menu on the far right, then select **Filter By Workflow**. Then only events processed by that workflow will appear.
-
-
-
-## Inspecting events
-
-- Clicking on an individual event will open a panel that displays the steps executed, their individual configurations, as well as the overall performance and results of the entire workflow.
-- The top of the event history details will display details including the overall status of that particular event execution and errors if any.
-- If there is an error message, the link at the bottom of the error message will link to the corresponding workflow step that threw the error.
-- From here you can easily **Build from event** or **Replay event**
-
-
-
-## Bulk actions
-You can select multiple events and perform bulk actions on them.
-
-- **Replay**: Replays the selected events. This is useful for example when you have multiple errored events that you want to execute again after fixing a bug in your workflow.
-- **Delete**: Deletes the selected events. This may be useful if you have certain events you want to scrub from the event history, or when you've successfully replayed events that had originally errored.
-
-
-
-
-
-When you replay multiple events at once, they'll be replayed in the order they were originally executed. This means the first event that came in will be replayed first, followed by the second, and so on.
-
-
-## Limits
-
-The number of events recorded and available for viewing in the Event History depends on your plan. [Please see the pricing page](https://pipedream.com/pricing) for more details.
-
-## FAQ
-
-### Is Event History available on all plans?
-
-Yes, event history is available for all workspace plans, including free plans. However, the length of searchable or viewable history changes depending on your plan. [Please see the pricing page](https://pipedream.com/pricing) for more details.
diff --git a/docs-v2/pages/workflows/git.mdx b/docs-v2/pages/workflows/git.mdx
deleted file mode 100644
index eb4c7730d04ac..0000000000000
--- a/docs-v2/pages/workflows/git.mdx
+++ /dev/null
@@ -1,306 +0,0 @@
-import Callout from '@/components/Callout'
-import PipedreamCode from "@/components/PipedreamCode";
-
-# GitHub Sync
-
-When GitHub Syncing is enabled on your project, Pipedream will serialize your workflows and synchronize changes to a GitHub repo.
-
-Capabilities include:
-
-- Bi-directional GitHub sync (push and pull changes)
-- Edit in development branches
-- Track commit and merge history
-- Link users to commits
-- Merge from Pipedream or create PRs and merge from GitHub
-- Edit in Pipedream or use a local editor and synchronize via GitHub (e.g., edit code, find and replace across multiple steps or workflows)
-- Organize workflows into projects with support for nested folders
-
-## Getting Started
-
-### Create a new project and enable GitHub Sync
-
-A project may contain one or more workflows and may be further organized using nested folders. Each project may be synchronized to a single GitHub repo.
-
-- Go to `https://pipedream.com/projects`
-- Create a new project
-- Enter a project name and check the box to **Configure GitHub Sync**
- - To use **OAuth**
- - Select a connected account, GitHub scope and repo name
- - Pipedream will automatically create a new, empty repo in GitHub
- - 
- - To use **Deploy Keys**
- - Create a new repo in GitHub
- - Follow the instructions to configure the deploy key
- - Test your setup and create a new project
- - 
-
-### Create a branch to edit a project
-
-
-Branches are required to make changes
-
-All changes to resources in a project must be made in a development branch.
-
-Examples of changes include creating, editing, deleting, enabling, disabling and renaming workflows. This also includes changing workflow settings like concurrency, VPC assignment and auto-retries.
-
-
-To edit a git-backed project you must create a development branch by clicking **Edit > Create Branch**
-
-
-
-Next, name the branch and click **Create**:
-
-
-
-To exit development mode without merging to production, click **Exit Development Mode**:
-
-
-
-Your changes will be saved to the branch, if you choose to revisit them later.
-
-### Merge changes to production
-
-Once you've committed your changes, you can deploy your changes by merging them into the `production` branch through the Pipedream UI or GitHub.
-
-When you merge a Git-backed project to production, all modified resources in the project will be deployed. Multiple workflows may be deployed, modified, or deleted in production through a single merge action.
-
-#### Merge via the Pipedream UI
-
-To merge changes to production, click on **Merge to production:**
-
-
-
-Pipedream will present a diff between the development branch and the `production`. Validate your changes and click **Merge to production** to complete the merge:
-
-
-
-#### Create a Pull Request in GitHub
-
-To create a pull request in GitHub, either choose Open GitHub pull request from the git-actions menu in Pipedream or in GitHub:
-
-
-
-You can also review and merge changes directly from GitHub using the standard pull request process.
-
-
-Pull request reviews cannot be required
-
-PR reviews cannot be required. That feature is on the roadmap for the Business tier.
-
-
-### Commit changes
-
-To commit changes without merging to production, select **Commit Changes** from the Git Actions menu:
-
-
-
-You can review the diff and enter a commit message:
-
-
-
-### Pull changes and resolve conflicts
-
-If remote changes are detected, you'll be prompted to pull the changes:
-
-
-
-Pipedream will attempt to automatically merge changes. If there are conflicts, you will be prompted to manually resolve it:
-
-
-
-### Move existing workflows to projects
-
-
-Not available for v1 workflows
-
-Legacy (v1) workflows are not supported in projects.
-
-
-First, select the workflow(s) you want to move from the [workflows listing page](https://pipedream.com/workflows) and click **Move** in the top action menu:
-
-
-
-Then, select the project to move the selected workflows to:
-
-
-
-
-Undeployed changes are automatically assigned a development branch
-
-If any moved workflows have undeployed changes, those changes will staged in a branch prefixed with `undeployed-changes` (e.g., `undeployed-changes-27361`).
-
-
-### Use the changelog
-
-The changelog tracks all git activity (for projects with GitHub sync enabled). If you encounter an error merging your project, go to the changelog and explore the log details to help you troubleshoot issues in your workflows:
-
-
-
-### Local development
-
-Projects that use GitHub sync may be edited outside of Pipedream. You can edit and commit directly via GitHub’s UI or clone the repo locally and use your preferred editor (e.g., VSCode).
-
-To test external edits in Pipedream:
-
-1. Commit and push local changes to your development branch in GitHub
-2. Open the project in Pipedream's UI and load your development branch
-3. Use the Git Actions menu to pull changes from GitHub
-
-## Known Issues
-
-Below are a list of known issues that do not currently have solutions, but are in progress:
-
-- Project branches on Pipedream cannot be deleted.
-- If a workflow uses an action that has been deprecated, merging to production will fail.
-- Legacy (v1) workflows are not supported in projects.
-- Self-hosted GitHub Server instances are not yet supported. [Please contact us for help](https://pipedream.com/support).
-- Workflow attachments are not supported
-
-## GitHub Enterprise Cloud
-
-If your repository is hosted on an GitHub Enterprise account, you can allow Pipedream's address range to sync your project changes.
-
-[Follow the directions here](https://docs.github.com/en/enterprise-cloud@latest/organizations/keeping-your-organization-secure/managing-security-settings-for-your-organization/managing-allowed-ip-addresses-for-your-organization) and add the following IP range:
-
-
- {process.env.PD_EGRESS_IP_RANGE}
-
-
-
-GitHub Sync is available on Business plan
-
-To use this public IP address and connect to GitHub Enterprise Cloud hosted repositories, you'll need to have a Pipedream Business plan. [View our plans](https://pipedream.com/pricing).
-
-
-## FAQ
-
-### How are Pipedream workflows synchronized to GitHub?
-
-Pipedream will serialize your project's workflows and their configuration into a standard YAML format for storage in GitHub.
-
-Then Pipedream will commit your changes to your connected GitHub account.
-
-### Do you have a definition of this YAML?
-
-Not yet, please stay tuned!
-
-### Can I sync multiple workflows to a single GitHub Repository?
-
-Yes, _projects_ are synced to a single GitHub Repository which allows you to store multiple workflows into a single GitHub Repository for easier organization and management.
-
-### Can I use this feature to develop workflows locally?
-
-Yes, you can use the GitHub Syncing feature to develop your workflows from YAML files checked into your Pipedream connected GitHub Repository.
-
-Then pushing changes to the `production` branch will trigger a deploy for your Pipedream workflows.
-
-### Why am I seeing the error "could not resolve step[index].uses: component-key@version" when merging to production?
-This error occurs when a workflow references a [private component](/components/contributing/#using-private-actions) without properly prefixing the component key with your workspace name in the `workflow.yaml` configuration file. Pipedream requires this prefix to correctly identify and resolve components specific to your workspace.
-
-For example, if you modified a [registry action](/components/contributing/) and published it privately, the correct component key should be formatted as `@workspacename/component-key@version` (e.g., `@pipedream/github-update-issue@0.1.0`).
-
-To resolve this error:
-
-1. Clone your repository locally and create a development branch.
-2. Locate the error in your `workflow.yaml` file where the component key is specified.
-3. Add your workspace name prefix to the component key, ensuring it follows the format `@workspacename/component-key@version`.
-4. Commit your changes and push them to your repository.
-5. Open your project in the Pipedream UI and select your development branch.
-6. Click on **Merge to Production** and verify the deployment success in the [Changelog](/workflows/git/#use-the-changelog).
-7. If the issue persists, [reach out to Pipedream Support](https://pipedream.com/support) for further assistance.
-
-### Why am I seeing an error about "private auth mismatch" when trying to merge a branch to production?
-
-
-This error occurs when **both** of the below conditions are met:
-1. The referenced workflow is using a connected account that's not shared with the entire workspace
-2. The change was merged from outside the Pipedream UI (via github.com or locally)
-
-Since Pipedream can't verify the person who merged that change should have access to use the connected account in a workflow in this case, we block these deploys.
-
-To resolve this error:
-1. Make sure all the connected accounts in the project's workflows are [accessible to the entire workspace](/apps/connected-accounts/#access-control)
-2. Re-trigger a sync with Pipedream by making a nominal change to the workflow **from outside the Pipedream UI** (via github.com or locally), then merge that change to production
-
-### Can I sync an existing GitHub Repository with workflows to a new Pipedream Project?
-
-No, at this time it's not possible because of how resources are connected during the bootstrapping process from the workflow YAML specification.
-However, this is on our roadmap, [please subscribe to this issue](https://github.com/PipedreamHQ/pipedream/issues/9255) for the latest details.
-
-### Migrating Github Repositories
-
-You can migrate Pipedream project's Github repository to a new repository, while preserving history. You may want to do this when migrating a repository from a personal Github account to an organization account, without affecting the workflows within the Pipedream project.
-
-#### Assumptions
-- **Current GitHub Repository**: `previous_github_repo`
-- **New GitHub Repository**: `new_github_repo`
-- Basic familiarity with git and GitHub
-- Access to a local terminal (e.g., Bash, Zsh, PowerShell)
-- Necessary permissions to modify both the Pipedream project and associated GitHub repositories
-
-#### Steps
-
-1. **Access Project Settings in Pipedream:**
- - Navigate to your Pipedream project.
- - Use the dropdown menu on the "Edit" button in the top right corner to access `previous_github_repo` in GitHub.
-
- 
-
-2. **Clone the Current Repository Locally:**
- ```
- git clone previous_github_repo_clone_url
- ```
-3. Reset GitHub Sync in Pipedream:
- - In Pipedream, go to your project settings.
- - Click on "Reset GitHub Connection".
-
- 
-
-4. Set Up New repository connection:
- - Configure the project's GitHub repository to use `new_github_repo`.
-5. Clone the new repository locally:
- ```
- git clone new_github_repo_clone_url
- cd new_github_repo
- ```
-6. Link to the old repository:
- ```
- git remote add old_github_repo previous_github_repo_clone_url
- git fetch --all
- ```
-7. Prepare for migration:
- - Create and switch to a new branch for migration:
- ```
- git checkout -b migration
- ```
- - Merge the main branch of `old_github_repo` into migration, allowing for unrelated histories:
- ```
- git merge --allow-unrelated-histories old_github_repo/production
- # Resolve any conflicts, such as in README.md
- git commit
- ```
-8. Finalize the migration:
- - Optionally push the `migration` branch to the remote:
- ```
- git push --set-upstream origin migration
- ```
- - Switch to the `production` branch and merge:
- ```
- git checkout production
- git merge --no-ff migration
- git push
- ```
-9. Cleanup:
- - Remove the connection to the old repository:
- ```
- git remote remove old_github_repo
- ```
- - Optionally, you may now safely delete `previous_github_repo` from GitHub.
-
-### How does the `production` branch work?
-
-Anything merged to the `production` branch will be deployed to your production workflows on Pipedream.
-
-From a design perspective, we want to let you manage any branching strategy on your end, since you may be making commits to the repo outside of Pipedream. Once we support managing Pipedream workflows in a monorepo, where you may have other changes, we wanted to use a branch that didn't conflict with a conventional main branch (like `main` or `master`).
-
-In the future, we also plan to support you changing the default branch name.
diff --git a/docs-v2/pages/workflows/index.mdx b/docs-v2/pages/workflows/index.mdx
deleted file mode 100644
index 1b40f01bf98ad..0000000000000
--- a/docs-v2/pages/workflows/index.mdx
+++ /dev/null
@@ -1,101 +0,0 @@
-import VideoPlayer from '@/components/VideoPlayer';
-import Callout from '@/components/Callout'
-
-# What are workflows?
-
-
-
-Workflows make it easy to integrate your apps, data, and APIs - all with no servers or infrastructure to manage. They're sequences of [steps](/workflows/#steps) [triggered by an event](/workflows/building-workflows/triggers/), like an HTTP request, or new rows in a Google sheet.
-
-You can use [pre-built actions](/workflows/building-workflows/actions/) or custom [Node.js](/workflows/building-workflows/code/nodejs/), [Python](/workflows/building-workflows/code/python/), [Golang](/workflows/building-workflows/code/go/), or [Bash](/workflows/building-workflows/code/bash/) code in workflows and connect to any of our {process.env.PUBLIC_APPS} integrated apps.
-
-Read [our quickstart](/quickstart/) or watch our videos on [Pipedream University](https://pipedream.com/university) to learn more.
-
-## Steps
-
-Steps are the building blocks you use to create workflows.
-
-- Use [triggers](/workflows/building-workflows/triggers/), [code](/workflows/building-workflows/code/), and [pre-built actions](/components/contributing/#actions)
-- Steps are run linearly, in the order they appear in your workflow
-- You can pass data between steps using [the `steps` object](#step-exports)
-- Observe the logs, errors, timing, and other execution details for every step
-
-### Triggers
-
-Every workflow begins with a [trigger](/workflows/building-workflows/triggers/) step. Trigger steps initiate the execution of a workflow; i.e., workflows execute on each trigger event. For example, you can create an [HTTP trigger](/workflows/building-workflows/triggers/#http) to accept HTTP requests. We give you a unique URL where you can send HTTP requests, and your workflow is executed on each request.
-
-You can add [multiple triggers](/workflows/building-workflows/triggers/#can-i-add-multiple-triggers-to-a-workflow) to a workflow, allowing you to run it on distinct events.
-
-### Code, Actions
-
-[Actions](/components/contributing/#actions) and [code](/workflows/building-workflows/code/) steps drive the logic of your workflow. Anytime your workflow runs, Pipedream executes each step of your workflow in order. Actions are prebuilt code steps that let you connect to hundreds of APIs without writing code. When you need more control than the default actions provide, code steps let you write any custom Node.js code.
-
-Code and action steps cannot precede triggers, since they'll have no data to operate on.
-
-Once you save a workflow, we deploy it to our servers. Each event triggers the workflow code, whether you have the workflow open in your browser, or not.
-
-## Step Names
-
-Steps have names, which appear at the top of the step:
-
-
-
-When you [share data between steps](#step-exports), you'll use this name to reference that shared data. For example, `steps.trigger.event` contains the event that triggered your workflow. If you exported a property called `myData` from this code step, you'd reference that in other steps using `steps.code.myData`. See the docs on [step exports](#step-exports) to learn more.
-
-You can rename a step by clicking on its name and typing a new one in its place:
-
-
-
-After changing a step name, you'll need to update any references to the old step. In this example, you'd now reference this step as `steps.get_data`.
-
-
-Step names cannot contain spaces or dashes. Please use underscores or camel casing for your step names, like `getData` or `get_data`.
-
-
-## Passing data to steps from the workflow builder
-
-You can generate form based inputs for steps using `props`. This allows the step reuse in across many workflows with different provided arguments - all without changing code.
-
-Learn more about using `props` in our [Node.js code step documentation.](/workflows/building-workflows/code/nodejs/#passing-props-to-code-steps)
-
-
-Passing props from the workflow builder to workflow steps are only available in Node.js code steps.
-
-We do not currently offer this feature for Python, Bash or Go powered code steps.
-
-
-## Step Exports
-
-Step exports allow you to pass data between steps. Any data exported from a step must be JSON serializable; the data must be able to stored as JSON so it can be read by downstream steps.
-
-For examples of supported data types in your steps language, see the examples below.
-
-* [Node.js (Javascript)](/workflows/building-workflows/code/nodejs/#sharing-data-between-steps)
-* [Python](/workflows/building-workflows/code/python/#sharing-data-between-steps)
-* [Bash](/workflows/building-workflows/code/bash/#sharing-data-between-steps)
-* [Go](/workflows/building-workflows/code/go/#sharing-data-between-steps)
-
-## Step Notes
-
-Pipedream lets you add notes to individual steps in your workflow so you can include helpful context to other workspace members or even yourself, and you can even write markdown!
-
-
-
-### Adding or editing a note
-1. Enter build mode on any workflow
-2. Click into the overflow menu (3 dots) at the top right of any step
-3. Select **Add note** (or **Edit note** if making changes to an existing note)
-4. Add any text or markdown, then click **Update**
-
-
-
-
-
-### Showing notes
-Any step that has a note will have a **Note** section in the top panel in the editor pane.
-
-
-
-### Current limitations
-
-- Step notes are only accessible in Build mode, not in the Inspector.
diff --git a/docs-v2/pages/workflows/limits.mdx b/docs-v2/pages/workflows/limits.mdx
deleted file mode 100644
index 4bc6bebde4be6..0000000000000
--- a/docs-v2/pages/workflows/limits.mdx
+++ /dev/null
@@ -1,141 +0,0 @@
-# Limits
-
-Pipedream imposes limits on source and workflow execution, the events you send to Pipedream, and other properties. You'll receive an error if you encounter these limits. See our [troubleshooting guide](/troubleshooting/) for more information on these specific errors.
-
-Some of these limits apply only on the free tier. For example, Pipedream limits the daily number of credits and active workflows you can use on the free tier. **On paid tiers, you can run an unlimited number of credits per day, for any amount of execution time**.
-
-Other limits apply across the free and paid tiers. Please see the details on each limit below.
-
-**These limits are subject to change at any time**.
-
-## Number of Workflows
-
-The limit of active workflows depends on your current plan. [See our pricing page](https://pipedream.com/pricing) for more details.
-
-## Number of Event Sources
-
-**You can run an unlimited number of event sources**, as long as each operates under the limits below.
-
-## Daily Credits Limit
-
-Free Pipedream accounts are limited on daily credits. Paid plans do not have a credit limit.
-
-You can view your credits usage at the bottom-left of [the Pipedream UI](https://pipedream.com).
-
-You can also see more detailed usage in [Billing and Usage Settings](https://pipedream.com/settings/billing). Here you'll find your usage for the last 30 days, broken out by day, by resource (e.g. your source / workflow).
-
-Your included credits count is reset daily at 00:00 (midnight) UTC.
-
-### Included Credits Usage Notifications
-
-| Tier | Notifications |
-| :--------: | :-------------------------------------------------------------------------------------------------------------------------------------------------: |
-| Free tiers | You'll receive an email when you reach 100% of your daily usage. |
-| Paid tiers | You'll receive an email at 80% and 100% of your [included credits](/pricing/#included-credits) for your [billing period](/pricing/#billing-period). |
-
-## Daily workflow testing limit
-
-You **do not** use credits testing workflows, but workspaces on the **Free** plan are limited to {process.env.DAILY_TESTING_LIMIT} of test runtime per day. If you exceed this limit when testing in the builder, you'll see a **Runtime Quota Exceeded** error.
-
-## Data stores
-
-Depending on your plan, Pipedream sets limits on:
-
-1. The total number of data stores
-2. The total number of keys across all data stores
-3. The total storage used across all data stores
-
-You'll find your workspace's limits in the **Data Stores** section of usage dashboard in the bottom-left of [the Pipedream UI](https://pipedream.com).
-
-
-
-
-
-## HTTP Triggers
-
-The following limits apply to [HTTP triggers](/workflows/building-workflows/triggers/#http).
-
-### HTTP Request Body Size
-
-By default, the body of HTTP requests sent to a source or workflow is limited to {process.env.PAYLOAD_SIZE_LIMIT}.
-
-Your endpoint will issue a `413 Payload Too Large` status code when the body of your request exceeds {process.env.PAYLOAD_SIZE_LIMIT}.
-
-**Pipedream supports two different ways to bypass this limit**. Both of these interfaces support uploading data up to `5TB`, though you may encounter other platform limits.
-
-- You can send large HTTP payloads by passing the `pipedream_upload_body=1` query string or an `x-pd-upload-body: 1` HTTP header in your HTTP request. [Read more here](/workflows/building-workflows/triggers/#sending-large-payloads).
-- You can upload multiple large files, like images and videos, using the [large file upload interface](/workflows/building-workflows/triggers/#large-file-support).
-
-### QPS (Queries Per Second)
-
-Generally the rate of HTTP requests sent to an endpoint is quantified by QPS, or _queries per second_. A query refers to an HTTP request.
-
-**You can send an average of 10 requests per second to your HTTP trigger**. Any requests that exceed that threshold may trigger rate limiting. If you're rate limited, we'll return a `429 Too Many Requests` response. If you control the application sending requests, you should retry the request with [exponential backoff](https://cloud.google.com/storage/docs/exponential-backoff) or a similar technique.
-
-We'll also accept short bursts of traffic, as long as you remain close to an average of 10 QPS (e.g. sending a batch of 50 requests every 30 seconds should not trigger rate limiting).
-
-**This limit can be raised for paying customers**. To request an increase, [reach out to our Support team](https://pipedream.com/support/) with the HTTP endpoint whose QPS you'd like to increase, with the new, desired limit.
-
-## Email Triggers
-
-Currently, most of the [limits that apply to HTTP triggers](#http-triggers) also apply to [email triggers](/workflows/building-workflows/triggers/#email).
-
-The only limit that differs between email and HTTP triggers is the payload size: the total size of an email sent to a workflow - its body, headers, and attachments - is limited to {process.env.EMAIL_PAYLOAD_SIZE_LIMIT}.
-
-## Memory
-
-By default, workflows run with {process.env.MEMORY_LIMIT} of memory. You can modify a workflow's memory [in your workflow's Settings](/workflows/building-workflows/settings/#memory), up to {process.env.MEMORY_ABSOLUTE_LIMIT}.
-
-Increasing your workflow's memory gives you a proportional increase in CPU. If your workflow is limited by memory or compute, increasing your workflow's memory can reduce its overall runtime and make it more performant.
-
-**Pipedream charges credits proportional to your memory configuration**. [Read more here](/pricing/faq/#how-does-workflow-memory-affect-credits).
-
-## Disk
-
-Your code, or a third party library, may need access to disk during the execution of your workflow or event source. **You have access to {process.env.TMP_SIZE_LIMIT} of disk in the `/tmp` directory**.
-
-This limit cannot be raised.
-
-## Workflows
-
-### Time per execution
-
-Every event sent to a workflow triggers a new execution of that workflow. Workflows have a default execution limit that varies with the trigger type:
-
-- HTTP and Email-triggered workflows default to **30 seconds** per execution.
-- Cron-triggered workflows default to **60 seconds** per execution.
-
-If your code exceeds your workflow-level limit, we'll throw a **Timeout** error and stop your workflow. Any partial logs and observability associated with code cells that ran successfully before the timeout will be attached to the event in the UI, so you can examine the state of your workflow and troubleshoot where it may have failed.
-
-You can increase the timeout limit, up to a max value set by your plan:
-
-| Tier | Maximum time per execution |
-| :--------: | :------------------------: |
-| Free tiers | 300 seconds (5 min) |
-| Paid tiers | 750 seconds (12.5 min) |
-
-Events that trigger a **Timeout** error will appear in red in the [Inspector](/workflows/building-workflows/inspect/). You'll see the timeout error, also in red, in the cell at which the code timed out.
-
-### Event History
-
-The [Inspector](/workflows/building-workflows/inspect/#the-inspector) shows the execution history for a given workflow. Events have a limited retention period, depending on your plan:
-
-| Tier | Events retained per workflow |
-| :--------: | :------------------------------------------------------------------------------: |
-| Free tiers | {process.env.FREE_INSPECTOR_EVENT_LIMIT} |
-| Paid tiers | [View breakdown of events history per paid plan](https://pipedream.com/pricing/) |
-
-The execution details for a specific event also expires after {process.env.INSPECTOR_EVENT_EXPIRY_DAYS} days.
-
-### Logs, Step Exports, and other observability
-
-The total size of `console.log()` statements, [step exports](/workflows/#step-exports), and the original event data sent to the workflow cannot exceed a combined size of {process.env.FUNCTION_PAYLOAD_LIMIT}. If you produce logs or step exports larger than this - for example, passing around large API responses, CSVs, or other data - you may encounter a **Function Payload Limit Exceeded** in your workflow.
-
-This limit cannot be raised.
-
-## Acceptable Use
-
-We ask that you abide by our [Acceptable Use](https://pipedream.com/terms/#b-acceptable-use) policy. In short this means: don't use Pipedream to break the law; don't abuse the platform; and don't use the platform to harm others.
diff --git a/docs-v2/pages/workflows/quickstart.mdx b/docs-v2/pages/workflows/quickstart.mdx
deleted file mode 100644
index 9e819f669a172..0000000000000
--- a/docs-v2/pages/workflows/quickstart.mdx
+++ /dev/null
@@ -1,253 +0,0 @@
-import Callout from '@/components/Callout'
-import { Steps } from 'nextra/components'
-
-# Workflow Development
-
-Sign up for a [free Pipedream account](https://pipedream.com/auth/signup) (no credit card required) and complete this quickstart guide to learn the basic patterns for workflow development:
-
-
-### Create a project
-
-Workflows must be created in **Projects**. Projects make it easy to organize your workflows and collaborate with your team.
-
-Go to [https://pipedream.com/projects](https://pipedream.com/projects) and click on **Create Project**.
-
-
-
-Next, enter a project name and click **Create Project**. For this example, we'll name our project **Getting Started**. You may also click the icon to the right to generate a random project name.
-
-
-
-
-[Configure GitHub Sync](/workflows/git/) for projects to enable git-based version control and unlock the ability to develop in branches, commit to or pull changes from GitHub, view diffs, create PRs and more.
-
-
-### Create a workflow
-
-After the project is created, use the **New** button to create a new workflow.
-
-
-
-Name the workflow and click **Create Workflow** to use the default settings. For this example, we'll name the workflow **Pipedream Quickstart**.
-
-
-
-### Add an HTTP / Webhook trigger
-
-Next, Pipedream will launch the workflow builder and prompt you to add a trigger.
-
-
-
-Clicking the trigger opens a new menu to select the trigger. For this example, select **New HTTP / Webhook Requests**.
-
-
-
-Click **Save and continue** in the step editor on the right to accept the default settings.
-
-
-
-Pipedream will generate a unique URL to trigger this workflow. Once your workflow is deployed, your workflow will run on every request to this URL.
-
-
-
-### Generate a test event
-
-Next, generate a test event to help you build the workflow.
-
-
-The test event will be used to provide autocomplete suggestion as you build your workflow. The data will also be used when testing later steps. You may generate or select a different test event at any time when building a workflow.
-
-
-For this example, let's use the following test event data:
-
-```json
-{
- "message": "Pipedream is awesome!"
-}
-```
-
-Pipedream makes it easy to generate test events for your HTTP trigger. Click on **Generate Test Event** to open the HTTP request builder. Copy and paste the JSON data above into the **Raw Request Body** field and click **Send HTTP Request**.
-
-
-
-Pipedream will automatically select and display the contents of the selected event. Validate that the `message` was received as part the event `body`.
-
-
-
-
-
-You may also send live data to the unique URL for your workflow using your favorite HTTP tool or by running a `cURL` command, e.g.,
-
-```bash
-curl -d '{"message": "Pipedream is awesome!"}' \
- -H "Content-Type: application/json" \
- YOUR_ENDPOINT_URL
-```
-
-
-### Enrich trigger data using Node.js and npm
-
-Before we send data to Google Sheets, let's use the npm [`sentiment`](https://www.npmjs.com/package/sentiment) package to generate a sentiment score for our message. To do that, click **Continue** or the **+** button.
-
-
-
-That will open the **Add a step** menu. Select **Run custom code**.
-
-
-
-Pipedream will add a Node.js code step to the workflow.
-
-
-
-
-Rename the step to **sentiment**.
-
-
-
-Next, add the following code to the code step:
-
-```javascript
-import Sentiment from "sentiment"
-
-export default defineComponent({
- async run({ steps, $ }) {
- let sentiment = new Sentiment()
- return sentiment.analyze(steps.trigger.event.body.message)
- },
-})
-```
-
-This code imports the npm package, passes the message we sent to our trigger to the `analyze()` function by referencing `steps.trigger.event.body.message` and then returns the result.
-
-
-To use any npm package on Pipedream, just `import` it. There's no `npm install` or `package.json` required.
-
-
-
-Any data you `return` from a step is exported so it can be inspected and referenced it in future steps via the `steps` object. In this example, return values will be exported to `steps.sentiment.$return_value` because we renamed the step to **sentiment** .
-
-
-Your code step should now look like the screenshot below. To run the step and test the code, click the **Test** button.
-
-
-
-You should see the results of the sentiment analysis when the test is complete.
-
-
-
-
-
-When you **Test** a step, only the current step is executed. Use the caret to test different ranges of steps including the entire workflow.
-
-
-### Save data to Google Sheets
-
-Next, create a Google Sheet and add **Timestamp**, **Message** and **Sentiment Score** to the first row. These labels act as our column headers amd will help us configure the Google Sheets step of the workflow.
-
-
-
-Next, let's add a step to the workflow to send the data to Google Sheets. First, click **+** after the `sentiment` code step and select the **Google Sheets** app.
-
-
-
-Then select the **Add Single Row** action.
-
-
-
-Click to connect you Google Sheets account to Pipedream (or select it from the dropdown if you previously connected an account).
-
-
-
-Pipedream will open Google's sign in flow in a new window. Sign in with the account you want to connect.
-
-
-
-
-If prompted, you must check the box for Pipedream to **See, edit, create and delete all of your Google Drive files**. These permissions are required for configure and use the pre-built actions for Google Sheets.
-
-
-
-
-Learn more about Pipedream's [privacy and security policy](/privacy-and-security/).
-
-When you complete connecting your Google account, the window should close and you should return to Pipedream. Your connected account should automatically be selected. Next, select your spreadsheet from the dropdown menu:
-
-
-
-Then select the sheet name (the default sheet name in Google Sheets is **Sheet1**):
-
-
-
-Next, select if the spreadsheet has headers in the first row. When a header row exists, Pipedream will automatically retrieve the header labels to make it easy to enter data (if not, you can manually construct an array of values). Since the sheet for this example contains headers, select **Yes**.
-
-
-
-Pipedream will retrieve the headers and generate a form to enter data in your sheet:
-
-
-
-First, let's use the object explorer to pass the timestamp for the workflow event as the value for the first column. This data can be found in the context object on the trigger.
-
-When you click into the **Timestamp** field, Pipedream will display an object explorer to make it easy to find data. Scroll or search to find the `ts` key under `steps.trigger.context`.
-
-
-
-Click **select path** to insert a reference to steps.trigger.context.ts:
-
-
-
-Next, let's use autocomplete to enter a value for the **Message** column. First, add double braces `{{` — Pipedream will automatically add the closing braces `}}`.
-
-Then, type `steps.trigger.event.body.message` between the pairs of braces. Pipedream will provide autocomplete suggestions as you type. Press **Tab** to use a suggestion and then click `.` to get suggestions for the next key. The final value in the **Message** field should be `steps.trigger.event.body.message`.
-
-
-
-Finally, let's copy a reference from a previous step. Click on the `sentiment` step to open the results in the editor:
-
-
-
-Next, click the **Copy Path** link next to the score.
-
-
-
-Click the Google Steps step or click the open tab in the editor. Then paste the value into the **Sentiment Score** field — Pipedream will automatically wrap the reference in double braces `{{ }}`.
-
-
-
-Now that the configuration is complete, click **Test** to validate the configuration for this step. When the test is complete, you will see a success message and a summary of the action performed:
-
-
-
-If you load your spreadsheet, you should see the data Pipedream inserted.
-
-
-
-Next, return to your workflow and click **Deploy** to run your workflow on every trigger event.
-
-
-
-When your workflow deploys, you will be redirected to the **Inspector**. Your workflow is now live.
-
-
-
-To validate your workflow is working as expected, send a new request to your workflow: You can edit and run the following `cURL` command:
-
-```bash
-curl -d '{ "message": "Pipedream is awesome!" }' \
- -H "Content-Type: application/json" \
- YOUR-TRIGGER-URL
-```
-
-The event will instantly appear in the event list. Select it to inspect the workflow execution.
-
-
-
-Finally, you can return to Google Sheets to validate that the new data was automatically inserted.
-
-
-
-
-
-## Next Steps
-
-Congratulations! You completed the quickstart and should now understand the basic patterns for workflow development. Next, try creating your own [workflows](/workflows/building-workflows/), learn how to [build and run workflows for your users](/connect/workflows/) or check out the rest of the [docs](/)!
diff --git a/docs-v2/pages/workflows/vpc.mdx b/docs-v2/pages/workflows/vpc.mdx
deleted file mode 100644
index b7dbe881ced18..0000000000000
--- a/docs-v2/pages/workflows/vpc.mdx
+++ /dev/null
@@ -1,83 +0,0 @@
-import VideoPlayer from '@/components/VideoPlayer';
-
-# Virtual Private Clouds
-
-
-
-Pipedream VPCs enable you to run workflows in dedicated and isolated networks with static outbound egress IP addresses that are unique to your workspace (unlike other platforms that provide static IPs common to all customers on the platform).
-
-Outbound network requests from workflows that run in a VPC will originate from these static IP addresses, so you can whitelist access to sensitive resources (like databases and APIs) with confidence that the requests will only originate from the Pipedream workflows in your workspace.
-
-## Getting started
-
-### Create a new VPC
-
-1. Open the [Virtual Private Clouds tab](https://pipedream.com/settings/networks):
-
-
-
-1. Click on **New VPC** in the upper right of the page:
-
-
-
-2. Enter a network name and click **Create**:
-
-
-
-3. It may take 5-10 minutes to complete setting up your network. The status will change to **Available** when complete:
-
-
-
-### Run workflows within a VPC
-
-To run workflows in a VPC, check the **Run in Private Network** option in workflow settings and select the network you created. All outbound network requests for the workflow will originate from the static egress IP for the VPC (both when testing a workflow or when running the workflow in production).
-
-
-
-If you don't see the network listed, the network setup may still be in progress. If the issue persists longer than 10 minutes, please [contact support](https://pipedream.com/support).
-
-### Find the static outbound IP address for a VPC
-
-You can view and copy the static outbound IP address for each VPC in your workspace from the [Virtual Private Cloud settings](https://pipedream.com/settings/networks). If you need to restrict access to sensitive resources (e.g., a database) by IP address, copy this address and configure it in your application with the `/32` CIDR block. Network requests from workflows running in the VPC will originate from this address.
-
-
-
-## Managing a VPC
-
-To rename or delete a VPC, navigate to the [Virtual Private Cloud settings](https://pipedream.com/settings/networks) for your workspace and select the option from the menu at the the right of the VPC you want to manage.
-
-## Self-hosting and VPC peering
-
-If you're interested in running Pipedream workflows in your own infrastructure, or configure VPC peering to allow Pipedream to communicate to resources in a private network, please reach out to our [Sales team](mailto:sales@pipedream.com).
-
-## Limitations
-
-- Only workflows can run in VPCs (other resources like sources or data stores are not currently supported). For example, [sources](/workflows/building-workflows/triggers/) cannot yet run in VPCs.
-- Creating a new network can take up to 5 minutes. Deploying your first workflow into a new network and testing that workflow for the first time can take up to 1 min. Subsequent operations should be as fast as normal.
-- VPCs only provide static IPs for outbound network requests. This feature does not provide a static IP for or otherwise restrict inbound requests.
-- You can't set a default network for all new workflows in a workspace or project (you must select the network every time you create a new workflow). Please [reach out](https://pipedream.com/support) if you're interesting in imposing controls like this in your workspace.
-- Workflows running in a VPC will still route specific requests routed through [the shared Pipedream network](/workflows/data-management/destinations/http/#ip-addresses-for-pipedream-http-requests):
- - [`$.send.http()`](/workflows/data-management/destinations/http/) requests
- - Async options requests (these are requests that are made to populate options in drop down menus for actions while a building a workflow — e.g., the option to “select a Google Sheet” when using the “add row to Google Sheets” action)
-
-## FAQ
-
-### Will HTTP requests sent from Node.js, Python and the HTTP request steps use the assigned static IP address?
-
-Yes, all steps that send HTTP requests from a workflow assigned to a VPC will use that VPC's IP address to send HTTP requests.
-
-This will also include `axios`, `requests`, `fetch` or any HTTP client you prefer in your language of choice.
-
-The only exception are requests sent by `$.send.http()` or the HTTP requests used to populate async options that power props like "Select a Google Sheet" or "Select a Slack channel". These requests will route through the [standard set of Pipedream IP addresses.](/privacy-and-security/#hosting-details)
-
-### Can a single workflow live within multiple VPCs?
-
-No, a VPC can contain many workflows, but a single workflow can only belong to one VPC.
-
-### Can I modify my VPC's IP address to another address?
-
-No, IP addresses are assigned to VPCs for you, and they are not changeable.
-
-### How much will VPCs cost?
-
-VPCs are available on the **Business** plan. [Upgrade your plan here](https://pipedream.com/pricing).
diff --git a/docs-v2/pages/workspaces/_meta.tsx b/docs-v2/pages/workspaces/_meta.tsx
deleted file mode 100644
index 74a6e04201267..0000000000000
--- a/docs-v2/pages/workspaces/_meta.tsx
+++ /dev/null
@@ -1,5 +0,0 @@
-export default {
- "index": "Managing workspaces",
- "sso": "Single-Sign On",
- "domain-verification": "Domain Verification",
-} as const
diff --git a/docs-v2/pages/workspaces/domain-verification.mdx b/docs-v2/pages/workspaces/domain-verification.mdx
deleted file mode 100644
index 130e556f33048..0000000000000
--- a/docs-v2/pages/workspaces/domain-verification.mdx
+++ /dev/null
@@ -1,19 +0,0 @@
-import Callout from '@/components/Callout'
-
-# Domain Verification
-
-Pipedream requires that you verify ownership of your email domain in order to [configure SAML SSO](/workspaces/sso/) for your workspace. If your email is `foo@example.com`, you need to verify ownership of `example.com`. If configuring Google OAuth (not SAML), you can disregard this section.
-
-## Getting started
-
-1. Navigate to the **[Verified Domains](https://pipedream.com/settings/domains)** section of your workspace settings
-2. Enter the domain you'd like to use then click **Add Domain**
-3. You'll see a modal with instructions for adding a `TXT` record in the DNS configuration for your domain
-4. DNS changes may take between a few minutes and up to 72 hours to propagate. Once they're live, click the **Verify** button for the domain you've entered
-5. Once Pipedream verifies the `TXT` record, we'll show a green checkmark on the domain
-
-
-Make sure to verify all your domains. There's no limit on the number of domains you can verify for SSO, so if you use `example.com`, `example.net`, and `foo.example.com`, make sure to verify each one.
-
-
-
diff --git a/docs-v2/pages/workspaces/index.mdx b/docs-v2/pages/workspaces/index.mdx
deleted file mode 100644
index f6011fb2d3830..0000000000000
--- a/docs-v2/pages/workspaces/index.mdx
+++ /dev/null
@@ -1,113 +0,0 @@
-import Callout from '@/components/Callout'
-
-# Managing workspaces
-
-When you sign up for Pipedream, you'll either create a new workspace or join an existing one if you signed up from an invitation.
-
-You can create and join any number of workspaces. For example, you can create one to work alone and another to collaborate with your team. You can also start working alone, then easily add others into your existing workspace to work together on workflows you've already built out.
-
-Once you've created a new workspace, you can invite your team to create and edit workflows together, and organize them within projects and folders.
-
-## Creating a new workspace
-
-To create a new workspace,
-
-1. Open the dropdown menu in the top left of the Pipedream dashboard
-2. Select **New workspace**
-3. You'll be prompted to name the workspace (you can [change the name later](/workspaces/#renaming-a-workspace))
-
-## Workspace settings
-
-Find your current [workspace settings](https://pipedream.com/settings/account) like current members, under the **Settings** navigation menu item on the left hand side. This is where you can manage your workspace settings, including the workspace name, members, and member permissions.
-
-### Inviting others to a join a workspace
-
-After opening your workspace settings, open the [Membership](https://pipedream.com/settings/users) tab.
-
-- Invite people to your workspace by entering their email address and then clicking **Send**
-- Or create an invite link to more easily share with a larger group (you can limit access to only specific email domains)
-
-
-
-### Managing member permissions
-
-By default, new workspace members are assigned the **Member** level permission.
-
-**Members** will be able to perform general tasks like viewing, developing, and deploying workflows.
-
-However, only **Admins** will be able to manage workspace level settings, like changing member roles, renaming workspaces, and modifying Slack error notifications.
-
-#### Promoting a member to admin
-
-To promote a member to an admin level account in your workspace, click the 3 dots to the right of their email and select "Make Admin".
-
-
-
-#### Demoting an admin to a member
-
-To demote an admin back to a member, click the 3 dots to the right of their email address and select "Remove Admin".
-
-
-
-### Finding your workspace's ID
-
-Visit your [workspace settings](https://pipedream.com/settings/account) and scroll down to the **API** section. You'll see your workspace ID here.
-
-### Requiring Two-Factor Authentication
-As a workspace admin or owner on the [Business plan](https://pipedream.com/pricing), you're able to **require** that all members in your workspace must enable 2FA on their account.
-
-1. Open the Authentication tab in your [workspace settings](https://pipedream.com/settings/authentication) (you must be an admin or owner to make changes here)
-2. Make sure you're in the [correct workspace](/workspaces/#switching-between-workspaces)
-3. Click the toggle under **Require 2FA** — this will open a confirmation modal with some additional information
-4. Once you enable the change in the modal, **all workspace members (including admins and owners) will immediately be required to configure 2FA on their account**. All new and existing workspace members will be required to set up 2FA the next time they sign in.
-
-
-
-
-Anyone who is currently logged in to Pipedream will be temporarily signed out until they set up 2FA
-
-If anyone is actively making changes to a workflow, their session may be interrupted. We recommend enabling the 2FA requirement in off hours.
-
-
-
-### Configuring Single Sign-On (SSO)
-
-Workspaces on the Business plan can configure Single Sign-On, so your users can login to Pipedream using your identity provider.
-
-Pipedream supports SSO with Google, Okta, and any provider that supports the SAML protocol. See the guides below to configure SSO for your identity provider:
-
-- [Okta](./sso/okta)
-- [Google](./sso/google/)
-- [Other SAML provider](./sso/saml/)
-
-### SCIM
-
-Pipedream supports provisioning user accounts from your IdP via SCIM. Any workspace on the Business plan can configure Single Sign-On with SCIM.
-
-### Renaming a workspace
-
-To rename a workspace, open your [workspace settings](https://pipedream.com/settings/account) and navigate to the **General** tab.
-
-Click the save button to save the changes.
-
-
-This action is only available to workspace **admins**.
-
-
-### Deleting a workspace
-
-To delete a workspace, open your workspace settings and navigate to the **Danger Zone**.
-
-Click the **Delete workspace** button and confirm the action by entering in your workspace name and `delete my workspace` into the text prompt.
-
-
-Deleting a workspace will delete all **sources**, **workflows**, and other resources in your workspace.
-
-Deleting a workspace is **irreversible** and permanent.
-
-
-## Switching between workspaces
-
-To switch between workspaces, open the dropdown menu in the top left of the Pipedream dashboard.
-
-Select which workspace you'd like to start working within, and your Pipedream dashboard context will change to that workspace.
diff --git a/docs-v2/pages/workspaces/sso/_meta.tsx b/docs-v2/pages/workspaces/sso/_meta.tsx
deleted file mode 100644
index c7401c2cb175d..0000000000000
--- a/docs-v2/pages/workspaces/sso/_meta.tsx
+++ /dev/null
@@ -1,6 +0,0 @@
-export default {
- "index": "Overview",
- "google": "Google Workspace",
- "okta": "Okta",
- "saml": "SAML",
-} as const
diff --git a/docs-v2/pages/workspaces/sso/google.mdx b/docs-v2/pages/workspaces/sso/google.mdx
deleted file mode 100644
index 5d98d62191865..0000000000000
--- a/docs-v2/pages/workspaces/sso/google.mdx
+++ /dev/null
@@ -1,134 +0,0 @@
-import { Steps } from "nextra/components";
-
-# Configure SSO with Google Workspace
-
-Pipedream supports Single Sign-On (SSO) with Google Workspace. This guide shows you how to configure SSO in Pipedream to authenticate with your Google org.
-
-## Requirements
-
-- SSO is only supported for [workspaces](/workspaces/) on the Business plan. Visit the [Pipedream pricing page](https://pipedream.com/pricing) to upgrade.
-- You need an administrator of your Pipedream workspace and someone who can [create SAML apps in Google Workspace](https://apps.google.com/supportwidget/articlehome?hl=en&article_url=https%3A%2F%2Fsupport.google.com%2Fa%2Fanswer%2F6087519%3Fhl%3Den&assistant_id=generic-unu&product_context=6087519&product_name=UnuFlow&trigger_context=a) to configure SSO.
-
-## Configuration
-
-To configure SSO in Pipedream, you need to set up a [SAML application](https://apps.google.com/supportwidget/articlehome?hl=en&article_url=https%3A%2F%2Fsupport.google.com%2Fa%2Fanswer%2F6087519%3Fhl%3Den&assistant_id=generic-unu&product_context=6087519&product_name=UnuFlow&trigger_context=a) in Google Workspace. If you're a Google Workspace admin, you're all set. Otherwise, coordinate with a Google Workspace admin before you continue.
-
-
-
-### Find Web and Mobile apps in Google Workspace
-
-In your **Google Workspace** admin console, select **Apps** > **Web and Mobile apps**
-
-
-
-
-
-### Add a custom SAML app
-
-In the **Add app** menu, select the option to **Add custom SAML app**:
-
-
-
-
-
-### Configure the app
-
-First, add **Pipedream** as the app name, and an app description that makes sense for your organization:
-
-
-
-
-
-### Continue past the configuration step
-
-
-
-
-
-### Configure the Service provider details
-
-In the **Service provider details**, provide the following values:
-
-- **ACS URL** — `https://api.pipedream.com/auth/saml/consume`
-- **Entity ID** — Pipedream
-- **Start URL** — `https://api.pipedream.com/auth/saml/`
-
-replacing `` with the workspace name at [https://pipedream.com/settings/account](https://pipedream.com/settings/account). For example, if your workspace name is `example-workspace`, your start URL will be `https://api.pipedream.com/auth/saml/example-workspace`.
-
-
-
-
-
-In the **Name ID** section, provide these values:
-
-- **Name ID format** — `EMAIL`
-- **Name ID** — Basic Information > Primary email
-
-then press **Continue**.
-
-
-
-
-
-### Configure the Attribute mapping
-
-Once the app is configured, visit the **User access** section to add Google Workspace users to your Pipedream SAML app. See [step 14 of the Google Workspace SAML docs](https://apps.google.com/supportwidget/articlehome?hl=en&article_url=https%3A%2F%2Fsupport.google.com%2Fa%2Fanswer%2F6087519%3Fhl%3Den&assistant_id=generic-unu&product_context=6087519&product_name=UnuFlow&trigger_context=a) for more detail.
-
-### Download and host the SAML metadata
-
-Pipedream requires access to SAML metadata at a publicly-accessible URL. This communicates public metadata about the identity provider (Google Workspace) that Pipedream can use to configure the SAML setup in Pipedream.
-
-First, click the **Download Metadata** button on the left of the app configuration page:
-
-
-
-
-
-**Host this file on a public web server where Pipedream can access it via URL**, for example: `https://example.com/metadata.xml`. You'll use that URL in the next step.
-
-### Visit your workspace's authentication settings
-
-In Pipedream, visit your workspace's [authentication settings](https://pipedream.com/settings/authentication).
-
-### Add the SAML metadata URL
-
-In the **Single Sign-On** section, select **SAML**, and add the URL from step 7 above in the **Metadata URL** field, then click Save.
-
-
-
-
-
-
-Any user in your workspace can now log into Pipedream at [https://pipedream.com/auth/sso](https://pipedream.com/auth/sso) by entering your workspaces's name (found in your [Settings](https://pipedream.com/settings/account)). You can also access your SSO sign in URL directly by visiting [https://pipedream.com/auth/org/your-workspace-name](https://pipedream.com/auth/org), where `your-workspace-name` is the name of your workspace.
-
-## Important details
-
-Before you configure the application in Google, make sure all your users have matching email addresses for their Pipedream user profile and their Google Workspace profile. Once SSO is enabled, they will not be able to change their Pipedream email address.
-
-If a user's Pipedream email does not match the email in their Google profile, they will not be able to log in.
-
-If existing users signed up for Pipedream using an email and password, they will no longer be able to do so. They will only be able to sign in using SSO.
diff --git a/docs-v2/pages/workspaces/sso/index.mdx b/docs-v2/pages/workspaces/sso/index.mdx
deleted file mode 100644
index 5591d2dd7d73a..0000000000000
--- a/docs-v2/pages/workspaces/sso/index.mdx
+++ /dev/null
@@ -1,62 +0,0 @@
-import Callout from '@/components/Callout'
-
-# Single Sign-On Overview
-
-Pipedream supports Single Sign-On (SSO) with [Okta](./sso/okta/), [Google](./sso/google/), or [any provider](./sso/saml/) that supports SAML or Google OAuth, which allows IT and workspace administrators easier controls to manage access and security.
-
-Using SSO with your Identity Provider (IdP) centralizes user login management and provides a single point of control for IT teams and employees.
-
-## Requirements for SSO
-
-- Your workspace must be on a [Business plan](https://pipedream.com/pricing)
-- If using SAML, your Identity Provider must support SAML 2.0
-- Only workspace admins and owners can configure SSO
-- Your workspace admin or owner must [verify ownership](#verifying-your-email-domain) of the SSO email domain
-
-
-The below content is for workspace admins and owners. Only workspace admins and owners have access to add verified domains, set up SSO, and configure workspace login methods.
-
-
-## Verifying your Email Domain
-
-In order to configure SAML SSO for your workspace, you first need to verify ownership of the email domain. If configuring Google OAuth (not SAML), you can skip this section.
-
-[Refer to the guide here](/workspaces/domain-verification/) to verify your email domain.
-
-## Setting up SSO
-
-Navigate to the [Authentication section](https://pipedream.com/settings/domains) in your workspace settings to get started.
-
-### SAML SSO
-
-1. First, make sure you've verified the domain(s) you intend to use for SSO ([see above](#verifying-your-email-domain))
-2. Click the **Enable SSO** toggle and select **SAML**
-3. If setting up SAML SSO, you'll need to enter a metadata URL, which contains all the necessary configuration for Pipedream. Refer to the provider-specific docs for the detailed walk-through ([Okta](./sso/okta/), [Google Workspace](./sso/google/), [any other SAML provider](./sso/saml/)).
-4. Click **Save**
-
-### Google OAuth
-
-1. Click the **Enable SSO** toggle and select **Google**
-2. Enter the domain that you use with Google OAuth. For example, `vandalayindustries.com`
-3. Click **Save**
-
-## Restricting Login Methods
-
-Once you've configured SSO for your workspace, you can restrict the allowed login methods for [non-workspace owners](#workspace-owners-can-always-sign-in-using-any-login-method).
-
-
-
-
-| Login Method | Description |
-| -- | -- |
-| **Any login method** | Everyone in the workspace can sign in either using SSO or via the login method they used to create their account (email and password, Google OAuth, GitHub) |
-| **SSO only** | Workspace members and admins must [sign in using SSO](https://pipedream.com/auth/sso) |
-| **SSO with guests** | When siging in using a verified email domain, members and admins must [sign in using SSO](https://pipedream.com/auth/sso). If signing in with a different domain (`gmail.com` for example), members (guests) can sign in using any login method. |
-
-### Workspace owners can always sign in using any login method
-
-In order to ensure you don't get locked out of your Pipedream workspace in the event of an outage with your identity provider, workspace owners can always sign in via the login method they used to create the account (email and password, Google, or GitHub).
-
-### Login methods are enforced when signing in to pipedream.com
-
-This means if you are a member of 2 workspaces and one of them allows **any login method** but the other **requires SSO**, you will be required to sign in to Pipedream using SSO every time, independent of the workspace you are trying to access.
diff --git a/docs-v2/pages/workspaces/sso/okta.mdx b/docs-v2/pages/workspaces/sso/okta.mdx
deleted file mode 100644
index 4aeb4a949edbe..0000000000000
--- a/docs-v2/pages/workspaces/sso/okta.mdx
+++ /dev/null
@@ -1,95 +0,0 @@
-import PipedreamImg from '@/components/PipedreamImg'
-import { Steps } from 'nextra/components'
-
-# Configure SSO with Okta
-
-Pipedream supports Single Sign-On (SSO) with Okta. This guide shows you how to configure SSO in Pipedream to authenticate with your Okta org.
-
-## Requirements
-
-- SSO is only supported for [workspaces](/workspaces/) on the Business plan. Visit the [Pipedream pricing page](https://pipedream.com/pricing) to upgrade.
-- You must be an administrator of your Pipedream workspace
-- You must have an Okta account
-
-## Configuration
-
-
-
-### Visit your Okta dashboard
-
-In your Okta **Admin** dashboard, select the **Applications** section and click **Applications** below that:
-
-
-
-### Browse App Catalog
-
-Click **Browse App Catalog**:
-
-
-
-### Search for Pipedream
-
-Search for "Pipedream" and select the Pipedream app:
-
-
-
-### Click Add
-
-
-
-### Configure General Settings
-
-Fill out the **General Settings** that Okta presents, and click **Done**:
-
-
-
-### Edit Sign On
-
-Select the **Sign On** tab, and click **Edit** at the top right:
-
-
-
-### Configure Default Relay State
-
-Scroll down to the **SAML 2.0** settings. In the **Default Relay State** section, enter `organization_username`:
-
-
-
-### Save your configuration
-
-Set any other configuration options you need in that section or in the **Credentials Details** section, and click **Save**.
-
-### Copy the Identity Provider metadata URL
-
-In the **Sign On** section, you'll see a section that includes the setup instructions for SAML:
-
-
-
-Click the **Identity Provider metadata** link and copy the URL from your browser's address bar:
-
-
-
-### Enable SSO in Pipedream
-
-Visit your [Pipedream workspace authentication settings](https://pipedream.com/settings/authentication). Click the toggle to **Enable SSO**, then click **Edit SSO Configuration**, and add the metadata URL in the **SAML** section and click **Save**:
-
-
-
-### Assign the application to users
-
-Back in Okta, click on the **Assignments** tab of the Pipedream application. Click on the **Assign** dropdown and select **Assign to People**:
-
-
-
-Assign the application to the relevant users in Okta, and Pipedream will configure the associated accounts on our end.
-
-
-Users configured in your Okta app can log into Pipedream at [https://pipedream.com/auth/sso](https://pipedream.com/auth/sso) by entering your workspaces's name (found in your [Settings](https://pipedream.com/settings/account)). You can also access your SSO sign in URL directly by visiting [https://pipedream.com/auth/org/your-workspace-name](https://pipedream.com/auth/org), where `your-workspace-name` is the name of your workspace.
-
-## Important details
-
-Before you configure the application in Okta, make sure all your users have matching email addresses for their Pipedream user profile and their Okta profile. Once SSO is enabled, they will not be able to change their Pipedream email address.
-
-If a user's Pipedream email does not match the email in their IDP profile, they will not be able to log in.
-
-If existing users signed up for Pipedream using an email and password, they will no longer be able to do so. They will only be able to sign in using SSO.
diff --git a/docs-v2/pages/workspaces/sso/saml.mdx b/docs-v2/pages/workspaces/sso/saml.mdx
deleted file mode 100644
index e17162d39de21..0000000000000
--- a/docs-v2/pages/workspaces/sso/saml.mdx
+++ /dev/null
@@ -1,48 +0,0 @@
-# Configure SSO with another SAML provider
-
-Pipedream supports Single Sign-On (SSO) with any identity provider that supports SAML 2.0. This guide shows you how to configure SSO in Pipedream to authenticate with your SAML provider.
-
-If you use [Okta](./okta/) or [Google Workspace](./google/), please review the guides for those apps.
-
-## Requirements
-
-- SSO is only supported for [workspaces](/workspaces/) on the Business plan. Visit the [Pipedream pricing page](https://pipedream.com/pricing) to upgrade.
-- You need an administrator of your Pipedream workspace and someone who can create SAML apps in your identity provider to configure SSO.
-
-## SAML metadata
-
-| Name | Other names | Value |
-| --------------------------------------- | -------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
-| SP Entity ID | Audience, Audience Restriction, SP URL | `Pipedream` |
-| SP Assertion Consumer Service (ACS) URL | Reply or destination URL | `https://api.pipedream.com/auth/saml/consume` |
-| SP Single Sign-on URL | Start URL | `https://api.pipedream.com/auth/saml/` replacing `` with the workspace name at [https://pipedream.com/settings/account](https://pipedream.com/settings/account). For example, if your workspace name is `example-workspace`, your start URL will be `https://api.pipedream.com/auth/saml/example-workspace`. |
-
-## SAML attributes
-
-- `NameID` — email
-
-## Providing SAML metadata to Pipedream
-
-Pipedream requires access to SAML metadata at a publicly-accessible URL. This communicates public metadata about the identity provider (your SSO provider) that Pipedream can use to configure the SAML setup in Pipedream.
-
-Most SSO providers will provide a publicly-accessible metadata URL. If not, they should provide a mechanism to download the SAML metadata XML file. **Once you've configured your SAML app using the settings above, host this file on a public web server where Pipedream can access it via URL**, for example: `https://example.com/metadata.xml`.
-
-Once you have a publicly-accessible URL that hosts your SAML metadata, visit your workspace's [authentication settings](https://pipedream.com/settings/authentication) in Pipedream. In the **Single Sign-On** section, select **SAML**, and add your metadata URL to the **Metadata URL** field, then click **Save**.
-
-
-
-
-
-Any user in your workspace can now log into Pipedream at [https://pipedream.com/auth/sso](https://pipedream.com/auth/sso) by entering your workspaces's name (found in your [Settings](https://pipedream.com/settings/account)). You can also access your SSO sign in URL directly by visiting [https://pipedream.com/auth/org/your-workspace-name](https://pipedream.com/auth/org), where `your-workspace-name` is the name of your workspace.
-
-## Important details
-
-Before you configure the application in your IdP, make sure all your users have matching email addresses for their Pipedream user profile and their IdP profile. Once SSO is enabled, they will not be able to change their Pipedream email address.
-
-If a user's Pipedream email does not match the email in their IdP profile, they will not be able to log in.
-
-If existing users signed up for Pipedream using an email and password, they will no longer be able to do so. They will only be able to sign in using SSO.
diff --git a/docs-v2/postcss.config.js b/docs-v2/postcss.config.js
deleted file mode 100644
index 12a703d900da8..0000000000000
--- a/docs-v2/postcss.config.js
+++ /dev/null
@@ -1,6 +0,0 @@
-module.exports = {
- plugins: {
- tailwindcss: {},
- autoprefixer: {},
- },
-};
diff --git a/docs-v2/public/favicon.ico b/docs-v2/public/favicon.ico
deleted file mode 100644
index b854b21bb03af..0000000000000
Binary files a/docs-v2/public/favicon.ico and /dev/null differ
diff --git a/docs-v2/public/images/account/daily-invocations-tooltip.png b/docs-v2/public/images/account/daily-invocations-tooltip.png
deleted file mode 100644
index c2fa604878c23..0000000000000
Binary files a/docs-v2/public/images/account/daily-invocations-tooltip.png and /dev/null differ
diff --git a/docs-v2/public/images/account/usage-by-resource.png b/docs-v2/public/images/account/usage-by-resource.png
deleted file mode 100644
index 66a0941abd0d0..0000000000000
Binary files a/docs-v2/public/images/account/usage-by-resource.png and /dev/null differ
diff --git a/docs-v2/public/images/actions/update-action-button.png b/docs-v2/public/images/actions/update-action-button.png
deleted file mode 100644
index 5b242f04efd5b..0000000000000
Binary files a/docs-v2/public/images/actions/update-action-button.png and /dev/null differ
diff --git a/docs-v2/public/images/active.png b/docs-v2/public/images/active.png
deleted file mode 100644
index 9e65253ebf0d0..0000000000000
Binary files a/docs-v2/public/images/active.png and /dev/null differ
diff --git a/docs-v2/public/images/apps/select-external-auth.png b/docs-v2/public/images/apps/select-external-auth.png
deleted file mode 100644
index e38d00d59c1c5..0000000000000
Binary files a/docs-v2/public/images/apps/select-external-auth.png and /dev/null differ
diff --git a/docs-v2/public/images/archive-workflow.png b/docs-v2/public/images/archive-workflow.png
deleted file mode 100644
index b07ecbb2e9b90..0000000000000
Binary files a/docs-v2/public/images/archive-workflow.png and /dev/null differ
diff --git a/docs-v2/public/images/auth/refresh-fields-after-connecting-slack.png b/docs-v2/public/images/auth/refresh-fields-after-connecting-slack.png
deleted file mode 100644
index e5f0eb5dd70b8..0000000000000
Binary files a/docs-v2/public/images/auth/refresh-fields-after-connecting-slack.png and /dev/null differ
diff --git a/docs-v2/public/images/auth/slack-field-rendered.png b/docs-v2/public/images/auth/slack-field-rendered.png
deleted file mode 100644
index 7fc8b1e784583..0000000000000
Binary files a/docs-v2/public/images/auth/slack-field-rendered.png and /dev/null differ
diff --git a/docs-v2/public/images/code/nodejs/auth/auths-property.png b/docs-v2/public/images/code/nodejs/auth/auths-property.png
deleted file mode 100644
index 57ccd53ea8bdb..0000000000000
Binary files a/docs-v2/public/images/code/nodejs/auth/auths-property.png and /dev/null differ
diff --git a/docs-v2/public/images/code/nodejs/auth/run-node-js-code-with-slack.png b/docs-v2/public/images/code/nodejs/auth/run-node-js-code-with-slack.png
deleted file mode 100644
index c4a13c2a4de71..0000000000000
Binary files a/docs-v2/public/images/code/nodejs/auth/run-node-js-code-with-slack.png and /dev/null differ
diff --git a/docs-v2/public/images/code/nodejs/auth/run-node-with-slack.png b/docs-v2/public/images/code/nodejs/auth/run-node-with-slack.png
deleted file mode 100644
index 4abddab741b56..0000000000000
Binary files a/docs-v2/public/images/code/nodejs/auth/run-node-with-slack.png and /dev/null differ
diff --git a/docs-v2/public/images/code/nodejs/auth/search-for-slack.png b/docs-v2/public/images/code/nodejs/auth/search-for-slack.png
deleted file mode 100644
index fff6e360a54ae..0000000000000
Binary files a/docs-v2/public/images/code/nodejs/auth/search-for-slack.png and /dev/null differ
diff --git a/docs-v2/public/images/code/nodejs/auth/slack-auth-prop-example.png b/docs-v2/public/images/code/nodejs/auth/slack-auth-prop-example.png
deleted file mode 100644
index 640d36ba5f5c2..0000000000000
Binary files a/docs-v2/public/images/code/nodejs/auth/slack-auth-prop-example.png and /dev/null differ
diff --git a/docs-v2/public/images/code/nodejs/auth/slack-test-request.png b/docs-v2/public/images/code/nodejs/auth/slack-test-request.png
deleted file mode 100644
index 80a71b9be04cd..0000000000000
Binary files a/docs-v2/public/images/code/nodejs/auth/slack-test-request.png and /dev/null differ
diff --git a/docs-v2/public/images/code/nodejs/auth/slack-token.png b/docs-v2/public/images/code/nodejs/auth/slack-token.png
deleted file mode 100644
index 3da976a2eea78..0000000000000
Binary files a/docs-v2/public/images/code/nodejs/auth/slack-token.png and /dev/null differ
diff --git a/docs-v2/public/images/code/nodejs/user-input-props-example.png b/docs-v2/public/images/code/nodejs/user-input-props-example.png
deleted file mode 100644
index ef987b0cc1afb..0000000000000
Binary files a/docs-v2/public/images/code/nodejs/user-input-props-example.png and /dev/null differ
diff --git a/docs-v2/public/images/components/image-20200819210516311.png b/docs-v2/public/images/components/image-20200819210516311.png
deleted file mode 100644
index a7229260e7592..0000000000000
Binary files a/docs-v2/public/images/components/image-20200819210516311.png and /dev/null differ
diff --git a/docs-v2/public/images/components/image-20210326151557417.png b/docs-v2/public/images/components/image-20210326151557417.png
deleted file mode 100644
index ec68e3ba88741..0000000000000
Binary files a/docs-v2/public/images/components/image-20210326151557417.png and /dev/null differ
diff --git a/docs-v2/public/images/components/image-20210326151706682.png b/docs-v2/public/images/components/image-20210326151706682.png
deleted file mode 100644
index 8a9401a798e76..0000000000000
Binary files a/docs-v2/public/images/components/image-20210326151706682.png and /dev/null differ
diff --git a/docs-v2/public/images/components/image-20210326151930885.png b/docs-v2/public/images/components/image-20210326151930885.png
deleted file mode 100644
index 0cc8c4fbd5698..0000000000000
Binary files a/docs-v2/public/images/components/image-20210326151930885.png and /dev/null differ
diff --git a/docs-v2/public/images/components/info-alert-prop-github.png b/docs-v2/public/images/components/info-alert-prop-github.png
deleted file mode 100644
index f4e4b22be0406..0000000000000
Binary files a/docs-v2/public/images/components/info-alert-prop-github.png and /dev/null differ
diff --git a/docs-v2/public/images/components/quickstart/hello-world-1.gif b/docs-v2/public/images/components/quickstart/hello-world-1.gif
deleted file mode 100644
index c9b20fbaf2d2b..0000000000000
Binary files a/docs-v2/public/images/components/quickstart/hello-world-1.gif and /dev/null differ
diff --git a/docs-v2/public/images/components/quickstart/hello-world-2.gif b/docs-v2/public/images/components/quickstart/hello-world-2.gif
deleted file mode 100644
index 1c2414c752f4c..0000000000000
Binary files a/docs-v2/public/images/components/quickstart/hello-world-2.gif and /dev/null differ
diff --git a/docs-v2/public/images/components/quickstart/hello-world-3.gif b/docs-v2/public/images/components/quickstart/hello-world-3.gif
deleted file mode 100644
index a973464bebb01..0000000000000
Binary files a/docs-v2/public/images/components/quickstart/hello-world-3.gif and /dev/null differ
diff --git a/docs-v2/public/images/components/quickstart/hello-world-4.gif b/docs-v2/public/images/components/quickstart/hello-world-4.gif
deleted file mode 100644
index 39573cd0620bb..0000000000000
Binary files a/docs-v2/public/images/components/quickstart/hello-world-4.gif and /dev/null differ
diff --git a/docs-v2/public/images/components/quickstart/uncompressed/hello-world-1.gif b/docs-v2/public/images/components/quickstart/uncompressed/hello-world-1.gif
deleted file mode 100644
index b2f8053e836a8..0000000000000
Binary files a/docs-v2/public/images/components/quickstart/uncompressed/hello-world-1.gif and /dev/null differ
diff --git a/docs-v2/public/images/components/quickstart/uncompressed/hello-world-2.gif b/docs-v2/public/images/components/quickstart/uncompressed/hello-world-2.gif
deleted file mode 100644
index 88d323a92bb3f..0000000000000
Binary files a/docs-v2/public/images/components/quickstart/uncompressed/hello-world-2.gif and /dev/null differ
diff --git a/docs-v2/public/images/components/quickstart/uncompressed/hello-world-3.gif b/docs-v2/public/images/components/quickstart/uncompressed/hello-world-3.gif
deleted file mode 100644
index 5f56de5ce981b..0000000000000
Binary files a/docs-v2/public/images/components/quickstart/uncompressed/hello-world-3.gif and /dev/null differ
diff --git a/docs-v2/public/images/components/quickstart/uncompressed/hello-world-4.gif b/docs-v2/public/images/components/quickstart/uncompressed/hello-world-4.gif
deleted file mode 100644
index 29308afd64e87..0000000000000
Binary files a/docs-v2/public/images/components/quickstart/uncompressed/hello-world-4.gif and /dev/null differ
diff --git a/docs-v2/public/images/components/spotify-$summary-example.png b/docs-v2/public/images/components/spotify-$summary-example.png
deleted file mode 100644
index 88fde970576f4..0000000000000
Binary files a/docs-v2/public/images/components/spotify-$summary-example.png and /dev/null differ
diff --git a/docs-v2/public/images/components/trello-board-example.png b/docs-v2/public/images/components/trello-board-example.png
deleted file mode 100644
index 7dfbdf5e33d33..0000000000000
Binary files a/docs-v2/public/images/components/trello-board-example.png and /dev/null differ
diff --git a/docs-v2/public/images/components/trello-props.png b/docs-v2/public/images/components/trello-props.png
deleted file mode 100644
index f9e1dffcf6c70..0000000000000
Binary files a/docs-v2/public/images/components/trello-props.png and /dev/null differ
diff --git a/docs-v2/public/images/components/v3/using-private-actions.png b/docs-v2/public/images/components/v3/using-private-actions.png
deleted file mode 100644
index 4b4eea652cdf2..0000000000000
Binary files a/docs-v2/public/images/components/v3/using-private-actions.png and /dev/null differ
diff --git a/docs-v2/public/images/components/v3/using-private-sources.png b/docs-v2/public/images/components/v3/using-private-sources.png
deleted file mode 100644
index 02c0fc4993514..0000000000000
Binary files a/docs-v2/public/images/components/v3/using-private-sources.png and /dev/null differ
diff --git a/docs-v2/public/images/concurrency-and-throttling/amazon-v-google-sheets.png b/docs-v2/public/images/concurrency-and-throttling/amazon-v-google-sheets.png
deleted file mode 100644
index 65481bca7d5c0..0000000000000
Binary files a/docs-v2/public/images/concurrency-and-throttling/amazon-v-google-sheets.png and /dev/null differ
diff --git a/docs-v2/public/images/concurrency-and-throttling/gsheets-1.png b/docs-v2/public/images/concurrency-and-throttling/gsheets-1.png
deleted file mode 100644
index dc61835c76c67..0000000000000
Binary files a/docs-v2/public/images/concurrency-and-throttling/gsheets-1.png and /dev/null differ
diff --git a/docs-v2/public/images/concurrency-and-throttling/gsheets-2.png b/docs-v2/public/images/concurrency-and-throttling/gsheets-2.png
deleted file mode 100644
index 9dbcfa25118ed..0000000000000
Binary files a/docs-v2/public/images/concurrency-and-throttling/gsheets-2.png and /dev/null differ
diff --git a/docs-v2/public/images/concurrency-and-throttling/image-20201007113139913.png b/docs-v2/public/images/concurrency-and-throttling/image-20201007113139913.png
deleted file mode 100644
index 829c043cca9a8..0000000000000
Binary files a/docs-v2/public/images/concurrency-and-throttling/image-20201007113139913.png and /dev/null differ
diff --git a/docs-v2/public/images/concurrency-and-throttling/image-20201027120141750.png b/docs-v2/public/images/concurrency-and-throttling/image-20201027120141750.png
deleted file mode 100644
index 1a10996a9a830..0000000000000
Binary files a/docs-v2/public/images/concurrency-and-throttling/image-20201027120141750.png and /dev/null differ
diff --git a/docs-v2/public/images/concurrency-and-throttling/image-20201027124356486.png b/docs-v2/public/images/concurrency-and-throttling/image-20201027124356486.png
deleted file mode 100644
index 82cbef45a7927..0000000000000
Binary files a/docs-v2/public/images/concurrency-and-throttling/image-20201027124356486.png and /dev/null differ
diff --git a/docs-v2/public/images/concurrency-and-throttling/image-20201027124419520.png b/docs-v2/public/images/concurrency-and-throttling/image-20201027124419520.png
deleted file mode 100644
index 51264dec7a0f9..0000000000000
Binary files a/docs-v2/public/images/concurrency-and-throttling/image-20201027124419520.png and /dev/null differ
diff --git a/docs-v2/public/images/concurrency-and-throttling/image-20201027124745363.png b/docs-v2/public/images/concurrency-and-throttling/image-20201027124745363.png
deleted file mode 100644
index 13b099dd33ed4..0000000000000
Binary files a/docs-v2/public/images/concurrency-and-throttling/image-20201027124745363.png and /dev/null differ
diff --git a/docs-v2/public/images/concurrency-and-throttling/image-20201027124755082.png b/docs-v2/public/images/concurrency-and-throttling/image-20201027124755082.png
deleted file mode 100644
index 413e41c399ede..0000000000000
Binary files a/docs-v2/public/images/concurrency-and-throttling/image-20201027124755082.png and /dev/null differ
diff --git a/docs-v2/public/images/concurrency-and-throttling/image-20201027124959905.png b/docs-v2/public/images/concurrency-and-throttling/image-20201027124959905.png
deleted file mode 100644
index 20ed048ae76f9..0000000000000
Binary files a/docs-v2/public/images/concurrency-and-throttling/image-20201027124959905.png and /dev/null differ
diff --git a/docs-v2/public/images/concurrency-and-throttling/image-20201027125010252.png b/docs-v2/public/images/concurrency-and-throttling/image-20201027125010252.png
deleted file mode 100644
index e2691af173c6a..0000000000000
Binary files a/docs-v2/public/images/concurrency-and-throttling/image-20201027125010252.png and /dev/null differ
diff --git a/docs-v2/public/images/concurrency-and-throttling/image-20201027132901691.png b/docs-v2/public/images/concurrency-and-throttling/image-20201027132901691.png
deleted file mode 100644
index 23cfb496a4175..0000000000000
Binary files a/docs-v2/public/images/concurrency-and-throttling/image-20201027132901691.png and /dev/null differ
diff --git a/docs-v2/public/images/concurrency-and-throttling/image-20201027133308888.png b/docs-v2/public/images/concurrency-and-throttling/image-20201027133308888.png
deleted file mode 100644
index 8c1bb138b512c..0000000000000
Binary files a/docs-v2/public/images/concurrency-and-throttling/image-20201027133308888.png and /dev/null differ
diff --git a/docs-v2/public/images/concurrency-and-throttling/image-20201027145818255.png b/docs-v2/public/images/concurrency-and-throttling/image-20201027145818255.png
deleted file mode 100644
index 3bd395cddd77f..0000000000000
Binary files a/docs-v2/public/images/concurrency-and-throttling/image-20201027145818255.png and /dev/null differ
diff --git a/docs-v2/public/images/concurrency-and-throttling/image-20201027145847752.png b/docs-v2/public/images/concurrency-and-throttling/image-20201027145847752.png
deleted file mode 100644
index 7a5e2be4373ff..0000000000000
Binary files a/docs-v2/public/images/concurrency-and-throttling/image-20201027145847752.png and /dev/null differ
diff --git a/docs-v2/public/images/concurrency-and-throttling/queue-size.png b/docs-v2/public/images/concurrency-and-throttling/queue-size.png
deleted file mode 100644
index 7e71b66184fc2..0000000000000
Binary files a/docs-v2/public/images/concurrency-and-throttling/queue-size.png and /dev/null differ
diff --git a/docs-v2/public/images/control-flow/2024-07-21_20.51.37.gif b/docs-v2/public/images/control-flow/2024-07-21_20.51.37.gif
deleted file mode 100644
index 49f5a9bc192d8..0000000000000
Binary files a/docs-v2/public/images/control-flow/2024-07-21_20.51.37.gif and /dev/null differ
diff --git a/docs-v2/public/images/control-flow/2024-07-21_20.55.09.gif b/docs-v2/public/images/control-flow/2024-07-21_20.55.09.gif
deleted file mode 100644
index 7e374f702cf22..0000000000000
Binary files a/docs-v2/public/images/control-flow/2024-07-21_20.55.09.gif and /dev/null differ
diff --git a/docs-v2/public/images/control-flow/Inspect.gif b/docs-v2/public/images/control-flow/Inspect.gif
deleted file mode 100644
index 4d6b5feacc936..0000000000000
Binary files a/docs-v2/public/images/control-flow/Inspect.gif and /dev/null differ
diff --git a/docs-v2/public/images/control-flow/add_if_else.gif b/docs-v2/public/images/control-flow/add_if_else.gif
deleted file mode 100644
index aa89413917bef..0000000000000
Binary files a/docs-v2/public/images/control-flow/add_if_else.gif and /dev/null differ
diff --git a/docs-v2/public/images/control-flow/add_step_to_branch.gif b/docs-v2/public/images/control-flow/add_step_to_branch.gif
deleted file mode 100644
index 4e78dc9100b90..0000000000000
Binary files a/docs-v2/public/images/control-flow/add_step_to_branch.gif and /dev/null differ
diff --git a/docs-v2/public/images/control-flow/billing_1credit_a.png b/docs-v2/public/images/control-flow/billing_1credit_a.png
deleted file mode 100644
index 433bb0177380e..0000000000000
Binary files a/docs-v2/public/images/control-flow/billing_1credit_a.png and /dev/null differ
diff --git a/docs-v2/public/images/control-flow/billing_1credit_b.png b/docs-v2/public/images/control-flow/billing_1credit_b.png
deleted file mode 100644
index 0e1493ac5dff7..0000000000000
Binary files a/docs-v2/public/images/control-flow/billing_1credit_b.png and /dev/null differ
diff --git a/docs-v2/public/images/control-flow/billing_3credits.png b/docs-v2/public/images/control-flow/billing_3credits.png
deleted file mode 100644
index 68495811d8fe3..0000000000000
Binary files a/docs-v2/public/images/control-flow/billing_3credits.png and /dev/null differ
diff --git a/docs-v2/public/images/control-flow/change_in_state.gif b/docs-v2/public/images/control-flow/change_in_state.gif
deleted file mode 100644
index 4f21337cab30b..0000000000000
Binary files a/docs-v2/public/images/control-flow/change_in_state.gif and /dev/null differ
diff --git a/docs-v2/public/images/control-flow/delay-step-props.png b/docs-v2/public/images/control-flow/delay-step-props.png
deleted file mode 100644
index 423f5bd031136..0000000000000
Binary files a/docs-v2/public/images/control-flow/delay-step-props.png and /dev/null differ
diff --git a/docs-v2/public/images/control-flow/end_workflow.png b/docs-v2/public/images/control-flow/end_workflow.png
deleted file mode 100644
index e9a94f10fd08c..0000000000000
Binary files a/docs-v2/public/images/control-flow/end_workflow.png and /dev/null differ
diff --git a/docs-v2/public/images/control-flow/executed_path.png b/docs-v2/public/images/control-flow/executed_path.png
deleted file mode 100644
index c60d7adf6b7c3..0000000000000
Binary files a/docs-v2/public/images/control-flow/executed_path.png and /dev/null differ
diff --git a/docs-v2/public/images/control-flow/execution_path_a_linear.png b/docs-v2/public/images/control-flow/execution_path_a_linear.png
deleted file mode 100644
index 880c653023e17..0000000000000
Binary files a/docs-v2/public/images/control-flow/execution_path_a_linear.png and /dev/null differ
diff --git a/docs-v2/public/images/control-flow/execution_path_b_nonlinear.png b/docs-v2/public/images/control-flow/execution_path_b_nonlinear.png
deleted file mode 100644
index 0bec6e8f91294..0000000000000
Binary files a/docs-v2/public/images/control-flow/execution_path_b_nonlinear.png and /dev/null differ
diff --git a/docs-v2/public/images/control-flow/ifelse-configuration.png b/docs-v2/public/images/control-flow/ifelse-configuration.png
deleted file mode 100644
index 58fed5d8e5ed2..0000000000000
Binary files a/docs-v2/public/images/control-flow/ifelse-configuration.png and /dev/null differ
diff --git a/docs-v2/public/images/control-flow/nesting.png b/docs-v2/public/images/control-flow/nesting.png
deleted file mode 100644
index 9fbab992cb07a..0000000000000
Binary files a/docs-v2/public/images/control-flow/nesting.png and /dev/null differ
diff --git a/docs-v2/public/images/control-flow/out_of_date.gif b/docs-v2/public/images/control-flow/out_of_date.gif
deleted file mode 100644
index 536d68d391025..0000000000000
Binary files a/docs-v2/public/images/control-flow/out_of_date.gif and /dev/null differ
diff --git a/docs-v2/public/images/control-flow/parallel/01_trigger.gif b/docs-v2/public/images/control-flow/parallel/01_trigger.gif
deleted file mode 100644
index fa5576ba52a19..0000000000000
Binary files a/docs-v2/public/images/control-flow/parallel/01_trigger.gif and /dev/null differ
diff --git a/docs-v2/public/images/control-flow/parallel/02_add_parallel.gif b/docs-v2/public/images/control-flow/parallel/02_add_parallel.gif
deleted file mode 100644
index b12abcb83398d..0000000000000
Binary files a/docs-v2/public/images/control-flow/parallel/02_add_parallel.gif and /dev/null differ
diff --git a/docs-v2/public/images/control-flow/parallel/03_configure_and_test.gif b/docs-v2/public/images/control-flow/parallel/03_configure_and_test.gif
deleted file mode 100644
index 001f944b1f0b7..0000000000000
Binary files a/docs-v2/public/images/control-flow/parallel/03_configure_and_test.gif and /dev/null differ
diff --git a/docs-v2/public/images/control-flow/parallel/04_add_steps.gif b/docs-v2/public/images/control-flow/parallel/04_add_steps.gif
deleted file mode 100644
index f48aa1a64f699..0000000000000
Binary files a/docs-v2/public/images/control-flow/parallel/04_add_steps.gif and /dev/null differ
diff --git a/docs-v2/public/images/control-flow/parallel/05_test_end_phase.gif b/docs-v2/public/images/control-flow/parallel/05_test_end_phase.gif
deleted file mode 100644
index 263f21125d519..0000000000000
Binary files a/docs-v2/public/images/control-flow/parallel/05_test_end_phase.gif and /dev/null differ
diff --git a/docs-v2/public/images/control-flow/parallel/06_use_exports_in_parent_flow.gif b/docs-v2/public/images/control-flow/parallel/06_use_exports_in_parent_flow.gif
deleted file mode 100644
index e472567b8fd1e..0000000000000
Binary files a/docs-v2/public/images/control-flow/parallel/06_use_exports_in_parent_flow.gif and /dev/null differ
diff --git a/docs-v2/public/images/control-flow/parallel/07_deploy_and_run.gif b/docs-v2/public/images/control-flow/parallel/07_deploy_and_run.gif
deleted file mode 100644
index b0adc1ccc36df..0000000000000
Binary files a/docs-v2/public/images/control-flow/parallel/07_deploy_and_run.gif and /dev/null differ
diff --git a/docs-v2/public/images/control-flow/parallel/add_branch.png b/docs-v2/public/images/control-flow/parallel/add_branch.png
deleted file mode 100644
index d1ddc48472e04..0000000000000
Binary files a/docs-v2/public/images/control-flow/parallel/add_branch.png and /dev/null differ
diff --git a/docs-v2/public/images/control-flow/parallel/add_parallel_block.png b/docs-v2/public/images/control-flow/parallel/add_parallel_block.png
deleted file mode 100644
index 0dbe975150717..0000000000000
Binary files a/docs-v2/public/images/control-flow/parallel/add_parallel_block.png and /dev/null differ
diff --git a/docs-v2/public/images/control-flow/parallel/parallel.png b/docs-v2/public/images/control-flow/parallel/parallel.png
deleted file mode 100644
index 46520fd497c26..0000000000000
Binary files a/docs-v2/public/images/control-flow/parallel/parallel.png and /dev/null differ
diff --git a/docs-v2/public/images/control-flow/parallel/rename_branch.png b/docs-v2/public/images/control-flow/parallel/rename_branch.png
deleted file mode 100644
index 3a9f1c43b718a..0000000000000
Binary files a/docs-v2/public/images/control-flow/parallel/rename_branch.png and /dev/null differ
diff --git a/docs-v2/public/images/control-flow/passing_data.png b/docs-v2/public/images/control-flow/passing_data.png
deleted file mode 100644
index d6485f5a96b35..0000000000000
Binary files a/docs-v2/public/images/control-flow/passing_data.png and /dev/null differ
diff --git a/docs-v2/public/images/control-flow/reason.png b/docs-v2/public/images/control-flow/reason.png
deleted file mode 100644
index 4b07352dd8405..0000000000000
Binary files a/docs-v2/public/images/control-flow/reason.png and /dev/null differ
diff --git a/docs-v2/public/images/control-flow/reference_end_exports.gif b/docs-v2/public/images/control-flow/reference_end_exports.gif
deleted file mode 100644
index fffa5dd2735ad..0000000000000
Binary files a/docs-v2/public/images/control-flow/reference_end_exports.gif and /dev/null differ
diff --git a/docs-v2/public/images/control-flow/referencing_data.png b/docs-v2/public/images/control-flow/referencing_data.png
deleted file mode 100644
index cd0ccf3be367f..0000000000000
Binary files a/docs-v2/public/images/control-flow/referencing_data.png and /dev/null differ
diff --git a/docs-v2/public/images/control-flow/return_response_after_block.png b/docs-v2/public/images/control-flow/return_response_after_block.png
deleted file mode 100644
index 371f3016e119e..0000000000000
Binary files a/docs-v2/public/images/control-flow/return_response_after_block.png and /dev/null differ
diff --git a/docs-v2/public/images/control-flow/return_response_conditional.png b/docs-v2/public/images/control-flow/return_response_conditional.png
deleted file mode 100644
index fd8dd5cca805e..0000000000000
Binary files a/docs-v2/public/images/control-flow/return_response_conditional.png and /dev/null differ
diff --git a/docs-v2/public/images/control-flow/return_response_in_block.png b/docs-v2/public/images/control-flow/return_response_in_block.png
deleted file mode 100644
index 9af13e1b46ab1..0000000000000
Binary files a/docs-v2/public/images/control-flow/return_response_in_block.png and /dev/null differ
diff --git a/docs-v2/public/images/control-flow/rule_builder_groups.png b/docs-v2/public/images/control-flow/rule_builder_groups.png
deleted file mode 100644
index 2401d206723dc..0000000000000
Binary files a/docs-v2/public/images/control-flow/rule_builder_groups.png and /dev/null differ
diff --git a/docs-v2/public/images/control-flow/rule_builder_multiple.png b/docs-v2/public/images/control-flow/rule_builder_multiple.png
deleted file mode 100644
index d09608642b8c2..0000000000000
Binary files a/docs-v2/public/images/control-flow/rule_builder_multiple.png and /dev/null differ
diff --git a/docs-v2/public/images/control-flow/rule_builder_overview.png b/docs-v2/public/images/control-flow/rule_builder_overview.png
deleted file mode 100644
index d804fa7028026..0000000000000
Binary files a/docs-v2/public/images/control-flow/rule_builder_overview.png and /dev/null differ
diff --git a/docs-v2/public/images/control-flow/rule_builder_simple.png b/docs-v2/public/images/control-flow/rule_builder_simple.png
deleted file mode 100644
index 84660e2a3108b..0000000000000
Binary files a/docs-v2/public/images/control-flow/rule_builder_simple.png and /dev/null differ
diff --git a/docs-v2/public/images/control-flow/segment_delay.png b/docs-v2/public/images/control-flow/segment_delay.png
deleted file mode 100644
index 81282a9b4157f..0000000000000
Binary files a/docs-v2/public/images/control-flow/segment_delay.png and /dev/null differ
diff --git a/docs-v2/public/images/control-flow/segment_linear.png b/docs-v2/public/images/control-flow/segment_linear.png
deleted file mode 100644
index 28ee860ecbbc1..0000000000000
Binary files a/docs-v2/public/images/control-flow/segment_linear.png and /dev/null differ
diff --git a/docs-v2/public/images/control-flow/segment_non_linear.png b/docs-v2/public/images/control-flow/segment_non_linear.png
deleted file mode 100644
index 68495811d8fe3..0000000000000
Binary files a/docs-v2/public/images/control-flow/segment_non_linear.png and /dev/null differ
diff --git a/docs-v2/public/images/control-flow/select_different_event.gif b/docs-v2/public/images/control-flow/select_different_event.gif
deleted file mode 100644
index 2e4ad762e82d7..0000000000000
Binary files a/docs-v2/public/images/control-flow/select_different_event.gif and /dev/null differ
diff --git a/docs-v2/public/images/control-flow/state_error.png b/docs-v2/public/images/control-flow/state_error.png
deleted file mode 100644
index 627cfbf320446..0000000000000
Binary files a/docs-v2/public/images/control-flow/state_error.png and /dev/null differ
diff --git a/docs-v2/public/images/control-flow/state_stale.png b/docs-v2/public/images/control-flow/state_stale.png
deleted file mode 100644
index 9b367406a032e..0000000000000
Binary files a/docs-v2/public/images/control-flow/state_stale.png and /dev/null differ
diff --git a/docs-v2/public/images/control-flow/state_success.png b/docs-v2/public/images/control-flow/state_success.png
deleted file mode 100644
index bbc1670123c8b..0000000000000
Binary files a/docs-v2/public/images/control-flow/state_success.png and /dev/null differ
diff --git a/docs-v2/public/images/control-flow/switch/add_another_case.gif b/docs-v2/public/images/control-flow/switch/add_another_case.gif
deleted file mode 100644
index 6f3ac9fd779eb..0000000000000
Binary files a/docs-v2/public/images/control-flow/switch/add_another_case.gif and /dev/null differ
diff --git a/docs-v2/public/images/control-flow/switch/add_switch.gif b/docs-v2/public/images/control-flow/switch/add_switch.gif
deleted file mode 100644
index 6f399864f6663..0000000000000
Binary files a/docs-v2/public/images/control-flow/switch/add_switch.gif and /dev/null differ
diff --git a/docs-v2/public/images/control-flow/switch/build_and_test_alternate_paths.gif b/docs-v2/public/images/control-flow/switch/build_and_test_alternate_paths.gif
deleted file mode 100644
index e988de80d5384..0000000000000
Binary files a/docs-v2/public/images/control-flow/switch/build_and_test_alternate_paths.gif and /dev/null differ
diff --git a/docs-v2/public/images/control-flow/switch/deploy_and_test.gif b/docs-v2/public/images/control-flow/switch/deploy_and_test.gif
deleted file mode 100644
index 39e8a42d2157b..0000000000000
Binary files a/docs-v2/public/images/control-flow/switch/deploy_and_test.gif and /dev/null differ
diff --git a/docs-v2/public/images/control-flow/switch/export_data_to_parent.gif b/docs-v2/public/images/control-flow/switch/export_data_to_parent.gif
deleted file mode 100644
index 82330fa2e667b..0000000000000
Binary files a/docs-v2/public/images/control-flow/switch/export_data_to_parent.gif and /dev/null differ
diff --git a/docs-v2/public/images/control-flow/switch/switch-configuration.png b/docs-v2/public/images/control-flow/switch/switch-configuration.png
deleted file mode 100644
index fd01a7f64ab67..0000000000000
Binary files a/docs-v2/public/images/control-flow/switch/switch-configuration.png and /dev/null differ
diff --git a/docs-v2/public/images/control-flow/switch/test_and_build_success_path.gif b/docs-v2/public/images/control-flow/switch/test_and_build_success_path.gif
deleted file mode 100644
index 6fe707ceb04b0..0000000000000
Binary files a/docs-v2/public/images/control-flow/switch/test_and_build_success_path.gif and /dev/null differ
diff --git a/docs-v2/public/images/control-flow/switch/test_different_trigger_events.gif b/docs-v2/public/images/control-flow/switch/test_different_trigger_events.gif
deleted file mode 100644
index d70c16d66ae65..0000000000000
Binary files a/docs-v2/public/images/control-flow/switch/test_different_trigger_events.gif and /dev/null differ
diff --git a/docs-v2/public/images/control-flow/switch/trigger.gif b/docs-v2/public/images/control-flow/switch/trigger.gif
deleted file mode 100644
index ddeff4a0f4f0e..0000000000000
Binary files a/docs-v2/public/images/control-flow/switch/trigger.gif and /dev/null differ
diff --git a/docs-v2/public/images/control-flow/test_and_deploy.gif b/docs-v2/public/images/control-flow/test_and_deploy.gif
deleted file mode 100644
index c96e2e8d84f84..0000000000000
Binary files a/docs-v2/public/images/control-flow/test_and_deploy.gif and /dev/null differ
diff --git a/docs-v2/public/images/control-flow/test_end_phase.gif b/docs-v2/public/images/control-flow/test_end_phase.gif
deleted file mode 100644
index 7a0f72878ffa2..0000000000000
Binary files a/docs-v2/public/images/control-flow/test_end_phase.gif and /dev/null differ
diff --git a/docs-v2/public/images/control-flow/trigger.gif b/docs-v2/public/images/control-flow/trigger.gif
deleted file mode 100644
index c3b74d5f03e54..0000000000000
Binary files a/docs-v2/public/images/control-flow/trigger.gif and /dev/null differ
diff --git a/docs-v2/public/images/control-flow/unknown_execution_path.png b/docs-v2/public/images/control-flow/unknown_execution_path.png
deleted file mode 100644
index 7e9cad0dc9976..0000000000000
Binary files a/docs-v2/public/images/control-flow/unknown_execution_path.png and /dev/null differ
diff --git a/docs-v2/public/images/data-stores/add-or-update-a-single-record.png b/docs-v2/public/images/data-stores/add-or-update-a-single-record.png
deleted file mode 100644
index ad4421357a9b1..0000000000000
Binary files a/docs-v2/public/images/data-stores/add-or-update-a-single-record.png and /dev/null differ
diff --git a/docs-v2/public/images/data-stores/configure-data-store-retrieve-record.png b/docs-v2/public/images/data-stores/configure-data-store-retrieve-record.png
deleted file mode 100644
index 19b4ea6e9dd23..0000000000000
Binary files a/docs-v2/public/images/data-stores/configure-data-store-retrieve-record.png and /dev/null differ
diff --git a/docs-v2/public/images/data-stores/configuring-data-store-update-action.png b/docs-v2/public/images/data-stores/configuring-data-store-update-action.png
deleted file mode 100644
index e79fb4136511a..0000000000000
Binary files a/docs-v2/public/images/data-stores/configuring-data-store-update-action.png and /dev/null differ
diff --git a/docs-v2/public/images/data-stores/delete-a-single-record.png b/docs-v2/public/images/data-stores/delete-a-single-record.png
deleted file mode 100644
index 77f30f364cfaf..0000000000000
Binary files a/docs-v2/public/images/data-stores/delete-a-single-record.png and /dev/null differ
diff --git a/docs-v2/public/images/data-stores/get-a-record-action-selection.png b/docs-v2/public/images/data-stores/get-a-record-action-selection.png
deleted file mode 100644
index b3d16f0a5ff5a..0000000000000
Binary files a/docs-v2/public/images/data-stores/get-a-record-action-selection.png and /dev/null differ
diff --git a/docs-v2/public/images/data-stores/nodejs-example.png b/docs-v2/public/images/data-stores/nodejs-example.png
deleted file mode 100644
index 60cff583ebb78..0000000000000
Binary files a/docs-v2/public/images/data-stores/nodejs-example.png and /dev/null differ
diff --git a/docs-v2/public/images/data-stores/select-delete-a-record.png b/docs-v2/public/images/data-stores/select-delete-a-record.png
deleted file mode 100644
index 423478b18e36e..0000000000000
Binary files a/docs-v2/public/images/data-stores/select-delete-a-record.png and /dev/null differ
diff --git a/docs-v2/public/images/data-stores/update-data-store-key-by-reference.png b/docs-v2/public/images/data-stores/update-data-store-key-by-reference.png
deleted file mode 100644
index 6f76189fb6178..0000000000000
Binary files a/docs-v2/public/images/data-stores/update-data-store-key-by-reference.png and /dev/null differ
diff --git a/docs-v2/public/images/destinations/conditional-payload-expression.png b/docs-v2/public/images/destinations/conditional-payload-expression.png
deleted file mode 100644
index 74d4fb6681122..0000000000000
Binary files a/docs-v2/public/images/destinations/conditional-payload-expression.png and /dev/null differ
diff --git a/docs-v2/public/images/destinations/dollar-event-body-payload.png b/docs-v2/public/images/destinations/dollar-event-body-payload.png
deleted file mode 100644
index e824299a67b24..0000000000000
Binary files a/docs-v2/public/images/destinations/dollar-event-body-payload.png and /dev/null differ
diff --git a/docs-v2/public/images/destinations/dollar-event-payload.png b/docs-v2/public/images/destinations/dollar-event-payload.png
deleted file mode 100644
index 27a6a21b74bfc..0000000000000
Binary files a/docs-v2/public/images/destinations/dollar-event-payload.png and /dev/null differ
diff --git a/docs-v2/public/images/destinations/email-payload.png b/docs-v2/public/images/destinations/email-payload.png
deleted file mode 100644
index c902179cb96f1..0000000000000
Binary files a/docs-v2/public/images/destinations/email-payload.png and /dev/null differ
diff --git a/docs-v2/public/images/destinations/new-code-step.png b/docs-v2/public/images/destinations/new-code-step.png
deleted file mode 100644
index 52d32efb8f0d5..0000000000000
Binary files a/docs-v2/public/images/destinations/new-code-step.png and /dev/null differ
diff --git a/docs-v2/public/images/destinations/new-code.png b/docs-v2/public/images/destinations/new-code.png
deleted file mode 100644
index 63f234e40ad2f..0000000000000
Binary files a/docs-v2/public/images/destinations/new-code.png and /dev/null differ
diff --git a/docs-v2/public/images/destinations/pipeline-id.png b/docs-v2/public/images/destinations/pipeline-id.png
deleted file mode 100644
index 950e7691e307d..0000000000000
Binary files a/docs-v2/public/images/destinations/pipeline-id.png and /dev/null differ
diff --git a/docs-v2/public/images/destinations/webhook-action-params.png b/docs-v2/public/images/destinations/webhook-action-params.png
deleted file mode 100644
index 0bc68405d6fa8..0000000000000
Binary files a/docs-v2/public/images/destinations/webhook-action-params.png and /dev/null differ
diff --git a/docs-v2/public/images/destinations/webhook-action.png b/docs-v2/public/images/destinations/webhook-action.png
deleted file mode 100644
index 8823b1c212d04..0000000000000
Binary files a/docs-v2/public/images/destinations/webhook-action.png and /dev/null differ
diff --git a/docs-v2/public/images/events/cmd-click-to-get-path.png b/docs-v2/public/images/events/cmd-click-to-get-path.png
deleted file mode 100644
index ee0d8e5a0e444..0000000000000
Binary files a/docs-v2/public/images/events/cmd-click-to-get-path.png and /dev/null differ
diff --git a/docs-v2/public/images/events/complex-dollar-event.png b/docs-v2/public/images/events/complex-dollar-event.png
deleted file mode 100644
index 9d2548d2a7c21..0000000000000
Binary files a/docs-v2/public/images/events/complex-dollar-event.png and /dev/null differ
diff --git a/docs-v2/public/images/events/copy-path.gif b/docs-v2/public/images/events/copy-path.gif
deleted file mode 100644
index e7d6140e861b5..0000000000000
Binary files a/docs-v2/public/images/events/copy-path.gif and /dev/null differ
diff --git a/docs-v2/public/images/events/copy-value.gif b/docs-v2/public/images/events/copy-value.gif
deleted file mode 100644
index 777fffd05d18e..0000000000000
Binary files a/docs-v2/public/images/events/copy-value.gif and /dev/null differ
diff --git a/docs-v2/public/images/events/diff.png b/docs-v2/public/images/events/diff.png
deleted file mode 100644
index 3712bd3cea5b2..0000000000000
Binary files a/docs-v2/public/images/events/diff.png and /dev/null differ
diff --git a/docs-v2/public/images/events/dollar-event.png b/docs-v2/public/images/events/dollar-event.png
deleted file mode 100644
index 86139f481c114..0000000000000
Binary files a/docs-v2/public/images/events/dollar-event.png and /dev/null differ
diff --git a/docs-v2/public/images/events/event-and-context.png b/docs-v2/public/images/events/event-and-context.png
deleted file mode 100644
index ab797ae9fa239..0000000000000
Binary files a/docs-v2/public/images/events/event-and-context.png and /dev/null differ
diff --git a/docs-v2/public/images/events/event-in-inspector.png b/docs-v2/public/images/events/event-in-inspector.png
deleted file mode 100644
index 731f64970e595..0000000000000
Binary files a/docs-v2/public/images/events/event-in-inspector.png and /dev/null differ
diff --git a/docs-v2/public/images/events/step-execution-data.png b/docs-v2/public/images/events/step-execution-data.png
deleted file mode 100644
index fc1b2e980ea26..0000000000000
Binary files a/docs-v2/public/images/events/step-execution-data.png and /dev/null differ
diff --git a/docs-v2/public/images/events/test-event.png b/docs-v2/public/images/events/test-event.png
deleted file mode 100644
index 1735ff90bfeaa..0000000000000
Binary files a/docs-v2/public/images/events/test-event.png and /dev/null differ
diff --git a/docs-v2/public/images/events/trigger-event-data.png b/docs-v2/public/images/events/trigger-event-data.png
deleted file mode 100644
index b172e30a49837..0000000000000
Binary files a/docs-v2/public/images/events/trigger-event-data.png and /dev/null differ
diff --git a/docs-v2/public/images/examples/configured-task-scheduler-step.png b/docs-v2/public/images/examples/configured-task-scheduler-step.png
deleted file mode 100644
index 1792db9744def..0000000000000
Binary files a/docs-v2/public/images/examples/configured-task-scheduler-step.png and /dev/null differ
diff --git a/docs-v2/public/images/examples/create-task-scheduler.gif b/docs-v2/public/images/examples/create-task-scheduler.gif
deleted file mode 100644
index 8b6db1d802aef..0000000000000
Binary files a/docs-v2/public/images/examples/create-task-scheduler.gif and /dev/null differ
diff --git a/docs-v2/public/images/examples/email-reference.png b/docs-v2/public/images/examples/email-reference.png
deleted file mode 100644
index 73a7295d95a1c..0000000000000
Binary files a/docs-v2/public/images/examples/email-reference.png and /dev/null differ
diff --git a/docs-v2/public/images/examples/endpoint.png b/docs-v2/public/images/examples/endpoint.png
deleted file mode 100644
index f4dff65760233..0000000000000
Binary files a/docs-v2/public/images/examples/endpoint.png and /dev/null differ
diff --git a/docs-v2/public/images/examples/find-task-scheduler-step.gif b/docs-v2/public/images/examples/find-task-scheduler-step.gif
deleted file mode 100644
index 3486138a94235..0000000000000
Binary files a/docs-v2/public/images/examples/find-task-scheduler-step.gif and /dev/null differ
diff --git a/docs-v2/public/images/examples/select-task-scheduler-as-trigger.gif b/docs-v2/public/images/examples/select-task-scheduler-as-trigger.gif
deleted file mode 100644
index e8167e6a89bf2..0000000000000
Binary files a/docs-v2/public/images/examples/select-task-scheduler-as-trigger.gif and /dev/null differ
diff --git a/docs-v2/public/images/examples/task-scheduler-event.png b/docs-v2/public/images/examples/task-scheduler-event.png
deleted file mode 100644
index ff5e63d774392..0000000000000
Binary files a/docs-v2/public/images/examples/task-scheduler-event.png and /dev/null differ
diff --git a/docs-v2/public/images/examples/toggle-trigger-step-on.gif b/docs-v2/public/images/examples/toggle-trigger-step-on.gif
deleted file mode 100644
index 08ef99af62384..0000000000000
Binary files a/docs-v2/public/images/examples/toggle-trigger-step-on.gif and /dev/null differ
diff --git a/docs-v2/public/images/http/configure-slack-pre-built-action-props.png b/docs-v2/public/images/http/configure-slack-pre-built-action-props.png
deleted file mode 100644
index e2a9d711a351e..0000000000000
Binary files a/docs-v2/public/images/http/configure-slack-pre-built-action-props.png and /dev/null differ
diff --git a/docs-v2/public/images/http/connect-slack-account-to-http-request-action.png b/docs-v2/public/images/http/connect-slack-account-to-http-request-action.png
deleted file mode 100644
index c43e4ed7f3e84..0000000000000
Binary files a/docs-v2/public/images/http/connect-slack-account-to-http-request-action.png and /dev/null differ
diff --git a/docs-v2/public/images/http/default-axios-stack.png b/docs-v2/public/images/http/default-axios-stack.png
deleted file mode 100644
index 88035fa157dd0..0000000000000
Binary files a/docs-v2/public/images/http/default-axios-stack.png and /dev/null differ
diff --git a/docs-v2/public/images/http/pipedream-axios-stack.png b/docs-v2/public/images/http/pipedream-axios-stack.png
deleted file mode 100644
index 2460c06f49991..0000000000000
Binary files a/docs-v2/public/images/http/pipedream-axios-stack.png and /dev/null differ
diff --git a/docs-v2/public/images/http/pipedream-axios-success.png b/docs-v2/public/images/http/pipedream-axios-success.png
deleted file mode 100644
index 66f64c63ad679..0000000000000
Binary files a/docs-v2/public/images/http/pipedream-axios-success.png and /dev/null differ
diff --git a/docs-v2/public/images/http/select-an-app-inside-http-request-builder.png b/docs-v2/public/images/http/select-an-app-inside-http-request-builder.png
deleted file mode 100644
index 50f6be639b558..0000000000000
Binary files a/docs-v2/public/images/http/select-an-app-inside-http-request-builder.png and /dev/null differ
diff --git a/docs-v2/public/images/http/selecting-pre-built-actions.png b/docs-v2/public/images/http/selecting-pre-built-actions.png
deleted file mode 100644
index 70acd6003980c..0000000000000
Binary files a/docs-v2/public/images/http/selecting-pre-built-actions.png and /dev/null differ
diff --git a/docs-v2/public/images/http/selecting-the-http-request-builder-action.png b/docs-v2/public/images/http/selecting-the-http-request-builder-action.png
deleted file mode 100644
index 4b252a0bf19c0..0000000000000
Binary files a/docs-v2/public/images/http/selecting-the-http-request-builder-action.png and /dev/null differ
diff --git a/docs-v2/public/images/http/selecting-the-slack-api-http-request-builder.png b/docs-v2/public/images/http/selecting-the-slack-api-http-request-builder.png
deleted file mode 100644
index 09e57c7518f1d..0000000000000
Binary files a/docs-v2/public/images/http/selecting-the-slack-api-http-request-builder.png and /dev/null differ
diff --git a/docs-v2/public/images/http/viewing-authorization-configuration.png b/docs-v2/public/images/http/viewing-authorization-configuration.png
deleted file mode 100644
index 7e88af722fc72..0000000000000
Binary files a/docs-v2/public/images/http/viewing-authorization-configuration.png and /dev/null differ
diff --git a/docs-v2/public/images/image-20201007113139913.png b/docs-v2/public/images/image-20201007113139913.png
deleted file mode 100644
index 829c043cca9a8..0000000000000
Binary files a/docs-v2/public/images/image-20201007113139913.png and /dev/null differ
diff --git a/docs-v2/public/images/image-20201027120141750.png b/docs-v2/public/images/image-20201027120141750.png
deleted file mode 100644
index 1a10996a9a830..0000000000000
Binary files a/docs-v2/public/images/image-20201027120141750.png and /dev/null differ
diff --git a/docs-v2/public/images/image-20201027124356486.png b/docs-v2/public/images/image-20201027124356486.png
deleted file mode 100644
index 82cbef45a7927..0000000000000
Binary files a/docs-v2/public/images/image-20201027124356486.png and /dev/null differ
diff --git a/docs-v2/public/images/image-20201027124419520.png b/docs-v2/public/images/image-20201027124419520.png
deleted file mode 100644
index 51264dec7a0f9..0000000000000
Binary files a/docs-v2/public/images/image-20201027124419520.png and /dev/null differ
diff --git a/docs-v2/public/images/image-20201027124745363.png b/docs-v2/public/images/image-20201027124745363.png
deleted file mode 100644
index 13b099dd33ed4..0000000000000
Binary files a/docs-v2/public/images/image-20201027124745363.png and /dev/null differ
diff --git a/docs-v2/public/images/image-20201027124755082.png b/docs-v2/public/images/image-20201027124755082.png
deleted file mode 100644
index 413e41c399ede..0000000000000
Binary files a/docs-v2/public/images/image-20201027124755082.png and /dev/null differ
diff --git a/docs-v2/public/images/image-20201027124959905.png b/docs-v2/public/images/image-20201027124959905.png
deleted file mode 100644
index 20ed048ae76f9..0000000000000
Binary files a/docs-v2/public/images/image-20201027124959905.png and /dev/null differ
diff --git a/docs-v2/public/images/image-20201027125010252.png b/docs-v2/public/images/image-20201027125010252.png
deleted file mode 100644
index e2691af173c6a..0000000000000
Binary files a/docs-v2/public/images/image-20201027125010252.png and /dev/null differ
diff --git a/docs-v2/public/images/image-20201027132901691.png b/docs-v2/public/images/image-20201027132901691.png
deleted file mode 100644
index 23cfb496a4175..0000000000000
Binary files a/docs-v2/public/images/image-20201027132901691.png and /dev/null differ
diff --git a/docs-v2/public/images/image-20201027133308888.png b/docs-v2/public/images/image-20201027133308888.png
deleted file mode 100644
index 8c1bb138b512c..0000000000000
Binary files a/docs-v2/public/images/image-20201027133308888.png and /dev/null differ
diff --git a/docs-v2/public/images/image-20201027145818255.png b/docs-v2/public/images/image-20201027145818255.png
deleted file mode 100644
index 3bd395cddd77f..0000000000000
Binary files a/docs-v2/public/images/image-20201027145818255.png and /dev/null differ
diff --git a/docs-v2/public/images/image-20201027145847752.png b/docs-v2/public/images/image-20201027145847752.png
deleted file mode 100644
index 7a5e2be4373ff..0000000000000
Binary files a/docs-v2/public/images/image-20201027145847752.png and /dev/null differ
diff --git a/docs-v2/public/images/inactive.png b/docs-v2/public/images/inactive.png
deleted file mode 100644
index 123dd802921e3..0000000000000
Binary files a/docs-v2/public/images/inactive.png and /dev/null differ
diff --git a/docs-v2/public/images/inspect/dest-field.png b/docs-v2/public/images/inspect/dest-field.png
deleted file mode 100644
index 1e31e04aa05bf..0000000000000
Binary files a/docs-v2/public/images/inspect/dest-field.png and /dev/null differ
diff --git a/docs-v2/public/images/inspect/dollar-end.png b/docs-v2/public/images/inspect/dollar-end.png
deleted file mode 100644
index 71507c0950878..0000000000000
Binary files a/docs-v2/public/images/inspect/dollar-end.png and /dev/null differ
diff --git a/docs-v2/public/images/inspect/duration.png b/docs-v2/public/images/inspect/duration.png
deleted file mode 100644
index 7a88f4315b68d..0000000000000
Binary files a/docs-v2/public/images/inspect/duration.png and /dev/null differ
diff --git a/docs-v2/public/images/inspect/edit-test-event.png b/docs-v2/public/images/inspect/edit-test-event.png
deleted file mode 100644
index 0331ad02ff4f0..0000000000000
Binary files a/docs-v2/public/images/inspect/edit-test-event.png and /dev/null differ
diff --git a/docs-v2/public/images/inspect/event-date-grouping.png b/docs-v2/public/images/inspect/event-date-grouping.png
deleted file mode 100644
index 99aeb117fb7ce..0000000000000
Binary files a/docs-v2/public/images/inspect/event-date-grouping.png and /dev/null differ
diff --git a/docs-v2/public/images/inspect/event-in-inspector.png b/docs-v2/public/images/inspect/event-in-inspector.png
deleted file mode 100644
index 731f64970e595..0000000000000
Binary files a/docs-v2/public/images/inspect/event-in-inspector.png and /dev/null differ
diff --git a/docs-v2/public/images/inspect/exception.png b/docs-v2/public/images/inspect/exception.png
deleted file mode 100644
index c88d101ebb930..0000000000000
Binary files a/docs-v2/public/images/inspect/exception.png and /dev/null differ
diff --git a/docs-v2/public/images/inspect/new-old-events.png b/docs-v2/public/images/inspect/new-old-events.png
deleted file mode 100644
index 74f15e293d813..0000000000000
Binary files a/docs-v2/public/images/inspect/new-old-events.png and /dev/null differ
diff --git a/docs-v2/public/images/inspect/pause.gif b/docs-v2/public/images/inspect/pause.gif
deleted file mode 100644
index 37799c6accf52..0000000000000
Binary files a/docs-v2/public/images/inspect/pause.gif and /dev/null differ
diff --git a/docs-v2/public/images/inspect/paused-event-count.png b/docs-v2/public/images/inspect/paused-event-count.png
deleted file mode 100644
index 34ac722cf1169..0000000000000
Binary files a/docs-v2/public/images/inspect/paused-event-count.png and /dev/null differ
diff --git a/docs-v2/public/images/inspect/replay-and-delete.png b/docs-v2/public/images/inspect/replay-and-delete.png
deleted file mode 100644
index 347d4eb6eed9d..0000000000000
Binary files a/docs-v2/public/images/inspect/replay-and-delete.png and /dev/null differ
diff --git a/docs-v2/public/images/inspect/replay.png b/docs-v2/public/images/inspect/replay.png
deleted file mode 100644
index a1874d9a020a1..0000000000000
Binary files a/docs-v2/public/images/inspect/replay.png and /dev/null differ
diff --git a/docs-v2/public/images/inspect/search-box.png b/docs-v2/public/images/inspect/search-box.png
deleted file mode 100644
index 57da2f7aa6686..0000000000000
Binary files a/docs-v2/public/images/inspect/search-box.png and /dev/null differ
diff --git a/docs-v2/public/images/inspect/search.gif b/docs-v2/public/images/inspect/search.gif
deleted file mode 100644
index 08da90a090527..0000000000000
Binary files a/docs-v2/public/images/inspect/search.gif and /dev/null differ
diff --git a/docs-v2/public/images/inspect/send-test-event-button.png b/docs-v2/public/images/inspect/send-test-event-button.png
deleted file mode 100644
index 725b5d2d4dec8..0000000000000
Binary files a/docs-v2/public/images/inspect/send-test-event-button.png and /dev/null differ
diff --git a/docs-v2/public/images/inspect/version.png b/docs-v2/public/images/inspect/version.png
deleted file mode 100644
index de74869bb0640..0000000000000
Binary files a/docs-v2/public/images/inspect/version.png and /dev/null differ
diff --git a/docs-v2/public/images/integrations/add-new-app.png b/docs-v2/public/images/integrations/add-new-app.png
deleted file mode 100644
index 845d93269a115..0000000000000
Binary files a/docs-v2/public/images/integrations/add-new-app.png and /dev/null differ
diff --git a/docs-v2/public/images/integrations/api-key.png b/docs-v2/public/images/integrations/api-key.png
deleted file mode 100644
index 1f30efc7cd320..0000000000000
Binary files a/docs-v2/public/images/integrations/api-key.png and /dev/null differ
diff --git a/docs-v2/public/images/integrations/connect-existing-account.png b/docs-v2/public/images/integrations/connect-existing-account.png
deleted file mode 100644
index e62035a971367..0000000000000
Binary files a/docs-v2/public/images/integrations/connect-existing-account.png and /dev/null differ
diff --git a/docs-v2/public/images/integrations/manage-connected-account.png b/docs-v2/public/images/integrations/manage-connected-account.png
deleted file mode 100644
index a19c57dc1a50b..0000000000000
Binary files a/docs-v2/public/images/integrations/manage-connected-account.png and /dev/null differ
diff --git a/docs-v2/public/images/integrations/search-for-slack.png b/docs-v2/public/images/integrations/search-for-slack.png
deleted file mode 100644
index 86e39d58b9836..0000000000000
Binary files a/docs-v2/public/images/integrations/search-for-slack.png and /dev/null differ
diff --git a/docs-v2/public/images/integrations/select-external-auth.png b/docs-v2/public/images/integrations/select-external-auth.png
deleted file mode 100644
index e38d00d59c1c5..0000000000000
Binary files a/docs-v2/public/images/integrations/select-external-auth.png and /dev/null differ
diff --git a/docs-v2/public/images/integrations/slack-connect-account.png b/docs-v2/public/images/integrations/slack-connect-account.png
deleted file mode 100644
index d861fe7c61e15..0000000000000
Binary files a/docs-v2/public/images/integrations/slack-connect-account.png and /dev/null differ
diff --git a/docs-v2/public/images/integrations/slack-token.png b/docs-v2/public/images/integrations/slack-token.png
deleted file mode 100644
index 3da976a2eea78..0000000000000
Binary files a/docs-v2/public/images/integrations/slack-token.png and /dev/null differ
diff --git a/docs-v2/public/images/list-of-active-inactive-workflows.png b/docs-v2/public/images/list-of-active-inactive-workflows.png
deleted file mode 100644
index 4f144c616f79b..0000000000000
Binary files a/docs-v2/public/images/list-of-active-inactive-workflows.png and /dev/null differ
diff --git a/docs-v2/public/images/migrate-from-v1/app-props-example.png b/docs-v2/public/images/migrate-from-v1/app-props-example.png
deleted file mode 100644
index ae0a1aabbc034..0000000000000
Binary files a/docs-v2/public/images/migrate-from-v1/app-props-example.png and /dev/null differ
diff --git a/docs-v2/public/images/migrate-from-v1/builder-mode-sample.png b/docs-v2/public/images/migrate-from-v1/builder-mode-sample.png
deleted file mode 100644
index fbb7877c25362..0000000000000
Binary files a/docs-v2/public/images/migrate-from-v1/builder-mode-sample.png and /dev/null differ
diff --git a/docs-v2/public/images/migrate-from-v1/custom-http-response-option.png b/docs-v2/public/images/migrate-from-v1/custom-http-response-option.png
deleted file mode 100644
index 174cd7e6eac3e..0000000000000
Binary files a/docs-v2/public/images/migrate-from-v1/custom-http-response-option.png and /dev/null differ
diff --git a/docs-v2/public/images/migrate-from-v1/custom-string-prop.png b/docs-v2/public/images/migrate-from-v1/custom-string-prop.png
deleted file mode 100644
index c1789ce67c5d8..0000000000000
Binary files a/docs-v2/public/images/migrate-from-v1/custom-string-prop.png and /dev/null differ
diff --git a/docs-v2/public/images/migrate-from-v1/demo-poster.png b/docs-v2/public/images/migrate-from-v1/demo-poster.png
deleted file mode 100644
index 75190d0b4dec5..0000000000000
Binary files a/docs-v2/public/images/migrate-from-v1/demo-poster.png and /dev/null differ
diff --git a/docs-v2/public/images/migrate-from-v1/inspector-sample.png b/docs-v2/public/images/migrate-from-v1/inspector-sample.png
deleted file mode 100644
index 504cbb6f8f55c..0000000000000
Binary files a/docs-v2/public/images/migrate-from-v1/inspector-sample.png and /dev/null differ
diff --git a/docs-v2/public/images/migrate-from-v1/new-builder-context-switcher.gif b/docs-v2/public/images/migrate-from-v1/new-builder-context-switcher.gif
deleted file mode 100644
index 1f7093a7f77ed..0000000000000
Binary files a/docs-v2/public/images/migrate-from-v1/new-builder-context-switcher.gif and /dev/null differ
diff --git a/docs-v2/public/images/migrate-from-v1/test-workflow-portions.png b/docs-v2/public/images/migrate-from-v1/test-workflow-portions.png
deleted file mode 100644
index 315920027327f..0000000000000
Binary files a/docs-v2/public/images/migrate-from-v1/test-workflow-portions.png and /dev/null differ
diff --git a/docs-v2/public/images/migrate-from-v1/testing-individual-events.gif b/docs-v2/public/images/migrate-from-v1/testing-individual-events.gif
deleted file mode 100644
index 20cc473ffe4d0..0000000000000
Binary files a/docs-v2/public/images/migrate-from-v1/testing-individual-events.gif and /dev/null differ
diff --git a/docs-v2/public/images/my-pipelines.png b/docs-v2/public/images/my-pipelines.png
deleted file mode 100644
index 1906ff9ceacc8..0000000000000
Binary files a/docs-v2/public/images/my-pipelines.png and /dev/null differ
diff --git a/docs-v2/public/images/new-pipeline-url.png b/docs-v2/public/images/new-pipeline-url.png
deleted file mode 100644
index a1c378fdd4b0e..0000000000000
Binary files a/docs-v2/public/images/new-pipeline-url.png and /dev/null differ
diff --git a/docs-v2/public/images/nodejs/ai-code-generation/generating-slack-actions-with-ai.png b/docs-v2/public/images/nodejs/ai-code-generation/generating-slack-actions-with-ai.png
deleted file mode 100644
index f85ea82e4c7e2..0000000000000
Binary files a/docs-v2/public/images/nodejs/ai-code-generation/generating-slack-actions-with-ai.png and /dev/null differ
diff --git a/docs-v2/public/images/nodejs/configuration-error-example.png b/docs-v2/public/images/nodejs/configuration-error-example.png
deleted file mode 100644
index 8727f0a836bfb..0000000000000
Binary files a/docs-v2/public/images/nodejs/configuration-error-example.png and /dev/null differ
diff --git a/docs-v2/public/images/nodejs/first-name-prop-example.png b/docs-v2/public/images/nodejs/first-name-prop-example.png
deleted file mode 100644
index e819f5faf78e9..0000000000000
Binary files a/docs-v2/public/images/nodejs/first-name-prop-example.png and /dev/null differ
diff --git a/docs-v2/public/images/pipeline-version.png b/docs-v2/public/images/pipeline-version.png
deleted file mode 100644
index 977b3fe0d4394..0000000000000
Binary files a/docs-v2/public/images/pipeline-version.png and /dev/null differ
diff --git a/docs-v2/public/images/pipeline.png b/docs-v2/public/images/pipeline.png
deleted file mode 100644
index 1ab800010bc66..0000000000000
Binary files a/docs-v2/public/images/pipeline.png and /dev/null differ
diff --git a/docs-v2/public/images/projects/access-badge-click.png b/docs-v2/public/images/projects/access-badge-click.png
deleted file mode 100644
index c95e29ea4d2f9..0000000000000
Binary files a/docs-v2/public/images/projects/access-badge-click.png and /dev/null differ
diff --git a/docs-v2/public/images/projects/import-workflows-into-projects.png b/docs-v2/public/images/projects/import-workflows-into-projects.png
deleted file mode 100644
index a4bebe7843289..0000000000000
Binary files a/docs-v2/public/images/projects/import-workflows-into-projects.png and /dev/null differ
diff --git a/docs-v2/public/images/projects/manage-access-overflow-menu.png b/docs-v2/public/images/projects/manage-access-overflow-menu.png
deleted file mode 100644
index e4915d70f7df0..0000000000000
Binary files a/docs-v2/public/images/projects/manage-access-overflow-menu.png and /dev/null differ
diff --git a/docs-v2/public/images/projects/project-listing-access.png b/docs-v2/public/images/projects/project-listing-access.png
deleted file mode 100644
index 6abf5b426b491..0000000000000
Binary files a/docs-v2/public/images/projects/project-listing-access.png and /dev/null differ
diff --git a/docs-v2/public/images/projects/project-listing-owner.png b/docs-v2/public/images/projects/project-listing-owner.png
deleted file mode 100644
index 9ec46c547728c..0000000000000
Binary files a/docs-v2/public/images/projects/project-listing-owner.png and /dev/null differ
diff --git a/docs-v2/public/images/projects/slideout-member-dropdown.png b/docs-v2/public/images/projects/slideout-member-dropdown.png
deleted file mode 100644
index 398131ce4d44a..0000000000000
Binary files a/docs-v2/public/images/projects/slideout-member-dropdown.png and /dev/null differ
diff --git a/docs-v2/public/images/projects/slideout-member-list.png b/docs-v2/public/images/projects/slideout-member-list.png
deleted file mode 100644
index ced48f865edb1..0000000000000
Binary files a/docs-v2/public/images/projects/slideout-member-list.png and /dev/null differ
diff --git a/docs-v2/public/images/projects/slideout-restricted.png b/docs-v2/public/images/projects/slideout-restricted.png
deleted file mode 100644
index 6e60633516c59..0000000000000
Binary files a/docs-v2/public/images/projects/slideout-restricted.png and /dev/null differ
diff --git a/docs-v2/public/images/projects/slideout-workspace-share.png b/docs-v2/public/images/projects/slideout-workspace-share.png
deleted file mode 100644
index 54da1ca7a22b5..0000000000000
Binary files a/docs-v2/public/images/projects/slideout-workspace-share.png and /dev/null differ
diff --git a/docs-v2/public/images/python/auth/connected-slack-account.png b/docs-v2/public/images/python/auth/connected-slack-account.png
deleted file mode 100644
index defb7cce56d63..0000000000000
Binary files a/docs-v2/public/images/python/auth/connected-slack-account.png and /dev/null differ
diff --git a/docs-v2/public/images/python/auth/step-selector-python-example.png b/docs-v2/public/images/python/auth/step-selector-python-example.png
deleted file mode 100644
index 62f5373f28e87..0000000000000
Binary files a/docs-v2/public/images/python/auth/step-selector-python-example.png and /dev/null differ
diff --git a/docs-v2/public/images/python/print-logs.png b/docs-v2/public/images/python/print-logs.png
deleted file mode 100644
index d22ed0b76ff19..0000000000000
Binary files a/docs-v2/public/images/python/print-logs.png and /dev/null differ
diff --git a/docs-v2/public/images/queue-size.png b/docs-v2/public/images/queue-size.png
deleted file mode 100644
index 7e71b66184fc2..0000000000000
Binary files a/docs-v2/public/images/queue-size.png and /dev/null differ
diff --git a/docs-v2/public/images/quickstart/action-configuration-complete.png b/docs-v2/public/images/quickstart/action-configuration-complete.png
deleted file mode 100644
index 98f7fc38e43c9..0000000000000
Binary files a/docs-v2/public/images/quickstart/action-configuration-complete.png and /dev/null differ
diff --git a/docs-v2/public/images/quickstart/action_diff.png b/docs-v2/public/images/quickstart/action_diff.png
deleted file mode 100644
index 3560598d1eb53..0000000000000
Binary files a/docs-v2/public/images/quickstart/action_diff.png and /dev/null differ
diff --git a/docs-v2/public/images/quickstart/add-step.png b/docs-v2/public/images/quickstart/add-step.png
deleted file mode 100644
index 72b48177d4457..0000000000000
Binary files a/docs-v2/public/images/quickstart/add-step.png and /dev/null differ
diff --git a/docs-v2/public/images/quickstart/add-timestamp.png b/docs-v2/public/images/quickstart/add-timestamp.png
deleted file mode 100644
index 566a78519622c..0000000000000
Binary files a/docs-v2/public/images/quickstart/add-timestamp.png and /dev/null differ
diff --git a/docs-v2/public/images/quickstart/add-trigger.png b/docs-v2/public/images/quickstart/add-trigger.png
deleted file mode 100644
index 3296b37ebd5a7..0000000000000
Binary files a/docs-v2/public/images/quickstart/add-trigger.png and /dev/null differ
diff --git a/docs-v2/public/images/quickstart/add_action.png b/docs-v2/public/images/quickstart/add_action.png
deleted file mode 100644
index e28fb37e875e7..0000000000000
Binary files a/docs-v2/public/images/quickstart/add_action.png and /dev/null differ
diff --git a/docs-v2/public/images/quickstart/additional-props.png b/docs-v2/public/images/quickstart/additional-props.png
deleted file mode 100644
index b1e4aea70e831..0000000000000
Binary files a/docs-v2/public/images/quickstart/additional-props.png and /dev/null differ
diff --git a/docs-v2/public/images/quickstart/autocomplete-message.png b/docs-v2/public/images/quickstart/autocomplete-message.png
deleted file mode 100644
index a4d30712f6178..0000000000000
Binary files a/docs-v2/public/images/quickstart/autocomplete-message.png and /dev/null differ
diff --git a/docs-v2/public/images/quickstart/basic_workflow.png b/docs-v2/public/images/quickstart/basic_workflow.png
deleted file mode 100644
index a4116e697dc4c..0000000000000
Binary files a/docs-v2/public/images/quickstart/basic_workflow.png and /dev/null differ
diff --git a/docs-v2/public/images/quickstart/changelog.png b/docs-v2/public/images/quickstart/changelog.png
deleted file mode 100644
index 703a79450113a..0000000000000
Binary files a/docs-v2/public/images/quickstart/changelog.png and /dev/null differ
diff --git a/docs-v2/public/images/quickstart/commit_changes_1.png b/docs-v2/public/images/quickstart/commit_changes_1.png
deleted file mode 100644
index a8eaecf5abd9c..0000000000000
Binary files a/docs-v2/public/images/quickstart/commit_changes_1.png and /dev/null differ
diff --git a/docs-v2/public/images/quickstart/commit_diff_1.png b/docs-v2/public/images/quickstart/commit_diff_1.png
deleted file mode 100644
index 6cec8e54e36ae..0000000000000
Binary files a/docs-v2/public/images/quickstart/commit_diff_1.png and /dev/null differ
diff --git a/docs-v2/public/images/quickstart/commit_diff_2.png b/docs-v2/public/images/quickstart/commit_diff_2.png
deleted file mode 100644
index c2195615bf57a..0000000000000
Binary files a/docs-v2/public/images/quickstart/commit_diff_2.png and /dev/null differ
diff --git a/docs-v2/public/images/quickstart/configure-project.png b/docs-v2/public/images/quickstart/configure-project.png
deleted file mode 100644
index 9ff40967889b5..0000000000000
Binary files a/docs-v2/public/images/quickstart/configure-project.png and /dev/null differ
diff --git a/docs-v2/public/images/quickstart/configure-workflow.png b/docs-v2/public/images/quickstart/configure-workflow.png
deleted file mode 100644
index 45d7afb2a8d87..0000000000000
Binary files a/docs-v2/public/images/quickstart/configure-workflow.png and /dev/null differ
diff --git a/docs-v2/public/images/quickstart/configure_project.png b/docs-v2/public/images/quickstart/configure_project.png
deleted file mode 100644
index 51fd1c1418658..0000000000000
Binary files a/docs-v2/public/images/quickstart/configure_project.png and /dev/null differ
diff --git a/docs-v2/public/images/quickstart/configure_project_1.png b/docs-v2/public/images/quickstart/configure_project_1.png
deleted file mode 100644
index 55738ef8ab52c..0000000000000
Binary files a/docs-v2/public/images/quickstart/configure_project_1.png and /dev/null differ
diff --git a/docs-v2/public/images/quickstart/configure_project_2.png b/docs-v2/public/images/quickstart/configure_project_2.png
deleted file mode 100644
index 1b9a7d786ecd1..0000000000000
Binary files a/docs-v2/public/images/quickstart/configure_project_2.png and /dev/null differ
diff --git a/docs-v2/public/images/quickstart/configure_workflow.png b/docs-v2/public/images/quickstart/configure_workflow.png
deleted file mode 100644
index 4fd73d592958c..0000000000000
Binary files a/docs-v2/public/images/quickstart/configure_workflow.png and /dev/null differ
diff --git a/docs-v2/public/images/quickstart/connect-google-sheets-account.png b/docs-v2/public/images/quickstart/connect-google-sheets-account.png
deleted file mode 100644
index 5c23d34c0c4bc..0000000000000
Binary files a/docs-v2/public/images/quickstart/connect-google-sheets-account.png and /dev/null differ
diff --git a/docs-v2/public/images/quickstart/copy-path.png b/docs-v2/public/images/quickstart/copy-path.png
deleted file mode 100644
index ec24a23ee9f62..0000000000000
Binary files a/docs-v2/public/images/quickstart/copy-path.png and /dev/null differ
diff --git a/docs-v2/public/images/quickstart/create-http-trigger.png b/docs-v2/public/images/quickstart/create-http-trigger.png
deleted file mode 100644
index 27eb86aa8b74f..0000000000000
Binary files a/docs-v2/public/images/quickstart/create-http-trigger.png and /dev/null differ
diff --git a/docs-v2/public/images/quickstart/create-project.png b/docs-v2/public/images/quickstart/create-project.png
deleted file mode 100644
index cf60bb63b80f9..0000000000000
Binary files a/docs-v2/public/images/quickstart/create-project.png and /dev/null differ
diff --git a/docs-v2/public/images/quickstart/create-trigger.png b/docs-v2/public/images/quickstart/create-trigger.png
deleted file mode 100644
index 3296b37ebd5a7..0000000000000
Binary files a/docs-v2/public/images/quickstart/create-trigger.png and /dev/null differ
diff --git a/docs-v2/public/images/quickstart/create_pr.png b/docs-v2/public/images/quickstart/create_pr.png
deleted file mode 100644
index 76984483f9d58..0000000000000
Binary files a/docs-v2/public/images/quickstart/create_pr.png and /dev/null differ
diff --git a/docs-v2/public/images/quickstart/create_project.png b/docs-v2/public/images/quickstart/create_project.png
deleted file mode 100644
index b494829dadd36..0000000000000
Binary files a/docs-v2/public/images/quickstart/create_project.png and /dev/null differ
diff --git a/docs-v2/public/images/quickstart/data-inserted.png b/docs-v2/public/images/quickstart/data-inserted.png
deleted file mode 100644
index e85baf594f5da..0000000000000
Binary files a/docs-v2/public/images/quickstart/data-inserted.png and /dev/null differ
diff --git a/docs-v2/public/images/quickstart/deploy-workflow.png b/docs-v2/public/images/quickstart/deploy-workflow.png
deleted file mode 100644
index b37c72807782e..0000000000000
Binary files a/docs-v2/public/images/quickstart/deploy-workflow.png and /dev/null differ
diff --git a/docs-v2/public/images/quickstart/deployed-workflow.png b/docs-v2/public/images/quickstart/deployed-workflow.png
deleted file mode 100644
index 80c7e55324218..0000000000000
Binary files a/docs-v2/public/images/quickstart/deployed-workflow.png and /dev/null differ
diff --git a/docs-v2/public/images/quickstart/edit_1.png b/docs-v2/public/images/quickstart/edit_1.png
deleted file mode 100644
index cad21ed19a5c5..0000000000000
Binary files a/docs-v2/public/images/quickstart/edit_1.png and /dev/null differ
diff --git a/docs-v2/public/images/quickstart/edit_2.png b/docs-v2/public/images/quickstart/edit_2.png
deleted file mode 100644
index 28c55af88536a..0000000000000
Binary files a/docs-v2/public/images/quickstart/edit_2.png and /dev/null differ
diff --git a/docs-v2/public/images/quickstart/edit_in_github.png b/docs-v2/public/images/quickstart/edit_in_github.png
deleted file mode 100644
index 9b583c11c8ace..0000000000000
Binary files a/docs-v2/public/images/quickstart/edit_in_github.png and /dev/null differ
diff --git a/docs-v2/public/images/quickstart/edit_production.png b/docs-v2/public/images/quickstart/edit_production.png
deleted file mode 100644
index 86a0d656b3c2c..0000000000000
Binary files a/docs-v2/public/images/quickstart/edit_production.png and /dev/null differ
diff --git a/docs-v2/public/images/quickstart/empty-sheet.png b/docs-v2/public/images/quickstart/empty-sheet.png
deleted file mode 100644
index 8d0d915d0970a..0000000000000
Binary files a/docs-v2/public/images/quickstart/empty-sheet.png and /dev/null differ
diff --git a/docs-v2/public/images/quickstart/expand-sentiment-results.png b/docs-v2/public/images/quickstart/expand-sentiment-results.png
deleted file mode 100644
index 7bb88cf3c96c0..0000000000000
Binary files a/docs-v2/public/images/quickstart/expand-sentiment-results.png and /dev/null differ
diff --git a/docs-v2/public/images/quickstart/generate-test-event.png b/docs-v2/public/images/quickstart/generate-test-event.png
deleted file mode 100644
index b48f8a93ed84b..0000000000000
Binary files a/docs-v2/public/images/quickstart/generate-test-event.png and /dev/null differ
diff --git a/docs-v2/public/images/quickstart/github-sync-v3/commit-changes-2.png b/docs-v2/public/images/quickstart/github-sync-v3/commit-changes-2.png
deleted file mode 100644
index 079312d56b6e9..0000000000000
Binary files a/docs-v2/public/images/quickstart/github-sync-v3/commit-changes-2.png and /dev/null differ
diff --git a/docs-v2/public/images/quickstart/github-sync-v3/commit-changes.png b/docs-v2/public/images/quickstart/github-sync-v3/commit-changes.png
deleted file mode 100644
index 73f3ad9ebbff5..0000000000000
Binary files a/docs-v2/public/images/quickstart/github-sync-v3/commit-changes.png and /dev/null differ
diff --git a/docs-v2/public/images/quickstart/github-sync-v3/commit-diff-2.png b/docs-v2/public/images/quickstart/github-sync-v3/commit-diff-2.png
deleted file mode 100644
index e3d9c04a1ea72..0000000000000
Binary files a/docs-v2/public/images/quickstart/github-sync-v3/commit-diff-2.png and /dev/null differ
diff --git a/docs-v2/public/images/quickstart/github-sync-v3/commit-diff.png b/docs-v2/public/images/quickstart/github-sync-v3/commit-diff.png
deleted file mode 100644
index 65c388c861b0d..0000000000000
Binary files a/docs-v2/public/images/quickstart/github-sync-v3/commit-diff.png and /dev/null differ
diff --git a/docs-v2/public/images/quickstart/github-sync-v3/merge-to-prod-2.png b/docs-v2/public/images/quickstart/github-sync-v3/merge-to-prod-2.png
deleted file mode 100644
index 2e065e6098521..0000000000000
Binary files a/docs-v2/public/images/quickstart/github-sync-v3/merge-to-prod-2.png and /dev/null differ
diff --git a/docs-v2/public/images/quickstart/github-sync-v3/merge-to-prod.png b/docs-v2/public/images/quickstart/github-sync-v3/merge-to-prod.png
deleted file mode 100644
index c173cebd3c242..0000000000000
Binary files a/docs-v2/public/images/quickstart/github-sync-v3/merge-to-prod.png and /dev/null differ
diff --git a/docs-v2/public/images/quickstart/github-sync-v3/sample-workflow.png b/docs-v2/public/images/quickstart/github-sync-v3/sample-workflow.png
deleted file mode 100644
index 211c5f5db10ad..0000000000000
Binary files a/docs-v2/public/images/quickstart/github-sync-v3/sample-workflow.png and /dev/null differ
diff --git a/docs-v2/public/images/quickstart/github-sync-v3/view-branch.png b/docs-v2/public/images/quickstart/github-sync-v3/view-branch.png
deleted file mode 100644
index a049a0cedd77b..0000000000000
Binary files a/docs-v2/public/images/quickstart/github-sync-v3/view-branch.png and /dev/null differ
diff --git a/docs-v2/public/images/quickstart/google-oauth.png b/docs-v2/public/images/quickstart/google-oauth.png
deleted file mode 100644
index fafd330b672e6..0000000000000
Binary files a/docs-v2/public/images/quickstart/google-oauth.png and /dev/null differ
diff --git a/docs-v2/public/images/quickstart/google-permissions.png b/docs-v2/public/images/quickstart/google-permissions.png
deleted file mode 100644
index 0162a44a068c9..0000000000000
Binary files a/docs-v2/public/images/quickstart/google-permissions.png and /dev/null differ
diff --git a/docs-v2/public/images/quickstart/has-headers.png b/docs-v2/public/images/quickstart/has-headers.png
deleted file mode 100644
index 91ce17e74bf21..0000000000000
Binary files a/docs-v2/public/images/quickstart/has-headers.png and /dev/null differ
diff --git a/docs-v2/public/images/quickstart/inspect-executions.png b/docs-v2/public/images/quickstart/inspect-executions.png
deleted file mode 100644
index 800021ee35839..0000000000000
Binary files a/docs-v2/public/images/quickstart/inspect-executions.png and /dev/null differ
diff --git a/docs-v2/public/images/quickstart/inspect-trigger-event.png b/docs-v2/public/images/quickstart/inspect-trigger-event.png
deleted file mode 100644
index d2914f9594100..0000000000000
Binary files a/docs-v2/public/images/quickstart/inspect-trigger-event.png and /dev/null differ
diff --git a/docs-v2/public/images/quickstart/live-test.png b/docs-v2/public/images/quickstart/live-test.png
deleted file mode 100644
index ad7fc298e5858..0000000000000
Binary files a/docs-v2/public/images/quickstart/live-test.png and /dev/null differ
diff --git a/docs-v2/public/images/quickstart/merge_pr.png b/docs-v2/public/images/quickstart/merge_pr.png
deleted file mode 100644
index 85cdfaf8b16b7..0000000000000
Binary files a/docs-v2/public/images/quickstart/merge_pr.png and /dev/null differ
diff --git a/docs-v2/public/images/quickstart/merge_to_production_1.png b/docs-v2/public/images/quickstart/merge_to_production_1.png
deleted file mode 100644
index ec70ca6420614..0000000000000
Binary files a/docs-v2/public/images/quickstart/merge_to_production_1.png and /dev/null differ
diff --git a/docs-v2/public/images/quickstart/merge_to_production_2.png b/docs-v2/public/images/quickstart/merge_to_production_2.png
deleted file mode 100644
index 000f90928c18b..0000000000000
Binary files a/docs-v2/public/images/quickstart/merge_to_production_2.png and /dev/null differ
diff --git a/docs-v2/public/images/quickstart/merging_to_production.png b/docs-v2/public/images/quickstart/merging_to_production.png
deleted file mode 100644
index 42040d2a62994..0000000000000
Binary files a/docs-v2/public/images/quickstart/merging_to_production.png and /dev/null differ
diff --git a/docs-v2/public/images/quickstart/message-completed.png b/docs-v2/public/images/quickstart/message-completed.png
deleted file mode 100644
index c62d4b170a784..0000000000000
Binary files a/docs-v2/public/images/quickstart/message-completed.png and /dev/null differ
diff --git a/docs-v2/public/images/quickstart/new-code-step-added.png b/docs-v2/public/images/quickstart/new-code-step-added.png
deleted file mode 100644
index 80f6ec4b3a4f3..0000000000000
Binary files a/docs-v2/public/images/quickstart/new-code-step-added.png and /dev/null differ
diff --git a/docs-v2/public/images/quickstart/new-workflow.png b/docs-v2/public/images/quickstart/new-workflow.png
deleted file mode 100644
index 6d9c05bdc59cd..0000000000000
Binary files a/docs-v2/public/images/quickstart/new-workflow.png and /dev/null differ
diff --git a/docs-v2/public/images/quickstart/new_workflow.png b/docs-v2/public/images/quickstart/new_workflow.png
deleted file mode 100644
index f7e3e46efaced..0000000000000
Binary files a/docs-v2/public/images/quickstart/new_workflow.png and /dev/null differ
diff --git a/docs-v2/public/images/quickstart/pr_deployed.png b/docs-v2/public/images/quickstart/pr_deployed.png
deleted file mode 100644
index f598de9f1c62f..0000000000000
Binary files a/docs-v2/public/images/quickstart/pr_deployed.png and /dev/null differ
diff --git a/docs-v2/public/images/quickstart/production.png b/docs-v2/public/images/quickstart/production.png
deleted file mode 100644
index 1c285358aa4fe..0000000000000
Binary files a/docs-v2/public/images/quickstart/production.png and /dev/null differ
diff --git a/docs-v2/public/images/quickstart/rename-code-step.gif b/docs-v2/public/images/quickstart/rename-code-step.gif
deleted file mode 100644
index 520ebcdb2b417..0000000000000
Binary files a/docs-v2/public/images/quickstart/rename-code-step.gif and /dev/null differ
diff --git a/docs-v2/public/images/quickstart/rename-code-step.png b/docs-v2/public/images/quickstart/rename-code-step.png
deleted file mode 100644
index e647b79fb9fe5..0000000000000
Binary files a/docs-v2/public/images/quickstart/rename-code-step.png and /dev/null differ
diff --git a/docs-v2/public/images/quickstart/review_pr.png b/docs-v2/public/images/quickstart/review_pr.png
deleted file mode 100644
index 4ce9c0da7025b..0000000000000
Binary files a/docs-v2/public/images/quickstart/review_pr.png and /dev/null differ
diff --git a/docs-v2/public/images/quickstart/save-http-trigger.png b/docs-v2/public/images/quickstart/save-http-trigger.png
deleted file mode 100644
index f9f6bf1a08474..0000000000000
Binary files a/docs-v2/public/images/quickstart/save-http-trigger.png and /dev/null differ
diff --git a/docs-v2/public/images/quickstart/select-add-single-row.png b/docs-v2/public/images/quickstart/select-add-single-row.png
deleted file mode 100644
index d23d6b5aeea3c..0000000000000
Binary files a/docs-v2/public/images/quickstart/select-add-single-row.png and /dev/null differ
diff --git a/docs-v2/public/images/quickstart/select-google-sheets-app.png b/docs-v2/public/images/quickstart/select-google-sheets-app.png
deleted file mode 100644
index dad4cda2b821b..0000000000000
Binary files a/docs-v2/public/images/quickstart/select-google-sheets-app.png and /dev/null differ
diff --git a/docs-v2/public/images/quickstart/select-sheet-name.png b/docs-v2/public/images/quickstart/select-sheet-name.png
deleted file mode 100644
index 27fc3f7e14b01..0000000000000
Binary files a/docs-v2/public/images/quickstart/select-sheet-name.png and /dev/null differ
diff --git a/docs-v2/public/images/quickstart/select-spreadsheet.png b/docs-v2/public/images/quickstart/select-spreadsheet.png
deleted file mode 100644
index cb6be0f45083b..0000000000000
Binary files a/docs-v2/public/images/quickstart/select-spreadsheet.png and /dev/null differ
diff --git a/docs-v2/public/images/quickstart/sentiment-results.png b/docs-v2/public/images/quickstart/sentiment-results.png
deleted file mode 100644
index 8b93f255dee73..0000000000000
Binary files a/docs-v2/public/images/quickstart/sentiment-results.png and /dev/null differ
diff --git a/docs-v2/public/images/quickstart/step-selector-code.png b/docs-v2/public/images/quickstart/step-selector-code.png
deleted file mode 100644
index a3abaf16cae30..0000000000000
Binary files a/docs-v2/public/images/quickstart/step-selector-code.png and /dev/null differ
diff --git a/docs-v2/public/images/quickstart/test-code-step.png b/docs-v2/public/images/quickstart/test-code-step.png
deleted file mode 100644
index 0efeb0171fada..0000000000000
Binary files a/docs-v2/public/images/quickstart/test-code-step.png and /dev/null differ
diff --git a/docs-v2/public/images/quickstart/test-successful.png b/docs-v2/public/images/quickstart/test-successful.png
deleted file mode 100644
index 363d0a947119c..0000000000000
Binary files a/docs-v2/public/images/quickstart/test-successful.png and /dev/null differ
diff --git a/docs-v2/public/images/quickstart/timestamp-added.png b/docs-v2/public/images/quickstart/timestamp-added.png
deleted file mode 100644
index 7821017fbc4fb..0000000000000
Binary files a/docs-v2/public/images/quickstart/timestamp-added.png and /dev/null differ
diff --git a/docs-v2/public/images/quickstart/trigger-continue.png b/docs-v2/public/images/quickstart/trigger-continue.png
deleted file mode 100644
index 3467c284831d7..0000000000000
Binary files a/docs-v2/public/images/quickstart/trigger-continue.png and /dev/null differ
diff --git a/docs-v2/public/images/quickstart/unique-url.png b/docs-v2/public/images/quickstart/unique-url.png
deleted file mode 100644
index 0575b818c2632..0000000000000
Binary files a/docs-v2/public/images/quickstart/unique-url.png and /dev/null differ
diff --git a/docs-v2/public/images/quickstart/v3/async-props.png b/docs-v2/public/images/quickstart/v3/async-props.png
deleted file mode 100644
index 8c5459b4bb0a6..0000000000000
Binary files a/docs-v2/public/images/quickstart/v3/async-props.png and /dev/null differ
diff --git a/docs-v2/public/images/quickstart/v3/autocomplete-export.png b/docs-v2/public/images/quickstart/v3/autocomplete-export.png
deleted file mode 100644
index 2ba1aae347743..0000000000000
Binary files a/docs-v2/public/images/quickstart/v3/autocomplete-export.png and /dev/null differ
diff --git a/docs-v2/public/images/quickstart/v3/copy-sentiment-path.png b/docs-v2/public/images/quickstart/v3/copy-sentiment-path.png
deleted file mode 100644
index 9a7e11e33915b..0000000000000
Binary files a/docs-v2/public/images/quickstart/v3/copy-sentiment-path.png and /dev/null differ
diff --git a/docs-v2/public/images/quickstart/v3/deploy-workflow.png b/docs-v2/public/images/quickstart/v3/deploy-workflow.png
deleted file mode 100644
index bbfed0bc8a4b9..0000000000000
Binary files a/docs-v2/public/images/quickstart/v3/deploy-workflow.png and /dev/null differ
diff --git a/docs-v2/public/images/quickstart/v3/paste-sentiment-score.png b/docs-v2/public/images/quickstart/v3/paste-sentiment-score.png
deleted file mode 100644
index 4ad8c66420771..0000000000000
Binary files a/docs-v2/public/images/quickstart/v3/paste-sentiment-score.png and /dev/null differ
diff --git a/docs-v2/public/images/quickstart/v3/select-headers.png b/docs-v2/public/images/quickstart/v3/select-headers.png
deleted file mode 100644
index 9fd9b9e0e5e70..0000000000000
Binary files a/docs-v2/public/images/quickstart/v3/select-headers.png and /dev/null differ
diff --git a/docs-v2/public/images/quickstart/v3/select-sentiment-step.png b/docs-v2/public/images/quickstart/v3/select-sentiment-step.png
deleted file mode 100644
index 5349a1ed7c25e..0000000000000
Binary files a/docs-v2/public/images/quickstart/v3/select-sentiment-step.png and /dev/null differ
diff --git a/docs-v2/public/images/quickstart/v3/select-spreadsheet-name.png b/docs-v2/public/images/quickstart/v3/select-spreadsheet-name.png
deleted file mode 100644
index 2d1bc827c25b9..0000000000000
Binary files a/docs-v2/public/images/quickstart/v3/select-spreadsheet-name.png and /dev/null differ
diff --git a/docs-v2/public/images/quickstart/v3/select-spreadsheet.png b/docs-v2/public/images/quickstart/v3/select-spreadsheet.png
deleted file mode 100644
index 39aad5db35595..0000000000000
Binary files a/docs-v2/public/images/quickstart/v3/select-spreadsheet.png and /dev/null differ
diff --git a/docs-v2/public/images/quickstart/v3/select-ts-export.png b/docs-v2/public/images/quickstart/v3/select-ts-export.png
deleted file mode 100644
index c5ebdae148022..0000000000000
Binary files a/docs-v2/public/images/quickstart/v3/select-ts-export.png and /dev/null differ
diff --git a/docs-v2/public/images/quickstart/v3/successful-test-results.png b/docs-v2/public/images/quickstart/v3/successful-test-results.png
deleted file mode 100644
index 9ebb32c98be54..0000000000000
Binary files a/docs-v2/public/images/quickstart/v3/successful-test-results.png and /dev/null differ
diff --git a/docs-v2/public/images/quickstart/v3/timestamp.png b/docs-v2/public/images/quickstart/v3/timestamp.png
deleted file mode 100644
index 84ec4ff8656f0..0000000000000
Binary files a/docs-v2/public/images/quickstart/v3/timestamp.png and /dev/null differ
diff --git a/docs-v2/public/images/quickstart/view_branch_on_github_1.png b/docs-v2/public/images/quickstart/view_branch_on_github_1.png
deleted file mode 100644
index c36bcd2ce2d80..0000000000000
Binary files a/docs-v2/public/images/quickstart/view_branch_on_github_1.png and /dev/null differ
diff --git a/docs-v2/public/images/quickstart/view_branch_on_github_2.png b/docs-v2/public/images/quickstart/view_branch_on_github_2.png
deleted file mode 100644
index 033109f44bcef..0000000000000
Binary files a/docs-v2/public/images/quickstart/view_branch_on_github_2.png and /dev/null differ
diff --git a/docs-v2/public/images/rest-api/source-id.png b/docs-v2/public/images/rest-api/source-id.png
deleted file mode 100644
index a90c9a5ee4282..0000000000000
Binary files a/docs-v2/public/images/rest-api/source-id.png and /dev/null differ
diff --git a/docs-v2/public/images/rest-api/webhook-proxy.png b/docs-v2/public/images/rest-api/webhook-proxy.png
deleted file mode 100644
index ccf8b7cf93014..0000000000000
Binary files a/docs-v2/public/images/rest-api/webhook-proxy.png and /dev/null differ
diff --git a/docs-v2/public/images/settings/attachment-file-data.png b/docs-v2/public/images/settings/attachment-file-data.png
deleted file mode 100644
index cfea2a7c323d0..0000000000000
Binary files a/docs-v2/public/images/settings/attachment-file-data.png and /dev/null differ
diff --git a/docs-v2/public/images/settings/disable-data-retention-settings.png b/docs-v2/public/images/settings/disable-data-retention-settings.png
deleted file mode 100644
index 1038871e3f948..0000000000000
Binary files a/docs-v2/public/images/settings/disable-data-retention-settings.png and /dev/null differ
diff --git a/docs-v2/public/images/settings/shared-with-me.png b/docs-v2/public/images/settings/shared-with-me.png
deleted file mode 100644
index 0c2d00ca39d2a..0000000000000
Binary files a/docs-v2/public/images/settings/shared-with-me.png and /dev/null differ
diff --git a/docs-v2/public/images/settings/workflow-settings.png b/docs-v2/public/images/settings/workflow-settings.png
deleted file mode 100644
index 859dad03dfa43..0000000000000
Binary files a/docs-v2/public/images/settings/workflow-settings.png and /dev/null differ
diff --git a/docs-v2/public/images/steps/active.png b/docs-v2/public/images/steps/active.png
deleted file mode 100644
index 9e65253ebf0d0..0000000000000
Binary files a/docs-v2/public/images/steps/active.png and /dev/null differ
diff --git a/docs-v2/public/images/steps/adding-step-note.gif b/docs-v2/public/images/steps/adding-step-note.gif
deleted file mode 100644
index 1311366f7bf89..0000000000000
Binary files a/docs-v2/public/images/steps/adding-step-note.gif and /dev/null differ
diff --git a/docs-v2/public/images/steps/archive-workflow.png b/docs-v2/public/images/steps/archive-workflow.png
deleted file mode 100644
index b07ecbb2e9b90..0000000000000
Binary files a/docs-v2/public/images/steps/archive-workflow.png and /dev/null differ
diff --git a/docs-v2/public/images/steps/edit-params-schema.png b/docs-v2/public/images/steps/edit-params-schema.png
deleted file mode 100644
index 54a76bce33d79..0000000000000
Binary files a/docs-v2/public/images/steps/edit-params-schema.png and /dev/null differ
diff --git a/docs-v2/public/images/steps/inactive.png b/docs-v2/public/images/steps/inactive.png
deleted file mode 100644
index 123dd802921e3..0000000000000
Binary files a/docs-v2/public/images/steps/inactive.png and /dev/null differ
diff --git a/docs-v2/public/images/steps/list-of-active-inactive-workflows.png b/docs-v2/public/images/steps/list-of-active-inactive-workflows.png
deleted file mode 100644
index 4f144c616f79b..0000000000000
Binary files a/docs-v2/public/images/steps/list-of-active-inactive-workflows.png and /dev/null differ
diff --git a/docs-v2/public/images/steps/my-pipelines.png b/docs-v2/public/images/steps/my-pipelines.png
deleted file mode 100644
index 1906ff9ceacc8..0000000000000
Binary files a/docs-v2/public/images/steps/my-pipelines.png and /dev/null differ
diff --git a/docs-v2/public/images/steps/new-pipeline-url.png b/docs-v2/public/images/steps/new-pipeline-url.png
deleted file mode 100644
index a1c378fdd4b0e..0000000000000
Binary files a/docs-v2/public/images/steps/new-pipeline-url.png and /dev/null differ
diff --git a/docs-v2/public/images/steps/new-step-name.png b/docs-v2/public/images/steps/new-step-name.png
deleted file mode 100644
index 458527191a498..0000000000000
Binary files a/docs-v2/public/images/steps/new-step-name.png and /dev/null differ
diff --git a/docs-v2/public/images/steps/param-visibility.png b/docs-v2/public/images/steps/param-visibility.png
deleted file mode 100644
index 325ca08a48ab8..0000000000000
Binary files a/docs-v2/public/images/steps/param-visibility.png and /dev/null differ
diff --git a/docs-v2/public/images/steps/params-foo.png b/docs-v2/public/images/steps/params-foo.png
deleted file mode 100644
index eeefe0e80b213..0000000000000
Binary files a/docs-v2/public/images/steps/params-foo.png and /dev/null differ
diff --git a/docs-v2/public/images/steps/params-name.png b/docs-v2/public/images/steps/params-name.png
deleted file mode 100644
index 6e2f2dde93233..0000000000000
Binary files a/docs-v2/public/images/steps/params-name.png and /dev/null differ
diff --git a/docs-v2/public/images/steps/pipeline-version.png b/docs-v2/public/images/steps/pipeline-version.png
deleted file mode 100644
index 977b3fe0d4394..0000000000000
Binary files a/docs-v2/public/images/steps/pipeline-version.png and /dev/null differ
diff --git a/docs-v2/public/images/steps/pipeline.png b/docs-v2/public/images/steps/pipeline.png
deleted file mode 100644
index 1ab800010bc66..0000000000000
Binary files a/docs-v2/public/images/steps/pipeline.png and /dev/null differ
diff --git a/docs-v2/public/images/steps/show-hide-note.gif b/docs-v2/public/images/steps/show-hide-note.gif
deleted file mode 100644
index bc721533f9856..0000000000000
Binary files a/docs-v2/public/images/steps/show-hide-note.gif and /dev/null differ
diff --git a/docs-v2/public/images/steps/step-name.png b/docs-v2/public/images/steps/step-name.png
deleted file mode 100644
index d54fa8d9ba4f1..0000000000000
Binary files a/docs-v2/public/images/steps/step-name.png and /dev/null differ
diff --git a/docs-v2/public/images/steps/step-notes-example.png b/docs-v2/public/images/steps/step-notes-example.png
deleted file mode 100644
index 54b2cb4011f78..0000000000000
Binary files a/docs-v2/public/images/steps/step-notes-example.png and /dev/null differ
diff --git a/docs-v2/public/images/steps/text-description.png b/docs-v2/public/images/steps/text-description.png
deleted file mode 100644
index f020407506d70..0000000000000
Binary files a/docs-v2/public/images/steps/text-description.png and /dev/null differ
diff --git a/docs-v2/public/images/steps/workflow-url.png b/docs-v2/public/images/steps/workflow-url.png
deleted file mode 100644
index 6386fadb3a31b..0000000000000
Binary files a/docs-v2/public/images/steps/workflow-url.png and /dev/null differ
diff --git a/docs-v2/public/images/text-description.png b/docs-v2/public/images/text-description.png
deleted file mode 100644
index f020407506d70..0000000000000
Binary files a/docs-v2/public/images/text-description.png and /dev/null differ
diff --git a/docs-v2/public/images/triggers/add-multi-trigger.gif b/docs-v2/public/images/triggers/add-multi-trigger.gif
deleted file mode 100644
index 6f94bc1c39786..0000000000000
Binary files a/docs-v2/public/images/triggers/add-multi-trigger.gif and /dev/null differ
diff --git a/docs-v2/public/images/triggers/add-multiple-triggers.png b/docs-v2/public/images/triggers/add-multiple-triggers.png
deleted file mode 100644
index 1c46b2f7c6e6d..0000000000000
Binary files a/docs-v2/public/images/triggers/add-multiple-triggers.png and /dev/null differ
diff --git a/docs-v2/public/images/triggers/add-trigger-button.png b/docs-v2/public/images/triggers/add-trigger-button.png
deleted file mode 100644
index 0d95bb535b2b9..0000000000000
Binary files a/docs-v2/public/images/triggers/add-trigger-button.png and /dev/null differ
diff --git a/docs-v2/public/images/triggers/airtable-test-events.png b/docs-v2/public/images/triggers/airtable-test-events.png
deleted file mode 100644
index 30903e406f623..0000000000000
Binary files a/docs-v2/public/images/triggers/airtable-test-events.png and /dev/null differ
diff --git a/docs-v2/public/images/triggers/app-triggers.png b/docs-v2/public/images/triggers/app-triggers.png
deleted file mode 100644
index 1345dcf92e35c..0000000000000
Binary files a/docs-v2/public/images/triggers/app-triggers.png and /dev/null differ
diff --git a/docs-v2/public/images/triggers/cron-scheduler-source.png b/docs-v2/public/images/triggers/cron-scheduler-source.png
deleted file mode 100644
index cec8ebf687c6f..0000000000000
Binary files a/docs-v2/public/images/triggers/cron-scheduler-source.png and /dev/null differ
diff --git a/docs-v2/public/images/triggers/email-addr.png b/docs-v2/public/images/triggers/email-addr.png
deleted file mode 100644
index 652a8db7b0dd2..0000000000000
Binary files a/docs-v2/public/images/triggers/email-addr.png and /dev/null differ
diff --git a/docs-v2/public/images/triggers/email-trigger.png b/docs-v2/public/images/triggers/email-trigger.png
deleted file mode 100644
index 79ec9bbb34237..0000000000000
Binary files a/docs-v2/public/images/triggers/email-trigger.png and /dev/null differ
diff --git a/docs-v2/public/images/triggers/file-upload-urls.png b/docs-v2/public/images/triggers/file-upload-urls.png
deleted file mode 100644
index 1f03c39ca5eb2..0000000000000
Binary files a/docs-v2/public/images/triggers/file-upload-urls.png and /dev/null differ
diff --git a/docs-v2/public/images/triggers/gcal-triggers.png b/docs-v2/public/images/triggers/gcal-triggers.png
deleted file mode 100644
index f9d0737824687..0000000000000
Binary files a/docs-v2/public/images/triggers/gcal-triggers.png and /dev/null differ
diff --git a/docs-v2/public/images/triggers/github-source.png b/docs-v2/public/images/triggers/github-source.png
deleted file mode 100644
index 884c270d91de7..0000000000000
Binary files a/docs-v2/public/images/triggers/github-source.png and /dev/null differ
diff --git a/docs-v2/public/images/triggers/google-calendar-triggers.png b/docs-v2/public/images/triggers/google-calendar-triggers.png
deleted file mode 100644
index caa82f8c52930..0000000000000
Binary files a/docs-v2/public/images/triggers/google-calendar-triggers.png and /dev/null differ
diff --git a/docs-v2/public/images/triggers/http-api-trigger.png b/docs-v2/public/images/triggers/http-api-trigger.png
deleted file mode 100644
index 9e3c7b160294f..0000000000000
Binary files a/docs-v2/public/images/triggers/http-api-trigger.png and /dev/null differ
diff --git a/docs-v2/public/images/triggers/http-endpoint.png b/docs-v2/public/images/triggers/http-endpoint.png
deleted file mode 100644
index 5a46ce8a4c339..0000000000000
Binary files a/docs-v2/public/images/triggers/http-endpoint.png and /dev/null differ
diff --git a/docs-v2/public/images/triggers/http-trigger-url.png b/docs-v2/public/images/triggers/http-trigger-url.png
deleted file mode 100644
index b3c30b9b82cf8..0000000000000
Binary files a/docs-v2/public/images/triggers/http-trigger-url.png and /dev/null differ
diff --git a/docs-v2/public/images/triggers/image_form_data.png b/docs-v2/public/images/triggers/image_form_data.png
deleted file mode 100644
index 48c2b6b6285ff..0000000000000
Binary files a/docs-v2/public/images/triggers/image_form_data.png and /dev/null differ
diff --git a/docs-v2/public/images/triggers/list-of-sources.png b/docs-v2/public/images/triggers/list-of-sources.png
deleted file mode 100644
index f0cfc9eaf2a48..0000000000000
Binary files a/docs-v2/public/images/triggers/list-of-sources.png and /dev/null differ
diff --git a/docs-v2/public/images/triggers/proto.png b/docs-v2/public/images/triggers/proto.png
deleted file mode 100644
index 0223218cad92b..0000000000000
Binary files a/docs-v2/public/images/triggers/proto.png and /dev/null differ
diff --git a/docs-v2/public/images/triggers/raw_body_url.png b/docs-v2/public/images/triggers/raw_body_url.png
deleted file mode 100644
index 1b4eafb8454f2..0000000000000
Binary files a/docs-v2/public/images/triggers/raw_body_url.png and /dev/null differ
diff --git a/docs-v2/public/images/triggers/retrieve-large-payload.png b/docs-v2/public/images/triggers/retrieve-large-payload.png
deleted file mode 100644
index a5805a36af075..0000000000000
Binary files a/docs-v2/public/images/triggers/retrieve-large-payload.png and /dev/null differ
diff --git a/docs-v2/public/images/triggers/rss.png b/docs-v2/public/images/triggers/rss.png
deleted file mode 100644
index afb5a779c73b0..0000000000000
Binary files a/docs-v2/public/images/triggers/rss.png and /dev/null differ
diff --git a/docs-v2/public/images/triggers/schedule.png b/docs-v2/public/images/triggers/schedule.png
deleted file mode 100644
index 9bebe9f2e1906..0000000000000
Binary files a/docs-v2/public/images/triggers/schedule.png and /dev/null differ
diff --git a/docs-v2/public/images/triggers/select-a-trigger.png b/docs-v2/public/images/triggers/select-a-trigger.png
deleted file mode 100644
index f44082ed79dd2..0000000000000
Binary files a/docs-v2/public/images/triggers/select-a-trigger.png and /dev/null differ
diff --git a/docs-v2/public/images/triggers/select-an-event.png b/docs-v2/public/images/triggers/select-an-event.png
deleted file mode 100644
index 0baad2f053759..0000000000000
Binary files a/docs-v2/public/images/triggers/select-an-event.png and /dev/null differ
diff --git a/docs-v2/public/images/triggers/select-email-trigger.png b/docs-v2/public/images/triggers/select-email-trigger.png
deleted file mode 100644
index 324edd1085058..0000000000000
Binary files a/docs-v2/public/images/triggers/select-email-trigger.png and /dev/null differ
diff --git a/docs-v2/public/images/triggers/select-http-trigger.png b/docs-v2/public/images/triggers/select-http-trigger.png
deleted file mode 100644
index dda1e2c4f697c..0000000000000
Binary files a/docs-v2/public/images/triggers/select-http-trigger.png and /dev/null differ
diff --git a/docs-v2/public/images/triggers/select-rss-trigger.png b/docs-v2/public/images/triggers/select-rss-trigger.png
deleted file mode 100644
index 530086617ba7f..0000000000000
Binary files a/docs-v2/public/images/triggers/select-rss-trigger.png and /dev/null differ
diff --git a/docs-v2/public/images/triggers/select-schedule-trigger.png b/docs-v2/public/images/triggers/select-schedule-trigger.png
deleted file mode 100644
index 9aca826a4d9c5..0000000000000
Binary files a/docs-v2/public/images/triggers/select-schedule-trigger.png and /dev/null differ
diff --git a/docs-v2/public/images/triggers/send_http_request_action.png b/docs-v2/public/images/triggers/send_http_request_action.png
deleted file mode 100644
index 9db4cd36f2646..0000000000000
Binary files a/docs-v2/public/images/triggers/send_http_request_action.png and /dev/null differ
diff --git a/docs-v2/public/images/triggers/syntax-error.png b/docs-v2/public/images/triggers/syntax-error.png
deleted file mode 100644
index 8557e0d96e796..0000000000000
Binary files a/docs-v2/public/images/triggers/syntax-error.png and /dev/null differ
diff --git a/docs-v2/public/images/triggers/turn-trigger-on.gif b/docs-v2/public/images/triggers/turn-trigger-on.gif
deleted file mode 100644
index f592ad9e44e74..0000000000000
Binary files a/docs-v2/public/images/triggers/turn-trigger-on.gif and /dev/null differ
diff --git a/docs-v2/public/images/workflow-diagram.png b/docs-v2/public/images/workflow-diagram.png
deleted file mode 100644
index 13d863173ee8c..0000000000000
Binary files a/docs-v2/public/images/workflow-diagram.png and /dev/null differ
diff --git a/docs-v2/public/images/workflow-url.png b/docs-v2/public/images/workflow-url.png
deleted file mode 100644
index 6386fadb3a31b..0000000000000
Binary files a/docs-v2/public/images/workflow-url.png and /dev/null differ
diff --git a/docs-v2/public/images/workflows/actions/update-action-button.png b/docs-v2/public/images/workflows/actions/update-action-button.png
deleted file mode 100644
index 5b242f04efd5b..0000000000000
Binary files a/docs-v2/public/images/workflows/actions/update-action-button.png and /dev/null differ
diff --git a/docs-v2/public/images/workflows/default-axios-stack.png b/docs-v2/public/images/workflows/default-axios-stack.png
deleted file mode 100644
index 88035fa157dd0..0000000000000
Binary files a/docs-v2/public/images/workflows/default-axios-stack.png and /dev/null differ
diff --git a/docs-v2/public/images/workflows/delay/delay-step-props.png b/docs-v2/public/images/workflows/delay/delay-step-props.png
deleted file mode 100644
index 423f5bd031136..0000000000000
Binary files a/docs-v2/public/images/workflows/delay/delay-step-props.png and /dev/null differ
diff --git a/docs-v2/public/images/workflows/pipedream-axios-stack.png b/docs-v2/public/images/workflows/pipedream-axios-stack.png
deleted file mode 100644
index 2460c06f49991..0000000000000
Binary files a/docs-v2/public/images/workflows/pipedream-axios-stack.png and /dev/null differ
diff --git a/docs-v2/public/images/workflows/pipedream-axios-success.png b/docs-v2/public/images/workflows/pipedream-axios-success.png
deleted file mode 100644
index 66f64c63ad679..0000000000000
Binary files a/docs-v2/public/images/workflows/pipedream-axios-success.png and /dev/null differ
diff --git a/docs-v2/public/images/workflows/select-an-event.png b/docs-v2/public/images/workflows/select-an-event.png
deleted file mode 100644
index 0baad2f053759..0000000000000
Binary files a/docs-v2/public/images/workflows/select-an-event.png and /dev/null differ
diff --git a/docs-v2/public/images/workflows/sharing/create-share-link.png b/docs-v2/public/images/workflows/sharing/create-share-link.png
deleted file mode 100644
index 6f33800dcefe5..0000000000000
Binary files a/docs-v2/public/images/workflows/sharing/create-share-link.png and /dev/null differ
diff --git a/docs-v2/public/images/workflows/sharing/publish-as-template.png b/docs-v2/public/images/workflows/sharing/publish-as-template.png
deleted file mode 100644
index 55865b90530a6..0000000000000
Binary files a/docs-v2/public/images/workflows/sharing/publish-as-template.png and /dev/null differ
diff --git a/docs-v2/public/images/workflows/sharing/sharing-workflow-button.png b/docs-v2/public/images/workflows/sharing/sharing-workflow-button.png
deleted file mode 100644
index cec5a3ccca0b2..0000000000000
Binary files a/docs-v2/public/images/workflows/sharing/sharing-workflow-button.png and /dev/null differ
diff --git a/docs-v2/public/images/workflows/steps/adding-step-note.gif b/docs-v2/public/images/workflows/steps/adding-step-note.gif
deleted file mode 100644
index 1311366f7bf89..0000000000000
Binary files a/docs-v2/public/images/workflows/steps/adding-step-note.gif and /dev/null differ
diff --git a/docs-v2/public/images/workflows/steps/step-name.png b/docs-v2/public/images/workflows/steps/step-name.png
deleted file mode 100644
index df84a63d5f970..0000000000000
Binary files a/docs-v2/public/images/workflows/steps/step-name.png and /dev/null differ
diff --git a/docs-v2/public/images/workflows/steps/step-notes.png b/docs-v2/public/images/workflows/steps/step-notes.png
deleted file mode 100644
index 86d5cdbd99f71..0000000000000
Binary files a/docs-v2/public/images/workflows/steps/step-notes.png and /dev/null differ
diff --git a/docs-v2/public/images/workflows/triggers/add-multiple-triggers.png b/docs-v2/public/images/workflows/triggers/add-multiple-triggers.png
deleted file mode 100644
index 1c46b2f7c6e6d..0000000000000
Binary files a/docs-v2/public/images/workflows/triggers/add-multiple-triggers.png and /dev/null differ
diff --git a/docs-v2/public/images/workflows/triggers/add-trigger-button.png b/docs-v2/public/images/workflows/triggers/add-trigger-button.png
deleted file mode 100644
index 0d95bb535b2b9..0000000000000
Binary files a/docs-v2/public/images/workflows/triggers/add-trigger-button.png and /dev/null differ
diff --git a/docs-v2/public/images/workflows/triggers/email-trigger.png b/docs-v2/public/images/workflows/triggers/email-trigger.png
deleted file mode 100644
index 79ec9bbb34237..0000000000000
Binary files a/docs-v2/public/images/workflows/triggers/email-trigger.png and /dev/null differ
diff --git a/docs-v2/public/images/workflows/triggers/gcal-triggers.png b/docs-v2/public/images/workflows/triggers/gcal-triggers.png
deleted file mode 100644
index f9d0737824687..0000000000000
Binary files a/docs-v2/public/images/workflows/triggers/gcal-triggers.png and /dev/null differ
diff --git a/docs-v2/public/images/workflows/triggers/http-trigger-url.png b/docs-v2/public/images/workflows/triggers/http-trigger-url.png
deleted file mode 100644
index b3c30b9b82cf8..0000000000000
Binary files a/docs-v2/public/images/workflows/triggers/http-trigger-url.png and /dev/null differ
diff --git a/docs-v2/public/images/workflows/triggers/retrieve-large-payload.png b/docs-v2/public/images/workflows/triggers/retrieve-large-payload.png
deleted file mode 100644
index a5805a36af075..0000000000000
Binary files a/docs-v2/public/images/workflows/triggers/retrieve-large-payload.png and /dev/null differ
diff --git a/docs-v2/public/images/workflows/triggers/select-a-trigger.png b/docs-v2/public/images/workflows/triggers/select-a-trigger.png
deleted file mode 100644
index f44082ed79dd2..0000000000000
Binary files a/docs-v2/public/images/workflows/triggers/select-a-trigger.png and /dev/null differ
diff --git a/docs-v2/public/images/workflows/triggers/select-email-trigger.png b/docs-v2/public/images/workflows/triggers/select-email-trigger.png
deleted file mode 100644
index 324edd1085058..0000000000000
Binary files a/docs-v2/public/images/workflows/triggers/select-email-trigger.png and /dev/null differ
diff --git a/docs-v2/public/images/workflows/triggers/select-http-trigger.png b/docs-v2/public/images/workflows/triggers/select-http-trigger.png
deleted file mode 100644
index dda1e2c4f697c..0000000000000
Binary files a/docs-v2/public/images/workflows/triggers/select-http-trigger.png and /dev/null differ
diff --git a/docs-v2/public/images/workflows/triggers/select-rss-trigger.png b/docs-v2/public/images/workflows/triggers/select-rss-trigger.png
deleted file mode 100644
index 530086617ba7f..0000000000000
Binary files a/docs-v2/public/images/workflows/triggers/select-rss-trigger.png and /dev/null differ
diff --git a/docs-v2/public/images/workflows/triggers/select-schedule-trigger.png b/docs-v2/public/images/workflows/triggers/select-schedule-trigger.png
deleted file mode 100644
index 9aca826a4d9c5..0000000000000
Binary files a/docs-v2/public/images/workflows/triggers/select-schedule-trigger.png and /dev/null differ
diff --git a/docs-v2/styles/globals.css b/docs-v2/styles/globals.css
deleted file mode 100644
index af94805218b0a..0000000000000
--- a/docs-v2/styles/globals.css
+++ /dev/null
@@ -1,60 +0,0 @@
-/* Import custom Prism styles */
-@import './prism-custom.css';
-
-@tailwind base;
-@tailwind components;
-@tailwind utilities;
-
-:not(pre,h1,h2,h3,h4,h5,h6,td) > code::before, :not(pre,h1,h2,h3,h4,h5,h6,td) > code::after {
- content: '`';
-}
-
-pre {
- font-variant-ligatures: none;
-}
-
-:not(pre) > code {
- font-size: calc(1em - 2px) !important;
-}
-
-:root {
- --docsearch-primary-color: hsl(var(--nextra-primary-hue)var(--nextra-primary-saturation)30%) !important;
-}
-
-html.dark {
- --docsearch-text-color: rgba(243,244,246,var(--tw-text-opacity));
- --docsearch-container-background: rgba(10, 10, 10, 0.8);
- --docsearch-modal-background: rgb(17,17,17);
- --docsearch-modal-shadow: inset 1px 1px 0 0 rgb(50, 50, 50),
- 0 3px 8px 0 rgb(3, 3, 3);
- --docsearch-searchbox-background: rgb(10, 10, 10);
- --docsearch-searchbox-focus-background: #000;
- --docsearch-hit-color: rgb(226, 232, 240);
- --docsearch-hit-shadow: none;
- --docsearch-hit-background: rgb(10, 10, 10);
- --docsearch-key-gradient: linear-gradient(
- -26.5deg,
- rgb(99, 99, 99) 0%,
- rgb(69, 69, 69) 100%
- );
- --docsearch-key-shadow: inset 0 -2px 0 0 rgb(64, 64, 64),
- inset 0 0 1px 1px rgb(81, 87, 125), 0 2px 2px 0 rgba(5, 5, 5, 0.3);
- --docsearch-key-pressed-shadow: inset 0 -2px 0 0 #424242, inset 0 0 1px 1px #646464, 0 1px 1px 0 #0505054d;
- --docsearch-footer-background: rgb(41, 41, 41);
- --docsearch-footer-shadow: inset 0 1px 0 0 rgba(89, 89, 89, 0.5),
- 0 -4px 8px 0 rgba(0, 0, 0, 0.2);
- --docsearch-logo-color: rgb(255, 255, 255);
- --docsearch-muted-color: rgb(140, 140, 140);
-}
-
-.DocSearch input.DocSearch-Input:focus-visible {
- box-shadow: none;
-}
-
-.highlightHeaderRowTable th {
- @apply bg-gray-50 dark:bg-gray-800;
-}
-
-.highlightHeaderRowTable td:last-child {
- white-space: nowrap;
-}
\ No newline at end of file
diff --git a/docs-v2/styles/prism-custom.css b/docs-v2/styles/prism-custom.css
deleted file mode 100644
index 1c0e818511def..0000000000000
--- a/docs-v2/styles/prism-custom.css
+++ /dev/null
@@ -1,158 +0,0 @@
-/* Custom Prism styles for code blocks */
-
-code[class*="language-"],
-pre[class*="language-"] {
- color: #2a2a2a;
- background: none;
- font-family: Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace;
- text-align: left;
- white-space: pre;
- word-spacing: normal;
- word-break: normal;
- word-wrap: normal;
- line-height: 1.5;
- -moz-tab-size: 4;
- -o-tab-size: 4;
- tab-size: 4;
- -webkit-hyphens: none;
- -moz-hyphens: none;
- -ms-hyphens: none;
- hyphens: none;
- text-shadow: none !important;
-}
-
-/* Dark mode overrides */
-html.dark code[class*="language-"],
-html.dark pre[class*="language-"] {
- color: #e0e0e0;
- background: none;
- text-shadow: none !important;
-}
-
-.token.comment,
-.token.prolog,
-.token.doctype,
-.token.cdata {
- color: #708090;
-}
-
-.token.punctuation {
- color: #999;
-}
-
-.token.namespace {
- opacity: 0.7;
-}
-
-.token.property,
-.token.tag,
-.token.boolean,
-.token.number,
-.token.constant,
-.token.symbol,
-.token.deleted {
- color: #905;
-}
-
-.token.selector,
-.token.attr-name,
-.token.string,
-.token.char,
-.token.builtin,
-.token.inserted {
- color: #690;
-}
-
-.token.operator,
-.token.entity,
-.token.url,
-.language-css .token.string,
-.style .token.string {
- color: #9a6e3a;
-}
-
-.token.atrule,
-.token.attr-value,
-.token.keyword {
- color: #07a;
-}
-
-.token.function,
-.token.class-name {
- color: #DD4A68;
-}
-
-.token.regex,
-.token.important,
-.token.variable {
- color: #e90;
-}
-
-/* Dark mode token styles */
-html.dark .token.comment,
-html.dark .token.prolog,
-html.dark .token.doctype,
-html.dark .token.cdata {
- color: #8b9cb3;
-}
-
-html.dark .token.punctuation {
- color: #bbb;
-}
-
-html.dark .token.property,
-html.dark .token.tag,
-html.dark .token.boolean,
-html.dark .token.number,
-html.dark .token.constant,
-html.dark .token.symbol,
-html.dark .token.deleted {
- color: #f76d82;
-}
-
-html.dark .token.selector,
-html.dark .token.attr-name,
-html.dark .token.string,
-html.dark .token.char,
-html.dark .token.builtin,
-html.dark .token.inserted {
- color: #a5d6a7;
-}
-
-html.dark .token.operator,
-html.dark .token.entity,
-html.dark .token.url,
-html.dark .language-css .token.string,
-html.dark .style .token.string {
- color: #e6c07b;
-}
-
-html.dark .token.atrule,
-html.dark .token.attr-value,
-html.dark .token.keyword {
- color: #61afef;
-}
-
-html.dark .token.function,
-html.dark .token.class-name {
- color: #f06292;
-}
-
-html.dark .token.regex,
-html.dark .token.important,
-html.dark .token.variable {
- color: #ffb74d;
-}
-
-.token.important,
-.token.bold {
- font-weight: bold;
-}
-
-.token.italic {
- font-style: italic;
-}
-
-.token.entity {
- cursor: help;
-}
\ No newline at end of file
diff --git a/docs-v2/tailwind.config.js b/docs-v2/tailwind.config.js
deleted file mode 100644
index b47ef771d5786..0000000000000
--- a/docs-v2/tailwind.config.js
+++ /dev/null
@@ -1,17 +0,0 @@
-/** @type {import('tailwindcss').Config} */
-module.exports = {
- content: [
- "./app/**/*.{js,ts,jsx,tsx,mdx}",
- "./pages/**/*.{js,ts,jsx,tsx,mdx}",
- "./components/**/*.{js,ts,jsx,tsx,mdx}",
- ],
- darkMode: "class",
- theme: {
- extend: {
- textDecorationColor: {
- brand: "#34D28B",
- },
- },
- },
- plugins: [],
-};
diff --git a/docs-v2/theme.config.tsx b/docs-v2/theme.config.tsx
deleted file mode 100644
index ab02f0f801d1d..0000000000000
--- a/docs-v2/theme.config.tsx
+++ /dev/null
@@ -1,76 +0,0 @@
-import React from "react";
-import { useRouter } from "next/router";
-import {
- DocsThemeConfig, useConfig,
-} from "nextra-theme-docs";
-
-import PipedreamLink from "./components/PipedreamLink";
-import PipedreamTextLogo from "./components/PipedreamTextLogo";
-import SlackLogo from "./components/SlackLogo";
-import DocSearch from "./components/DocSearch";
-
-const config: DocsThemeConfig = {
- head: function Head() {
- const router = useRouter()
- const { title } = useConfig()
-
- return (
- <>
- {`${title} — Pipedream`}
-
- {router && }
-
-
- >
- )
- },
- // Custom components that replace the default MDX components
- components: {
- "a": PipedreamLink,
- },
- logo: PipedreamTextLogo,
- logoLink: "https://pipedream.com",
- project: {
- link: "https://github.com/PipedreamHQ/pipedream",
- },
- chat: {
- link: "https://pipedream.com/support",
- icon: SlackLogo,
- },
- docsRepositoryBase: "https://github.com/PipedreamHQ/pipedream/blob/master/docs-v2",
- footer: {
- content: (
-
- Pipedream, Inc. {new Date().getFullYear()} {" "}
-
- ),
- },
- color: {
- hue: 153, // Pipedream green
- saturation: 100,
- },
- feedback: {
- content: null, // By default this showed a Discord support icon, this was the recommended way to disable it
- },
- sidebar: {
- autoCollapse: true,
- defaultMenuCollapseLevel: 1,
- },
- search: {
- component: DocSearch,
- },
- // We can add banners to the docs for product announcements
- // banner: {
- // key: "announcement-key", // Used for dismissible state in localStorage
- // dismissible: true, // Makes the banner dismissible
- // content: (
- //
- // Check out the new Pipedream Connect SDK Playground →
- //
- // ),
- // },
-};
-
-export default config;
diff --git a/docs-v2/tsconfig.json b/docs-v2/tsconfig.json
deleted file mode 100644
index 3f0dd8b41afd1..0000000000000
--- a/docs-v2/tsconfig.json
+++ /dev/null
@@ -1,26 +0,0 @@
-{
- "compilerOptions": {
- "target": "es5",
- "lib": ["dom", "dom.iterable", "esnext"],
- "allowJs": true,
- "skipLibCheck": true,
- "strict": false,
- "forceConsistentCasingInFileNames": true,
- "noEmit": true,
- "incremental": true,
- "esModuleInterop": true,
- "module": "esnext",
- "moduleResolution": "node",
- "resolveJsonModule": true,
- "isolatedModules": true,
- "jsx": "preserve",
- "baseUrl": ".",
- "paths": {
- "@/components/*": ["components/*"],
- "@/utils/*": ["utils/*"],
- "@/styles/*": ["styles/*"]
- }
- },
- "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx"],
- "exclude": ["node_modules"]
-}
diff --git a/docs-v2/utils/componentStyles.js b/docs-v2/utils/componentStyles.js
deleted file mode 100644
index a4dd7718304a5..0000000000000
--- a/docs-v2/utils/componentStyles.js
+++ /dev/null
@@ -1,36 +0,0 @@
-// Shared component style utilities for Connect demo components
-
-export const styles = {
- // Container styles
- container: "border border-gray-200 dark:border-gray-700 rounded-md overflow-hidden mt-4",
-
- // Header styles
- header: "bg-gray-100 dark:bg-gray-800 border-b border-gray-200 dark:border-gray-700 px-4 py-2 font-medium text-sm text-gray-800 dark:text-gray-200",
-
- // Form control styles
- label: "font-medium text-sm text-gray-800 dark:text-gray-200",
- select: "ml-2 p-1 border border-gray-300 dark:border-gray-600 rounded text-sm bg-white dark:bg-gray-800 text-gray-800 dark:text-gray-200",
-
- // Button styles
- primaryButton: "px-4 py-2 bg-blue-500 text-white rounded-md hover:bg-blue-600 transition-colors disabled:opacity-50 font-medium text-sm",
- secondaryButton: "px-4 py-2 bg-gray-100 dark:bg-gray-800 border border-gray-300 dark:border-gray-600 text-gray-700 dark:text-gray-300 rounded-md hover:bg-gray-200 dark:hover:bg-gray-700 transition-colors font-medium text-sm inline-flex items-center",
-
- // Code display
- codeDisplay: "p-3 bg-gray-50 dark:bg-gray-900 border border-gray-200 dark:border-gray-700 rounded-md",
- codeText: "text-sm break-all text-gray-800 dark:text-gray-200 font-mono",
-
- // Text styles
- text: {
- normal: "text-sm text-gray-600 dark:text-gray-400",
- muted: "text-sm text-gray-500 dark:text-gray-400",
- small: "text-xs text-gray-500 dark:text-gray-400",
- strong: "text-gray-800 dark:text-gray-200",
- strongMuted: "text-gray-700 dark:text-gray-300",
- },
-
- // Status messages
- statusBox: {
- error: "mt-4 p-3 bg-red-50 dark:bg-red-900/20 border border-red-200 dark:border-red-700 text-red-800 dark:text-red-400 rounded-md",
- success: "mt-4 p-3 bg-green-50 dark:bg-green-900/20 border border-green-200 dark:border-green-700 text-green-800 dark:text-green-400 rounded-md",
- },
-};
diff --git a/docs-v2/utils/icons.ts b/docs-v2/utils/icons.ts
deleted file mode 100644
index f04381caaad60..0000000000000
--- a/docs-v2/utils/icons.ts
+++ /dev/null
@@ -1,32 +0,0 @@
-const icons = {
- nodejs: {
- only_icon:
- "https://res.cloudinary.com/pipedreamin/image/upload/v1646761316/docs/icons/icons8-nodejs_aax6wn.svg",
- with_title:
- "https://res.cloudinary.com/pipedreamin/image/upload/v1646761316/docs/icons/icons8-nodejs_aax6wn.svg",
- },
- python: {
- only_icon:
- "https://res.cloudinary.com/pipedreamin/image/upload/v1646763734/docs/icons/icons8-python_ypgmya.svg",
- with_title:
- "https://res.cloudinary.com/pipedreamin/image/upload/v1647356607/docs/icons/python-logo-generic_k3o5w2.svg",
- },
- go: {
- only_icon:
- "https://res.cloudinary.com/pipedreamin/image/upload/v1646763751/docs/icons/Go-Logo_Blue_zhkchv.svg",
- with_title:
- "https://res.cloudinary.com/pipedreamin/image/upload/v1646763751/docs/icons/Go-Logo_Blue_zhkchv.svg",
- },
- bash: {
- only_icon:
- "https://res.cloudinary.com/pipedreamin/image/upload/v1646763756/docs/icons/full_colored_dark_nllzkl.svg",
- with_title:
- "https://res.cloudinary.com/pipedreamin/image/upload/v1647356698/docs/icons/full_colored_dark_1_-svg_vyfnv7.svg",
- },
- native: {
- only_icon: "https://res.cloudinary.com/pipedreamin/image/upload/v1569526159/icons/pipedream_x6plab.svg",
- with_title: "https://res.cloudinary.com/pipedreamin/image/upload/v1569526159/icons/pipedream_x6plab.svg",
- },
-};
-
-export default icons;
diff --git a/docs-v2/utils/imageLoader.js b/docs-v2/utils/imageLoader.js
deleted file mode 100644
index 274c3820dfe8b..0000000000000
--- a/docs-v2/utils/imageLoader.js
+++ /dev/null
@@ -1,5 +0,0 @@
-export default function myImageLoader({
- src, width, quality,
-}) {
- return `https://pipedream.com${src}?w=${width}&q=${quality || 75}`;
-}
diff --git a/docs-v2/validate-mdx-links.mjs b/docs-v2/validate-mdx-links.mjs
deleted file mode 100755
index 411d3242059a4..0000000000000
--- a/docs-v2/validate-mdx-links.mjs
+++ /dev/null
@@ -1,309 +0,0 @@
-import { promises as fs } from "fs";
-import {
- dirname, join, relative, basename,
-} from "path";
-import chalk from "chalk";
-
-// Convert header text to anchor link format
-function headerToAnchor(headerText) {
- // First remove any Markdown links - replace [text](url) with just text
- const textWithoutLinks = headerText.replace(/\[([^\]]+)\]\([^)]+\)/g, "$1");
-
- return textWithoutLinks
- .toLowerCase()
- // Remove backticks which are just formatting
- .replace(/`/g, "")
- // Keep underscores but remove other special characters
- .replace(/[^a-z0-9_\s-]/g, "")
- .trim()
- // Convert spaces to hyphens
- .replace(/\s+/g, "-");
-}
-
-// Convert relative link to absolute path
-function resolveRelativeLink(relativeLink, currentFilePath) {
- // If it's just an anchor link (#something), keep it relative to current file
- if (relativeLink.startsWith("#")) {
- const basePath = "/" + relative("pages", currentFilePath).replace(/\.mdx$/, "");
- return `${basePath}${relativeLink}`;
- }
-
- const dirPath = dirname(currentFilePath);
- const absolutePath = join(dirPath, relativeLink);
- return "/" + relative("pages", absolutePath);
-}
-
-// Normalize path handling
-function normalizePath(path) {
- // Special case: root path
- if (path === "/") return "/";
-
- // Remove trailing slash unless it's the root
- if (path.endsWith("/") && path !== "/") {
- path = path.slice(0, -1);
- }
- return path;
-}
-
-// Find all MDX files recursively
-async function findMdxFiles(dir) {
- const files = await fs.readdir(dir, {
- withFileTypes: true,
- });
- const mdxFiles = [];
-
- for (const file of files) {
- const filePath = join(dir, file.name);
- if (file.isDirectory()) {
- mdxFiles.push(...await findMdxFiles(filePath));
- } else if (file.name.endsWith(".mdx")) {
- mdxFiles.push(filePath);
- }
- }
-
- return mdxFiles;
-}
-
-// Extract links and their line numbers from MDX content
-function extractLinks(content, filePath) {
- const links = [];
- const lines = content.split("\n");
- const linkRegex = /\[([^\]]+)\]\(([^)]+)\)/g;
-
- lines.forEach((line, index) => {
- let match;
- while ((match = linkRegex.exec(line)) !== null) {
- const [
- , , link,
- ] = match;
- // Only process internal links
- if (link.startsWith("/") || link.startsWith("#") || !link.includes("://")) {
- let normalizedLink;
- if (link.startsWith("#")) {
- // For same-file anchors, we'll check both with and without the file path
- const basePath = "/" + relative("pages", filePath).replace(/\.mdx$/, "");
- normalizedLink = `${basePath}${link}`;
- } else {
- normalizedLink = link.startsWith("/")
- ? link
- : resolveRelativeLink(link, filePath);
- }
- links.push({
- originalLink: link,
- link: normalizedLink,
- lineNumber: index + 1,
- });
- }
- }
- });
-
- return links;
-}
-
-// Extract valid anchors from MDX content
-function extractAnchors(content, filePath) {
- const anchors = new Set();
- const lines = content.split("\n");
- const headerRegex = /^#{1,6}\s+(.+)$/;
-
- // Calculate the base path for this file
- const relativePath = relative("pages", filePath);
- const basePath = "/" + relativePath.replace(/\.mdx$/, "");
- const baseDir = dirname(basePath);
-
- // For basePath /core/workflows/code/nodejs.mdx -> /core/workflows/code/nodejs
- const normalizedBasePath = normalizePath(basePath);
- anchors.add(normalizedBasePath.toLowerCase());
-
- // For index files, also add the directory path
- const isIndexFile = basename(filePath) === "index.mdx";
- if (isIndexFile) {
- const dirPath = baseDir === "."
- ? "/"
- : baseDir;
- anchors.add(dirPath.toLowerCase());
- }
-
- // Process all headers in the file
- lines.forEach((line) => {
- const match = line.match(headerRegex);
- if (match) {
- const headerText = match[1].trim();
- const anchor = headerToAnchor(headerText);
-
- // For headers, we need to track:
- // 1. Simple #anchor for same-file references
- anchors.add(`#${anchor}`.toLowerCase());
-
- // 2. Full path versions for cross-file references
- const anchorPaths = [
- `${normalizedBasePath}#${anchor}`,
- `${normalizedBasePath}/#${anchor}`,
- ];
-
- // For index files, also add anchors at the directory level
- if (isIndexFile) {
- const dirPath = baseDir === "."
- ? "/"
- : baseDir;
- anchorPaths.push(
- `${dirPath}#${anchor}`,
- `${dirPath}/#${anchor}`,
- );
- }
-
- // Add all variants to our set of valid anchors
- anchorPaths.forEach((path) => {
- anchors.add(path.toLowerCase());
- });
- }
- });
-
- if (process.env.DEBUG) {
- console.log(`File: ${filePath}`);
- console.log("Valid anchors:", Array.from(anchors));
- }
-
- return anchors;
-}
-
-// Try to find MDX file in direct or index format
-async function findMdxFile(basePath) {
- basePath = normalizePath(basePath);
-
- // Try direct .mdx file first
- const directPath = join("pages", basePath + ".mdx");
- try {
- await fs.access(directPath);
- return directPath;
- } catch (err) {
- // Then try index.mdx
- const indexPath = join("pages", basePath, "index.mdx");
- try {
- await fs.access(indexPath);
- return indexPath;
- } catch (err) {
- return null;
- }
- }
-}
-
-async function main() {
- try {
- const mdxFiles = await findMdxFiles("pages");
- const linkMap = new Map();
- const validAnchors = new Set();
- const fileAnchorsMap = new Map(); // Track anchors by file
-
- // First pass: collect all links and generate valid anchors
- console.log("Processing MDX files...");
- for (const filePath of mdxFiles) {
- const content = await fs.readFile(filePath, "utf8");
-
- // Extract and store links
- const links = extractLinks(content, filePath);
- if (links.length > 0) {
- linkMap.set(filePath, links);
- }
-
- // Extract and store anchors
- const fileAnchors = extractAnchors(content, filePath);
- fileAnchorsMap.set(filePath, fileAnchors);
- for (const anchor of fileAnchors) {
- validAnchors.add(anchor);
- }
- }
-
- // Second pass: validate all links
- let brokenLinksFound = false;
-
- for (const [
- file,
- links,
- ] of linkMap) {
- // Get anchors for the current file
- const currentFileAnchors = fileAnchorsMap.get(file);
-
- for (const {
- originalLink, link, lineNumber,
- } of links) {
- if (originalLink.startsWith("#")) {
- // For same-file anchors, check both the simple #anchor and the full path
- const anchorExists = currentFileAnchors.has(originalLink.toLowerCase());
- if (!anchorExists) {
- brokenLinksFound = true;
- console.log(
- chalk.red("✗"),
- `${chalk.yellow(file)}:${chalk.cyan(lineNumber)}`,
- `Broken link: ${chalk.red(originalLink)} (anchor not found)`,
- );
- }
- continue;
- }
-
- // Split link into path and anchor parts
- const [
- path,
- anchor,
- ] = link.split("#");
- const normalizedPath = normalizePath(path);
-
- // First verify the file exists
- const targetFile = await findMdxFile(normalizedPath);
- if (!targetFile && anchor) {
- brokenLinksFound = true;
- console.log(
- chalk.red("✗"),
- `${chalk.yellow(file)}:${chalk.cyan(lineNumber)}`,
- `Broken link: ${chalk.red(link)} (file not found)`,
- );
- continue;
- }
-
- // Then check anchor if present
- if (anchor) {
- // Generate all possible variants of how this anchor might appear
- const variations = [
- `${normalizedPath}#${anchor}`,
- `${normalizedPath}/#${anchor}`,
- // For index files, also check directory-level anchors
- basename(targetFile) === "index.mdx"
- ? `${dirname(normalizedPath)}#${anchor}`
- : null,
- basename(targetFile) === "index.mdx"
- ? `${dirname(normalizedPath)}/#${anchor}`
- : null,
- ].filter(Boolean).map((v) => v.toLowerCase());
-
- if (process.env.DEBUG) {
- console.log("\nChecking link:", link);
- console.log("Checking variations:", variations);
- console.log("Against anchors:", Array.from(validAnchors));
- }
-
- const anchorExists = variations.some((v) => validAnchors.has(v));
-
- if (!anchorExists) {
- brokenLinksFound = true;
- console.log(
- chalk.red("✗"),
- `${chalk.yellow(file)}:${chalk.cyan(lineNumber)}`,
- `Broken link: ${chalk.red(originalLink)} (anchor not found)`,
- );
- }
- }
- }
- }
-
- if (brokenLinksFound) {
- console.log(chalk.red("\n✗ Broken links found!"));
- process.exit(1);
- }
- console.log(chalk.green("\n✓ All links are valid!"));
- } catch (error) {
- console.error(chalk.red("Error:"), error.message);
- process.exit(1);
- }
-}
-
-main();
diff --git a/docs-v2/vercel.json b/docs-v2/vercel.json
deleted file mode 100644
index e58f7232f38f8..0000000000000
--- a/docs-v2/vercel.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "installCommand": "npx pnpm@9.14.2 install --frozen-lockfile=false",
- "buildCommand": "npx pnpm@9.14.2 run build"
-}
diff --git a/docs-v2/yarn.lock b/docs-v2/yarn.lock
deleted file mode 100644
index 68425151edd5d..0000000000000
--- a/docs-v2/yarn.lock
+++ /dev/null
@@ -1,6429 +0,0 @@
-# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
-# yarn lockfile v1
-
-
-"@algolia/autocomplete-core@1.17.7":
- version "1.17.7"
- resolved "https://registry.npmjs.org/@algolia/autocomplete-core/-/autocomplete-core-1.17.7.tgz"
- integrity sha512-BjiPOW6ks90UKl7TwMv7oNQMnzU+t/wk9mgIDi6b1tXpUek7MW0lbNOUHpvam9pe3lVCf4xPFT+lK7s+e+fs7Q==
- dependencies:
- "@algolia/autocomplete-plugin-algolia-insights" "1.17.7"
- "@algolia/autocomplete-shared" "1.17.7"
-
-"@algolia/autocomplete-plugin-algolia-insights@1.17.7":
- version "1.17.7"
- resolved "https://registry.npmjs.org/@algolia/autocomplete-plugin-algolia-insights/-/autocomplete-plugin-algolia-insights-1.17.7.tgz"
- integrity sha512-Jca5Ude6yUOuyzjnz57og7Et3aXjbwCSDf/8onLHSQgw1qW3ALl9mrMWaXb5FmPVkV3EtkD2F/+NkT6VHyPu9A==
- dependencies:
- "@algolia/autocomplete-shared" "1.17.7"
-
-"@algolia/autocomplete-preset-algolia@1.17.7":
- version "1.17.7"
- resolved "https://registry.npmjs.org/@algolia/autocomplete-preset-algolia/-/autocomplete-preset-algolia-1.17.7.tgz"
- integrity sha512-ggOQ950+nwbWROq2MOCIL71RE0DdQZsceqrg32UqnhDz8FlO9rL8ONHNsI2R1MH0tkgVIDKI/D0sMiUchsFdWA==
- dependencies:
- "@algolia/autocomplete-shared" "1.17.7"
-
-"@algolia/autocomplete-shared@1.17.7":
- version "1.17.7"
- resolved "https://registry.npmjs.org/@algolia/autocomplete-shared/-/autocomplete-shared-1.17.7.tgz"
- integrity sha512-o/1Vurr42U/qskRSuhBH+VKxMvkkUVTLU6WZQr+L5lGZZLYWyhdzWjW0iGXY7EkwRTjBqvN2EsR81yCTGV/kmg==
-
-"@algolia/client-abtesting@5.23.2":
- version "5.23.2"
- resolved "https://registry.npmjs.org/@algolia/client-abtesting/-/client-abtesting-5.23.2.tgz"
- integrity sha512-EudQGeYEzviwqPH8WoqP5VTQssE/PW6sEdL0zzOyKt2bWnWoUp5Rnm67sCbxYDR44JpUchbkul0PfWrSYsBPjQ==
- dependencies:
- "@algolia/client-common" "5.23.2"
- "@algolia/requester-browser-xhr" "5.23.2"
- "@algolia/requester-fetch" "5.23.2"
- "@algolia/requester-node-http" "5.23.2"
-
-"@algolia/client-analytics@5.23.2":
- version "5.23.2"
- resolved "https://registry.npmjs.org/@algolia/client-analytics/-/client-analytics-5.23.2.tgz"
- integrity sha512-zmJrkZqWFu+ft+VRcttZZJhw5ElkhBtOArRzQOu9sRnrSSodBOdPRhAfvu8tG93Hv67wh5qQaTBwLxM58AxuMg==
- dependencies:
- "@algolia/client-common" "5.23.2"
- "@algolia/requester-browser-xhr" "5.23.2"
- "@algolia/requester-fetch" "5.23.2"
- "@algolia/requester-node-http" "5.23.2"
-
-"@algolia/client-common@5.23.2":
- version "5.23.2"
- resolved "https://registry.npmjs.org/@algolia/client-common/-/client-common-5.23.2.tgz"
- integrity sha512-xaE6o4BMdqYBe0iB7JjX6G9/Qeqx6TSs9T4d6VJ0JHPsEyklSwIbKRiomPeYD7vzt2P4t45Io6QBhifOUP+0qg==
-
-"@algolia/client-insights@5.23.2":
- version "5.23.2"
- resolved "https://registry.npmjs.org/@algolia/client-insights/-/client-insights-5.23.2.tgz"
- integrity sha512-F85hpMszbr5ZGt8gFdl7WOugELRF4z3R1nD9n3t7PZ/2alV7IR75UQY8/jMQDwij/lrnVaKbLeIvKKy6K7ncZw==
- dependencies:
- "@algolia/client-common" "5.23.2"
- "@algolia/requester-browser-xhr" "5.23.2"
- "@algolia/requester-fetch" "5.23.2"
- "@algolia/requester-node-http" "5.23.2"
-
-"@algolia/client-personalization@5.23.2":
- version "5.23.2"
- resolved "https://registry.npmjs.org/@algolia/client-personalization/-/client-personalization-5.23.2.tgz"
- integrity sha512-TuGaGKiQvQqFNR4c3Vdl+JBe6dkEPmRzVyIdWLrurOPEmFmVCKRxtSnLr0TVFl6de/JfDAXuchvtvLHFxv9P2A==
- dependencies:
- "@algolia/client-common" "5.23.2"
- "@algolia/requester-browser-xhr" "5.23.2"
- "@algolia/requester-fetch" "5.23.2"
- "@algolia/requester-node-http" "5.23.2"
-
-"@algolia/client-query-suggestions@5.23.2":
- version "5.23.2"
- resolved "https://registry.npmjs.org/@algolia/client-query-suggestions/-/client-query-suggestions-5.23.2.tgz"
- integrity sha512-fg2tZf7Sf51Icjfrea0dnfbfwlJ7kXMcRsWSJN3DZhEi/Y4mMmK9L0Cq8sby6HDzxy5T8xEWNWC3TMx5FvrJ6w==
- dependencies:
- "@algolia/client-common" "5.23.2"
- "@algolia/requester-browser-xhr" "5.23.2"
- "@algolia/requester-fetch" "5.23.2"
- "@algolia/requester-node-http" "5.23.2"
-
-"@algolia/client-search@>= 4.9.1 < 6", "@algolia/client-search@5.23.2":
- version "5.23.2"
- resolved "https://registry.npmjs.org/@algolia/client-search/-/client-search-5.23.2.tgz"
- integrity sha512-XiTjt0qgsJk9OqvDpMwTgUaPAYNSQcMILRfSYiorgiyc71yYM7Lq1vRSVxhB0m51mrViWj4rIR6kSiJRXebqvQ==
- dependencies:
- "@algolia/client-common" "5.23.2"
- "@algolia/requester-browser-xhr" "5.23.2"
- "@algolia/requester-fetch" "5.23.2"
- "@algolia/requester-node-http" "5.23.2"
-
-"@algolia/ingestion@1.23.2":
- version "1.23.2"
- resolved "https://registry.npmjs.org/@algolia/ingestion/-/ingestion-1.23.2.tgz"
- integrity sha512-7ClIghvUFZTomBipD8Kor9Z5llcAM3lHUBG3VFOvUsOxOJcaMMONlBXyoFDfI1na+u14lVaGehY2oIEfY1eB0w==
- dependencies:
- "@algolia/client-common" "5.23.2"
- "@algolia/requester-browser-xhr" "5.23.2"
- "@algolia/requester-fetch" "5.23.2"
- "@algolia/requester-node-http" "5.23.2"
-
-"@algolia/monitoring@1.23.2":
- version "1.23.2"
- resolved "https://registry.npmjs.org/@algolia/monitoring/-/monitoring-1.23.2.tgz"
- integrity sha512-kF7KKd0iIIlaD70flFS+8+DNxRvIzrG9A22iWG5LDX225Kl6pITroq+qIUweqqyyoqJBYuIXKZGDGtnahEwQxw==
- dependencies:
- "@algolia/client-common" "5.23.2"
- "@algolia/requester-browser-xhr" "5.23.2"
- "@algolia/requester-fetch" "5.23.2"
- "@algolia/requester-node-http" "5.23.2"
-
-"@algolia/recommend@5.23.2":
- version "5.23.2"
- resolved "https://registry.npmjs.org/@algolia/recommend/-/recommend-5.23.2.tgz"
- integrity sha512-nAgS2O5ww8J4fgW6GAiybAdr0uH7MV74srPdx51cPJRpQBEge4WnYBaOWx1/a53qI0xwNtQudnEyBGUzsSYaAw==
- dependencies:
- "@algolia/client-common" "5.23.2"
- "@algolia/requester-browser-xhr" "5.23.2"
- "@algolia/requester-fetch" "5.23.2"
- "@algolia/requester-node-http" "5.23.2"
-
-"@algolia/requester-browser-xhr@5.23.2":
- version "5.23.2"
- resolved "https://registry.npmjs.org/@algolia/requester-browser-xhr/-/requester-browser-xhr-5.23.2.tgz"
- integrity sha512-yw6IzgQcwr4cZuoQCEoQui9G0rhVRGCyhPhW+gmrXe6oVr4qB50FV6mWGLA170+iqGVjPn/DVuOhExjBzcViTQ==
- dependencies:
- "@algolia/client-common" "5.23.2"
-
-"@algolia/requester-fetch@5.23.2":
- version "5.23.2"
- resolved "https://registry.npmjs.org/@algolia/requester-fetch/-/requester-fetch-5.23.2.tgz"
- integrity sha512-8rmSybTwIqmGx3P0qkOEUkkyeIewglaKq6yUnxnVkBJbd4USfIZsw9cME1YUEHeZI7aOhTQg9QteUHSKXclF5A==
- dependencies:
- "@algolia/client-common" "5.23.2"
-
-"@algolia/requester-node-http@5.23.2":
- version "5.23.2"
- resolved "https://registry.npmjs.org/@algolia/requester-node-http/-/requester-node-http-5.23.2.tgz"
- integrity sha512-IHpUiW3d3oVE5tCYqQN7X71/EbXI7f8WxU85eWW1UYEWEknqW3csdGctyIW7+qMHFfxeDymI1Wln/gGHHIXLIw==
- dependencies:
- "@algolia/client-common" "5.23.2"
-
-"@alloc/quick-lru@^5.2.0":
- version "5.2.0"
- resolved "https://registry.npmjs.org/@alloc/quick-lru/-/quick-lru-5.2.0.tgz"
- integrity sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==
-
-"@ampproject/remapping@^2.2.0":
- version "2.3.0"
- resolved "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz"
- integrity sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==
- dependencies:
- "@jridgewell/gen-mapping" "^0.3.5"
- "@jridgewell/trace-mapping" "^0.3.24"
-
-"@antfu/install-pkg@^1.0.0":
- version "1.0.0"
- resolved "https://registry.npmjs.org/@antfu/install-pkg/-/install-pkg-1.0.0.tgz"
- integrity sha512-xvX6P/lo1B3ej0OsaErAjqgFYzYVcJpamjLAFLYh9vRJngBrMoUG7aVnrGTeqM7yxbyTD5p3F2+0/QUEh8Vzhw==
- dependencies:
- package-manager-detector "^0.2.8"
- tinyexec "^0.3.2"
-
-"@antfu/utils@^8.1.0":
- version "8.1.1"
- resolved "https://registry.npmjs.org/@antfu/utils/-/utils-8.1.1.tgz"
- integrity sha512-Mex9nXf9vR6AhcXmMrlz/HVgYYZpVGJ6YlPgwl7UnaFpnshXs6EK/oa5Gpf3CzENMjkvEx2tQtntGnb7UtSTOQ==
-
-"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.12.13", "@babel/code-frame@^7.26.2":
- version "7.26.2"
- resolved "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.26.2.tgz"
- integrity sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==
- dependencies:
- "@babel/helper-validator-identifier" "^7.25.9"
- js-tokens "^4.0.0"
- picocolors "^1.0.0"
-
-"@babel/compat-data@^7.26.8":
- version "7.26.8"
- resolved "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.26.8.tgz"
- integrity sha512-oH5UPLMWR3L2wEFLnFJ1TZXqHufiTKAiLfqw5zkhS4dKXLJ10yVztfil/twG8EDTA4F/tvVNw9nOl4ZMslB8rQ==
-
-"@babel/core@^7.0.0", "@babel/core@^7.0.0-0", "@babel/core@^7.11.6", "@babel/core@^7.12.3", "@babel/core@^7.23.9", "@babel/core@^7.8.0":
- version "7.26.10"
- resolved "https://registry.npmjs.org/@babel/core/-/core-7.26.10.tgz"
- integrity sha512-vMqyb7XCDMPvJFFOaT9kxtiRh42GwlZEg1/uIgtZshS5a/8OaduUfCi7kynKgc3Tw/6Uo2D+db9qBttghhmxwQ==
- dependencies:
- "@ampproject/remapping" "^2.2.0"
- "@babel/code-frame" "^7.26.2"
- "@babel/generator" "^7.26.10"
- "@babel/helper-compilation-targets" "^7.26.5"
- "@babel/helper-module-transforms" "^7.26.0"
- "@babel/helpers" "^7.26.10"
- "@babel/parser" "^7.26.10"
- "@babel/template" "^7.26.9"
- "@babel/traverse" "^7.26.10"
- "@babel/types" "^7.26.10"
- convert-source-map "^2.0.0"
- debug "^4.1.0"
- gensync "^1.0.0-beta.2"
- json5 "^2.2.3"
- semver "^6.3.1"
-
-"@babel/generator@^7.26.10", "@babel/generator@^7.27.0", "@babel/generator@^7.7.2":
- version "7.27.0"
- resolved "https://registry.npmjs.org/@babel/generator/-/generator-7.27.0.tgz"
- integrity sha512-VybsKvpiN1gU1sdMZIp7FcqphVVKEwcuj02x73uvcHE0PTihx1nlBcowYWhDwjpoAXRv43+gDzyggGnn1XZhVw==
- dependencies:
- "@babel/parser" "^7.27.0"
- "@babel/types" "^7.27.0"
- "@jridgewell/gen-mapping" "^0.3.5"
- "@jridgewell/trace-mapping" "^0.3.25"
- jsesc "^3.0.2"
-
-"@babel/helper-compilation-targets@^7.26.5":
- version "7.27.0"
- resolved "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.27.0.tgz"
- integrity sha512-LVk7fbXml0H2xH34dFzKQ7TDZ2G4/rVTOrq9V+icbbadjbVxxeFeDsNHv2SrZeWoA+6ZiTyWYWtScEIW07EAcA==
- dependencies:
- "@babel/compat-data" "^7.26.8"
- "@babel/helper-validator-option" "^7.25.9"
- browserslist "^4.24.0"
- lru-cache "^5.1.1"
- semver "^6.3.1"
-
-"@babel/helper-module-imports@^7.25.9":
- version "7.25.9"
- resolved "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.25.9.tgz"
- integrity sha512-tnUA4RsrmflIM6W6RFTLFSXITtl0wKjgpnLgXyowocVPrbYrLUXSBXDgTs8BlbmIzIdlBySRQjINYs2BAkiLtw==
- dependencies:
- "@babel/traverse" "^7.25.9"
- "@babel/types" "^7.25.9"
-
-"@babel/helper-module-transforms@^7.26.0":
- version "7.26.0"
- resolved "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.26.0.tgz"
- integrity sha512-xO+xu6B5K2czEnQye6BHA7DolFFmS3LB7stHZFaOLb1pAwO1HWLS8fXA+eh0A2yIvltPVmx3eNNDBJA2SLHXFw==
- dependencies:
- "@babel/helper-module-imports" "^7.25.9"
- "@babel/helper-validator-identifier" "^7.25.9"
- "@babel/traverse" "^7.25.9"
-
-"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.25.9", "@babel/helper-plugin-utils@^7.8.0":
- version "7.26.5"
- resolved "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.26.5.tgz"
- integrity sha512-RS+jZcRdZdRFzMyr+wcsaqOmld1/EqTghfaBGQQd/WnRdzdlvSZ//kF7U8VQTxf1ynZ4cjUcYgjVGx13ewNPMg==
-
-"@babel/helper-string-parser@^7.25.9":
- version "7.25.9"
- resolved "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.25.9.tgz"
- integrity sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==
-
-"@babel/helper-validator-identifier@^7.25.9":
- version "7.25.9"
- resolved "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.9.tgz"
- integrity sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==
-
-"@babel/helper-validator-option@^7.25.9":
- version "7.25.9"
- resolved "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.25.9.tgz"
- integrity sha512-e/zv1co8pp55dNdEcCynfj9X7nyUKUXoUEwfXqaZt0omVOmDe9oOTdKStH4GmAw6zxMFs50ZayuMfHDKlO7Tfw==
-
-"@babel/helpers@^7.26.10":
- version "7.27.0"
- resolved "https://registry.npmjs.org/@babel/helpers/-/helpers-7.27.0.tgz"
- integrity sha512-U5eyP/CTFPuNE3qk+WZMxFkp/4zUzdceQlfzf7DdGdhp+Fezd7HD+i8Y24ZuTMKX3wQBld449jijbGq6OdGNQg==
- dependencies:
- "@babel/template" "^7.27.0"
- "@babel/types" "^7.27.0"
-
-"@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.20.7", "@babel/parser@^7.23.9", "@babel/parser@^7.26.10", "@babel/parser@^7.27.0":
- version "7.27.0"
- resolved "https://registry.npmjs.org/@babel/parser/-/parser-7.27.0.tgz"
- integrity sha512-iaepho73/2Pz7w2eMS0Q5f83+0RKI7i4xmiYeBmDzfRVbQtTOG7Ts0S4HzJVsTMGI9keU8rNfuZr8DKfSt7Yyg==
- dependencies:
- "@babel/types" "^7.27.0"
-
-"@babel/plugin-syntax-async-generators@^7.8.4":
- version "7.8.4"
- resolved "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz"
- integrity sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==
- dependencies:
- "@babel/helper-plugin-utils" "^7.8.0"
-
-"@babel/plugin-syntax-bigint@^7.8.3":
- version "7.8.3"
- resolved "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz"
- integrity sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==
- dependencies:
- "@babel/helper-plugin-utils" "^7.8.0"
-
-"@babel/plugin-syntax-class-properties@^7.12.13":
- version "7.12.13"
- resolved "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz"
- integrity sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==
- dependencies:
- "@babel/helper-plugin-utils" "^7.12.13"
-
-"@babel/plugin-syntax-class-static-block@^7.14.5":
- version "7.14.5"
- resolved "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz"
- integrity sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==
- dependencies:
- "@babel/helper-plugin-utils" "^7.14.5"
-
-"@babel/plugin-syntax-import-attributes@^7.24.7":
- version "7.26.0"
- resolved "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.26.0.tgz"
- integrity sha512-e2dttdsJ1ZTpi3B9UYGLw41hifAubg19AtCu/2I/F1QNVclOBr1dYpTdmdyZ84Xiz43BS/tCUkMAZNLv12Pi+A==
- dependencies:
- "@babel/helper-plugin-utils" "^7.25.9"
-
-"@babel/plugin-syntax-import-meta@^7.10.4":
- version "7.10.4"
- resolved "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz"
- integrity sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==
- dependencies:
- "@babel/helper-plugin-utils" "^7.10.4"
-
-"@babel/plugin-syntax-json-strings@^7.8.3":
- version "7.8.3"
- resolved "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz"
- integrity sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==
- dependencies:
- "@babel/helper-plugin-utils" "^7.8.0"
-
-"@babel/plugin-syntax-jsx@^7.7.2":
- version "7.25.9"
- resolved "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.25.9.tgz"
- integrity sha512-ld6oezHQMZsZfp6pWtbjaNDF2tiiCYYDqQszHt5VV437lewP9aSi2Of99CK0D0XB21k7FLgnLcmQKyKzynfeAA==
- dependencies:
- "@babel/helper-plugin-utils" "^7.25.9"
-
-"@babel/plugin-syntax-logical-assignment-operators@^7.10.4":
- version "7.10.4"
- resolved "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz"
- integrity sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==
- dependencies:
- "@babel/helper-plugin-utils" "^7.10.4"
-
-"@babel/plugin-syntax-nullish-coalescing-operator@^7.8.3":
- version "7.8.3"
- resolved "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz"
- integrity sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==
- dependencies:
- "@babel/helper-plugin-utils" "^7.8.0"
-
-"@babel/plugin-syntax-numeric-separator@^7.10.4":
- version "7.10.4"
- resolved "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz"
- integrity sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==
- dependencies:
- "@babel/helper-plugin-utils" "^7.10.4"
-
-"@babel/plugin-syntax-object-rest-spread@^7.8.3":
- version "7.8.3"
- resolved "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz"
- integrity sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==
- dependencies:
- "@babel/helper-plugin-utils" "^7.8.0"
-
-"@babel/plugin-syntax-optional-catch-binding@^7.8.3":
- version "7.8.3"
- resolved "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz"
- integrity sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==
- dependencies:
- "@babel/helper-plugin-utils" "^7.8.0"
-
-"@babel/plugin-syntax-optional-chaining@^7.8.3":
- version "7.8.3"
- resolved "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz"
- integrity sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==
- dependencies:
- "@babel/helper-plugin-utils" "^7.8.0"
-
-"@babel/plugin-syntax-private-property-in-object@^7.14.5":
- version "7.14.5"
- resolved "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz"
- integrity sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==
- dependencies:
- "@babel/helper-plugin-utils" "^7.14.5"
-
-"@babel/plugin-syntax-top-level-await@^7.14.5":
- version "7.14.5"
- resolved "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz"
- integrity sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==
- dependencies:
- "@babel/helper-plugin-utils" "^7.14.5"
-
-"@babel/plugin-syntax-typescript@^7.7.2":
- version "7.25.9"
- resolved "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.25.9.tgz"
- integrity sha512-hjMgRy5hb8uJJjUcdWunWVcoi9bGpJp8p5Ol1229PoN6aytsLwNMgmdftO23wnCLMfVmTwZDWMPNq/D1SY60JQ==
- dependencies:
- "@babel/helper-plugin-utils" "^7.25.9"
-
-"@babel/template@^7.26.9", "@babel/template@^7.27.0", "@babel/template@^7.3.3":
- version "7.27.0"
- resolved "https://registry.npmjs.org/@babel/template/-/template-7.27.0.tgz"
- integrity sha512-2ncevenBqXI6qRMukPlXwHKHchC7RyMuu4xv5JBXRfOGVcTy1mXCD12qrp7Jsoxll1EV3+9sE4GugBVRjT2jFA==
- dependencies:
- "@babel/code-frame" "^7.26.2"
- "@babel/parser" "^7.27.0"
- "@babel/types" "^7.27.0"
-
-"@babel/traverse@^7.25.9", "@babel/traverse@^7.26.10":
- version "7.27.0"
- resolved "https://registry.npmjs.org/@babel/traverse/-/traverse-7.27.0.tgz"
- integrity sha512-19lYZFzYVQkkHkl4Cy4WrAVcqBkgvV2YM2TU3xG6DIwO7O3ecbDPfW3yM3bjAGcqcQHi+CCtjMR3dIEHxsd6bA==
- dependencies:
- "@babel/code-frame" "^7.26.2"
- "@babel/generator" "^7.27.0"
- "@babel/parser" "^7.27.0"
- "@babel/template" "^7.27.0"
- "@babel/types" "^7.27.0"
- debug "^4.3.1"
- globals "^11.1.0"
-
-"@babel/types@^7.0.0", "@babel/types@^7.20.7", "@babel/types@^7.25.9", "@babel/types@^7.26.10", "@babel/types@^7.27.0", "@babel/types@^7.3.3":
- version "7.27.0"
- resolved "https://registry.npmjs.org/@babel/types/-/types-7.27.0.tgz"
- integrity sha512-H45s8fVLYjbhFH62dIJ3WtmJ6RSPt/3DRO0ZcT2SUiYiQyz3BLVb9ADEnLl91m74aQPS3AzzeajZHYOalWe3bg==
- dependencies:
- "@babel/helper-string-parser" "^7.25.9"
- "@babel/helper-validator-identifier" "^7.25.9"
-
-"@bcoe/v8-coverage@^0.2.3":
- version "0.2.3"
- resolved "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz"
- integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==
-
-"@braintree/sanitize-url@^7.0.4":
- version "7.1.1"
- resolved "https://registry.npmjs.org/@braintree/sanitize-url/-/sanitize-url-7.1.1.tgz"
- integrity sha512-i1L7noDNxtFyL5DmZafWy1wRVhGehQmzZaz1HiN5e7iylJMSZR7ekOV7NsIqa5qBldlLrsKv4HbgFUVlQrz8Mw==
-
-"@chevrotain/cst-dts-gen@11.0.3":
- version "11.0.3"
- resolved "https://registry.npmjs.org/@chevrotain/cst-dts-gen/-/cst-dts-gen-11.0.3.tgz"
- integrity sha512-BvIKpRLeS/8UbfxXxgC33xOumsacaeCKAjAeLyOn7Pcp95HiRbrpl14S+9vaZLolnbssPIUuiUd8IvgkRyt6NQ==
- dependencies:
- "@chevrotain/gast" "11.0.3"
- "@chevrotain/types" "11.0.3"
- lodash-es "4.17.21"
-
-"@chevrotain/gast@11.0.3":
- version "11.0.3"
- resolved "https://registry.npmjs.org/@chevrotain/gast/-/gast-11.0.3.tgz"
- integrity sha512-+qNfcoNk70PyS/uxmj3li5NiECO+2YKZZQMbmjTqRI3Qchu8Hig/Q9vgkHpI3alNjr7M+a2St5pw5w5F6NL5/Q==
- dependencies:
- "@chevrotain/types" "11.0.3"
- lodash-es "4.17.21"
-
-"@chevrotain/regexp-to-ast@11.0.3":
- version "11.0.3"
- resolved "https://registry.npmjs.org/@chevrotain/regexp-to-ast/-/regexp-to-ast-11.0.3.tgz"
- integrity sha512-1fMHaBZxLFvWI067AVbGJav1eRY7N8DDvYCTwGBiE/ytKBgP8azTdgyrKyWZ9Mfh09eHWb5PgTSO8wi7U824RA==
-
-"@chevrotain/types@11.0.3":
- version "11.0.3"
- resolved "https://registry.npmjs.org/@chevrotain/types/-/types-11.0.3.tgz"
- integrity sha512-gsiM3G8b58kZC2HaWR50gu6Y1440cHiJ+i3JUvcp/35JchYejb2+5MVeJK0iKThYpAa/P2PYFV4hoi44HD+aHQ==
-
-"@chevrotain/utils@11.0.3":
- version "11.0.3"
- resolved "https://registry.npmjs.org/@chevrotain/utils/-/utils-11.0.3.tgz"
- integrity sha512-YslZMgtJUyuMbZ+aKvfF3x1f5liK4mWNxghFRv7jqRR9C3R3fAOGTTKvxXDa2Y1s9zSbcpuO0cAxDYsc9SrXoQ==
-
-"@corex/deepmerge@^4.0.43":
- version "4.0.43"
- resolved "https://registry.npmjs.org/@corex/deepmerge/-/deepmerge-4.0.43.tgz"
- integrity sha512-N8uEMrMPL0cu/bdboEWpQYb/0i2K5Qn8eCsxzOmxSggJbbQte7ljMRoXm917AbntqTGOzdTu+vP3KOOzoC70HQ==
-
-"@docsearch/css@3.8.1":
- version "3.8.1"
- resolved "https://registry.npmjs.org/@docsearch/css/-/css-3.8.1.tgz"
- integrity sha512-XiPhKT+ghUi4pEi/ACE9iDmwWsLA6d6xSwtR5ab48iB63OtYWFLZHUKdH7jHKTmwOs0Eg22TX4Kb3H5liFm5bQ==
-
-"@docsearch/react@^3.8.1":
- version "3.8.1"
- resolved "https://registry.npmjs.org/@docsearch/react/-/react-3.8.1.tgz"
- integrity sha512-7vgQuktQNBQdNWO1jbkiwgIrTZ0r5nPIHqcO3Z2neAWgkdUuldvvMfEOEaPXT5lqcezEv7i0h+tC285nD3jpZg==
- dependencies:
- "@algolia/autocomplete-core" "1.17.7"
- "@algolia/autocomplete-preset-algolia" "1.17.7"
- "@docsearch/css" "3.8.1"
- algoliasearch "^5.14.2"
-
-"@floating-ui/core@^1.6.0":
- version "1.6.9"
- resolved "https://registry.npmjs.org/@floating-ui/core/-/core-1.6.9.tgz"
- integrity sha512-uMXCuQ3BItDUbAMhIXw7UPXRfAlOAvZzdK9BWpE60MCn+Svt3aLn9jsPTi/WNGlRUu2uI0v5S7JiIUsbsvh3fw==
- dependencies:
- "@floating-ui/utils" "^0.2.9"
-
-"@floating-ui/dom@^1.0.0":
- version "1.6.13"
- resolved "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.6.13.tgz"
- integrity sha512-umqzocjDgNRGTuO7Q8CU32dkHkECqI8ZdMZ5Swb6QAM0t5rnlrN3lGo1hdpscRd3WS8T6DKYK4ephgIH9iRh3w==
- dependencies:
- "@floating-ui/core" "^1.6.0"
- "@floating-ui/utils" "^0.2.9"
-
-"@floating-ui/react-dom@^2.1.2":
- version "2.1.2"
- resolved "https://registry.npmjs.org/@floating-ui/react-dom/-/react-dom-2.1.2.tgz"
- integrity sha512-06okr5cgPzMNBy+Ycse2A6udMi4bqwW/zgBF/rwjcNqWkyr82Mcg8b0vjX8OJpZFy/FKjJmw6wV7t44kK6kW7A==
- dependencies:
- "@floating-ui/dom" "^1.0.0"
-
-"@floating-ui/react@^0.26.16":
- version "0.26.28"
- resolved "https://registry.npmjs.org/@floating-ui/react/-/react-0.26.28.tgz"
- integrity sha512-yORQuuAtVpiRjpMhdc0wJj06b9JFjrYF4qp96j++v2NBpbi6SEGF7donUJ3TMieerQ6qVkAv1tgr7L4r5roTqw==
- dependencies:
- "@floating-ui/react-dom" "^2.1.2"
- "@floating-ui/utils" "^0.2.8"
- tabbable "^6.0.0"
-
-"@floating-ui/utils@^0.2.8", "@floating-ui/utils@^0.2.9":
- version "0.2.9"
- resolved "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.2.9.tgz"
- integrity sha512-MDWhGtE+eHw5JW7lq4qhc5yRLS11ERl1c7Z6Xd0a58DozHES6EnNNwUWbMiG4J9Cgj053Bhk8zvlhFYKVhULwg==
-
-"@formatjs/intl-localematcher@^0.5.4":
- version "0.5.10"
- resolved "https://registry.npmjs.org/@formatjs/intl-localematcher/-/intl-localematcher-0.5.10.tgz"
- integrity sha512-af3qATX+m4Rnd9+wHcjJ4w2ijq+rAVP3CCinJQvFv1kgSu1W6jypUmvleJxcewdxmutM8dmIRZFxO/IQBZmP2Q==
- dependencies:
- tslib "2"
-
-"@headlessui/react@^2.1.2":
- version "2.2.1"
- resolved "https://registry.npmjs.org/@headlessui/react/-/react-2.2.1.tgz"
- integrity sha512-daiUqVLae8CKVjEVT19P/izW0aGK0GNhMSAeMlrDebKmoVZHcRRwbxzgtnEadUVDXyBsWo9/UH4KHeniO+0tMg==
- dependencies:
- "@floating-ui/react" "^0.26.16"
- "@react-aria/focus" "^3.17.1"
- "@react-aria/interactions" "^3.21.3"
- "@tanstack/react-virtual" "^3.11.1"
-
-"@iconify/types@^2.0.0":
- version "2.0.0"
- resolved "https://registry.npmjs.org/@iconify/types/-/types-2.0.0.tgz"
- integrity sha512-+wluvCrRhXrhyOmRDJ3q8mux9JkKy5SJ/v8ol2tu4FVjyYvtEzkc/3pK15ET6RKg4b4w4BmTk1+gsCUhf21Ykg==
-
-"@iconify/utils@^2.1.33":
- version "2.3.0"
- resolved "https://registry.npmjs.org/@iconify/utils/-/utils-2.3.0.tgz"
- integrity sha512-GmQ78prtwYW6EtzXRU1rY+KwOKfz32PD7iJh6Iyqw68GiKuoZ2A6pRtzWONz5VQJbp50mEjXh/7NkumtrAgRKA==
- dependencies:
- "@antfu/install-pkg" "^1.0.0"
- "@antfu/utils" "^8.1.0"
- "@iconify/types" "^2.0.0"
- debug "^4.4.0"
- globals "^15.14.0"
- kolorist "^1.8.0"
- local-pkg "^1.0.0"
- mlly "^1.7.4"
-
-"@img/sharp-darwin-arm64@0.33.5":
- 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==
- optionalDependencies:
- "@img/sharp-libvips-darwin-arm64" "1.0.4"
-
-"@img/sharp-libvips-darwin-arm64@1.0.4":
- 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==
-
-"@isaacs/cliui@^8.0.2":
- 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"
-
-"@istanbuljs/load-nyc-config@^1.0.0":
- version "1.1.0"
- resolved "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz"
- integrity sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==
- dependencies:
- camelcase "^5.3.1"
- find-up "^4.1.0"
- get-package-type "^0.1.0"
- js-yaml "^3.13.1"
- resolve-from "^5.0.0"
-
-"@istanbuljs/schema@^0.1.2", "@istanbuljs/schema@^0.1.3":
- version "0.1.3"
- resolved "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz"
- integrity sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==
-
-"@jest/console@^29.7.0":
- version "29.7.0"
- resolved "https://registry.npmjs.org/@jest/console/-/console-29.7.0.tgz"
- integrity sha512-5Ni4CU7XHQi32IJ398EEP4RrB8eV09sXP2ROqD4bksHrnTree52PsxvX8tpL8LvTZ3pFzXyPbNQReSN41CAhOg==
- dependencies:
- "@jest/types" "^29.6.3"
- "@types/node" "*"
- chalk "^4.0.0"
- jest-message-util "^29.7.0"
- jest-util "^29.7.0"
- slash "^3.0.0"
-
-"@jest/core@^29.7.0":
- version "29.7.0"
- resolved "https://registry.npmjs.org/@jest/core/-/core-29.7.0.tgz"
- integrity sha512-n7aeXWKMnGtDA48y8TLWJPJmLmmZ642Ceo78cYWEpiD7FzDgmNDV/GCVRorPABdXLJZ/9wzzgZAlHjXjxDHGsg==
- dependencies:
- "@jest/console" "^29.7.0"
- "@jest/reporters" "^29.7.0"
- "@jest/test-result" "^29.7.0"
- "@jest/transform" "^29.7.0"
- "@jest/types" "^29.6.3"
- "@types/node" "*"
- ansi-escapes "^4.2.1"
- chalk "^4.0.0"
- ci-info "^3.2.0"
- exit "^0.1.2"
- graceful-fs "^4.2.9"
- jest-changed-files "^29.7.0"
- jest-config "^29.7.0"
- jest-haste-map "^29.7.0"
- jest-message-util "^29.7.0"
- jest-regex-util "^29.6.3"
- jest-resolve "^29.7.0"
- jest-resolve-dependencies "^29.7.0"
- jest-runner "^29.7.0"
- jest-runtime "^29.7.0"
- jest-snapshot "^29.7.0"
- jest-util "^29.7.0"
- jest-validate "^29.7.0"
- jest-watcher "^29.7.0"
- micromatch "^4.0.4"
- pretty-format "^29.7.0"
- slash "^3.0.0"
- strip-ansi "^6.0.0"
-
-"@jest/environment@^29.7.0":
- version "29.7.0"
- resolved "https://registry.npmjs.org/@jest/environment/-/environment-29.7.0.tgz"
- integrity sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw==
- dependencies:
- "@jest/fake-timers" "^29.7.0"
- "@jest/types" "^29.6.3"
- "@types/node" "*"
- jest-mock "^29.7.0"
-
-"@jest/expect-utils@^29.7.0":
- version "29.7.0"
- resolved "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-29.7.0.tgz"
- integrity sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA==
- dependencies:
- jest-get-type "^29.6.3"
-
-"@jest/expect@^29.7.0":
- version "29.7.0"
- resolved "https://registry.npmjs.org/@jest/expect/-/expect-29.7.0.tgz"
- integrity sha512-8uMeAMycttpva3P1lBHB8VciS9V0XAr3GymPpipdyQXbBcuhkLQOSe8E/p92RyAdToS6ZD1tFkX+CkhoECE0dQ==
- dependencies:
- expect "^29.7.0"
- jest-snapshot "^29.7.0"
-
-"@jest/fake-timers@^29.7.0":
- version "29.7.0"
- resolved "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-29.7.0.tgz"
- integrity sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ==
- dependencies:
- "@jest/types" "^29.6.3"
- "@sinonjs/fake-timers" "^10.0.2"
- "@types/node" "*"
- jest-message-util "^29.7.0"
- jest-mock "^29.7.0"
- jest-util "^29.7.0"
-
-"@jest/globals@^29.7.0":
- version "29.7.0"
- resolved "https://registry.npmjs.org/@jest/globals/-/globals-29.7.0.tgz"
- integrity sha512-mpiz3dutLbkW2MNFubUGUEVLkTGiqW6yLVTA+JbP6fI6J5iL9Y0Nlg8k95pcF8ctKwCS7WVxteBs29hhfAotzQ==
- dependencies:
- "@jest/environment" "^29.7.0"
- "@jest/expect" "^29.7.0"
- "@jest/types" "^29.6.3"
- jest-mock "^29.7.0"
-
-"@jest/reporters@^29.7.0":
- version "29.7.0"
- resolved "https://registry.npmjs.org/@jest/reporters/-/reporters-29.7.0.tgz"
- integrity sha512-DApq0KJbJOEzAFYjHADNNxAE3KbhxQB1y5Kplb5Waqw6zVbuWatSnMjE5gs8FUgEPmNsnZA3NCWl9NG0ia04Pg==
- dependencies:
- "@bcoe/v8-coverage" "^0.2.3"
- "@jest/console" "^29.7.0"
- "@jest/test-result" "^29.7.0"
- "@jest/transform" "^29.7.0"
- "@jest/types" "^29.6.3"
- "@jridgewell/trace-mapping" "^0.3.18"
- "@types/node" "*"
- chalk "^4.0.0"
- collect-v8-coverage "^1.0.0"
- exit "^0.1.2"
- glob "^7.1.3"
- graceful-fs "^4.2.9"
- istanbul-lib-coverage "^3.0.0"
- istanbul-lib-instrument "^6.0.0"
- istanbul-lib-report "^3.0.0"
- istanbul-lib-source-maps "^4.0.0"
- istanbul-reports "^3.1.3"
- jest-message-util "^29.7.0"
- jest-util "^29.7.0"
- jest-worker "^29.7.0"
- slash "^3.0.0"
- string-length "^4.0.1"
- strip-ansi "^6.0.0"
- v8-to-istanbul "^9.0.1"
-
-"@jest/schemas@^29.6.3":
- version "29.6.3"
- resolved "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz"
- integrity sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==
- dependencies:
- "@sinclair/typebox" "^0.27.8"
-
-"@jest/source-map@^29.6.3":
- version "29.6.3"
- resolved "https://registry.npmjs.org/@jest/source-map/-/source-map-29.6.3.tgz"
- integrity sha512-MHjT95QuipcPrpLM+8JMSzFx6eHp5Bm+4XeFDJlwsvVBjmKNiIAvasGK2fxz2WbGRlnvqehFbh07MMa7n3YJnw==
- dependencies:
- "@jridgewell/trace-mapping" "^0.3.18"
- callsites "^3.0.0"
- graceful-fs "^4.2.9"
-
-"@jest/test-result@^29.7.0":
- version "29.7.0"
- resolved "https://registry.npmjs.org/@jest/test-result/-/test-result-29.7.0.tgz"
- integrity sha512-Fdx+tv6x1zlkJPcWXmMDAG2HBnaR9XPSd5aDWQVsfrZmLVT3lU1cwyxLgRmXR9yrq4NBoEm9BMsfgFzTQAbJYA==
- dependencies:
- "@jest/console" "^29.7.0"
- "@jest/types" "^29.6.3"
- "@types/istanbul-lib-coverage" "^2.0.0"
- collect-v8-coverage "^1.0.0"
-
-"@jest/test-sequencer@^29.7.0":
- version "29.7.0"
- resolved "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-29.7.0.tgz"
- integrity sha512-GQwJ5WZVrKnOJuiYiAF52UNUJXgTZx1NHjFSEB0qEMmSZKAkdMoIzw/Cj6x6NF4AvV23AUqDpFzQkN/eYCYTxw==
- dependencies:
- "@jest/test-result" "^29.7.0"
- graceful-fs "^4.2.9"
- jest-haste-map "^29.7.0"
- slash "^3.0.0"
-
-"@jest/transform@^29.7.0":
- version "29.7.0"
- resolved "https://registry.npmjs.org/@jest/transform/-/transform-29.7.0.tgz"
- integrity sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw==
- dependencies:
- "@babel/core" "^7.11.6"
- "@jest/types" "^29.6.3"
- "@jridgewell/trace-mapping" "^0.3.18"
- babel-plugin-istanbul "^6.1.1"
- chalk "^4.0.0"
- convert-source-map "^2.0.0"
- fast-json-stable-stringify "^2.1.0"
- graceful-fs "^4.2.9"
- jest-haste-map "^29.7.0"
- jest-regex-util "^29.6.3"
- jest-util "^29.7.0"
- micromatch "^4.0.4"
- pirates "^4.0.4"
- slash "^3.0.0"
- write-file-atomic "^4.0.2"
-
-"@jest/types@^29.6.3":
- version "29.6.3"
- resolved "https://registry.npmjs.org/@jest/types/-/types-29.6.3.tgz"
- integrity sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==
- dependencies:
- "@jest/schemas" "^29.6.3"
- "@types/istanbul-lib-coverage" "^2.0.0"
- "@types/istanbul-reports" "^3.0.0"
- "@types/node" "*"
- "@types/yargs" "^17.0.8"
- chalk "^4.0.0"
-
-"@jridgewell/gen-mapping@^0.3.2", "@jridgewell/gen-mapping@^0.3.5":
- version "0.3.8"
- resolved "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.8.tgz"
- integrity sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==
- dependencies:
- "@jridgewell/set-array" "^1.2.1"
- "@jridgewell/sourcemap-codec" "^1.4.10"
- "@jridgewell/trace-mapping" "^0.3.24"
-
-"@jridgewell/resolve-uri@^3.1.0":
- version "3.1.2"
- resolved "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz"
- integrity sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==
-
-"@jridgewell/set-array@^1.2.1":
- version "1.2.1"
- resolved "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz"
- integrity sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==
-
-"@jridgewell/sourcemap-codec@^1.4.10", "@jridgewell/sourcemap-codec@^1.4.14":
- version "1.5.0"
- resolved "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz"
- integrity sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==
-
-"@jridgewell/trace-mapping@^0.3.12", "@jridgewell/trace-mapping@^0.3.18", "@jridgewell/trace-mapping@^0.3.24", "@jridgewell/trace-mapping@^0.3.25":
- version "0.3.25"
- resolved "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz"
- integrity sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==
- dependencies:
- "@jridgewell/resolve-uri" "^3.1.0"
- "@jridgewell/sourcemap-codec" "^1.4.14"
-
-"@mdx-js/mdx@^3.0.0":
- version "3.1.0"
- resolved "https://registry.npmjs.org/@mdx-js/mdx/-/mdx-3.1.0.tgz"
- integrity sha512-/QxEhPAvGwbQmy1Px8F899L5Uc2KZ6JtXwlCgJmjSTBedwOZkByYcBG4GceIGPXRDsmfxhHazuS+hlOShRLeDw==
- dependencies:
- "@types/estree" "^1.0.0"
- "@types/estree-jsx" "^1.0.0"
- "@types/hast" "^3.0.0"
- "@types/mdx" "^2.0.0"
- collapse-white-space "^2.0.0"
- devlop "^1.0.0"
- estree-util-is-identifier-name "^3.0.0"
- estree-util-scope "^1.0.0"
- estree-walker "^3.0.0"
- hast-util-to-jsx-runtime "^2.0.0"
- markdown-extensions "^2.0.0"
- recma-build-jsx "^1.0.0"
- recma-jsx "^1.0.0"
- recma-stringify "^1.0.0"
- rehype-recma "^1.0.0"
- remark-mdx "^3.0.0"
- remark-parse "^11.0.0"
- remark-rehype "^11.0.0"
- source-map "^0.7.0"
- unified "^11.0.0"
- unist-util-position-from-estree "^2.0.0"
- unist-util-stringify-position "^4.0.0"
- unist-util-visit "^5.0.0"
- vfile "^6.0.0"
-
-"@mdx-js/react@^3.0.0":
- version "3.1.0"
- resolved "https://registry.npmjs.org/@mdx-js/react/-/react-3.1.0.tgz"
- integrity sha512-QjHtSaoameoalGnKDT3FoIl4+9RwyTmo9ZJGBdLOks/YOiWHoRDI3PUwEzOE7kEmGcV3AFcp9K6dYu9rEuKLAQ==
- dependencies:
- "@types/mdx" "^2.0.0"
-
-"@mermaid-js/parser@^0.4.0":
- version "0.4.0"
- resolved "https://registry.npmjs.org/@mermaid-js/parser/-/parser-0.4.0.tgz"
- integrity sha512-wla8XOWvQAwuqy+gxiZqY+c7FokraOTHRWMsbB4AgRx9Sy7zKslNyejy7E+a77qHfey5GXw/ik3IXv/NHMJgaA==
- dependencies:
- langium "3.3.1"
-
-"@napi-rs/simple-git-darwin-arm64@0.1.19":
- version "0.1.19"
- resolved "https://registry.npmjs.org/@napi-rs/simple-git-darwin-arm64/-/simple-git-darwin-arm64-0.1.19.tgz"
- integrity sha512-viZB5TYgjA1vH+QluhxZo0WKro3xBA+1xSzYx8mcxUMO5gnAoUMwXn0ZO/6Zy6pai+aGae+cj6XihGnrBRu3Pg==
-
-"@napi-rs/simple-git@^0.1.9":
- version "0.1.19"
- resolved "https://registry.npmjs.org/@napi-rs/simple-git/-/simple-git-0.1.19.tgz"
- integrity sha512-jMxvwzkKzd3cXo2EB9GM2ic0eYo2rP/BS6gJt6HnWbsDO1O8GSD4k7o2Cpr2YERtMpGF/MGcDfsfj2EbQPtrXw==
- optionalDependencies:
- "@napi-rs/simple-git-android-arm-eabi" "0.1.19"
- "@napi-rs/simple-git-android-arm64" "0.1.19"
- "@napi-rs/simple-git-darwin-arm64" "0.1.19"
- "@napi-rs/simple-git-darwin-x64" "0.1.19"
- "@napi-rs/simple-git-freebsd-x64" "0.1.19"
- "@napi-rs/simple-git-linux-arm-gnueabihf" "0.1.19"
- "@napi-rs/simple-git-linux-arm64-gnu" "0.1.19"
- "@napi-rs/simple-git-linux-arm64-musl" "0.1.19"
- "@napi-rs/simple-git-linux-powerpc64le-gnu" "0.1.19"
- "@napi-rs/simple-git-linux-s390x-gnu" "0.1.19"
- "@napi-rs/simple-git-linux-x64-gnu" "0.1.19"
- "@napi-rs/simple-git-linux-x64-musl" "0.1.19"
- "@napi-rs/simple-git-win32-arm64-msvc" "0.1.19"
- "@napi-rs/simple-git-win32-x64-msvc" "0.1.19"
-
-"@next/env@^13.4.3":
- version "13.5.11"
- resolved "https://registry.npmjs.org/@next/env/-/env-13.5.11.tgz"
- integrity sha512-fbb2C7HChgM7CemdCY+y3N1n8pcTKdqtQLbC7/EQtPdLvlMUT9JX/dBYl8MMZAtYG4uVMyPFHXckb68q/NRwqg==
-
-"@next/env@14.2.26":
- version "14.2.26"
- resolved "https://registry.npmjs.org/@next/env/-/env-14.2.26.tgz"
- integrity sha512-vO//GJ/YBco+H7xdQhzJxF7ub3SUwft76jwaeOyVVQFHCi5DCnkP16WHB+JBylo4vOKPoZBlR94Z8xBxNBdNJA==
-
-"@next/swc-darwin-arm64@14.2.26":
- version "14.2.26"
- resolved "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-14.2.26.tgz"
- integrity sha512-zDJY8gsKEseGAxG+C2hTMT0w9Nk9N1Sk1qV7vXYz9MEiyRoF5ogQX2+vplyUMIfygnjn9/A04I6yrUTRTuRiyQ==
-
-"@nodelib/fs.scandir@2.1.5":
- version "2.1.5"
- resolved "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz"
- integrity sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==
- dependencies:
- "@nodelib/fs.stat" "2.0.5"
- run-parallel "^1.1.9"
-
-"@nodelib/fs.stat@^2.0.2", "@nodelib/fs.stat@2.0.5":
- version "2.0.5"
- resolved "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz"
- integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==
-
-"@nodelib/fs.walk@^1.2.3":
- version "1.2.8"
- resolved "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz"
- integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==
- dependencies:
- "@nodelib/fs.scandir" "2.1.5"
- fastq "^1.6.0"
-
-"@pipedream/sdk@^1.5.3":
- version "1.5.3"
- resolved "https://registry.npmjs.org/@pipedream/sdk/-/sdk-1.5.3.tgz"
- integrity sha512-shXEDK91RzaTAbFQCVLHCV+PuKjQaes9V1C8r1abV6hRCyAQcYnr5j6alJuKiozBnIh5BGA/OYh0JEYBWau7yA==
- dependencies:
- "@rails/actioncable" "^8.0.0"
- commander "^12.1.0"
- oauth4webapi "^3.1.4"
- ws "^8.18.0"
-
-"@pkgjs/parseargs@^0.11.0":
- version "0.11.0"
- resolved "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz"
- integrity sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==
-
-"@rails/actioncable@^8.0.0":
- version "8.0.200"
- resolved "https://registry.npmjs.org/@rails/actioncable/-/actioncable-8.0.200.tgz"
- integrity sha512-EDqWyxck22BHmv1e+mD8Kl6GmtNkhEPdRfGFT7kvsv1yoXd9iYrqHDVAaR8bKmU/syC5eEZ2I5aWWxtB73ukMw==
-
-"@react-aria/focus@^3.17.1":
- version "3.20.1"
- resolved "https://registry.npmjs.org/@react-aria/focus/-/focus-3.20.1.tgz"
- integrity sha512-lgYs+sQ1TtBrAXnAdRBQrBo0/7o5H6IrfDxec1j+VRpcXL0xyk0xPq+m3lZp8typzIghqDgpnKkJ5Jf4OrzPIw==
- dependencies:
- "@react-aria/interactions" "^3.24.1"
- "@react-aria/utils" "^3.28.1"
- "@react-types/shared" "^3.28.0"
- "@swc/helpers" "^0.5.0"
- clsx "^2.0.0"
-
-"@react-aria/interactions@^3.21.3", "@react-aria/interactions@^3.24.1":
- version "3.24.1"
- resolved "https://registry.npmjs.org/@react-aria/interactions/-/interactions-3.24.1.tgz"
- integrity sha512-OWEcIC6UQfWq4Td5Ptuh4PZQ4LHLJr/JL2jGYvuNL6EgL3bWvzPrRYIF/R64YbfVxIC7FeZpPSkS07sZ93/NoA==
- dependencies:
- "@react-aria/ssr" "^3.9.7"
- "@react-aria/utils" "^3.28.1"
- "@react-stately/flags" "^3.1.0"
- "@react-types/shared" "^3.28.0"
- "@swc/helpers" "^0.5.0"
-
-"@react-aria/ssr@^3.9.7":
- version "3.9.7"
- resolved "https://registry.npmjs.org/@react-aria/ssr/-/ssr-3.9.7.tgz"
- integrity sha512-GQygZaGlmYjmYM+tiNBA5C6acmiDWF52Nqd40bBp0Znk4M4hP+LTmI0lpI1BuKMw45T8RIhrAsICIfKwZvi2Gg==
- dependencies:
- "@swc/helpers" "^0.5.0"
-
-"@react-aria/utils@^3.28.1":
- version "3.28.1"
- resolved "https://registry.npmjs.org/@react-aria/utils/-/utils-3.28.1.tgz"
- integrity sha512-mnHFF4YOVu9BRFQ1SZSKfPhg3z+lBRYoW5mLcYTQihbKhz48+I1sqRkP7ahMITr8ANH3nb34YaMME4XWmK2Mgg==
- dependencies:
- "@react-aria/ssr" "^3.9.7"
- "@react-stately/flags" "^3.1.0"
- "@react-stately/utils" "^3.10.5"
- "@react-types/shared" "^3.28.0"
- "@swc/helpers" "^0.5.0"
- clsx "^2.0.0"
-
-"@react-stately/flags@^3.1.0":
- version "3.1.0"
- resolved "https://registry.npmjs.org/@react-stately/flags/-/flags-3.1.0.tgz"
- integrity sha512-KSHOCxTFpBtxhIRcKwsD1YDTaNxFtCYuAUb0KEihc16QwqZViq4hasgPBs2gYm7fHRbw7WYzWKf6ZSo/+YsFlg==
- dependencies:
- "@swc/helpers" "^0.5.0"
-
-"@react-stately/utils@^3.10.5":
- version "3.10.5"
- resolved "https://registry.npmjs.org/@react-stately/utils/-/utils-3.10.5.tgz"
- integrity sha512-iMQSGcpaecghDIh3mZEpZfoFH3ExBwTtuBEcvZ2XnGzCgQjeYXcMdIUwAfVQLXFTdHUHGF6Gu6/dFrYsCzySBQ==
- dependencies:
- "@swc/helpers" "^0.5.0"
-
-"@react-types/shared@^3.28.0":
- version "3.28.0"
- resolved "https://registry.npmjs.org/@react-types/shared/-/shared-3.28.0.tgz"
- integrity sha512-9oMEYIDc3sk0G5rysnYvdNrkSg7B04yTKl50HHSZVbokeHpnU0yRmsDaWb9B/5RprcKj8XszEk5guBO8Sa/Q+Q==
-
-"@shikijs/core@1.29.2":
- version "1.29.2"
- resolved "https://registry.npmjs.org/@shikijs/core/-/core-1.29.2.tgz"
- integrity sha512-vju0lY9r27jJfOY4Z7+Rt/nIOjzJpZ3y+nYpqtUZInVoXQ/TJZcfGnNOGnKjFdVZb8qexiCuSlZRKcGfhhTTZQ==
- dependencies:
- "@shikijs/engine-javascript" "1.29.2"
- "@shikijs/engine-oniguruma" "1.29.2"
- "@shikijs/types" "1.29.2"
- "@shikijs/vscode-textmate" "^10.0.1"
- "@types/hast" "^3.0.4"
- hast-util-to-html "^9.0.4"
-
-"@shikijs/engine-javascript@1.29.2":
- version "1.29.2"
- resolved "https://registry.npmjs.org/@shikijs/engine-javascript/-/engine-javascript-1.29.2.tgz"
- integrity sha512-iNEZv4IrLYPv64Q6k7EPpOCE/nuvGiKl7zxdq0WFuRPF5PAE9PRo2JGq/d8crLusM59BRemJ4eOqrFrC4wiQ+A==
- dependencies:
- "@shikijs/types" "1.29.2"
- "@shikijs/vscode-textmate" "^10.0.1"
- oniguruma-to-es "^2.2.0"
-
-"@shikijs/engine-oniguruma@1.29.2":
- version "1.29.2"
- resolved "https://registry.npmjs.org/@shikijs/engine-oniguruma/-/engine-oniguruma-1.29.2.tgz"
- integrity sha512-7iiOx3SG8+g1MnlzZVDYiaeHe7Ez2Kf2HrJzdmGwkRisT7r4rak0e655AcM/tF9JG/kg5fMNYlLLKglbN7gBqA==
- dependencies:
- "@shikijs/types" "1.29.2"
- "@shikijs/vscode-textmate" "^10.0.1"
-
-"@shikijs/langs@1.29.2":
- version "1.29.2"
- resolved "https://registry.npmjs.org/@shikijs/langs/-/langs-1.29.2.tgz"
- integrity sha512-FIBA7N3LZ+223U7cJDUYd5shmciFQlYkFXlkKVaHsCPgfVLiO+e12FmQE6Tf9vuyEsFe3dIl8qGWKXgEHL9wmQ==
- dependencies:
- "@shikijs/types" "1.29.2"
-
-"@shikijs/themes@1.29.2":
- version "1.29.2"
- resolved "https://registry.npmjs.org/@shikijs/themes/-/themes-1.29.2.tgz"
- integrity sha512-i9TNZlsq4uoyqSbluIcZkmPL9Bfi3djVxRnofUHwvx/h6SRW3cwgBC5SML7vsDcWyukY0eCzVN980rqP6qNl9g==
- dependencies:
- "@shikijs/types" "1.29.2"
-
-"@shikijs/twoslash@^1.0.0":
- version "1.29.2"
- resolved "https://registry.npmjs.org/@shikijs/twoslash/-/twoslash-1.29.2.tgz"
- integrity sha512-2S04ppAEa477tiaLfGEn1QJWbZUmbk8UoPbAEw4PifsrxkBXtAtOflIZJNtuCwz8ptc/TPxy7CO7gW4Uoi6o/g==
- dependencies:
- "@shikijs/core" "1.29.2"
- "@shikijs/types" "1.29.2"
- twoslash "^0.2.12"
-
-"@shikijs/types@1.29.2":
- version "1.29.2"
- resolved "https://registry.npmjs.org/@shikijs/types/-/types-1.29.2.tgz"
- integrity sha512-VJjK0eIijTZf0QSTODEXCqinjBn0joAHQ+aPSBzrv4O2d/QSbsMw+ZeSRx03kV34Hy7NzUvV/7NqfYGRLrASmw==
- dependencies:
- "@shikijs/vscode-textmate" "^10.0.1"
- "@types/hast" "^3.0.4"
-
-"@shikijs/vscode-textmate@^10.0.1":
- version "10.0.2"
- resolved "https://registry.npmjs.org/@shikijs/vscode-textmate/-/vscode-textmate-10.0.2.tgz"
- integrity sha512-83yeghZ2xxin3Nj8z1NMd/NCuca+gsYXswywDy5bHvwlWL8tpTQmzGeUuHd9FC3E/SBEMvzJRwWEOz5gGes9Qg==
-
-"@sinclair/typebox@^0.27.8":
- version "0.27.8"
- resolved "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz"
- integrity sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==
-
-"@sinonjs/commons@^3.0.0":
- version "3.0.1"
- resolved "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.1.tgz"
- integrity sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ==
- dependencies:
- type-detect "4.0.8"
-
-"@sinonjs/fake-timers@^10.0.2":
- version "10.3.0"
- resolved "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-10.3.0.tgz"
- integrity sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==
- dependencies:
- "@sinonjs/commons" "^3.0.0"
-
-"@swc/counter@^0.1.3":
- version "0.1.3"
- resolved "https://registry.npmjs.org/@swc/counter/-/counter-0.1.3.tgz"
- integrity sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==
-
-"@swc/helpers@^0.5.0", "@swc/helpers@0.5.5":
- version "0.5.5"
- resolved "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.5.tgz"
- integrity sha512-KGYxvIOXcceOAbEk4bi/dVLEK9z8sZ0uBB3Il5b1rhfClSpcX0yfRO0KmTkqR2cnQDymwLB+25ZyMzICg/cm/A==
- dependencies:
- "@swc/counter" "^0.1.3"
- tslib "^2.4.0"
-
-"@tanstack/react-virtual@^3.11.1":
- version "3.13.6"
- resolved "https://registry.npmjs.org/@tanstack/react-virtual/-/react-virtual-3.13.6.tgz"
- integrity sha512-WT7nWs8ximoQ0CDx/ngoFP7HbQF9Q2wQe4nh2NB+u2486eX3nZRE40P9g6ccCVq7ZfTSH5gFOuCoVH5DLNS/aA==
- dependencies:
- "@tanstack/virtual-core" "3.13.6"
-
-"@tanstack/virtual-core@3.13.6":
- version "3.13.6"
- resolved "https://registry.npmjs.org/@tanstack/virtual-core/-/virtual-core-3.13.6.tgz"
- integrity sha512-cnQUeWnhNP8tJ4WsGcYiX24Gjkc9ALstLbHcBj1t3E7EimN6n6kHH+DPV4PpDnuw00NApQp+ViojMj1GRdwYQg==
-
-"@theguild/remark-mermaid@^0.1.3":
- version "0.1.3"
- resolved "https://registry.npmjs.org/@theguild/remark-mermaid/-/remark-mermaid-0.1.3.tgz"
- integrity sha512-2FjVlaaKXK7Zj7UJAgOVTyaahn/3/EAfqYhyXg0BfDBVUl+lXcoIWRaxzqfnDr2rv8ax6GsC5mNh6hAaT86PDw==
- dependencies:
- mermaid "^11.0.0"
- unist-util-visit "^5.0.0"
-
-"@theguild/remark-npm2yarn@^0.3.2":
- version "0.3.3"
- resolved "https://registry.npmjs.org/@theguild/remark-npm2yarn/-/remark-npm2yarn-0.3.3.tgz"
- integrity sha512-ma6DvR03gdbvwqfKx1omqhg9May/VYGdMHvTzB4VuxkyS7KzfZ/lzrj43hmcsggpMje0x7SADA/pcMph0ejRnA==
- dependencies:
- npm-to-yarn "^3.0.0"
- unist-util-visit "^5.0.0"
-
-"@types/babel__core@^7.1.14":
- version "7.20.5"
- resolved "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz"
- integrity sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==
- dependencies:
- "@babel/parser" "^7.20.7"
- "@babel/types" "^7.20.7"
- "@types/babel__generator" "*"
- "@types/babel__template" "*"
- "@types/babel__traverse" "*"
-
-"@types/babel__generator@*":
- version "7.27.0"
- resolved "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.27.0.tgz"
- integrity sha512-ufFd2Xi92OAVPYsy+P4n7/U7e68fex0+Ee8gSG9KX7eo084CWiQ4sdxktvdl0bOPupXtVJPY19zk6EwWqUQ8lg==
- dependencies:
- "@babel/types" "^7.0.0"
-
-"@types/babel__template@*":
- version "7.4.4"
- resolved "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz"
- integrity sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==
- dependencies:
- "@babel/parser" "^7.1.0"
- "@babel/types" "^7.0.0"
-
-"@types/babel__traverse@*", "@types/babel__traverse@^7.0.6":
- version "7.20.7"
- resolved "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.7.tgz"
- integrity sha512-dkO5fhS7+/oos4ciWxyEyjWe48zmG6wbCheo/G2ZnHx4fs3EU6YC6UM8rk56gAjNJ9P3MTH2jo5jb92/K6wbng==
- dependencies:
- "@babel/types" "^7.20.7"
-
-"@types/d3-array@*":
- version "3.2.1"
- resolved "https://registry.npmjs.org/@types/d3-array/-/d3-array-3.2.1.tgz"
- integrity sha512-Y2Jn2idRrLzUfAKV2LyRImR+y4oa2AntrgID95SHJxuMUrkNXmanDSed71sRNZysveJVt1hLLemQZIady0FpEg==
-
-"@types/d3-axis@*":
- version "3.0.6"
- resolved "https://registry.npmjs.org/@types/d3-axis/-/d3-axis-3.0.6.tgz"
- integrity sha512-pYeijfZuBd87T0hGn0FO1vQ/cgLk6E1ALJjfkC0oJ8cbwkZl3TpgS8bVBLZN+2jjGgg38epgxb2zmoGtSfvgMw==
- dependencies:
- "@types/d3-selection" "*"
-
-"@types/d3-brush@*":
- version "3.0.6"
- resolved "https://registry.npmjs.org/@types/d3-brush/-/d3-brush-3.0.6.tgz"
- integrity sha512-nH60IZNNxEcrh6L1ZSMNA28rj27ut/2ZmI3r96Zd+1jrZD++zD3LsMIjWlvg4AYrHn/Pqz4CF3veCxGjtbqt7A==
- dependencies:
- "@types/d3-selection" "*"
-
-"@types/d3-chord@*":
- version "3.0.6"
- resolved "https://registry.npmjs.org/@types/d3-chord/-/d3-chord-3.0.6.tgz"
- integrity sha512-LFYWWd8nwfwEmTZG9PfQxd17HbNPksHBiJHaKuY1XeqscXacsS2tyoo6OdRsjf+NQYeB6XrNL3a25E3gH69lcg==
-
-"@types/d3-color@*":
- version "3.1.3"
- resolved "https://registry.npmjs.org/@types/d3-color/-/d3-color-3.1.3.tgz"
- integrity sha512-iO90scth9WAbmgv7ogoq57O9YpKmFBbmoEoCHDB2xMBY0+/KVrqAaCDyCE16dUspeOvIxFFRI+0sEtqDqy2b4A==
-
-"@types/d3-contour@*":
- version "3.0.6"
- resolved "https://registry.npmjs.org/@types/d3-contour/-/d3-contour-3.0.6.tgz"
- integrity sha512-BjzLgXGnCWjUSYGfH1cpdo41/hgdWETu4YxpezoztawmqsvCeep+8QGfiY6YbDvfgHz/DkjeIkkZVJavB4a3rg==
- dependencies:
- "@types/d3-array" "*"
- "@types/geojson" "*"
-
-"@types/d3-delaunay@*":
- version "6.0.4"
- resolved "https://registry.npmjs.org/@types/d3-delaunay/-/d3-delaunay-6.0.4.tgz"
- integrity sha512-ZMaSKu4THYCU6sV64Lhg6qjf1orxBthaC161plr5KuPHo3CNm8DTHiLw/5Eq2b6TsNP0W0iJrUOFscY6Q450Hw==
-
-"@types/d3-dispatch@*":
- version "3.0.6"
- resolved "https://registry.npmjs.org/@types/d3-dispatch/-/d3-dispatch-3.0.6.tgz"
- integrity sha512-4fvZhzMeeuBJYZXRXrRIQnvUYfyXwYmLsdiN7XXmVNQKKw1cM8a5WdID0g1hVFZDqT9ZqZEY5pD44p24VS7iZQ==
-
-"@types/d3-drag@*":
- version "3.0.7"
- resolved "https://registry.npmjs.org/@types/d3-drag/-/d3-drag-3.0.7.tgz"
- integrity sha512-HE3jVKlzU9AaMazNufooRJ5ZpWmLIoc90A37WU2JMmeq28w1FQqCZswHZ3xR+SuxYftzHq6WU6KJHvqxKzTxxQ==
- dependencies:
- "@types/d3-selection" "*"
-
-"@types/d3-dsv@*":
- version "3.0.7"
- resolved "https://registry.npmjs.org/@types/d3-dsv/-/d3-dsv-3.0.7.tgz"
- integrity sha512-n6QBF9/+XASqcKK6waudgL0pf/S5XHPPI8APyMLLUHd8NqouBGLsU8MgtO7NINGtPBtk9Kko/W4ea0oAspwh9g==
-
-"@types/d3-ease@*":
- version "3.0.2"
- resolved "https://registry.npmjs.org/@types/d3-ease/-/d3-ease-3.0.2.tgz"
- integrity sha512-NcV1JjO5oDzoK26oMzbILE6HW7uVXOHLQvHshBUW4UMdZGfiY6v5BeQwh9a9tCzv+CeefZQHJt5SRgK154RtiA==
-
-"@types/d3-fetch@*":
- version "3.0.7"
- resolved "https://registry.npmjs.org/@types/d3-fetch/-/d3-fetch-3.0.7.tgz"
- integrity sha512-fTAfNmxSb9SOWNB9IoG5c8Hg6R+AzUHDRlsXsDZsNp6sxAEOP0tkP3gKkNSO/qmHPoBFTxNrjDprVHDQDvo5aA==
- dependencies:
- "@types/d3-dsv" "*"
-
-"@types/d3-force@*":
- version "3.0.10"
- resolved "https://registry.npmjs.org/@types/d3-force/-/d3-force-3.0.10.tgz"
- integrity sha512-ZYeSaCF3p73RdOKcjj+swRlZfnYpK1EbaDiYICEEp5Q6sUiqFaFQ9qgoshp5CzIyyb/yD09kD9o2zEltCexlgw==
-
-"@types/d3-format@*":
- version "3.0.4"
- resolved "https://registry.npmjs.org/@types/d3-format/-/d3-format-3.0.4.tgz"
- integrity sha512-fALi2aI6shfg7vM5KiR1wNJnZ7r6UuggVqtDA+xiEdPZQwy/trcQaHnwShLuLdta2rTymCNpxYTiMZX/e09F4g==
-
-"@types/d3-geo@*":
- version "3.1.0"
- resolved "https://registry.npmjs.org/@types/d3-geo/-/d3-geo-3.1.0.tgz"
- integrity sha512-856sckF0oP/diXtS4jNsiQw/UuK5fQG8l/a9VVLeSouf1/PPbBE1i1W852zVwKwYCBkFJJB7nCFTbk6UMEXBOQ==
- dependencies:
- "@types/geojson" "*"
-
-"@types/d3-hierarchy@*":
- version "3.1.7"
- resolved "https://registry.npmjs.org/@types/d3-hierarchy/-/d3-hierarchy-3.1.7.tgz"
- integrity sha512-tJFtNoYBtRtkNysX1Xq4sxtjK8YgoWUNpIiUee0/jHGRwqvzYxkq0hGVbbOGSz+JgFxxRu4K8nb3YpG3CMARtg==
-
-"@types/d3-interpolate@*":
- version "3.0.4"
- resolved "https://registry.npmjs.org/@types/d3-interpolate/-/d3-interpolate-3.0.4.tgz"
- integrity sha512-mgLPETlrpVV1YRJIglr4Ez47g7Yxjl1lj7YKsiMCb27VJH9W8NVM6Bb9d8kkpG/uAQS5AmbA48q2IAolKKo1MA==
- dependencies:
- "@types/d3-color" "*"
-
-"@types/d3-path@*":
- version "3.1.1"
- resolved "https://registry.npmjs.org/@types/d3-path/-/d3-path-3.1.1.tgz"
- integrity sha512-VMZBYyQvbGmWyWVea0EHs/BwLgxc+MKi1zLDCONksozI4YJMcTt8ZEuIR4Sb1MMTE8MMW49v0IwI5+b7RmfWlg==
-
-"@types/d3-polygon@*":
- version "3.0.2"
- resolved "https://registry.npmjs.org/@types/d3-polygon/-/d3-polygon-3.0.2.tgz"
- integrity sha512-ZuWOtMaHCkN9xoeEMr1ubW2nGWsp4nIql+OPQRstu4ypeZ+zk3YKqQT0CXVe/PYqrKpZAi+J9mTs05TKwjXSRA==
-
-"@types/d3-quadtree@*":
- version "3.0.6"
- resolved "https://registry.npmjs.org/@types/d3-quadtree/-/d3-quadtree-3.0.6.tgz"
- integrity sha512-oUzyO1/Zm6rsxKRHA1vH0NEDG58HrT5icx/azi9MF1TWdtttWl0UIUsjEQBBh+SIkrpd21ZjEv7ptxWys1ncsg==
-
-"@types/d3-random@*":
- version "3.0.3"
- resolved "https://registry.npmjs.org/@types/d3-random/-/d3-random-3.0.3.tgz"
- integrity sha512-Imagg1vJ3y76Y2ea0871wpabqp613+8/r0mCLEBfdtqC7xMSfj9idOnmBYyMoULfHePJyxMAw3nWhJxzc+LFwQ==
-
-"@types/d3-scale-chromatic@*":
- version "3.1.0"
- resolved "https://registry.npmjs.org/@types/d3-scale-chromatic/-/d3-scale-chromatic-3.1.0.tgz"
- integrity sha512-iWMJgwkK7yTRmWqRB5plb1kadXyQ5Sj8V/zYlFGMUBbIPKQScw+Dku9cAAMgJG+z5GYDoMjWGLVOvjghDEFnKQ==
-
-"@types/d3-scale@*":
- version "4.0.9"
- resolved "https://registry.npmjs.org/@types/d3-scale/-/d3-scale-4.0.9.tgz"
- integrity sha512-dLmtwB8zkAeO/juAMfnV+sItKjlsw2lKdZVVy6LRr0cBmegxSABiLEpGVmSJJ8O08i4+sGR6qQtb6WtuwJdvVw==
- dependencies:
- "@types/d3-time" "*"
-
-"@types/d3-selection@*":
- version "3.0.11"
- resolved "https://registry.npmjs.org/@types/d3-selection/-/d3-selection-3.0.11.tgz"
- integrity sha512-bhAXu23DJWsrI45xafYpkQ4NtcKMwWnAC/vKrd2l+nxMFuvOT3XMYTIj2opv8vq8AO5Yh7Qac/nSeP/3zjTK0w==
-
-"@types/d3-shape@*":
- version "3.1.7"
- resolved "https://registry.npmjs.org/@types/d3-shape/-/d3-shape-3.1.7.tgz"
- integrity sha512-VLvUQ33C+3J+8p+Daf+nYSOsjB4GXp19/S/aGo60m9h1v6XaxjiT82lKVWJCfzhtuZ3yD7i/TPeC/fuKLLOSmg==
- dependencies:
- "@types/d3-path" "*"
-
-"@types/d3-time-format@*":
- version "4.0.3"
- resolved "https://registry.npmjs.org/@types/d3-time-format/-/d3-time-format-4.0.3.tgz"
- integrity sha512-5xg9rC+wWL8kdDj153qZcsJ0FWiFt0J5RB6LYUNZjwSnesfblqrI/bJ1wBdJ8OQfncgbJG5+2F+qfqnqyzYxyg==
-
-"@types/d3-time@*":
- version "3.0.4"
- resolved "https://registry.npmjs.org/@types/d3-time/-/d3-time-3.0.4.tgz"
- integrity sha512-yuzZug1nkAAaBlBBikKZTgzCeA+k1uy4ZFwWANOfKw5z5LRhV0gNA7gNkKm7HoK+HRN0wX3EkxGk0fpbWhmB7g==
-
-"@types/d3-timer@*":
- version "3.0.2"
- resolved "https://registry.npmjs.org/@types/d3-timer/-/d3-timer-3.0.2.tgz"
- integrity sha512-Ps3T8E8dZDam6fUyNiMkekK3XUsaUEik+idO9/YjPtfj2qruF8tFBXS7XhtE4iIXBLxhmLjP3SXpLhVf21I9Lw==
-
-"@types/d3-transition@*":
- version "3.0.9"
- resolved "https://registry.npmjs.org/@types/d3-transition/-/d3-transition-3.0.9.tgz"
- integrity sha512-uZS5shfxzO3rGlu0cC3bjmMFKsXv+SmZZcgp0KD22ts4uGXp5EVYGzu/0YdwZeKmddhcAccYtREJKkPfXkZuCg==
- dependencies:
- "@types/d3-selection" "*"
-
-"@types/d3-zoom@*":
- version "3.0.8"
- resolved "https://registry.npmjs.org/@types/d3-zoom/-/d3-zoom-3.0.8.tgz"
- integrity sha512-iqMC4/YlFCSlO8+2Ii1GGGliCAY4XdeG748w5vQUbevlbDu0zSjH/+jojorQVBK/se0j6DUFNPBGSqD3YWYnDw==
- dependencies:
- "@types/d3-interpolate" "*"
- "@types/d3-selection" "*"
-
-"@types/d3@^7.4.3":
- version "7.4.3"
- resolved "https://registry.npmjs.org/@types/d3/-/d3-7.4.3.tgz"
- integrity sha512-lZXZ9ckh5R8uiFVt8ogUNf+pIrK4EsWrx2Np75WvF/eTpJ0FMHNhjXk8CKEx/+gpHbNQyJWehbFaTvqmHWB3ww==
- dependencies:
- "@types/d3-array" "*"
- "@types/d3-axis" "*"
- "@types/d3-brush" "*"
- "@types/d3-chord" "*"
- "@types/d3-color" "*"
- "@types/d3-contour" "*"
- "@types/d3-delaunay" "*"
- "@types/d3-dispatch" "*"
- "@types/d3-drag" "*"
- "@types/d3-dsv" "*"
- "@types/d3-ease" "*"
- "@types/d3-fetch" "*"
- "@types/d3-force" "*"
- "@types/d3-format" "*"
- "@types/d3-geo" "*"
- "@types/d3-hierarchy" "*"
- "@types/d3-interpolate" "*"
- "@types/d3-path" "*"
- "@types/d3-polygon" "*"
- "@types/d3-quadtree" "*"
- "@types/d3-random" "*"
- "@types/d3-scale" "*"
- "@types/d3-scale-chromatic" "*"
- "@types/d3-selection" "*"
- "@types/d3-shape" "*"
- "@types/d3-time" "*"
- "@types/d3-time-format" "*"
- "@types/d3-timer" "*"
- "@types/d3-transition" "*"
- "@types/d3-zoom" "*"
-
-"@types/debug@^4.0.0":
- version "4.1.12"
- resolved "https://registry.npmjs.org/@types/debug/-/debug-4.1.12.tgz"
- integrity sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==
- dependencies:
- "@types/ms" "*"
-
-"@types/estree-jsx@^1.0.0":
- version "1.0.5"
- resolved "https://registry.npmjs.org/@types/estree-jsx/-/estree-jsx-1.0.5.tgz"
- integrity sha512-52CcUVNFyfb1A2ALocQw/Dd1BQFNmSdkuC3BkZ6iqhdMfQz7JWOFRuJFloOzjk+6WijU56m9oKXFAXc7o3Towg==
- dependencies:
- "@types/estree" "*"
-
-"@types/estree@*", "@types/estree@^1.0.0":
- version "1.0.7"
- resolved "https://registry.npmjs.org/@types/estree/-/estree-1.0.7.tgz"
- integrity sha512-w28IoSUCJpidD/TGviZwwMJckNESJZXFu7NBZ5YJ4mEUnNraUn9Pm8HSZm/jDF1pDWYKspWE7oVphigUPRakIQ==
-
-"@types/geojson@*":
- version "7946.0.16"
- resolved "https://registry.npmjs.org/@types/geojson/-/geojson-7946.0.16.tgz"
- integrity sha512-6C8nqWur3j98U6+lXDfTUWIfgvZU+EumvpHKcYjujKH7woYyLj2sUmff0tRhrqM7BohUw7Pz3ZB1jj2gW9Fvmg==
-
-"@types/graceful-fs@^4.1.3":
- version "4.1.9"
- resolved "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.9.tgz"
- integrity sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==
- dependencies:
- "@types/node" "*"
-
-"@types/hast@^3.0.0", "@types/hast@^3.0.4":
- version "3.0.4"
- resolved "https://registry.npmjs.org/@types/hast/-/hast-3.0.4.tgz"
- integrity sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==
- dependencies:
- "@types/unist" "*"
-
-"@types/istanbul-lib-coverage@*", "@types/istanbul-lib-coverage@^2.0.0", "@types/istanbul-lib-coverage@^2.0.1":
- version "2.0.6"
- resolved "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz"
- integrity sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==
-
-"@types/istanbul-lib-report@*":
- version "3.0.3"
- resolved "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.3.tgz"
- integrity sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==
- dependencies:
- "@types/istanbul-lib-coverage" "*"
-
-"@types/istanbul-reports@^3.0.0":
- version "3.0.4"
- resolved "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.4.tgz"
- integrity sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==
- dependencies:
- "@types/istanbul-lib-report" "*"
-
-"@types/katex@^0.16.0":
- version "0.16.7"
- resolved "https://registry.npmjs.org/@types/katex/-/katex-0.16.7.tgz"
- integrity sha512-HMwFiRujE5PjrgwHQ25+bsLJgowjGjm5Z8FVSf0N6PwgJrwxH0QxzHYDcKsTfV3wva0vzrpqMTJS2jXPr5BMEQ==
-
-"@types/mdast@^4.0.0":
- version "4.0.4"
- resolved "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.4.tgz"
- integrity sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==
- dependencies:
- "@types/unist" "*"
-
-"@types/mdx@^2.0.0":
- version "2.0.13"
- resolved "https://registry.npmjs.org/@types/mdx/-/mdx-2.0.13.tgz"
- integrity sha512-+OWZQfAYyio6YkJb3HLxDrvnx6SWWDbC0zVPfBRzUk0/nqoDyf6dNxQi3eArPe8rJ473nobTMQ/8Zk+LxJ+Yuw==
-
-"@types/ms@*":
- version "2.1.0"
- resolved "https://registry.npmjs.org/@types/ms/-/ms-2.1.0.tgz"
- integrity sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA==
-
-"@types/nlcst@^2.0.0":
- version "2.0.3"
- resolved "https://registry.npmjs.org/@types/nlcst/-/nlcst-2.0.3.tgz"
- integrity sha512-vSYNSDe6Ix3q+6Z7ri9lyWqgGhJTmzRjZRqyq15N0Z/1/UnVsno9G/N40NBijoYx2seFDIl0+B2mgAb9mezUCA==
- dependencies:
- "@types/unist" "*"
-
-"@types/node@*", "@types/node@18.11.10":
- version "18.11.10"
- resolved "file:../node_modules/.pnpm/@types+node@18.11.10/node_modules/@types/node"
-
-"@types/prop-types@*":
- version "15.7.14"
- resolved "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.14.tgz"
- integrity sha512-gNMvNH49DJ7OJYv+KAKn0Xp45p8PLl6zo2YnvDIbTd4J6MER2BmWN49TG7n9LvkyihINxeKW8+3bfS2yDC9dzQ==
-
-"@types/react@>= 16.8.0 < 19.0.0", "@types/react@>=16", "@types/react@>=18":
- version "18.3.20"
- resolved "https://registry.npmjs.org/@types/react/-/react-18.3.20.tgz"
- integrity sha512-IPaCZN7PShZK/3t6Q87pfTkRm6oLTd4vztyoj+cbHUF1g3FfVb2tFIL79uCRKEfv16AhqDMBywP2VW3KIZUvcg==
- dependencies:
- "@types/prop-types" "*"
- csstype "^3.0.2"
-
-"@types/stack-utils@^2.0.0":
- version "2.0.3"
- resolved "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.3.tgz"
- integrity sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==
-
-"@types/trusted-types@^2.0.7":
- version "2.0.7"
- resolved "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.7.tgz"
- integrity sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==
-
-"@types/unist@*", "@types/unist@^3.0.0":
- version "3.0.3"
- resolved "https://registry.npmjs.org/@types/unist/-/unist-3.0.3.tgz"
- integrity sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==
-
-"@types/unist@^2.0.0":
- version "2.0.11"
- resolved "https://registry.npmjs.org/@types/unist/-/unist-2.0.11.tgz"
- integrity sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==
-
-"@types/yargs-parser@*":
- version "21.0.3"
- resolved "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.3.tgz"
- integrity sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==
-
-"@types/yargs@^17.0.8":
- version "17.0.33"
- resolved "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.33.tgz"
- integrity sha512-WpxBCKWPLr4xSsHgz511rFJAM+wS28w2zEO1QDNY5zM/S8ok70NNfztH0xwhqKyaK0OHCbN98LDAZuy1ctxDkA==
- dependencies:
- "@types/yargs-parser" "*"
-
-"@typescript/vfs@^1.6.0":
- version "1.6.1"
- resolved "https://registry.npmjs.org/@typescript/vfs/-/vfs-1.6.1.tgz"
- integrity sha512-JwoxboBh7Oz1v38tPbkrZ62ZXNHAk9bJ7c9x0eI5zBfBnBYGhURdbnh7Z4smN/MV48Y5OCcZb58n972UtbazsA==
- dependencies:
- debug "^4.1.1"
-
-"@ungap/structured-clone@^1.0.0":
- version "1.3.0"
- resolved "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.3.0.tgz"
- integrity sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==
-
-"@vercel/analytics@^1.5.0":
- version "1.5.0"
- resolved "https://registry.npmjs.org/@vercel/analytics/-/analytics-1.5.0.tgz"
- integrity sha512-MYsBzfPki4gthY5HnYN7jgInhAZ7Ac1cYDoRWFomwGHWEX7odTEzbtg9kf/QSo7XEsEAqlQugA6gJ2WS2DEa3g==
-
-acorn-jsx@^5.0.0:
- version "5.3.2"
- resolved "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz"
- integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==
-
-"acorn@^6.0.0 || ^7.0.0 || ^8.0.0", acorn@^8.0.0, acorn@^8.14.0:
- version "8.14.1"
- resolved "https://registry.npmjs.org/acorn/-/acorn-8.14.1.tgz"
- integrity sha512-OvQ/2pUDKmgfCg++xsTX1wGxfTaszcHVcTctW4UJB4hibJx2HXxxO5UmVgyjMa+ZDsiaf5wWLXYpRWMmBI0QHg==
-
-algoliasearch@^5.14.2, "algoliasearch@>= 4.9.1 < 6":
- version "5.23.2"
- resolved "https://registry.npmjs.org/algoliasearch/-/algoliasearch-5.23.2.tgz"
- integrity sha512-IhKP22Czzg8Y9HaF6aIb5aAHK2HBj4VAzLLnKEPUnxqDwxpryH9sXbm0NkeY7Cby9GlF81wF+AG/VulKDFBphg==
- dependencies:
- "@algolia/client-abtesting" "5.23.2"
- "@algolia/client-analytics" "5.23.2"
- "@algolia/client-common" "5.23.2"
- "@algolia/client-insights" "5.23.2"
- "@algolia/client-personalization" "5.23.2"
- "@algolia/client-query-suggestions" "5.23.2"
- "@algolia/client-search" "5.23.2"
- "@algolia/ingestion" "1.23.2"
- "@algolia/monitoring" "1.23.2"
- "@algolia/recommend" "5.23.2"
- "@algolia/requester-browser-xhr" "5.23.2"
- "@algolia/requester-fetch" "5.23.2"
- "@algolia/requester-node-http" "5.23.2"
-
-ansi-escapes@^4.2.1:
- version "4.3.2"
- resolved "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz"
- integrity sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==
- dependencies:
- type-fest "^0.21.3"
-
-ansi-escapes@^7.0.0:
- version "7.0.0"
- dependencies:
- environment "^1.0.0"
-
-ansi-regex@^5.0.1:
- version "5.0.1"
- resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz"
- integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==
-
-ansi-regex@^6.0.1:
- version "6.1.0"
-
-ansi-styles@^4.0.0:
- 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"
-
-ansi-styles@^4.1.0:
- 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"
-
-ansi-styles@^5.0.0:
- version "5.2.0"
- resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz"
- integrity sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==
-
-ansi-styles@^6.0.0, ansi-styles@^6.1.0, ansi-styles@^6.2.1:
- version "6.2.1"
-
-any-promise@^1.0.0:
- version "1.3.0"
- resolved "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz"
- integrity sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==
-
-anymatch@^3.0.3, anymatch@~3.1.2:
- version "3.1.3"
- resolved "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz"
- integrity sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==
- dependencies:
- normalize-path "^3.0.0"
- picomatch "^2.0.4"
-
-arg@^5.0.0, arg@^5.0.2:
- version "5.0.2"
- resolved "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz"
- integrity sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==
-
-argparse@^1.0.7:
- version "1.0.10"
- resolved "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz"
- integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==
- dependencies:
- sprintf-js "~1.0.2"
-
-array-iterate@^2.0.0:
- version "2.0.1"
- resolved "https://registry.npmjs.org/array-iterate/-/array-iterate-2.0.1.tgz"
- integrity sha512-I1jXZMjAgCMmxT4qxXfPXa6SthSoE8h6gkSI9BGGNv8mP8G/v0blc+qFnZu6K42vTOiuME596QaLO0TP3Lk0xg==
-
-astring@^1.8.0:
- version "1.9.0"
- resolved "https://registry.npmjs.org/astring/-/astring-1.9.0.tgz"
- integrity sha512-LElXdjswlqjWrPpJFg1Fx4wpkOCxj1TDHlSV4PlaRxHGWko024xICaa97ZkMfs6DRKlCguiAI+rbXv5GWwXIkg==
-
-autoprefixer@^10.4.19:
- version "10.4.21"
- resolved "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.21.tgz"
- integrity sha512-O+A6LWV5LDHSJD3LjHYoNi4VLsj/Whi7k6zG12xTYaU4cQ8oxQGckXNX8cRHK5yOZ/ppVHe0ZBXGzSV9jXdVbQ==
- dependencies:
- browserslist "^4.24.4"
- caniuse-lite "^1.0.30001702"
- fraction.js "^4.3.7"
- normalize-range "^0.1.2"
- picocolors "^1.1.1"
- postcss-value-parser "^4.2.0"
-
-babel-jest@^29.7.0:
- version "29.7.0"
- resolved "https://registry.npmjs.org/babel-jest/-/babel-jest-29.7.0.tgz"
- integrity sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==
- dependencies:
- "@jest/transform" "^29.7.0"
- "@types/babel__core" "^7.1.14"
- babel-plugin-istanbul "^6.1.1"
- babel-preset-jest "^29.6.3"
- chalk "^4.0.0"
- graceful-fs "^4.2.9"
- slash "^3.0.0"
-
-babel-plugin-istanbul@^6.1.1:
- version "6.1.1"
- resolved "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz"
- integrity sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==
- dependencies:
- "@babel/helper-plugin-utils" "^7.0.0"
- "@istanbuljs/load-nyc-config" "^1.0.0"
- "@istanbuljs/schema" "^0.1.2"
- istanbul-lib-instrument "^5.0.4"
- test-exclude "^6.0.0"
-
-babel-plugin-jest-hoist@^29.6.3:
- version "29.6.3"
- resolved "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.6.3.tgz"
- integrity sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg==
- dependencies:
- "@babel/template" "^7.3.3"
- "@babel/types" "^7.3.3"
- "@types/babel__core" "^7.1.14"
- "@types/babel__traverse" "^7.0.6"
-
-babel-preset-current-node-syntax@^1.0.0:
- version "1.1.0"
- resolved "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.1.0.tgz"
- integrity sha512-ldYss8SbBlWva1bs28q78Ju5Zq1F+8BrqBZZ0VFhLBvhh6lCpC2o3gDJi/5DRLs9FgYZCnmPYIVFU4lRXCkyUw==
- dependencies:
- "@babel/plugin-syntax-async-generators" "^7.8.4"
- "@babel/plugin-syntax-bigint" "^7.8.3"
- "@babel/plugin-syntax-class-properties" "^7.12.13"
- "@babel/plugin-syntax-class-static-block" "^7.14.5"
- "@babel/plugin-syntax-import-attributes" "^7.24.7"
- "@babel/plugin-syntax-import-meta" "^7.10.4"
- "@babel/plugin-syntax-json-strings" "^7.8.3"
- "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4"
- "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3"
- "@babel/plugin-syntax-numeric-separator" "^7.10.4"
- "@babel/plugin-syntax-object-rest-spread" "^7.8.3"
- "@babel/plugin-syntax-optional-catch-binding" "^7.8.3"
- "@babel/plugin-syntax-optional-chaining" "^7.8.3"
- "@babel/plugin-syntax-private-property-in-object" "^7.14.5"
- "@babel/plugin-syntax-top-level-await" "^7.14.5"
-
-babel-preset-jest@^29.6.3:
- version "29.6.3"
- resolved "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-29.6.3.tgz"
- integrity sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA==
- dependencies:
- babel-plugin-jest-hoist "^29.6.3"
- babel-preset-current-node-syntax "^1.0.0"
-
-bail@^2.0.0:
- version "2.0.2"
- resolved "https://registry.npmjs.org/bail/-/bail-2.0.2.tgz"
- integrity sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==
-
-balanced-match@^1.0.0:
- version "1.0.2"
- resolved "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz"
- integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==
-
-better-react-mathjax@^2.0.3:
- version "2.1.0"
- resolved "https://registry.npmjs.org/better-react-mathjax/-/better-react-mathjax-2.1.0.tgz"
- integrity sha512-RrHudli76sgoVu+YtjHTKhCkjO2eH1B7Xje1sa0YPjhKzq2y/GIwOt9+tuel3s2L+mCPmFbYBFLDFfo3pEa8rQ==
- dependencies:
- mathjax-full "^3.2.2"
-
-binary-extensions@^2.0.0:
- version "2.3.0"
- resolved "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz"
- integrity sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==
-
-brace-expansion@^1.1.7:
- version "1.1.11"
- resolved "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz"
- integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==
- dependencies:
- balanced-match "^1.0.0"
- concat-map "0.0.1"
-
-brace-expansion@^2.0.1:
- 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"
-
-braces@^3.0.3, braces@~3.0.2:
- version "3.0.3"
- resolved "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz"
- integrity sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==
- dependencies:
- fill-range "^7.1.1"
-
-browserslist@^4.24.0, browserslist@^4.24.4, "browserslist@>= 4.21.0":
- version "4.24.4"
- resolved "https://registry.npmjs.org/browserslist/-/browserslist-4.24.4.tgz"
- integrity sha512-KDi1Ny1gSePi1vm0q4oxSF8b4DR44GF4BbmS2YdhPLOEqd8pDviZOGH/GsmRwoWJ2+5Lr085X7naowMwKHDG1A==
- dependencies:
- caniuse-lite "^1.0.30001688"
- electron-to-chromium "^1.5.73"
- node-releases "^2.0.19"
- update-browserslist-db "^1.1.1"
-
-bser@2.1.1:
- version "2.1.1"
- resolved "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz"
- integrity sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==
- dependencies:
- node-int64 "^0.4.0"
-
-buffer-from@^1.0.0:
- version "1.1.2"
- resolved "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz"
- integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==
-
-busboy@1.6.0:
- 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"
-
-callsites@^3.0.0:
- version "3.1.0"
- resolved "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz"
- integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==
-
-camelcase-css@^2.0.1:
- version "2.0.1"
- resolved "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz"
- integrity sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==
-
-camelcase@^5.3.1:
- version "5.3.1"
- resolved "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz"
- integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==
-
-camelcase@^6.2.0:
- version "6.3.0"
- resolved "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz"
- integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==
-
-caniuse-lite@^1.0.30001579, caniuse-lite@^1.0.30001688, caniuse-lite@^1.0.30001702:
- version "1.0.30001710"
- resolved "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001710.tgz"
- integrity sha512-B5C0I0UmaGqHgo5FuqJ7hBd4L57A4dDD+Xi+XX1nXOoxGeDdY4Ko38qJYOyqznBVJEqON5p8P1x5zRR3+rsnxA==
-
-ccount@^2.0.0:
- version "2.0.1"
- resolved "https://registry.npmjs.org/ccount/-/ccount-2.0.1.tgz"
- integrity sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==
-
-chalk@^4.0.0:
- 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"
-
-chalk@^5.0.0, chalk@^5.3.0, chalk@~5.3.0:
- version "5.3.0"
- resolved "file:../node_modules/.pnpm/chalk@5.3.0/node_modules/chalk"
-
-char-regex@^1.0.2:
- version "1.0.2"
- resolved "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz"
- integrity sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==
-
-character-entities-html4@^2.0.0:
- version "2.1.0"
- resolved "https://registry.npmjs.org/character-entities-html4/-/character-entities-html4-2.1.0.tgz"
- integrity sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==
-
-character-entities-legacy@^3.0.0:
- version "3.0.0"
- resolved "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-3.0.0.tgz"
- integrity sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==
-
-character-entities@^2.0.0:
- version "2.0.2"
- resolved "https://registry.npmjs.org/character-entities/-/character-entities-2.0.2.tgz"
- integrity sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==
-
-character-reference-invalid@^2.0.0:
- version "2.0.1"
- resolved "https://registry.npmjs.org/character-reference-invalid/-/character-reference-invalid-2.0.1.tgz"
- integrity sha512-iBZ4F4wRbyORVsu0jPV7gXkOsGYjGHPmAyv+HiHG8gi5PtC9KI2j1+v8/tlibRvjoWX027ypmG/n0HtO5t7unw==
-
-chevrotain-allstar@~0.3.0:
- version "0.3.1"
- resolved "https://registry.npmjs.org/chevrotain-allstar/-/chevrotain-allstar-0.3.1.tgz"
- integrity sha512-b7g+y9A0v4mxCW1qUhf3BSVPg+/NvGErk/dOkrDaHA0nQIQGAtrOjlX//9OQtRlSCy+x9rfB5N8yC71lH1nvMw==
- dependencies:
- lodash-es "^4.17.21"
-
-chevrotain@^11.0.0, chevrotain@~11.0.3:
- version "11.0.3"
- resolved "https://registry.npmjs.org/chevrotain/-/chevrotain-11.0.3.tgz"
- integrity sha512-ci2iJH6LeIkvP9eJW6gpueU8cnZhv85ELY8w8WiFtNjMHA5ad6pQLaJo9mEly/9qUyCpvqX8/POVUTf18/HFdw==
- dependencies:
- "@chevrotain/cst-dts-gen" "11.0.3"
- "@chevrotain/gast" "11.0.3"
- "@chevrotain/regexp-to-ast" "11.0.3"
- "@chevrotain/types" "11.0.3"
- "@chevrotain/utils" "11.0.3"
- lodash-es "4.17.21"
-
-chokidar@^3.6.0:
- version "3.6.0"
- resolved "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz"
- integrity sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==
- dependencies:
- anymatch "~3.1.2"
- braces "~3.0.2"
- glob-parent "~5.1.2"
- is-binary-path "~2.1.0"
- is-glob "~4.0.1"
- normalize-path "~3.0.0"
- readdirp "~3.6.0"
- optionalDependencies:
- fsevents "~2.3.2"
-
-ci-info@^3.2.0:
- version "3.9.0"
- resolved "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz"
- integrity sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==
-
-cjs-module-lexer@^1.0.0:
- version "1.4.3"
- resolved "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.4.3.tgz"
- integrity sha512-9z8TZaGM1pfswYeXrUpzPrkx8UnWYdhJclsiYMm6x/w5+nN+8Tf/LnAgfLGQCm59qAOxU8WwHEq2vNwF6i4j+Q==
-
-cli-cursor@^5.0.0:
- version "5.0.0"
- dependencies:
- restore-cursor "^5.0.0"
-
-cli-truncate@^4.0.0:
- version "4.0.0"
- dependencies:
- slice-ansi "^5.0.0"
- string-width "^7.0.0"
-
-client-only@0.0.1:
- version "0.0.1"
- resolved "https://registry.npmjs.org/client-only/-/client-only-0.0.1.tgz"
- integrity sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==
-
-clipboardy@^4.0.0:
- version "4.0.0"
- resolved "https://registry.npmjs.org/clipboardy/-/clipboardy-4.0.0.tgz"
- integrity sha512-5mOlNS0mhX0707P2I0aZ2V/cmHUEO/fL7VFLqszkhUsxt7RwnmrInf/eEQKlf5GzvYeHIjT+Ov1HRfNmymlG0w==
- dependencies:
- execa "^8.0.1"
- is-wsl "^3.1.0"
- is64bit "^2.0.0"
-
-cliui@^8.0.1:
- version "8.0.1"
- resolved "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz"
- integrity sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==
- dependencies:
- string-width "^4.2.0"
- strip-ansi "^6.0.1"
- wrap-ansi "^7.0.0"
-
-clsx@^2.0.0:
- version "2.1.1"
- resolved "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz"
- integrity sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==
-
-co@^4.6.0:
- version "4.6.0"
- resolved "https://registry.npmjs.org/co/-/co-4.6.0.tgz"
- integrity sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==
-
-collapse-white-space@^2.0.0:
- version "2.1.0"
- resolved "https://registry.npmjs.org/collapse-white-space/-/collapse-white-space-2.1.0.tgz"
- integrity sha512-loKTxY1zCOuG4j9f6EPnuyyYkf58RnhhWTvRoZEokgB+WbdXehfjFviyOVYkqzEWz1Q5kRiZdBYS5SwxbQYwzw==
-
-collect-v8-coverage@^1.0.0:
- version "1.0.2"
- resolved "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.2.tgz"
- integrity sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q==
-
-color-convert@^2.0.1:
- 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"
-
-color-name@^1.0.0, color-name@~1.1.4:
- version "1.1.4"
- resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz"
- integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==
-
-color-string@^1.9.0:
- version "1.9.1"
- resolved "https://registry.npmjs.org/color-string/-/color-string-1.9.1.tgz"
- integrity sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==
- dependencies:
- color-name "^1.0.0"
- simple-swizzle "^0.2.2"
-
-color@^4.2.3:
- version "4.2.3"
- resolved "https://registry.npmjs.org/color/-/color-4.2.3.tgz"
- integrity sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==
- dependencies:
- color-convert "^2.0.1"
- color-string "^1.9.0"
-
-colorette@^2.0.20:
- version "2.0.20"
- resolved "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz"
- integrity sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==
-
-comma-separated-tokens@^2.0.0:
- version "2.0.3"
- resolved "https://registry.npmjs.org/comma-separated-tokens/-/comma-separated-tokens-2.0.3.tgz"
- integrity sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==
-
-commander@^12.1.0, commander@~12.1.0:
- version "12.1.0"
-
-commander@^4.0.0:
- version "4.1.1"
- resolved "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz"
- integrity sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==
-
-commander@^8.3.0:
- version "8.3.0"
- resolved "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz"
- integrity sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==
-
-commander@7:
- version "7.2.0"
- resolved "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz"
- integrity sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==
-
-commander@9.2.0:
- version "9.2.0"
- resolved "https://registry.npmjs.org/commander/-/commander-9.2.0.tgz"
- integrity sha512-e2i4wANQiSXgnrBlIatyHtP1odfUp0BbV5Y5nEGbxtIrStkEOAAzCUirvLBNXHLr7kwLvJl6V+4V3XV9x7Wd9w==
-
-compute-scroll-into-view@^3.0.2:
- version "3.1.1"
- resolved "https://registry.npmjs.org/compute-scroll-into-view/-/compute-scroll-into-view-3.1.1.tgz"
- integrity sha512-VRhuHOLoKYOy4UbilLbUzbYg93XLjv2PncJC50EuTWPA3gaja1UjBsUP/D/9/juV3vQFr6XBEzn9KCAHdUvOHw==
-
-concat-map@0.0.1:
- version "0.0.1"
- resolved "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz"
- integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==
-
-confbox@^0.1.8:
- version "0.1.8"
- resolved "https://registry.npmjs.org/confbox/-/confbox-0.1.8.tgz"
- integrity sha512-RMtmw0iFkeR4YV+fUOSucriAQNb9g8zFR52MWCtl+cCZOFRNL6zeB395vPzFhEjjn4fMxXudmELnl/KF/WrK6w==
-
-confbox@^0.2.1:
- version "0.2.2"
- resolved "https://registry.npmjs.org/confbox/-/confbox-0.2.2.tgz"
- integrity sha512-1NB+BKqhtNipMsov4xI/NnhCKp9XG9NamYp5PVm9klAT0fsrNPjaFICsCFhNhwZJKNh7zB/3q8qXz0E9oaMNtQ==
-
-convert-source-map@^2.0.0:
- version "2.0.0"
- resolved "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz"
- integrity sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==
-
-cose-base@^1.0.0:
- version "1.0.3"
- resolved "https://registry.npmjs.org/cose-base/-/cose-base-1.0.3.tgz"
- integrity sha512-s9whTXInMSgAp/NVXVNuVxVKzGH2qck3aQlVHxDCdAEPgtMKwc4Wq6/QKhgdEdgbLSi9rBTAcPoRa6JpiG4ksg==
- dependencies:
- layout-base "^1.0.0"
-
-cose-base@^2.2.0:
- version "2.2.0"
- resolved "https://registry.npmjs.org/cose-base/-/cose-base-2.2.0.tgz"
- integrity sha512-AzlgcsCbUMymkADOJtQm3wO9S3ltPfYOFD5033keQn9NJzIbtnZj+UdBJe7DYml/8TdbtHJW3j58SOnKhWY/5g==
- dependencies:
- layout-base "^2.0.0"
-
-create-jest@^29.7.0:
- version "29.7.0"
- resolved "https://registry.npmjs.org/create-jest/-/create-jest-29.7.0.tgz"
- integrity sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q==
- dependencies:
- "@jest/types" "^29.6.3"
- chalk "^4.0.0"
- exit "^0.1.2"
- graceful-fs "^4.2.9"
- jest-config "^29.7.0"
- jest-util "^29.7.0"
- prompts "^2.0.1"
-
-cross-spawn@^7.0.3, cross-spawn@^7.0.6:
- 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"
-
-cssesc@^3.0.0:
- version "3.0.0"
- resolved "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz"
- integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==
-
-csstype@^3.0.2:
- version "3.1.3"
- resolved "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz"
- integrity sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==
-
-cytoscape-cose-bilkent@^4.1.0:
- version "4.1.0"
- resolved "https://registry.npmjs.org/cytoscape-cose-bilkent/-/cytoscape-cose-bilkent-4.1.0.tgz"
- integrity sha512-wgQlVIUJF13Quxiv5e1gstZ08rnZj2XaLHGoFMYXz7SkNfCDOOteKBE6SYRfA9WxxI/iBc3ajfDoc6hb/MRAHQ==
- dependencies:
- cose-base "^1.0.0"
-
-cytoscape-fcose@^2.2.0:
- version "2.2.0"
- resolved "https://registry.npmjs.org/cytoscape-fcose/-/cytoscape-fcose-2.2.0.tgz"
- integrity sha512-ki1/VuRIHFCzxWNrsshHYPs6L7TvLu3DL+TyIGEsRcvVERmxokbf5Gdk7mFxZnTdiGtnA4cfSmjZJMviqSuZrQ==
- dependencies:
- cose-base "^2.2.0"
-
-cytoscape@^3.2.0, cytoscape@^3.29.3:
- version "3.31.2"
- resolved "https://registry.npmjs.org/cytoscape/-/cytoscape-3.31.2.tgz"
- integrity sha512-/eOXg2uGdMdpGlEes5Sf6zE+jUG+05f3htFNQIxLxduOH/SsaUZiPBfAwP1btVIVzsnhiNOdi+hvDRLYfMZjGw==
-
-d3-array@^3.2.0, "d3-array@2 - 3", "d3-array@2.10.0 - 3", "d3-array@2.5.0 - 3", d3-array@3:
- version "3.2.4"
- resolved "https://registry.npmjs.org/d3-array/-/d3-array-3.2.4.tgz"
- integrity sha512-tdQAmyA18i4J7wprpYq8ClcxZy3SC31QMeByyCFyRt7BVHdREQZ5lpzoe5mFEYZUWe+oq8HBvk9JjpibyEV4Jg==
- dependencies:
- internmap "1 - 2"
-
-"d3-array@1 - 2":
- version "2.12.1"
- resolved "https://registry.npmjs.org/d3-array/-/d3-array-2.12.1.tgz"
- integrity sha512-B0ErZK/66mHtEsR1TkPEEkwdy+WDesimkM5gpZr5Dsg54BiTA5RXtYW5qTLIAcekaS9xfZrzBLF/OAkB3Qn1YQ==
- dependencies:
- internmap "^1.0.0"
-
-d3-axis@3:
- version "3.0.0"
- resolved "https://registry.npmjs.org/d3-axis/-/d3-axis-3.0.0.tgz"
- integrity sha512-IH5tgjV4jE/GhHkRV0HiVYPDtvfjHQlQfJHs0usq7M30XcSBvOotpmH1IgkcXsO/5gEQZD43B//fc7SRT5S+xw==
-
-d3-brush@3:
- version "3.0.0"
- resolved "https://registry.npmjs.org/d3-brush/-/d3-brush-3.0.0.tgz"
- integrity sha512-ALnjWlVYkXsVIGlOsuWH1+3udkYFI48Ljihfnh8FZPF2QS9o+PzGLBslO0PjzVoHLZ2KCVgAM8NVkXPJB2aNnQ==
- dependencies:
- d3-dispatch "1 - 3"
- d3-drag "2 - 3"
- d3-interpolate "1 - 3"
- d3-selection "3"
- d3-transition "3"
-
-d3-chord@3:
- version "3.0.1"
- resolved "https://registry.npmjs.org/d3-chord/-/d3-chord-3.0.1.tgz"
- integrity sha512-VE5S6TNa+j8msksl7HwjxMHDM2yNK3XCkusIlpX5kwauBfXuyLAtNg9jCp/iHH61tgI4sb6R/EIMWCqEIdjT/g==
- dependencies:
- d3-path "1 - 3"
-
-"d3-color@1 - 3", d3-color@3:
- version "3.1.0"
- resolved "https://registry.npmjs.org/d3-color/-/d3-color-3.1.0.tgz"
- integrity sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA==
-
-d3-contour@4:
- version "4.0.2"
- resolved "https://registry.npmjs.org/d3-contour/-/d3-contour-4.0.2.tgz"
- integrity sha512-4EzFTRIikzs47RGmdxbeUvLWtGedDUNkTcmzoeyg4sP/dvCexO47AaQL7VKy/gul85TOxw+IBgA8US2xwbToNA==
- dependencies:
- d3-array "^3.2.0"
-
-d3-delaunay@6:
- version "6.0.4"
- resolved "https://registry.npmjs.org/d3-delaunay/-/d3-delaunay-6.0.4.tgz"
- integrity sha512-mdjtIZ1XLAM8bm/hx3WwjfHt6Sggek7qH043O8KEjDXN40xi3vx/6pYSVTwLjEgiXQTbvaouWKynLBiUZ6SK6A==
- dependencies:
- delaunator "5"
-
-"d3-dispatch@1 - 3", d3-dispatch@3:
- version "3.0.1"
- resolved "https://registry.npmjs.org/d3-dispatch/-/d3-dispatch-3.0.1.tgz"
- integrity sha512-rzUyPU/S7rwUflMyLc1ETDeBj0NRuHKKAcvukozwhshr6g6c5d8zh4c2gQjY2bZ0dXeGLWc1PF174P2tVvKhfg==
-
-"d3-drag@2 - 3", d3-drag@3:
- version "3.0.0"
- resolved "https://registry.npmjs.org/d3-drag/-/d3-drag-3.0.0.tgz"
- integrity sha512-pWbUJLdETVA8lQNJecMxoXfH6x+mO2UQo8rSmZ+QqxcbyA3hfeprFgIT//HW2nlHChWeIIMwS2Fq+gEARkhTkg==
- dependencies:
- d3-dispatch "1 - 3"
- d3-selection "3"
-
-"d3-dsv@1 - 3", d3-dsv@3:
- version "3.0.1"
- resolved "https://registry.npmjs.org/d3-dsv/-/d3-dsv-3.0.1.tgz"
- integrity sha512-UG6OvdI5afDIFP9w4G0mNq50dSOsXHJaRE8arAS5o9ApWnIElp8GZw1Dun8vP8OyHOZ/QJUKUJwxiiCCnUwm+Q==
- dependencies:
- commander "7"
- iconv-lite "0.6"
- rw "1"
-
-"d3-ease@1 - 3", d3-ease@3:
- version "3.0.1"
- resolved "https://registry.npmjs.org/d3-ease/-/d3-ease-3.0.1.tgz"
- integrity sha512-wR/XK3D3XcLIZwpbvQwQ5fK+8Ykds1ip7A2Txe0yxncXSdq1L9skcG7blcedkOX+ZcgxGAmLX1FrRGbADwzi0w==
-
-d3-fetch@3:
- version "3.0.1"
- resolved "https://registry.npmjs.org/d3-fetch/-/d3-fetch-3.0.1.tgz"
- integrity sha512-kpkQIM20n3oLVBKGg6oHrUchHM3xODkTzjMoj7aWQFq5QEM+R6E4WkzT5+tojDY7yjez8KgCBRoj4aEr99Fdqw==
- dependencies:
- d3-dsv "1 - 3"
-
-d3-force@3:
- version "3.0.0"
- resolved "https://registry.npmjs.org/d3-force/-/d3-force-3.0.0.tgz"
- integrity sha512-zxV/SsA+U4yte8051P4ECydjD/S+qeYtnaIyAs9tgHCqfguma/aAQDjo85A9Z6EKhBirHRJHXIgJUlffT4wdLg==
- dependencies:
- d3-dispatch "1 - 3"
- d3-quadtree "1 - 3"
- d3-timer "1 - 3"
-
-"d3-format@1 - 3", d3-format@3:
- version "3.1.0"
- resolved "https://registry.npmjs.org/d3-format/-/d3-format-3.1.0.tgz"
- integrity sha512-YyUI6AEuY/Wpt8KWLgZHsIU86atmikuoOmCfommt0LYHiQSPjvX2AcFc38PX0CBpr2RCyZhjex+NS/LPOv6YqA==
-
-d3-geo@3:
- version "3.1.1"
- resolved "https://registry.npmjs.org/d3-geo/-/d3-geo-3.1.1.tgz"
- integrity sha512-637ln3gXKXOwhalDzinUgY83KzNWZRKbYubaG+fGVuc/dxO64RRljtCTnf5ecMyE1RIdtqpkVcq0IbtU2S8j2Q==
- dependencies:
- d3-array "2.5.0 - 3"
-
-d3-hierarchy@3:
- version "3.1.2"
- resolved "https://registry.npmjs.org/d3-hierarchy/-/d3-hierarchy-3.1.2.tgz"
- integrity sha512-FX/9frcub54beBdugHjDCdikxThEqjnR93Qt7PvQTOHxyiNCAlvMrHhclk3cD5VeAaq9fxmfRp+CnWw9rEMBuA==
-
-"d3-interpolate@1 - 3", "d3-interpolate@1.2.0 - 3", d3-interpolate@3:
- version "3.0.1"
- resolved "https://registry.npmjs.org/d3-interpolate/-/d3-interpolate-3.0.1.tgz"
- integrity sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g==
- dependencies:
- d3-color "1 - 3"
-
-d3-path@^3.1.0, "d3-path@1 - 3", d3-path@3:
- version "3.1.0"
- resolved "https://registry.npmjs.org/d3-path/-/d3-path-3.1.0.tgz"
- integrity sha512-p3KP5HCf/bvjBSSKuXid6Zqijx7wIfNW+J/maPs+iwR35at5JCbLUT0LzF1cnjbCHWhqzQTIN2Jpe8pRebIEFQ==
-
-d3-path@1:
- version "1.0.9"
- resolved "https://registry.npmjs.org/d3-path/-/d3-path-1.0.9.tgz"
- integrity sha512-VLaYcn81dtHVTjEHd8B+pbe9yHWpXKZUC87PzoFmsFrJqgFwDe/qxfp5MlfsfM1V5E/iVt0MmEbWQ7FVIXh/bg==
-
-d3-polygon@3:
- version "3.0.1"
- resolved "https://registry.npmjs.org/d3-polygon/-/d3-polygon-3.0.1.tgz"
- integrity sha512-3vbA7vXYwfe1SYhED++fPUQlWSYTTGmFmQiany/gdbiWgU/iEyQzyymwL9SkJjFFuCS4902BSzewVGsHHmHtXg==
-
-"d3-quadtree@1 - 3", d3-quadtree@3:
- version "3.0.1"
- resolved "https://registry.npmjs.org/d3-quadtree/-/d3-quadtree-3.0.1.tgz"
- integrity sha512-04xDrxQTDTCFwP5H6hRhsRcb9xxv2RzkcsygFzmkSIOJy3PeRJP7sNk3VRIbKXcog561P9oU0/rVH6vDROAgUw==
-
-d3-random@3:
- version "3.0.1"
- resolved "https://registry.npmjs.org/d3-random/-/d3-random-3.0.1.tgz"
- integrity sha512-FXMe9GfxTxqd5D6jFsQ+DJ8BJS4E/fT5mqqdjovykEB2oFbTMDVdg1MGFxfQW+FBOGoB++k8swBrgwSHT1cUXQ==
-
-d3-sankey@^0.12.3:
- version "0.12.3"
- resolved "https://registry.npmjs.org/d3-sankey/-/d3-sankey-0.12.3.tgz"
- integrity sha512-nQhsBRmM19Ax5xEIPLMY9ZmJ/cDvd1BG3UVvt5h3WRxKg5zGRbvnteTyWAbzeSvlh3tW7ZEmq4VwR5mB3tutmQ==
- dependencies:
- d3-array "1 - 2"
- d3-shape "^1.2.0"
-
-d3-scale-chromatic@3:
- version "3.1.0"
- resolved "https://registry.npmjs.org/d3-scale-chromatic/-/d3-scale-chromatic-3.1.0.tgz"
- integrity sha512-A3s5PWiZ9YCXFye1o246KoscMWqf8BsD9eRiJ3He7C9OBaxKhAd5TFCdEx/7VbKtxxTsu//1mMJFrEt572cEyQ==
- dependencies:
- d3-color "1 - 3"
- d3-interpolate "1 - 3"
-
-d3-scale@4:
- version "4.0.2"
- resolved "https://registry.npmjs.org/d3-scale/-/d3-scale-4.0.2.tgz"
- integrity sha512-GZW464g1SH7ag3Y7hXjf8RoUuAFIqklOAq3MRl4OaWabTFJY9PN/E1YklhXLh+OQ3fM9yS2nOkCoS+WLZ6kvxQ==
- dependencies:
- d3-array "2.10.0 - 3"
- d3-format "1 - 3"
- d3-interpolate "1.2.0 - 3"
- d3-time "2.1.1 - 3"
- d3-time-format "2 - 4"
-
-"d3-selection@2 - 3", d3-selection@3:
- version "3.0.0"
- resolved "https://registry.npmjs.org/d3-selection/-/d3-selection-3.0.0.tgz"
- integrity sha512-fmTRWbNMmsmWq6xJV8D19U/gw/bwrHfNXxrIN+HfZgnzqTHp9jOmKMhsTUjXOJnZOdZY9Q28y4yebKzqDKlxlQ==
-
-d3-shape@^1.2.0:
- version "1.3.7"
- resolved "https://registry.npmjs.org/d3-shape/-/d3-shape-1.3.7.tgz"
- integrity sha512-EUkvKjqPFUAZyOlhY5gzCxCeI0Aep04LwIRpsZ/mLFelJiUfnK56jo5JMDSE7yyP2kLSb6LtF+S5chMk7uqPqw==
- dependencies:
- d3-path "1"
-
-d3-shape@3:
- version "3.2.0"
- resolved "https://registry.npmjs.org/d3-shape/-/d3-shape-3.2.0.tgz"
- integrity sha512-SaLBuwGm3MOViRq2ABk3eLoxwZELpH6zhl3FbAoJ7Vm1gofKx6El1Ib5z23NUEhF9AsGl7y+dzLe5Cw2AArGTA==
- dependencies:
- d3-path "^3.1.0"
-
-"d3-time-format@2 - 4", d3-time-format@4:
- version "4.1.0"
- resolved "https://registry.npmjs.org/d3-time-format/-/d3-time-format-4.1.0.tgz"
- integrity sha512-dJxPBlzC7NugB2PDLwo9Q8JiTR3M3e4/XANkreKSUxF8vvXKqm1Yfq4Q5dl8budlunRVlUUaDUgFt7eA8D6NLg==
- dependencies:
- d3-time "1 - 3"
-
-"d3-time@1 - 3", "d3-time@2.1.1 - 3", d3-time@3:
- version "3.1.0"
- resolved "https://registry.npmjs.org/d3-time/-/d3-time-3.1.0.tgz"
- integrity sha512-VqKjzBLejbSMT4IgbmVgDjpkYrNWUYJnbCGo874u7MMKIWsILRX+OpX/gTk8MqjpT1A/c6HY2dCA77ZN0lkQ2Q==
- dependencies:
- d3-array "2 - 3"
-
-"d3-timer@1 - 3", d3-timer@3:
- version "3.0.1"
- resolved "https://registry.npmjs.org/d3-timer/-/d3-timer-3.0.1.tgz"
- integrity sha512-ndfJ/JxxMd3nw31uyKoY2naivF+r29V+Lc0svZxe1JvvIRmi8hUsrMvdOwgS1o6uBHmiz91geQ0ylPP0aj1VUA==
-
-"d3-transition@2 - 3", d3-transition@3:
- version "3.0.1"
- resolved "https://registry.npmjs.org/d3-transition/-/d3-transition-3.0.1.tgz"
- integrity sha512-ApKvfjsSR6tg06xrL434C0WydLr7JewBB3V+/39RMHsaXTOG0zmt/OAXeng5M5LBm0ojmxJrpomQVZ1aPvBL4w==
- dependencies:
- d3-color "1 - 3"
- d3-dispatch "1 - 3"
- d3-ease "1 - 3"
- d3-interpolate "1 - 3"
- d3-timer "1 - 3"
-
-d3-zoom@3:
- version "3.0.0"
- resolved "https://registry.npmjs.org/d3-zoom/-/d3-zoom-3.0.0.tgz"
- integrity sha512-b8AmV3kfQaqWAuacbPuNbL6vahnOJflOhexLzMMNLga62+/nh0JzvJ0aO/5a5MVgUFGS7Hu1P9P03o3fJkDCyw==
- dependencies:
- d3-dispatch "1 - 3"
- d3-drag "2 - 3"
- d3-interpolate "1 - 3"
- d3-selection "2 - 3"
- d3-transition "2 - 3"
-
-d3@^7.9.0:
- version "7.9.0"
- resolved "https://registry.npmjs.org/d3/-/d3-7.9.0.tgz"
- integrity sha512-e1U46jVP+w7Iut8Jt8ri1YsPOvFpg46k+K8TpCb0P+zjCkjkPnV7WzfDJzMHy1LnA+wj5pLT1wjO901gLXeEhA==
- dependencies:
- d3-array "3"
- d3-axis "3"
- d3-brush "3"
- d3-chord "3"
- d3-color "3"
- d3-contour "4"
- d3-delaunay "6"
- d3-dispatch "3"
- d3-drag "3"
- d3-dsv "3"
- d3-ease "3"
- d3-fetch "3"
- d3-force "3"
- d3-format "3"
- d3-geo "3"
- d3-hierarchy "3"
- d3-interpolate "3"
- d3-path "3"
- d3-polygon "3"
- d3-quadtree "3"
- d3-random "3"
- d3-scale "4"
- d3-scale-chromatic "3"
- d3-selection "3"
- d3-shape "3"
- d3-time "3"
- d3-time-format "4"
- d3-timer "3"
- d3-transition "3"
- d3-zoom "3"
-
-dagre-d3-es@7.0.11:
- version "7.0.11"
- resolved "https://registry.npmjs.org/dagre-d3-es/-/dagre-d3-es-7.0.11.tgz"
- integrity sha512-tvlJLyQf834SylNKax8Wkzco/1ias1OPw8DcUMDE7oUIoSEW25riQVuiu/0OWEFqT0cxHT3Pa9/D82Jr47IONw==
- dependencies:
- d3 "^7.9.0"
- lodash-es "^4.17.21"
-
-dayjs@^1.11.13:
- version "1.11.13"
- resolved "https://registry.npmjs.org/dayjs/-/dayjs-1.11.13.tgz"
- integrity sha512-oaMBel6gjolK862uaPQOVTA7q3TZhuSvuMQAAglQDOWYO9A91IrAOUJEyKVlqJlHE0vq5p5UXxzdPfMH/x6xNg==
-
-debug@^4.0.0, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@~4.3.6:
- version "4.3.7"
- resolved "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz"
- integrity sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==
- dependencies:
- ms "^2.1.3"
-
-debug@^4.4.0:
- version "4.4.0"
- resolved "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz"
- integrity sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==
- dependencies:
- ms "^2.1.3"
-
-decode-named-character-reference@^1.0.0:
- version "1.1.0"
- resolved "https://registry.npmjs.org/decode-named-character-reference/-/decode-named-character-reference-1.1.0.tgz"
- integrity sha512-Wy+JTSbFThEOXQIR2L6mxJvEs+veIzpmqD7ynWxMXGpnk3smkHQOp6forLdHsKpAMW9iJpaBBIxz285t1n1C3w==
- dependencies:
- character-entities "^2.0.0"
-
-dedent@^1.0.0:
- version "1.5.3"
- resolved "https://registry.npmjs.org/dedent/-/dedent-1.5.3.tgz"
- integrity sha512-NHQtfOOW68WD8lgypbLA5oT+Bt0xXJhiYvoR6SmmNXZfpzOGXwdKWmcwG8N7PwVVWV3eF/68nmD9BaJSsTBhyQ==
-
-deepmerge@^4.2.2:
- 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==
-
-delaunator@5:
- version "5.0.1"
- resolved "https://registry.npmjs.org/delaunator/-/delaunator-5.0.1.tgz"
- integrity sha512-8nvh+XBe96aCESrGOqMp/84b13H9cdKbG5P2ejQCh4d4sK9RL4371qou9drQjMhvnPmhWl5hnmqbEE0fXr9Xnw==
- dependencies:
- robust-predicates "^3.0.2"
-
-dequal@^2.0.0:
- version "2.0.3"
- resolved "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz"
- integrity sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==
-
-detect-libc@^2.0.3:
- version "2.0.3"
- resolved "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.3.tgz"
- integrity sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw==
-
-detect-newline@^3.0.0:
- version "3.1.0"
- resolved "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz"
- integrity sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==
-
-devlop@^1.0.0, devlop@^1.1.0:
- version "1.1.0"
- resolved "https://registry.npmjs.org/devlop/-/devlop-1.1.0.tgz"
- integrity sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==
- dependencies:
- dequal "^2.0.0"
-
-didyoumean@^1.2.2:
- version "1.2.2"
- resolved "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz"
- integrity sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==
-
-diff-sequences@^29.6.3:
- version "29.6.3"
- resolved "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.6.3.tgz"
- integrity sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==
-
-dlv@^1.1.3:
- version "1.1.3"
- resolved "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz"
- integrity sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==
-
-dompurify@^3.2.4:
- version "3.2.5"
- resolved "https://registry.npmjs.org/dompurify/-/dompurify-3.2.5.tgz"
- integrity sha512-mLPd29uoRe9HpvwP2TxClGQBzGXeEC/we/q+bFlmPPmj2p2Ugl3r6ATu/UU1v77DXNcehiBg9zsr1dREyA/dJQ==
- optionalDependencies:
- "@types/trusted-types" "^2.0.7"
-
-eastasianwidth@^0.2.0:
- version "0.2.0"
- resolved "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz"
- integrity sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==
-
-electron-to-chromium@^1.5.73:
- version "1.5.132"
- resolved "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.132.tgz"
- integrity sha512-QgX9EBvWGmvSRa74zqfnG7+Eno0Ak0vftBll0Pt2/z5b3bEGYL6OUXLgKPtvx73dn3dvwrlyVkjPKRRlhLYTEg==
-
-emittery@^0.13.1:
- version "0.13.1"
- resolved "https://registry.npmjs.org/emittery/-/emittery-0.13.1.tgz"
- integrity sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==
-
-emoji-regex-xs@^1.0.0:
- version "1.0.0"
- resolved "https://registry.npmjs.org/emoji-regex-xs/-/emoji-regex-xs-1.0.0.tgz"
- integrity sha512-LRlerrMYoIDrT6jgpeZ2YYl/L8EulRTt5hQcYjy5AInh7HWXKimpqx68aknBFpGL2+/IcogTcaydJEgaTmOpDg==
-
-emoji-regex@^10.3.0:
- version "10.4.0"
-
-emoji-regex@^8.0.0:
- version "8.0.0"
- resolved "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz"
- integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==
-
-emoji-regex@^9.2.2:
- version "9.2.2"
- resolved "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz"
- integrity sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==
-
-entities@^4.5.0:
- version "4.5.0"
- resolved "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz"
- integrity sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==
-
-environment@^1.0.0:
- version "1.1.0"
- resolved "https://registry.npmjs.org/environment/-/environment-1.1.0.tgz"
- integrity sha512-xUtoPkMggbz0MPyPiIWr1Kp4aeWJjDZ6SMvURhimjdZgsRuDplF5/s9hcgGhyXMhs+6vpnuoiZ2kFiu3FMnS8Q==
-
-error-ex@^1.3.1:
- version "1.3.2"
- resolved "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz"
- integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==
- dependencies:
- is-arrayish "^0.2.1"
-
-esast-util-from-estree@^2.0.0:
- version "2.0.0"
- resolved "https://registry.npmjs.org/esast-util-from-estree/-/esast-util-from-estree-2.0.0.tgz"
- integrity sha512-4CyanoAudUSBAn5K13H4JhsMH6L9ZP7XbLVe/dKybkxMO7eDyLsT8UHl9TRNrU2Gr9nz+FovfSIjuXWJ81uVwQ==
- dependencies:
- "@types/estree-jsx" "^1.0.0"
- devlop "^1.0.0"
- estree-util-visit "^2.0.0"
- unist-util-position-from-estree "^2.0.0"
-
-esast-util-from-js@^2.0.0:
- version "2.0.1"
- resolved "https://registry.npmjs.org/esast-util-from-js/-/esast-util-from-js-2.0.1.tgz"
- integrity sha512-8Ja+rNJ0Lt56Pcf3TAmpBZjmx8ZcK5Ts4cAzIOjsjevg9oSXJnl6SUQ2EevU8tv3h6ZLWmoKL5H4fgWvdvfETw==
- dependencies:
- "@types/estree-jsx" "^1.0.0"
- acorn "^8.0.0"
- esast-util-from-estree "^2.0.0"
- vfile-message "^4.0.0"
-
-escalade@^3.1.1, escalade@^3.2.0:
- version "3.2.0"
- resolved "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz"
- integrity sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==
-
-escape-string-regexp@^2.0.0:
- version "2.0.0"
- resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz"
- integrity sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==
-
-escape-string-regexp@^5.0.0:
- version "5.0.0"
- resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz"
- integrity sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==
-
-esm@^3.2.25:
- version "3.2.25"
- resolved "https://registry.npmjs.org/esm/-/esm-3.2.25.tgz"
- integrity sha512-U1suiZ2oDVWv4zPO56S0NcR5QriEahGtdN2OR6FiOG4WJvcjBVFB0qI4+eKoWFH483PKGuLuu6V8Z4T5g63UVA==
-
-esprima@^4.0.0:
- version "4.0.1"
- resolved "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz"
- integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==
-
-estree-util-attach-comments@^3.0.0:
- version "3.0.0"
- resolved "https://registry.npmjs.org/estree-util-attach-comments/-/estree-util-attach-comments-3.0.0.tgz"
- integrity sha512-cKUwm/HUcTDsYh/9FgnuFqpfquUbwIqwKM26BVCGDPVgvaCl/nDCCjUfiLlx6lsEZ3Z4RFxNbOQ60pkaEwFxGw==
- dependencies:
- "@types/estree" "^1.0.0"
-
-estree-util-build-jsx@^3.0.0:
- version "3.0.1"
- resolved "https://registry.npmjs.org/estree-util-build-jsx/-/estree-util-build-jsx-3.0.1.tgz"
- integrity sha512-8U5eiL6BTrPxp/CHbs2yMgP8ftMhR5ww1eIKoWRMlqvltHF8fZn5LRDvTKuxD3DUn+shRbLGqXemcP51oFCsGQ==
- dependencies:
- "@types/estree-jsx" "^1.0.0"
- devlop "^1.0.0"
- estree-util-is-identifier-name "^3.0.0"
- estree-walker "^3.0.0"
-
-estree-util-is-identifier-name@^2.0.0:
- version "2.1.0"
- resolved "https://registry.npmjs.org/estree-util-is-identifier-name/-/estree-util-is-identifier-name-2.1.0.tgz"
- integrity sha512-bEN9VHRyXAUOjkKVQVvArFym08BTWB0aJPppZZr0UNyAqWsLaVfAqP7hbaTJjzHifmB5ebnR8Wm7r7yGN/HonQ==
-
-estree-util-is-identifier-name@^3.0.0:
- version "3.0.0"
- resolved "https://registry.npmjs.org/estree-util-is-identifier-name/-/estree-util-is-identifier-name-3.0.0.tgz"
- integrity sha512-hFtqIDZTIUZ9BXLb8y4pYGyk6+wekIivNVTcmvk8NoOh+VeRn5y6cEHzbURrWbfp1fIqdVipilzj+lfaadNZmg==
-
-estree-util-scope@^1.0.0:
- version "1.0.0"
- resolved "https://registry.npmjs.org/estree-util-scope/-/estree-util-scope-1.0.0.tgz"
- integrity sha512-2CAASclonf+JFWBNJPndcOpA8EMJwa0Q8LUFJEKqXLW6+qBvbFZuF5gItbQOs/umBUkjviCSDCbBwU2cXbmrhQ==
- dependencies:
- "@types/estree" "^1.0.0"
- devlop "^1.0.0"
-
-estree-util-to-js@^2.0.0:
- version "2.0.0"
- resolved "https://registry.npmjs.org/estree-util-to-js/-/estree-util-to-js-2.0.0.tgz"
- integrity sha512-WDF+xj5rRWmD5tj6bIqRi6CkLIXbbNQUcxQHzGysQzvHmdYG2G7p/Tf0J0gpxGgkeMZNTIjT/AoSvC9Xehcgdg==
- dependencies:
- "@types/estree-jsx" "^1.0.0"
- astring "^1.8.0"
- source-map "^0.7.0"
-
-estree-util-value-to-estree@^1.3.0:
- version "1.3.0"
- resolved "https://registry.npmjs.org/estree-util-value-to-estree/-/estree-util-value-to-estree-1.3.0.tgz"
- integrity sha512-Y+ughcF9jSUJvncXwqRageavjrNPAI+1M/L3BI3PyLp1nmgYTGUXU6t5z1Y7OWuThoDdhPME07bQU+d5LxdJqw==
- dependencies:
- is-plain-obj "^3.0.0"
-
-estree-util-value-to-estree@^3.0.1:
- version "3.3.2"
- resolved "https://registry.npmjs.org/estree-util-value-to-estree/-/estree-util-value-to-estree-3.3.2.tgz"
- integrity sha512-hYH1aSvQI63Cvq3T3loaem6LW4u72F187zW4FHpTrReJSm6W66vYTFNO1vH/chmcOulp1HlAj1pxn8Ag0oXI5Q==
- dependencies:
- "@types/estree" "^1.0.0"
-
-estree-util-visit@^2.0.0:
- version "2.0.0"
- resolved "https://registry.npmjs.org/estree-util-visit/-/estree-util-visit-2.0.0.tgz"
- integrity sha512-m5KgiH85xAhhW8Wta0vShLcUvOsh3LLPI2YVwcbio1l7E09NTLL1EyMZFM1OyWowoH0skScNbhOPl4kcBgzTww==
- dependencies:
- "@types/estree-jsx" "^1.0.0"
- "@types/unist" "^3.0.0"
-
-estree-walker@^3.0.0:
- version "3.0.3"
- resolved "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz"
- integrity sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==
- dependencies:
- "@types/estree" "^1.0.0"
-
-eventemitter3@^5.0.1:
- version "5.0.1"
- resolved "https://registry.npmjs.org/eventemitter3/-/eventemitter3-5.0.1.tgz"
- integrity sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==
-
-execa@^5.0.0:
- version "5.1.1"
- resolved "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz"
- integrity sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==
- dependencies:
- cross-spawn "^7.0.3"
- get-stream "^6.0.0"
- human-signals "^2.1.0"
- is-stream "^2.0.0"
- merge-stream "^2.0.0"
- npm-run-path "^4.0.1"
- onetime "^5.1.2"
- signal-exit "^3.0.3"
- strip-final-newline "^2.0.0"
-
-execa@^8.0.1, execa@~8.0.1:
- version "8.0.1"
- dependencies:
- cross-spawn "^7.0.3"
- get-stream "^8.0.1"
- human-signals "^5.0.0"
- is-stream "^3.0.0"
- merge-stream "^2.0.0"
- npm-run-path "^5.1.0"
- onetime "^6.0.0"
- signal-exit "^4.1.0"
- strip-final-newline "^3.0.0"
-
-exit@^0.1.2:
- version "0.1.2"
- resolved "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz"
- integrity sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==
-
-expect@^29.7.0:
- version "29.7.0"
- resolved "https://registry.npmjs.org/expect/-/expect-29.7.0.tgz"
- integrity sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==
- dependencies:
- "@jest/expect-utils" "^29.7.0"
- jest-get-type "^29.6.3"
- jest-matcher-utils "^29.7.0"
- jest-message-util "^29.7.0"
- jest-util "^29.7.0"
-
-exsolve@^1.0.1:
- version "1.0.4"
- resolved "https://registry.npmjs.org/exsolve/-/exsolve-1.0.4.tgz"
- integrity sha512-xsZH6PXaER4XoV+NiT7JHp1bJodJVT+cxeSH1G0f0tlT0lJqYuHUP3bUx2HtfTDvOagMINYp8rsqusxud3RXhw==
-
-extend-shallow@^2.0.1:
- version "2.0.1"
- resolved "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz"
- integrity sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==
- dependencies:
- is-extendable "^0.1.0"
-
-extend@^3.0.0:
- version "3.0.2"
- resolved "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz"
- integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==
-
-fast-glob@^3.2.12, fast-glob@^3.3.2:
- version "3.3.3"
- resolved "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz"
- integrity sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==
- dependencies:
- "@nodelib/fs.stat" "^2.0.2"
- "@nodelib/fs.walk" "^1.2.3"
- glob-parent "^5.1.2"
- merge2 "^1.3.0"
- micromatch "^4.0.8"
-
-fast-json-stable-stringify@^2.1.0:
- 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==
-
-fastq@^1.6.0:
- version "1.19.1"
- resolved "https://registry.npmjs.org/fastq/-/fastq-1.19.1.tgz"
- integrity sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==
- dependencies:
- reusify "^1.0.4"
-
-fault@^2.0.0:
- version "2.0.1"
- resolved "https://registry.npmjs.org/fault/-/fault-2.0.1.tgz"
- integrity sha512-WtySTkS4OKev5JtpHXnib4Gxiurzh5NCGvWrFaZ34m6JehfTUhKZvn9njTfw48t6JumVQOmrKqpmGcdwxnhqBQ==
- dependencies:
- format "^0.2.0"
-
-fb-watchman@^2.0.0:
- version "2.0.2"
- resolved "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.2.tgz"
- integrity sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==
- dependencies:
- bser "2.1.1"
-
-fill-range@^7.1.1:
- version "7.1.1"
- resolved "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz"
- integrity sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==
- dependencies:
- to-regex-range "^5.0.1"
-
-find-up@^4.0.0, find-up@^4.1.0:
- 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"
-
-flexsearch@^0.7.43:
- version "0.7.43"
- resolved "https://registry.npmjs.org/flexsearch/-/flexsearch-0.7.43.tgz"
- integrity sha512-c5o/+Um8aqCSOXGcZoqZOm+NqtVwNsvVpWv6lfmSclU954O3wvQKxxK8zj74fPaSJbXpSLTs4PRhh+wnoCXnKg==
-
-foreground-child@^3.1.0:
- version "3.3.1"
- resolved "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.1.tgz"
- integrity sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==
- dependencies:
- cross-spawn "^7.0.6"
- signal-exit "^4.0.1"
-
-format@^0.2.0:
- version "0.2.2"
- resolved "https://registry.npmjs.org/format/-/format-0.2.2.tgz"
- integrity sha512-wzsgA6WOq+09wrU1tsJ09udeR/YZRaeArL9e1wPbFg3GG2yDnC2ldKpxs4xunpFF9DgqCqOIra3bc1HWrJ37Ww==
-
-fraction.js@^4.3.7:
- version "4.3.7"
- resolved "https://registry.npmjs.org/fraction.js/-/fraction.js-4.3.7.tgz"
- integrity sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==
-
-fs.realpath@^1.0.0:
- version "1.0.0"
- resolved "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz"
- integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==
-
-fsevents@^2.3.2, fsevents@~2.3.2:
- version "2.3.3"
- resolved "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz"
- integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==
-
-function-bind@^1.1.2:
- version "1.1.2"
- resolved "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz"
- integrity sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==
-
-gensync@^1.0.0-beta.2:
- version "1.0.0-beta.2"
- resolved "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz"
- integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==
-
-get-caller-file@^2.0.5:
- version "2.0.5"
- resolved "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz"
- integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==
-
-get-east-asian-width@^1.0.0:
- version "1.3.0"
- resolved "https://registry.npmjs.org/get-east-asian-width/-/get-east-asian-width-1.3.0.tgz"
- integrity sha512-vpeMIQKxczTD/0s2CdEWHcb0eeJe6TFjxb+J5xgX7hScxqrGuyjmv4c1D4A/gelKfyox0gJJwIHF+fLjeaM8kQ==
-
-get-package-type@^0.1.0:
- version "0.1.0"
- resolved "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz"
- integrity sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==
-
-get-stream@^6.0.0:
- version "6.0.1"
- resolved "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz"
- integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==
-
-get-stream@^8.0.1:
- version "8.0.1"
- resolved "https://registry.npmjs.org/get-stream/-/get-stream-8.0.1.tgz"
- integrity sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==
-
-github-slugger@^2.0.0:
- version "2.0.0"
- resolved "https://registry.npmjs.org/github-slugger/-/github-slugger-2.0.0.tgz"
- integrity sha512-IaOQ9puYtjrkq7Y0Ygl9KDZnrf/aiUJYUpVf89y8kyaxbRG7Y1SrX/jaumrv81vc61+kiMempujsM3Yw7w5qcw==
-
-glob-parent@^5.1.2:
- version "5.1.2"
- resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz"
- integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==
- dependencies:
- is-glob "^4.0.1"
-
-glob-parent@^6.0.2:
- version "6.0.2"
- resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz"
- integrity sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==
- dependencies:
- is-glob "^4.0.3"
-
-glob-parent@~5.1.2:
- version "5.1.2"
- resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz"
- integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==
- dependencies:
- is-glob "^4.0.1"
-
-glob@^10.3.10:
- version "10.4.5"
- resolved "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz"
- integrity sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==
- 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"
-
-glob@^7.1.3, glob@^7.1.4:
- version "7.2.3"
- resolved "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz"
- integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==
- dependencies:
- fs.realpath "^1.0.0"
- inflight "^1.0.4"
- inherits "2"
- minimatch "^3.1.1"
- once "^1.3.0"
- path-is-absolute "^1.0.0"
-
-globals@^11.1.0:
- version "11.12.0"
- resolved "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz"
- integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==
-
-globals@^15.14.0:
- version "15.15.0"
- resolved "https://registry.npmjs.org/globals/-/globals-15.15.0.tgz"
- integrity sha512-7ACyT3wmyp3I61S4fG682L0VA2RGD9otkqGJIwNUMF1SWUombIIk+af1unuDYgMm082aHYwD+mzJvv9Iu8dsgg==
-
-graceful-fs@^4.2.11, graceful-fs@^4.2.9:
- 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==
-
-gray-matter@^4.0.3:
- version "4.0.3"
- resolved "https://registry.npmjs.org/gray-matter/-/gray-matter-4.0.3.tgz"
- integrity sha512-5v6yZd4JK3eMI3FqqCouswVqwugaA9r4dNZB1wwcmrD02QkV5H0y7XBQW8QwQqEaZY1pM9aqORSORhJRdNK44Q==
- dependencies:
- js-yaml "^3.13.1"
- kind-of "^6.0.2"
- section-matter "^1.0.0"
- strip-bom-string "^1.0.0"
-
-hachure-fill@^0.5.2:
- version "0.5.2"
- resolved "https://registry.npmjs.org/hachure-fill/-/hachure-fill-0.5.2.tgz"
- integrity sha512-3GKBOn+m2LX9iq+JC1064cSFprJY4jL1jCXTcpnfER5HYE2l/4EfWSGzkPa/ZDBmYI0ZOEj5VHV/eKnPGkHuOg==
-
-has-flag@^4.0.0:
- version "4.0.0"
- resolved "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz"
- integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==
-
-hasown@^2.0.2:
- 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"
-
-hast-util-from-dom@^5.0.0:
- version "5.0.1"
- resolved "https://registry.npmjs.org/hast-util-from-dom/-/hast-util-from-dom-5.0.1.tgz"
- integrity sha512-N+LqofjR2zuzTjCPzyDUdSshy4Ma6li7p/c3pA78uTwzFgENbgbUrm2ugwsOdcjI1muO+o6Dgzp9p8WHtn/39Q==
- dependencies:
- "@types/hast" "^3.0.0"
- hastscript "^9.0.0"
- web-namespaces "^2.0.0"
-
-hast-util-from-html-isomorphic@^2.0.0:
- version "2.0.0"
- resolved "https://registry.npmjs.org/hast-util-from-html-isomorphic/-/hast-util-from-html-isomorphic-2.0.0.tgz"
- integrity sha512-zJfpXq44yff2hmE0XmwEOzdWin5xwH+QIhMLOScpX91e/NSGPsAzNCvLQDIEPyO2TXi+lBmU6hjLIhV8MwP2kw==
- dependencies:
- "@types/hast" "^3.0.0"
- hast-util-from-dom "^5.0.0"
- hast-util-from-html "^2.0.0"
- unist-util-remove-position "^5.0.0"
-
-hast-util-from-html@^2.0.0:
- version "2.0.3"
- resolved "https://registry.npmjs.org/hast-util-from-html/-/hast-util-from-html-2.0.3.tgz"
- integrity sha512-CUSRHXyKjzHov8yKsQjGOElXy/3EKpyX56ELnkHH34vDVw1N1XSQ1ZcAvTyAPtGqLTuKP/uxM+aLkSPqF/EtMw==
- dependencies:
- "@types/hast" "^3.0.0"
- devlop "^1.1.0"
- hast-util-from-parse5 "^8.0.0"
- parse5 "^7.0.0"
- vfile "^6.0.0"
- vfile-message "^4.0.0"
-
-hast-util-from-parse5@^8.0.0:
- version "8.0.3"
- resolved "https://registry.npmjs.org/hast-util-from-parse5/-/hast-util-from-parse5-8.0.3.tgz"
- integrity sha512-3kxEVkEKt0zvcZ3hCRYI8rqrgwtlIOFMWkbclACvjlDw8Li9S2hk/d51OI0nr/gIpdMHNepwgOKqZ/sy0Clpyg==
- dependencies:
- "@types/hast" "^3.0.0"
- "@types/unist" "^3.0.0"
- devlop "^1.0.0"
- hastscript "^9.0.0"
- property-information "^7.0.0"
- vfile "^6.0.0"
- vfile-location "^5.0.0"
- web-namespaces "^2.0.0"
-
-hast-util-is-element@^3.0.0:
- version "3.0.0"
- resolved "https://registry.npmjs.org/hast-util-is-element/-/hast-util-is-element-3.0.0.tgz"
- integrity sha512-Val9mnv2IWpLbNPqc/pUem+a7Ipj2aHacCwgNfTiK0vJKl0LF+4Ba4+v1oPHFpf3bLYmreq0/l3Gud9S5OH42g==
- dependencies:
- "@types/hast" "^3.0.0"
-
-hast-util-parse-selector@^4.0.0:
- version "4.0.0"
- resolved "https://registry.npmjs.org/hast-util-parse-selector/-/hast-util-parse-selector-4.0.0.tgz"
- integrity sha512-wkQCkSYoOGCRKERFWcxMVMOcYE2K1AaNLU8DXS9arxnLOUEWbOXKXiJUNzEpqZ3JOKpnha3jkFrumEjVliDe7A==
- dependencies:
- "@types/hast" "^3.0.0"
-
-hast-util-raw@^9.0.0:
- version "9.1.0"
- resolved "https://registry.npmjs.org/hast-util-raw/-/hast-util-raw-9.1.0.tgz"
- integrity sha512-Y8/SBAHkZGoNkpzqqfCldijcuUKh7/su31kEBp67cFY09Wy0mTRgtsLYsiIxMJxlu0f6AA5SUTbDR8K0rxnbUw==
- dependencies:
- "@types/hast" "^3.0.0"
- "@types/unist" "^3.0.0"
- "@ungap/structured-clone" "^1.0.0"
- hast-util-from-parse5 "^8.0.0"
- hast-util-to-parse5 "^8.0.0"
- html-void-elements "^3.0.0"
- mdast-util-to-hast "^13.0.0"
- parse5 "^7.0.0"
- unist-util-position "^5.0.0"
- unist-util-visit "^5.0.0"
- vfile "^6.0.0"
- web-namespaces "^2.0.0"
- zwitch "^2.0.0"
-
-hast-util-to-estree@^3.0.0, hast-util-to-estree@^3.1.0:
- version "3.1.3"
- resolved "https://registry.npmjs.org/hast-util-to-estree/-/hast-util-to-estree-3.1.3.tgz"
- integrity sha512-48+B/rJWAp0jamNbAAf9M7Uf//UVqAoMmgXhBdxTDJLGKY+LRnZ99qcG+Qjl5HfMpYNzS5v4EAwVEF34LeAj7w==
- dependencies:
- "@types/estree" "^1.0.0"
- "@types/estree-jsx" "^1.0.0"
- "@types/hast" "^3.0.0"
- comma-separated-tokens "^2.0.0"
- devlop "^1.0.0"
- estree-util-attach-comments "^3.0.0"
- estree-util-is-identifier-name "^3.0.0"
- hast-util-whitespace "^3.0.0"
- mdast-util-mdx-expression "^2.0.0"
- mdast-util-mdx-jsx "^3.0.0"
- mdast-util-mdxjs-esm "^2.0.0"
- property-information "^7.0.0"
- space-separated-tokens "^2.0.0"
- style-to-js "^1.0.0"
- unist-util-position "^5.0.0"
- zwitch "^2.0.0"
-
-hast-util-to-html@^9.0.4:
- version "9.0.5"
- resolved "https://registry.npmjs.org/hast-util-to-html/-/hast-util-to-html-9.0.5.tgz"
- integrity sha512-OguPdidb+fbHQSU4Q4ZiLKnzWo8Wwsf5bZfbvu7//a9oTYoqD/fWpe96NuHkoS9h0ccGOTe0C4NGXdtS0iObOw==
- dependencies:
- "@types/hast" "^3.0.0"
- "@types/unist" "^3.0.0"
- ccount "^2.0.0"
- comma-separated-tokens "^2.0.0"
- hast-util-whitespace "^3.0.0"
- html-void-elements "^3.0.0"
- mdast-util-to-hast "^13.0.0"
- property-information "^7.0.0"
- space-separated-tokens "^2.0.0"
- stringify-entities "^4.0.0"
- zwitch "^2.0.4"
-
-hast-util-to-jsx-runtime@^2.0.0:
- version "2.3.6"
- resolved "https://registry.npmjs.org/hast-util-to-jsx-runtime/-/hast-util-to-jsx-runtime-2.3.6.tgz"
- integrity sha512-zl6s8LwNyo1P9uw+XJGvZtdFF1GdAkOg8ujOw+4Pyb76874fLps4ueHXDhXWdk6YHQ6OgUtinliG7RsYvCbbBg==
- dependencies:
- "@types/estree" "^1.0.0"
- "@types/hast" "^3.0.0"
- "@types/unist" "^3.0.0"
- comma-separated-tokens "^2.0.0"
- devlop "^1.0.0"
- estree-util-is-identifier-name "^3.0.0"
- hast-util-whitespace "^3.0.0"
- mdast-util-mdx-expression "^2.0.0"
- mdast-util-mdx-jsx "^3.0.0"
- mdast-util-mdxjs-esm "^2.0.0"
- property-information "^7.0.0"
- space-separated-tokens "^2.0.0"
- style-to-js "^1.0.0"
- unist-util-position "^5.0.0"
- vfile-message "^4.0.0"
-
-hast-util-to-parse5@^8.0.0:
- version "8.0.0"
- resolved "https://registry.npmjs.org/hast-util-to-parse5/-/hast-util-to-parse5-8.0.0.tgz"
- integrity sha512-3KKrV5ZVI8if87DVSi1vDeByYrkGzg4mEfeu4alwgmmIeARiBLKCZS2uw5Gb6nU9x9Yufyj3iudm6i7nl52PFw==
- dependencies:
- "@types/hast" "^3.0.0"
- comma-separated-tokens "^2.0.0"
- devlop "^1.0.0"
- property-information "^6.0.0"
- space-separated-tokens "^2.0.0"
- web-namespaces "^2.0.0"
- zwitch "^2.0.0"
-
-hast-util-to-string@^3.0.0:
- version "3.0.1"
- resolved "https://registry.npmjs.org/hast-util-to-string/-/hast-util-to-string-3.0.1.tgz"
- integrity sha512-XelQVTDWvqcl3axRfI0xSeoVKzyIFPwsAGSLIsKdJKQMXDYJS4WYrBNF/8J7RdhIcFI2BOHgAifggsvsxp/3+A==
- dependencies:
- "@types/hast" "^3.0.0"
-
-hast-util-to-text@^4.0.0:
- version "4.0.2"
- resolved "https://registry.npmjs.org/hast-util-to-text/-/hast-util-to-text-4.0.2.tgz"
- integrity sha512-KK6y/BN8lbaq654j7JgBydev7wuNMcID54lkRav1P0CaE1e47P72AWWPiGKXTJU271ooYzcvTAn/Zt0REnvc7A==
- dependencies:
- "@types/hast" "^3.0.0"
- "@types/unist" "^3.0.0"
- hast-util-is-element "^3.0.0"
- unist-util-find-after "^5.0.0"
-
-hast-util-whitespace@^3.0.0:
- version "3.0.0"
- resolved "https://registry.npmjs.org/hast-util-whitespace/-/hast-util-whitespace-3.0.0.tgz"
- integrity sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw==
- dependencies:
- "@types/hast" "^3.0.0"
-
-hastscript@^9.0.0:
- version "9.0.1"
- resolved "https://registry.npmjs.org/hastscript/-/hastscript-9.0.1.tgz"
- integrity sha512-g7df9rMFX/SPi34tyGCyUBREQoKkapwdY/T04Qn9TDWfHhAYt4/I0gMVirzK5wEzeUqIjEB+LXC/ypb7Aqno5w==
- dependencies:
- "@types/hast" "^3.0.0"
- comma-separated-tokens "^2.0.0"
- hast-util-parse-selector "^4.0.0"
- property-information "^7.0.0"
- space-separated-tokens "^2.0.0"
-
-html-escaper@^2.0.0:
- version "2.0.2"
- resolved "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz"
- integrity sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==
-
-html-url-attributes@^3.0.0:
- version "3.0.1"
- resolved "https://registry.npmjs.org/html-url-attributes/-/html-url-attributes-3.0.1.tgz"
- integrity sha512-ol6UPyBWqsrO6EJySPz2O7ZSr856WDrEzM5zMqp+FJJLGMW35cLYmmZnl0vztAZxRUoNZJFTCohfjuIJ8I4QBQ==
-
-html-void-elements@^3.0.0:
- version "3.0.0"
- resolved "https://registry.npmjs.org/html-void-elements/-/html-void-elements-3.0.0.tgz"
- integrity sha512-bEqo66MRXsUGxWHV5IP0PUiAWwoEjba4VCzg0LjFJBpchPaTfyfCKTG6bc5F8ucKec3q5y6qOdGyYTSBEvhCrg==
-
-human-signals@^2.1.0:
- version "2.1.0"
- resolved "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz"
- integrity sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==
-
-human-signals@^5.0.0:
- version "5.0.0"
- resolved "https://registry.npmjs.org/human-signals/-/human-signals-5.0.0.tgz"
- integrity sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==
-
-iconv-lite@0.6:
- version "0.6.3"
- resolved "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz"
- integrity sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==
- dependencies:
- safer-buffer ">= 2.1.2 < 3.0.0"
-
-import-local@^3.0.2:
- 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"
-
-imurmurhash@^0.1.4:
- version "0.1.4"
- resolved "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz"
- integrity sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==
-
-inflight@^1.0.4:
- version "1.0.6"
- resolved "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz"
- integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==
- dependencies:
- once "^1.3.0"
- wrappy "1"
-
-inherits@2:
- version "2.0.4"
- resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz"
- integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==
-
-inline-style-parser@0.2.4:
- version "0.2.4"
- resolved "https://registry.npmjs.org/inline-style-parser/-/inline-style-parser-0.2.4.tgz"
- integrity sha512-0aO8FkhNZlj/ZIbNi7Lxxr12obT7cL1moPfE4tg1LkX7LlLfC6DeX4l2ZEud1ukP9jNQyNnfzQVqwbwmAATY4Q==
-
-internmap@^1.0.0:
- version "1.0.1"
- resolved "https://registry.npmjs.org/internmap/-/internmap-1.0.1.tgz"
- integrity sha512-lDB5YccMydFBtasVtxnZ3MRBHuaoE8GKsppq+EchKL2U4nK/DmEpPHNH8MZe5HkMtpSiTSOZwfN0tzYjO/lJEw==
-
-"internmap@1 - 2":
- version "2.0.3"
- resolved "https://registry.npmjs.org/internmap/-/internmap-2.0.3.tgz"
- integrity sha512-5Hh7Y1wQbvY5ooGgPbDaL5iYLAPzMTUrjMulskHLH6wnv/A+1q5rgEaiuqEjB+oxGXIVZs1FF+R/KPN3ZSQYYg==
-
-is-alphabetical@^2.0.0:
- version "2.0.1"
- resolved "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-2.0.1.tgz"
- integrity sha512-FWyyY60MeTNyeSRpkM2Iry0G9hpr7/9kD40mD/cGQEuilcZYS4okz8SN2Q6rLCJ8gbCt6fN+rC+6tMGS99LaxQ==
-
-is-alphanumerical@^2.0.0:
- version "2.0.1"
- resolved "https://registry.npmjs.org/is-alphanumerical/-/is-alphanumerical-2.0.1.tgz"
- integrity sha512-hmbYhX/9MUMF5uh7tOXyK/n0ZvWpad5caBA17GsC6vyuCqaWliRG5K1qS9inmUhEMaOBIW7/whAnSwveW/LtZw==
- dependencies:
- is-alphabetical "^2.0.0"
- is-decimal "^2.0.0"
-
-is-arrayish@^0.2.1:
- version "0.2.1"
- resolved "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz"
- integrity sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==
-
-is-arrayish@^0.3.1:
- version "0.3.2"
- resolved "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz"
- integrity sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==
-
-is-binary-path@~2.1.0:
- version "2.1.0"
- resolved "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz"
- integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==
- dependencies:
- binary-extensions "^2.0.0"
-
-is-core-module@^2.16.0:
- version "2.16.1"
- resolved "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.1.tgz"
- integrity sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==
- dependencies:
- hasown "^2.0.2"
-
-is-decimal@^2.0.0:
- version "2.0.1"
- resolved "https://registry.npmjs.org/is-decimal/-/is-decimal-2.0.1.tgz"
- integrity sha512-AAB9hiomQs5DXWcRB1rqsxGUstbRroFOPPVAomNk/3XHR5JyEZChOyTWe2oayKnsSsr/kcGqF+z6yuH6HHpN0A==
-
-is-docker@^3.0.0:
- version "3.0.0"
- resolved "https://registry.npmjs.org/is-docker/-/is-docker-3.0.0.tgz"
- integrity sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==
-
-is-extendable@^0.1.0:
- version "0.1.1"
- resolved "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz"
- integrity sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==
-
-is-extglob@^2.1.1:
- version "2.1.1"
- resolved "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz"
- integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==
-
-is-fullwidth-code-point@^3.0.0:
- 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==
-
-is-fullwidth-code-point@^4.0.0:
- version "4.0.0"
-
-is-fullwidth-code-point@^5.0.0:
- version "5.0.0"
- dependencies:
- get-east-asian-width "^1.0.0"
-
-is-generator-fn@^2.0.0:
- version "2.1.0"
- resolved "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz"
- integrity sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==
-
-is-glob@^4.0.1, is-glob@^4.0.3, is-glob@~4.0.1:
- version "4.0.3"
- resolved "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz"
- integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==
- dependencies:
- is-extglob "^2.1.1"
-
-is-hexadecimal@^2.0.0:
- version "2.0.1"
- resolved "https://registry.npmjs.org/is-hexadecimal/-/is-hexadecimal-2.0.1.tgz"
- integrity sha512-DgZQp241c8oO6cA1SbTEWiXeoxV42vlcJxgH+B3hi1AiqqKruZR3ZGF8In3fj4+/y/7rHvlOZLZtgJ/4ttYGZg==
-
-is-inside-container@^1.0.0:
- version "1.0.0"
- resolved "https://registry.npmjs.org/is-inside-container/-/is-inside-container-1.0.0.tgz"
- integrity sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==
- dependencies:
- is-docker "^3.0.0"
-
-is-number@^7.0.0:
- version "7.0.0"
- resolved "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz"
- integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==
-
-is-plain-obj@^3.0.0:
- version "3.0.0"
- resolved "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-3.0.0.tgz"
- integrity sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==
-
-is-plain-obj@^4.0.0:
- version "4.1.0"
- resolved "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.1.0.tgz"
- integrity sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==
-
-is-stream@^2.0.0:
- version "2.0.1"
- resolved "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz"
- integrity sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==
-
-is-stream@^3.0.0:
- version "3.0.0"
- resolved "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz"
- integrity sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==
-
-is-wsl@^3.1.0:
- version "3.1.0"
- resolved "https://registry.npmjs.org/is-wsl/-/is-wsl-3.1.0.tgz"
- integrity sha512-UcVfVfaK4Sc4m7X3dUSoHoozQGBEFeDC+zVo06t98xe8CzHSZZBekNXH+tu0NalHolcJ/QAGqS46Hef7QXBIMw==
- dependencies:
- is-inside-container "^1.0.0"
-
-is64bit@^2.0.0:
- version "2.0.0"
- resolved "https://registry.npmjs.org/is64bit/-/is64bit-2.0.0.tgz"
- integrity sha512-jv+8jaWCl0g2lSBkNSVXdzfBA0npK1HGC2KtWM9FumFRoGS94g3NbCCLVnCYHLjp4GrW2KZeeSTMo5ddtznmGw==
- dependencies:
- system-architecture "^0.1.0"
-
-isexe@^2.0.0:
- version "2.0.0"
- resolved "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz"
- integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==
-
-istanbul-lib-coverage@^3.0.0, istanbul-lib-coverage@^3.2.0:
- version "3.2.2"
- resolved "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz"
- integrity sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==
-
-istanbul-lib-instrument@^5.0.4:
- version "5.2.1"
- resolved "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz"
- integrity sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==
- dependencies:
- "@babel/core" "^7.12.3"
- "@babel/parser" "^7.14.7"
- "@istanbuljs/schema" "^0.1.2"
- istanbul-lib-coverage "^3.2.0"
- semver "^6.3.0"
-
-istanbul-lib-instrument@^6.0.0:
- version "6.0.3"
- resolved "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-6.0.3.tgz"
- integrity sha512-Vtgk7L/R2JHyyGW07spoFlB8/lpjiOLTjMdms6AFMraYt3BaJauod/NGrfnVG/y4Ix1JEuMRPDPEj2ua+zz1/Q==
- dependencies:
- "@babel/core" "^7.23.9"
- "@babel/parser" "^7.23.9"
- "@istanbuljs/schema" "^0.1.3"
- istanbul-lib-coverage "^3.2.0"
- semver "^7.5.4"
-
-istanbul-lib-report@^3.0.0:
- version "3.0.1"
- resolved "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz"
- integrity sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==
- dependencies:
- istanbul-lib-coverage "^3.0.0"
- make-dir "^4.0.0"
- supports-color "^7.1.0"
-
-istanbul-lib-source-maps@^4.0.0:
- version "4.0.1"
- resolved "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz"
- integrity sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==
- dependencies:
- debug "^4.1.1"
- istanbul-lib-coverage "^3.0.0"
- source-map "^0.6.1"
-
-istanbul-reports@^3.1.3:
- version "3.1.7"
- resolved "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.7.tgz"
- integrity sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g==
- dependencies:
- html-escaper "^2.0.0"
- istanbul-lib-report "^3.0.0"
-
-jackspeak@^3.1.2:
- version "3.4.3"
- resolved "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz"
- integrity sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==
- dependencies:
- "@isaacs/cliui" "^8.0.2"
- optionalDependencies:
- "@pkgjs/parseargs" "^0.11.0"
-
-jest-changed-files@^29.7.0:
- version "29.7.0"
- resolved "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-29.7.0.tgz"
- integrity sha512-fEArFiwf1BpQ+4bXSprcDc3/x4HSzL4al2tozwVpDFpsxALjLYdyiIK4e5Vz66GQJIbXJ82+35PtysofptNX2w==
- dependencies:
- execa "^5.0.0"
- jest-util "^29.7.0"
- p-limit "^3.1.0"
-
-jest-circus@^29.7.0:
- version "29.7.0"
- resolved "https://registry.npmjs.org/jest-circus/-/jest-circus-29.7.0.tgz"
- integrity sha512-3E1nCMgipcTkCocFwM90XXQab9bS+GMsjdpmPrlelaxwD93Ad8iVEjX/vvHPdLPnFf+L40u+5+iutRdA1N9myw==
- dependencies:
- "@jest/environment" "^29.7.0"
- "@jest/expect" "^29.7.0"
- "@jest/test-result" "^29.7.0"
- "@jest/types" "^29.6.3"
- "@types/node" "*"
- chalk "^4.0.0"
- co "^4.6.0"
- dedent "^1.0.0"
- is-generator-fn "^2.0.0"
- jest-each "^29.7.0"
- jest-matcher-utils "^29.7.0"
- jest-message-util "^29.7.0"
- jest-runtime "^29.7.0"
- jest-snapshot "^29.7.0"
- jest-util "^29.7.0"
- p-limit "^3.1.0"
- pretty-format "^29.7.0"
- pure-rand "^6.0.0"
- slash "^3.0.0"
- stack-utils "^2.0.3"
-
-jest-cli@^29.7.0:
- version "29.7.0"
- resolved "https://registry.npmjs.org/jest-cli/-/jest-cli-29.7.0.tgz"
- integrity sha512-OVVobw2IubN/GSYsxETi+gOe7Ka59EFMR/twOU3Jb2GnKKeMGJB5SGUUrEz3SFVmJASUdZUzy83sLNNQ2gZslg==
- dependencies:
- "@jest/core" "^29.7.0"
- "@jest/test-result" "^29.7.0"
- "@jest/types" "^29.6.3"
- chalk "^4.0.0"
- create-jest "^29.7.0"
- exit "^0.1.2"
- import-local "^3.0.2"
- jest-config "^29.7.0"
- jest-util "^29.7.0"
- jest-validate "^29.7.0"
- yargs "^17.3.1"
-
-jest-config@^29.7.0:
- version "29.7.0"
- resolved "https://registry.npmjs.org/jest-config/-/jest-config-29.7.0.tgz"
- integrity sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ==
- dependencies:
- "@babel/core" "^7.11.6"
- "@jest/test-sequencer" "^29.7.0"
- "@jest/types" "^29.6.3"
- babel-jest "^29.7.0"
- chalk "^4.0.0"
- ci-info "^3.2.0"
- deepmerge "^4.2.2"
- glob "^7.1.3"
- graceful-fs "^4.2.9"
- jest-circus "^29.7.0"
- jest-environment-node "^29.7.0"
- jest-get-type "^29.6.3"
- jest-regex-util "^29.6.3"
- jest-resolve "^29.7.0"
- jest-runner "^29.7.0"
- jest-util "^29.7.0"
- jest-validate "^29.7.0"
- micromatch "^4.0.4"
- parse-json "^5.2.0"
- pretty-format "^29.7.0"
- slash "^3.0.0"
- strip-json-comments "^3.1.1"
-
-jest-diff@^29.7.0:
- version "29.7.0"
- resolved "https://registry.npmjs.org/jest-diff/-/jest-diff-29.7.0.tgz"
- integrity sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==
- dependencies:
- chalk "^4.0.0"
- diff-sequences "^29.6.3"
- jest-get-type "^29.6.3"
- pretty-format "^29.7.0"
-
-jest-docblock@^29.7.0:
- version "29.7.0"
- resolved "https://registry.npmjs.org/jest-docblock/-/jest-docblock-29.7.0.tgz"
- integrity sha512-q617Auw3A612guyaFgsbFeYpNP5t2aoUNLwBUbc/0kD1R4t9ixDbyFTHd1nok4epoVFpr7PmeWHrhvuV3XaJ4g==
- dependencies:
- detect-newline "^3.0.0"
-
-jest-each@^29.7.0:
- version "29.7.0"
- resolved "https://registry.npmjs.org/jest-each/-/jest-each-29.7.0.tgz"
- integrity sha512-gns+Er14+ZrEoC5fhOfYCY1LOHHr0TI+rQUHZS8Ttw2l7gl+80eHc/gFf2Ktkw0+SIACDTeWvpFcv3B04VembQ==
- dependencies:
- "@jest/types" "^29.6.3"
- chalk "^4.0.0"
- jest-get-type "^29.6.3"
- jest-util "^29.7.0"
- pretty-format "^29.7.0"
-
-jest-environment-node@^29.7.0:
- version "29.7.0"
- resolved "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-29.7.0.tgz"
- integrity sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw==
- dependencies:
- "@jest/environment" "^29.7.0"
- "@jest/fake-timers" "^29.7.0"
- "@jest/types" "^29.6.3"
- "@types/node" "*"
- jest-mock "^29.7.0"
- jest-util "^29.7.0"
-
-jest-get-type@^29.6.3:
- version "29.6.3"
- resolved "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.6.3.tgz"
- integrity sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==
-
-jest-haste-map@^29.7.0:
- version "29.7.0"
- resolved "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-29.7.0.tgz"
- integrity sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA==
- dependencies:
- "@jest/types" "^29.6.3"
- "@types/graceful-fs" "^4.1.3"
- "@types/node" "*"
- anymatch "^3.0.3"
- fb-watchman "^2.0.0"
- graceful-fs "^4.2.9"
- jest-regex-util "^29.6.3"
- jest-util "^29.7.0"
- jest-worker "^29.7.0"
- micromatch "^4.0.4"
- walker "^1.0.8"
- optionalDependencies:
- fsevents "^2.3.2"
-
-jest-leak-detector@^29.7.0:
- version "29.7.0"
- resolved "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-29.7.0.tgz"
- integrity sha512-kYA8IJcSYtST2BY9I+SMC32nDpBT3J2NvWJx8+JCuCdl/CR1I4EKUJROiP8XtCcxqgTTBGJNdbB1A8XRKbTetw==
- dependencies:
- jest-get-type "^29.6.3"
- pretty-format "^29.7.0"
-
-jest-matcher-utils@^29.7.0:
- version "29.7.0"
- resolved "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-29.7.0.tgz"
- integrity sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g==
- dependencies:
- chalk "^4.0.0"
- jest-diff "^29.7.0"
- jest-get-type "^29.6.3"
- pretty-format "^29.7.0"
-
-jest-message-util@^29.7.0:
- version "29.7.0"
- resolved "https://registry.npmjs.org/jest-message-util/-/jest-message-util-29.7.0.tgz"
- integrity sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==
- dependencies:
- "@babel/code-frame" "^7.12.13"
- "@jest/types" "^29.6.3"
- "@types/stack-utils" "^2.0.0"
- chalk "^4.0.0"
- graceful-fs "^4.2.9"
- micromatch "^4.0.4"
- pretty-format "^29.7.0"
- slash "^3.0.0"
- stack-utils "^2.0.3"
-
-jest-mock@^29.7.0:
- version "29.7.0"
- resolved "https://registry.npmjs.org/jest-mock/-/jest-mock-29.7.0.tgz"
- integrity sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw==
- dependencies:
- "@jest/types" "^29.6.3"
- "@types/node" "*"
- jest-util "^29.7.0"
-
-jest-pnp-resolver@^1.2.2:
- version "1.2.3"
- resolved "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz"
- integrity sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==
-
-jest-regex-util@^29.6.3:
- version "29.6.3"
- resolved "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-29.6.3.tgz"
- integrity sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg==
-
-jest-resolve-dependencies@^29.7.0:
- version "29.7.0"
- resolved "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-29.7.0.tgz"
- integrity sha512-un0zD/6qxJ+S0et7WxeI3H5XSe9lTBBR7bOHCHXkKR6luG5mwDDlIzVQ0V5cZCuoTgEdcdwzTghYkTWfubi+nA==
- dependencies:
- jest-regex-util "^29.6.3"
- jest-snapshot "^29.7.0"
-
-jest-resolve@*, jest-resolve@^29.7.0:
- version "29.7.0"
- resolved "https://registry.npmjs.org/jest-resolve/-/jest-resolve-29.7.0.tgz"
- integrity sha512-IOVhZSrg+UvVAshDSDtHyFCCBUl/Q3AAJv8iZ6ZjnZ74xzvwuzLXid9IIIPgTnY62SJjfuupMKZsZQRsCvxEgA==
- dependencies:
- chalk "^4.0.0"
- graceful-fs "^4.2.9"
- jest-haste-map "^29.7.0"
- jest-pnp-resolver "^1.2.2"
- jest-util "^29.7.0"
- jest-validate "^29.7.0"
- resolve "^1.20.0"
- resolve.exports "^2.0.0"
- slash "^3.0.0"
-
-jest-runner@^29.7.0:
- version "29.7.0"
- resolved "https://registry.npmjs.org/jest-runner/-/jest-runner-29.7.0.tgz"
- integrity sha512-fsc4N6cPCAahybGBfTRcq5wFR6fpLznMg47sY5aDpsoejOcVYFb07AHuSnR0liMcPTgBsA3ZJL6kFOjPdoNipQ==
- dependencies:
- "@jest/console" "^29.7.0"
- "@jest/environment" "^29.7.0"
- "@jest/test-result" "^29.7.0"
- "@jest/transform" "^29.7.0"
- "@jest/types" "^29.6.3"
- "@types/node" "*"
- chalk "^4.0.0"
- emittery "^0.13.1"
- graceful-fs "^4.2.9"
- jest-docblock "^29.7.0"
- jest-environment-node "^29.7.0"
- jest-haste-map "^29.7.0"
- jest-leak-detector "^29.7.0"
- jest-message-util "^29.7.0"
- jest-resolve "^29.7.0"
- jest-runtime "^29.7.0"
- jest-util "^29.7.0"
- jest-watcher "^29.7.0"
- jest-worker "^29.7.0"
- p-limit "^3.1.0"
- source-map-support "0.5.13"
-
-jest-runtime@^29.7.0:
- version "29.7.0"
- resolved "https://registry.npmjs.org/jest-runtime/-/jest-runtime-29.7.0.tgz"
- integrity sha512-gUnLjgwdGqW7B4LvOIkbKs9WGbn+QLqRQQ9juC6HndeDiezIwhDP+mhMwHWCEcfQ5RUXa6OPnFF8BJh5xegwwQ==
- dependencies:
- "@jest/environment" "^29.7.0"
- "@jest/fake-timers" "^29.7.0"
- "@jest/globals" "^29.7.0"
- "@jest/source-map" "^29.6.3"
- "@jest/test-result" "^29.7.0"
- "@jest/transform" "^29.7.0"
- "@jest/types" "^29.6.3"
- "@types/node" "*"
- chalk "^4.0.0"
- cjs-module-lexer "^1.0.0"
- collect-v8-coverage "^1.0.0"
- glob "^7.1.3"
- graceful-fs "^4.2.9"
- jest-haste-map "^29.7.0"
- jest-message-util "^29.7.0"
- jest-mock "^29.7.0"
- jest-regex-util "^29.6.3"
- jest-resolve "^29.7.0"
- jest-snapshot "^29.7.0"
- jest-util "^29.7.0"
- slash "^3.0.0"
- strip-bom "^4.0.0"
-
-jest-snapshot@^29.7.0:
- version "29.7.0"
- resolved "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-29.7.0.tgz"
- integrity sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw==
- dependencies:
- "@babel/core" "^7.11.6"
- "@babel/generator" "^7.7.2"
- "@babel/plugin-syntax-jsx" "^7.7.2"
- "@babel/plugin-syntax-typescript" "^7.7.2"
- "@babel/types" "^7.3.3"
- "@jest/expect-utils" "^29.7.0"
- "@jest/transform" "^29.7.0"
- "@jest/types" "^29.6.3"
- babel-preset-current-node-syntax "^1.0.0"
- chalk "^4.0.0"
- expect "^29.7.0"
- graceful-fs "^4.2.9"
- jest-diff "^29.7.0"
- jest-get-type "^29.6.3"
- jest-matcher-utils "^29.7.0"
- jest-message-util "^29.7.0"
- jest-util "^29.7.0"
- natural-compare "^1.4.0"
- pretty-format "^29.7.0"
- semver "^7.5.3"
-
-jest-util@^29.7.0:
- version "29.7.0"
- resolved "https://registry.npmjs.org/jest-util/-/jest-util-29.7.0.tgz"
- integrity sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==
- dependencies:
- "@jest/types" "^29.6.3"
- "@types/node" "*"
- chalk "^4.0.0"
- ci-info "^3.2.0"
- graceful-fs "^4.2.9"
- picomatch "^2.2.3"
-
-jest-validate@^29.7.0:
- version "29.7.0"
- resolved "https://registry.npmjs.org/jest-validate/-/jest-validate-29.7.0.tgz"
- integrity sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw==
- dependencies:
- "@jest/types" "^29.6.3"
- camelcase "^6.2.0"
- chalk "^4.0.0"
- jest-get-type "^29.6.3"
- leven "^3.1.0"
- pretty-format "^29.7.0"
-
-jest-watcher@^29.7.0:
- version "29.7.0"
- resolved "https://registry.npmjs.org/jest-watcher/-/jest-watcher-29.7.0.tgz"
- integrity sha512-49Fg7WXkU3Vl2h6LbLtMQ/HyB6rXSIX7SqvBLQmssRBGN9I0PNvPmAmCWSOY6SOvrjhI/F7/bGAv9RtnsPA03g==
- dependencies:
- "@jest/test-result" "^29.7.0"
- "@jest/types" "^29.6.3"
- "@types/node" "*"
- ansi-escapes "^4.2.1"
- chalk "^4.0.0"
- emittery "^0.13.1"
- jest-util "^29.7.0"
- string-length "^4.0.1"
-
-jest-worker@^29.7.0:
- version "29.7.0"
- resolved "https://registry.npmjs.org/jest-worker/-/jest-worker-29.7.0.tgz"
- integrity sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==
- dependencies:
- "@types/node" "*"
- jest-util "^29.7.0"
- merge-stream "^2.0.0"
- supports-color "^8.0.0"
-
-jest@^29.7.0:
- version "29.7.0"
- resolved "https://registry.npmjs.org/jest/-/jest-29.7.0.tgz"
- integrity sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw==
- dependencies:
- "@jest/core" "^29.7.0"
- "@jest/types" "^29.6.3"
- import-local "^3.0.2"
- jest-cli "^29.7.0"
-
-jiti@^1.21.6:
- version "1.21.7"
- resolved "https://registry.npmjs.org/jiti/-/jiti-1.21.7.tgz"
- integrity sha512-/imKNG4EbWNrVjoNC/1H5/9GFy+tqjGBHCaSsN+P2RnPqjsLmv6UD3Ej+Kj8nBWaRAwyk7kK5ZUc+OEatnTR3A==
-
-"js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0:
- version "4.0.0"
- resolved "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz"
- integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==
-
-js-yaml@^3.13.1:
- version "3.14.1"
- resolved "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz"
- integrity sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==
- dependencies:
- argparse "^1.0.7"
- esprima "^4.0.0"
-
-jsesc@^3.0.2:
- version "3.1.0"
- resolved "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz"
- integrity sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==
-
-json-parse-even-better-errors@^2.3.0:
- 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==
-
-json5@^2.2.3:
- version "2.2.3"
- resolved "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz"
- integrity sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==
-
-katex@^0.16.0, katex@^0.16.9:
- version "0.16.21"
- resolved "https://registry.npmjs.org/katex/-/katex-0.16.21.tgz"
- integrity sha512-XvqR7FgOHtWupfMiigNzmh+MgUVmDGU2kXZm899ZkPfcuoPuFxyHmXsgATDpFZDAXCI8tvinaVcDo8PIIJSo4A==
- dependencies:
- commander "^8.3.0"
-
-khroma@^2.1.0:
- version "2.1.0"
- resolved "https://registry.npmjs.org/khroma/-/khroma-2.1.0.tgz"
- integrity sha512-Ls993zuzfayK269Svk9hzpeGUKob/sIgZzyHYdjQoAdQetRKpOLj+k/QQQ/6Qi0Yz65mlROrfd+Ev+1+7dz9Kw==
-
-kind-of@^6.0.0, kind-of@^6.0.2:
- version "6.0.3"
- resolved "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz"
- integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==
-
-kleur@^3.0.3:
- version "3.0.3"
- resolved "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz"
- integrity sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==
-
-kolorist@^1.8.0:
- version "1.8.0"
- resolved "https://registry.npmjs.org/kolorist/-/kolorist-1.8.0.tgz"
- integrity sha512-Y+60/zizpJ3HRH8DCss+q95yr6145JXZo46OTpFvDZWLfRCE4qChOyk1b26nMaNpfHHgxagk9dXT5OP0Tfe+dQ==
-
-langium@3.3.1:
- version "3.3.1"
- resolved "https://registry.npmjs.org/langium/-/langium-3.3.1.tgz"
- integrity sha512-QJv/h939gDpvT+9SiLVlY7tZC3xB2qK57v0J04Sh9wpMb6MP1q8gB21L3WIo8T5P1MSMg3Ep14L7KkDCFG3y4w==
- dependencies:
- chevrotain "~11.0.3"
- chevrotain-allstar "~0.3.0"
- vscode-languageserver "~9.0.1"
- vscode-languageserver-textdocument "~1.0.11"
- vscode-uri "~3.0.8"
-
-layout-base@^1.0.0:
- version "1.0.2"
- resolved "https://registry.npmjs.org/layout-base/-/layout-base-1.0.2.tgz"
- integrity sha512-8h2oVEZNktL4BH2JCOI90iD1yXwL6iNW7KcCKT2QZgQJR2vbqDsldCTPRU9NifTCqHZci57XvQQ15YTu+sTYPg==
-
-layout-base@^2.0.0:
- version "2.0.1"
- resolved "https://registry.npmjs.org/layout-base/-/layout-base-2.0.1.tgz"
- integrity sha512-dp3s92+uNI1hWIpPGH3jK2kxE2lMjdXdr+DH8ynZHpd6PUlH6x6cbuXnoMmiNumznqaNO31xu9e79F0uuZ0JFg==
-
-leven@^3.1.0:
- version "3.1.0"
- resolved "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz"
- integrity sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==
-
-lilconfig@^3.0.0, lilconfig@^3.1.3, lilconfig@~3.1.2:
- version "3.1.3"
- resolved "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.3.tgz"
- integrity sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==
-
-lines-and-columns@^1.1.6:
- version "1.2.4"
- resolved "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz"
- integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==
-
-lint-staged@^15.2.7:
- version "15.2.10"
- resolved "file:../node_modules/.pnpm/lint-staged@15.2.10/node_modules/lint-staged"
- dependencies:
- chalk "~5.3.0"
- commander "~12.1.0"
- debug "~4.3.6"
- execa "~8.0.1"
- lilconfig "~3.1.2"
- listr2 "~8.2.4"
- micromatch "~4.0.8"
- pidtree "~0.6.0"
- string-argv "~0.3.2"
- yaml "~2.5.0"
-
-listr2@~8.2.4:
- version "8.2.5"
- dependencies:
- cli-truncate "^4.0.0"
- colorette "^2.0.20"
- eventemitter3 "^5.0.1"
- log-update "^6.1.0"
- rfdc "^1.4.1"
- wrap-ansi "^9.0.0"
-
-local-pkg@^1.0.0:
- version "1.1.1"
- resolved "https://registry.npmjs.org/local-pkg/-/local-pkg-1.1.1.tgz"
- integrity sha512-WunYko2W1NcdfAFpuLUoucsgULmgDBRkdxHxWQ7mK0cQqwPiy8E1enjuRBrhLtZkB5iScJ1XIPdhVEFK8aOLSg==
- dependencies:
- mlly "^1.7.4"
- pkg-types "^2.0.1"
- quansync "^0.2.8"
-
-locate-path@^5.0.0:
- 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"
-
-lodash-es@^4.17.21, lodash-es@4.17.21:
- version "4.17.21"
- resolved "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.21.tgz"
- integrity sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==
-
-log-update@^6.1.0:
- version "6.1.0"
- dependencies:
- ansi-escapes "^7.0.0"
- cli-cursor "^5.0.0"
- slice-ansi "^7.1.0"
- strip-ansi "^7.1.0"
- wrap-ansi "^9.0.0"
-
-longest-streak@^3.0.0:
- version "3.1.0"
- resolved "https://registry.npmjs.org/longest-streak/-/longest-streak-3.1.0.tgz"
- integrity sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==
-
-loose-envify@^1.1.0:
- 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"
-
-lru-cache@^10.2.0:
- version "10.4.3"
- resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz"
- integrity sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==
-
-lru-cache@^5.1.1:
- version "5.1.1"
- resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz"
- integrity sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==
- dependencies:
- yallist "^3.0.2"
-
-make-dir@^4.0.0:
- version "4.0.0"
- resolved "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz"
- integrity sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==
- dependencies:
- semver "^7.5.3"
-
-makeerror@1.0.12:
- version "1.0.12"
- resolved "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz"
- integrity sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==
- dependencies:
- tmpl "1.0.5"
-
-markdown-extensions@^2.0.0:
- version "2.0.0"
- resolved "https://registry.npmjs.org/markdown-extensions/-/markdown-extensions-2.0.0.tgz"
- integrity sha512-o5vL7aDWatOTX8LzaS1WMoaoxIiLRQJuIKKe2wAw6IeULDHaqbiqiggmx+pKvZDb1Sj+pE46Sn1T7lCqfFtg1Q==
-
-markdown-table@^3.0.0:
- version "3.0.4"
- resolved "https://registry.npmjs.org/markdown-table/-/markdown-table-3.0.4.tgz"
- integrity sha512-wiYz4+JrLyb/DqW2hkFJxP7Vd7JuTDm77fvbM8VfEQdmSMqcImWeeRbHwZjBjIFki/VaMK2BhFi7oUUZeM5bqw==
-
-marked@^15.0.7:
- version "15.0.7"
- resolved "https://registry.npmjs.org/marked/-/marked-15.0.7.tgz"
- integrity sha512-dgLIeKGLx5FwziAnsk4ONoGwHwGPJzselimvlVskE9XLN4Orv9u2VA3GWw/lYUqjfA0rUT/6fqKwfZJapP9BEg==
-
-mathjax-full@^3.2.2:
- version "3.2.2"
- resolved "https://registry.npmjs.org/mathjax-full/-/mathjax-full-3.2.2.tgz"
- integrity sha512-+LfG9Fik+OuI8SLwsiR02IVdjcnRCy5MufYLi0C3TdMT56L/pjB0alMVGgoWJF8pN9Rc7FESycZB9BMNWIid5w==
- dependencies:
- esm "^3.2.25"
- mhchemparser "^4.1.0"
- mj-context-menu "^0.6.1"
- speech-rule-engine "^4.0.6"
-
-mdast-util-find-and-replace@^3.0.0:
- version "3.0.2"
- resolved "https://registry.npmjs.org/mdast-util-find-and-replace/-/mdast-util-find-and-replace-3.0.2.tgz"
- integrity sha512-Tmd1Vg/m3Xz43afeNxDIhWRtFZgM2VLyaf4vSTYwudTyeuTneoL3qtWMA5jeLyz/O1vDJmmV4QuScFCA2tBPwg==
- dependencies:
- "@types/mdast" "^4.0.0"
- escape-string-regexp "^5.0.0"
- unist-util-is "^6.0.0"
- unist-util-visit-parents "^6.0.0"
-
-mdast-util-from-markdown@^2.0.0, mdast-util-from-markdown@^2.0.1:
- version "2.0.2"
- resolved "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-2.0.2.tgz"
- integrity sha512-uZhTV/8NBuw0WHkPTrCqDOl0zVe1BIng5ZtHoDk49ME1qqcjYmmLmOf0gELgcRMxN4w2iuIeVso5/6QymSrgmA==
- dependencies:
- "@types/mdast" "^4.0.0"
- "@types/unist" "^3.0.0"
- decode-named-character-reference "^1.0.0"
- devlop "^1.0.0"
- mdast-util-to-string "^4.0.0"
- micromark "^4.0.0"
- micromark-util-decode-numeric-character-reference "^2.0.0"
- micromark-util-decode-string "^2.0.0"
- micromark-util-normalize-identifier "^2.0.0"
- micromark-util-symbol "^2.0.0"
- micromark-util-types "^2.0.0"
- unist-util-stringify-position "^4.0.0"
-
-mdast-util-frontmatter@^2.0.0:
- version "2.0.1"
- resolved "https://registry.npmjs.org/mdast-util-frontmatter/-/mdast-util-frontmatter-2.0.1.tgz"
- integrity sha512-LRqI9+wdgC25P0URIJY9vwocIzCcksduHQ9OF2joxQoyTNVduwLAFUzjoopuRJbJAReaKrNQKAZKL3uCMugWJA==
- dependencies:
- "@types/mdast" "^4.0.0"
- devlop "^1.0.0"
- escape-string-regexp "^5.0.0"
- mdast-util-from-markdown "^2.0.0"
- mdast-util-to-markdown "^2.0.0"
- micromark-extension-frontmatter "^2.0.0"
-
-mdast-util-gfm-autolink-literal@^2.0.0:
- version "2.0.1"
- resolved "https://registry.npmjs.org/mdast-util-gfm-autolink-literal/-/mdast-util-gfm-autolink-literal-2.0.1.tgz"
- integrity sha512-5HVP2MKaP6L+G6YaxPNjuL0BPrq9orG3TsrZ9YXbA3vDw/ACI4MEsnoDpn6ZNm7GnZgtAcONJyPhOP8tNJQavQ==
- dependencies:
- "@types/mdast" "^4.0.0"
- ccount "^2.0.0"
- devlop "^1.0.0"
- mdast-util-find-and-replace "^3.0.0"
- micromark-util-character "^2.0.0"
-
-mdast-util-gfm-footnote@^2.0.0:
- version "2.1.0"
- resolved "https://registry.npmjs.org/mdast-util-gfm-footnote/-/mdast-util-gfm-footnote-2.1.0.tgz"
- integrity sha512-sqpDWlsHn7Ac9GNZQMeUzPQSMzR6Wv0WKRNvQRg0KqHh02fpTz69Qc1QSseNX29bhz1ROIyNyxExfawVKTm1GQ==
- dependencies:
- "@types/mdast" "^4.0.0"
- devlop "^1.1.0"
- mdast-util-from-markdown "^2.0.0"
- mdast-util-to-markdown "^2.0.0"
- micromark-util-normalize-identifier "^2.0.0"
-
-mdast-util-gfm-strikethrough@^2.0.0:
- version "2.0.0"
- resolved "https://registry.npmjs.org/mdast-util-gfm-strikethrough/-/mdast-util-gfm-strikethrough-2.0.0.tgz"
- integrity sha512-mKKb915TF+OC5ptj5bJ7WFRPdYtuHv0yTRxK2tJvi+BDqbkiG7h7u/9SI89nRAYcmap2xHQL9D+QG/6wSrTtXg==
- dependencies:
- "@types/mdast" "^4.0.0"
- mdast-util-from-markdown "^2.0.0"
- mdast-util-to-markdown "^2.0.0"
-
-mdast-util-gfm-table@^2.0.0:
- version "2.0.0"
- resolved "https://registry.npmjs.org/mdast-util-gfm-table/-/mdast-util-gfm-table-2.0.0.tgz"
- integrity sha512-78UEvebzz/rJIxLvE7ZtDd/vIQ0RHv+3Mh5DR96p7cS7HsBhYIICDBCu8csTNWNO6tBWfqXPWekRuj2FNOGOZg==
- dependencies:
- "@types/mdast" "^4.0.0"
- devlop "^1.0.0"
- markdown-table "^3.0.0"
- mdast-util-from-markdown "^2.0.0"
- mdast-util-to-markdown "^2.0.0"
-
-mdast-util-gfm-task-list-item@^2.0.0:
- version "2.0.0"
- resolved "https://registry.npmjs.org/mdast-util-gfm-task-list-item/-/mdast-util-gfm-task-list-item-2.0.0.tgz"
- integrity sha512-IrtvNvjxC1o06taBAVJznEnkiHxLFTzgonUdy8hzFVeDun0uTjxxrRGVaNFqkU1wJR3RBPEfsxmU6jDWPofrTQ==
- dependencies:
- "@types/mdast" "^4.0.0"
- devlop "^1.0.0"
- mdast-util-from-markdown "^2.0.0"
- mdast-util-to-markdown "^2.0.0"
-
-mdast-util-gfm@^3.0.0:
- version "3.1.0"
- resolved "https://registry.npmjs.org/mdast-util-gfm/-/mdast-util-gfm-3.1.0.tgz"
- integrity sha512-0ulfdQOM3ysHhCJ1p06l0b0VKlhU0wuQs3thxZQagjcjPrlFRqY215uZGHHJan9GEAXd9MbfPjFJz+qMkVR6zQ==
- dependencies:
- mdast-util-from-markdown "^2.0.0"
- mdast-util-gfm-autolink-literal "^2.0.0"
- mdast-util-gfm-footnote "^2.0.0"
- mdast-util-gfm-strikethrough "^2.0.0"
- mdast-util-gfm-table "^2.0.0"
- mdast-util-gfm-task-list-item "^2.0.0"
- mdast-util-to-markdown "^2.0.0"
-
-mdast-util-math@^3.0.0:
- version "3.0.0"
- resolved "https://registry.npmjs.org/mdast-util-math/-/mdast-util-math-3.0.0.tgz"
- integrity sha512-Tl9GBNeG/AhJnQM221bJR2HPvLOSnLE/T9cJI9tlc6zwQk2nPk/4f0cHkOdEixQPC/j8UtKDdITswvLAy1OZ1w==
- dependencies:
- "@types/hast" "^3.0.0"
- "@types/mdast" "^4.0.0"
- devlop "^1.0.0"
- longest-streak "^3.0.0"
- mdast-util-from-markdown "^2.0.0"
- mdast-util-to-markdown "^2.1.0"
- unist-util-remove-position "^5.0.0"
-
-mdast-util-mdx-expression@^2.0.0:
- version "2.0.1"
- resolved "https://registry.npmjs.org/mdast-util-mdx-expression/-/mdast-util-mdx-expression-2.0.1.tgz"
- integrity sha512-J6f+9hUp+ldTZqKRSg7Vw5V6MqjATc+3E4gf3CFNcuZNWD8XdyI6zQ8GqH7f8169MM6P7hMBRDVGnn7oHB9kXQ==
- dependencies:
- "@types/estree-jsx" "^1.0.0"
- "@types/hast" "^3.0.0"
- "@types/mdast" "^4.0.0"
- devlop "^1.0.0"
- mdast-util-from-markdown "^2.0.0"
- mdast-util-to-markdown "^2.0.0"
-
-mdast-util-mdx-jsx@^3.0.0:
- version "3.2.0"
- resolved "https://registry.npmjs.org/mdast-util-mdx-jsx/-/mdast-util-mdx-jsx-3.2.0.tgz"
- integrity sha512-lj/z8v0r6ZtsN/cGNNtemmmfoLAFZnjMbNyLzBafjzikOM+glrjNHPlf6lQDOTccj9n5b0PPihEBbhneMyGs1Q==
- dependencies:
- "@types/estree-jsx" "^1.0.0"
- "@types/hast" "^3.0.0"
- "@types/mdast" "^4.0.0"
- "@types/unist" "^3.0.0"
- ccount "^2.0.0"
- devlop "^1.1.0"
- mdast-util-from-markdown "^2.0.0"
- mdast-util-to-markdown "^2.0.0"
- parse-entities "^4.0.0"
- stringify-entities "^4.0.0"
- unist-util-stringify-position "^4.0.0"
- vfile-message "^4.0.0"
-
-mdast-util-mdx@^3.0.0:
- version "3.0.0"
- resolved "https://registry.npmjs.org/mdast-util-mdx/-/mdast-util-mdx-3.0.0.tgz"
- integrity sha512-JfbYLAW7XnYTTbUsmpu0kdBUVe+yKVJZBItEjwyYJiDJuZ9w4eeaqks4HQO+R7objWgS2ymV60GYpI14Ug554w==
- dependencies:
- mdast-util-from-markdown "^2.0.0"
- mdast-util-mdx-expression "^2.0.0"
- mdast-util-mdx-jsx "^3.0.0"
- mdast-util-mdxjs-esm "^2.0.0"
- mdast-util-to-markdown "^2.0.0"
-
-mdast-util-mdxjs-esm@^2.0.0:
- version "2.0.1"
- resolved "https://registry.npmjs.org/mdast-util-mdxjs-esm/-/mdast-util-mdxjs-esm-2.0.1.tgz"
- integrity sha512-EcmOpxsZ96CvlP03NghtH1EsLtr0n9Tm4lPUJUBccV9RwUOneqSycg19n5HGzCf+10LozMRSObtVr3ee1WoHtg==
- dependencies:
- "@types/estree-jsx" "^1.0.0"
- "@types/hast" "^3.0.0"
- "@types/mdast" "^4.0.0"
- devlop "^1.0.0"
- mdast-util-from-markdown "^2.0.0"
- mdast-util-to-markdown "^2.0.0"
-
-mdast-util-phrasing@^4.0.0:
- version "4.1.0"
- resolved "https://registry.npmjs.org/mdast-util-phrasing/-/mdast-util-phrasing-4.1.0.tgz"
- integrity sha512-TqICwyvJJpBwvGAMZjj4J2n0X8QWp21b9l0o7eXyVJ25YNWYbJDVIyD1bZXE6WtV6RmKJVYmQAKWa0zWOABz2w==
- dependencies:
- "@types/mdast" "^4.0.0"
- unist-util-is "^6.0.0"
-
-mdast-util-to-hast@^13.0.0, mdast-util-to-hast@^13.2.0:
- version "13.2.0"
- resolved "https://registry.npmjs.org/mdast-util-to-hast/-/mdast-util-to-hast-13.2.0.tgz"
- integrity sha512-QGYKEuUsYT9ykKBCMOEDLsU5JRObWQusAolFMeko/tYPufNkRffBAQjIE+99jbA87xv6FgmjLtwjh9wBWajwAA==
- dependencies:
- "@types/hast" "^3.0.0"
- "@types/mdast" "^4.0.0"
- "@ungap/structured-clone" "^1.0.0"
- devlop "^1.0.0"
- micromark-util-sanitize-uri "^2.0.0"
- trim-lines "^3.0.0"
- unist-util-position "^5.0.0"
- unist-util-visit "^5.0.0"
- vfile "^6.0.0"
-
-mdast-util-to-markdown@^2.0.0, mdast-util-to-markdown@^2.1.0:
- version "2.1.2"
- resolved "https://registry.npmjs.org/mdast-util-to-markdown/-/mdast-util-to-markdown-2.1.2.tgz"
- integrity sha512-xj68wMTvGXVOKonmog6LwyJKrYXZPvlwabaryTjLh9LuvovB/KAH+kvi8Gjj+7rJjsFi23nkUxRQv1KqSroMqA==
- dependencies:
- "@types/mdast" "^4.0.0"
- "@types/unist" "^3.0.0"
- longest-streak "^3.0.0"
- mdast-util-phrasing "^4.0.0"
- mdast-util-to-string "^4.0.0"
- micromark-util-classify-character "^2.0.0"
- micromark-util-decode-string "^2.0.0"
- unist-util-visit "^5.0.0"
- zwitch "^2.0.0"
-
-mdast-util-to-string@^4.0.0:
- version "4.0.0"
- resolved "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-4.0.0.tgz"
- integrity sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==
- dependencies:
- "@types/mdast" "^4.0.0"
-
-merge-stream@^2.0.0:
- version "2.0.0"
- resolved "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz"
- integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==
-
-merge2@^1.3.0:
- version "1.4.1"
- resolved "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz"
- integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==
-
-mermaid@^11.0.0:
- version "11.6.0"
- resolved "https://registry.npmjs.org/mermaid/-/mermaid-11.6.0.tgz"
- integrity sha512-PE8hGUy1LDlWIHWBP05SFdqUHGmRcCcK4IzpOKPE35eOw+G9zZgcnMpyunJVUEOgb//KBORPjysKndw8bFLuRg==
- dependencies:
- "@braintree/sanitize-url" "^7.0.4"
- "@iconify/utils" "^2.1.33"
- "@mermaid-js/parser" "^0.4.0"
- "@types/d3" "^7.4.3"
- cytoscape "^3.29.3"
- cytoscape-cose-bilkent "^4.1.0"
- cytoscape-fcose "^2.2.0"
- d3 "^7.9.0"
- d3-sankey "^0.12.3"
- dagre-d3-es "7.0.11"
- dayjs "^1.11.13"
- dompurify "^3.2.4"
- katex "^0.16.9"
- khroma "^2.1.0"
- lodash-es "^4.17.21"
- marked "^15.0.7"
- roughjs "^4.6.6"
- stylis "^4.3.6"
- ts-dedent "^2.2.0"
- uuid "^11.1.0"
-
-mhchemparser@^4.1.0:
- version "4.2.1"
- resolved "https://registry.npmjs.org/mhchemparser/-/mhchemparser-4.2.1.tgz"
- integrity sha512-kYmyrCirqJf3zZ9t/0wGgRZ4/ZJw//VwaRVGA75C4nhE60vtnIzhl9J9ndkX/h6hxSN7pjg/cE0VxbnNM+bnDQ==
-
-micromark-core-commonmark@^2.0.0:
- version "2.0.3"
- resolved "https://registry.npmjs.org/micromark-core-commonmark/-/micromark-core-commonmark-2.0.3.tgz"
- integrity sha512-RDBrHEMSxVFLg6xvnXmb1Ayr2WzLAWjeSATAoxwKYJV94TeNavgoIdA0a9ytzDSVzBy2YKFK+emCPOEibLeCrg==
- dependencies:
- decode-named-character-reference "^1.0.0"
- devlop "^1.0.0"
- micromark-factory-destination "^2.0.0"
- micromark-factory-label "^2.0.0"
- micromark-factory-space "^2.0.0"
- micromark-factory-title "^2.0.0"
- micromark-factory-whitespace "^2.0.0"
- micromark-util-character "^2.0.0"
- micromark-util-chunked "^2.0.0"
- micromark-util-classify-character "^2.0.0"
- micromark-util-html-tag-name "^2.0.0"
- micromark-util-normalize-identifier "^2.0.0"
- micromark-util-resolve-all "^2.0.0"
- micromark-util-subtokenize "^2.0.0"
- micromark-util-symbol "^2.0.0"
- micromark-util-types "^2.0.0"
-
-micromark-extension-frontmatter@^2.0.0:
- version "2.0.0"
- resolved "https://registry.npmjs.org/micromark-extension-frontmatter/-/micromark-extension-frontmatter-2.0.0.tgz"
- integrity sha512-C4AkuM3dA58cgZha7zVnuVxBhDsbttIMiytjgsM2XbHAB2faRVaHRle40558FBN+DJcrLNCoqG5mlrpdU4cRtg==
- dependencies:
- fault "^2.0.0"
- micromark-util-character "^2.0.0"
- micromark-util-symbol "^2.0.0"
- micromark-util-types "^2.0.0"
-
-micromark-extension-gfm-autolink-literal@^2.0.0:
- version "2.1.0"
- resolved "https://registry.npmjs.org/micromark-extension-gfm-autolink-literal/-/micromark-extension-gfm-autolink-literal-2.1.0.tgz"
- integrity sha512-oOg7knzhicgQ3t4QCjCWgTmfNhvQbDDnJeVu9v81r7NltNCVmhPy1fJRX27pISafdjL+SVc4d3l48Gb6pbRypw==
- dependencies:
- micromark-util-character "^2.0.0"
- micromark-util-sanitize-uri "^2.0.0"
- micromark-util-symbol "^2.0.0"
- micromark-util-types "^2.0.0"
-
-micromark-extension-gfm-footnote@^2.0.0:
- version "2.1.0"
- resolved "https://registry.npmjs.org/micromark-extension-gfm-footnote/-/micromark-extension-gfm-footnote-2.1.0.tgz"
- integrity sha512-/yPhxI1ntnDNsiHtzLKYnE3vf9JZ6cAisqVDauhp4CEHxlb4uoOTxOCJ+9s51bIB8U1N1FJ1RXOKTIlD5B/gqw==
- dependencies:
- devlop "^1.0.0"
- micromark-core-commonmark "^2.0.0"
- micromark-factory-space "^2.0.0"
- micromark-util-character "^2.0.0"
- micromark-util-normalize-identifier "^2.0.0"
- micromark-util-sanitize-uri "^2.0.0"
- micromark-util-symbol "^2.0.0"
- micromark-util-types "^2.0.0"
-
-micromark-extension-gfm-strikethrough@^2.0.0:
- version "2.1.0"
- resolved "https://registry.npmjs.org/micromark-extension-gfm-strikethrough/-/micromark-extension-gfm-strikethrough-2.1.0.tgz"
- integrity sha512-ADVjpOOkjz1hhkZLlBiYA9cR2Anf8F4HqZUO6e5eDcPQd0Txw5fxLzzxnEkSkfnD0wziSGiv7sYhk/ktvbf1uw==
- dependencies:
- devlop "^1.0.0"
- micromark-util-chunked "^2.0.0"
- micromark-util-classify-character "^2.0.0"
- micromark-util-resolve-all "^2.0.0"
- micromark-util-symbol "^2.0.0"
- micromark-util-types "^2.0.0"
-
-micromark-extension-gfm-table@^2.0.0:
- version "2.1.1"
- resolved "https://registry.npmjs.org/micromark-extension-gfm-table/-/micromark-extension-gfm-table-2.1.1.tgz"
- integrity sha512-t2OU/dXXioARrC6yWfJ4hqB7rct14e8f7m0cbI5hUmDyyIlwv5vEtooptH8INkbLzOatzKuVbQmAYcbWoyz6Dg==
- dependencies:
- devlop "^1.0.0"
- micromark-factory-space "^2.0.0"
- micromark-util-character "^2.0.0"
- micromark-util-symbol "^2.0.0"
- micromark-util-types "^2.0.0"
-
-micromark-extension-gfm-tagfilter@^2.0.0:
- version "2.0.0"
- resolved "https://registry.npmjs.org/micromark-extension-gfm-tagfilter/-/micromark-extension-gfm-tagfilter-2.0.0.tgz"
- integrity sha512-xHlTOmuCSotIA8TW1mDIM6X2O1SiX5P9IuDtqGonFhEK0qgRI4yeC6vMxEV2dgyr2TiD+2PQ10o+cOhdVAcwfg==
- dependencies:
- micromark-util-types "^2.0.0"
-
-micromark-extension-gfm-task-list-item@^2.0.0:
- version "2.1.0"
- resolved "https://registry.npmjs.org/micromark-extension-gfm-task-list-item/-/micromark-extension-gfm-task-list-item-2.1.0.tgz"
- integrity sha512-qIBZhqxqI6fjLDYFTBIa4eivDMnP+OZqsNwmQ3xNLE4Cxwc+zfQEfbs6tzAo2Hjq+bh6q5F+Z8/cksrLFYWQQw==
- dependencies:
- devlop "^1.0.0"
- micromark-factory-space "^2.0.0"
- micromark-util-character "^2.0.0"
- micromark-util-symbol "^2.0.0"
- micromark-util-types "^2.0.0"
-
-micromark-extension-gfm@^3.0.0:
- version "3.0.0"
- resolved "https://registry.npmjs.org/micromark-extension-gfm/-/micromark-extension-gfm-3.0.0.tgz"
- integrity sha512-vsKArQsicm7t0z2GugkCKtZehqUm31oeGBV/KVSorWSy8ZlNAv7ytjFhvaryUiCUJYqs+NoE6AFhpQvBTM6Q4w==
- dependencies:
- micromark-extension-gfm-autolink-literal "^2.0.0"
- micromark-extension-gfm-footnote "^2.0.0"
- micromark-extension-gfm-strikethrough "^2.0.0"
- micromark-extension-gfm-table "^2.0.0"
- micromark-extension-gfm-tagfilter "^2.0.0"
- micromark-extension-gfm-task-list-item "^2.0.0"
- micromark-util-combine-extensions "^2.0.0"
- micromark-util-types "^2.0.0"
-
-micromark-extension-math@^3.0.0:
- version "3.1.0"
- resolved "https://registry.npmjs.org/micromark-extension-math/-/micromark-extension-math-3.1.0.tgz"
- integrity sha512-lvEqd+fHjATVs+2v/8kg9i5Q0AP2k85H0WUOwpIVvUML8BapsMvh1XAogmQjOCsLpoKRCVQqEkQBB3NhVBcsOg==
- dependencies:
- "@types/katex" "^0.16.0"
- devlop "^1.0.0"
- katex "^0.16.0"
- micromark-factory-space "^2.0.0"
- micromark-util-character "^2.0.0"
- micromark-util-symbol "^2.0.0"
- micromark-util-types "^2.0.0"
-
-micromark-extension-mdx-expression@^3.0.0:
- version "3.0.1"
- resolved "https://registry.npmjs.org/micromark-extension-mdx-expression/-/micromark-extension-mdx-expression-3.0.1.tgz"
- integrity sha512-dD/ADLJ1AeMvSAKBwO22zG22N4ybhe7kFIZ3LsDI0GlsNr2A3KYxb0LdC1u5rj4Nw+CHKY0RVdnHX8vj8ejm4Q==
- dependencies:
- "@types/estree" "^1.0.0"
- devlop "^1.0.0"
- micromark-factory-mdx-expression "^2.0.0"
- micromark-factory-space "^2.0.0"
- micromark-util-character "^2.0.0"
- micromark-util-events-to-acorn "^2.0.0"
- micromark-util-symbol "^2.0.0"
- micromark-util-types "^2.0.0"
-
-micromark-extension-mdx-jsx@^3.0.0:
- version "3.0.2"
- resolved "https://registry.npmjs.org/micromark-extension-mdx-jsx/-/micromark-extension-mdx-jsx-3.0.2.tgz"
- integrity sha512-e5+q1DjMh62LZAJOnDraSSbDMvGJ8x3cbjygy2qFEi7HCeUT4BDKCvMozPozcD6WmOt6sVvYDNBKhFSz3kjOVQ==
- dependencies:
- "@types/estree" "^1.0.0"
- devlop "^1.0.0"
- estree-util-is-identifier-name "^3.0.0"
- micromark-factory-mdx-expression "^2.0.0"
- micromark-factory-space "^2.0.0"
- micromark-util-character "^2.0.0"
- micromark-util-events-to-acorn "^2.0.0"
- micromark-util-symbol "^2.0.0"
- micromark-util-types "^2.0.0"
- vfile-message "^4.0.0"
-
-micromark-extension-mdx-md@^2.0.0:
- version "2.0.0"
- resolved "https://registry.npmjs.org/micromark-extension-mdx-md/-/micromark-extension-mdx-md-2.0.0.tgz"
- integrity sha512-EpAiszsB3blw4Rpba7xTOUptcFeBFi+6PY8VnJ2hhimH+vCQDirWgsMpz7w1XcZE7LVrSAUGb9VJpG9ghlYvYQ==
- dependencies:
- micromark-util-types "^2.0.0"
-
-micromark-extension-mdxjs-esm@^3.0.0:
- version "3.0.0"
- resolved "https://registry.npmjs.org/micromark-extension-mdxjs-esm/-/micromark-extension-mdxjs-esm-3.0.0.tgz"
- integrity sha512-DJFl4ZqkErRpq/dAPyeWp15tGrcrrJho1hKK5uBS70BCtfrIFg81sqcTVu3Ta+KD1Tk5vAtBNElWxtAa+m8K9A==
- dependencies:
- "@types/estree" "^1.0.0"
- devlop "^1.0.0"
- micromark-core-commonmark "^2.0.0"
- micromark-util-character "^2.0.0"
- micromark-util-events-to-acorn "^2.0.0"
- micromark-util-symbol "^2.0.0"
- micromark-util-types "^2.0.0"
- unist-util-position-from-estree "^2.0.0"
- vfile-message "^4.0.0"
-
-micromark-extension-mdxjs@^3.0.0:
- version "3.0.0"
- resolved "https://registry.npmjs.org/micromark-extension-mdxjs/-/micromark-extension-mdxjs-3.0.0.tgz"
- integrity sha512-A873fJfhnJ2siZyUrJ31l34Uqwy4xIFmvPY1oj+Ean5PHcPBYzEsvqvWGaWcfEIr11O5Dlw3p2y0tZWpKHDejQ==
- dependencies:
- acorn "^8.0.0"
- acorn-jsx "^5.0.0"
- micromark-extension-mdx-expression "^3.0.0"
- micromark-extension-mdx-jsx "^3.0.0"
- micromark-extension-mdx-md "^2.0.0"
- micromark-extension-mdxjs-esm "^3.0.0"
- micromark-util-combine-extensions "^2.0.0"
- micromark-util-types "^2.0.0"
-
-micromark-factory-destination@^2.0.0:
- version "2.0.1"
- resolved "https://registry.npmjs.org/micromark-factory-destination/-/micromark-factory-destination-2.0.1.tgz"
- integrity sha512-Xe6rDdJlkmbFRExpTOmRj9N3MaWmbAgdpSrBQvCFqhezUn4AHqJHbaEnfbVYYiexVSs//tqOdY/DxhjdCiJnIA==
- dependencies:
- micromark-util-character "^2.0.0"
- micromark-util-symbol "^2.0.0"
- micromark-util-types "^2.0.0"
-
-micromark-factory-label@^2.0.0:
- version "2.0.1"
- resolved "https://registry.npmjs.org/micromark-factory-label/-/micromark-factory-label-2.0.1.tgz"
- integrity sha512-VFMekyQExqIW7xIChcXn4ok29YE3rnuyveW3wZQWWqF4Nv9Wk5rgJ99KzPvHjkmPXF93FXIbBp6YdW3t71/7Vg==
- dependencies:
- devlop "^1.0.0"
- micromark-util-character "^2.0.0"
- micromark-util-symbol "^2.0.0"
- micromark-util-types "^2.0.0"
-
-micromark-factory-mdx-expression@^2.0.0:
- version "2.0.3"
- resolved "https://registry.npmjs.org/micromark-factory-mdx-expression/-/micromark-factory-mdx-expression-2.0.3.tgz"
- integrity sha512-kQnEtA3vzucU2BkrIa8/VaSAsP+EJ3CKOvhMuJgOEGg9KDC6OAY6nSnNDVRiVNRqj7Y4SlSzcStaH/5jge8JdQ==
- dependencies:
- "@types/estree" "^1.0.0"
- devlop "^1.0.0"
- micromark-factory-space "^2.0.0"
- micromark-util-character "^2.0.0"
- micromark-util-events-to-acorn "^2.0.0"
- micromark-util-symbol "^2.0.0"
- micromark-util-types "^2.0.0"
- unist-util-position-from-estree "^2.0.0"
- vfile-message "^4.0.0"
-
-micromark-factory-space@^2.0.0:
- version "2.0.1"
- resolved "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.0.1.tgz"
- integrity sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg==
- dependencies:
- micromark-util-character "^2.0.0"
- micromark-util-types "^2.0.0"
-
-micromark-factory-title@^2.0.0:
- version "2.0.1"
- resolved "https://registry.npmjs.org/micromark-factory-title/-/micromark-factory-title-2.0.1.tgz"
- integrity sha512-5bZ+3CjhAd9eChYTHsjy6TGxpOFSKgKKJPJxr293jTbfry2KDoWkhBb6TcPVB4NmzaPhMs1Frm9AZH7OD4Cjzw==
- dependencies:
- micromark-factory-space "^2.0.0"
- micromark-util-character "^2.0.0"
- micromark-util-symbol "^2.0.0"
- micromark-util-types "^2.0.0"
-
-micromark-factory-whitespace@^2.0.0:
- version "2.0.1"
- resolved "https://registry.npmjs.org/micromark-factory-whitespace/-/micromark-factory-whitespace-2.0.1.tgz"
- integrity sha512-Ob0nuZ3PKt/n0hORHyvoD9uZhr+Za8sFoP+OnMcnWK5lngSzALgQYKMr9RJVOWLqQYuyn6ulqGWSXdwf6F80lQ==
- dependencies:
- micromark-factory-space "^2.0.0"
- micromark-util-character "^2.0.0"
- micromark-util-symbol "^2.0.0"
- micromark-util-types "^2.0.0"
-
-micromark-util-character@^2.0.0:
- version "2.1.1"
- resolved "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz"
- integrity sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==
- dependencies:
- micromark-util-symbol "^2.0.0"
- micromark-util-types "^2.0.0"
-
-micromark-util-chunked@^2.0.0:
- version "2.0.1"
- resolved "https://registry.npmjs.org/micromark-util-chunked/-/micromark-util-chunked-2.0.1.tgz"
- integrity sha512-QUNFEOPELfmvv+4xiNg2sRYeS/P84pTW0TCgP5zc9FpXetHY0ab7SxKyAQCNCc1eK0459uoLI1y5oO5Vc1dbhA==
- dependencies:
- micromark-util-symbol "^2.0.0"
-
-micromark-util-classify-character@^2.0.0:
- version "2.0.1"
- resolved "https://registry.npmjs.org/micromark-util-classify-character/-/micromark-util-classify-character-2.0.1.tgz"
- integrity sha512-K0kHzM6afW/MbeWYWLjoHQv1sgg2Q9EccHEDzSkxiP/EaagNzCm7T/WMKZ3rjMbvIpvBiZgwR3dKMygtA4mG1Q==
- dependencies:
- micromark-util-character "^2.0.0"
- micromark-util-symbol "^2.0.0"
- micromark-util-types "^2.0.0"
-
-micromark-util-combine-extensions@^2.0.0:
- version "2.0.1"
- resolved "https://registry.npmjs.org/micromark-util-combine-extensions/-/micromark-util-combine-extensions-2.0.1.tgz"
- integrity sha512-OnAnH8Ujmy59JcyZw8JSbK9cGpdVY44NKgSM7E9Eh7DiLS2E9RNQf0dONaGDzEG9yjEl5hcqeIsj4hfRkLH/Bg==
- dependencies:
- micromark-util-chunked "^2.0.0"
- micromark-util-types "^2.0.0"
-
-micromark-util-decode-numeric-character-reference@^2.0.0:
- version "2.0.2"
- resolved "https://registry.npmjs.org/micromark-util-decode-numeric-character-reference/-/micromark-util-decode-numeric-character-reference-2.0.2.tgz"
- integrity sha512-ccUbYk6CwVdkmCQMyr64dXz42EfHGkPQlBj5p7YVGzq8I7CtjXZJrubAYezf7Rp+bjPseiROqe7G6foFd+lEuw==
- dependencies:
- micromark-util-symbol "^2.0.0"
-
-micromark-util-decode-string@^2.0.0:
- version "2.0.1"
- resolved "https://registry.npmjs.org/micromark-util-decode-string/-/micromark-util-decode-string-2.0.1.tgz"
- integrity sha512-nDV/77Fj6eH1ynwscYTOsbK7rR//Uj0bZXBwJZRfaLEJ1iGBR6kIfNmlNqaqJf649EP0F3NWNdeJi03elllNUQ==
- dependencies:
- decode-named-character-reference "^1.0.0"
- micromark-util-character "^2.0.0"
- micromark-util-decode-numeric-character-reference "^2.0.0"
- micromark-util-symbol "^2.0.0"
-
-micromark-util-encode@^2.0.0:
- version "2.0.1"
- resolved "https://registry.npmjs.org/micromark-util-encode/-/micromark-util-encode-2.0.1.tgz"
- integrity sha512-c3cVx2y4KqUnwopcO9b/SCdo2O67LwJJ/UyqGfbigahfegL9myoEFoDYZgkT7f36T0bLrM9hZTAaAyH+PCAXjw==
-
-micromark-util-events-to-acorn@^2.0.0:
- version "2.0.3"
- resolved "https://registry.npmjs.org/micromark-util-events-to-acorn/-/micromark-util-events-to-acorn-2.0.3.tgz"
- integrity sha512-jmsiEIiZ1n7X1Rr5k8wVExBQCg5jy4UXVADItHmNk1zkwEVhBuIUKRu3fqv+hs4nxLISi2DQGlqIOGiFxgbfHg==
- dependencies:
- "@types/estree" "^1.0.0"
- "@types/unist" "^3.0.0"
- devlop "^1.0.0"
- estree-util-visit "^2.0.0"
- micromark-util-symbol "^2.0.0"
- micromark-util-types "^2.0.0"
- vfile-message "^4.0.0"
-
-micromark-util-html-tag-name@^2.0.0:
- version "2.0.1"
- resolved "https://registry.npmjs.org/micromark-util-html-tag-name/-/micromark-util-html-tag-name-2.0.1.tgz"
- integrity sha512-2cNEiYDhCWKI+Gs9T0Tiysk136SnR13hhO8yW6BGNyhOC4qYFnwF1nKfD3HFAIXA5c45RrIG1ub11GiXeYd1xA==
-
-micromark-util-normalize-identifier@^2.0.0:
- version "2.0.1"
- resolved "https://registry.npmjs.org/micromark-util-normalize-identifier/-/micromark-util-normalize-identifier-2.0.1.tgz"
- integrity sha512-sxPqmo70LyARJs0w2UclACPUUEqltCkJ6PhKdMIDuJ3gSf/Q+/GIe3WKl0Ijb/GyH9lOpUkRAO2wp0GVkLvS9Q==
- dependencies:
- micromark-util-symbol "^2.0.0"
-
-micromark-util-resolve-all@^2.0.0:
- version "2.0.1"
- resolved "https://registry.npmjs.org/micromark-util-resolve-all/-/micromark-util-resolve-all-2.0.1.tgz"
- integrity sha512-VdQyxFWFT2/FGJgwQnJYbe1jjQoNTS4RjglmSjTUlpUMa95Htx9NHeYW4rGDJzbjvCsl9eLjMQwGeElsqmzcHg==
- dependencies:
- micromark-util-types "^2.0.0"
-
-micromark-util-sanitize-uri@^2.0.0:
- version "2.0.1"
- resolved "https://registry.npmjs.org/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-2.0.1.tgz"
- integrity sha512-9N9IomZ/YuGGZZmQec1MbgxtlgougxTodVwDzzEouPKo3qFWvymFHWcnDi2vzV1ff6kas9ucW+o3yzJK9YB1AQ==
- dependencies:
- micromark-util-character "^2.0.0"
- micromark-util-encode "^2.0.0"
- micromark-util-symbol "^2.0.0"
-
-micromark-util-subtokenize@^2.0.0:
- version "2.1.0"
- resolved "https://registry.npmjs.org/micromark-util-subtokenize/-/micromark-util-subtokenize-2.1.0.tgz"
- integrity sha512-XQLu552iSctvnEcgXw6+Sx75GflAPNED1qx7eBJ+wydBb2KCbRZe+NwvIEEMM83uml1+2WSXpBAcp9IUCgCYWA==
- dependencies:
- devlop "^1.0.0"
- micromark-util-chunked "^2.0.0"
- micromark-util-symbol "^2.0.0"
- micromark-util-types "^2.0.0"
-
-micromark-util-symbol@^2.0.0:
- version "2.0.1"
- resolved "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz"
- integrity sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==
-
-micromark-util-types@^2.0.0:
- version "2.0.2"
- resolved "https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-2.0.2.tgz"
- integrity sha512-Yw0ECSpJoViF1qTU4DC6NwtC4aWGt1EkzaQB8KPPyCRR8z9TWeV0HbEFGTO+ZY1wB22zmxnJqhPyTpOVCpeHTA==
-
-micromark@^4.0.0:
- version "4.0.2"
- resolved "https://registry.npmjs.org/micromark/-/micromark-4.0.2.tgz"
- integrity sha512-zpe98Q6kvavpCr1NPVSCMebCKfD7CA2NqZ+rykeNhONIJBpc1tFKt9hucLGwha3jNTNI8lHpctWJWoimVF4PfA==
- dependencies:
- "@types/debug" "^4.0.0"
- debug "^4.0.0"
- decode-named-character-reference "^1.0.0"
- devlop "^1.0.0"
- micromark-core-commonmark "^2.0.0"
- micromark-factory-space "^2.0.0"
- micromark-util-character "^2.0.0"
- micromark-util-chunked "^2.0.0"
- micromark-util-combine-extensions "^2.0.0"
- micromark-util-decode-numeric-character-reference "^2.0.0"
- micromark-util-encode "^2.0.0"
- micromark-util-normalize-identifier "^2.0.0"
- micromark-util-resolve-all "^2.0.0"
- micromark-util-sanitize-uri "^2.0.0"
- micromark-util-subtokenize "^2.0.0"
- micromark-util-symbol "^2.0.0"
- micromark-util-types "^2.0.0"
-
-micromatch@^4.0.4, micromatch@^4.0.8, micromatch@~4.0.8:
- version "4.0.8"
- resolved "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz"
- integrity sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==
- dependencies:
- braces "^3.0.3"
- picomatch "^2.3.1"
-
-mimic-fn@^2.1.0:
- version "2.1.0"
- resolved "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz"
- integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==
-
-mimic-fn@^4.0.0:
- version "4.0.0"
- resolved "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz"
- integrity sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==
-
-mimic-function@^5.0.0:
- version "5.0.1"
- resolved "https://registry.npmjs.org/mimic-function/-/mimic-function-5.0.1.tgz"
- integrity sha512-VP79XUPxV2CigYP3jWwAUFSku2aKqBH7uTAapFWCBqutsbmDo96KY5o8uh6U+/YSIn5OxJnXp73beVkpqMIGhA==
-
-minimatch@^3.0.4, minimatch@^3.1.1:
- version "3.1.2"
- resolved "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz"
- integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==
- dependencies:
- brace-expansion "^1.1.7"
-
-minimatch@^9.0.4:
- version "9.0.5"
- resolved "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz"
- integrity sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==
- dependencies:
- brace-expansion "^2.0.1"
-
-minimist@^1.2.8:
- version "1.2.8"
- resolved "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz"
- integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==
-
-"minipass@^5.0.0 || ^6.0.2 || ^7.0.0", minipass@^7.1.2:
- version "7.1.2"
- resolved "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz"
- integrity sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==
-
-mj-context-menu@^0.6.1:
- version "0.6.1"
- resolved "https://registry.npmjs.org/mj-context-menu/-/mj-context-menu-0.6.1.tgz"
- integrity sha512-7NO5s6n10TIV96d4g2uDpG7ZDpIhMh0QNfGdJw/W47JswFcosz457wqz/b5sAKvl12sxINGFCn80NZHKwxQEXA==
-
-mlly@^1.7.4:
- version "1.7.4"
- resolved "https://registry.npmjs.org/mlly/-/mlly-1.7.4.tgz"
- integrity sha512-qmdSIPC4bDJXgZTCR7XosJiNKySV7O215tsPtDN9iEO/7q/76b/ijtgRu/+epFXSJhijtTCCGp3DWS549P3xKw==
- dependencies:
- acorn "^8.14.0"
- pathe "^2.0.1"
- pkg-types "^1.3.0"
- ufo "^1.5.4"
-
-ms@^2.1.3:
- version "2.1.3"
- resolved "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz"
- integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==
-
-mz@^2.7.0:
- version "2.7.0"
- resolved "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz"
- integrity sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==
- dependencies:
- any-promise "^1.0.0"
- object-assign "^4.0.1"
- thenify-all "^1.0.0"
-
-nanoid@^3.3.6, nanoid@^3.3.8:
- version "3.3.11"
- resolved "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz"
- integrity sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==
-
-natural-compare@^1.4.0:
- version "1.4.0"
- resolved "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz"
- integrity sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==
-
-negotiator@^1.0.0:
- version "1.0.0"
- resolved "https://registry.npmjs.org/negotiator/-/negotiator-1.0.0.tgz"
- integrity sha512-8Ofs/AUQh8MaEcrlq5xOX0CQ9ypTF5dl78mjlMNfOK08fzpgTHQRQPBxcPlEtIw0yRpws+Zo/3r+5WRby7u3Gg==
-
-next-sitemap@^4.2.3:
- version "4.2.3"
- resolved "https://registry.npmjs.org/next-sitemap/-/next-sitemap-4.2.3.tgz"
- integrity sha512-vjdCxeDuWDzldhCnyFCQipw5bfpl4HmZA7uoo3GAaYGjGgfL4Cxb1CiztPuWGmS+auYs7/8OekRS8C2cjdAsjQ==
- dependencies:
- "@corex/deepmerge" "^4.0.43"
- "@next/env" "^13.4.3"
- fast-glob "^3.2.12"
- minimist "^1.2.8"
-
-next-themes@^0.4.0:
- version "0.4.6"
- resolved "https://registry.npmjs.org/next-themes/-/next-themes-0.4.6.tgz"
- integrity sha512-pZvgD5L0IEvX5/9GWyHMf3m8BKiVQwsCMHfoFosXtXBMnaS0ZnIJ9ST4b4NqLVKDEm8QBxoNNGNaBv2JNF6XNA==
-
-next@*, next@^14.2.5, "next@>= 13", next@>=13:
- version "14.2.26"
- resolved "https://registry.npmjs.org/next/-/next-14.2.26.tgz"
- integrity sha512-b81XSLihMwCfwiUVRRja3LphLo4uBBMZEzBBWMaISbKTwOmq3wPknIETy/8000tr7Gq4WmbuFYPS7jOYIf+ZJw==
- dependencies:
- "@next/env" "14.2.26"
- "@swc/helpers" "0.5.5"
- busboy "1.6.0"
- caniuse-lite "^1.0.30001579"
- graceful-fs "^4.2.11"
- postcss "8.4.31"
- styled-jsx "5.1.1"
- optionalDependencies:
- "@next/swc-darwin-arm64" "14.2.26"
- "@next/swc-darwin-x64" "14.2.26"
- "@next/swc-linux-arm64-gnu" "14.2.26"
- "@next/swc-linux-arm64-musl" "14.2.26"
- "@next/swc-linux-x64-gnu" "14.2.26"
- "@next/swc-linux-x64-musl" "14.2.26"
- "@next/swc-win32-arm64-msvc" "14.2.26"
- "@next/swc-win32-ia32-msvc" "14.2.26"
- "@next/swc-win32-x64-msvc" "14.2.26"
-
-nextra-theme-docs@^3:
- version "3.3.1"
- resolved "https://registry.npmjs.org/nextra-theme-docs/-/nextra-theme-docs-3.3.1.tgz"
- integrity sha512-P305m2UcW2IDyQhjrcAu0qpdPArikofinABslUCAyixYShsmcdDRUhIMd4QBHYru4gQuVjGWX9PhWZZCbNvzDQ==
- dependencies:
- "@headlessui/react" "^2.1.2"
- clsx "^2.0.0"
- escape-string-regexp "^5.0.0"
- flexsearch "^0.7.43"
- next-themes "^0.4.0"
- scroll-into-view-if-needed "^3.1.0"
- zod "^3.22.3"
-
-nextra@^3, nextra@3.3.1:
- version "3.3.1"
- resolved "https://registry.npmjs.org/nextra/-/nextra-3.3.1.tgz"
- integrity sha512-jiwj+LfUPHHeAxJAEqFuglxnbjFgzAOnDWFsjv7iv3BWiX8OksDwd3I2Sv3j2zba00iIBDEPdNeylfzTtTLZVg==
- dependencies:
- "@formatjs/intl-localematcher" "^0.5.4"
- "@headlessui/react" "^2.1.2"
- "@mdx-js/mdx" "^3.0.0"
- "@mdx-js/react" "^3.0.0"
- "@napi-rs/simple-git" "^0.1.9"
- "@shikijs/twoslash" "^1.0.0"
- "@theguild/remark-mermaid" "^0.1.3"
- "@theguild/remark-npm2yarn" "^0.3.2"
- better-react-mathjax "^2.0.3"
- clsx "^2.0.0"
- estree-util-to-js "^2.0.0"
- estree-util-value-to-estree "^3.0.1"
- github-slugger "^2.0.0"
- graceful-fs "^4.2.11"
- gray-matter "^4.0.3"
- hast-util-to-estree "^3.1.0"
- katex "^0.16.9"
- mdast-util-from-markdown "^2.0.1"
- mdast-util-gfm "^3.0.0"
- mdast-util-to-hast "^13.2.0"
- negotiator "^1.0.0"
- p-limit "^6.0.0"
- react-medium-image-zoom "^5.2.12"
- rehype-katex "^7.0.0"
- rehype-pretty-code "0.14.0"
- rehype-raw "^7.0.0"
- remark-frontmatter "^5.0.0"
- remark-gfm "^4.0.0"
- remark-math "^6.0.0"
- remark-reading-time "^2.0.1"
- remark-smartypants "^3.0.0"
- shiki "^1.0.0"
- slash "^5.1.0"
- title "^4.0.0"
- unist-util-remove "^4.0.0"
- unist-util-visit "^5.0.0"
- yaml "^2.3.2"
- zod "^3.22.3"
- zod-validation-error "^3.0.0"
-
-nlcst-to-string@^4.0.0:
- version "4.0.0"
- resolved "https://registry.npmjs.org/nlcst-to-string/-/nlcst-to-string-4.0.0.tgz"
- integrity sha512-YKLBCcUYKAg0FNlOBT6aI91qFmSiFKiluk655WzPF+DDMA02qIyy8uiRqI8QXtcFpEvll12LpL5MXqEmAZ+dcA==
- dependencies:
- "@types/nlcst" "^2.0.0"
-
-node-int64@^0.4.0:
- version "0.4.0"
- resolved "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz"
- integrity sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==
-
-node-releases@^2.0.19:
- version "2.0.19"
- resolved "https://registry.npmjs.org/node-releases/-/node-releases-2.0.19.tgz"
- integrity sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==
-
-normalize-path@^3.0.0, normalize-path@~3.0.0:
- version "3.0.0"
- resolved "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz"
- integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==
-
-normalize-range@^0.1.2:
- version "0.1.2"
- resolved "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz"
- integrity sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==
-
-npm-run-path@^4.0.1:
- version "4.0.1"
- resolved "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz"
- integrity sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==
- dependencies:
- path-key "^3.0.0"
-
-npm-run-path@^5.1.0:
- version "5.3.0"
- dependencies:
- path-key "^4.0.0"
-
-npm-to-yarn@^3.0.0:
- version "3.0.1"
- resolved "https://registry.npmjs.org/npm-to-yarn/-/npm-to-yarn-3.0.1.tgz"
- integrity sha512-tt6PvKu4WyzPwWUzy/hvPFqn+uwXO0K1ZHka8az3NnrhWJDmSqI8ncWq0fkL0k/lmmi5tAC11FXwXuh0rFbt1A==
-
-oauth4webapi@^3.1.4:
- version "3.5.0"
- resolved "https://registry.npmjs.org/oauth4webapi/-/oauth4webapi-3.5.0.tgz"
- integrity sha512-DF3mLWNuxPkxJkHmWxbSFz4aE5CjWOsm465VBfBdWzmzX4Mg3vF8icxK+iKqfdWrIumBJ2TaoNQWx+SQc2bsPQ==
-
-object-assign@^4.0.1:
- version "4.1.1"
- resolved "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz"
- integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==
-
-object-hash@^3.0.0:
- version "3.0.0"
- resolved "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz"
- integrity sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==
-
-once@^1.3.0:
- 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"
-
-onetime@^5.1.2:
- version "5.1.2"
- resolved "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz"
- integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==
- dependencies:
- mimic-fn "^2.1.0"
-
-onetime@^6.0.0:
- version "6.0.0"
- resolved "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz"
- integrity sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==
- dependencies:
- mimic-fn "^4.0.0"
-
-onetime@^7.0.0:
- version "7.0.0"
- dependencies:
- mimic-function "^5.0.0"
-
-oniguruma-to-es@^2.2.0:
- version "2.3.0"
- resolved "https://registry.npmjs.org/oniguruma-to-es/-/oniguruma-to-es-2.3.0.tgz"
- integrity sha512-bwALDxriqfKGfUufKGGepCzu9x7nJQuoRoAFp4AnwehhC2crqrDIAP/uN2qdlsAvSMpeRC3+Yzhqc7hLmle5+g==
- dependencies:
- emoji-regex-xs "^1.0.0"
- regex "^5.1.1"
- regex-recursion "^5.1.1"
-
-p-limit@^2.2.0:
- 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"
-
-p-limit@^3.1.0:
- version "3.1.0"
- resolved "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz"
- integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==
- dependencies:
- yocto-queue "^0.1.0"
-
-p-limit@^6.0.0:
- version "6.2.0"
- resolved "https://registry.npmjs.org/p-limit/-/p-limit-6.2.0.tgz"
- integrity sha512-kuUqqHNUqoIWp/c467RI4X6mmyuojY5jGutNU0wVTmEOOfcuwLqyMVoAi9MKi2Ak+5i9+nhmrK4ufZE8069kHA==
- dependencies:
- yocto-queue "^1.1.1"
-
-p-locate@^4.1.0:
- 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"
-
-p-try@^2.0.0:
- version "2.2.0"
- resolved "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz"
- integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==
-
-package-json-from-dist@^1.0.0:
- 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==
-
-package-manager-detector@^0.2.8:
- version "0.2.11"
- resolved "https://registry.npmjs.org/package-manager-detector/-/package-manager-detector-0.2.11.tgz"
- integrity sha512-BEnLolu+yuz22S56CU1SUKq3XC3PkwD5wv4ikR4MfGvnRVcmzXR9DwSlW2fEamyTPyXHomBJRzgapeuBvRNzJQ==
- dependencies:
- quansync "^0.2.7"
-
-parse-entities@^4.0.0:
- version "4.0.2"
- resolved "https://registry.npmjs.org/parse-entities/-/parse-entities-4.0.2.tgz"
- integrity sha512-GG2AQYWoLgL877gQIKeRPGO1xF9+eG1ujIb5soS5gPvLQ1y2o8FL90w2QWNdf9I361Mpp7726c+lj3U0qK1uGw==
- dependencies:
- "@types/unist" "^2.0.0"
- character-entities-legacy "^3.0.0"
- character-reference-invalid "^2.0.0"
- decode-named-character-reference "^1.0.0"
- is-alphanumerical "^2.0.0"
- is-decimal "^2.0.0"
- is-hexadecimal "^2.0.0"
-
-parse-json@^5.2.0:
- version "5.2.0"
- resolved "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz"
- integrity sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==
- dependencies:
- "@babel/code-frame" "^7.0.0"
- error-ex "^1.3.1"
- json-parse-even-better-errors "^2.3.0"
- lines-and-columns "^1.1.6"
-
-parse-latin@^7.0.0:
- version "7.0.0"
- resolved "https://registry.npmjs.org/parse-latin/-/parse-latin-7.0.0.tgz"
- integrity sha512-mhHgobPPua5kZ98EF4HWiH167JWBfl4pvAIXXdbaVohtK7a6YBOy56kvhCqduqyo/f3yrHFWmqmiMg/BkBkYYQ==
- dependencies:
- "@types/nlcst" "^2.0.0"
- "@types/unist" "^3.0.0"
- nlcst-to-string "^4.0.0"
- unist-util-modify-children "^4.0.0"
- unist-util-visit-children "^3.0.0"
- vfile "^6.0.0"
-
-parse-numeric-range@^1.3.0:
- version "1.3.0"
- resolved "https://registry.npmjs.org/parse-numeric-range/-/parse-numeric-range-1.3.0.tgz"
- integrity sha512-twN+njEipszzlMJd4ONUYgSfZPDxgHhT9Ahed5uTigpQn90FggW4SA/AIPq/6a149fTbE9qBEcSwE3FAEp6wQQ==
-
-parse5@^7.0.0:
- version "7.2.1"
- resolved "https://registry.npmjs.org/parse5/-/parse5-7.2.1.tgz"
- integrity sha512-BuBYQYlv1ckiPdQi/ohiivi9Sagc9JG+Ozs0r7b/0iK3sKmrb0b9FdWdBbOdx6hBCM/F9Ir82ofnBhtZOjCRPQ==
- dependencies:
- entities "^4.5.0"
-
-path-data-parser@^0.1.0, path-data-parser@0.1.0:
- version "0.1.0"
- resolved "https://registry.npmjs.org/path-data-parser/-/path-data-parser-0.1.0.tgz"
- integrity sha512-NOnmBpt5Y2RWbuv0LMzsayp3lVylAHLPUTut412ZA3l+C4uw4ZVkQbjShYCQ8TCpUMdPapr4YjUqLYD6v68j+w==
-
-path-exists@^4.0.0:
- version "4.0.0"
- resolved "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz"
- integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==
-
-path-is-absolute@^1.0.0:
- version "1.0.1"
- resolved "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz"
- integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==
-
-path-key@^3.0.0:
- version "3.1.1"
- resolved "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz"
- integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==
-
-path-key@^3.1.0:
- version "3.1.1"
- resolved "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz"
- integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==
-
-path-key@^4.0.0:
- version "4.0.0"
- resolved "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz"
- integrity sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==
-
-path-parse@^1.0.7:
- version "1.0.7"
- resolved "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz"
- integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==
-
-path-scurry@^1.11.1:
- version "1.11.1"
- resolved "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz"
- integrity sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==
- dependencies:
- lru-cache "^10.2.0"
- minipass "^5.0.0 || ^6.0.2 || ^7.0.0"
-
-pathe@^2.0.1, pathe@^2.0.3:
- version "2.0.3"
- resolved "https://registry.npmjs.org/pathe/-/pathe-2.0.3.tgz"
- integrity sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==
-
-picocolors@^1.0.0, picocolors@^1.1.1:
- version "1.1.1"
- resolved "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz"
- integrity sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==
-
-picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.2.3, picomatch@^2.3.1:
- version "2.3.1"
- resolved "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz"
- integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==
-
-pidtree@~0.6.0:
- version "0.6.0"
-
-pify@^2.3.0:
- version "2.3.0"
- resolved "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz"
- integrity sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==
-
-pirates@^4.0.1, pirates@^4.0.4:
- version "4.0.7"
- resolved "https://registry.npmjs.org/pirates/-/pirates-4.0.7.tgz"
- integrity sha512-TfySrs/5nm8fQJDcBDuUng3VOUKsd7S+zqvbOTiGXHfxX4wK31ard+hoNuvkicM/2YFzlpDgABOevKSsB4G/FA==
-
-pkg-dir@^4.2.0:
- 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"
-
-pkg-types@^1.3.0:
- version "1.3.1"
- resolved "https://registry.npmjs.org/pkg-types/-/pkg-types-1.3.1.tgz"
- integrity sha512-/Jm5M4RvtBFVkKWRu2BLUTNP8/M2a+UwuAX+ae4770q1qVGtfjG+WTCupoZixokjmHiry8uI+dlY8KXYV5HVVQ==
- dependencies:
- confbox "^0.1.8"
- mlly "^1.7.4"
- pathe "^2.0.1"
-
-pkg-types@^2.0.1:
- version "2.1.0"
- resolved "https://registry.npmjs.org/pkg-types/-/pkg-types-2.1.0.tgz"
- integrity sha512-wmJwA+8ihJixSoHKxZJRBQG1oY8Yr9pGLzRmSsNms0iNWyHHAlZCa7mmKiFR10YPZuz/2k169JiS/inOjBCZ2A==
- dependencies:
- confbox "^0.2.1"
- exsolve "^1.0.1"
- pathe "^2.0.3"
-
-points-on-curve@^0.2.0, points-on-curve@0.2.0:
- version "0.2.0"
- resolved "https://registry.npmjs.org/points-on-curve/-/points-on-curve-0.2.0.tgz"
- integrity sha512-0mYKnYYe9ZcqMCWhUjItv/oHjvgEsfKvnUTg8sAtnHr3GVy7rGkXCb6d5cSyqrWqL4k81b9CPg3urd+T7aop3A==
-
-points-on-path@^0.2.1:
- version "0.2.1"
- resolved "https://registry.npmjs.org/points-on-path/-/points-on-path-0.2.1.tgz"
- integrity sha512-25ClnWWuw7JbWZcgqY/gJ4FQWadKxGWk+3kR/7kD0tCaDtPPMj7oHu2ToLaVhfpnHrZzYby2w6tUA0eOIuUg8g==
- dependencies:
- path-data-parser "0.1.0"
- points-on-curve "0.2.0"
-
-postcss-import@^15.1.0:
- version "15.1.0"
- resolved "https://registry.npmjs.org/postcss-import/-/postcss-import-15.1.0.tgz"
- integrity sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==
- dependencies:
- postcss-value-parser "^4.0.0"
- read-cache "^1.0.0"
- resolve "^1.1.7"
-
-postcss-js@^4.0.1:
- version "4.0.1"
- resolved "https://registry.npmjs.org/postcss-js/-/postcss-js-4.0.1.tgz"
- integrity sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==
- dependencies:
- camelcase-css "^2.0.1"
-
-postcss-load-config@^4.0.2:
- version "4.0.2"
- resolved "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-4.0.2.tgz"
- integrity sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==
- dependencies:
- lilconfig "^3.0.0"
- yaml "^2.3.4"
-
-postcss-nested@^6.2.0:
- version "6.2.0"
- resolved "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.2.0.tgz"
- integrity sha512-HQbt28KulC5AJzG+cZtj9kvKB93CFCdLvog1WFLf1D+xmMvPGlBstkpTEZfK5+AN9hfJocyBFCNiqyS48bpgzQ==
- dependencies:
- postcss-selector-parser "^6.1.1"
-
-postcss-selector-parser@^6.1.1, postcss-selector-parser@^6.1.2:
- version "6.1.2"
- resolved "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.2.tgz"
- integrity sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==
- dependencies:
- cssesc "^3.0.0"
- util-deprecate "^1.0.2"
-
-postcss-value-parser@^4.0.0, postcss-value-parser@^4.2.0:
- version "4.2.0"
- resolved "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz"
- integrity sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==
-
-postcss@^8.0.0, postcss@^8.1.0, postcss@^8.2.14, postcss@^8.4.21, postcss@^8.4.40, postcss@^8.4.47, postcss@>=8.0.9:
- version "8.5.3"
- resolved "https://registry.npmjs.org/postcss/-/postcss-8.5.3.tgz"
- integrity sha512-dle9A3yYxlBSrt8Fu+IpjGT8SY8hN0mlaA6GY8t0P5PjIOZemULz/E2Bnm/2dcUOena75OTNkHI76uZBNUUq3A==
- dependencies:
- nanoid "^3.3.8"
- picocolors "^1.1.1"
- source-map-js "^1.2.1"
-
-postcss@8.4.31:
- version "8.4.31"
- resolved "https://registry.npmjs.org/postcss/-/postcss-8.4.31.tgz"
- integrity sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==
- dependencies:
- nanoid "^3.3.6"
- picocolors "^1.0.0"
- source-map-js "^1.0.2"
-
-prettier@^3.3.3:
- version "3.5.3"
- resolved "https://registry.npmjs.org/prettier/-/prettier-3.5.3.tgz"
- integrity sha512-QQtaxnoDJeAkDvDKWCLiwIXkTgRhwYDEQCghU9Z6q03iyek/rxRh/2lC3HB7P8sWT2xC/y5JDctPLBIGzHKbhw==
-
-pretty-format@^29.7.0:
- version "29.7.0"
- resolved "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz"
- integrity sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==
- dependencies:
- "@jest/schemas" "^29.6.3"
- ansi-styles "^5.0.0"
- react-is "^18.0.0"
-
-prismjs@^1.30.0:
- version "1.30.0"
- resolved "https://registry.npmjs.org/prismjs/-/prismjs-1.30.0.tgz"
- integrity sha512-DEvV2ZF2r2/63V+tK8hQvrR2ZGn10srHbXviTlcv7Kpzw8jWiNTqbVgjO3IY8RxrrOUF8VPMQQFysYYYv0YZxw==
-
-prompts@^2.0.1:
- version "2.4.2"
- resolved "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz"
- integrity sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==
- dependencies:
- kleur "^3.0.3"
- sisteransi "^1.0.5"
-
-property-information@^6.0.0:
- version "6.5.0"
- resolved "https://registry.npmjs.org/property-information/-/property-information-6.5.0.tgz"
- integrity sha512-PgTgs/BlvHxOu8QuEN7wi5A0OmXaBcHpmCSTehcs6Uuu9IkDIEo13Hy7n898RHfrQ49vKCoGeWZSaAK01nwVig==
-
-property-information@^7.0.0:
- version "7.0.0"
- resolved "https://registry.npmjs.org/property-information/-/property-information-7.0.0.tgz"
- integrity sha512-7D/qOz/+Y4X/rzSB6jKxKUsQnphO046ei8qxG59mtM3RG3DHgTK81HrxrmoDVINJb8NKT5ZsRbwHvQ6B68Iyhg==
-
-pure-rand@^6.0.0:
- version "6.1.0"
- resolved "https://registry.npmjs.org/pure-rand/-/pure-rand-6.1.0.tgz"
- integrity sha512-bVWawvoZoBYpp6yIoQtQXHZjmz35RSVHnUOTefl8Vcjr8snTPY1wnpSPMWekcFwbxI6gtmT7rSYPFvz71ldiOA==
-
-quansync@^0.2.7, quansync@^0.2.8:
- version "0.2.10"
- resolved "https://registry.npmjs.org/quansync/-/quansync-0.2.10.tgz"
- integrity sha512-t41VRkMYbkHyCYmOvx/6URnN80H7k4X0lLdBMGsz+maAwrJQYB1djpV6vHrQIBE0WBSGqhtEHrK9U3DWWH8v7A==
-
-queue-microtask@^1.2.2:
- version "1.2.3"
- resolved "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz"
- integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==
-
-"react-dom@^16.8 || ^17 || ^18 || ^19 || ^19.0.0-rc", "react-dom@^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", "react-dom@^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", "react-dom@^18 || ^19 || ^19.0.0-rc", react-dom@^18.2.0, react-dom@^18.3.1, "react-dom@>= 16.8.0 < 19.0.0", react-dom@>=16.8.0, react-dom@>=18:
- 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"
-
-react-is@^18.0.0:
- version "18.3.1"
- resolved "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz"
- integrity sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==
-
-react-markdown@^9.0.1:
- version "9.1.0"
- resolved "https://registry.npmjs.org/react-markdown/-/react-markdown-9.1.0.tgz"
- integrity sha512-xaijuJB0kzGiUdG7nc2MOMDUDBWPyGAjZtUrow9XxUeua8IqeP+VlIfAZ3bphpcLTnSZXz6z9jcVC/TCwbfgdw==
- dependencies:
- "@types/hast" "^3.0.0"
- "@types/mdast" "^4.0.0"
- devlop "^1.0.0"
- hast-util-to-jsx-runtime "^2.0.0"
- html-url-attributes "^3.0.0"
- mdast-util-to-hast "^13.0.0"
- remark-parse "^11.0.0"
- remark-rehype "^11.0.0"
- unified "^11.0.0"
- unist-util-visit "^5.0.0"
- vfile "^6.0.0"
-
-react-medium-image-zoom@^5.2.12:
- version "5.2.14"
- resolved "https://registry.npmjs.org/react-medium-image-zoom/-/react-medium-image-zoom-5.2.14.tgz"
- integrity sha512-nfTVYcAUnBzXQpPDcZL+cG/e6UceYUIG+zDcnemL7jtAqbJjVVkA85RgneGtJeni12dTyiRPZVM6Szkmwd/o8w==
-
-"react@^16.8 || ^17 || ^18 || ^19 || ^19.0.0-rc", "react@^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", "react@^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", "react@^18 || ^19 || ^19.0.0-rc", react@^18.2.0, react@^18.3.1, "react@>= 16.8.0 < 19.0.0", "react@>= 16.8.0 || 17.x.x || ^18.0.0-0", react@>=16, react@>=16.8, react@>=16.8.0, react@>=18:
- 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"
-
-read-cache@^1.0.0:
- version "1.0.0"
- resolved "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz"
- integrity sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==
- dependencies:
- pify "^2.3.0"
-
-readdirp@~3.6.0:
- version "3.6.0"
- resolved "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz"
- integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==
- dependencies:
- picomatch "^2.2.1"
-
-reading-time@^1.3.0:
- version "1.5.0"
- resolved "https://registry.npmjs.org/reading-time/-/reading-time-1.5.0.tgz"
- integrity sha512-onYyVhBNr4CmAxFsKS7bz+uTLRakypIe4R+5A824vBSkQy/hB3fZepoVEf8OVAxzLvK+H/jm9TzpI3ETSm64Kg==
-
-recma-build-jsx@^1.0.0:
- version "1.0.0"
- resolved "https://registry.npmjs.org/recma-build-jsx/-/recma-build-jsx-1.0.0.tgz"
- integrity sha512-8GtdyqaBcDfva+GUKDr3nev3VpKAhup1+RvkMvUxURHpW7QyIvk9F5wz7Vzo06CEMSilw6uArgRqhpiUcWp8ew==
- dependencies:
- "@types/estree" "^1.0.0"
- estree-util-build-jsx "^3.0.0"
- vfile "^6.0.0"
-
-recma-jsx@^1.0.0:
- version "1.0.0"
- resolved "https://registry.npmjs.org/recma-jsx/-/recma-jsx-1.0.0.tgz"
- integrity sha512-5vwkv65qWwYxg+Atz95acp8DMu1JDSqdGkA2Of1j6rCreyFUE/gp15fC8MnGEuG1W68UKjM6x6+YTWIh7hZM/Q==
- dependencies:
- acorn-jsx "^5.0.0"
- estree-util-to-js "^2.0.0"
- recma-parse "^1.0.0"
- recma-stringify "^1.0.0"
- unified "^11.0.0"
-
-recma-parse@^1.0.0:
- version "1.0.0"
- resolved "https://registry.npmjs.org/recma-parse/-/recma-parse-1.0.0.tgz"
- integrity sha512-OYLsIGBB5Y5wjnSnQW6t3Xg7q3fQ7FWbw/vcXtORTnyaSFscOtABg+7Pnz6YZ6c27fG1/aN8CjfwoUEUIdwqWQ==
- dependencies:
- "@types/estree" "^1.0.0"
- esast-util-from-js "^2.0.0"
- unified "^11.0.0"
- vfile "^6.0.0"
-
-recma-stringify@^1.0.0:
- version "1.0.0"
- resolved "https://registry.npmjs.org/recma-stringify/-/recma-stringify-1.0.0.tgz"
- integrity sha512-cjwII1MdIIVloKvC9ErQ+OgAtwHBmcZ0Bg4ciz78FtbT8In39aAYbaA7zvxQ61xVMSPE8WxhLwLbhif4Js2C+g==
- dependencies:
- "@types/estree" "^1.0.0"
- estree-util-to-js "^2.0.0"
- unified "^11.0.0"
- vfile "^6.0.0"
-
-regex-recursion@^5.1.1:
- version "5.1.1"
- resolved "https://registry.npmjs.org/regex-recursion/-/regex-recursion-5.1.1.tgz"
- integrity sha512-ae7SBCbzVNrIjgSbh7wMznPcQel1DNlDtzensnFxpiNpXt1U2ju/bHugH422r+4LAVS1FpW1YCwilmnNsjum9w==
- dependencies:
- regex "^5.1.1"
- regex-utilities "^2.3.0"
-
-regex-utilities@^2.3.0:
- version "2.3.0"
- resolved "https://registry.npmjs.org/regex-utilities/-/regex-utilities-2.3.0.tgz"
- integrity sha512-8VhliFJAWRaUiVvREIiW2NXXTmHs4vMNnSzuJVhscgmGav3g9VDxLrQndI3dZZVVdp0ZO/5v0xmX516/7M9cng==
-
-regex@^5.1.1:
- version "5.1.1"
- resolved "https://registry.npmjs.org/regex/-/regex-5.1.1.tgz"
- integrity sha512-dN5I359AVGPnwzJm2jN1k0W9LPZ+ePvoOeVMMfqIMFz53sSwXkxaJoxr50ptnsC771lK95BnTrVSZxq0b9yCGw==
- dependencies:
- regex-utilities "^2.3.0"
-
-rehype-katex@^7.0.0:
- version "7.0.1"
- resolved "https://registry.npmjs.org/rehype-katex/-/rehype-katex-7.0.1.tgz"
- integrity sha512-OiM2wrZ/wuhKkigASodFoo8wimG3H12LWQaH8qSPVJn9apWKFSH3YOCtbKpBorTVw/eI7cuT21XBbvwEswbIOA==
- dependencies:
- "@types/hast" "^3.0.0"
- "@types/katex" "^0.16.0"
- hast-util-from-html-isomorphic "^2.0.0"
- hast-util-to-text "^4.0.0"
- katex "^0.16.0"
- unist-util-visit-parents "^6.0.0"
- vfile "^6.0.0"
-
-rehype-parse@^9.0.0:
- version "9.0.1"
- resolved "https://registry.npmjs.org/rehype-parse/-/rehype-parse-9.0.1.tgz"
- integrity sha512-ksCzCD0Fgfh7trPDxr2rSylbwq9iYDkSn8TCDmEJ49ljEUBxDVCzCHv7QNzZOfODanX4+bWQ4WZqLCRWYLfhag==
- dependencies:
- "@types/hast" "^3.0.0"
- hast-util-from-html "^2.0.0"
- unified "^11.0.0"
-
-rehype-pretty-code@0.14.0:
- version "0.14.0"
- resolved "https://registry.npmjs.org/rehype-pretty-code/-/rehype-pretty-code-0.14.0.tgz"
- integrity sha512-hBeKF/Wkkf3zyUS8lal9RCUuhypDWLQc+h9UrP9Pav25FUm/AQAVh4m5gdvJxh4Oz+U+xKvdsV01p1LdvsZTiQ==
- dependencies:
- "@types/hast" "^3.0.4"
- hast-util-to-string "^3.0.0"
- parse-numeric-range "^1.3.0"
- rehype-parse "^9.0.0"
- unified "^11.0.5"
- unist-util-visit "^5.0.0"
-
-rehype-raw@^7.0.0:
- version "7.0.0"
- resolved "https://registry.npmjs.org/rehype-raw/-/rehype-raw-7.0.0.tgz"
- integrity sha512-/aE8hCfKlQeA8LmyeyQvQF3eBiLRGNlfBJEvWH7ivp9sBqs7TNqBL5X3v157rM4IFETqDnIOO+z5M/biZbo9Ww==
- dependencies:
- "@types/hast" "^3.0.0"
- hast-util-raw "^9.0.0"
- vfile "^6.0.0"
-
-rehype-recma@^1.0.0:
- version "1.0.0"
- resolved "https://registry.npmjs.org/rehype-recma/-/rehype-recma-1.0.0.tgz"
- integrity sha512-lqA4rGUf1JmacCNWWZx0Wv1dHqMwxzsDWYMTowuplHF3xH0N/MmrZ/G3BDZnzAkRmxDadujCjaKM2hqYdCBOGw==
- dependencies:
- "@types/estree" "^1.0.0"
- "@types/hast" "^3.0.0"
- hast-util-to-estree "^3.0.0"
-
-remark-frontmatter@^5.0.0:
- version "5.0.0"
- resolved "https://registry.npmjs.org/remark-frontmatter/-/remark-frontmatter-5.0.0.tgz"
- integrity sha512-XTFYvNASMe5iPN0719nPrdItC9aU0ssC4v14mH1BCi1u0n1gAocqcujWUrByftZTbLhRtiKRyjYTSIOcr69UVQ==
- dependencies:
- "@types/mdast" "^4.0.0"
- mdast-util-frontmatter "^2.0.0"
- micromark-extension-frontmatter "^2.0.0"
- unified "^11.0.0"
-
-remark-gfm@^4.0.0:
- version "4.0.1"
- resolved "https://registry.npmjs.org/remark-gfm/-/remark-gfm-4.0.1.tgz"
- integrity sha512-1quofZ2RQ9EWdeN34S79+KExV1764+wCUGop5CPL1WGdD0ocPpu91lzPGbwWMECpEpd42kJGQwzRfyov9j4yNg==
- dependencies:
- "@types/mdast" "^4.0.0"
- mdast-util-gfm "^3.0.0"
- micromark-extension-gfm "^3.0.0"
- remark-parse "^11.0.0"
- remark-stringify "^11.0.0"
- unified "^11.0.0"
-
-remark-math@^6.0.0:
- version "6.0.0"
- resolved "https://registry.npmjs.org/remark-math/-/remark-math-6.0.0.tgz"
- integrity sha512-MMqgnP74Igy+S3WwnhQ7kqGlEerTETXMvJhrUzDikVZ2/uogJCb+WHUg97hK9/jcfc0dkD73s3LN8zU49cTEtA==
- dependencies:
- "@types/mdast" "^4.0.0"
- mdast-util-math "^3.0.0"
- micromark-extension-math "^3.0.0"
- unified "^11.0.0"
-
-remark-mdx@^3.0.0:
- version "3.1.0"
- resolved "https://registry.npmjs.org/remark-mdx/-/remark-mdx-3.1.0.tgz"
- integrity sha512-Ngl/H3YXyBV9RcRNdlYsZujAmhsxwzxpDzpDEhFBVAGthS4GDgnctpDjgFl/ULx5UEDzqtW1cyBSNKqYYrqLBA==
- dependencies:
- mdast-util-mdx "^3.0.0"
- micromark-extension-mdxjs "^3.0.0"
-
-remark-parse@^11.0.0:
- version "11.0.0"
- resolved "https://registry.npmjs.org/remark-parse/-/remark-parse-11.0.0.tgz"
- integrity sha512-FCxlKLNGknS5ba/1lmpYijMUzX2esxW5xQqjWxw2eHFfS2MSdaHVINFmhjo+qN1WhZhNimq0dZATN9pH0IDrpA==
- dependencies:
- "@types/mdast" "^4.0.0"
- mdast-util-from-markdown "^2.0.0"
- micromark-util-types "^2.0.0"
- unified "^11.0.0"
-
-remark-reading-time@^2.0.1:
- version "2.0.1"
- resolved "https://registry.npmjs.org/remark-reading-time/-/remark-reading-time-2.0.1.tgz"
- integrity sha512-fy4BKy9SRhtYbEHvp6AItbRTnrhiDGbqLQTSYVbQPGuRCncU1ubSsh9p/W5QZSxtYcUXv8KGL0xBgPLyNJA1xw==
- dependencies:
- estree-util-is-identifier-name "^2.0.0"
- estree-util-value-to-estree "^1.3.0"
- reading-time "^1.3.0"
- unist-util-visit "^3.1.0"
-
-remark-rehype@^11.0.0:
- version "11.1.2"
- resolved "https://registry.npmjs.org/remark-rehype/-/remark-rehype-11.1.2.tgz"
- integrity sha512-Dh7l57ianaEoIpzbp0PC9UKAdCSVklD8E5Rpw7ETfbTl3FqcOOgq5q2LVDhgGCkaBv7p24JXikPdvhhmHvKMsw==
- dependencies:
- "@types/hast" "^3.0.0"
- "@types/mdast" "^4.0.0"
- mdast-util-to-hast "^13.0.0"
- unified "^11.0.0"
- vfile "^6.0.0"
-
-remark-smartypants@^3.0.0:
- version "3.0.2"
- resolved "https://registry.npmjs.org/remark-smartypants/-/remark-smartypants-3.0.2.tgz"
- integrity sha512-ILTWeOriIluwEvPjv67v7Blgrcx+LZOkAUVtKI3putuhlZm84FnqDORNXPPm+HY3NdZOMhyDwZ1E+eZB/Df5dA==
- dependencies:
- retext "^9.0.0"
- retext-smartypants "^6.0.0"
- unified "^11.0.4"
- unist-util-visit "^5.0.0"
-
-remark-stringify@^11.0.0:
- version "11.0.0"
- resolved "https://registry.npmjs.org/remark-stringify/-/remark-stringify-11.0.0.tgz"
- integrity sha512-1OSmLd3awB/t8qdoEOMazZkNsfVTeY4fTsgzcQFdXNq8ToTN4ZGwrMnlda4K6smTFKD+GRV6O48i6Z4iKgPPpw==
- dependencies:
- "@types/mdast" "^4.0.0"
- mdast-util-to-markdown "^2.0.0"
- unified "^11.0.0"
-
-require-directory@^2.1.1:
- version "2.1.1"
- resolved "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz"
- integrity sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==
-
-resolve-cwd@^3.0.0:
- 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"
-
-resolve-from@^5.0.0:
- version "5.0.0"
- resolved "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz"
- integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==
-
-resolve.exports@^2.0.0:
- version "2.0.3"
- resolved "https://registry.npmjs.org/resolve.exports/-/resolve.exports-2.0.3.tgz"
- integrity sha512-OcXjMsGdhL4XnbShKpAcSqPMzQoYkYyhbEaeSko47MjRP9NfEQMhZkXL1DoFlt9LWQn4YttrdnV6X2OiyzBi+A==
-
-resolve@^1.1.7, resolve@^1.20.0, resolve@^1.22.8:
- version "1.22.10"
- resolved "https://registry.npmjs.org/resolve/-/resolve-1.22.10.tgz"
- integrity sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==
- dependencies:
- is-core-module "^2.16.0"
- path-parse "^1.0.7"
- supports-preserve-symlinks-flag "^1.0.0"
-
-restore-cursor@^5.0.0:
- version "5.1.0"
- dependencies:
- onetime "^7.0.0"
- signal-exit "^4.1.0"
-
-retext-latin@^4.0.0:
- version "4.0.0"
- resolved "https://registry.npmjs.org/retext-latin/-/retext-latin-4.0.0.tgz"
- integrity sha512-hv9woG7Fy0M9IlRQloq/N6atV82NxLGveq+3H2WOi79dtIYWN8OaxogDm77f8YnVXJL2VD3bbqowu5E3EMhBYA==
- dependencies:
- "@types/nlcst" "^2.0.0"
- parse-latin "^7.0.0"
- unified "^11.0.0"
-
-retext-smartypants@^6.0.0:
- version "6.2.0"
- resolved "https://registry.npmjs.org/retext-smartypants/-/retext-smartypants-6.2.0.tgz"
- integrity sha512-kk0jOU7+zGv//kfjXEBjdIryL1Acl4i9XNkHxtM7Tm5lFiCog576fjNC9hjoR7LTKQ0DsPWy09JummSsH1uqfQ==
- dependencies:
- "@types/nlcst" "^2.0.0"
- nlcst-to-string "^4.0.0"
- unist-util-visit "^5.0.0"
-
-retext-stringify@^4.0.0:
- version "4.0.0"
- resolved "https://registry.npmjs.org/retext-stringify/-/retext-stringify-4.0.0.tgz"
- integrity sha512-rtfN/0o8kL1e+78+uxPTqu1Klt0yPzKuQ2BfWwwfgIUSayyzxpM1PJzkKt4V8803uB9qSy32MvI7Xep9khTpiA==
- dependencies:
- "@types/nlcst" "^2.0.0"
- nlcst-to-string "^4.0.0"
- unified "^11.0.0"
-
-retext@^9.0.0:
- version "9.0.0"
- resolved "https://registry.npmjs.org/retext/-/retext-9.0.0.tgz"
- integrity sha512-sbMDcpHCNjvlheSgMfEcVrZko3cDzdbe1x/e7G66dFp0Ff7Mldvi2uv6JkJQzdRcvLYE8CA8Oe8siQx8ZOgTcA==
- dependencies:
- "@types/nlcst" "^2.0.0"
- retext-latin "^4.0.0"
- retext-stringify "^4.0.0"
- unified "^11.0.0"
-
-reusify@^1.0.4:
- version "1.1.0"
- resolved "https://registry.npmjs.org/reusify/-/reusify-1.1.0.tgz"
- integrity sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==
-
-rfdc@^1.4.1:
- version "1.4.1"
- resolved "https://registry.npmjs.org/rfdc/-/rfdc-1.4.1.tgz"
- integrity sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==
-
-robust-predicates@^3.0.2:
- version "3.0.2"
- resolved "https://registry.npmjs.org/robust-predicates/-/robust-predicates-3.0.2.tgz"
- integrity sha512-IXgzBWvWQwE6PrDI05OvmXUIruQTcoMDzRsOd5CDvHCVLcLHMTSYvOK5Cm46kWqlV3yAbuSpBZdJ5oP5OUoStg==
-
-roughjs@^4.6.6:
- version "4.6.6"
- resolved "https://registry.npmjs.org/roughjs/-/roughjs-4.6.6.tgz"
- integrity sha512-ZUz/69+SYpFN/g/lUlo2FXcIjRkSu3nDarreVdGGndHEBJ6cXPdKguS8JGxwj5HA5xIbVKSmLgr5b3AWxtRfvQ==
- dependencies:
- hachure-fill "^0.5.2"
- path-data-parser "^0.1.0"
- points-on-curve "^0.2.0"
- points-on-path "^0.2.1"
-
-run-parallel@^1.1.9:
- version "1.2.0"
- resolved "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz"
- integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==
- dependencies:
- queue-microtask "^1.2.2"
-
-rw@1:
- version "1.3.3"
- resolved "https://registry.npmjs.org/rw/-/rw-1.3.3.tgz"
- integrity sha512-PdhdWy89SiZogBLaw42zdeqtRJ//zFd2PgQavcICDUgJT5oW10QCRKbJ6bg4r0/UY2M6BWd5tkxuGFRvCkgfHQ==
-
-"safer-buffer@>= 2.1.2 < 3.0.0":
- version "2.1.2"
- resolved "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz"
- integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==
-
-scheduler@^0.23.2:
- 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"
-
-scroll-into-view-if-needed@^3.1.0:
- version "3.1.0"
- resolved "https://registry.npmjs.org/scroll-into-view-if-needed/-/scroll-into-view-if-needed-3.1.0.tgz"
- integrity sha512-49oNpRjWRvnU8NyGVmUaYG4jtTkNonFZI86MmGRDqBphEK2EXT9gdEUoQPZhuBM8yWHxCWbobltqYO5M4XrUvQ==
- dependencies:
- compute-scroll-into-view "^3.0.2"
-
-"search-insights@>= 1 < 3":
- version "2.17.3"
- resolved "https://registry.npmjs.org/search-insights/-/search-insights-2.17.3.tgz"
- integrity sha512-RQPdCYTa8A68uM2jwxoY842xDhvx3E5LFL1LxvxCNMev4o5mLuokczhzjAgGwUZBAmOKZknArSxLKmXtIi2AxQ==
-
-section-matter@^1.0.0:
- version "1.0.0"
- resolved "https://registry.npmjs.org/section-matter/-/section-matter-1.0.0.tgz"
- integrity sha512-vfD3pmTzGpufjScBh50YHKzEu2lxBWhVEHsNGoEXmCmn2hKGfeNLYMzCJpe8cD7gqX7TJluOVpBkAequ6dgMmA==
- dependencies:
- extend-shallow "^2.0.1"
- kind-of "^6.0.0"
-
-semver@^6.3.0, semver@^6.3.1:
- version "6.3.1"
- resolved "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz"
- integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==
-
-semver@^7.5.3:
- version "7.7.1"
- resolved "https://registry.npmjs.org/semver/-/semver-7.7.1.tgz"
- integrity sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==
-
-semver@^7.5.4:
- version "7.7.1"
- resolved "https://registry.npmjs.org/semver/-/semver-7.7.1.tgz"
- integrity sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==
-
-semver@^7.6.3:
- version "7.7.1"
- resolved "https://registry.npmjs.org/semver/-/semver-7.7.1.tgz"
- integrity sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==
-
-sharp@^0.33.4:
- version "0.33.5"
- resolved "https://registry.npmjs.org/sharp/-/sharp-0.33.5.tgz"
- integrity sha512-haPVm1EkS9pgvHrQ/F3Xy+hgcuMV0Wm9vfIBSiwZ05k+xgb0PkBQpGsAA/oWdDobNaZTH5ppvHtzCFbnSEwHVw==
- dependencies:
- color "^4.2.3"
- detect-libc "^2.0.3"
- semver "^7.6.3"
- 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"
-
-shebang-command@^2.0.0:
- 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"
-
-shebang-regex@^3.0.0:
- version "3.0.0"
- resolved "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz"
- integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==
-
-shiki@^1.0.0, shiki@^1.3.0:
- version "1.29.2"
- resolved "https://registry.npmjs.org/shiki/-/shiki-1.29.2.tgz"
- integrity sha512-njXuliz/cP+67jU2hukkxCNuH1yUi4QfdZZY+sMr5PPrIyXSu5iTb/qYC4BiWWB0vZ+7TbdvYUCeL23zpwCfbg==
- dependencies:
- "@shikijs/core" "1.29.2"
- "@shikijs/engine-javascript" "1.29.2"
- "@shikijs/engine-oniguruma" "1.29.2"
- "@shikijs/langs" "1.29.2"
- "@shikijs/themes" "1.29.2"
- "@shikijs/types" "1.29.2"
- "@shikijs/vscode-textmate" "^10.0.1"
- "@types/hast" "^3.0.4"
-
-signal-exit@^3.0.3:
- version "3.0.7"
- resolved "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz"
- integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==
-
-signal-exit@^3.0.7:
- version "3.0.7"
- resolved "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz"
- integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==
-
-signal-exit@^4.0.1, signal-exit@^4.1.0:
- version "4.1.0"
- resolved "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz"
- integrity sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==
-
-simple-swizzle@^0.2.2:
- 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==
- dependencies:
- is-arrayish "^0.3.1"
-
-sisteransi@^1.0.5:
- version "1.0.5"
- resolved "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz"
- integrity sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==
-
-slash@^3.0.0:
- version "3.0.0"
- resolved "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz"
- integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==
-
-slash@^5.1.0:
- version "5.1.0"
- resolved "https://registry.npmjs.org/slash/-/slash-5.1.0.tgz"
- integrity sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg==
-
-slice-ansi@^5.0.0:
- version "5.0.0"
- dependencies:
- ansi-styles "^6.0.0"
- is-fullwidth-code-point "^4.0.0"
-
-slice-ansi@^7.1.0:
- version "7.1.0"
- dependencies:
- ansi-styles "^6.2.1"
- is-fullwidth-code-point "^5.0.0"
-
-source-map-js@^1.0.2, source-map-js@^1.2.1:
- 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==
-
-source-map-support@0.5.13:
- version "0.5.13"
- resolved "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.13.tgz"
- integrity sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==
- dependencies:
- buffer-from "^1.0.0"
- source-map "^0.6.0"
-
-source-map@^0.6.0, source-map@^0.6.1:
- version "0.6.1"
- resolved "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz"
- integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==
-
-source-map@^0.7.0:
- version "0.7.4"
- resolved "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz"
- integrity sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==
-
-space-separated-tokens@^2.0.0:
- version "2.0.2"
- resolved "https://registry.npmjs.org/space-separated-tokens/-/space-separated-tokens-2.0.2.tgz"
- integrity sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==
-
-speech-rule-engine@^4.0.6:
- version "4.0.7"
- resolved "https://registry.npmjs.org/speech-rule-engine/-/speech-rule-engine-4.0.7.tgz"
- integrity sha512-sJrL3/wHzNwJRLBdf6CjJWIlxC04iYKkyXvYSVsWVOiC2DSkHmxsqOhEeMsBA9XK+CHuNcsdkbFDnoUfAsmp9g==
- dependencies:
- commander "9.2.0"
- wicked-good-xpath "1.3.0"
- xmldom-sre "0.1.31"
-
-sprintf-js@~1.0.2:
- version "1.0.3"
- resolved "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz"
- integrity sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==
-
-stack-utils@^2.0.3:
- version "2.0.6"
- resolved "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz"
- integrity sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==
- dependencies:
- escape-string-regexp "^2.0.0"
-
-streamsearch@^1.1.0:
- version "1.1.0"
- resolved "https://registry.npmjs.org/streamsearch/-/streamsearch-1.1.0.tgz"
- integrity sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==
-
-string-argv@~0.3.2:
- version "0.3.2"
- resolved "https://registry.npmjs.org/string-argv/-/string-argv-0.3.2.tgz"
- integrity sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q==
-
-string-length@^4.0.1:
- version "4.0.2"
- resolved "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz"
- integrity sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==
- dependencies:
- char-regex "^1.0.2"
- strip-ansi "^6.0.0"
-
-"string-width-cjs@npm:string-width@^4.2.0":
- 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"
-
-string-width@^4.1.0, string-width@^4.2.0:
- 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"
-
-string-width@^4.2.3:
- 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"
-
-string-width@^5.0.1, string-width@^5.1.2:
- 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"
-
-string-width@^7.0.0:
- version "7.2.0"
- dependencies:
- emoji-regex "^10.3.0"
- get-east-asian-width "^1.0.0"
- strip-ansi "^7.1.0"
-
-stringify-entities@^4.0.0:
- version "4.0.4"
- resolved "https://registry.npmjs.org/stringify-entities/-/stringify-entities-4.0.4.tgz"
- integrity sha512-IwfBptatlO+QCJUo19AqvrPNqlVMpW9YEL2LIVY+Rpv2qsjCGxaDLNRgeGsQWJhfItebuJhsGSLjaBbNSQ+ieg==
- dependencies:
- character-entities-html4 "^2.0.0"
- character-entities-legacy "^3.0.0"
-
-"strip-ansi-cjs@npm:strip-ansi@^6.0.1":
- 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"
-
-strip-ansi@^6.0.0, strip-ansi@^6.0.1:
- 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"
-
-strip-ansi@^7.0.1, strip-ansi@^7.1.0:
- version "7.1.0"
- dependencies:
- ansi-regex "^6.0.1"
-
-strip-bom-string@^1.0.0:
- version "1.0.0"
- resolved "https://registry.npmjs.org/strip-bom-string/-/strip-bom-string-1.0.0.tgz"
- integrity sha512-uCC2VHvQRYu+lMh4My/sFNmF2klFymLX1wHJeXnbEJERpV/ZsVuonzerjfrGpIGF7LBVa1O7i9kjiWvJiFck8g==
-
-strip-bom@^4.0.0:
- version "4.0.0"
- resolved "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz"
- integrity sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==
-
-strip-final-newline@^2.0.0:
- version "2.0.0"
- resolved "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz"
- integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==
-
-strip-final-newline@^3.0.0:
- version "3.0.0"
- resolved "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz"
- integrity sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==
-
-strip-json-comments@^3.1.1:
- version "3.1.1"
- resolved "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz"
- integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==
-
-style-to-js@^1.0.0:
- version "1.1.16"
- resolved "https://registry.npmjs.org/style-to-js/-/style-to-js-1.1.16.tgz"
- integrity sha512-/Q6ld50hKYPH3d/r6nr117TZkHR0w0kGGIVfpG9N6D8NymRPM9RqCUv4pRpJ62E5DqOYx2AFpbZMyCPnjQCnOw==
- dependencies:
- style-to-object "1.0.8"
-
-style-to-object@1.0.8:
- version "1.0.8"
- resolved "https://registry.npmjs.org/style-to-object/-/style-to-object-1.0.8.tgz"
- integrity sha512-xT47I/Eo0rwJmaXC4oilDGDWLohVhR6o/xAQcPQN8q6QBuZVL8qMYL85kLmST5cPjAorwvqIA4qXTRQoYHaL6g==
- dependencies:
- inline-style-parser "0.2.4"
-
-styled-jsx@5.1.1:
- version "5.1.1"
- resolved "https://registry.npmjs.org/styled-jsx/-/styled-jsx-5.1.1.tgz"
- integrity sha512-pW7uC1l4mBZ8ugbiZrcIsiIvVx1UmTfw7UkC3Um2tmfUq9Bhk8IiyEIPl6F8agHgjzku6j0xQEZbfA5uSgSaCw==
- dependencies:
- client-only "0.0.1"
-
-stylis@^4.3.6:
- version "4.3.6"
- resolved "https://registry.npmjs.org/stylis/-/stylis-4.3.6.tgz"
- integrity sha512-yQ3rwFWRfwNUY7H5vpU0wfdkNSnvnJinhF9830Swlaxl03zsOjCfmX0ugac+3LtK0lYSgwL/KXc8oYL3mG4YFQ==
-
-sucrase@^3.35.0:
- version "3.35.0"
- resolved "https://registry.npmjs.org/sucrase/-/sucrase-3.35.0.tgz"
- integrity sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==
- dependencies:
- "@jridgewell/gen-mapping" "^0.3.2"
- commander "^4.0.0"
- glob "^10.3.10"
- lines-and-columns "^1.1.6"
- mz "^2.7.0"
- pirates "^4.0.1"
- ts-interface-checker "^0.1.9"
-
-supports-color@^7.1.0:
- 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"
-
-supports-color@^8.0.0:
- version "8.1.1"
- resolved "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz"
- integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==
- dependencies:
- has-flag "^4.0.0"
-
-supports-preserve-symlinks-flag@^1.0.0:
- 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==
-
-system-architecture@^0.1.0:
- version "0.1.0"
- resolved "https://registry.npmjs.org/system-architecture/-/system-architecture-0.1.0.tgz"
- integrity sha512-ulAk51I9UVUyJgxlv9M6lFot2WP3e7t8Kz9+IS6D4rVba1tR9kON+Ey69f+1R4Q8cd45Lod6a4IcJIxnzGc/zA==
-
-tabbable@^6.0.0:
- version "6.2.0"
- resolved "https://registry.npmjs.org/tabbable/-/tabbable-6.2.0.tgz"
- integrity sha512-Cat63mxsVJlzYvN51JmVXIgNoUokrIaT2zLclCXjRd8boZ0004U4KCs/sToJ75C6sdlByWxpYnb5Boif1VSFew==
-
-tailwindcss@^3.4.7:
- version "3.4.17"
- resolved "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.17.tgz"
- integrity sha512-w33E2aCvSDP0tW9RZuNXadXlkHXqFzSkQew/aIa2i/Sj8fThxwovwlXHSPXTbAHwEIhBFXAedUhP2tueAKP8Og==
- dependencies:
- "@alloc/quick-lru" "^5.2.0"
- arg "^5.0.2"
- chokidar "^3.6.0"
- didyoumean "^1.2.2"
- dlv "^1.1.3"
- fast-glob "^3.3.2"
- glob-parent "^6.0.2"
- is-glob "^4.0.3"
- jiti "^1.21.6"
- lilconfig "^3.1.3"
- micromatch "^4.0.8"
- normalize-path "^3.0.0"
- object-hash "^3.0.0"
- picocolors "^1.1.1"
- postcss "^8.4.47"
- postcss-import "^15.1.0"
- postcss-js "^4.0.1"
- postcss-load-config "^4.0.2"
- postcss-nested "^6.2.0"
- postcss-selector-parser "^6.1.2"
- resolve "^1.22.8"
- sucrase "^3.35.0"
-
-test-exclude@^6.0.0:
- version "6.0.0"
- resolved "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz"
- integrity sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==
- dependencies:
- "@istanbuljs/schema" "^0.1.2"
- glob "^7.1.4"
- minimatch "^3.0.4"
-
-thenify-all@^1.0.0:
- version "1.6.0"
- resolved "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz"
- integrity sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==
- dependencies:
- thenify ">= 3.1.0 < 4"
-
-"thenify@>= 3.1.0 < 4":
- version "3.3.1"
- resolved "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz"
- integrity sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==
- dependencies:
- any-promise "^1.0.0"
-
-tinyexec@^0.3.2:
- version "0.3.2"
- resolved "https://registry.npmjs.org/tinyexec/-/tinyexec-0.3.2.tgz"
- integrity sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA==
-
-title@^4.0.0:
- version "4.0.1"
- resolved "https://registry.npmjs.org/title/-/title-4.0.1.tgz"
- integrity sha512-xRnPkJx9nvE5MF6LkB5e8QJjE2FW8269wTu/LQdf7zZqBgPly0QJPf/CWAo7srj5so4yXfoLEdCFgurlpi47zg==
- dependencies:
- arg "^5.0.0"
- chalk "^5.0.0"
- clipboardy "^4.0.0"
-
-tmpl@1.0.5:
- version "1.0.5"
- resolved "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz"
- integrity sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==
-
-to-regex-range@^5.0.1:
- version "5.0.1"
- resolved "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz"
- integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==
- dependencies:
- is-number "^7.0.0"
-
-trim-lines@^3.0.0:
- version "3.0.1"
- resolved "https://registry.npmjs.org/trim-lines/-/trim-lines-3.0.1.tgz"
- integrity sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==
-
-trough@^2.0.0:
- version "2.2.0"
- resolved "https://registry.npmjs.org/trough/-/trough-2.2.0.tgz"
- integrity sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw==
-
-ts-dedent@^2.2.0:
- version "2.2.0"
- resolved "https://registry.npmjs.org/ts-dedent/-/ts-dedent-2.2.0.tgz"
- integrity sha512-q5W7tVM71e2xjHZTlgfTDoPF/SmqKG5hddq9SzR49CH2hayqRKJtQ4mtRlSxKaJlR/+9rEM+mnBHf7I2/BQcpQ==
-
-ts-interface-checker@^0.1.9:
- version "0.1.13"
- resolved "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz"
- integrity sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==
-
-tslib@^2.4.0, tslib@2:
- version "2.8.1"
- resolved "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz"
- integrity sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==
-
-twoslash-protocol@0.2.12:
- version "0.2.12"
- resolved "https://registry.npmjs.org/twoslash-protocol/-/twoslash-protocol-0.2.12.tgz"
- integrity sha512-5qZLXVYfZ9ABdjqbvPc4RWMr7PrpPaaDSeaYY55vl/w1j6H6kzsWK/urAEIXlzYlyrFmyz1UbwIt+AA0ck+wbg==
-
-twoslash@^0.2.12:
- version "0.2.12"
- resolved "https://registry.npmjs.org/twoslash/-/twoslash-0.2.12.tgz"
- integrity sha512-tEHPASMqi7kqwfJbkk7hc/4EhlrKCSLcur+TcvYki3vhIfaRMXnXjaYFgXpoZRbT6GdprD4tGuVBEmTpUgLBsw==
- dependencies:
- "@typescript/vfs" "^1.6.0"
- twoslash-protocol "0.2.12"
-
-type-detect@4.0.8:
- version "4.0.8"
- resolved "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz"
- integrity sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==
-
-type-fest@^0.21.3:
- version "0.21.3"
- resolved "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz"
- integrity sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==
-
-typescript@*, typescript@^5.5.4:
- version "5.8.2"
- resolved "https://registry.npmjs.org/typescript/-/typescript-5.8.2.tgz"
- integrity sha512-aJn6wq13/afZp/jT9QZmwEjDqqvSGp1VT5GVg+f/t6/oVyrgXM6BY1h9BRh/O5p3PlUPAe+WuiEZOmb/49RqoQ==
-
-ufo@^1.5.4:
- version "1.5.4"
- resolved "https://registry.npmjs.org/ufo/-/ufo-1.5.4.tgz"
- integrity sha512-UsUk3byDzKd04EyoZ7U4DOlxQaD14JUKQl6/P7wiX4FNvUfm3XL246n9W5AmqwW5RSFJ27NAuM0iLscAOYUiGQ==
-
-unified@^11.0.0, unified@^11.0.4, unified@^11.0.5:
- version "11.0.5"
- resolved "https://registry.npmjs.org/unified/-/unified-11.0.5.tgz"
- integrity sha512-xKvGhPWw3k84Qjh8bI3ZeJjqnyadK+GEFtazSfZv/rKeTkTjOJho6mFqh2SM96iIcZokxiOpg78GazTSg8+KHA==
- dependencies:
- "@types/unist" "^3.0.0"
- bail "^2.0.0"
- devlop "^1.0.0"
- extend "^3.0.0"
- is-plain-obj "^4.0.0"
- trough "^2.0.0"
- vfile "^6.0.0"
-
-unist-util-find-after@^5.0.0:
- version "5.0.0"
- resolved "https://registry.npmjs.org/unist-util-find-after/-/unist-util-find-after-5.0.0.tgz"
- integrity sha512-amQa0Ep2m6hE2g72AugUItjbuM8X8cGQnFoHk0pGfrFeT9GZhzN5SW8nRsiGKK7Aif4CrACPENkA6P/Lw6fHGQ==
- dependencies:
- "@types/unist" "^3.0.0"
- unist-util-is "^6.0.0"
-
-unist-util-is@^5.0.0:
- version "5.2.1"
- resolved "https://registry.npmjs.org/unist-util-is/-/unist-util-is-5.2.1.tgz"
- integrity sha512-u9njyyfEh43npf1M+yGKDGVPbY/JWEemg5nH05ncKPfi+kBbKBJoTdsogMu33uhytuLlv9y0O7GH7fEdwLdLQw==
- dependencies:
- "@types/unist" "^2.0.0"
-
-unist-util-is@^6.0.0:
- version "6.0.0"
- resolved "https://registry.npmjs.org/unist-util-is/-/unist-util-is-6.0.0.tgz"
- integrity sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw==
- dependencies:
- "@types/unist" "^3.0.0"
-
-unist-util-modify-children@^4.0.0:
- version "4.0.0"
- resolved "https://registry.npmjs.org/unist-util-modify-children/-/unist-util-modify-children-4.0.0.tgz"
- integrity sha512-+tdN5fGNddvsQdIzUF3Xx82CU9sMM+fA0dLgR9vOmT0oPT2jH+P1nd5lSqfCfXAw+93NhcXNY2qqvTUtE4cQkw==
- dependencies:
- "@types/unist" "^3.0.0"
- array-iterate "^2.0.0"
-
-unist-util-position-from-estree@^2.0.0:
- version "2.0.0"
- resolved "https://registry.npmjs.org/unist-util-position-from-estree/-/unist-util-position-from-estree-2.0.0.tgz"
- integrity sha512-KaFVRjoqLyF6YXCbVLNad/eS4+OfPQQn2yOd7zF/h5T/CSL2v8NpN6a5TPvtbXthAGw5nG+PuTtq+DdIZr+cRQ==
- dependencies:
- "@types/unist" "^3.0.0"
-
-unist-util-position@^5.0.0:
- version "5.0.0"
- resolved "https://registry.npmjs.org/unist-util-position/-/unist-util-position-5.0.0.tgz"
- integrity sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==
- dependencies:
- "@types/unist" "^3.0.0"
-
-unist-util-remove-position@^5.0.0:
- version "5.0.0"
- resolved "https://registry.npmjs.org/unist-util-remove-position/-/unist-util-remove-position-5.0.0.tgz"
- integrity sha512-Hp5Kh3wLxv0PHj9m2yZhhLt58KzPtEYKQQ4yxfYFEO7EvHwzyDYnduhHnY1mDxoqr7VUwVuHXk9RXKIiYS1N8Q==
- dependencies:
- "@types/unist" "^3.0.0"
- unist-util-visit "^5.0.0"
-
-unist-util-remove@^4.0.0:
- version "4.0.0"
- resolved "https://registry.npmjs.org/unist-util-remove/-/unist-util-remove-4.0.0.tgz"
- integrity sha512-b4gokeGId57UVRX/eVKej5gXqGlc9+trkORhFJpu9raqZkZhU0zm8Doi05+HaiBsMEIJowL+2WtQ5ItjsngPXg==
- dependencies:
- "@types/unist" "^3.0.0"
- unist-util-is "^6.0.0"
- unist-util-visit-parents "^6.0.0"
-
-unist-util-stringify-position@^4.0.0:
- version "4.0.0"
- resolved "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz"
- integrity sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==
- dependencies:
- "@types/unist" "^3.0.0"
-
-unist-util-visit-children@^3.0.0:
- version "3.0.0"
- resolved "https://registry.npmjs.org/unist-util-visit-children/-/unist-util-visit-children-3.0.0.tgz"
- integrity sha512-RgmdTfSBOg04sdPcpTSD1jzoNBjt9a80/ZCzp5cI9n1qPzLZWF9YdvWGN2zmTumP1HWhXKdUWexjy/Wy/lJ7tA==
- dependencies:
- "@types/unist" "^3.0.0"
-
-unist-util-visit-parents@^4.0.0:
- version "4.1.1"
- resolved "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-4.1.1.tgz"
- integrity sha512-1xAFJXAKpnnJl8G7K5KgU7FY55y3GcLIXqkzUj5QF/QVP7biUm0K0O2oqVkYsdjzJKifYeWn9+o6piAK2hGSHw==
- dependencies:
- "@types/unist" "^2.0.0"
- unist-util-is "^5.0.0"
-
-unist-util-visit-parents@^6.0.0:
- version "6.0.1"
- resolved "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-6.0.1.tgz"
- integrity sha512-L/PqWzfTP9lzzEa6CKs0k2nARxTdZduw3zyh8d2NVBnsyvHjSX4TWse388YrrQKbvI8w20fGjGlhgT96WwKykw==
- dependencies:
- "@types/unist" "^3.0.0"
- unist-util-is "^6.0.0"
-
-unist-util-visit@^3.1.0:
- version "3.1.0"
- resolved "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-3.1.0.tgz"
- integrity sha512-Szoh+R/Ll68QWAyQyZZpQzZQm2UPbxibDvaY8Xc9SUtYgPsDzx5AWSk++UUt2hJuow8mvwR+rG+LQLw+KsuAKA==
- dependencies:
- "@types/unist" "^2.0.0"
- unist-util-is "^5.0.0"
- unist-util-visit-parents "^4.0.0"
-
-unist-util-visit@^5.0.0:
- version "5.0.0"
- resolved "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-5.0.0.tgz"
- integrity sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==
- dependencies:
- "@types/unist" "^3.0.0"
- unist-util-is "^6.0.0"
- unist-util-visit-parents "^6.0.0"
-
-update-browserslist-db@^1.1.1:
- version "1.1.3"
- resolved "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.3.tgz"
- integrity sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw==
- dependencies:
- escalade "^3.2.0"
- picocolors "^1.1.1"
-
-util-deprecate@^1.0.2:
- version "1.0.2"
- resolved "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz"
- integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==
-
-uuid@^11.1.0:
- version "11.1.0"
- resolved "https://registry.npmjs.org/uuid/-/uuid-11.1.0.tgz"
- integrity sha512-0/A9rDy9P7cJ+8w1c9WD9V//9Wj15Ce2MPz8Ri6032usz+NfePxx5AcN3bN+r6ZL6jEo066/yNYB3tn4pQEx+A==
-
-v8-to-istanbul@^9.0.1:
- version "9.3.0"
- resolved "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.3.0.tgz"
- integrity sha512-kiGUalWN+rgBJ/1OHZsBtU4rXZOfj/7rKQxULKlIzwzQSvMJUUNgPwJEEh7gU6xEVxC0ahoOBvN2YI8GH6FNgA==
- dependencies:
- "@jridgewell/trace-mapping" "^0.3.12"
- "@types/istanbul-lib-coverage" "^2.0.1"
- convert-source-map "^2.0.0"
-
-vfile-location@^5.0.0:
- version "5.0.3"
- resolved "https://registry.npmjs.org/vfile-location/-/vfile-location-5.0.3.tgz"
- integrity sha512-5yXvWDEgqeiYiBe1lbxYF7UMAIm/IcopxMHrMQDq3nvKcjPKIhZklUKL+AE7J7uApI4kwe2snsK+eI6UTj9EHg==
- dependencies:
- "@types/unist" "^3.0.0"
- vfile "^6.0.0"
-
-vfile-message@^4.0.0:
- version "4.0.2"
- resolved "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz"
- integrity sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==
- dependencies:
- "@types/unist" "^3.0.0"
- unist-util-stringify-position "^4.0.0"
-
-vfile@^6.0.0:
- version "6.0.3"
- resolved "https://registry.npmjs.org/vfile/-/vfile-6.0.3.tgz"
- integrity sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==
- dependencies:
- "@types/unist" "^3.0.0"
- vfile-message "^4.0.0"
-
-vscode-jsonrpc@8.2.0:
- version "8.2.0"
- resolved "https://registry.npmjs.org/vscode-jsonrpc/-/vscode-jsonrpc-8.2.0.tgz"
- integrity sha512-C+r0eKJUIfiDIfwJhria30+TYWPtuHJXHtI7J0YlOmKAo7ogxP20T0zxB7HZQIFhIyvoBPwWskjxrvAtfjyZfA==
-
-vscode-languageserver-protocol@3.17.5:
- version "3.17.5"
- resolved "https://registry.npmjs.org/vscode-languageserver-protocol/-/vscode-languageserver-protocol-3.17.5.tgz"
- integrity sha512-mb1bvRJN8SVznADSGWM9u/b07H7Ecg0I3OgXDuLdn307rl/J3A9YD6/eYOssqhecL27hK1IPZAsaqh00i/Jljg==
- dependencies:
- vscode-jsonrpc "8.2.0"
- vscode-languageserver-types "3.17.5"
-
-vscode-languageserver-textdocument@~1.0.11:
- version "1.0.12"
- resolved "https://registry.npmjs.org/vscode-languageserver-textdocument/-/vscode-languageserver-textdocument-1.0.12.tgz"
- integrity sha512-cxWNPesCnQCcMPeenjKKsOCKQZ/L6Tv19DTRIGuLWe32lyzWhihGVJ/rcckZXJxfdKCFvRLS3fpBIsV/ZGX4zA==
-
-vscode-languageserver-types@3.17.5:
- version "3.17.5"
- resolved "https://registry.npmjs.org/vscode-languageserver-types/-/vscode-languageserver-types-3.17.5.tgz"
- integrity sha512-Ld1VelNuX9pdF39h2Hgaeb5hEZM2Z3jUrrMgWQAu82jMtZp7p3vJT3BzToKtZI7NgQssZje5o0zryOrhQvzQAg==
-
-vscode-languageserver@~9.0.1:
- version "9.0.1"
- resolved "https://registry.npmjs.org/vscode-languageserver/-/vscode-languageserver-9.0.1.tgz"
- integrity sha512-woByF3PDpkHFUreUa7Hos7+pUWdeWMXRd26+ZX2A8cFx6v/JPTtd4/uN0/jB6XQHYaOlHbio03NTHCqrgG5n7g==
- dependencies:
- vscode-languageserver-protocol "3.17.5"
-
-vscode-uri@~3.0.8:
- version "3.0.8"
- resolved "https://registry.npmjs.org/vscode-uri/-/vscode-uri-3.0.8.tgz"
- integrity sha512-AyFQ0EVmsOZOlAnxoFOGOq1SQDWAB7C6aqMGS23svWAllfOaxbuFvcT8D1i8z3Gyn8fraVeZNNmN6e9bxxXkKw==
-
-walker@^1.0.8:
- version "1.0.8"
- resolved "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz"
- integrity sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==
- dependencies:
- makeerror "1.0.12"
-
-web-namespaces@^2.0.0:
- version "2.0.1"
- resolved "https://registry.npmjs.org/web-namespaces/-/web-namespaces-2.0.1.tgz"
- integrity sha512-bKr1DkiNa2krS7qxNtdrtHAmzuYGFQLiQ13TsorsdT6ULTkPLKuu5+GsFpDlg6JFjUTwX2DyhMPG2be8uPrqsQ==
-
-which@^2.0.1:
- 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"
-
-wicked-good-xpath@1.3.0:
- version "1.3.0"
- resolved "https://registry.npmjs.org/wicked-good-xpath/-/wicked-good-xpath-1.3.0.tgz"
- integrity sha512-Gd9+TUn5nXdwj/hFsPVx5cuHHiF5Bwuc30jZ4+ronF1qHK5O7HD0sgmXWSEgwKquT3ClLoKPVbO6qGwVwLzvAw==
-
-"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0":
- 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"
-
-wrap-ansi@^7.0.0:
- 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"
-
-wrap-ansi@^8.1.0:
- 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"
-
-wrap-ansi@^9.0.0:
- version "9.0.0"
- dependencies:
- ansi-styles "^6.2.1"
- string-width "^7.0.0"
- strip-ansi "^7.1.0"
-
-wrappy@1:
- version "1.0.2"
- resolved "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz"
- integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==
-
-write-file-atomic@^4.0.2:
- version "4.0.2"
- resolved "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.2.tgz"
- integrity sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==
- dependencies:
- imurmurhash "^0.1.4"
- signal-exit "^3.0.7"
-
-ws@^8.18.0:
- version "8.18.1"
- resolved "https://registry.npmjs.org/ws/-/ws-8.18.1.tgz"
- integrity sha512-RKW2aJZMXeMxVpnZ6bck+RswznaxmzdULiBr6KY7XkTnW8uvt0iT9H5DkHUChXrc+uurzwa0rVI16n/Xzjdz1w==
-
-xmldom-sre@0.1.31:
- version "0.1.31"
- resolved "https://registry.npmjs.org/xmldom-sre/-/xmldom-sre-0.1.31.tgz"
- integrity sha512-f9s+fUkX04BxQf+7mMWAp5zk61pciie+fFLC9hX9UVvCeJQfNHRHXpeo5MPcR0EUf57PYLdt+ZO4f3Ipk2oZUw==
-
-y18n@^5.0.5:
- version "5.0.8"
- resolved "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz"
- integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==
-
-yallist@^3.0.2:
- version "3.1.1"
- resolved "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz"
- integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==
-
-yaml@^2.3.2, yaml@^2.3.4, yaml@~2.5.0:
- version "2.5.1"
-
-yargs-parser@^21.1.1:
- version "21.1.1"
- resolved "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz"
- integrity sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==
-
-yargs@^17.3.1:
- version "17.7.2"
- resolved "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz"
- integrity sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==
- dependencies:
- cliui "^8.0.1"
- escalade "^3.1.1"
- get-caller-file "^2.0.5"
- require-directory "^2.1.1"
- string-width "^4.2.3"
- y18n "^5.0.5"
- yargs-parser "^21.1.1"
-
-yocto-queue@^0.1.0:
- version "0.1.0"
- resolved "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz"
- integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==
-
-yocto-queue@^1.1.1:
- version "1.2.1"
- resolved "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.2.1.tgz"
- integrity sha512-AyeEbWOu/TAXdxlV9wmGcR0+yh2j3vYPGOECcIj2S7MkrLyC7ne+oye2BKTItt0ii2PHk4cDy+95+LshzbXnGg==
-
-zod-validation-error@^3.0.0:
- version "3.4.0"
- resolved "https://registry.npmjs.org/zod-validation-error/-/zod-validation-error-3.4.0.tgz"
- integrity sha512-ZOPR9SVY6Pb2qqO5XHt+MkkTRxGXb4EVtnjc9JpXUOtUB1T9Ru7mZOT361AN3MsetVe7R0a1KZshJDZdgp9miQ==
-
-zod@^3.18.0, zod@^3.22.3:
- version "3.24.2"
- resolved "https://registry.npmjs.org/zod/-/zod-3.24.2.tgz"
- integrity sha512-lY7CDW43ECgW9u1TcT3IoXHflywfVqDYze4waEz812jR/bZ8FHDsl7pFQoSZTz5N+2NqRXs8GBwnAwo3ZNxqhQ==
-
-zwitch@^2.0.0, zwitch@^2.0.4:
- version "2.0.4"
- resolved "https://registry.npmjs.org/zwitch/-/zwitch-2.0.4.tgz"
- integrity sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==
diff --git a/package.json b/package.json
index ddc315c3da306..f8c96c3c9ed33 100644
--- a/package.json
+++ b/package.json
@@ -36,7 +36,6 @@
"platform-test": "cd platform && npm test",
"types-test": "cd types && npm test",
"helpers-test": "cd helpers && npm test",
- "build:docs": "cd docs-v2 && pnpm install --ignore-engines && pnpm build",
"validate:packages": "node scripts/generate-package-report.js",
"validate:packages:verbose": "node scripts/generate-package-report.js --verbose",
"validate:packages:report": "node scripts/generate-package-report.js --report-only --output=package-validation-report.json",
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index c17f52d89b96c..249526fd2cc34 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -16488,73 +16488,6 @@ importers:
components/zyte_api: {}
- docs-v2:
- dependencies:
- '@docsearch/react':
- specifier: ^3.8.1
- version: 3.9.0(@algolia/client-search@5.17.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(search-insights@2.17.3)
- '@pipedream/sdk':
- specifier: ^1.5.3
- version: 1.5.3
- '@vercel/analytics':
- specifier: ^1.5.0
- version: 1.5.0(next@14.2.19(@babel/core@8.0.0-alpha.13)(@opentelemetry/api@1.9.0)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1)(vue@2.7.16)
- chalk:
- specifier: ^5.3.0
- version: 5.3.0
- jest:
- specifier: ^29.7.0
- version: 29.7.0(@types/node@18.11.10)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@18.11.10)(typescript@5.6.3))
- lint-staged:
- specifier: ^15.2.7
- version: 15.2.10
- next:
- specifier: ^14.2.5
- version: 14.2.19(@babel/core@8.0.0-alpha.13)(@opentelemetry/api@1.9.0)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
- nextra:
- specifier: ^3
- version: 3.3.1(@types/react@18.3.12)(acorn@8.14.0)(next@14.2.19(@babel/core@8.0.0-alpha.13)(@opentelemetry/api@1.9.0)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)
- nextra-theme-docs:
- specifier: ^3
- version: 3.3.1(next@14.2.19(@babel/core@8.0.0-alpha.13)(@opentelemetry/api@1.9.0)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(nextra@3.3.1(@types/react@18.3.12)(acorn@8.14.0)(next@14.2.19(@babel/core@8.0.0-alpha.13)(@opentelemetry/api@1.9.0)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
- prismjs:
- specifier: ^1.30.0
- version: 1.30.0
- react:
- specifier: ^18.3.1
- version: 18.3.1
- react-dom:
- specifier: ^18.3.1
- version: 18.3.1(react@18.3.1)
- react-markdown:
- specifier: ^9.0.1
- version: 9.0.1(@types/react@18.3.12)(react@18.3.1)
- sharp:
- specifier: ^0.33.4
- version: 0.33.5
- devDependencies:
- '@types/node':
- specifier: 18.11.10
- version: 18.11.10
- autoprefixer:
- specifier: ^10.4.19
- version: 10.4.20(postcss@8.4.49)
- next-sitemap:
- specifier: ^4.2.3
- version: 4.2.3(next@14.2.19(@babel/core@8.0.0-alpha.13)(@opentelemetry/api@1.9.0)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))
- postcss:
- specifier: ^8.4.40
- version: 8.4.49
- prettier:
- specifier: ^3.3.3
- version: 3.3.3
- tailwindcss:
- specifier: ^3.4.7
- version: 3.4.16(ts-node@10.9.2(@types/node@18.11.10)(typescript@5.6.3))
- typescript:
- specifier: ^5.5.4
- version: 5.6.3
-
helpers:
dependencies:
lodash-es:
@@ -16870,26 +16803,6 @@ packages:
resolution: {integrity: sha512-C+jj5XBTCNs7AFwufOkPLhuqn9bdgSDcqLB6b/Ppi9Fujwt613vWmA1hxeG76RX49vzHZIDJLq6N/v0o2SY1sA==}
engines: {node: '>=18'}
- '@algolia/autocomplete-core@1.17.9':
- resolution: {integrity: sha512-O7BxrpLDPJWWHv/DLA9DRFWs+iY1uOJZkqUwjS5HSZAGcl0hIVCQ97LTLewiZmZ402JYUrun+8NqFP+hCknlbQ==}
-
- '@algolia/autocomplete-plugin-algolia-insights@1.17.9':
- resolution: {integrity: sha512-u1fEHkCbWF92DBeB/KHeMacsjsoI0wFhjZtlCq2ddZbAehshbZST6Hs0Avkc0s+4UyBGbMDnSuXHLuvRWK5iDQ==}
- peerDependencies:
- search-insights: '>= 1 < 3'
-
- '@algolia/autocomplete-preset-algolia@1.17.9':
- resolution: {integrity: sha512-Na1OuceSJeg8j7ZWn5ssMu/Ax3amtOwk76u4h5J4eK2Nx2KB5qt0Z4cOapCsxot9VcEN11ADV5aUSlQF4RhGjQ==}
- peerDependencies:
- '@algolia/client-search': '>= 4.9.1 < 6'
- algoliasearch: '>= 4.9.1 < 6'
-
- '@algolia/autocomplete-shared@1.17.9':
- resolution: {integrity: sha512-iDf05JDQ7I0b7JEA/9IektxN/80a2MZ1ToohfmNS3rfeuQnIKI3IJlIafD0xu4StbtQTghx9T3Maa97ytkXenQ==}
- peerDependencies:
- '@algolia/client-search': '>= 4.9.1 < 6'
- algoliasearch: '>= 4.9.1 < 6'
-
'@algolia/client-abtesting@5.17.1':
resolution: {integrity: sha512-Os/xkQbDp5A5RdGYq1yS3fF69GoBJH5FIfrkVh+fXxCSe714i1Xdl9XoXhS4xG76DGKm6EFMlUqP024qjps8cg==}
engines: {node: '>= 14.0.0'}
@@ -16942,20 +16855,10 @@ packages:
resolution: {integrity: sha512-PSnENJtl4/wBWXlGyOODbLYm6lSiFqrtww7UpQRCJdsHXlJKF8XAP6AME8NxvbE0Qo/RJUxK0mvyEh9sQcx6bg==}
engines: {node: '>= 14.0.0'}
- '@alloc/quick-lru@5.2.0':
- resolution: {integrity: sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==}
- engines: {node: '>=10'}
-
'@ampproject/remapping@2.3.0':
resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==}
engines: {node: '>=6.0.0'}
- '@antfu/install-pkg@0.4.1':
- resolution: {integrity: sha512-T7yB5QNG29afhWVkVq7XeIMBa5U/vs9mX69YqayXypPRmYzUmzwnYltplHmPtZ4HPCn+sQKeXW8I47wCbuBOjw==}
-
- '@antfu/utils@0.7.10':
- resolution: {integrity: sha512-+562v9k4aI80m1+VuMHehNJWLOFjBnXn3tdOitzD0il5b7smkSBal4+a3oKiQTbrwMmN/TBUMDvbdoWDehgOww==}
-
'@apidevtools/swagger-methods@3.0.2':
resolution: {integrity: sha512-QAkD5kK2b1WfjDS/UQn/qQkbwF31uqRjPTrsCs5ZG9BQGAkjwvqGFjjPqAuzac/IYzpPtRzjCP1WrTuAIjMrXg==}
@@ -18159,9 +18062,6 @@ packages:
'@bcoe/v8-coverage@0.2.3':
resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==}
- '@braintree/sanitize-url@7.1.0':
- resolution: {integrity: sha512-o+UlMLt49RvtCASlOMW0AkHnabN9wR9rwCCherxO0yG4Npy34GkvrAqdXQvrhNs+jh+gkK8gB8Lf05qL/O7KWg==}
-
'@bufbuild/protobuf@1.10.1':
resolution: {integrity: sha512-wJ8ReQbHxsAfXhrf9ixl0aYbZorRuOWpBNzm8pL8ftmSxQx/wnJD5Eg861NwJU/czy2VXFIebCeZnZrI9rktIQ==}
@@ -18186,21 +18086,6 @@ packages:
'@bugsnag/safe-json-stringify@6.0.0':
resolution: {integrity: sha512-htzFO1Zc57S8kgdRK9mLcPVTW1BY2ijfH7Dk2CeZmspTWKdKqSo1iwmqrq2WtRjFlo8aRZYgLX0wFrDXF/9DLA==}
- '@chevrotain/cst-dts-gen@11.0.3':
- resolution: {integrity: sha512-BvIKpRLeS/8UbfxXxgC33xOumsacaeCKAjAeLyOn7Pcp95HiRbrpl14S+9vaZLolnbssPIUuiUd8IvgkRyt6NQ==}
-
- '@chevrotain/gast@11.0.3':
- resolution: {integrity: sha512-+qNfcoNk70PyS/uxmj3li5NiECO+2YKZZQMbmjTqRI3Qchu8Hig/Q9vgkHpI3alNjr7M+a2St5pw5w5F6NL5/Q==}
-
- '@chevrotain/regexp-to-ast@11.0.3':
- resolution: {integrity: sha512-1fMHaBZxLFvWI067AVbGJav1eRY7N8DDvYCTwGBiE/ytKBgP8azTdgyrKyWZ9Mfh09eHWb5PgTSO8wi7U824RA==}
-
- '@chevrotain/types@11.0.3':
- resolution: {integrity: sha512-gsiM3G8b58kZC2HaWR50gu6Y1440cHiJ+i3JUvcp/35JchYejb2+5MVeJK0iKThYpAa/P2PYFV4hoi44HD+aHQ==}
-
- '@chevrotain/utils@11.0.3':
- resolution: {integrity: sha512-YslZMgtJUyuMbZ+aKvfF3x1f5liK4mWNxghFRv7jqRR9C3R3fAOGTTKvxXDa2Y1s9zSbcpuO0cAxDYsc9SrXoQ==}
-
'@colors/colors@1.6.0':
resolution: {integrity: sha512-Ir+AOibqzrIsL6ajt3Rz3LskB7OiMVHqltZmspbW/TJuTVuyOMirVqAkjfY6JISiLHgyNqicAC8AyHHGzNd/dA==}
engines: {node: '>=0.1.90'}
@@ -18216,9 +18101,6 @@ packages:
peerDependencies:
'@bufbuild/protobuf': ^2.2.0
- '@corex/deepmerge@4.0.43':
- resolution: {integrity: sha512-N8uEMrMPL0cu/bdboEWpQYb/0i2K5Qn8eCsxzOmxSggJbbQte7ljMRoXm917AbntqTGOzdTu+vP3KOOzoC70HQ==}
-
'@cspotcode/source-map-support@0.8.1':
resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==}
engines: {node: '>=12'}
@@ -18287,26 +18169,6 @@ packages:
resolution: {integrity: sha512-Y6+WUMsTFWE5jb20IFP4YGa5IrGY/+a/FbOSjDF/wz9gepU2hwCYSXRHP/vPwBvwcY3SVMASt4yXxbXNXigmZQ==}
engines: {node: '>=18'}
- '@docsearch/css@3.9.0':
- resolution: {integrity: sha512-cQbnVbq0rrBwNAKegIac/t6a8nWoUAn8frnkLFW6YARaRmAQr5/Eoe6Ln2fqkUCZ40KpdrKbpSAmgrkviOxuWA==}
-
- '@docsearch/react@3.9.0':
- resolution: {integrity: sha512-mb5FOZYZIkRQ6s/NWnM98k879vu5pscWqTLubLFBO87igYYT4VzVazh4h5o/zCvTIZgEt3PvsCOMOswOUo9yHQ==}
- peerDependencies:
- '@types/react': '>= 16.8.0 < 20.0.0'
- react: '>= 16.8.0 < 20.0.0'
- react-dom: '>= 16.8.0 < 20.0.0'
- search-insights: '>= 1 < 3'
- peerDependenciesMeta:
- '@types/react':
- optional: true
- react:
- optional: true
- react-dom:
- optional: true
- search-insights:
- optional: true
-
'@dual-bundle/import-meta-resolve@4.1.0':
resolution: {integrity: sha512-+nxncfwHM5SgAtrVzgpzJOI1ol0PkumhVo469KCf9lUi21IGcY90G98VuHm9VRrUypmAzawAHO9bs6hqeADaVg==}
@@ -19085,24 +18947,9 @@ packages:
'@floating-ui/dom@1.6.12':
resolution: {integrity: sha512-NP83c0HjokcGVEMeoStg317VD9W7eDlGK7457dMBANbKA6GJZdc7rjujdgqzTaz93jkGgc5P/jeWbaCHnMNc+w==}
- '@floating-ui/react-dom@2.1.2':
- resolution: {integrity: sha512-06okr5cgPzMNBy+Ycse2A6udMi4bqwW/zgBF/rwjcNqWkyr82Mcg8b0vjX8OJpZFy/FKjJmw6wV7t44kK6kW7A==}
- peerDependencies:
- react: '>=16.8.0'
- react-dom: '>=16.8.0'
-
- '@floating-ui/react@0.26.28':
- resolution: {integrity: sha512-yORQuuAtVpiRjpMhdc0wJj06b9JFjrYF4qp96j++v2NBpbi6SEGF7donUJ3TMieerQ6qVkAv1tgr7L4r5roTqw==}
- peerDependencies:
- react: '>=16.8.0'
- react-dom: '>=16.8.0'
-
'@floating-ui/utils@0.2.8':
resolution: {integrity: sha512-kym7SodPp8/wloecOpcmSnWJsK7M0E5Wg8UcFA+uO4B9s5d0ywXOEro/8HM9x0rW+TljRzul/14UYz3TleT3ig==}
- '@formatjs/intl-localematcher@0.5.8':
- resolution: {integrity: sha512-I+WDNWWJFZie+jkfkiK5Mp4hEDyRSEvmyfYadflOno/mmKJKcB17fEpEH0oJu/OWhhCJ8kJBDz2YMd/6cDl7Mg==}
-
'@google-ai/generativelanguage@0.2.1':
resolution: {integrity: sha512-oqEQScnGO6UoEqdKMIGiRfLWNpc83RtLWcO/g/VH3+2PnqIwEqJThDAMCHmRZ9B3zUiiL2cd4FaHx3ZU93CXEA==}
engines: {node: '>=12.0.0'}
@@ -19259,13 +19106,6 @@ packages:
'@hapi/topo@5.1.0':
resolution: {integrity: sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg==}
- '@headlessui/react@2.2.0':
- resolution: {integrity: sha512-RzCEg+LXsuI7mHiSomsu/gBJSjpupm6A1qIZ5sWjd7JhARNlMiSA4kKfJpCKwU9tE+zMRterhhrP74PvfJrpXQ==}
- engines: {node: '>=10'}
- peerDependencies:
- react: ^18 || ^19 || ^19.0.0-rc
- react-dom: ^18 || ^19 || ^19.0.0-rc
-
'@httptoolkit/websocket-stream@6.0.1':
resolution: {integrity: sha512-A0NOZI+Glp3Xgcz6Na7i7o09+/+xm2m0UCU8gdtM2nIv6/cjLmhMZMqehSpTlgbx9omtLmV8LVqOskPEyWnmZQ==}
@@ -19293,12 +19133,6 @@ packages:
'@iarna/toml@2.2.5':
resolution: {integrity: sha512-trnsAYxU3xnS1gPHPyU961coFyLkh4gAD/0zQ5mymY4yOZ+CYvsPqUbOFSw0aDM4y0tV7tiFxL/1XfXPNC6IPg==}
- '@iconify/types@2.0.0':
- resolution: {integrity: sha512-+wluvCrRhXrhyOmRDJ3q8mux9JkKy5SJ/v8ol2tu4FVjyYvtEzkc/3pK15ET6RKg4b4w4BmTk1+gsCUhf21Ykg==}
-
- '@iconify/utils@2.1.33':
- resolution: {integrity: sha512-jP9h6v/g0BIZx0p7XGJJVtkVnydtbgTgt9mVNcGDYwaa7UhdHdI9dvoq+gKj9sijMSJKxUPEG2JyjsgXjxL7Kw==}
-
'@img/sharp-darwin-arm64@0.33.5':
resolution: {integrity: sha512-UT4p+iz/2H4twwAoLCqfA9UH5pI6DggwKEGuaPy7nCVQ8ZsiY5PIcrRvD1DzuY3qYL07NtIQcWnBSY/heikIFQ==}
engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
@@ -19696,21 +19530,9 @@ packages:
engines: {node: '>=18'}
hasBin: true
- '@mdx-js/mdx@3.1.0':
- resolution: {integrity: sha512-/QxEhPAvGwbQmy1Px8F899L5Uc2KZ6JtXwlCgJmjSTBedwOZkByYcBG4GceIGPXRDsmfxhHazuS+hlOShRLeDw==}
-
- '@mdx-js/react@3.1.0':
- resolution: {integrity: sha512-QjHtSaoameoalGnKDT3FoIl4+9RwyTmo9ZJGBdLOks/YOiWHoRDI3PUwEzOE7kEmGcV3AFcp9K6dYu9rEuKLAQ==}
- peerDependencies:
- '@types/react': '>=16'
- react: '>=16'
-
'@memberstack/admin@1.3.1':
resolution: {integrity: sha512-ulRCIpt6k/3RIag+YyU2eW+b0Ik1pF+gXx2b+hYI3Mk6/NxwzZWTVC+YJw3BO3tRUq9TOFy7IaPMfm8wQTJYIA==}
- '@mermaid-js/parser@0.3.0':
- resolution: {integrity: sha512-HsvL6zgE5sUPGgkIDlmAWR1HTNHz2Iy11BAWPTa4Jjabkpguy4Ze2gzfLrg6pdRuBvFwgUYyxiaNqZwrEEXepA==}
-
'@microsoft/api-extractor-model@7.29.9':
resolution: {integrity: sha512-/DaMfUjiswmrnLjHCorVzWGbW5rmeTGDo+H0QcvcarJ14SjNVmFWiRKzscN4B2y9AyllqeXMPgwbtSFAdAkpMQ==}
@@ -19752,94 +19574,6 @@ packages:
'@mongodb-js/saslprep@1.1.9':
resolution: {integrity: sha512-tVkljjeEaAhCqTzajSdgbQ6gE6f3oneVwa3iXR6csiEwXXOFsiC6Uh9iAjAhXPtqa/XMDHWjjeNH/77m/Yq2dw==}
- '@napi-rs/simple-git-android-arm-eabi@0.1.19':
- resolution: {integrity: sha512-XryEH/hadZ4Duk/HS/HC/cA1j0RHmqUGey3MsCf65ZS0VrWMqChXM/xlTPWuY5jfCc/rPubHaqI7DZlbexnX/g==}
- engines: {node: '>= 10'}
- cpu: [arm]
- os: [android]
-
- '@napi-rs/simple-git-android-arm64@0.1.19':
- resolution: {integrity: sha512-ZQ0cPvY6nV9p7zrR9ZPo7hQBkDAcY/CHj3BjYNhykeUCiSNCrhvwX+WEeg5on8M1j4d5jcI/cwVG2FslfiByUg==}
- engines: {node: '>= 10'}
- cpu: [arm64]
- os: [android]
-
- '@napi-rs/simple-git-darwin-arm64@0.1.19':
- resolution: {integrity: sha512-viZB5TYgjA1vH+QluhxZo0WKro3xBA+1xSzYx8mcxUMO5gnAoUMwXn0ZO/6Zy6pai+aGae+cj6XihGnrBRu3Pg==}
- engines: {node: '>= 10'}
- cpu: [arm64]
- os: [darwin]
-
- '@napi-rs/simple-git-darwin-x64@0.1.19':
- resolution: {integrity: sha512-6dNkzSNUV5X9rsVYQbpZLyJu4Gtkl2vNJ3abBXHX/Etk0ILG5ZasO3ncznIANZQpqcbn/QPHr49J2QYAXGoKJA==}
- engines: {node: '>= 10'}
- cpu: [x64]
- os: [darwin]
-
- '@napi-rs/simple-git-freebsd-x64@0.1.19':
- resolution: {integrity: sha512-sB9krVIchzd20FjI2ZZ8FDsTSsXLBdnwJ6CpeVyrhXHnoszfcqxt49ocZHujAS9lMpXq7i2Nv1EXJmCy4KdhwA==}
- engines: {node: '>= 10'}
- cpu: [x64]
- os: [freebsd]
-
- '@napi-rs/simple-git-linux-arm-gnueabihf@0.1.19':
- resolution: {integrity: sha512-6HPn09lr9N1n5/XKfP8Np53g4fEXVxOFqNkS6rTH3Rm1lZHdazTRH62RggXLTguZwjcE+MvOLvoTIoR5kAS8+g==}
- engines: {node: '>= 10'}
- cpu: [arm]
- os: [linux]
-
- '@napi-rs/simple-git-linux-arm64-gnu@0.1.19':
- resolution: {integrity: sha512-G0gISckt4cVDp3oh5Z6PV3GHJrJO6Z8bIS+9xA7vTtKdqB1i5y0n3cSFLlzQciLzhr+CajFD27doW4lEyErQ/Q==}
- engines: {node: '>= 10'}
- cpu: [arm64]
- os: [linux]
-
- '@napi-rs/simple-git-linux-arm64-musl@0.1.19':
- resolution: {integrity: sha512-OwTRF+H4IZYxmDFRi1IrLMfqbdIpvHeYbJl2X94NVsLVOY+3NUHvEzL3fYaVx5urBaMnIK0DD3wZLbcueWvxbA==}
- engines: {node: '>= 10'}
- cpu: [arm64]
- os: [linux]
-
- '@napi-rs/simple-git-linux-powerpc64le-gnu@0.1.19':
- resolution: {integrity: sha512-p7zuNNVyzpRvkCt2RIGv9FX/WPcPbZ6/FRUgUTZkA2WU33mrbvNqSi4AOqCCl6mBvEd+EOw5NU4lS9ORRJvAEg==}
- engines: {node: '>= 10'}
- cpu: [powerpc64le]
- os: [linux]
-
- '@napi-rs/simple-git-linux-s390x-gnu@0.1.19':
- resolution: {integrity: sha512-6N2vwJUPLiak8GLrS0a3is0gSb0UwI2CHOOqtvQxPmv+JVI8kn3vKiUscsktdDb0wGEPeZ8PvZs0y8UWix7K4g==}
- engines: {node: '>= 10'}
- cpu: [s390x]
- os: [linux]
-
- '@napi-rs/simple-git-linux-x64-gnu@0.1.19':
- resolution: {integrity: sha512-61YfeO1J13WK7MalLgP3QlV6of2rWnVw1aqxWkAgy/lGxoOFSJ4Wid6ANVCEZk4tJpPX/XNeneqkUz5xpeb2Cw==}
- engines: {node: '>= 10'}
- cpu: [x64]
- os: [linux]
-
- '@napi-rs/simple-git-linux-x64-musl@0.1.19':
- resolution: {integrity: sha512-cCTWNpMJnN3PrUBItWcs3dQKCydsIasbrS3laMzq8k7OzF93Zrp2LWDTPlLCO9brbBVpBzy2Qk5Xg9uAfe/Ukw==}
- engines: {node: '>= 10'}
- cpu: [x64]
- os: [linux]
-
- '@napi-rs/simple-git-win32-arm64-msvc@0.1.19':
- resolution: {integrity: sha512-sWavb1BjeLKKBA+PbTsRSSzVNfb7V/dOpaJvkgR5d2kWFn/AHmCZHSSj/3nyZdYf0BdDC+DIvqk3daAEZ6QMVw==}
- engines: {node: '>= 10'}
- cpu: [arm64]
- os: [win32]
-
- '@napi-rs/simple-git-win32-x64-msvc@0.1.19':
- resolution: {integrity: sha512-FmNuPoK4+qwaSCkp8lm3sJlrxk374enW+zCE5ZksXlZzj/9BDJAULJb5QUJ7o9Y8A/G+d8LkdQLPBE2Jaxe5XA==}
- engines: {node: '>= 10'}
- cpu: [x64]
- os: [win32]
-
- '@napi-rs/simple-git@0.1.19':
- resolution: {integrity: sha512-jMxvwzkKzd3cXo2EB9GM2ic0eYo2rP/BS6gJt6HnWbsDO1O8GSD4k7o2Cpr2YERtMpGF/MGcDfsfj2EbQPtrXw==}
- engines: {node: '>= 10'}
-
'@napi-rs/wasm-runtime@0.2.11':
resolution: {integrity: sha512-9DPkXtvHydrcOsopiYpUgPHpmj0HWZKMUnL2dZqpvC42lsratuBG06V5ipyno0fUek5VlFsNQ+AcFATSrJXgMA==}
@@ -20021,12 +19755,6 @@ packages:
engines: {node: '>=18.14.0'}
hasBin: true
- '@next/env@13.5.11':
- resolution: {integrity: sha512-fbb2C7HChgM7CemdCY+y3N1n8pcTKdqtQLbC7/EQtPdLvlMUT9JX/dBYl8MMZAtYG4uVMyPFHXckb68q/NRwqg==}
-
- '@next/env@14.2.19':
- resolution: {integrity: sha512-8yWSNi1p+AOsd1QsxZMMkXtdrz8wvYoRxoUa9olmHBspHVLnxpptyKoI574ZF90yq1gXv/CqpchVLBoK8RcN7w==}
-
'@next/env@15.0.3':
resolution: {integrity: sha512-t9Xy32pjNOvVn2AS+Utt6VmyrshbpfUMhIjFO60gI58deSo/KgLOp31XZ4O+kY/Is8WAGYwA5gR7kOb1eORDBA==}
@@ -20036,102 +19764,48 @@ packages:
'@next/eslint-plugin-next@15.0.3':
resolution: {integrity: sha512-3Ln/nHq2V+v8uIaxCR6YfYo7ceRgZNXfTd3yW1ukTaFbO+/I8jNakrjYWODvG9BuR2v5kgVtH/C8r0i11quOgw==}
- '@next/swc-darwin-arm64@14.2.19':
- resolution: {integrity: sha512-mL0Nn2PNKV0L++F1l69wY3ySCg9ryw9NtvPhAXm952wpxLVWCCDkVb6XTtOeicF8EdstbjZyLRBflEHtv/Wk2w==}
- engines: {node: '>= 10'}
- cpu: [arm64]
- os: [darwin]
-
'@next/swc-darwin-arm64@15.0.3':
resolution: {integrity: sha512-s3Q/NOorCsLYdCKvQlWU+a+GeAd3C8Rb3L1YnetsgwXzhc3UTWrtQpB/3eCjFOdGUj5QmXfRak12uocd1ZiiQw==}
engines: {node: '>= 10'}
cpu: [arm64]
os: [darwin]
- '@next/swc-darwin-x64@14.2.19':
- resolution: {integrity: sha512-2HWOTmk+qNa5R+NW8+752jye5JXlQVkGTf6IV+cT2+q3YeRYQPoqYcIr9KSlB8pvgqRqtIGHcioZFvWSeXjxVA==}
- engines: {node: '>= 10'}
- cpu: [x64]
- os: [darwin]
-
'@next/swc-darwin-x64@15.0.3':
resolution: {integrity: sha512-Zxl/TwyXVZPCFSf0u2BNj5sE0F2uR6iSKxWpq4Wlk/Sv9Ob6YCKByQTkV2y6BCic+fkabp9190hyrDdPA/dNrw==}
engines: {node: '>= 10'}
cpu: [x64]
os: [darwin]
- '@next/swc-linux-arm64-gnu@14.2.19':
- resolution: {integrity: sha512-tlbHT+Chnjqh9gSrNNrDAnqFHkoA++wI829bTawoLwAPemji57/qhDp88YteTuUN3rd4U3FcV0f9qiZbyMStFQ==}
- engines: {node: '>= 10'}
- cpu: [arm64]
- os: [linux]
-
'@next/swc-linux-arm64-gnu@15.0.3':
resolution: {integrity: sha512-T5+gg2EwpsY3OoaLxUIofmMb7ohAUlcNZW0fPQ6YAutaWJaxt1Z1h+8zdl4FRIOr5ABAAhXtBcpkZNwUcKI2fw==}
engines: {node: '>= 10'}
cpu: [arm64]
os: [linux]
- '@next/swc-linux-arm64-musl@14.2.19':
- resolution: {integrity: sha512-v0FD7DDS1yapnJw8JuvvePlqxyNY+OKrfoVDvibc+9ADVVzbINkHTCXIDshMXy/rBKheUpkycgS1lOaovgZQ5Q==}
- engines: {node: '>= 10'}
- cpu: [arm64]
- os: [linux]
-
'@next/swc-linux-arm64-musl@15.0.3':
resolution: {integrity: sha512-WkAk6R60mwDjH4lG/JBpb2xHl2/0Vj0ZRu1TIzWuOYfQ9tt9NFsIinI1Epma77JVgy81F32X/AeD+B2cBu/YQA==}
engines: {node: '>= 10'}
cpu: [arm64]
os: [linux]
- '@next/swc-linux-x64-gnu@14.2.19':
- resolution: {integrity: sha512-S+DneEj0Knv8+cilSn8ZP+xU/926eeeueZ4DjQcFy3hZT+2R29wTYBnDeUk+FCVchjzD9s0dvWff6eHDYrJoSA==}
- engines: {node: '>= 10'}
- cpu: [x64]
- os: [linux]
-
'@next/swc-linux-x64-gnu@15.0.3':
resolution: {integrity: sha512-gWL/Cta1aPVqIGgDb6nxkqy06DkwJ9gAnKORdHWX1QBbSZZB+biFYPFti8aKIQL7otCE1pjyPaXpFzGeG2OS2w==}
engines: {node: '>= 10'}
cpu: [x64]
os: [linux]
- '@next/swc-linux-x64-musl@14.2.19':
- resolution: {integrity: sha512-RwczHg2q4n4Ls9PJtBDlBNkfl6G7Fd4uvSRIXPM6Inw52q8R+oWduvuqdzlvcygnv78wt1yrQI14ZRiU0BjgVw==}
- engines: {node: '>= 10'}
- cpu: [x64]
- os: [linux]
-
'@next/swc-linux-x64-musl@15.0.3':
resolution: {integrity: sha512-QQEMwFd8r7C0GxQS62Zcdy6GKx999I/rTO2ubdXEe+MlZk9ZiinsrjwoiBL5/57tfyjikgh6GOU2WRQVUej3UA==}
engines: {node: '>= 10'}
cpu: [x64]
os: [linux]
- '@next/swc-win32-arm64-msvc@14.2.19':
- resolution: {integrity: sha512-42YlHVSq3q1nTxLkikG2dRUsKM6vq8v0jrxbR1M6vlgprWlIoXme31g3SpJvVp52v1SfE9WbyAegQxfSIENDSQ==}
- engines: {node: '>= 10'}
- cpu: [arm64]
- os: [win32]
-
'@next/swc-win32-arm64-msvc@15.0.3':
resolution: {integrity: sha512-9TEp47AAd/ms9fPNgtgnT7F3M1Hf7koIYYWCMQ9neOwjbVWJsHZxrFbI3iEDJ8rf1TDGpmHbKxXf2IFpAvheIQ==}
engines: {node: '>= 10'}
cpu: [arm64]
os: [win32]
- '@next/swc-win32-ia32-msvc@14.2.19':
- resolution: {integrity: sha512-xMEXItVFcT7fV6ndcfnT4ZHm3R0C8398tiC3KInsK+511Or9Jq5G7zagz8aonNRKZkw15zdM1txRslSMRHe4mA==}
- engines: {node: '>= 10'}
- cpu: [ia32]
- os: [win32]
-
- '@next/swc-win32-x64-msvc@14.2.19':
- resolution: {integrity: sha512-bOkmujDRcqbHO2Mxun7SogL1fwzGT/PYqFZ0+aTBjmkhGhx7V/Dun4MNjnxJEGByGNg2EcwdWzsYcRUnHs8Ivg==}
- engines: {node: '>= 10'}
- cpu: [x64]
- os: [win32]
-
'@next/swc-win32-x64-msvc@15.0.3':
resolution: {integrity: sha512-VNAz+HN4OGgvZs6MOoVfnn41kBzT+M+tB+OK4cww6DNyWS6wKaDpaAm/qLeOUbnMh0oVx1+mg0uoYARF69dJyA==}
engines: {node: '>= 10'}
@@ -20578,10 +20252,6 @@ packages:
resolution: {integrity: sha512-sh0dZWdQlh7IprVs1Ka04+jMmpwTKf5SlyvaAJFmSbcvJ7So1fj/YLuU3BMXU91ehA1R6DGb66Yr+QzBsANcSA==}
engines: {node: '>=18.0.0'}
- '@pipedream/sdk@1.5.3':
- resolution: {integrity: sha512-shXEDK91RzaTAbFQCVLHCV+PuKjQaes9V1C8r1abV6hRCyAQcYnr5j6alJuKiozBnIh5BGA/OYh0JEYBWau7yA==}
- engines: {node: '>=18.0.0'}
-
'@pipedream/sdk@1.5.5':
resolution: {integrity: sha512-oyWFb2xsm+pRXrm+xiboSRQxA/PcP2tjqc2vQZ4y7TWFUOCBzzxencYFze8Lo+7l/QlWhXy4jbK0UzPMyFr2UQ==}
engines: {node: '>=18.0.0'}
@@ -21588,37 +21258,6 @@ packages:
'@rails/actioncable@8.0.0':
resolution: {integrity: sha512-9IXyJeaBggOzlD3pF4/yWELdyUWZm/KTyKBRqxNf9laLBXPqxJt3t6fO+X4s0WajMR8cIhzkxvq1gxsXVbn3LA==}
- '@react-aria/focus@3.19.0':
- resolution: {integrity: sha512-hPF9EXoUQeQl1Y21/rbV2H4FdUR2v+4/I0/vB+8U3bT1CJ+1AFj1hc/rqx2DqEwDlEwOHN+E4+mRahQmlybq0A==}
- peerDependencies:
- react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1
-
- '@react-aria/interactions@3.22.5':
- resolution: {integrity: sha512-kMwiAD9E0TQp+XNnOs13yVJghiy8ET8L0cbkeuTgNI96sOAp/63EJ1FSrDf17iD8sdjt41LafwX/dKXW9nCcLQ==}
- peerDependencies:
- react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1
-
- '@react-aria/ssr@3.9.7':
- resolution: {integrity: sha512-GQygZaGlmYjmYM+tiNBA5C6acmiDWF52Nqd40bBp0Znk4M4hP+LTmI0lpI1BuKMw45T8RIhrAsICIfKwZvi2Gg==}
- engines: {node: '>= 12'}
- peerDependencies:
- react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1
-
- '@react-aria/utils@3.26.0':
- resolution: {integrity: sha512-LkZouGSjjQ0rEqo4XJosS4L3YC/zzQkfRM3KoqK6fUOmUJ9t0jQ09WjiF+uOoG9u+p30AVg3TrZRUWmoTS+koQ==}
- peerDependencies:
- react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1
-
- '@react-stately/utils@3.10.5':
- resolution: {integrity: sha512-iMQSGcpaecghDIh3mZEpZfoFH3ExBwTtuBEcvZ2XnGzCgQjeYXcMdIUwAfVQLXFTdHUHGF6Gu6/dFrYsCzySBQ==}
- peerDependencies:
- react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1
-
- '@react-types/shared@3.26.0':
- resolution: {integrity: sha512-6FuPqvhmjjlpEDLTiYx29IJCbCNWPlsyO+ZUmCUXzhUv2ttShOXfw8CmeHWHftT/b2KweAWuzqSlfeXPR76jpw==}
- peerDependencies:
- react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1
-
'@readme/better-ajv-errors@1.6.0':
resolution: {integrity: sha512-9gO9rld84Jgu13kcbKRU+WHseNhaVt76wYMeRDGsUGYxwJtI3RmEJ9LY9dZCYQGI8eUZLuxb5qDja0nqklpFjQ==}
engines: {node: '>=14'}
@@ -21891,24 +21530,6 @@ packages:
'@sevinf/maybe@0.5.0':
resolution: {integrity: sha512-ARhyoYDnY1LES3vYI0fiG6e9esWfTNcXcO6+MPJJXcnyMV3bim4lnFt45VXouV7y82F4x3YH8nOQ6VztuvUiWg==}
- '@shikijs/core@1.24.0':
- resolution: {integrity: sha512-6pvdH0KoahMzr6689yh0QJ3rCgF4j1XsXRHNEeEN6M4xJTfQ6QPWrmHzIddotg+xPJUPEPzYzYCKzpYyhTI6Gw==}
-
- '@shikijs/engine-javascript@1.24.0':
- resolution: {integrity: sha512-ZA6sCeSsF3Mnlxxr+4wGEJ9Tto4RHmfIS7ox8KIAbH0MTVUkw3roHPHZN+LlJMOHJJOVupe6tvuAzRpN8qK1vA==}
-
- '@shikijs/engine-oniguruma@1.24.0':
- resolution: {integrity: sha512-Eua0qNOL73Y82lGA4GF5P+G2+VXX9XnuUxkiUuwcxQPH4wom+tE39kZpBFXfUuwNYxHSkrSxpB1p4kyRW0moSg==}
-
- '@shikijs/twoslash@1.24.0':
- resolution: {integrity: sha512-ELyIoD54dFDlb4eGt5sy54WhFeJ39N1hR9W7ADwHWn3XH7cOPjj320EPCh2t76fIoLb0auD46tVLQVVMn93qsA==}
-
- '@shikijs/types@1.24.0':
- resolution: {integrity: sha512-aptbEuq1Pk88DMlCe+FzXNnBZ17LCiLIGWAeCWhoFDzia5Q5Krx3DgnULLiouSdd6+LUM39XwXGppqYE0Ghtug==}
-
- '@shikijs/vscode-textmate@9.3.0':
- resolution: {integrity: sha512-jn7/7ky30idSkd/O5yDBfAnVt+JJpepofP/POZ1iMOxK59cOfqIgg/Dj0eFsjOTMw+4ycJN0uhZH/Eb0bs/EUA==}
-
'@shortcut/client@2.2.0':
resolution: {integrity: sha512-NzcZBkDkdE2lxPSYQEEHyG1kLjaj8wVFBoDFq1gShaKZTzU/5mHBEaB+4EBbA3lfZHR+ppkl3a1JmpU1BFGFdA==}
@@ -22480,9 +22101,6 @@ packages:
'@swc/helpers@0.5.13':
resolution: {integrity: sha512-UoKGxQ3r5kYI9dALKJapMmuK+1zWM/H17Z1+iwnNmzcJRnfFuevZs375TA5rW31pu4BS4NoSy1fRsexDXfWn5w==}
- '@swc/helpers@0.5.5':
- resolution: {integrity: sha512-KGYxvIOXcceOAbEk4bi/dVLEK9z8sZ0uBB3Il5b1rhfClSpcX0yfRO0KmTkqR2cnQDymwLB+25ZyMzICg/cm/A==}
-
'@szmarczak/http-timer@4.0.6':
resolution: {integrity: sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w==}
engines: {node: '>=10'}
@@ -22499,29 +22117,12 @@ packages:
peerDependencies:
react: ^18 || ^19
- '@tanstack/react-virtual@3.10.9':
- resolution: {integrity: sha512-OXO2uBjFqA4Ibr2O3y0YMnkrRWGVNqcvHQXmGvMu6IK8chZl3PrDxFXdGZ2iZkSrKh3/qUYoFqYe+Rx23RoU0g==}
- peerDependencies:
- react: ^16.8.0 || ^17.0.0 || ^18.0.0
- react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0
-
- '@tanstack/virtual-core@3.10.9':
- resolution: {integrity: sha512-kBknKOKzmeR7lN+vSadaKWXaLS0SZZG+oqpQ/k80Q6g9REn6zRHS/ZYdrIzHnpHgy/eWs00SujveUN/GJT2qTw==}
-
'@techteamer/ocsp@1.0.0':
resolution: {integrity: sha512-lNAOoFHaZN+4huo30ukeqVrUmfC+avoEBYQ11QAnAw1PFhnI5oBCg8O/TNiCoEWix7gNGBIEjrQwtPREqKMPog==}
'@tediousjs/connection-string@0.5.0':
resolution: {integrity: sha512-7qSgZbincDDDFyRweCIEvZULFAw5iz/DeunhvuxpL31nfntX3P4Yd4HkHBRg9H8CdqY1e5WFN1PZIz/REL9MVQ==}
- '@theguild/remark-mermaid@0.1.3':
- resolution: {integrity: sha512-2FjVlaaKXK7Zj7UJAgOVTyaahn/3/EAfqYhyXg0BfDBVUl+lXcoIWRaxzqfnDr2rv8ax6GsC5mNh6hAaT86PDw==}
- peerDependencies:
- react: ^18.2.0
-
- '@theguild/remark-npm2yarn@0.3.3':
- resolution: {integrity: sha512-ma6DvR03gdbvwqfKx1omqhg9May/VYGdMHvTzB4VuxkyS7KzfZ/lzrj43hmcsggpMje0x7SADA/pcMph0ejRnA==}
-
'@tokenizer/token@0.3.0':
resolution: {integrity: sha512-OvjF+z51L3ov0OyAU0duzsYuvO01PH7x4t6DJx+guahgTnBHkhJdG7soQeTSFLWN3efnHyibZ4Z8l2EuWwJN3A==}
@@ -22558,9 +22159,6 @@ packages:
'@tybys/wasm-util@0.9.0':
resolution: {integrity: sha512-6+7nlbMVX/PVDCwaIQ8nTOPveOcFLSt8GcXdx8hD0bt39uWxYT88uXzqTd4fTvqta7oeUJqudepapKNt2DYJFw==}
- '@types/acorn@4.0.6':
- resolution: {integrity: sha512-veQTnWP+1D/xbxVrPC3zHnCZRjSrKfhbMUlEA43iMZLu7EsnTtkJklIuwrCPbOi8YkvDQAiW05VQQFvvz9oieQ==}
-
'@types/argparse@1.0.38':
resolution: {integrity: sha512-ebDJ9b0e702Yr7pWgB0jzm+CX4Srzz8RcXtLJDJB+BSccqMa36uyH/zUsSYao5+BD1ytv3k3rPYCq4mAE1hsXA==}
@@ -22592,99 +22190,6 @@ packages:
'@types/connect@3.4.38':
resolution: {integrity: sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==}
- '@types/d3-array@3.2.1':
- resolution: {integrity: sha512-Y2Jn2idRrLzUfAKV2LyRImR+y4oa2AntrgID95SHJxuMUrkNXmanDSed71sRNZysveJVt1hLLemQZIady0FpEg==}
-
- '@types/d3-axis@3.0.6':
- resolution: {integrity: sha512-pYeijfZuBd87T0hGn0FO1vQ/cgLk6E1ALJjfkC0oJ8cbwkZl3TpgS8bVBLZN+2jjGgg38epgxb2zmoGtSfvgMw==}
-
- '@types/d3-brush@3.0.6':
- resolution: {integrity: sha512-nH60IZNNxEcrh6L1ZSMNA28rj27ut/2ZmI3r96Zd+1jrZD++zD3LsMIjWlvg4AYrHn/Pqz4CF3veCxGjtbqt7A==}
-
- '@types/d3-chord@3.0.6':
- resolution: {integrity: sha512-LFYWWd8nwfwEmTZG9PfQxd17HbNPksHBiJHaKuY1XeqscXacsS2tyoo6OdRsjf+NQYeB6XrNL3a25E3gH69lcg==}
-
- '@types/d3-color@3.1.3':
- resolution: {integrity: sha512-iO90scth9WAbmgv7ogoq57O9YpKmFBbmoEoCHDB2xMBY0+/KVrqAaCDyCE16dUspeOvIxFFRI+0sEtqDqy2b4A==}
-
- '@types/d3-contour@3.0.6':
- resolution: {integrity: sha512-BjzLgXGnCWjUSYGfH1cpdo41/hgdWETu4YxpezoztawmqsvCeep+8QGfiY6YbDvfgHz/DkjeIkkZVJavB4a3rg==}
-
- '@types/d3-delaunay@6.0.4':
- resolution: {integrity: sha512-ZMaSKu4THYCU6sV64Lhg6qjf1orxBthaC161plr5KuPHo3CNm8DTHiLw/5Eq2b6TsNP0W0iJrUOFscY6Q450Hw==}
-
- '@types/d3-dispatch@3.0.6':
- resolution: {integrity: sha512-4fvZhzMeeuBJYZXRXrRIQnvUYfyXwYmLsdiN7XXmVNQKKw1cM8a5WdID0g1hVFZDqT9ZqZEY5pD44p24VS7iZQ==}
-
- '@types/d3-drag@3.0.7':
- resolution: {integrity: sha512-HE3jVKlzU9AaMazNufooRJ5ZpWmLIoc90A37WU2JMmeq28w1FQqCZswHZ3xR+SuxYftzHq6WU6KJHvqxKzTxxQ==}
-
- '@types/d3-dsv@3.0.7':
- resolution: {integrity: sha512-n6QBF9/+XASqcKK6waudgL0pf/S5XHPPI8APyMLLUHd8NqouBGLsU8MgtO7NINGtPBtk9Kko/W4ea0oAspwh9g==}
-
- '@types/d3-ease@3.0.2':
- resolution: {integrity: sha512-NcV1JjO5oDzoK26oMzbILE6HW7uVXOHLQvHshBUW4UMdZGfiY6v5BeQwh9a9tCzv+CeefZQHJt5SRgK154RtiA==}
-
- '@types/d3-fetch@3.0.7':
- resolution: {integrity: sha512-fTAfNmxSb9SOWNB9IoG5c8Hg6R+AzUHDRlsXsDZsNp6sxAEOP0tkP3gKkNSO/qmHPoBFTxNrjDprVHDQDvo5aA==}
-
- '@types/d3-force@3.0.10':
- resolution: {integrity: sha512-ZYeSaCF3p73RdOKcjj+swRlZfnYpK1EbaDiYICEEp5Q6sUiqFaFQ9qgoshp5CzIyyb/yD09kD9o2zEltCexlgw==}
-
- '@types/d3-format@3.0.4':
- resolution: {integrity: sha512-fALi2aI6shfg7vM5KiR1wNJnZ7r6UuggVqtDA+xiEdPZQwy/trcQaHnwShLuLdta2rTymCNpxYTiMZX/e09F4g==}
-
- '@types/d3-geo@3.1.0':
- resolution: {integrity: sha512-856sckF0oP/diXtS4jNsiQw/UuK5fQG8l/a9VVLeSouf1/PPbBE1i1W852zVwKwYCBkFJJB7nCFTbk6UMEXBOQ==}
-
- '@types/d3-hierarchy@3.1.7':
- resolution: {integrity: sha512-tJFtNoYBtRtkNysX1Xq4sxtjK8YgoWUNpIiUee0/jHGRwqvzYxkq0hGVbbOGSz+JgFxxRu4K8nb3YpG3CMARtg==}
-
- '@types/d3-interpolate@3.0.4':
- resolution: {integrity: sha512-mgLPETlrpVV1YRJIglr4Ez47g7Yxjl1lj7YKsiMCb27VJH9W8NVM6Bb9d8kkpG/uAQS5AmbA48q2IAolKKo1MA==}
-
- '@types/d3-path@3.1.0':
- resolution: {integrity: sha512-P2dlU/q51fkOc/Gfl3Ul9kicV7l+ra934qBFXCFhrZMOL6du1TM0pm1ThYvENukyOn5h9v+yMJ9Fn5JK4QozrQ==}
-
- '@types/d3-polygon@3.0.2':
- resolution: {integrity: sha512-ZuWOtMaHCkN9xoeEMr1ubW2nGWsp4nIql+OPQRstu4ypeZ+zk3YKqQT0CXVe/PYqrKpZAi+J9mTs05TKwjXSRA==}
-
- '@types/d3-quadtree@3.0.6':
- resolution: {integrity: sha512-oUzyO1/Zm6rsxKRHA1vH0NEDG58HrT5icx/azi9MF1TWdtttWl0UIUsjEQBBh+SIkrpd21ZjEv7ptxWys1ncsg==}
-
- '@types/d3-random@3.0.3':
- resolution: {integrity: sha512-Imagg1vJ3y76Y2ea0871wpabqp613+8/r0mCLEBfdtqC7xMSfj9idOnmBYyMoULfHePJyxMAw3nWhJxzc+LFwQ==}
-
- '@types/d3-scale-chromatic@3.1.0':
- resolution: {integrity: sha512-iWMJgwkK7yTRmWqRB5plb1kadXyQ5Sj8V/zYlFGMUBbIPKQScw+Dku9cAAMgJG+z5GYDoMjWGLVOvjghDEFnKQ==}
-
- '@types/d3-scale@4.0.8':
- resolution: {integrity: sha512-gkK1VVTr5iNiYJ7vWDI+yUFFlszhNMtVeneJ6lUTKPjprsvLLI9/tgEGiXJOnlINJA8FyA88gfnQsHbybVZrYQ==}
-
- '@types/d3-selection@3.0.11':
- resolution: {integrity: sha512-bhAXu23DJWsrI45xafYpkQ4NtcKMwWnAC/vKrd2l+nxMFuvOT3XMYTIj2opv8vq8AO5Yh7Qac/nSeP/3zjTK0w==}
-
- '@types/d3-shape@3.1.6':
- resolution: {integrity: sha512-5KKk5aKGu2I+O6SONMYSNflgiP0WfZIQvVUMan50wHsLG1G94JlxEVnCpQARfTtzytuY0p/9PXXZb3I7giofIA==}
-
- '@types/d3-time-format@4.0.3':
- resolution: {integrity: sha512-5xg9rC+wWL8kdDj153qZcsJ0FWiFt0J5RB6LYUNZjwSnesfblqrI/bJ1wBdJ8OQfncgbJG5+2F+qfqnqyzYxyg==}
-
- '@types/d3-time@3.0.4':
- resolution: {integrity: sha512-yuzZug1nkAAaBlBBikKZTgzCeA+k1uy4ZFwWANOfKw5z5LRhV0gNA7gNkKm7HoK+HRN0wX3EkxGk0fpbWhmB7g==}
-
- '@types/d3-timer@3.0.2':
- resolution: {integrity: sha512-Ps3T8E8dZDam6fUyNiMkekK3XUsaUEik+idO9/YjPtfj2qruF8tFBXS7XhtE4iIXBLxhmLjP3SXpLhVf21I9Lw==}
-
- '@types/d3-transition@3.0.9':
- resolution: {integrity: sha512-uZS5shfxzO3rGlu0cC3bjmMFKsXv+SmZZcgp0KD22ts4uGXp5EVYGzu/0YdwZeKmddhcAccYtREJKkPfXkZuCg==}
-
- '@types/d3-zoom@3.0.8':
- resolution: {integrity: sha512-iqMC4/YlFCSlO8+2Ii1GGGliCAY4XdeG748w5vQUbevlbDu0zSjH/+jojorQVBK/se0j6DUFNPBGSqD3YWYnDw==}
-
- '@types/d3@7.4.3':
- resolution: {integrity: sha512-lZXZ9ckh5R8uiFVt8ogUNf+pIrK4EsWrx2Np75WvF/eTpJ0FMHNhjXk8CKEx/+gpHbNQyJWehbFaTvqmHWB3ww==}
-
'@types/debug@4.1.12':
resolution: {integrity: sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==}
@@ -22712,9 +22217,6 @@ packages:
'@types/feedparser@2.2.8':
resolution: {integrity: sha512-hIxDfr1VSgxZazxZZEGzbgDEQHtxWtMjLh7xAzuld/IA8xmneak9I16R0mA7Tnb10/McjE177H9daAyYBwTQOw==}
- '@types/geojson@7946.0.14':
- resolution: {integrity: sha512-WCfD5Ht3ZesJUsONdhvm84dmzWOiOzOAqOncN0++w0lBw1o8OuDNJF2McvvCef/yBqb/HYRahp1BYtODFQ8bRg==}
-
'@types/glob@8.1.0':
resolution: {integrity: sha512-IO+MJPVhoqz+28h1qLAcBEH2+xHMK6MTyHJc7MTnnYb6wsoLR29POVGJ7LycmVXIqyy/4/2ShP5sUwTXuOwb/w==}
@@ -22769,9 +22271,6 @@ packages:
'@types/jssha@2.0.0':
resolution: {integrity: sha512-oBnY3csYnXfqZXDRBJwP1nDDJCW/+VMJ88UHT4DCy0deSXpJIQvMCwYlnmdW4M+u7PiSfQc44LmiFcUbJ8hLEw==}
- '@types/katex@0.16.7':
- resolution: {integrity: sha512-HMwFiRujE5PjrgwHQ25+bsLJgowjGjm5Z8FVSf0N6PwgJrwxH0QxzHYDcKsTfV3wva0vzrpqMTJS2jXPr5BMEQ==}
-
'@types/keyv@3.1.4':
resolution: {integrity: sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg==}
@@ -22802,9 +22301,6 @@ packages:
'@types/mdurl@2.0.0':
resolution: {integrity: sha512-RGdgjQUZba5p6QEFAVx2OGb8rQDL/cPRG7GiedRzMcJ1tYnUANBncjbSB1NRGwbvjcPeikRABz2nshyPk1bhWg==}
- '@types/mdx@2.0.13':
- resolution: {integrity: sha512-+OWZQfAYyio6YkJb3HLxDrvnx6SWWDbC0zVPfBRzUk0/nqoDyf6dNxQi3eArPe8rJ473nobTMQ/8Zk+LxJ+Yuw==}
-
'@types/mime@1.3.5':
resolution: {integrity: sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==}
@@ -22814,9 +22310,6 @@ packages:
'@types/ms@0.7.34':
resolution: {integrity: sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g==}
- '@types/nlcst@2.0.3':
- resolution: {integrity: sha512-vSYNSDe6Ix3q+6Z7ri9lyWqgGhJTmzRjZRqyq15N0Z/1/UnVsno9G/N40NBijoYx2seFDIl0+B2mgAb9mezUCA==}
-
'@types/node-fetch@2.6.12':
resolution: {integrity: sha512-8nneRWKCg3rMtF69nLQJnOYUcbafYeFSjqkw3jCRLsqkWFlHaoQrr5mXmofFGOx3DKn7UfmBMyov8ySvLRVldA==}
@@ -22826,9 +22319,6 @@ packages:
'@types/node@17.0.45':
resolution: {integrity: sha512-w+tIMs3rq2afQdsPJlODhoUEKzFP1ayaoyl1CcnwtIlsVe7K7bA1NGm4s3PraqTLlXnbIN84zuBlxBWo1u9BLw==}
- '@types/node@18.11.10':
- resolution: {integrity: sha512-juG3RWMBOqcOuXC643OAdSA525V44cVgGV6dUDuiFtss+8Fk5x1hI93Rsld43VeJVIeqlP9I7Fn9/qaVqoEAuQ==}
-
'@types/node@18.19.115':
resolution: {integrity: sha512-kNrFiTgG4a9JAn1LMQeLOv3MvXIPokzXziohMrMsvpYgLpdEt/mMiVYc4sGKtDfyxM5gIDF4VgrPRyCw4fHOYg==}
@@ -22935,9 +22425,6 @@ packages:
'@types/triple-beam@1.3.5':
resolution: {integrity: sha512-6WaYesThRMCl19iryMYP7/x2OVgCtbIVflDGFpWnb9irXI3UjYE4AzmYuiUKY1AJstGijoY+MgUszMgRxIYTYw==}
- '@types/trusted-types@2.0.7':
- resolution: {integrity: sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==}
-
'@types/unist@2.0.11':
resolution: {integrity: sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==}
@@ -23059,43 +22546,12 @@ packages:
resolution: {integrity: sha512-pWrTcoFNWuwHlA9CvlfSsGWs14JxfN1TH25zM5L7o0pRLhsoZkDnTsXfQRJBEWJoV5DL0jf+Z+sxiud+K0mq1g==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
- '@typescript/vfs@1.6.0':
- resolution: {integrity: sha512-hvJUjNVeBMp77qPINuUvYXj4FyWeeMMKZkxEATEU3hqBAQ7qdTBCUFT7Sp0Zu0faeEtFf+ldXxMEDr/bk73ISg==}
- peerDependencies:
- typescript: '*'
-
'@ungap/structured-clone@1.2.0':
resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==}
'@ungap/url-search-params@0.2.2':
resolution: {integrity: sha512-qQsguKXZVKdCixOHX9jqnX/K/1HekPDpGKyEcXHT+zR6EjGA7S4boSuelL4uuPv6YfhN0n8c4UxW+v/Z3gM2iw==}
- '@vercel/analytics@1.5.0':
- resolution: {integrity: sha512-MYsBzfPki4gthY5HnYN7jgInhAZ7Ac1cYDoRWFomwGHWEX7odTEzbtg9kf/QSo7XEsEAqlQugA6gJ2WS2DEa3g==}
- peerDependencies:
- '@remix-run/react': ^2
- '@sveltejs/kit': ^1 || ^2
- next: '>= 13'
- react: ^18 || ^19 || ^19.0.0-rc
- svelte: '>= 4'
- vue: ^3
- vue-router: ^4
- peerDependenciesMeta:
- '@remix-run/react':
- optional: true
- '@sveltejs/kit':
- optional: true
- next:
- optional: true
- react:
- optional: true
- svelte:
- optional: true
- vue:
- optional: true
- vue-router:
- optional: true
-
'@vercel/nft@0.29.4':
resolution: {integrity: sha512-6lLqMNX3TuycBPABycx7A9F1bHQR7kiQln6abjFbPrf5C/05qHM9M5E4PeTE59c7z8g6vHnx1Ioihb2AQl7BTA==}
engines: {node: '>=18'}
@@ -23423,9 +22879,6 @@ packages:
arg@4.1.3:
resolution: {integrity: sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==}
- arg@5.0.2:
- resolution: {integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==}
-
argparse@1.0.10:
resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==}
@@ -23462,9 +22915,6 @@ packages:
array-indexofobject@0.0.1:
resolution: {integrity: sha512-tpdPBIBm4TMNxSp8O3pZgC7mF4+wn9SmJlhE+7bi5so6x39PvzUqChQMbv93R5ilYGZ1HV+Neki4IH/i+87AoQ==}
- array-iterate@2.0.1:
- resolution: {integrity: sha512-I1jXZMjAgCMmxT4qxXfPXa6SthSoE8h6gkSI9BGGNv8mP8G/v0blc+qFnZu6K42vTOiuME596QaLO0TP3Lk0xg==}
-
array-timsort@1.0.3:
resolution: {integrity: sha512-/+3GRL7dDAGEfM6TseQk/U+mi18TU2Ms9I3UlLdUMhz2hbvGNTKdj9xniwXfUqgYhHxRx0+8UnKkvlNwVU+cWQ==}
@@ -23554,10 +23004,6 @@ packages:
resolution: {integrity: sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==}
engines: {node: '>=8'}
- astring@1.9.0:
- resolution: {integrity: sha512-LElXdjswlqjWrPpJFg1Fx4wpkOCxj1TDHlSV4PlaRxHGWko024xICaa97ZkMfs6DRKlCguiAI+rbXv5GWwXIkg==}
- hasBin: true
-
async-retry@1.3.3:
resolution: {integrity: sha512-wfr/jstw9xNi/0teMHrRW7dsz3Lt5ARhYNZ2ewpadnhaIp5mbALhOAP+EAdsC7t4Z6wqsDVv9+W6gm1Dk9mEyw==}
@@ -23580,13 +23026,6 @@ packages:
atomically@2.0.3:
resolution: {integrity: sha512-kU6FmrwZ3Lx7/7y3hPS5QnbJfaohcIul5fGqf7ok+4KklIEk9tJ0C2IQPdacSbVUWv6zVHXEBWoWd6NrVMT7Cw==}
- autoprefixer@10.4.20:
- resolution: {integrity: sha512-XY25y5xSv/wEoqzDyXXME4AFfkZI0P23z6Fs3YgymDnKJkCGOnkL0iTxCa85UTqaSgfcqyf3UA6+c7wUvx/16g==}
- engines: {node: ^10 || ^12 || >=14}
- hasBin: true
- peerDependencies:
- postcss: ^8.1.0
-
available-typed-arrays@1.0.7:
resolution: {integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==}
engines: {node: '>= 0.4'}
@@ -23782,11 +23221,6 @@ packages:
peerDependencies:
ajv: 4.11.8 - 8
- better-react-mathjax@2.0.3:
- resolution: {integrity: sha512-wfifT8GFOKb1TWm2+E50I6DJpLZ5kLbch283Lu043EJtwSv0XvZDjr4YfR4d2MjAhqP6SH4VjjrKgbX8R00oCQ==}
- peerDependencies:
- react: '>=16.8'
-
big-integer@1.6.52:
resolution: {integrity: sha512-QxD8cf2eVqJOOz63z6JIN9BzvVs/dlySa5HGSBH5xtR8dPteIRQnBxxKqkNTiT6jbDTF6jAfrd4oMcND9RGbQg==}
engines: {node: '>=0.6'}
@@ -24034,10 +23468,6 @@ packages:
resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==}
engines: {node: '>=6'}
- camelcase-css@2.0.1:
- resolution: {integrity: sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==}
- engines: {node: '>= 6'}
-
camelcase-keys@9.1.3:
resolution: {integrity: sha512-Rircqi9ch8AnZscQcsA1C47NFdaO3wukpmIRzYcDOrmvgt78hM/sj5pZhZNec2NM12uk5vTwRHZ4anGcrC4ZTg==}
engines: {node: '>=16'}
@@ -24136,14 +23566,6 @@ packages:
charm@1.0.2:
resolution: {integrity: sha512-wqW3VdPnlSWT4eRiYX+hcs+C6ViBPUWk1qTCd+37qw9kEm/a5n2qcyQDMBWvSYKN/ctqZzeXNQaeBjOetJJUkw==}
- chevrotain-allstar@0.3.1:
- resolution: {integrity: sha512-b7g+y9A0v4mxCW1qUhf3BSVPg+/NvGErk/dOkrDaHA0nQIQGAtrOjlX//9OQtRlSCy+x9rfB5N8yC71lH1nvMw==}
- peerDependencies:
- chevrotain: ^11.0.0
-
- chevrotain@11.0.3:
- resolution: {integrity: sha512-ci2iJH6LeIkvP9eJW6gpueU8cnZhv85ELY8w8WiFtNjMHA5ad6pQLaJo9mEly/9qUyCpvqX8/POVUTf18/HFdw==}
-
chokidar@3.6.0:
resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==}
engines: {node: '>= 8.10.0'}
@@ -24247,10 +23669,6 @@ packages:
resolution: {integrity: sha512-wfOBkjXteqSnI59oPcJkcPl/ZmwvMMOj340qUIY1SKZCv0B9Cf4D4fAucRkIKQmsIuYK3x1rrgU7MeGRruiuiA==}
engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
- cli-truncate@4.0.0:
- resolution: {integrity: sha512-nPdaFdQ0h/GEigbPClz11D0v/ZJEwxmeVZGeMo3Z5StPtUTkA9o1lD6QwoirYiSDzbcwn2XcjwmCp68W1IS4TA==}
- engines: {node: '>=18'}
-
cli-width@3.0.0:
resolution: {integrity: sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==}
engines: {node: '>= 10'}
@@ -24287,10 +23705,6 @@ packages:
resolution: {integrity: sha512-CNg6uU53Hl4FEVynkTGpt5bQEAQWDHi3H+Sm62FzKf5uQHipSN2v7qVqS8GRVqeb0T1WNV+22+75DOJeRXYeSQ==}
engines: {node: '>=9'}
- clsx@2.1.1:
- resolution: {integrity: sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==}
- engines: {node: '>=6'}
-
co@4.6.0:
resolution: {integrity: sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==}
engines: {iojs: '>= 1.0.0', node: '>= 0.12.0'}
@@ -24306,9 +23720,6 @@ packages:
cohere-ai@7.14.0:
resolution: {integrity: sha512-hSo2/tFV29whjFFtVtdS7kHmtUsjfMO1sgwE/d5bhOE4O7Vkj5G1R9lLIqkIprp/+rrvCq3HGvEaOgry7xRcDA==}
- collapse-white-space@2.1.0:
- resolution: {integrity: sha512-loKTxY1zCOuG4j9f6EPnuyyYkf58RnhhWTvRoZEokgB+WbdXehfjFviyOVYkqzEWz1Q5kRiZdBYS5SwxbQYwzw==}
-
collect-v8-coverage@1.0.2:
resolution: {integrity: sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q==}
@@ -24402,18 +23813,6 @@ packages:
resolution: {integrity: sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==}
engines: {node: '>= 6'}
- commander@7.2.0:
- resolution: {integrity: sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==}
- engines: {node: '>= 10'}
-
- commander@8.3.0:
- resolution: {integrity: sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==}
- engines: {node: '>= 12'}
-
- commander@9.2.0:
- resolution: {integrity: sha512-e2i4wANQiSXgnrBlIatyHtP1odfUp0BbV5Y5nEGbxtIrStkEOAAzCUirvLBNXHLr7kwLvJl6V+4V3XV9x7Wd9w==}
- engines: {node: ^12.20.0 || >=14}
-
commander@9.5.0:
resolution: {integrity: sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==}
engines: {node: ^12.20.0 || >=14}
@@ -24461,9 +23860,6 @@ packages:
compute-lcm@1.1.2:
resolution: {integrity: sha512-OFNPdQAXnQhDSKioX8/XYT6sdUlXwpeMjfd6ApxMJfyZ4GxmLR1xvMERctlYhlHwIiz6CSpBc2+qYKjHGZw4TQ==}
- compute-scroll-into-view@3.1.0:
- resolution: {integrity: sha512-rj8l8pD4bJ1nx+dAkMhV1xB5RuZEyVysfxJqB1pRchh1KVvwOv9b7CGB8ZfjTImVv2oF+sYMUkMZq6Na5Ftmbg==}
-
computeds@0.0.1:
resolution: {integrity: sha512-7CEBgcMjVmitjYo5q8JTJVra6X5mQ20uTThdK+0kR7UEaDrAWEQcRiBtWJzga4eRpP6afNwwLsX2SET2JhVB1Q==}
@@ -24555,12 +23951,6 @@ packages:
resolution: {integrity: sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==}
engines: {node: '>= 0.10'}
- cose-base@1.0.3:
- resolution: {integrity: sha512-s9whTXInMSgAp/NVXVNuVxVKzGH2qck3aQlVHxDCdAEPgtMKwc4Wq6/QKhgdEdgbLSi9rBTAcPoRa6JpiG4ksg==}
-
- cose-base@2.2.0:
- resolution: {integrity: sha512-AzlgcsCbUMymkADOJtQm3wO9S3ltPfYOFD5033keQn9NJzIbtnZj+UdBJe7DYml/8TdbtHJW3j58SOnKhWY/5g==}
-
cosmiconfig@5.2.1:
resolution: {integrity: sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA==}
engines: {node: '>=4'}
@@ -24707,166 +24097,10 @@ packages:
cyclist@1.0.2:
resolution: {integrity: sha512-0sVXIohTfLqVIW3kb/0n6IiWF3Ifj5nm2XaSrLq2DI6fKIGa2fYAZdk917rUneaeLVpYfFcyXE2ft0fe3remsA==}
- cytoscape-cose-bilkent@4.1.0:
- resolution: {integrity: sha512-wgQlVIUJF13Quxiv5e1gstZ08rnZj2XaLHGoFMYXz7SkNfCDOOteKBE6SYRfA9WxxI/iBc3ajfDoc6hb/MRAHQ==}
- peerDependencies:
- cytoscape: ^3.2.0
-
- cytoscape-fcose@2.2.0:
- resolution: {integrity: sha512-ki1/VuRIHFCzxWNrsshHYPs6L7TvLu3DL+TyIGEsRcvVERmxokbf5Gdk7mFxZnTdiGtnA4cfSmjZJMviqSuZrQ==}
- peerDependencies:
- cytoscape: ^3.2.0
-
- cytoscape@3.30.4:
- resolution: {integrity: sha512-OxtlZwQl1WbwMmLiyPSEBuzeTIQnwZhJYYWFzZ2PhEHVFwpeaqNIkUzSiso00D98qk60l8Gwon2RP304d3BJ1A==}
- engines: {node: '>=0.10'}
-
- d3-array@2.12.1:
- resolution: {integrity: sha512-B0ErZK/66mHtEsR1TkPEEkwdy+WDesimkM5gpZr5Dsg54BiTA5RXtYW5qTLIAcekaS9xfZrzBLF/OAkB3Qn1YQ==}
-
- d3-array@3.2.4:
- resolution: {integrity: sha512-tdQAmyA18i4J7wprpYq8ClcxZy3SC31QMeByyCFyRt7BVHdREQZ5lpzoe5mFEYZUWe+oq8HBvk9JjpibyEV4Jg==}
- engines: {node: '>=12'}
-
- d3-axis@3.0.0:
- resolution: {integrity: sha512-IH5tgjV4jE/GhHkRV0HiVYPDtvfjHQlQfJHs0usq7M30XcSBvOotpmH1IgkcXsO/5gEQZD43B//fc7SRT5S+xw==}
- engines: {node: '>=12'}
-
- d3-brush@3.0.0:
- resolution: {integrity: sha512-ALnjWlVYkXsVIGlOsuWH1+3udkYFI48Ljihfnh8FZPF2QS9o+PzGLBslO0PjzVoHLZ2KCVgAM8NVkXPJB2aNnQ==}
- engines: {node: '>=12'}
-
- d3-chord@3.0.1:
- resolution: {integrity: sha512-VE5S6TNa+j8msksl7HwjxMHDM2yNK3XCkusIlpX5kwauBfXuyLAtNg9jCp/iHH61tgI4sb6R/EIMWCqEIdjT/g==}
- engines: {node: '>=12'}
-
- d3-color@3.1.0:
- resolution: {integrity: sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA==}
- engines: {node: '>=12'}
-
- d3-contour@4.0.2:
- resolution: {integrity: sha512-4EzFTRIikzs47RGmdxbeUvLWtGedDUNkTcmzoeyg4sP/dvCexO47AaQL7VKy/gul85TOxw+IBgA8US2xwbToNA==}
- engines: {node: '>=12'}
-
- d3-delaunay@6.0.4:
- resolution: {integrity: sha512-mdjtIZ1XLAM8bm/hx3WwjfHt6Sggek7qH043O8KEjDXN40xi3vx/6pYSVTwLjEgiXQTbvaouWKynLBiUZ6SK6A==}
- engines: {node: '>=12'}
-
- d3-dispatch@3.0.1:
- resolution: {integrity: sha512-rzUyPU/S7rwUflMyLc1ETDeBj0NRuHKKAcvukozwhshr6g6c5d8zh4c2gQjY2bZ0dXeGLWc1PF174P2tVvKhfg==}
- engines: {node: '>=12'}
-
- d3-drag@3.0.0:
- resolution: {integrity: sha512-pWbUJLdETVA8lQNJecMxoXfH6x+mO2UQo8rSmZ+QqxcbyA3hfeprFgIT//HW2nlHChWeIIMwS2Fq+gEARkhTkg==}
- engines: {node: '>=12'}
-
- d3-dsv@3.0.1:
- resolution: {integrity: sha512-UG6OvdI5afDIFP9w4G0mNq50dSOsXHJaRE8arAS5o9ApWnIElp8GZw1Dun8vP8OyHOZ/QJUKUJwxiiCCnUwm+Q==}
- engines: {node: '>=12'}
- hasBin: true
-
- d3-ease@3.0.1:
- resolution: {integrity: sha512-wR/XK3D3XcLIZwpbvQwQ5fK+8Ykds1ip7A2Txe0yxncXSdq1L9skcG7blcedkOX+ZcgxGAmLX1FrRGbADwzi0w==}
- engines: {node: '>=12'}
-
- d3-fetch@3.0.1:
- resolution: {integrity: sha512-kpkQIM20n3oLVBKGg6oHrUchHM3xODkTzjMoj7aWQFq5QEM+R6E4WkzT5+tojDY7yjez8KgCBRoj4aEr99Fdqw==}
- engines: {node: '>=12'}
-
- d3-force@3.0.0:
- resolution: {integrity: sha512-zxV/SsA+U4yte8051P4ECydjD/S+qeYtnaIyAs9tgHCqfguma/aAQDjo85A9Z6EKhBirHRJHXIgJUlffT4wdLg==}
- engines: {node: '>=12'}
-
- d3-format@3.1.0:
- resolution: {integrity: sha512-YyUI6AEuY/Wpt8KWLgZHsIU86atmikuoOmCfommt0LYHiQSPjvX2AcFc38PX0CBpr2RCyZhjex+NS/LPOv6YqA==}
- engines: {node: '>=12'}
-
- d3-geo@3.1.1:
- resolution: {integrity: sha512-637ln3gXKXOwhalDzinUgY83KzNWZRKbYubaG+fGVuc/dxO64RRljtCTnf5ecMyE1RIdtqpkVcq0IbtU2S8j2Q==}
- engines: {node: '>=12'}
-
- d3-hierarchy@3.1.2:
- resolution: {integrity: sha512-FX/9frcub54beBdugHjDCdikxThEqjnR93Qt7PvQTOHxyiNCAlvMrHhclk3cD5VeAaq9fxmfRp+CnWw9rEMBuA==}
- engines: {node: '>=12'}
-
- d3-interpolate@3.0.1:
- resolution: {integrity: sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g==}
- engines: {node: '>=12'}
-
- d3-path@1.0.9:
- resolution: {integrity: sha512-VLaYcn81dtHVTjEHd8B+pbe9yHWpXKZUC87PzoFmsFrJqgFwDe/qxfp5MlfsfM1V5E/iVt0MmEbWQ7FVIXh/bg==}
-
- d3-path@3.1.0:
- resolution: {integrity: sha512-p3KP5HCf/bvjBSSKuXid6Zqijx7wIfNW+J/maPs+iwR35at5JCbLUT0LzF1cnjbCHWhqzQTIN2Jpe8pRebIEFQ==}
- engines: {node: '>=12'}
-
- d3-polygon@3.0.1:
- resolution: {integrity: sha512-3vbA7vXYwfe1SYhED++fPUQlWSYTTGmFmQiany/gdbiWgU/iEyQzyymwL9SkJjFFuCS4902BSzewVGsHHmHtXg==}
- engines: {node: '>=12'}
-
- d3-quadtree@3.0.1:
- resolution: {integrity: sha512-04xDrxQTDTCFwP5H6hRhsRcb9xxv2RzkcsygFzmkSIOJy3PeRJP7sNk3VRIbKXcog561P9oU0/rVH6vDROAgUw==}
- engines: {node: '>=12'}
-
- d3-random@3.0.1:
- resolution: {integrity: sha512-FXMe9GfxTxqd5D6jFsQ+DJ8BJS4E/fT5mqqdjovykEB2oFbTMDVdg1MGFxfQW+FBOGoB++k8swBrgwSHT1cUXQ==}
- engines: {node: '>=12'}
-
- d3-sankey@0.12.3:
- resolution: {integrity: sha512-nQhsBRmM19Ax5xEIPLMY9ZmJ/cDvd1BG3UVvt5h3WRxKg5zGRbvnteTyWAbzeSvlh3tW7ZEmq4VwR5mB3tutmQ==}
-
- d3-scale-chromatic@3.1.0:
- resolution: {integrity: sha512-A3s5PWiZ9YCXFye1o246KoscMWqf8BsD9eRiJ3He7C9OBaxKhAd5TFCdEx/7VbKtxxTsu//1mMJFrEt572cEyQ==}
- engines: {node: '>=12'}
-
- d3-scale@4.0.2:
- resolution: {integrity: sha512-GZW464g1SH7ag3Y7hXjf8RoUuAFIqklOAq3MRl4OaWabTFJY9PN/E1YklhXLh+OQ3fM9yS2nOkCoS+WLZ6kvxQ==}
- engines: {node: '>=12'}
-
- d3-selection@3.0.0:
- resolution: {integrity: sha512-fmTRWbNMmsmWq6xJV8D19U/gw/bwrHfNXxrIN+HfZgnzqTHp9jOmKMhsTUjXOJnZOdZY9Q28y4yebKzqDKlxlQ==}
- engines: {node: '>=12'}
-
- d3-shape@1.3.7:
- resolution: {integrity: sha512-EUkvKjqPFUAZyOlhY5gzCxCeI0Aep04LwIRpsZ/mLFelJiUfnK56jo5JMDSE7yyP2kLSb6LtF+S5chMk7uqPqw==}
-
- d3-shape@3.2.0:
- resolution: {integrity: sha512-SaLBuwGm3MOViRq2ABk3eLoxwZELpH6zhl3FbAoJ7Vm1gofKx6El1Ib5z23NUEhF9AsGl7y+dzLe5Cw2AArGTA==}
- engines: {node: '>=12'}
-
- d3-time-format@4.1.0:
- resolution: {integrity: sha512-dJxPBlzC7NugB2PDLwo9Q8JiTR3M3e4/XANkreKSUxF8vvXKqm1Yfq4Q5dl8budlunRVlUUaDUgFt7eA8D6NLg==}
- engines: {node: '>=12'}
-
- d3-time@3.1.0:
- resolution: {integrity: sha512-VqKjzBLejbSMT4IgbmVgDjpkYrNWUYJnbCGo874u7MMKIWsILRX+OpX/gTk8MqjpT1A/c6HY2dCA77ZN0lkQ2Q==}
- engines: {node: '>=12'}
-
- d3-timer@3.0.1:
- resolution: {integrity: sha512-ndfJ/JxxMd3nw31uyKoY2naivF+r29V+Lc0svZxe1JvvIRmi8hUsrMvdOwgS1o6uBHmiz91geQ0ylPP0aj1VUA==}
- engines: {node: '>=12'}
-
- d3-transition@3.0.1:
- resolution: {integrity: sha512-ApKvfjsSR6tg06xrL434C0WydLr7JewBB3V+/39RMHsaXTOG0zmt/OAXeng5M5LBm0ojmxJrpomQVZ1aPvBL4w==}
- engines: {node: '>=12'}
- peerDependencies:
- d3-selection: 2 - 3
-
- d3-zoom@3.0.0:
- resolution: {integrity: sha512-b8AmV3kfQaqWAuacbPuNbL6vahnOJflOhexLzMMNLga62+/nh0JzvJ0aO/5a5MVgUFGS7Hu1P9P03o3fJkDCyw==}
- engines: {node: '>=12'}
-
- d3@7.9.0:
- resolution: {integrity: sha512-e1U46jVP+w7Iut8Jt8ri1YsPOvFpg46k+K8TpCb0P+zjCkjkPnV7WzfDJzMHy1LnA+wj5pLT1wjO901gLXeEhA==}
- engines: {node: '>=12'}
-
d@1.0.2:
resolution: {integrity: sha512-MOqHvMWF9/9MX6nza0KgvFH4HpMU0EF5uUDXqX/BtxtU8NfB0QzRtJ8Oe/6SuS4kbhyzVJwjd97EA4PKrzJ8bw==}
engines: {node: '>=0.12'}
- dagre-d3-es@7.0.11:
- resolution: {integrity: sha512-tvlJLyQf834SylNKax8Wkzco/1ias1OPw8DcUMDE7oUIoSEW25riQVuiu/0OWEFqT0cxHT3Pa9/D82Jr47IONw==}
-
damerau-levenshtein@1.0.8:
resolution: {integrity: sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==}
@@ -25089,9 +24323,6 @@ packages:
resolution: {integrity: sha512-TllpMR/t0M5sqCXfj85i4XaAzxmS5tVA16dqvdkMwGmzI+dXLXnw3J+3Vdv7VKw+ThlTMboK6i9rnZ6Nntj5CQ==}
engines: {node: '>= 14'}
- delaunator@5.0.1:
- resolution: {integrity: sha512-8nvh+XBe96aCESrGOqMp/84b13H9cdKbG5P2ejQCh4d4sK9RL4371qou9drQjMhvnPmhWl5hnmqbEE0fXr9Xnw==}
-
delay@5.0.0:
resolution: {integrity: sha512-ReEBKkIfe4ya47wlPYf/gu5ib6yUG0/Aez0JQZQz94kiWtRQvZIQbTiehsnwHvLSWJnQdhVeqYue7Id1dKr0qw==}
engines: {node: '>=10'}
@@ -25213,9 +24444,6 @@ packages:
dezalgo@1.0.4:
resolution: {integrity: sha512-rXSP0bf+5n0Qonsb+SVVfNfIsimO4HEtmnIpPHY8Q1UCzKlQrDMfdobr8nJOOsRgWCyMRqeSBQzmWUMq7zvVig==}
- didyoumean@1.2.2:
- resolution: {integrity: sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==}
-
diff-match-patch@1.0.5:
resolution: {integrity: sha512-IayShXAgj/QMXgB0IWmKx+rOPuGMhqm5w6jvFxmVenXKIzRqTAAsbBPT3kWQeGANj3jGgvcvv4yK6SxqYmikgw==}
@@ -25246,9 +24474,6 @@ packages:
discontinuous-range@1.0.0:
resolution: {integrity: sha512-c68LpLbO+7kP/b1Hr1qs8/BJ09F5khZGTxqxZuhzxpmwJKOgRFHJWIb9/KmqnqHhLdO55aOxFH/EGBvUQbL/RQ==}
- dlv@1.1.3:
- resolution: {integrity: sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==}
-
do-wrapper@4.5.1:
resolution: {integrity: sha512-E2I3xvDS306UwzpuQYL4wz5Fm+RvtV0cxOBPiWsflAEOA06mcBxAEUXvMeox9L6WI7R1PMiEhHLdo/s52JqUAQ==}
@@ -25284,9 +24509,6 @@ packages:
resolution: {integrity: sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==}
engines: {node: '>= 4'}
- dompurify@3.2.2:
- resolution: {integrity: sha512-YMM+erhdZ2nkZ4fTNRTSI94mb7VG7uVF5vj5Zde7tImgnhZE3R6YW/IACGIHb2ux+QkEXMhe591N+5jWOmL4Zw==}
-
domutils@2.8.0:
resolution: {integrity: sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==}
@@ -25405,9 +24627,6 @@ packages:
resolution: {integrity: sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==}
engines: {node: '>=12'}
- emoji-regex-xs@1.0.0:
- resolution: {integrity: sha512-LRlerrMYoIDrT6jgpeZ2YYl/L8EulRTt5hQcYjy5AInh7HWXKimpqx68aknBFpGL2+/IcogTcaydJEgaTmOpDg==}
-
emoji-regex@10.4.0:
resolution: {integrity: sha512-EC+0oUMY1Rqm4O6LLrgjtYDvcVYTy7chDnM4Q7030tP4Kwj3u/pR6gP9ygnp2CJMK5Gq+9Q2oqmrFJAz01DXjw==}
@@ -25564,12 +24783,6 @@ packages:
es6-weak-map@2.0.3:
resolution: {integrity: sha512-p5um32HOTO1kP+w7PRnB+5lQ43Z6muuMuIMffvDN8ZB4GcnjLBV6zGStpbASIMk4DCAvEaamhe2zhyCb/QXXsA==}
- esast-util-from-estree@2.0.0:
- resolution: {integrity: sha512-4CyanoAudUSBAn5K13H4JhsMH6L9ZP7XbLVe/dKybkxMO7eDyLsT8UHl9TRNrU2Gr9nz+FovfSIjuXWJ81uVwQ==}
-
- esast-util-from-js@2.0.1:
- resolution: {integrity: sha512-8Ja+rNJ0Lt56Pcf3TAmpBZjmx8ZcK5Ts4cAzIOjsjevg9oSXJnl6SUQ2EevU8tv3h6ZLWmoKL5H4fgWvdvfETw==}
-
esbuild@0.21.5:
resolution: {integrity: sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==}
engines: {node: '>=12'}
@@ -25785,10 +24998,6 @@ packages:
deprecated: This version is no longer supported. Please see https://eslint.org/version-support for other options.
hasBin: true
- esm@3.2.25:
- resolution: {integrity: sha512-U1suiZ2oDVWv4zPO56S0NcR5QriEahGtdN2OR6FiOG4WJvcjBVFB0qI4+eKoWFH483PKGuLuu6V8Z4T5g63UVA==}
- engines: {node: '>=6'}
-
esniff@2.0.1:
resolution: {integrity: sha512-kTUIGKQ/mDPFoJ0oVfcmyJn4iBDRptjNVIzwIFR7tqWXdVI9xfA2RMwY/gbSpJG3lkdWNEjLap/NqVHZiJsdfg==}
engines: {node: '>=0.10'}
@@ -25843,37 +25052,12 @@ packages:
estree-util-attach-comments@3.0.0:
resolution: {integrity: sha512-cKUwm/HUcTDsYh/9FgnuFqpfquUbwIqwKM26BVCGDPVgvaCl/nDCCjUfiLlx6lsEZ3Z4RFxNbOQ60pkaEwFxGw==}
- estree-util-build-jsx@3.0.1:
- resolution: {integrity: sha512-8U5eiL6BTrPxp/CHbs2yMgP8ftMhR5ww1eIKoWRMlqvltHF8fZn5LRDvTKuxD3DUn+shRbLGqXemcP51oFCsGQ==}
-
- estree-util-is-identifier-name@2.1.0:
- resolution: {integrity: sha512-bEN9VHRyXAUOjkKVQVvArFym08BTWB0aJPppZZr0UNyAqWsLaVfAqP7hbaTJjzHifmB5ebnR8Wm7r7yGN/HonQ==}
-
estree-util-is-identifier-name@3.0.0:
resolution: {integrity: sha512-hFtqIDZTIUZ9BXLb8y4pYGyk6+wekIivNVTcmvk8NoOh+VeRn5y6cEHzbURrWbfp1fIqdVipilzj+lfaadNZmg==}
- estree-util-scope@1.0.0:
- resolution: {integrity: sha512-2CAASclonf+JFWBNJPndcOpA8EMJwa0Q8LUFJEKqXLW6+qBvbFZuF5gItbQOs/umBUkjviCSDCbBwU2cXbmrhQ==}
-
- estree-util-to-js@2.0.0:
- resolution: {integrity: sha512-WDF+xj5rRWmD5tj6bIqRi6CkLIXbbNQUcxQHzGysQzvHmdYG2G7p/Tf0J0gpxGgkeMZNTIjT/AoSvC9Xehcgdg==}
-
- estree-util-value-to-estree@1.3.0:
- resolution: {integrity: sha512-Y+ughcF9jSUJvncXwqRageavjrNPAI+1M/L3BI3PyLp1nmgYTGUXU6t5z1Y7OWuThoDdhPME07bQU+d5LxdJqw==}
- engines: {node: '>=12.0.0'}
-
- estree-util-value-to-estree@3.2.1:
- resolution: {integrity: sha512-Vt2UOjyPbNQQgT5eJh+K5aATti0OjCIAGc9SgMdOFYbohuifsWclR74l0iZTJwePMgWYdX1hlVS+dedH9XV8kw==}
-
- estree-util-visit@2.0.0:
- resolution: {integrity: sha512-m5KgiH85xAhhW8Wta0vShLcUvOsh3LLPI2YVwcbio1l7E09NTLL1EyMZFM1OyWowoH0skScNbhOPl4kcBgzTww==}
-
estree-walker@2.0.2:
resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==}
- estree-walker@3.0.3:
- resolution: {integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==}
-
esutils@2.0.3:
resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==}
engines: {node: '>=0.10.0'}
@@ -25976,10 +25160,6 @@ packages:
ext@1.7.0:
resolution: {integrity: sha512-6hxeJYaL110a9b5TEJSj0gojyHQAmA2ch5Os+ySCiA1QGdS697XWY1pzsrSjqA9LDEEgdB/KypIlR59RcLuHYw==}
- extend-shallow@2.0.1:
- resolution: {integrity: sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==}
- engines: {node: '>=0.10.0'}
-
extend@3.0.2:
resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==}
@@ -26092,9 +25272,6 @@ packages:
fastq@1.17.1:
resolution: {integrity: sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==}
- fault@2.0.1:
- resolution: {integrity: sha512-WtySTkS4OKev5JtpHXnib4Gxiurzh5NCGvWrFaZ34m6JehfTUhKZvn9njTfw48t6JumVQOmrKqpmGcdwxnhqBQ==}
-
faunadb@4.8.1:
resolution: {integrity: sha512-rYxIwo+tEVHpbGOrt4osqdOIJQM4lIjkAjolRfj/6sTwhcBwZYryc8m/GSvtGgpx9gbaSQqMIB7pu/J0aTmiwg==}
@@ -26302,9 +25479,6 @@ packages:
flatted@3.3.2:
resolution: {integrity: sha512-AiwGJM8YcNOaobumgtng+6NHuOqC3A7MixFeDafM3X9cIUM+xUXoS5Vfgf+OihAYe20fxqNM9yPBXJzRtZ/4eA==}
- flexsearch@0.7.43:
- resolution: {integrity: sha512-c5o/+Um8aqCSOXGcZoqZOm+NqtVwNsvVpWv6lfmSclU954O3wvQKxxK8zj74fPaSJbXpSLTs4PRhh+wnoCXnKg==}
-
fn-annotate@1.2.0:
resolution: {integrity: sha512-j2gv2wkRhQgkJNf1ygdca8ynP3tK+a87bowc+RG81iWTye3yKIOeAkrKYv0Kqyh8yCeSyljOk3ZFelfXUFpirA==}
engines: {node: '>=0.10.0'}
@@ -26385,10 +25559,6 @@ packages:
resolution: {integrity: sha512-iQz8w2qr4f+doWBV6LsfScHbu1gXhccByjbmA1wjBTaKRhweH2baJL96UGR4C7Fjpr8zSkK7EXiLmbzZWTyQIA==}
engines: {node: '>=8'}
- format@0.2.2:
- resolution: {integrity: sha512-wzsgA6WOq+09wrU1tsJ09udeR/YZRaeArL9e1wPbFg3GG2yDnC2ldKpxs4xunpFF9DgqCqOIra3bc1HWrJ37Ww==}
- engines: {node: '>=0.4.x'}
-
formdata-node@4.4.1:
resolution: {integrity: sha512-0iirZp3uVDjVGt9p49aTaqjk84TrglENEDuqfdlZQ1roC9CWlPk6Avf8EEnZNcAqPonwkG35x4n3ww/1THYAeQ==}
engines: {node: '>= 12.20'}
@@ -26419,9 +25589,6 @@ packages:
fp-ts@2.16.9:
resolution: {integrity: sha512-+I2+FnVB+tVaxcYyQkHUq7ZdKScaBlX53A41mxQtpIccsfyv8PzdzP7fzp2AY832T4aoK6UZ5WRX/ebGd8uZuQ==}
- fraction.js@4.3.7:
- resolution: {integrity: sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==}
-
fraudlabspro-nodejs@3.0.0:
resolution: {integrity: sha512-f+3gwDWunQoFRiX8/pbegr28qRztGgKrxF0oH7yIZQho0N3/kZjYHn3LelTio++nGoPcDIKkZob/WS1jQuSnHg==}
@@ -26649,9 +25816,6 @@ packages:
gitconfiglocal@2.1.0:
resolution: {integrity: sha512-qoerOEliJn3z+Zyn1HW2F6eoYJqKwS6MgC9cztTLUB/xLWX8gD/6T60pKn4+t/d6tP7JlybI7Z3z+I572CR/Vg==}
- github-slugger@2.0.0:
- resolution: {integrity: sha512-IaOQ9puYtjrkq7Y0Ygl9KDZnrf/aiUJYUpVf89y8kyaxbRG7Y1SrX/jaumrv81vc61+kiMempujsM3Yw7w5qcw==}
-
glob-parent@5.1.2:
resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==}
engines: {node: '>= 6'}
@@ -26891,10 +26055,6 @@ packages:
resolution: {integrity: sha512-GGTKBX4SD7Wdb8mqeDLni2oaRGYQWjWHGKPQ24ZMnUtKfcsVoiv4uX8+LJr1K6U5VW2Lu1BwJnj7uiori0YtRw==}
engines: {node: ^12.22.0 || ^14.16.0 || ^16.0.0 || >=17.0.0}
- gray-matter@4.0.3:
- resolution: {integrity: sha512-5v6yZd4JK3eMI3FqqCouswVqwugaA9r4dNZB1wwcmrD02QkV5H0y7XBQW8QwQqEaZY1pM9aqORSORhJRdNK44Q==}
- engines: {node: '>=6.0'}
-
gtoken@5.3.2:
resolution: {integrity: sha512-gkvEKREW7dXWF8NV8pVrKfW7WqReAmjjkMBh6lNCCGOM4ucS0r0YyXXl0r/9Yj8wcW/32ISkfc8h5mPTDbtifQ==}
engines: {node: '>=10'}
@@ -26914,9 +26074,6 @@ packages:
h3@1.15.4:
resolution: {integrity: sha512-z5cFQWDffyOe4vQ9xIqNfCZdV4p//vy6fBnr8Q1AWnVZ0teurKMG66rLj++TKwKPUP3u7iMUvrvKaEUiQw2QWQ==}
- hachure-fill@0.5.2:
- resolution: {integrity: sha512-3GKBOn+m2LX9iq+JC1064cSFprJY4jL1jCXTcpnfER5HYE2l/4EfWSGzkPa/ZDBmYI0ZOEj5VHV/eKnPGkHuOg==}
-
handlebars-loader@1.7.3:
resolution: {integrity: sha512-dDb+8D51vE3OTSE2wuGPWRAegtsEuw8Mk8hCjtRu/pNcBfN5q+M8ZG3kVJxBuOeBrVElpFStipGmaxSBTRR1mQ==}
peerDependencies:
@@ -26985,51 +26142,12 @@ packages:
resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==}
engines: {node: '>= 0.4'}
- hast-util-from-dom@5.0.1:
- resolution: {integrity: sha512-N+LqofjR2zuzTjCPzyDUdSshy4Ma6li7p/c3pA78uTwzFgENbgbUrm2ugwsOdcjI1muO+o6Dgzp9p8WHtn/39Q==}
-
- hast-util-from-html-isomorphic@2.0.0:
- resolution: {integrity: sha512-zJfpXq44yff2hmE0XmwEOzdWin5xwH+QIhMLOScpX91e/NSGPsAzNCvLQDIEPyO2TXi+lBmU6hjLIhV8MwP2kw==}
-
- hast-util-from-html@2.0.3:
- resolution: {integrity: sha512-CUSRHXyKjzHov8yKsQjGOElXy/3EKpyX56ELnkHH34vDVw1N1XSQ1ZcAvTyAPtGqLTuKP/uxM+aLkSPqF/EtMw==}
-
- hast-util-from-parse5@8.0.2:
- resolution: {integrity: sha512-SfMzfdAi/zAoZ1KkFEyyeXBn7u/ShQrfd675ZEE9M3qj+PMFX05xubzRyF76CCSJu8au9jgVxDV1+okFvgZU4A==}
-
- hast-util-is-element@3.0.0:
- resolution: {integrity: sha512-Val9mnv2IWpLbNPqc/pUem+a7Ipj2aHacCwgNfTiK0vJKl0LF+4Ba4+v1oPHFpf3bLYmreq0/l3Gud9S5OH42g==}
-
- hast-util-parse-selector@4.0.0:
- resolution: {integrity: sha512-wkQCkSYoOGCRKERFWcxMVMOcYE2K1AaNLU8DXS9arxnLOUEWbOXKXiJUNzEpqZ3JOKpnha3jkFrumEjVliDe7A==}
-
- hast-util-raw@9.1.0:
- resolution: {integrity: sha512-Y8/SBAHkZGoNkpzqqfCldijcuUKh7/su31kEBp67cFY09Wy0mTRgtsLYsiIxMJxlu0f6AA5SUTbDR8K0rxnbUw==}
-
- hast-util-to-estree@3.1.0:
- resolution: {integrity: sha512-lfX5g6hqVh9kjS/B9E2gSkvHH4SZNiQFiqWS0x9fENzEl+8W12RqdRxX6d/Cwxi30tPQs3bIO+aolQJNp1bIyw==}
-
- hast-util-to-html@9.0.3:
- resolution: {integrity: sha512-M17uBDzMJ9RPCqLMO92gNNUDuBSq10a25SDBI08iCCxmorf4Yy6sYHK57n9WAbRAAaU+DuR4W6GN9K4DFZesYg==}
-
hast-util-to-jsx-runtime@2.3.2:
resolution: {integrity: sha512-1ngXYb+V9UT5h+PxNRa1O1FYguZK/XL+gkeqvp7EdHlB9oHUG0eYRo/vY5inBdcqo3RkPMC58/H94HvkbfGdyg==}
- hast-util-to-parse5@8.0.0:
- resolution: {integrity: sha512-3KKrV5ZVI8if87DVSi1vDeByYrkGzg4mEfeu4alwgmmIeARiBLKCZS2uw5Gb6nU9x9Yufyj3iudm6i7nl52PFw==}
-
- hast-util-to-string@3.0.1:
- resolution: {integrity: sha512-XelQVTDWvqcl3axRfI0xSeoVKzyIFPwsAGSLIsKdJKQMXDYJS4WYrBNF/8J7RdhIcFI2BOHgAifggsvsxp/3+A==}
-
- hast-util-to-text@4.0.2:
- resolution: {integrity: sha512-KK6y/BN8lbaq654j7JgBydev7wuNMcID54lkRav1P0CaE1e47P72AWWPiGKXTJU271ooYzcvTAn/Zt0REnvc7A==}
-
hast-util-whitespace@3.0.0:
resolution: {integrity: sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw==}
- hastscript@9.0.0:
- resolution: {integrity: sha512-jzaLBGavEDKHrc5EfFImKN7nZKKBdSLIdGvCwDZ9TfzbF2ffXiov8CKE445L2Z1Ek2t/m4SKQ2j6Ipv7NyUolw==}
-
he@1.2.0:
resolution: {integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==}
hasBin: true
@@ -27108,9 +26226,6 @@ packages:
html-url-attributes@3.0.1:
resolution: {integrity: sha512-ol6UPyBWqsrO6EJySPz2O7ZSr856WDrEzM5zMqp+FJJLGMW35cLYmmZnl0vztAZxRUoNZJFTCohfjuIJ8I4QBQ==}
- html-void-elements@3.0.0:
- resolution: {integrity: sha512-bEqo66MRXsUGxWHV5IP0PUiAWwoEjba4VCzg0LjFJBpchPaTfyfCKTG6bc5F8ucKec3q5y6qOdGyYTSBEvhCrg==}
-
htmlparser2@6.1.0:
resolution: {integrity: sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A==}
@@ -27325,9 +26440,6 @@ packages:
resolution: {integrity: sha512-QQnnxNyfvmHFIsj7gkPcYymR8Jdw/o7mp5ZFihxn6h8Ci6fh3Dx4E1gPjpQEpIuPo9XVNY/ZUwh4BPMjGyL01g==}
engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
- inline-style-parser@0.1.1:
- resolution: {integrity: sha512-7NXolsK4CAS5+xvdj5OMMbI962hU/wvwoxk+LWR9Ek9bVtyuuYScDN6eS0rUm6TxApFpw7CX1o4uJzcd4AyD3Q==}
-
inline-style-parser@0.2.4:
resolution: {integrity: sha512-0aO8FkhNZlj/ZIbNi7Lxxr12obT7cL1moPfE4tg1LkX7LlLfC6DeX4l2ZEud1ukP9jNQyNnfzQVqwbwmAATY4Q==}
@@ -27351,13 +26463,6 @@ packages:
resolution: {integrity: sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==}
engines: {node: '>= 0.4'}
- internmap@1.0.1:
- resolution: {integrity: sha512-lDB5YccMydFBtasVtxnZ3MRBHuaoE8GKsppq+EchKL2U4nK/DmEpPHNH8MZe5HkMtpSiTSOZwfN0tzYjO/lJEw==}
-
- internmap@2.0.3:
- resolution: {integrity: sha512-5Hh7Y1wQbvY5ooGgPbDaL5iYLAPzMTUrjMulskHLH6wnv/A+1q5rgEaiuqEjB+oxGXIVZs1FF+R/KPN3ZSQYYg==}
- engines: {node: '>=12'}
-
into-stream@6.0.0:
resolution: {integrity: sha512-XHbaOAvP+uFKUFsOgoNPRjLkwB+I22JFPFe5OjTkQ0nwgj6+pSjb4NmB6VMxaPshLiOf+zcpOCBQuLwC1KHhZA==}
engines: {node: '>=10'}
@@ -27499,10 +26604,6 @@ packages:
resolution: {integrity: sha512-5RuM+oFY0P5MRa1nXJo6IcTx9m2VyXYhRtb4h0olsi2GHci4bqZ6akHk+GmCYvDrAR9yInbiYdr2pnoqiOMw/Q==}
engines: {node: '>=16.17.0'}
- is-extendable@0.1.1:
- resolution: {integrity: sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==}
- engines: {node: '>=0.10.0'}
-
is-extglob@2.1.1:
resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==}
engines: {node: '>=0.10.0'}
@@ -27970,10 +27071,6 @@ packages:
node-notifier:
optional: true
- jiti@1.21.6:
- resolution: {integrity: sha512-2yTgeWTWzMWkHu6Jp9NKgePDaYHbntiwvYuuJLbbN9vl7DC9DvXKOB2BC3ZZ92D3cvV/aflH0osDfwpHepQ53w==}
- hasBin: true
-
jiti@2.4.2:
resolution: {integrity: sha512-rg9zJN+G4n2nfJl5MW3BMygZX56zKPNVEYYqq7adpmMh4Jn2QNEwhvQlFy6jPVdcod7txZtKHWnyZiA3a0zP7A==}
hasBin: true
@@ -28214,10 +27311,6 @@ packages:
resolution: {integrity: sha512-y+8btoc/CK70XqcHqjxiGWBOeIL8upbS0peTPXTvgrh21n1RiWWcIpSWM+4uXq+IAgNh9YYQWdc7LVDPDAEEAg==}
hasBin: true
- katex@0.16.11:
- resolution: {integrity: sha512-RQrI8rlHY92OLf3rho/Ts8i/XvjgguEjOkO1BEXcU3N8BqPpSzBNwV/G0Ukr+P/l3ivvJUE/Fa/CwbS6HesGNQ==}
- hasBin: true
-
keep-func-props@6.0.0:
resolution: {integrity: sha512-XDYA44ccm6W2MXZeQcDZykS5srkTpPf6Z59AEuOFbfuqdQ5TVxhAjxgzAEFBpr8XpsCEgr/XeCBFAmc9x6wRmQ==}
engines: {node: '>=16.17.0'}
@@ -28228,9 +27321,6 @@ packages:
keyv@5.2.1:
resolution: {integrity: sha512-tpIgCaY02VCW2Pz0zAn4guyct+IeH6Mb5wZdOvpe4oqXeQOJO0C3Wo8fTnf7P3ZD83Vr9kghbkNmzG3lTOhy/A==}
- khroma@2.1.0:
- resolution: {integrity: sha512-Ls993zuzfayK269Svk9hzpeGUKob/sIgZzyHYdjQoAdQetRKpOLj+k/QQQ/6Qi0Yz65mlROrfd+Ev+1+7dz9Kw==}
-
kind-of@6.0.3:
resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==}
engines: {node: '>=0.10.0'}
@@ -28295,10 +27385,6 @@ packages:
engines: {node: '>=8'}
hasBin: true
- langium@3.0.0:
- resolution: {integrity: sha512-+Ez9EoiByeoTu/2BXmEaZ06iPNXM6thWJp02KfBO/raSMyCJ4jw7AkWWa+zBCTm0+Tw1Fj9FOxdqSskyN5nAwg==}
- engines: {node: '>=16.0.0'}
-
language-subtag-registry@0.3.23:
resolution: {integrity: sha512-0K65Lea881pHotoGEa5gDlMxt3pctLi2RplBb7Ezh4rRdLEOtgi7n4EwK9lamnUCkKBqaeKRVebTq6BAxSkpXQ==}
@@ -28310,12 +27396,6 @@ packages:
resolution: {integrity: sha512-7W0vV3rqv5tokqkBAFV1LbR7HPOWzXQDpDgEuib/aJ1jsZZx6x3c2mBI+TJhJzOhkGeaLbCKEHXEXLfirtG2JA==}
engines: {node: '>=18'}
- layout-base@1.0.2:
- resolution: {integrity: sha512-8h2oVEZNktL4BH2JCOI90iD1yXwL6iNW7KcCKT2QZgQJR2vbqDsldCTPRU9NifTCqHZci57XvQQ15YTu+sTYPg==}
-
- layout-base@2.0.1:
- resolution: {integrity: sha512-dp3s92+uNI1hWIpPGH3jK2kxE2lMjdXdr+DH8ynZHpd6PUlH6x6cbuXnoMmiNumznqaNO31xu9e79F0uuZ0JFg==}
-
lazystream@1.0.1:
resolution: {integrity: sha512-b94GiNHQNy6JNTrt5w6zNyffMrNkXZb3KTkCZJb2V1xaEGCk093vkZ2jk3tpaeP33/OiXC+WvK9AxUebnf5nbw==}
engines: {node: '>= 0.6.3'}
@@ -28397,11 +27477,6 @@ packages:
engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
hasBin: true
- lint-staged@15.2.10:
- resolution: {integrity: sha512-5dY5t743e1byO19P9I4b3x8HJwalIznL5E1FWYnU6OWw33KxNBSLAc6Cy7F2PsFEO8FKnLwjwm5hx7aMF0jzZg==}
- engines: {node: '>=18.12.0'}
- hasBin: true
-
listhen@1.9.0:
resolution: {integrity: sha512-I8oW2+QL5KJo8zXNWX046M134WchxsXC7SawLPvRQpogCbkyQIaFxPE89A2HiwR7vAK2Dm2ERBAmyjTYGYEpBg==}
hasBin: true
@@ -28415,10 +27490,6 @@ packages:
enquirer:
optional: true
- listr2@8.2.5:
- resolution: {integrity: sha512-iyAZCeyD+c1gPyE9qpFu8af0Y+MRtmKOncdGoA2S5EY8iFq99dmmvkNnHiWo+pj0s7yH7l3KPIgee77tKpXPWQ==}
- engines: {node: '>=18.0.0'}
-
livekit-server-sdk@2.13.0:
resolution: {integrity: sha512-fQJI/zEJRPeXKdKMkEfJNYSSnvmuPQsk2Q+X6tPfUrJPy7fnyYPax/icf/CZ8EYZQBhFgSD7WaKOYGSSfGSyZw==}
engines: {node: '>=18'}
@@ -28716,10 +27787,6 @@ packages:
map-stream@0.1.0:
resolution: {integrity: sha512-CkYQrPYZfWnu/DAmVCpTSX/xHpKZ80eKh2lAkyA6AJTef6bW+6JpbQZN5rofum7da+SyN1bi5ctTm+lTfcCW3g==}
- markdown-extensions@2.0.0:
- resolution: {integrity: sha512-o5vL7aDWatOTX8LzaS1WMoaoxIiLRQJuIKKe2wAw6IeULDHaqbiqiggmx+pKvZDb1Sj+pE46Sn1T7lCqfFtg1Q==}
- engines: {node: '>=16'}
-
markdown-it-anchor@8.6.7:
resolution: {integrity: sha512-FlCHFwNnutLgVTflOYHPW2pPcl2AACqVzExlkGQNsi4CJgqOHN7YTgDd4LuhgN1BFO3TS0vLAruV1Td6dwWPJA==}
peerDependencies:
@@ -28733,14 +27800,6 @@ packages:
markdown-table@2.0.0:
resolution: {integrity: sha512-Ezda85ToJUBhM6WGaG6veasyym+Tbs3cMAw/ZhOPqXiYsr0jgocBV3j3nx+4lk47plLlIqjwuTm/ywVI+zjJ/A==}
- markdown-table@3.0.4:
- resolution: {integrity: sha512-wiYz4+JrLyb/DqW2hkFJxP7Vd7JuTDm77fvbM8VfEQdmSMqcImWeeRbHwZjBjIFki/VaMK2BhFi7oUUZeM5bqw==}
-
- marked@13.0.3:
- resolution: {integrity: sha512-rqRix3/TWzE9rIoFGIn8JmsVfhiuC8VIQ8IdX5TfzmeBucdY05/0UlzKaw0eVtpcN/OdVFpBk7CjKGo9iHJ/zA==}
- engines: {node: '>= 18'}
- hasBin: true
-
marked@4.3.0:
resolution: {integrity: sha512-PRsaiG84bK+AMvxziE/lCFss8juXjNaWzVbN5tXAm4XjeaS9NAHhop+PjQxz2A9h8Q4M/xGmzP8vqNwy6JeK0A==}
engines: {node: '>= 12'}
@@ -28750,9 +27809,6 @@ packages:
resolution: {integrity: sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==}
engines: {node: '>= 0.4'}
- mathjax-full@3.2.2:
- resolution: {integrity: sha512-+LfG9Fik+OuI8SLwsiR02IVdjcnRCy5MufYLi0C3TdMT56L/pjB0alMVGgoWJF8pN9Rc7FESycZB9BMNWIid5w==}
-
mathml-tag-names@2.1.3:
resolution: {integrity: sha512-APMBEanjybaPzUrfqU0IMU5I0AswKMH7k8OTLs0vvV4KZpExkTkY87nR/zpbuTPj+gARop7aGUbl11pnDfW6xg==}
@@ -28774,69 +27830,39 @@ packages:
mdast-util-find-and-replace@1.1.1:
resolution: {integrity: sha512-9cKl33Y21lyckGzpSmEQnIDjEfeeWelN5s1kUW1LwdB0Fkuq2u+4GdqcGEygYxJE8GVqCl0741bYXHgamfWAZA==}
- mdast-util-find-and-replace@3.0.1:
- resolution: {integrity: sha512-SG21kZHGC3XRTSUhtofZkBzZTJNM5ecCi0SK2IMKmSXR8vO3peL+kb1O0z7Zl83jKtutG4k5Wv/W7V3/YHvzPA==}
-
mdast-util-from-markdown@0.8.5:
resolution: {integrity: sha512-2hkTXtYYnr+NubD/g6KGBS/0mFmBcifAsI0yIWRiRo0PjVs6SSOSOdtzbp6kSGnShDN6G5aWZpKQ2lWRy27mWQ==}
mdast-util-from-markdown@2.0.2:
resolution: {integrity: sha512-uZhTV/8NBuw0WHkPTrCqDOl0zVe1BIng5ZtHoDk49ME1qqcjYmmLmOf0gELgcRMxN4w2iuIeVso5/6QymSrgmA==}
- mdast-util-frontmatter@2.0.1:
- resolution: {integrity: sha512-LRqI9+wdgC25P0URIJY9vwocIzCcksduHQ9OF2joxQoyTNVduwLAFUzjoopuRJbJAReaKrNQKAZKL3uCMugWJA==}
-
mdast-util-gfm-autolink-literal@0.1.3:
resolution: {integrity: sha512-GjmLjWrXg1wqMIO9+ZsRik/s7PLwTaeCHVB7vRxUwLntZc8mzmTsLVr6HW1yLokcnhfURsn5zmSVdi3/xWWu1A==}
- mdast-util-gfm-autolink-literal@2.0.1:
- resolution: {integrity: sha512-5HVP2MKaP6L+G6YaxPNjuL0BPrq9orG3TsrZ9YXbA3vDw/ACI4MEsnoDpn6ZNm7GnZgtAcONJyPhOP8tNJQavQ==}
-
- mdast-util-gfm-footnote@2.0.0:
- resolution: {integrity: sha512-5jOT2boTSVkMnQ7LTrd6n/18kqwjmuYqo7JUPe+tRCY6O7dAuTFMtTPauYYrMPpox9hlN0uOx/FL8XvEfG9/mQ==}
-
mdast-util-gfm-strikethrough@0.2.3:
resolution: {integrity: sha512-5OQLXpt6qdbttcDG/UxYY7Yjj3e8P7X16LzvpX8pIQPYJ/C2Z1qFGMmcw+1PZMUM3Z8wt8NRfYTvCni93mgsgA==}
- mdast-util-gfm-strikethrough@2.0.0:
- resolution: {integrity: sha512-mKKb915TF+OC5ptj5bJ7WFRPdYtuHv0yTRxK2tJvi+BDqbkiG7h7u/9SI89nRAYcmap2xHQL9D+QG/6wSrTtXg==}
-
mdast-util-gfm-table@0.1.6:
resolution: {integrity: sha512-j4yDxQ66AJSBwGkbpFEp9uG/LS1tZV3P33fN1gkyRB2LoRL+RR3f76m0HPHaby6F4Z5xr9Fv1URmATlRRUIpRQ==}
- mdast-util-gfm-table@2.0.0:
- resolution: {integrity: sha512-78UEvebzz/rJIxLvE7ZtDd/vIQ0RHv+3Mh5DR96p7cS7HsBhYIICDBCu8csTNWNO6tBWfqXPWekRuj2FNOGOZg==}
-
mdast-util-gfm-task-list-item@0.1.6:
resolution: {integrity: sha512-/d51FFIfPsSmCIRNp7E6pozM9z1GYPIkSy1urQ8s/o4TC22BZ7DqfHFWiqBD23bc7J3vV1Fc9O4QIHBlfuit8A==}
- mdast-util-gfm-task-list-item@2.0.0:
- resolution: {integrity: sha512-IrtvNvjxC1o06taBAVJznEnkiHxLFTzgonUdy8hzFVeDun0uTjxxrRGVaNFqkU1wJR3RBPEfsxmU6jDWPofrTQ==}
-
mdast-util-gfm@0.1.2:
resolution: {integrity: sha512-NNkhDx/qYcuOWB7xHUGWZYVXvjPFFd6afg6/e2g+SV4r9q5XUcCbV4Wfa3DLYIiD+xAEZc6K4MGaE/m0KDcPwQ==}
- mdast-util-gfm@3.0.0:
- resolution: {integrity: sha512-dgQEX5Amaq+DuUqf26jJqSK9qgixgd6rYDHAv4aTBuA92cTknZlKpPfa86Z/s8Dj8xsAQpFfBmPUHWJBWqS4Bw==}
-
mdast-util-heading-style@3.0.0:
resolution: {integrity: sha512-tsUfM9Kj9msjlemA/38Z3pvraQay880E3zP2NgIthMoGcpU9bcPX9oSM6QC/+eFXGGB4ba+VCB1dKAPHB7Veug==}
mdast-util-math@0.1.2:
resolution: {integrity: sha512-fogAitds+wH+QRas78Yr1TwmQGN4cW/G2WRw5ePuNoJbBSPJCxIOCE8MTzHgWHVSpgkRaPQTgfzXRE1CrwWSlg==}
- mdast-util-math@3.0.0:
- resolution: {integrity: sha512-Tl9GBNeG/AhJnQM221bJR2HPvLOSnLE/T9cJI9tlc6zwQk2nPk/4f0cHkOdEixQPC/j8UtKDdITswvLAy1OZ1w==}
-
mdast-util-mdx-expression@2.0.1:
resolution: {integrity: sha512-J6f+9hUp+ldTZqKRSg7Vw5V6MqjATc+3E4gf3CFNcuZNWD8XdyI6zQ8GqH7f8169MM6P7hMBRDVGnn7oHB9kXQ==}
mdast-util-mdx-jsx@3.1.3:
resolution: {integrity: sha512-bfOjvNt+1AcbPLTFMFWY149nJz0OjmewJs3LQQ5pIyVGxP4CdOqNVJL6kTaM5c68p8q82Xv3nCyFfUnuEcH3UQ==}
- mdast-util-mdx@3.0.0:
- resolution: {integrity: sha512-JfbYLAW7XnYTTbUsmpu0kdBUVe+yKVJZBItEjwyYJiDJuZ9w4eeaqks4HQO+R7objWgS2ymV60GYpI14Ug554w==}
-
mdast-util-mdxjs-esm@2.0.1:
resolution: {integrity: sha512-EcmOpxsZ96CvlP03NghtH1EsLtr0n9Tm4lPUJUBccV9RwUOneqSycg19n5HGzCf+10LozMRSObtVr3ee1WoHtg==}
@@ -28911,16 +27937,10 @@ packages:
resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==}
engines: {node: '>= 8'}
- mermaid@11.4.1:
- resolution: {integrity: sha512-Mb01JT/x6CKDWaxigwfZYuYmDZ6xtrNwNlidKZwkSrDaY9n90tdrJTV5Umk+wP1fZscGptmKFXHsXMDEVZ+Q6A==}
-
methods@1.1.2:
resolution: {integrity: sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==}
engines: {node: '>= 0.6'}
- mhchemparser@4.2.1:
- resolution: {integrity: sha512-kYmyrCirqJf3zZ9t/0wGgRZ4/ZJw//VwaRVGA75C4nhE60vtnIzhl9J9ndkX/h6hxSN7pjg/cE0VxbnNM+bnDQ==}
-
micro-api-client@3.3.0:
resolution: {integrity: sha512-y0y6CUB9RLVsy3kfgayU28746QrNMpSm9O/AYGNsBgOkJr/X/Jk0VLGoO8Ude7Bpa8adywzF+MzXNZRFRsNPhg==}
@@ -28930,78 +27950,33 @@ packages:
micromark-core-commonmark@2.0.2:
resolution: {integrity: sha512-FKjQKbxd1cibWMM1P9N+H8TwlgGgSkWZMmfuVucLCHaYqeSvJ0hFeHsIa65pA2nYbes0f8LDHPMrd9X7Ujxg9w==}
- micromark-extension-frontmatter@2.0.0:
- resolution: {integrity: sha512-C4AkuM3dA58cgZha7zVnuVxBhDsbttIMiytjgsM2XbHAB2faRVaHRle40558FBN+DJcrLNCoqG5mlrpdU4cRtg==}
-
micromark-extension-gfm-autolink-literal@0.5.7:
resolution: {integrity: sha512-ePiDGH0/lhcngCe8FtH4ARFoxKTUelMp4L7Gg2pujYD5CSMb9PbblnyL+AAMud/SNMyusbS2XDSiPIRcQoNFAw==}
- micromark-extension-gfm-autolink-literal@2.1.0:
- resolution: {integrity: sha512-oOg7knzhicgQ3t4QCjCWgTmfNhvQbDDnJeVu9v81r7NltNCVmhPy1fJRX27pISafdjL+SVc4d3l48Gb6pbRypw==}
-
- micromark-extension-gfm-footnote@2.1.0:
- resolution: {integrity: sha512-/yPhxI1ntnDNsiHtzLKYnE3vf9JZ6cAisqVDauhp4CEHxlb4uoOTxOCJ+9s51bIB8U1N1FJ1RXOKTIlD5B/gqw==}
-
micromark-extension-gfm-strikethrough@0.6.5:
resolution: {integrity: sha512-PpOKlgokpQRwUesRwWEp+fHjGGkZEejj83k9gU5iXCbDG+XBA92BqnRKYJdfqfkrRcZRgGuPuXb7DaK/DmxOhw==}
- micromark-extension-gfm-strikethrough@2.1.0:
- resolution: {integrity: sha512-ADVjpOOkjz1hhkZLlBiYA9cR2Anf8F4HqZUO6e5eDcPQd0Txw5fxLzzxnEkSkfnD0wziSGiv7sYhk/ktvbf1uw==}
-
micromark-extension-gfm-table@0.4.3:
resolution: {integrity: sha512-hVGvESPq0fk6ALWtomcwmgLvH8ZSVpcPjzi0AjPclB9FsVRgMtGZkUcpE0zgjOCFAznKepF4z3hX8z6e3HODdA==}
- micromark-extension-gfm-table@2.1.0:
- resolution: {integrity: sha512-Ub2ncQv+fwD70/l4ou27b4YzfNaCJOvyX4HxXU15m7mpYY+rjuWzsLIPZHJL253Z643RpbcP1oeIJlQ/SKW67g==}
-
micromark-extension-gfm-tagfilter@0.3.0:
resolution: {integrity: sha512-9GU0xBatryXifL//FJH+tAZ6i240xQuFrSL7mYi8f4oZSbc+NvXjkrHemeYP0+L4ZUT+Ptz3b95zhUZnMtoi/Q==}
- micromark-extension-gfm-tagfilter@2.0.0:
- resolution: {integrity: sha512-xHlTOmuCSotIA8TW1mDIM6X2O1SiX5P9IuDtqGonFhEK0qgRI4yeC6vMxEV2dgyr2TiD+2PQ10o+cOhdVAcwfg==}
-
micromark-extension-gfm-task-list-item@0.3.3:
resolution: {integrity: sha512-0zvM5iSLKrc/NQl84pZSjGo66aTGd57C1idmlWmE87lkMcXrTxg1uXa/nXomxJytoje9trP0NDLvw4bZ/Z/XCQ==}
- micromark-extension-gfm-task-list-item@2.1.0:
- resolution: {integrity: sha512-qIBZhqxqI6fjLDYFTBIa4eivDMnP+OZqsNwmQ3xNLE4Cxwc+zfQEfbs6tzAo2Hjq+bh6q5F+Z8/cksrLFYWQQw==}
-
micromark-extension-gfm@0.3.3:
resolution: {integrity: sha512-oVN4zv5/tAIA+l3GbMi7lWeYpJ14oQyJ3uEim20ktYFAcfX1x3LNlFGGlmrZHt7u9YlKExmyJdDGaTt6cMSR/A==}
- micromark-extension-gfm@3.0.0:
- resolution: {integrity: sha512-vsKArQsicm7t0z2GugkCKtZehqUm31oeGBV/KVSorWSy8ZlNAv7ytjFhvaryUiCUJYqs+NoE6AFhpQvBTM6Q4w==}
-
micromark-extension-math@0.1.2:
resolution: {integrity: sha512-ZJXsT2eVPM8VTmcw0CPSDeyonOn9SziGK3Z+nkf9Vb6xMPeU+4JMEnO6vzDL10562Favw8Vste74f54rxJ/i6Q==}
- micromark-extension-math@3.1.0:
- resolution: {integrity: sha512-lvEqd+fHjATVs+2v/8kg9i5Q0AP2k85H0WUOwpIVvUML8BapsMvh1XAogmQjOCsLpoKRCVQqEkQBB3NhVBcsOg==}
-
- micromark-extension-mdx-expression@3.0.0:
- resolution: {integrity: sha512-sI0nwhUDz97xyzqJAbHQhp5TfaxEvZZZ2JDqUo+7NvyIYG6BZ5CPPqj2ogUoPJlmXHBnyZUzISg9+oUmU6tUjQ==}
-
- micromark-extension-mdx-jsx@3.0.1:
- resolution: {integrity: sha512-vNuFb9czP8QCtAQcEJn0UJQJZA8Dk6DXKBqx+bg/w0WGuSxDxNr7hErW89tHUY31dUW4NqEOWwmEUNhjTFmHkg==}
-
- micromark-extension-mdx-md@2.0.0:
- resolution: {integrity: sha512-EpAiszsB3blw4Rpba7xTOUptcFeBFi+6PY8VnJ2hhimH+vCQDirWgsMpz7w1XcZE7LVrSAUGb9VJpG9ghlYvYQ==}
-
- micromark-extension-mdxjs-esm@3.0.0:
- resolution: {integrity: sha512-DJFl4ZqkErRpq/dAPyeWp15tGrcrrJho1hKK5uBS70BCtfrIFg81sqcTVu3Ta+KD1Tk5vAtBNElWxtAa+m8K9A==}
-
- micromark-extension-mdxjs@3.0.0:
- resolution: {integrity: sha512-A873fJfhnJ2siZyUrJ31l34Uqwy4xIFmvPY1oj+Ean5PHcPBYzEsvqvWGaWcfEIr11O5Dlw3p2y0tZWpKHDejQ==}
-
micromark-factory-destination@2.0.1:
resolution: {integrity: sha512-Xe6rDdJlkmbFRExpTOmRj9N3MaWmbAgdpSrBQvCFqhezUn4AHqJHbaEnfbVYYiexVSs//tqOdY/DxhjdCiJnIA==}
micromark-factory-label@2.0.1:
resolution: {integrity: sha512-VFMekyQExqIW7xIChcXn4ok29YE3rnuyveW3wZQWWqF4Nv9Wk5rgJ99KzPvHjkmPXF93FXIbBp6YdW3t71/7Vg==}
- micromark-factory-mdx-expression@2.0.2:
- resolution: {integrity: sha512-5E5I2pFzJyg2CtemqAbcyCktpHXuJbABnsb32wX2U8IQKhhVFBqkcZR5LRm1WVoFqa4kTueZK4abep7wdo9nrw==}
-
micromark-factory-space@2.0.1:
resolution: {integrity: sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg==}
@@ -29032,9 +28007,6 @@ packages:
micromark-util-encode@2.0.1:
resolution: {integrity: sha512-c3cVx2y4KqUnwopcO9b/SCdo2O67LwJJ/UyqGfbigahfegL9myoEFoDYZgkT7f36T0bLrM9hZTAaAyH+PCAXjw==}
- micromark-util-events-to-acorn@2.0.2:
- resolution: {integrity: sha512-Fk+xmBrOv9QZnEDguL9OI9/NQQp6Hz4FuQ4YmCb/5V7+9eAh1s6AYSvL20kHkD67YIg7EpE54TiSlcsf3vyZgA==}
-
micromark-util-html-tag-name@2.0.1:
resolution: {integrity: sha512-2cNEiYDhCWKI+Gs9T0Tiysk136SnR13hhO8yW6BGNyhOC4qYFnwF1nKfD3HFAIXA5c45RrIG1ub11GiXeYd1xA==}
@@ -29195,9 +28167,6 @@ packages:
mitt@3.0.1:
resolution: {integrity: sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw==}
- mj-context-menu@0.6.1:
- resolution: {integrity: sha512-7NO5s6n10TIV96d4g2uDpG7ZDpIhMh0QNfGdJw/W47JswFcosz457wqz/b5sAKvl12sxINGFCn80NZHKwxQEXA==}
-
mkdirp-classic@0.5.3:
resolution: {integrity: sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==}
@@ -29416,40 +28385,9 @@ packages:
resolution: {integrity: sha512-dBpDMdxv9Irdq66304OLfEmQ9tbNRFnFTuZiLo+bD+r332bBmMJ8GBLXklIXXgxd3+v9+KUnZaUR5PJMa75Gsg==}
engines: {node: '>= 0.4.0'}
- next-sitemap@4.2.3:
- resolution: {integrity: sha512-vjdCxeDuWDzldhCnyFCQipw5bfpl4HmZA7uoo3GAaYGjGgfL4Cxb1CiztPuWGmS+auYs7/8OekRS8C2cjdAsjQ==}
- engines: {node: '>=14.18'}
- hasBin: true
- peerDependencies:
- next: '*'
-
- next-themes@0.4.3:
- resolution: {integrity: sha512-nG84VPkTdUHR2YeD89YchvV4I9RbiMAql3GiLEQlPvq1ioaqPaIReK+yMRdg/zgiXws620qS1rU30TiWmmG9lA==}
- peerDependencies:
- react: ^16.8 || ^17 || ^18 || ^19 || ^19.0.0-rc
- react-dom: ^16.8 || ^17 || ^18 || ^19 || ^19.0.0-rc
-
next-tick@1.1.0:
resolution: {integrity: sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ==}
- next@14.2.19:
- resolution: {integrity: sha512-YTOWj8MDofNLfSeHhDgFJK6koeMOrbzEZIL2SQ7yeSA8WWGgfoajI4V21Wn2bqVtM7D3QYWSIK/Sdvqi0ptfQQ==}
- engines: {node: '>=18.17.0'}
- hasBin: true
- peerDependencies:
- '@opentelemetry/api': ^1.1.0
- '@playwright/test': ^1.41.2
- react: ^18.2.0
- react-dom: ^18.2.0
- sass: ^1.3.0
- peerDependenciesMeta:
- '@opentelemetry/api':
- optional: true
- '@playwright/test':
- optional: true
- sass:
- optional: true
-
next@15.0.3:
resolution: {integrity: sha512-ontCbCRKJUIoivAdGB34yCaOcPgYXr9AAkV/IwqFfWWTXEPUgLYkSkqBhIk9KK7gGmgjc64B+RdoeIDM13Irnw==}
engines: {node: ^18.18.0 || ^19.8.0 || >= 20.0.0}
@@ -29471,28 +28409,9 @@ packages:
sass:
optional: true
- nextra-theme-docs@3.3.1:
- resolution: {integrity: sha512-P305m2UcW2IDyQhjrcAu0qpdPArikofinABslUCAyixYShsmcdDRUhIMd4QBHYru4gQuVjGWX9PhWZZCbNvzDQ==}
- peerDependencies:
- next: '>=13'
- nextra: 3.3.1
- react: '>=18'
- react-dom: '>=18'
-
- nextra@3.3.1:
- resolution: {integrity: sha512-jiwj+LfUPHHeAxJAEqFuglxnbjFgzAOnDWFsjv7iv3BWiX8OksDwd3I2Sv3j2zba00iIBDEPdNeylfzTtTLZVg==}
- engines: {node: '>=18'}
- peerDependencies:
- next: '>=13'
- react: '>=18'
- react-dom: '>=18'
-
nice-try@1.0.5:
resolution: {integrity: sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==}
- nlcst-to-string@4.0.0:
- resolution: {integrity: sha512-YKLBCcUYKAg0FNlOBT6aI91qFmSiFKiluk655WzPF+DDMA02qIyy8uiRqI8QXtcFpEvll12LpL5MXqEmAZ+dcA==}
-
node-abort-controller@3.1.1:
resolution: {integrity: sha512-AGK2yQKIjRuqnc6VkX2Xj5d+QW8xZ87pa1UK6yA6ouUyuxfHuMP6umE5QK7UmTeOAymo+Zx1Fxiuw9rVx8taHQ==}
@@ -29640,10 +28559,6 @@ packages:
resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==}
engines: {node: '>=0.10.0'}
- normalize-range@0.1.2:
- resolution: {integrity: sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==}
- engines: {node: '>=0.10.0'}
-
normalize-url@6.1.0:
resolution: {integrity: sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==}
engines: {node: '>=10'}
@@ -29672,10 +28587,6 @@ packages:
resolution: {integrity: sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==}
engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
- npm-to-yarn@3.0.0:
- resolution: {integrity: sha512-76YnmsbfrYp0tMsWxM0RNX0Vs+x8JxpJGu6B/jDn4lW8+laiTcKmKi9MeMh4UikO4RkJ1oqURoDy9bXJmMXS6A==}
- engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
-
npmlog@4.1.2:
resolution: {integrity: sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==}
deprecated: This package is no longer supported.
@@ -29836,9 +28747,6 @@ packages:
peerDependencies:
node-fetch: ^2.6.1
- oniguruma-to-es@0.7.0:
- resolution: {integrity: sha512-HRaRh09cE0gRS3+wi2zxekB+I5L8C/gN60S+vb11eADHUaB/q4u8wGGOX3GvwvitG8ixaeycZfeoyruKQzUgNg==}
-
open@10.1.2:
resolution: {integrity: sha512-cxN6aIDPz6rm8hbebcP7vrQNhvRcveZoJU72Y7vskh4oIm+BZwBECnx5nTmrlres1Qapvx27Qo1Auukpf8PKXw==}
engines: {node: '>=18'}
@@ -29968,10 +28876,6 @@ packages:
resolution: {integrity: sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==}
engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
- p-limit@6.2.0:
- resolution: {integrity: sha512-kuUqqHNUqoIWp/c467RI4X6mmyuojY5jGutNU0wVTmEOOfcuwLqyMVoAi9MKi2Ak+5i9+nhmrK4ufZE8069kHA==}
- engines: {node: '>=18'}
-
p-locate@4.1.0:
resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==}
engines: {node: '>=8'}
@@ -30062,9 +28966,6 @@ packages:
package-lock-only@0.0.4:
resolution: {integrity: sha512-fV1YHeTMWH5LKmdVqfWskm2/SG0iF2IrxJn3ziaPVx9CnpecGJzt8xXtLV+CYINENZwPFMtbxO5qupz0asNz1A==}
- package-manager-detector@0.2.7:
- resolution: {integrity: sha512-g4+387DXDKlZzHkP+9FLt8yKj8+/3tOkPv7DVTJGGRm00RkEWgqbFstX1mXJ4M0VDYhUqsTOiISqNOJnhAu3PQ==}
-
package@1.0.1:
resolution: {integrity: sha512-g6xZR6CO7okjie83sIRJodgGvaXqymfE5GLhN8N2TmZGShmHc/V23hO/vWbdnuy3D81As3pfovw72gGi42l9qA==}
engines: {node: '>= 0.6.0'}
@@ -30118,9 +29019,6 @@ packages:
resolution: {integrity: sha512-ybiGyvspI+fAoRQbIPRddCcSTV9/LsJbf0e/S85VLowVGzRmokfneg2kwVW/KU5rOXrPSbF1qAKPMgNTqqROQQ==}
engines: {node: '>=18'}
- parse-latin@7.0.0:
- resolution: {integrity: sha512-mhHgobPPua5kZ98EF4HWiH167JWBfl4pvAIXXdbaVohtK7a6YBOy56kvhCqduqyo/f3yrHFWmqmiMg/BkBkYYQ==}
-
parse-link-header@1.0.1:
resolution: {integrity: sha512-Z0gpfHmwCIKDr5rRzjypL+p93aHVWO7e+0rFcUl9E3sC67njjs+xHFenuboSXZGlvYtmQqRzRaE3iFpTUnLmFQ==}
@@ -30131,16 +29029,10 @@ packages:
resolution: {integrity: sha512-TXfryirbmq34y8QBwgqCVLi+8oA3oWx2eAnSn62ITyEhEYaWRlVZ2DvMM9eZbMs/RfxPu/PK/aBLyGj4IrqMHw==}
engines: {node: '>=18'}
- parse-numeric-range@1.3.0:
- resolution: {integrity: sha512-twN+njEipszzlMJd4ONUYgSfZPDxgHhT9Ahed5uTigpQn90FggW4SA/AIPq/6a149fTbE9qBEcSwE3FAEp6wQQ==}
-
parse-passwd@1.0.0:
resolution: {integrity: sha512-1Y1A//QUXEZK7YKz+rD9WydcE1+EuPr6ZBgKecAB8tmoW6UFv0NREVJe1p+jRxtThkcbbKkfwIbWJe/IeE6m2Q==}
engines: {node: '>=0.10.0'}
- parse5@7.2.1:
- resolution: {integrity: sha512-BuBYQYlv1ckiPdQi/ohiivi9Sagc9JG+Ozs0r7b/0iK3sKmrb0b9FdWdBbOdx6hBCM/F9Ir82ofnBhtZOjCRPQ==}
-
parseley@0.12.1:
resolution: {integrity: sha512-e6qHKe3a9HWr0oMRVDTRhKce+bRO8VGQR3NyVwcjwrbhMmFCX9KszEV35+rn4AdilFAq9VPxP/Fe1wC9Qjd2lw==}
@@ -30154,9 +29046,6 @@ packages:
path-browserify@1.0.1:
resolution: {integrity: sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==}
- path-data-parser@0.1.0:
- resolution: {integrity: sha512-NOnmBpt5Y2RWbuv0LMzsayp3lVylAHLPUTut412ZA3l+C4uw4ZVkQbjShYCQ8TCpUMdPapr4YjUqLYD6v68j+w==}
-
path-exists@3.0.0:
resolution: {integrity: sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==}
engines: {node: '>=4'}
@@ -30305,15 +29194,6 @@ packages:
engines: {node: '>=0.10'}
hasBin: true
- pidtree@0.6.0:
- resolution: {integrity: sha512-eG2dWTVw5bzqGRztnHExczNxt5VGsE6OwTeCG3fdUf9KBsZzO3R5OIIIzWR+iZA0NtZ+RDVdaoE2dK1cn6jH4g==}
- engines: {node: '>=0.10'}
- hasBin: true
-
- pify@2.3.0:
- resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==}
- engines: {node: '>=0.10.0'}
-
pify@4.0.1:
resolution: {integrity: sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==}
engines: {node: '>=6'}
@@ -30382,12 +29262,6 @@ packages:
engines: {node: '>=18.12'}
hasBin: true
- points-on-curve@0.2.0:
- resolution: {integrity: sha512-0mYKnYYe9ZcqMCWhUjItv/oHjvgEsfKvnUTg8sAtnHr3GVy7rGkXCb6d5cSyqrWqL4k81b9CPg3urd+T7aop3A==}
-
- points-on-path@0.2.1:
- resolution: {integrity: sha512-25ClnWWuw7JbWZcgqY/gJ4FQWadKxGWk+3kR/7kD0tCaDtPPMj7oHu2ToLaVhfpnHrZzYby2w6tUA0eOIuUg8g==}
-
pop-iterate@1.0.1:
resolution: {integrity: sha512-HRCx4+KJE30JhX84wBN4+vja9bNfysxg1y28l0DuJmkoaICiv2ZSilKddbS48pq50P8d2erAhqDLbp47yv3MbQ==}
@@ -30395,30 +29269,6 @@ packages:
resolution: {integrity: sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==}
engines: {node: '>= 0.4'}
- postcss-import@15.1.0:
- resolution: {integrity: sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==}
- engines: {node: '>=14.0.0'}
- peerDependencies:
- postcss: ^8.0.0
-
- postcss-js@4.0.1:
- resolution: {integrity: sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==}
- engines: {node: ^12 || ^14 || >= 16}
- peerDependencies:
- postcss: ^8.4.21
-
- postcss-load-config@4.0.2:
- resolution: {integrity: sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==}
- engines: {node: '>= 14'}
- peerDependencies:
- postcss: '>=8.0.9'
- ts-node: '>=9.0.0'
- peerDependenciesMeta:
- postcss:
- optional: true
- ts-node:
- optional: true
-
postcss-load-config@6.0.1:
resolution: {integrity: sha512-oPtTM4oerL+UXmx+93ytZVN82RrlY/wPUV8IeDxFrzIjXOLF1pN+EmKPLbubvKHT2HC20xXsCAH2Z+CKV6Oz/g==}
engines: {node: '>= 18'}
@@ -30437,12 +29287,6 @@ packages:
yaml:
optional: true
- postcss-nested@6.2.0:
- resolution: {integrity: sha512-HQbt28KulC5AJzG+cZtj9kvKB93CFCdLvog1WFLf1D+xmMvPGlBstkpTEZfK5+AN9hfJocyBFCNiqyS48bpgzQ==}
- engines: {node: '>=12.0'}
- peerDependencies:
- postcss: ^8.2.14
-
postcss-resolve-nested-selector@0.1.6:
resolution: {integrity: sha512-0sglIs9Wmkzbr8lQwEyIzlDOOC9bGmfVKcJTaxv3vMmd3uo4o4DerC3En0bnmgceeql9BfC8hRkp7cg0fjdVqw==}
@@ -30548,10 +29392,6 @@ packages:
engines: {node: '>=0.8'}
hasBin: true
- prismjs@1.30.0:
- resolution: {integrity: sha512-DEvV2ZF2r2/63V+tK8hQvrR2ZGn10srHbXviTlcv7Kpzw8jWiNTqbVgjO3IY8RxrrOUF8VPMQQFysYYYv0YZxw==}
- engines: {node: '>=6'}
-
process-nextick-args@2.0.1:
resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==}
@@ -30838,12 +29678,6 @@ packages:
'@types/react': '>=18'
react: '>=18'
- react-medium-image-zoom@5.2.12:
- resolution: {integrity: sha512-BbQ9jLBFxu6z+viH5tzQzAGqHOJQoYUM7iT1KUkamWKOO6vR1pC33os7LGLrHvOcyySMw74rUdoUCXFdeglwCQ==}
- peerDependencies:
- react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0
- react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0
-
react-select@5.8.3:
resolution: {integrity: sha512-lVswnIq8/iTj1db7XCG74M/3fbGB6ZaluCzvwPGT5ZOjCdL/k0CLWhEK0vCBLuU5bHTEf6Gj8jtSvi+3v+tO1w==}
peerDependencies:
@@ -30864,9 +29698,6 @@ packages:
resolution: {integrity: sha512-klH7xkT71SxRCx4hb1hly5FJB21Hz0ACyxbXYAECEqssUjtJeFUAaI2U1DgJAzkGEnvEm3DkxuBchMC/9K4ipg==}
engines: {node: '>=0.10.0'}
- read-cache@1.0.0:
- resolution: {integrity: sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==}
-
read-package-up@11.0.0:
resolution: {integrity: sha512-MbgfoNPANMdb4oRBNg5eqLbB2t2r+o5Ua1pNt8BqGp4I0FJZhuVSOj3PaBPni4azWuSzEdNn2evevzVmEk1ohQ==}
engines: {node: '>=18'}
@@ -30911,9 +29742,6 @@ packages:
resolution: {integrity: sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==}
engines: {node: '>= 14.18.0'}
- reading-time@1.5.0:
- resolution: {integrity: sha512-onYyVhBNr4CmAxFsKS7bz+uTLRakypIe4R+5A824vBSkQy/hB3fZepoVEf8OVAxzLvK+H/jm9TzpI3ETSm64Kg==}
-
real-require@0.2.0:
resolution: {integrity: sha512-57frrGM/OCTLqLOAh0mhVA9VBMHd+9U7Zb2THMGdBUoZVOtGbJzjxsYGDJ3A9AYYCP4hn6y1TVbaOfzWtm5GFg==}
engines: {node: '>= 12.13.0'}
@@ -30922,18 +29750,6 @@ packages:
resolution: {integrity: sha512-Hx/BGIbwj+Des3+xy5uAtAbdCyqK9y9wbBcDFDYanLS9JnMqf7OeF87HQwUimE87OEc72mr6tkKUKMBBL+hF9Q==}
engines: {node: '>= 4'}
- recma-build-jsx@1.0.0:
- resolution: {integrity: sha512-8GtdyqaBcDfva+GUKDr3nev3VpKAhup1+RvkMvUxURHpW7QyIvk9F5wz7Vzo06CEMSilw6uArgRqhpiUcWp8ew==}
-
- recma-jsx@1.0.0:
- resolution: {integrity: sha512-5vwkv65qWwYxg+Atz95acp8DMu1JDSqdGkA2Of1j6rCreyFUE/gp15fC8MnGEuG1W68UKjM6x6+YTWIh7hZM/Q==}
-
- recma-parse@1.0.0:
- resolution: {integrity: sha512-OYLsIGBB5Y5wjnSnQW6t3Xg7q3fQ7FWbw/vcXtORTnyaSFscOtABg+7Pnz6YZ6c27fG1/aN8CjfwoUEUIdwqWQ==}
-
- recma-stringify@1.0.0:
- resolution: {integrity: sha512-cjwII1MdIIVloKvC9ErQ+OgAtwHBmcZ0Bg4ciz78FtbT8In39aAYbaA7zvxQ61xVMSPE8WxhLwLbhif4Js2C+g==}
-
recurly@3.30.0:
resolution: {integrity: sha512-SVW5pke3MLe+QkIx3Y+NJD8UfR30eBrM90Vkrv6o3FvDPZBvSNpSadTay1SzLo+SmM31rBSeqELyX4zBDTd/Nw==}
@@ -30970,15 +29786,6 @@ packages:
regenerator-transform@0.15.2:
resolution: {integrity: sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==}
- regex-recursion@4.3.0:
- resolution: {integrity: sha512-5LcLnizwjcQ2ALfOj95MjcatxyqF5RPySx9yT+PaXu3Gox2vyAtLDjHB8NTJLtMGkvyau6nI3CfpwFCjPUIs/A==}
-
- regex-utilities@2.3.0:
- resolution: {integrity: sha512-8VhliFJAWRaUiVvREIiW2NXXTmHs4vMNnSzuJVhscgmGav3g9VDxLrQndI3dZZVVdp0ZO/5v0xmX516/7M9cng==}
-
- regex@5.0.2:
- resolution: {integrity: sha512-/pczGbKIQgfTMRV0XjABvc5RzLqQmwqxLHdQao2RTXPk+pmTXB2P0IaUHYdYyk412YLwUIkaeMd5T+RzVgTqnQ==}
-
regexp-tree@0.1.27:
resolution: {integrity: sha512-iETxpjK6YoRWJG5o6hXLwvjYAoW+FEZn9os0PD/b6AP6xQwsa/Y7lCVgIixBbUPMfhu+i2LtdeAqVTgGlQarfA==}
hasBin: true
@@ -31006,36 +29813,12 @@ packages:
resolution: {integrity: sha512-cnE+y8bz4NhMjISKbgeVJtqNbtf5QpjZP+Bslo+UqkIt9QPnX9q095eiRRASJG1/tz6dlNr6Z5NsBiWYokp6EQ==}
hasBin: true
- rehype-katex@7.0.1:
- resolution: {integrity: sha512-OiM2wrZ/wuhKkigASodFoo8wimG3H12LWQaH8qSPVJn9apWKFSH3YOCtbKpBorTVw/eI7cuT21XBbvwEswbIOA==}
-
- rehype-parse@9.0.1:
- resolution: {integrity: sha512-ksCzCD0Fgfh7trPDxr2rSylbwq9iYDkSn8TCDmEJ49ljEUBxDVCzCHv7QNzZOfODanX4+bWQ4WZqLCRWYLfhag==}
-
- rehype-pretty-code@0.14.0:
- resolution: {integrity: sha512-hBeKF/Wkkf3zyUS8lal9RCUuhypDWLQc+h9UrP9Pav25FUm/AQAVh4m5gdvJxh4Oz+U+xKvdsV01p1LdvsZTiQ==}
- engines: {node: '>=18'}
- peerDependencies:
- shiki: ^1.3.0
-
- rehype-raw@7.0.0:
- resolution: {integrity: sha512-/aE8hCfKlQeA8LmyeyQvQF3eBiLRGNlfBJEvWH7ivp9sBqs7TNqBL5X3v157rM4IFETqDnIOO+z5M/biZbo9Ww==}
-
- rehype-recma@1.0.0:
- resolution: {integrity: sha512-lqA4rGUf1JmacCNWWZx0Wv1dHqMwxzsDWYMTowuplHF3xH0N/MmrZ/G3BDZnzAkRmxDadujCjaKM2hqYdCBOGw==}
-
reinterval@1.1.0:
resolution: {integrity: sha512-QIRet3SYrGp0HUHO88jVskiG6seqUGC5iAG7AwI/BV4ypGcuqk9Du6YQBUOUqm9c8pw1eyLoIaONifRua1lsEQ==}
- remark-frontmatter@5.0.0:
- resolution: {integrity: sha512-XTFYvNASMe5iPN0719nPrdItC9aU0ssC4v14mH1BCi1u0n1gAocqcujWUrByftZTbLhRtiKRyjYTSIOcr69UVQ==}
-
remark-gfm@1.0.0:
resolution: {integrity: sha512-KfexHJCiqvrdBZVbQ6RopMZGwaXz6wFJEfByIuEwGf0arvITHjiKKZ1dpXujjH9KZdm1//XJQwgfnJ3lmXaDPA==}
- remark-gfm@4.0.0:
- resolution: {integrity: sha512-U92vJgBPkbw4Zfu/IiW2oTZLSL3Zpv+uI7My2eq8JxKgqraFdU8YUGicEJCEgSbeaG+QDFqIcwwfMTOEelPxuA==}
-
remark-lint-blockquote-indentation@4.0.0:
resolution: {integrity: sha512-hdUvn+KsJbBKpY9jLY01PmfpJ/WGhLu9GJMXQGU8ADXJc+F5DWSgKAr6GQ1IUKqvGYdEML/KZ61WomWFUuecVA==}
@@ -31081,12 +29864,6 @@ packages:
remark-math@4.0.0:
resolution: {integrity: sha512-lH7SoQenXtQrvL0bm+mjZbvOk//YWNuyR+MxV18Qyv8rgFmMEGNuB0TSCQDkoDaiJ40FCnG8lxErc/zhcedYbw==}
- remark-math@6.0.0:
- resolution: {integrity: sha512-MMqgnP74Igy+S3WwnhQ7kqGlEerTETXMvJhrUzDikVZ2/uogJCb+WHUg97hK9/jcfc0dkD73s3LN8zU49cTEtA==}
-
- remark-mdx@3.1.0:
- resolution: {integrity: sha512-Ngl/H3YXyBV9RcRNdlYsZujAmhsxwzxpDzpDEhFBVAGthS4GDgnctpDjgFl/ULx5UEDzqtW1cyBSNKqYYrqLBA==}
-
remark-message-control@8.0.0:
resolution: {integrity: sha512-brpzOO+jdyE/mLqvqqvbogmhGxKygjpCUCG/PwSCU43+JZQ+RM+sSzkCWBcYvgF3KIAVNIoPsvXjBkzO7EdsYQ==}
@@ -31099,16 +29876,9 @@ packages:
remark-preset-lint-consistent@6.0.0:
resolution: {integrity: sha512-W3fwxajdietwjnFyTH5x2le63hxWGVOXxIs7KjRqU+5wkkN6ZQyuwPeeomblmS9wQr50fkidhXNHNDyCXtqgxQ==}
- remark-reading-time@2.0.1:
- resolution: {integrity: sha512-fy4BKy9SRhtYbEHvp6AItbRTnrhiDGbqLQTSYVbQPGuRCncU1ubSsh9p/W5QZSxtYcUXv8KGL0xBgPLyNJA1xw==}
-
remark-rehype@11.1.1:
resolution: {integrity: sha512-g/osARvjkBXb6Wo0XvAeXQohVta8i84ACbenPpoSsxTOQH/Ae0/RGP4WZgnMH5pMLpsj4FG7OHmcIcXxpza8eQ==}
- remark-smartypants@3.0.2:
- resolution: {integrity: sha512-ILTWeOriIluwEvPjv67v7Blgrcx+LZOkAUVtKI3putuhlZm84FnqDORNXPPm+HY3NdZOMhyDwZ1E+eZB/Df5dA==}
- engines: {node: '>=16.0.0'}
-
remark-stringify@11.0.0:
resolution: {integrity: sha512-1OSmLd3awB/t8qdoEOMazZkNsfVTeY4fTsgzcQFdXNq8ToTN4ZGwrMnlda4K6smTFKD+GRV6O48i6Z4iKgPPpw==}
@@ -31240,18 +30010,6 @@ packages:
resolution: {integrity: sha512-0f4Memo5QP7WQyUEAYUO3esD/XjOc3Zjjg5CPsAq1p8sIu0XPeMbHJemKA0BO7tV0X7+A0FoEpbmHXWxPyD3wQ==}
engines: {node: '>=10'}
- retext-latin@4.0.0:
- resolution: {integrity: sha512-hv9woG7Fy0M9IlRQloq/N6atV82NxLGveq+3H2WOi79dtIYWN8OaxogDm77f8YnVXJL2VD3bbqowu5E3EMhBYA==}
-
- retext-smartypants@6.2.0:
- resolution: {integrity: sha512-kk0jOU7+zGv//kfjXEBjdIryL1Acl4i9XNkHxtM7Tm5lFiCog576fjNC9hjoR7LTKQ0DsPWy09JummSsH1uqfQ==}
-
- retext-stringify@4.0.0:
- resolution: {integrity: sha512-rtfN/0o8kL1e+78+uxPTqu1Klt0yPzKuQ2BfWwwfgIUSayyzxpM1PJzkKt4V8803uB9qSy32MvI7Xep9khTpiA==}
-
- retext@9.0.0:
- resolution: {integrity: sha512-sbMDcpHCNjvlheSgMfEcVrZko3cDzdbe1x/e7G66dFp0Ff7Mldvi2uv6JkJQzdRcvLYE8CA8Oe8siQx8ZOgTcA==}
-
retry-request@5.0.2:
resolution: {integrity: sha512-wfI3pk7EE80lCIXprqh7ym48IHYdwmAAzESdbU8Q9l7pnRCk9LEhpbOTNKjz6FARLm/Bl5m+4F0ABxOkYUujSQ==}
engines: {node: '>=12'}
@@ -31297,9 +30055,6 @@ packages:
ripemd160@2.0.2:
resolution: {integrity: sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==}
- robust-predicates@3.0.2:
- resolution: {integrity: sha512-IXgzBWvWQwE6PrDI05OvmXUIruQTcoMDzRsOd5CDvHCVLcLHMTSYvOK5Cm46kWqlV3yAbuSpBZdJ5oP5OUoStg==}
-
rolldown-plugin-dts@0.13.12:
resolution: {integrity: sha512-4QdQQfMOWNDLhmvoG3USAUpCm75dgwWk3IrK6SV9Fw2U5uwcSE7oQTqEcmsUGEBsNxZ58+gtM1oX38MMf0g5PA==}
engines: {node: '>=20.18.0'}
@@ -31333,9 +30088,6 @@ packages:
rootpath@0.1.2:
resolution: {integrity: sha512-R3wLbuAYejpxQjL/SjXo1Cjv4wcJECnMRT/FlcCfTwCBhaji9rWaRCoVEQ1SPiTJ4kKK+yh+bZLAV7SCafoDDw==}
- roughjs@4.6.6:
- resolution: {integrity: sha512-ZUz/69+SYpFN/g/lUlo2FXcIjRkSu3nDarreVdGGndHEBJ6cXPdKguS8JGxwj5HA5xIbVKSmLgr5b3AWxtRfvQ==}
-
router@2.2.0:
resolution: {integrity: sha512-nLTrUKm2UyiL7rlhapu/Zl45FwNgkZGaCpZbIHajDYgwlJCOzLSk+cIPAnsEqV955GjILJnKbdQC1nVPz+gAYQ==}
engines: {node: '>= 18'}
@@ -31359,9 +30111,6 @@ packages:
run-parallel@1.2.0:
resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==}
- rw@1.3.3:
- resolution: {integrity: sha512-PdhdWy89SiZogBLaw42zdeqtRJ//zFd2PgQavcICDUgJT5oW10QCRKbJ6bg4r0/UY2M6BWd5tkxuGFRvCkgfHQ==}
-
rxjs@6.6.7:
resolution: {integrity: sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==}
engines: {npm: '>=2.0.0'}
@@ -31426,16 +30175,6 @@ packages:
scmp@2.1.0:
resolution: {integrity: sha512-o/mRQGk9Rcer/jEEw/yw4mwo3EU/NvYvp577/Btqrym9Qy5/MdWGBqipbALgd2lrdWTJ5/gqDusxfnQBxOxT2Q==}
- scroll-into-view-if-needed@3.1.0:
- resolution: {integrity: sha512-49oNpRjWRvnU8NyGVmUaYG4jtTkNonFZI86MmGRDqBphEK2EXT9gdEUoQPZhuBM8yWHxCWbobltqYO5M4XrUvQ==}
-
- search-insights@2.17.3:
- resolution: {integrity: sha512-RQPdCYTa8A68uM2jwxoY842xDhvx3E5LFL1LxvxCNMev4o5mLuokczhzjAgGwUZBAmOKZknArSxLKmXtIi2AxQ==}
-
- section-matter@1.0.0:
- resolution: {integrity: sha512-vfD3pmTzGpufjScBh50YHKzEu2lxBWhVEHsNGoEXmCmn2hKGfeNLYMzCJpe8cD7gqX7TJluOVpBkAequ6dgMmA==}
- engines: {node: '>=4'}
-
secure-json-parse@2.7.0:
resolution: {integrity: sha512-6aU+Rwsezw7VR8/nyvKTx8QpWH9FrcYiXXlqC4z5d5XQBDRqtbfsRjnwGyqbi3gddNtWHuEk9OANUotL26qKUw==}
@@ -31569,9 +30308,6 @@ packages:
resolution: {integrity: sha512-AzqKpGKjrj7EM6rKVQEPpB288oCfnrEIuyoT9cyF4nmGa7V8Zk6f7RRqYisX8X9m+Q7bd632aZW4ky7EhbQztA==}
engines: {node: '>= 0.4'}
- shiki@1.24.0:
- resolution: {integrity: sha512-qIneep7QRwxRd5oiHb8jaRzH15V/S8F3saCXOdjwRLgozZJr5x2yeBhQtqkO3FSzQDwYEFAYuifg4oHjpDghrg==}
-
shopify-api-node@3.14.2:
resolution: {integrity: sha512-f+OTxMFZsZAQtBRV3wwPKg/8XoZ3q+kiw136TXZY178tcoJyUyK0GhJITAHIHl037ka0h46EE/9iSTomi++1jQ==}
engines: {node: '>=10.0.0'}
@@ -31765,10 +30501,6 @@ packages:
spdx-license-ids@3.0.20:
resolution: {integrity: sha512-jg25NiDV/1fLtSgEgyvVyDunvaNHbuwF9lfNV17gSmPFAlYzdfNBlLtLzXTevwkPj7DhGbmN9VnmJIgLnhvaBw==}
- speech-rule-engine@4.0.7:
- resolution: {integrity: sha512-sJrL3/wHzNwJRLBdf6CjJWIlxC04iYKkyXvYSVsWVOiC2DSkHmxsqOhEeMsBA9XK+CHuNcsdkbFDnoUfAsmp9g==}
- hasBin: true
-
split-on-first@1.1.0:
resolution: {integrity: sha512-43ZssAJaMusuKWL8sKUBQXHWOpq8d6CfN/u1p4gUzfJkM05C8rxTmYrkIPTXapZpORA6LkkzcUulJ8FqA7Uudw==}
engines: {node: '>=6'}
@@ -31994,10 +30726,6 @@ packages:
resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==}
engines: {node: '>=12'}
- strip-bom-string@1.0.0:
- resolution: {integrity: sha512-uCC2VHvQRYu+lMh4My/sFNmF2klFymLX1wHJeXnbEJERpV/ZsVuonzerjfrGpIGF7LBVa1O7i9kjiWvJiFck8g==}
- engines: {node: '>=0.10.0'}
-
strip-bom@3.0.0:
resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==}
engines: {node: '>=4'}
@@ -32054,25 +30782,9 @@ packages:
stubs@3.0.0:
resolution: {integrity: sha512-PdHt7hHUJKxvTCgbKX9C1V/ftOcjJQgz8BZwNfV5c4B6dcGqlpelTbJ999jBGZ2jYiPAwcX5dP6oBwVlBlUbxw==}
- style-to-object@0.4.4:
- resolution: {integrity: sha512-HYNoHZa2GorYNyqiCaBgsxvcJIn7OHq6inEga+E6Ke3m5JkoqpQbnFssk4jwe+K7AhGa2fcha4wSOf1Kn01dMg==}
-
style-to-object@1.0.8:
resolution: {integrity: sha512-xT47I/Eo0rwJmaXC4oilDGDWLohVhR6o/xAQcPQN8q6QBuZVL8qMYL85kLmST5cPjAorwvqIA4qXTRQoYHaL6g==}
- styled-jsx@5.1.1:
- resolution: {integrity: sha512-pW7uC1l4mBZ8ugbiZrcIsiIvVx1UmTfw7UkC3Um2tmfUq9Bhk8IiyEIPl6F8agHgjzku6j0xQEZbfA5uSgSaCw==}
- engines: {node: '>= 12.0.0'}
- peerDependencies:
- '@babel/core': '*'
- babel-plugin-macros: '*'
- react: '>= 16.8.0 || 17.x.x || ^18.0.0-0'
- peerDependenciesMeta:
- '@babel/core':
- optional: true
- babel-plugin-macros:
- optional: true
-
styled-jsx@5.1.6:
resolution: {integrity: sha512-qSVyDTeMotdvQYoHWLNGwRFJHC+i+ZvdBRYosOFgC+Wg1vx4frN2/RG/NA7SYqqvKNLf39P2LSRA2pu6n0XYZA==}
engines: {node: '>= 12.0.0'}
@@ -32113,9 +30825,6 @@ packages:
stylis@4.2.0:
resolution: {integrity: sha512-Orov6g6BB1sDfYgzWfTHDOxamtX1bE/zo104Dh9e6fqJ3PooipYyfJ0pUmrZO2wAvO8YbEyeFrkV91XTsGMSrw==}
- stylis@4.3.4:
- resolution: {integrity: sha512-osIBl6BGUmSfDkyH2mB7EFvCJntXDrLhKjHTRj/rK6xLH0yuPrHULDRQzKokSOD4VoorhtKpfcfW1GAntu8now==}
-
sucrase@3.35.0:
resolution: {integrity: sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==}
engines: {node: '>=16 || 14 >=14.17'}
@@ -32216,9 +30925,6 @@ packages:
resolution: {integrity: sha512-ulAk51I9UVUyJgxlv9M6lFot2WP3e7t8Kz9+IS6D4rVba1tR9kON+Ey69f+1R4Q8cd45Lod6a4IcJIxnzGc/zA==}
engines: {node: '>=18'}
- tabbable@6.2.0:
- resolution: {integrity: sha512-Cat63mxsVJlzYvN51JmVXIgNoUokrIaT2zLclCXjRd8boZ0004U4KCs/sToJ75C6sdlByWxpYnb5Boif1VSFew==}
-
table-layout@1.0.2:
resolution: {integrity: sha512-qd/R7n5rQTRFi+Zf2sk5XVVd9UQl6ZkduPFC3S7WEGJAmetDTjY3qPN50eSKzwuzEyQKy5TN2TiZdkIjos2L6A==}
engines: {node: '>=8.0.0'}
@@ -32227,11 +30933,6 @@ packages:
resolution: {integrity: sha512-w2sfv80nrAh2VCbqR5AK27wswXhqcck2AhfnNW76beQXskGZ1V12GwS//yYVa3d3fcvAip2OUnbDAjW2k3v9fA==}
engines: {node: '>=10.0.0'}
- tailwindcss@3.4.16:
- resolution: {integrity: sha512-TI4Cyx7gDiZ6r44ewaJmt0o6BrMCT5aK5e0rmJ/G9Xq3w7CX/5VXl/zIPEJZFUK5VEqwByyhqNPycPlvcK4ZNw==}
- engines: {node: '>=14.0.0'}
- hasBin: true
-
tapable@2.2.1:
resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==}
engines: {node: '>=6'}
@@ -32346,10 +31047,6 @@ packages:
title-case@3.0.3:
resolution: {integrity: sha512-e1zGYRvbffpcHIrnuqT0Dh+gEJtDaxDSoG4JAIpq4oDFyooziLBIiYQv0GBT4FUAnUop5uZ1hiIAj7oAF6sOCA==}
- title@4.0.1:
- resolution: {integrity: sha512-xRnPkJx9nvE5MF6LkB5e8QJjE2FW8269wTu/LQdf7zZqBgPly0QJPf/CWAo7srj5so4yXfoLEdCFgurlpi47zg==}
- hasBin: true
-
tlds@1.252.0:
resolution: {integrity: sha512-GA16+8HXvqtfEnw/DTcwB0UU354QE1n3+wh08oFjr6Znl7ZLAeUgYzCcK+/CCrOyE0vnHR8/pu3XXG3vDijXpQ==}
hasBin: true
@@ -32463,10 +31160,6 @@ packages:
peerDependencies:
typescript: '>=4.8.4'
- ts-dedent@2.2.0:
- resolution: {integrity: sha512-q5W7tVM71e2xjHZTlgfTDoPF/SmqKG5hddq9SzR49CH2hayqRKJtQ4mtRlSxKaJlR/+9rEM+mnBHf7I2/BQcpQ==}
- engines: {node: '>=6.10'}
-
ts-interface-checker@0.1.13:
resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==}
@@ -32604,14 +31297,6 @@ packages:
resolution: {integrity: sha512-Q/xaPoayTj+bgJdnUgpE+EiB/VoNOG+byDFdlDej0FgxiHLgXKliZfVv6boqHPWvC1k7Dt0AK96OBFZ0P55QQg==}
engines: {node: '>=6.0'}
- twoslash-protocol@0.2.12:
- resolution: {integrity: sha512-5qZLXVYfZ9ABdjqbvPc4RWMr7PrpPaaDSeaYY55vl/w1j6H6kzsWK/urAEIXlzYlyrFmyz1UbwIt+AA0ck+wbg==}
-
- twoslash@0.2.12:
- resolution: {integrity: sha512-tEHPASMqi7kqwfJbkk7hc/4EhlrKCSLcur+TcvYki3vhIfaRMXnXjaYFgXpoZRbT6GdprD4tGuVBEmTpUgLBsw==}
- peerDependencies:
- typescript: '*'
-
type-check@0.3.2:
resolution: {integrity: sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg==}
engines: {node: '>= 0.8.0'}
@@ -32843,54 +31528,27 @@ packages:
unified@9.2.2:
resolution: {integrity: sha512-Sg7j110mtefBD+qunSLO1lqOEKdrwBFBrR6Qd8f4uwkhWNlbkaqwHse6e7QvD3AP/MNoJdEDLaf8OxYyoWgorQ==}
- unist-util-find-after@5.0.0:
- resolution: {integrity: sha512-amQa0Ep2m6hE2g72AugUItjbuM8X8cGQnFoHk0pGfrFeT9GZhzN5SW8nRsiGKK7Aif4CrACPENkA6P/Lw6fHGQ==}
-
unist-util-is@4.1.0:
resolution: {integrity: sha512-ZOQSsnce92GrxSqlnEEseX0gi7GH9zTJZ0p9dtu87WRb/37mMPO2Ilx1s/t9vBHrFhbgweUwb+t7cIn5dxPhZg==}
- unist-util-is@5.2.1:
- resolution: {integrity: sha512-u9njyyfEh43npf1M+yGKDGVPbY/JWEemg5nH05ncKPfi+kBbKBJoTdsogMu33uhytuLlv9y0O7GH7fEdwLdLQw==}
-
unist-util-is@6.0.0:
resolution: {integrity: sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw==}
- unist-util-modify-children@4.0.0:
- resolution: {integrity: sha512-+tdN5fGNddvsQdIzUF3Xx82CU9sMM+fA0dLgR9vOmT0oPT2jH+P1nd5lSqfCfXAw+93NhcXNY2qqvTUtE4cQkw==}
-
- unist-util-position-from-estree@2.0.0:
- resolution: {integrity: sha512-KaFVRjoqLyF6YXCbVLNad/eS4+OfPQQn2yOd7zF/h5T/CSL2v8NpN6a5TPvtbXthAGw5nG+PuTtq+DdIZr+cRQ==}
-
unist-util-position@5.0.0:
resolution: {integrity: sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==}
- unist-util-remove-position@5.0.0:
- resolution: {integrity: sha512-Hp5Kh3wLxv0PHj9m2yZhhLt58KzPtEYKQQ4yxfYFEO7EvHwzyDYnduhHnY1mDxoqr7VUwVuHXk9RXKIiYS1N8Q==}
-
- unist-util-remove@4.0.0:
- resolution: {integrity: sha512-b4gokeGId57UVRX/eVKej5gXqGlc9+trkORhFJpu9raqZkZhU0zm8Doi05+HaiBsMEIJowL+2WtQ5ItjsngPXg==}
-
unist-util-stringify-position@2.0.3:
resolution: {integrity: sha512-3faScn5I+hy9VleOq/qNbAd6pAx7iH5jYBMS9I1HgQVijz/4mv5Bvw5iw1sC/90CODiKo81G/ps8AJrISn687g==}
unist-util-stringify-position@4.0.0:
resolution: {integrity: sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==}
- unist-util-visit-children@3.0.0:
- resolution: {integrity: sha512-RgmdTfSBOg04sdPcpTSD1jzoNBjt9a80/ZCzp5cI9n1qPzLZWF9YdvWGN2zmTumP1HWhXKdUWexjy/Wy/lJ7tA==}
-
unist-util-visit-parents@3.1.1:
resolution: {integrity: sha512-1KROIZWo6bcMrZEwiH2UrXDyalAa0uqzWCxCJj6lPOvTve2WkfgCytoDTPaMnodXh1WrXOq0haVYHj99ynJlsg==}
- unist-util-visit-parents@4.1.1:
- resolution: {integrity: sha512-1xAFJXAKpnnJl8G7K5KgU7FY55y3GcLIXqkzUj5QF/QVP7biUm0K0O2oqVkYsdjzJKifYeWn9+o6piAK2hGSHw==}
-
unist-util-visit-parents@6.0.1:
resolution: {integrity: sha512-L/PqWzfTP9lzzEa6CKs0k2nARxTdZduw3zyh8d2NVBnsyvHjSX4TWse388YrrQKbvI8w20fGjGlhgT96WwKykw==}
- unist-util-visit@3.1.0:
- resolution: {integrity: sha512-Szoh+R/Ll68QWAyQyZZpQzZQm2UPbxibDvaY8Xc9SUtYgPsDzx5AWSk++UUt2hJuow8mvwR+rG+LQLw+KsuAKA==}
-
unist-util-visit@5.0.0:
resolution: {integrity: sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==}
@@ -33229,23 +31887,6 @@ packages:
deprecated: The library contains critical security issues and should not be used for production! The maintenance of the project has been discontinued. Consider migrating your code to isolated-vm.
hasBin: true
- vscode-jsonrpc@8.2.0:
- resolution: {integrity: sha512-C+r0eKJUIfiDIfwJhria30+TYWPtuHJXHtI7J0YlOmKAo7ogxP20T0zxB7HZQIFhIyvoBPwWskjxrvAtfjyZfA==}
- engines: {node: '>=14.0.0'}
-
- vscode-languageserver-protocol@3.17.5:
- resolution: {integrity: sha512-mb1bvRJN8SVznADSGWM9u/b07H7Ecg0I3OgXDuLdn307rl/J3A9YD6/eYOssqhecL27hK1IPZAsaqh00i/Jljg==}
-
- vscode-languageserver-textdocument@1.0.12:
- resolution: {integrity: sha512-cxWNPesCnQCcMPeenjKKsOCKQZ/L6Tv19DTRIGuLWe32lyzWhihGVJ/rcckZXJxfdKCFvRLS3fpBIsV/ZGX4zA==}
-
- vscode-languageserver-types@3.17.5:
- resolution: {integrity: sha512-Ld1VelNuX9pdF39h2Hgaeb5hEZM2Z3jUrrMgWQAu82jMtZp7p3vJT3BzToKtZI7NgQssZje5o0zryOrhQvzQAg==}
-
- vscode-languageserver@9.0.1:
- resolution: {integrity: sha512-woByF3PDpkHFUreUa7Hos7+pUWdeWMXRd26+ZX2A8cFx6v/JPTtd4/uN0/jB6XQHYaOlHbio03NTHCqrgG5n7g==}
- hasBin: true
-
vscode-uri@3.0.8:
resolution: {integrity: sha512-AyFQ0EVmsOZOlAnxoFOGOq1SQDWAB7C6aqMGS23svWAllfOaxbuFvcT8D1i8z3Gyn8fraVeZNNmN6e9bxxXkKw==}
@@ -33267,9 +31908,6 @@ packages:
weak-map@1.0.8:
resolution: {integrity: sha512-lNR9aAefbGPpHO7AEnY0hCFjz1eTkWCXYvkTRrTHs9qv8zJp+SkVYpzfLIFXQQiG3tVvbNFQgVg2bQS8YGgxyw==}
- web-namespaces@2.0.1:
- resolution: {integrity: sha512-bKr1DkiNa2krS7qxNtdrtHAmzuYGFQLiQ13TsorsdT6ULTkPLKuu5+GsFpDlg6JFjUTwX2DyhMPG2be8uPrqsQ==}
-
web-streams-polyfill@3.3.3:
resolution: {integrity: sha512-d2JWLCivmZYTSIoge9MsgFCZrt571BikcWGYkjC1khllbTeDlGqZ2D8vD8E/lJa8WGWbb7Plm8/XJYV7IJHZZw==}
engines: {node: '>= 8'}
@@ -33351,9 +31989,6 @@ packages:
engines: {node: ^16.13.0 || >=18.0.0}
hasBin: true
- wicked-good-xpath@1.3.0:
- resolution: {integrity: sha512-Gd9+TUn5nXdwj/hFsPVx5cuHHiF5Bwuc30jZ4+ronF1qHK5O7HD0sgmXWSEgwKquT3ClLoKPVbO6qGwVwLzvAw==}
-
wide-align@1.1.5:
resolution: {integrity: sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==}
@@ -33559,10 +32194,6 @@ packages:
xmlcreate@2.0.4:
resolution: {integrity: sha512-nquOebG4sngPmGPICTS5EnxqhKbCmz5Ox5hsszI2T6U5qdrJizBc+0ilYSEjTSzU0yZcmvppztXe/5Al5fUwdg==}
- xmldom-sre@0.1.31:
- resolution: {integrity: sha512-f9s+fUkX04BxQf+7mMWAp5zk61pciie+fFLC9hX9UVvCeJQfNHRHXpeo5MPcR0EUf57PYLdt+ZO4f3Ipk2oZUw==}
- engines: {node: '>=0.1'}
-
xmldom@0.6.0:
resolution: {integrity: sha512-iAcin401y58LckRZ0TkI4k0VSM1Qg0KGSc3i8rU+xrxe19A/BN1zHyVSJY7uoutVlaTSzYyk/v5AmkewAP7jtg==}
engines: {node: '>=10.0.0'}
@@ -33608,11 +32239,6 @@ packages:
resolution: {integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==}
engines: {node: '>= 6'}
- yaml@2.5.1:
- resolution: {integrity: sha512-bLQOjaX/ADgQ20isPJRvF0iRUHIxVhYvr53Of7wGcWlO2jvtUlH5m87DsmulFVxRpNLOnI4tB6p/oh8D7kpn9Q==}
- engines: {node: '>= 14'}
- hasBin: true
-
yaml@2.6.1:
resolution: {integrity: sha512-7r0XPzioN/Q9kXBro/XPnA6kznR73DHq+GXh5ON7ZozRO6aMjbmiBuKste2wslTFkC5d1dw0GooOCepZXJ2SAg==}
engines: {node: '>= 14'}
@@ -33685,12 +32311,6 @@ packages:
peerDependencies:
zod: ^3.24.1
- zod-validation-error@3.4.0:
- resolution: {integrity: sha512-ZOPR9SVY6Pb2qqO5XHt+MkkTRxGXb4EVtnjc9JpXUOtUB1T9Ru7mZOT361AN3MsetVe7R0a1KZshJDZdgp9miQ==}
- engines: {node: '>=18.0.0'}
- peerDependencies:
- zod: ^3.18.0
-
zod@3.24.1:
resolution: {integrity: sha512-muH7gBL9sI1nciMZV67X5fTKKBLtwpZ5VBp1vsOQzj1MhrBZ4wlVCm3gedKZWLp0Oyel8sIGfeiz54Su+OVT+A==}
@@ -33753,34 +32373,6 @@ snapshots:
transitivePeerDependencies:
- supports-color
- '@algolia/autocomplete-core@1.17.9(@algolia/client-search@5.17.1)(algoliasearch@5.17.1)(search-insights@2.17.3)':
- dependencies:
- '@algolia/autocomplete-plugin-algolia-insights': 1.17.9(@algolia/client-search@5.17.1)(algoliasearch@5.17.1)(search-insights@2.17.3)
- '@algolia/autocomplete-shared': 1.17.9(@algolia/client-search@5.17.1)(algoliasearch@5.17.1)
- transitivePeerDependencies:
- - '@algolia/client-search'
- - algoliasearch
- - search-insights
-
- '@algolia/autocomplete-plugin-algolia-insights@1.17.9(@algolia/client-search@5.17.1)(algoliasearch@5.17.1)(search-insights@2.17.3)':
- dependencies:
- '@algolia/autocomplete-shared': 1.17.9(@algolia/client-search@5.17.1)(algoliasearch@5.17.1)
- search-insights: 2.17.3
- transitivePeerDependencies:
- - '@algolia/client-search'
- - algoliasearch
-
- '@algolia/autocomplete-preset-algolia@1.17.9(@algolia/client-search@5.17.1)(algoliasearch@5.17.1)':
- dependencies:
- '@algolia/autocomplete-shared': 1.17.9(@algolia/client-search@5.17.1)(algoliasearch@5.17.1)
- '@algolia/client-search': 5.17.1
- algoliasearch: 5.17.1
-
- '@algolia/autocomplete-shared@1.17.9(@algolia/client-search@5.17.1)(algoliasearch@5.17.1)':
- dependencies:
- '@algolia/client-search': 5.17.1
- algoliasearch: 5.17.1
-
'@algolia/client-abtesting@5.17.1':
dependencies:
'@algolia/client-common': 5.17.1
@@ -33858,20 +32450,11 @@ snapshots:
dependencies:
'@algolia/client-common': 5.17.1
- '@alloc/quick-lru@5.2.0': {}
-
'@ampproject/remapping@2.3.0':
dependencies:
'@jridgewell/gen-mapping': 0.3.5
'@jridgewell/trace-mapping': 0.3.25
- '@antfu/install-pkg@0.4.1':
- dependencies:
- package-manager-detector: 0.2.7
- tinyexec: 0.3.1
-
- '@antfu/utils@0.7.10': {}
-
'@apidevtools/swagger-methods@3.0.2': {}
'@apify/consts@2.43.0': {}
@@ -37115,8 +35698,6 @@ snapshots:
'@bcoe/v8-coverage@0.2.3': {}
- '@braintree/sanitize-url@7.1.0': {}
-
'@bufbuild/protobuf@1.10.1': {}
'@bufbuild/protobuf@2.5.0': {}
@@ -37151,23 +35732,6 @@ snapshots:
'@bugsnag/safe-json-stringify@6.0.0': {}
- '@chevrotain/cst-dts-gen@11.0.3':
- dependencies:
- '@chevrotain/gast': 11.0.3
- '@chevrotain/types': 11.0.3
- lodash-es: 4.17.21
-
- '@chevrotain/gast@11.0.3':
- dependencies:
- '@chevrotain/types': 11.0.3
- lodash-es: 4.17.21
-
- '@chevrotain/regexp-to-ast@11.0.3': {}
-
- '@chevrotain/types@11.0.3': {}
-
- '@chevrotain/utils@11.0.3': {}
-
'@colors/colors@1.6.0': {}
'@connectrpc/connect-web@2.0.0-rc.3(@bufbuild/protobuf@2.5.0)(@connectrpc/connect@2.0.0-rc.3(@bufbuild/protobuf@2.5.0))':
@@ -37179,8 +35743,6 @@ snapshots:
dependencies:
'@bufbuild/protobuf': 2.5.0
- '@corex/deepmerge@4.0.43': {}
-
'@cspotcode/source-map-support@0.8.1':
dependencies:
'@jridgewell/trace-mapping': 0.3.9
@@ -37258,22 +35820,6 @@ snapshots:
gonzales-pe: 4.3.0
node-source-walk: 7.0.1
- '@docsearch/css@3.9.0': {}
-
- '@docsearch/react@3.9.0(@algolia/client-search@5.17.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(search-insights@2.17.3)':
- dependencies:
- '@algolia/autocomplete-core': 1.17.9(@algolia/client-search@5.17.1)(algoliasearch@5.17.1)(search-insights@2.17.3)
- '@algolia/autocomplete-preset-algolia': 1.17.9(@algolia/client-search@5.17.1)(algoliasearch@5.17.1)
- '@docsearch/css': 3.9.0
- algoliasearch: 5.17.1
- optionalDependencies:
- '@types/react': 18.3.12
- react: 18.3.1
- react-dom: 18.3.1(react@18.3.1)
- search-insights: 2.17.3
- transitivePeerDependencies:
- - '@algolia/client-search'
-
'@dual-bundle/import-meta-resolve@4.1.0': {}
'@e2b/code-interpreter@1.0.4':
@@ -37857,26 +36403,8 @@ snapshots:
'@floating-ui/core': 1.6.8
'@floating-ui/utils': 0.2.8
- '@floating-ui/react-dom@2.1.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
- dependencies:
- '@floating-ui/dom': 1.6.12
- react: 18.3.1
- react-dom: 18.3.1(react@18.3.1)
-
- '@floating-ui/react@0.26.28(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
- dependencies:
- '@floating-ui/react-dom': 2.1.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
- '@floating-ui/utils': 0.2.8
- react: 18.3.1
- react-dom: 18.3.1(react@18.3.1)
- tabbable: 6.2.0
-
'@floating-ui/utils@0.2.8': {}
- '@formatjs/intl-localematcher@0.5.8':
- dependencies:
- tslib: 2.8.1
-
'@google-ai/generativelanguage@0.2.1':
dependencies:
google-gax: 3.6.1
@@ -38197,15 +36725,6 @@ snapshots:
dependencies:
'@hapi/hoek': 9.3.0
- '@headlessui/react@2.2.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
- dependencies:
- '@floating-ui/react': 0.26.28(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
- '@react-aria/focus': 3.19.0(react@18.3.1)
- '@react-aria/interactions': 3.22.5(react@18.3.1)
- '@tanstack/react-virtual': 3.10.9(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
- react: 18.3.1
- react-dom: 18.3.1(react@18.3.1)
-
'@httptoolkit/websocket-stream@6.0.1':
dependencies:
'@types/ws': 8.5.13
@@ -38238,20 +36757,6 @@ snapshots:
'@iarna/toml@2.2.5': {}
- '@iconify/types@2.0.0': {}
-
- '@iconify/utils@2.1.33':
- dependencies:
- '@antfu/install-pkg': 0.4.1
- '@antfu/utils': 0.7.10
- '@iconify/types': 2.0.0
- debug: 4.4.1(supports-color@10.0.0)
- kolorist: 1.8.0
- local-pkg: 0.5.1
- mlly: 1.7.3
- transitivePeerDependencies:
- - supports-color
-
'@img/sharp-darwin-arm64@0.33.5':
optionalDependencies:
'@img/sharp-libvips-darwin-arm64': 1.0.4
@@ -38447,41 +36952,6 @@ snapshots:
jest-util: 29.7.0
slash: 3.0.0
- '@jest/core@29.7.0(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@18.11.10)(typescript@5.6.3))':
- dependencies:
- '@jest/console': 29.7.0
- '@jest/reporters': 29.7.0
- '@jest/test-result': 29.7.0
- '@jest/transform': 29.7.0
- '@jest/types': 29.6.3
- '@types/node': 20.17.30
- ansi-escapes: 4.3.2
- chalk: 4.1.2
- ci-info: 3.9.0
- exit: 0.1.2
- graceful-fs: 4.2.11
- jest-changed-files: 29.7.0
- jest-config: 29.7.0(@types/node@20.17.30)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@18.11.10)(typescript@5.6.3))
- jest-haste-map: 29.7.0
- jest-message-util: 29.7.0
- jest-regex-util: 29.6.3
- jest-resolve: 29.7.0
- jest-resolve-dependencies: 29.7.0
- jest-runner: 29.7.0
- jest-runtime: 29.7.0
- jest-snapshot: 29.7.0
- jest-util: 29.7.0
- jest-validate: 29.7.0
- jest-watcher: 29.7.0
- micromatch: 4.0.8
- pretty-format: 29.7.0
- slash: 3.0.0
- strip-ansi: 6.0.1
- transitivePeerDependencies:
- - babel-plugin-macros
- - supports-color
- - ts-node
-
'@jest/core@29.7.0(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@20.17.30)(typescript@5.7.2))':
dependencies:
'@jest/console': 29.7.0
@@ -38823,42 +37293,6 @@ snapshots:
- encoding
- supports-color
- '@mdx-js/mdx@3.1.0(acorn@8.14.0)':
- dependencies:
- '@types/estree': 1.0.6
- '@types/estree-jsx': 1.0.5
- '@types/hast': 3.0.4
- '@types/mdx': 2.0.13
- collapse-white-space: 2.1.0
- devlop: 1.1.0
- estree-util-is-identifier-name: 3.0.0
- estree-util-scope: 1.0.0
- estree-walker: 3.0.3
- hast-util-to-jsx-runtime: 2.3.2
- markdown-extensions: 2.0.0
- recma-build-jsx: 1.0.0
- recma-jsx: 1.0.0(acorn@8.14.0)
- recma-stringify: 1.0.0
- rehype-recma: 1.0.0
- remark-mdx: 3.1.0
- remark-parse: 11.0.0
- remark-rehype: 11.1.1
- source-map: 0.7.4
- unified: 11.0.5
- unist-util-position-from-estree: 2.0.0
- unist-util-stringify-position: 4.0.0
- unist-util-visit: 5.0.0
- vfile: 6.0.3
- transitivePeerDependencies:
- - acorn
- - supports-color
-
- '@mdx-js/react@3.1.0(@types/react@18.3.12)(react@18.3.1)':
- dependencies:
- '@types/mdx': 2.0.13
- '@types/react': 18.3.12
- react: 18.3.1
-
'@memberstack/admin@1.3.1':
dependencies:
axios: 1.6.8
@@ -38866,10 +37300,6 @@ snapshots:
transitivePeerDependencies:
- debug
- '@mermaid-js/parser@0.3.0':
- dependencies:
- langium: 3.0.0
-
'@microsoft/api-extractor-model@7.29.9(@types/node@20.17.30)':
dependencies:
'@microsoft/tsdoc': 0.15.0
@@ -38960,65 +37390,6 @@ snapshots:
sparse-bitfield: 3.0.3
optional: true
- '@napi-rs/simple-git-android-arm-eabi@0.1.19':
- optional: true
-
- '@napi-rs/simple-git-android-arm64@0.1.19':
- optional: true
-
- '@napi-rs/simple-git-darwin-arm64@0.1.19':
- optional: true
-
- '@napi-rs/simple-git-darwin-x64@0.1.19':
- optional: true
-
- '@napi-rs/simple-git-freebsd-x64@0.1.19':
- optional: true
-
- '@napi-rs/simple-git-linux-arm-gnueabihf@0.1.19':
- optional: true
-
- '@napi-rs/simple-git-linux-arm64-gnu@0.1.19':
- optional: true
-
- '@napi-rs/simple-git-linux-arm64-musl@0.1.19':
- optional: true
-
- '@napi-rs/simple-git-linux-powerpc64le-gnu@0.1.19':
- optional: true
-
- '@napi-rs/simple-git-linux-s390x-gnu@0.1.19':
- optional: true
-
- '@napi-rs/simple-git-linux-x64-gnu@0.1.19':
- optional: true
-
- '@napi-rs/simple-git-linux-x64-musl@0.1.19':
- optional: true
-
- '@napi-rs/simple-git-win32-arm64-msvc@0.1.19':
- optional: true
-
- '@napi-rs/simple-git-win32-x64-msvc@0.1.19':
- optional: true
-
- '@napi-rs/simple-git@0.1.19':
- optionalDependencies:
- '@napi-rs/simple-git-android-arm-eabi': 0.1.19
- '@napi-rs/simple-git-android-arm64': 0.1.19
- '@napi-rs/simple-git-darwin-arm64': 0.1.19
- '@napi-rs/simple-git-darwin-x64': 0.1.19
- '@napi-rs/simple-git-freebsd-x64': 0.1.19
- '@napi-rs/simple-git-linux-arm-gnueabihf': 0.1.19
- '@napi-rs/simple-git-linux-arm64-gnu': 0.1.19
- '@napi-rs/simple-git-linux-arm64-musl': 0.1.19
- '@napi-rs/simple-git-linux-powerpc64le-gnu': 0.1.19
- '@napi-rs/simple-git-linux-s390x-gnu': 0.1.19
- '@napi-rs/simple-git-linux-x64-gnu': 0.1.19
- '@napi-rs/simple-git-linux-x64-musl': 0.1.19
- '@napi-rs/simple-git-win32-arm64-msvc': 0.1.19
- '@napi-rs/simple-git-win32-x64-msvc': 0.1.19
-
'@napi-rs/wasm-runtime@0.2.11':
dependencies:
'@emnapi/core': 1.4.3
@@ -39356,10 +37727,6 @@ snapshots:
- rollup
- supports-color
- '@next/env@13.5.11': {}
-
- '@next/env@14.2.19': {}
-
'@next/env@15.0.3': {}
'@next/eslint-plugin-next@14.2.19':
@@ -39370,54 +37737,27 @@ snapshots:
dependencies:
fast-glob: 3.3.1
- '@next/swc-darwin-arm64@14.2.19':
- optional: true
-
'@next/swc-darwin-arm64@15.0.3':
optional: true
- '@next/swc-darwin-x64@14.2.19':
- optional: true
-
'@next/swc-darwin-x64@15.0.3':
optional: true
- '@next/swc-linux-arm64-gnu@14.2.19':
- optional: true
-
'@next/swc-linux-arm64-gnu@15.0.3':
optional: true
- '@next/swc-linux-arm64-musl@14.2.19':
- optional: true
-
'@next/swc-linux-arm64-musl@15.0.3':
optional: true
- '@next/swc-linux-x64-gnu@14.2.19':
- optional: true
-
'@next/swc-linux-x64-gnu@15.0.3':
optional: true
- '@next/swc-linux-x64-musl@14.2.19':
- optional: true
-
'@next/swc-linux-x64-musl@15.0.3':
optional: true
- '@next/swc-win32-arm64-msvc@14.2.19':
- optional: true
-
'@next/swc-win32-arm64-msvc@15.0.3':
optional: true
- '@next/swc-win32-ia32-msvc@14.2.19':
- optional: true
-
- '@next/swc-win32-x64-msvc@14.2.19':
- optional: true
-
'@next/swc-win32-x64-msvc@15.0.3':
optional: true
@@ -40098,16 +38438,6 @@ snapshots:
- bufferutil
- utf-8-validate
- '@pipedream/sdk@1.5.3':
- dependencies:
- '@rails/actioncable': 8.0.0
- commander: 12.1.0
- oauth4webapi: 3.1.4
- ws: 8.18.0
- transitivePeerDependencies:
- - bufferutil
- - utf-8-validate
-
'@pipedream/sdk@1.5.5':
dependencies:
'@rails/actioncable': 8.0.0
@@ -41101,46 +39431,6 @@ snapshots:
'@rails/actioncable@8.0.0': {}
- '@react-aria/focus@3.19.0(react@18.3.1)':
- dependencies:
- '@react-aria/interactions': 3.22.5(react@18.3.1)
- '@react-aria/utils': 3.26.0(react@18.3.1)
- '@react-types/shared': 3.26.0(react@18.3.1)
- '@swc/helpers': 0.5.13
- clsx: 2.1.1
- react: 18.3.1
-
- '@react-aria/interactions@3.22.5(react@18.3.1)':
- dependencies:
- '@react-aria/ssr': 3.9.7(react@18.3.1)
- '@react-aria/utils': 3.26.0(react@18.3.1)
- '@react-types/shared': 3.26.0(react@18.3.1)
- '@swc/helpers': 0.5.13
- react: 18.3.1
-
- '@react-aria/ssr@3.9.7(react@18.3.1)':
- dependencies:
- '@swc/helpers': 0.5.13
- react: 18.3.1
-
- '@react-aria/utils@3.26.0(react@18.3.1)':
- dependencies:
- '@react-aria/ssr': 3.9.7(react@18.3.1)
- '@react-stately/utils': 3.10.5(react@18.3.1)
- '@react-types/shared': 3.26.0(react@18.3.1)
- '@swc/helpers': 0.5.13
- clsx: 2.1.1
- react: 18.3.1
-
- '@react-stately/utils@3.10.5(react@18.3.1)':
- dependencies:
- '@swc/helpers': 0.5.13
- react: 18.3.1
-
- '@react-types/shared@3.26.0(react@18.3.1)':
- dependencies:
- react: 18.3.1
-
'@readme/better-ajv-errors@1.6.0(ajv@8.17.1)':
dependencies:
'@babel/code-frame': 7.26.2
@@ -41449,42 +39739,6 @@ snapshots:
'@sevinf/maybe@0.5.0': {}
- '@shikijs/core@1.24.0':
- dependencies:
- '@shikijs/engine-javascript': 1.24.0
- '@shikijs/engine-oniguruma': 1.24.0
- '@shikijs/types': 1.24.0
- '@shikijs/vscode-textmate': 9.3.0
- '@types/hast': 3.0.4
- hast-util-to-html: 9.0.3
-
- '@shikijs/engine-javascript@1.24.0':
- dependencies:
- '@shikijs/types': 1.24.0
- '@shikijs/vscode-textmate': 9.3.0
- oniguruma-to-es: 0.7.0
-
- '@shikijs/engine-oniguruma@1.24.0':
- dependencies:
- '@shikijs/types': 1.24.0
- '@shikijs/vscode-textmate': 9.3.0
-
- '@shikijs/twoslash@1.24.0(typescript@5.6.3)':
- dependencies:
- '@shikijs/core': 1.24.0
- '@shikijs/types': 1.24.0
- twoslash: 0.2.12(typescript@5.6.3)
- transitivePeerDependencies:
- - supports-color
- - typescript
-
- '@shikijs/types@1.24.0':
- dependencies:
- '@shikijs/vscode-textmate': 9.3.0
- '@types/hast': 3.0.4
-
- '@shikijs/vscode-textmate@9.3.0': {}
-
'@shortcut/client@2.2.0':
dependencies:
axios: 1.10.0
@@ -42396,11 +40650,6 @@ snapshots:
dependencies:
tslib: 2.8.1
- '@swc/helpers@0.5.5':
- dependencies:
- '@swc/counter': 0.1.3
- tslib: 2.8.1
-
'@szmarczak/http-timer@4.0.6':
dependencies:
defer-to-connect: 2.0.1
@@ -42421,14 +40670,6 @@ snapshots:
'@tanstack/query-core': 5.60.6
react: 19.0.0-rc-66855b96-20241106
- '@tanstack/react-virtual@3.10.9(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
- dependencies:
- '@tanstack/virtual-core': 3.10.9
- react: 18.3.1
- react-dom: 18.3.1(react@18.3.1)
-
- '@tanstack/virtual-core@3.10.9': {}
-
'@techteamer/ocsp@1.0.0':
dependencies:
asn1.js: 5.4.1
@@ -42439,19 +40680,6 @@ snapshots:
'@tediousjs/connection-string@0.5.0': {}
- '@theguild/remark-mermaid@0.1.3(react@18.3.1)':
- dependencies:
- mermaid: 11.4.1
- react: 18.3.1
- unist-util-visit: 5.0.0
- transitivePeerDependencies:
- - supports-color
-
- '@theguild/remark-npm2yarn@0.3.3':
- dependencies:
- npm-to-yarn: 3.0.0
- unist-util-visit: 5.0.0
-
'@tokenizer/token@0.3.0': {}
'@tootallnate/once@1.1.2': {}
@@ -42491,10 +40719,6 @@ snapshots:
tslib: 2.8.1
optional: true
- '@types/acorn@4.0.6':
- dependencies:
- '@types/estree': 1.0.6
-
'@types/argparse@1.0.38': {}
'@types/axios@0.14.4':
@@ -42542,123 +40766,6 @@ snapshots:
dependencies:
'@types/node': 20.17.30
- '@types/d3-array@3.2.1': {}
-
- '@types/d3-axis@3.0.6':
- dependencies:
- '@types/d3-selection': 3.0.11
-
- '@types/d3-brush@3.0.6':
- dependencies:
- '@types/d3-selection': 3.0.11
-
- '@types/d3-chord@3.0.6': {}
-
- '@types/d3-color@3.1.3': {}
-
- '@types/d3-contour@3.0.6':
- dependencies:
- '@types/d3-array': 3.2.1
- '@types/geojson': 7946.0.14
-
- '@types/d3-delaunay@6.0.4': {}
-
- '@types/d3-dispatch@3.0.6': {}
-
- '@types/d3-drag@3.0.7':
- dependencies:
- '@types/d3-selection': 3.0.11
-
- '@types/d3-dsv@3.0.7': {}
-
- '@types/d3-ease@3.0.2': {}
-
- '@types/d3-fetch@3.0.7':
- dependencies:
- '@types/d3-dsv': 3.0.7
-
- '@types/d3-force@3.0.10': {}
-
- '@types/d3-format@3.0.4': {}
-
- '@types/d3-geo@3.1.0':
- dependencies:
- '@types/geojson': 7946.0.14
-
- '@types/d3-hierarchy@3.1.7': {}
-
- '@types/d3-interpolate@3.0.4':
- dependencies:
- '@types/d3-color': 3.1.3
-
- '@types/d3-path@3.1.0': {}
-
- '@types/d3-polygon@3.0.2': {}
-
- '@types/d3-quadtree@3.0.6': {}
-
- '@types/d3-random@3.0.3': {}
-
- '@types/d3-scale-chromatic@3.1.0': {}
-
- '@types/d3-scale@4.0.8':
- dependencies:
- '@types/d3-time': 3.0.4
-
- '@types/d3-selection@3.0.11': {}
-
- '@types/d3-shape@3.1.6':
- dependencies:
- '@types/d3-path': 3.1.0
-
- '@types/d3-time-format@4.0.3': {}
-
- '@types/d3-time@3.0.4': {}
-
- '@types/d3-timer@3.0.2': {}
-
- '@types/d3-transition@3.0.9':
- dependencies:
- '@types/d3-selection': 3.0.11
-
- '@types/d3-zoom@3.0.8':
- dependencies:
- '@types/d3-interpolate': 3.0.4
- '@types/d3-selection': 3.0.11
-
- '@types/d3@7.4.3':
- dependencies:
- '@types/d3-array': 3.2.1
- '@types/d3-axis': 3.0.6
- '@types/d3-brush': 3.0.6
- '@types/d3-chord': 3.0.6
- '@types/d3-color': 3.1.3
- '@types/d3-contour': 3.0.6
- '@types/d3-delaunay': 6.0.4
- '@types/d3-dispatch': 3.0.6
- '@types/d3-drag': 3.0.7
- '@types/d3-dsv': 3.0.7
- '@types/d3-ease': 3.0.2
- '@types/d3-fetch': 3.0.7
- '@types/d3-force': 3.0.10
- '@types/d3-format': 3.0.4
- '@types/d3-geo': 3.1.0
- '@types/d3-hierarchy': 3.1.7
- '@types/d3-interpolate': 3.0.4
- '@types/d3-path': 3.1.0
- '@types/d3-polygon': 3.0.2
- '@types/d3-quadtree': 3.0.6
- '@types/d3-random': 3.0.3
- '@types/d3-scale': 4.0.8
- '@types/d3-scale-chromatic': 3.1.0
- '@types/d3-selection': 3.0.11
- '@types/d3-shape': 3.1.6
- '@types/d3-time': 3.0.4
- '@types/d3-time-format': 4.0.3
- '@types/d3-timer': 3.0.2
- '@types/d3-transition': 3.0.9
- '@types/d3-zoom': 3.0.8
-
'@types/debug@4.1.12':
dependencies:
'@types/ms': 0.7.34
@@ -42705,8 +40812,6 @@ snapshots:
'@types/node': 20.17.6
'@types/sax': 1.2.7
- '@types/geojson@7946.0.14': {}
-
'@types/glob@8.1.0':
dependencies:
'@types/minimatch': 5.1.2
@@ -42768,8 +40873,6 @@ snapshots:
'@types/jssha@2.0.0': {}
- '@types/katex@0.16.7': {}
-
'@types/keyv@3.1.4':
dependencies:
'@types/node': 20.17.30
@@ -42803,18 +40906,12 @@ snapshots:
'@types/mdurl@2.0.0': {}
- '@types/mdx@2.0.13': {}
-
'@types/mime@1.3.5': {}
'@types/minimatch@5.1.2': {}
'@types/ms@0.7.34': {}
- '@types/nlcst@2.0.3':
- dependencies:
- '@types/unist': 3.0.3
-
'@types/node-fetch@2.6.12':
dependencies:
'@types/node': 20.17.6
@@ -42824,8 +40921,6 @@ snapshots:
'@types/node@17.0.45': {}
- '@types/node@18.11.10': {}
-
'@types/node@18.19.115':
dependencies:
undici-types: 5.26.5
@@ -42949,9 +41044,6 @@ snapshots:
'@types/triple-beam@1.3.5': {}
- '@types/trusted-types@2.0.7':
- optional: true
-
'@types/unist@2.0.11': {}
'@types/unist@3.0.3': {}
@@ -43104,23 +41196,10 @@ snapshots:
'@typescript-eslint/types': 8.38.0
eslint-visitor-keys: 4.2.1
- '@typescript/vfs@1.6.0(typescript@5.6.3)':
- dependencies:
- debug: 4.4.1(supports-color@10.0.0)
- typescript: 5.6.3
- transitivePeerDependencies:
- - supports-color
-
'@ungap/structured-clone@1.2.0': {}
'@ungap/url-search-params@0.2.2': {}
- '@vercel/analytics@1.5.0(next@14.2.19(@babel/core@8.0.0-alpha.13)(@opentelemetry/api@1.9.0)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1)(vue@2.7.16)':
- optionalDependencies:
- next: 14.2.19(@babel/core@8.0.0-alpha.13)(@opentelemetry/api@1.9.0)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
- react: 18.3.1
- vue: 2.7.16
-
'@vercel/nft@0.29.4(rollup@4.27.3)(supports-color@10.0.0)':
dependencies:
'@mapbox/node-pre-gyp': 2.0.0(supports-color@10.0.0)
@@ -43563,8 +41642,6 @@ snapshots:
arg@4.1.3: {}
- arg@5.0.2: {}
-
argparse@1.0.10:
dependencies:
sprintf-js: 1.0.3
@@ -43597,8 +41674,6 @@ snapshots:
array-indexofobject@0.0.1: {}
- array-iterate@2.0.1: {}
-
array-timsort@1.0.3: {}
array-union@2.1.0: {}
@@ -43718,8 +41793,6 @@ snapshots:
astral-regex@2.0.0: {}
- astring@1.9.0: {}
-
async-retry@1.3.3:
dependencies:
retry: 0.13.1
@@ -43739,16 +41812,6 @@ snapshots:
stubborn-fs: 1.2.5
when-exit: 2.1.4
- autoprefixer@10.4.20(postcss@8.4.49):
- dependencies:
- browserslist: 4.24.2
- caniuse-lite: 1.0.30001683
- fraction.js: 4.3.7
- normalize-range: 0.1.2
- picocolors: 1.1.1
- postcss: 8.4.49
- postcss-value-parser: 4.2.0
-
available-typed-arrays@1.0.7:
dependencies:
possible-typed-array-names: 1.0.0
@@ -44076,11 +42139,6 @@ snapshots:
jsonpointer: 5.0.1
leven: 3.1.0
- better-react-mathjax@2.0.3(react@18.3.1):
- dependencies:
- mathjax-full: 3.2.2
- react: 18.3.1
-
big-integer@1.6.52: {}
big.js@5.2.2: {}
@@ -44371,8 +42429,6 @@ snapshots:
callsites@3.1.0: {}
- camelcase-css@2.0.1: {}
-
camelcase-keys@9.1.3:
dependencies:
camelcase: 8.0.0
@@ -44457,20 +42513,6 @@ snapshots:
dependencies:
inherits: 2.0.4
- chevrotain-allstar@0.3.1(chevrotain@11.0.3):
- dependencies:
- chevrotain: 11.0.3
- lodash-es: 4.17.21
-
- chevrotain@11.0.3:
- dependencies:
- '@chevrotain/cst-dts-gen': 11.0.3
- '@chevrotain/gast': 11.0.3
- '@chevrotain/regexp-to-ast': 11.0.3
- '@chevrotain/types': 11.0.3
- '@chevrotain/utils': 11.0.3
- lodash-es: 4.17.21
-
chokidar@3.6.0:
dependencies:
anymatch: 3.1.3
@@ -44569,11 +42611,6 @@ snapshots:
slice-ansi: 5.0.0
string-width: 5.1.2
- cli-truncate@4.0.0:
- dependencies:
- slice-ansi: 5.0.0
- string-width: 7.2.0
-
cli-width@3.0.0: {}
client-only@0.0.1: {}
@@ -44625,8 +42662,6 @@ snapshots:
lodash: 4.17.21
q: 1.5.1
- clsx@2.1.1: {}
-
co@4.6.0: {}
code-error-fragment@0.0.230: {}
@@ -44653,8 +42688,6 @@ snapshots:
- aws-crt
- encoding
- collapse-white-space@2.1.0: {}
-
collect-v8-coverage@1.0.2: {}
color-2-name@1.4.4: {}
@@ -44751,12 +42784,6 @@ snapshots:
commander@6.2.1: {}
- commander@7.2.0: {}
-
- commander@8.3.0: {}
-
- commander@9.2.0: {}
-
commander@9.5.0: {}
comment-json@4.2.5:
@@ -44813,8 +42840,6 @@ snapshots:
validate.io-function: 1.0.2
validate.io-integer-array: 1.0.0
- compute-scroll-into-view@3.1.0: {}
-
computeds@0.0.1: {}
concat-map@0.0.1: {}
@@ -44893,14 +42918,6 @@ snapshots:
object-assign: 4.1.1
vary: 1.1.2
- cose-base@1.0.3:
- dependencies:
- layout-base: 1.0.2
-
- cose-base@2.2.0:
- dependencies:
- layout-base: 2.0.1
-
cosmiconfig@5.2.1:
dependencies:
import-fresh: 2.0.0
@@ -44972,21 +42989,6 @@ snapshots:
safe-buffer: 5.2.1
sha.js: 2.4.11
- create-jest@29.7.0(@types/node@18.11.10)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@18.11.10)(typescript@5.6.3)):
- dependencies:
- '@jest/types': 29.6.3
- chalk: 4.1.2
- exit: 0.1.2
- graceful-fs: 4.2.11
- jest-config: 29.7.0(@types/node@18.11.10)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@18.11.10)(typescript@5.6.3))
- jest-util: 29.7.0
- prompts: 2.4.2
- transitivePeerDependencies:
- - '@types/node'
- - babel-plugin-macros
- - supports-color
- - ts-node
-
create-jest@29.7.0(@types/node@20.17.30)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@20.17.30)(typescript@5.7.2)):
dependencies:
'@jest/types': 29.6.3
@@ -45128,195 +43130,11 @@ snapshots:
cyclist@1.0.2: {}
- cytoscape-cose-bilkent@4.1.0(cytoscape@3.30.4):
- dependencies:
- cose-base: 1.0.3
- cytoscape: 3.30.4
-
- cytoscape-fcose@2.2.0(cytoscape@3.30.4):
- dependencies:
- cose-base: 2.2.0
- cytoscape: 3.30.4
-
- cytoscape@3.30.4: {}
-
- d3-array@2.12.1:
- dependencies:
- internmap: 1.0.1
-
- d3-array@3.2.4:
- dependencies:
- internmap: 2.0.3
-
- d3-axis@3.0.0: {}
-
- d3-brush@3.0.0:
- dependencies:
- d3-dispatch: 3.0.1
- d3-drag: 3.0.0
- d3-interpolate: 3.0.1
- d3-selection: 3.0.0
- d3-transition: 3.0.1(d3-selection@3.0.0)
-
- d3-chord@3.0.1:
- dependencies:
- d3-path: 3.1.0
-
- d3-color@3.1.0: {}
-
- d3-contour@4.0.2:
- dependencies:
- d3-array: 3.2.4
-
- d3-delaunay@6.0.4:
- dependencies:
- delaunator: 5.0.1
-
- d3-dispatch@3.0.1: {}
-
- d3-drag@3.0.0:
- dependencies:
- d3-dispatch: 3.0.1
- d3-selection: 3.0.0
-
- d3-dsv@3.0.1:
- dependencies:
- commander: 7.2.0
- iconv-lite: 0.6.3
- rw: 1.3.3
-
- d3-ease@3.0.1: {}
-
- d3-fetch@3.0.1:
- dependencies:
- d3-dsv: 3.0.1
-
- d3-force@3.0.0:
- dependencies:
- d3-dispatch: 3.0.1
- d3-quadtree: 3.0.1
- d3-timer: 3.0.1
-
- d3-format@3.1.0: {}
-
- d3-geo@3.1.1:
- dependencies:
- d3-array: 3.2.4
-
- d3-hierarchy@3.1.2: {}
-
- d3-interpolate@3.0.1:
- dependencies:
- d3-color: 3.1.0
-
- d3-path@1.0.9: {}
-
- d3-path@3.1.0: {}
-
- d3-polygon@3.0.1: {}
-
- d3-quadtree@3.0.1: {}
-
- d3-random@3.0.1: {}
-
- d3-sankey@0.12.3:
- dependencies:
- d3-array: 2.12.1
- d3-shape: 1.3.7
-
- d3-scale-chromatic@3.1.0:
- dependencies:
- d3-color: 3.1.0
- d3-interpolate: 3.0.1
-
- d3-scale@4.0.2:
- dependencies:
- d3-array: 3.2.4
- d3-format: 3.1.0
- d3-interpolate: 3.0.1
- d3-time: 3.1.0
- d3-time-format: 4.1.0
-
- d3-selection@3.0.0: {}
-
- d3-shape@1.3.7:
- dependencies:
- d3-path: 1.0.9
-
- d3-shape@3.2.0:
- dependencies:
- d3-path: 3.1.0
-
- d3-time-format@4.1.0:
- dependencies:
- d3-time: 3.1.0
-
- d3-time@3.1.0:
- dependencies:
- d3-array: 3.2.4
-
- d3-timer@3.0.1: {}
-
- d3-transition@3.0.1(d3-selection@3.0.0):
- dependencies:
- d3-color: 3.1.0
- d3-dispatch: 3.0.1
- d3-ease: 3.0.1
- d3-interpolate: 3.0.1
- d3-selection: 3.0.0
- d3-timer: 3.0.1
-
- d3-zoom@3.0.0:
- dependencies:
- d3-dispatch: 3.0.1
- d3-drag: 3.0.0
- d3-interpolate: 3.0.1
- d3-selection: 3.0.0
- d3-transition: 3.0.1(d3-selection@3.0.0)
-
- d3@7.9.0:
- dependencies:
- d3-array: 3.2.4
- d3-axis: 3.0.0
- d3-brush: 3.0.0
- d3-chord: 3.0.1
- d3-color: 3.1.0
- d3-contour: 4.0.2
- d3-delaunay: 6.0.4
- d3-dispatch: 3.0.1
- d3-drag: 3.0.0
- d3-dsv: 3.0.1
- d3-ease: 3.0.1
- d3-fetch: 3.0.1
- d3-force: 3.0.0
- d3-format: 3.1.0
- d3-geo: 3.1.1
- d3-hierarchy: 3.1.2
- d3-interpolate: 3.0.1
- d3-path: 3.1.0
- d3-polygon: 3.0.1
- d3-quadtree: 3.0.1
- d3-random: 3.0.1
- d3-scale: 4.0.2
- d3-scale-chromatic: 3.1.0
- d3-selection: 3.0.0
- d3-shape: 3.2.0
- d3-time: 3.1.0
- d3-time-format: 4.1.0
- d3-timer: 3.0.1
- d3-transition: 3.0.1(d3-selection@3.0.0)
- d3-zoom: 3.0.0
-
d@1.0.2:
dependencies:
es5-ext: 0.10.64
type: 2.7.3
- dagre-d3-es@7.0.11:
- dependencies:
- d3: 7.9.0
- lodash-es: 4.17.21
-
damerau-levenshtein@1.0.8: {}
dashdash@1.14.1:
@@ -45525,10 +43343,6 @@ snapshots:
escodegen: 2.1.0
esprima: 4.0.1
- delaunator@5.0.1:
- dependencies:
- robust-predicates: 3.0.2
-
delay@5.0.0: {}
delayed-stream@1.0.0: {}
@@ -45635,8 +43449,6 @@ snapshots:
asap: 2.0.6
wrappy: 1.0.2
- didyoumean@1.2.2: {}
-
diff-match-patch@1.0.5: {}
diff-sequences@27.5.1: {}
@@ -45655,8 +43467,6 @@ snapshots:
discontinuous-range@1.0.0: {}
- dlv@1.1.3: {}
-
do-wrapper@4.5.1:
dependencies:
got: 11.8.6
@@ -45698,10 +43508,6 @@ snapshots:
dependencies:
domelementtype: 2.3.0
- dompurify@3.2.2:
- optionalDependencies:
- '@types/trusted-types': 2.0.7
-
domutils@2.8.0:
dependencies:
dom-serializer: 1.4.1
@@ -45852,8 +43658,6 @@ snapshots:
emittery@0.13.1: {}
- emoji-regex-xs@1.0.0: {}
-
emoji-regex@10.4.0: {}
emoji-regex@8.0.0: {}
@@ -46070,20 +43874,6 @@ snapshots:
es6-iterator: 2.0.3
es6-symbol: 3.1.4
- esast-util-from-estree@2.0.0:
- dependencies:
- '@types/estree-jsx': 1.0.5
- devlop: 1.1.0
- estree-util-visit: 2.0.0
- unist-util-position-from-estree: 2.0.0
-
- esast-util-from-js@2.0.1:
- dependencies:
- '@types/estree-jsx': 1.0.5
- acorn: 8.14.0
- esast-util-from-estree: 2.0.0
- vfile-message: 4.0.2
-
esbuild@0.21.5:
optionalDependencies:
'@esbuild/aix-ppc64': 0.21.5
@@ -46493,8 +44283,6 @@ snapshots:
transitivePeerDependencies:
- supports-color
- esm@3.2.25: {}
-
esniff@2.0.1:
dependencies:
d: 1.0.2
@@ -46546,47 +44334,10 @@ snapshots:
dependencies:
'@types/estree': 1.0.6
- estree-util-build-jsx@3.0.1:
- dependencies:
- '@types/estree-jsx': 1.0.5
- devlop: 1.1.0
- estree-util-is-identifier-name: 3.0.0
- estree-walker: 3.0.3
-
- estree-util-is-identifier-name@2.1.0: {}
-
estree-util-is-identifier-name@3.0.0: {}
- estree-util-scope@1.0.0:
- dependencies:
- '@types/estree': 1.0.6
- devlop: 1.1.0
-
- estree-util-to-js@2.0.0:
- dependencies:
- '@types/estree-jsx': 1.0.5
- astring: 1.9.0
- source-map: 0.7.4
-
- estree-util-value-to-estree@1.3.0:
- dependencies:
- is-plain-obj: 3.0.0
-
- estree-util-value-to-estree@3.2.1:
- dependencies:
- '@types/estree': 1.0.6
-
- estree-util-visit@2.0.0:
- dependencies:
- '@types/estree-jsx': 1.0.5
- '@types/unist': 3.0.3
-
estree-walker@2.0.2: {}
- estree-walker@3.0.3:
- dependencies:
- '@types/estree': 1.0.6
-
esutils@2.0.3: {}
etag@1.8.1: {}
@@ -46769,10 +44520,6 @@ snapshots:
dependencies:
type: 2.7.3
- extend-shallow@2.0.1:
- dependencies:
- is-extendable: 0.1.1
-
extend@3.0.2: {}
external-editor@3.1.0:
@@ -46902,10 +44649,6 @@ snapshots:
dependencies:
reusify: 1.0.4
- fault@2.0.1:
- dependencies:
- format: 0.2.2
-
faunadb@4.8.1:
dependencies:
base64-js: 1.5.1
@@ -47152,8 +44895,6 @@ snapshots:
flatted@3.3.2: {}
- flexsearch@0.7.43: {}
-
fn-annotate@1.2.0: {}
fn.name@1.1.0: {}
@@ -47252,8 +44993,6 @@ snapshots:
dependencies:
currify: 4.0.0
- format@0.2.2: {}
-
formdata-node@4.4.1:
dependencies:
node-domexception: 1.0.0
@@ -47280,8 +45019,6 @@ snapshots:
fp-ts@2.16.9: {}
- fraction.js@4.3.7: {}
-
fraudlabspro-nodejs@3.0.0: {}
fresh@0.5.2: {}
@@ -47579,8 +45316,6 @@ snapshots:
dependencies:
ini: 1.3.8
- github-slugger@2.0.0: {}
-
glob-parent@5.1.2:
dependencies:
is-glob: 4.0.3
@@ -48016,13 +45751,6 @@ snapshots:
graphql@16.9.0: {}
- gray-matter@4.0.3:
- dependencies:
- js-yaml: 3.14.1
- kind-of: 6.0.3
- section-matter: 1.0.0
- strip-bom-string: 1.0.0
-
gtoken@5.3.2:
dependencies:
gaxios: 4.3.3
@@ -48068,8 +45796,6 @@ snapshots:
ufo: 1.6.1
uncrypto: 0.1.3
- hachure-fill@0.5.2: {}
-
handlebars-loader@1.7.3(handlebars@4.7.8):
dependencies:
async: 3.2.6
@@ -48133,98 +45859,6 @@ snapshots:
dependencies:
function-bind: 1.1.2
- hast-util-from-dom@5.0.1:
- dependencies:
- '@types/hast': 3.0.4
- hastscript: 9.0.0
- web-namespaces: 2.0.1
-
- hast-util-from-html-isomorphic@2.0.0:
- dependencies:
- '@types/hast': 3.0.4
- hast-util-from-dom: 5.0.1
- hast-util-from-html: 2.0.3
- unist-util-remove-position: 5.0.0
-
- hast-util-from-html@2.0.3:
- dependencies:
- '@types/hast': 3.0.4
- devlop: 1.1.0
- hast-util-from-parse5: 8.0.2
- parse5: 7.2.1
- vfile: 6.0.3
- vfile-message: 4.0.2
-
- hast-util-from-parse5@8.0.2:
- dependencies:
- '@types/hast': 3.0.4
- '@types/unist': 3.0.3
- devlop: 1.1.0
- hastscript: 9.0.0
- property-information: 6.5.0
- vfile: 6.0.3
- vfile-location: 5.0.3
- web-namespaces: 2.0.1
-
- hast-util-is-element@3.0.0:
- dependencies:
- '@types/hast': 3.0.4
-
- hast-util-parse-selector@4.0.0:
- dependencies:
- '@types/hast': 3.0.4
-
- hast-util-raw@9.1.0:
- dependencies:
- '@types/hast': 3.0.4
- '@types/unist': 3.0.3
- '@ungap/structured-clone': 1.2.0
- hast-util-from-parse5: 8.0.2
- hast-util-to-parse5: 8.0.0
- html-void-elements: 3.0.0
- mdast-util-to-hast: 13.2.0
- parse5: 7.2.1
- unist-util-position: 5.0.0
- unist-util-visit: 5.0.0
- vfile: 6.0.3
- web-namespaces: 2.0.1
- zwitch: 2.0.4
-
- hast-util-to-estree@3.1.0:
- dependencies:
- '@types/estree': 1.0.6
- '@types/estree-jsx': 1.0.5
- '@types/hast': 3.0.4
- comma-separated-tokens: 2.0.3
- devlop: 1.1.0
- estree-util-attach-comments: 3.0.0
- estree-util-is-identifier-name: 3.0.0
- hast-util-whitespace: 3.0.0
- mdast-util-mdx-expression: 2.0.1
- mdast-util-mdx-jsx: 3.1.3
- mdast-util-mdxjs-esm: 2.0.1
- property-information: 6.5.0
- space-separated-tokens: 2.0.2
- style-to-object: 0.4.4
- unist-util-position: 5.0.0
- zwitch: 2.0.4
- transitivePeerDependencies:
- - supports-color
-
- hast-util-to-html@9.0.3:
- dependencies:
- '@types/hast': 3.0.4
- '@types/unist': 3.0.3
- ccount: 2.0.1
- comma-separated-tokens: 2.0.3
- hast-util-whitespace: 3.0.0
- html-void-elements: 3.0.0
- mdast-util-to-hast: 13.2.0
- property-information: 6.5.0
- space-separated-tokens: 2.0.2
- stringify-entities: 4.0.4
- zwitch: 2.0.4
-
hast-util-to-jsx-runtime@2.3.2:
dependencies:
'@types/estree': 1.0.6
@@ -48245,39 +45879,10 @@ snapshots:
transitivePeerDependencies:
- supports-color
- hast-util-to-parse5@8.0.0:
- dependencies:
- '@types/hast': 3.0.4
- comma-separated-tokens: 2.0.3
- devlop: 1.1.0
- property-information: 6.5.0
- space-separated-tokens: 2.0.2
- web-namespaces: 2.0.1
- zwitch: 2.0.4
-
- hast-util-to-string@3.0.1:
- dependencies:
- '@types/hast': 3.0.4
-
- hast-util-to-text@4.0.2:
- dependencies:
- '@types/hast': 3.0.4
- '@types/unist': 3.0.3
- hast-util-is-element: 3.0.0
- unist-util-find-after: 5.0.0
-
hast-util-whitespace@3.0.0:
dependencies:
'@types/hast': 3.0.4
- hastscript@9.0.0:
- dependencies:
- '@types/hast': 3.0.4
- comma-separated-tokens: 2.0.3
- hast-util-parse-selector: 4.0.0
- property-information: 6.5.0
- space-separated-tokens: 2.0.2
-
he@1.2.0: {}
heap-js@2.5.0: {}
@@ -48350,8 +45955,6 @@ snapshots:
html-url-attributes@3.0.1: {}
- html-void-elements@3.0.0: {}
-
htmlparser2@6.1.0:
dependencies:
domelementtype: 2.3.0
@@ -48581,8 +46184,6 @@ snapshots:
ini@4.1.1: {}
- inline-style-parser@0.1.1: {}
-
inline-style-parser@0.2.4: {}
inquirer-autocomplete-prompt@1.4.0(inquirer@8.2.6):
@@ -48624,10 +46225,6 @@ snapshots:
hasown: 2.0.2
side-channel: 1.1.0
- internmap@1.0.1: {}
-
- internmap@2.0.3: {}
-
into-stream@6.0.0:
dependencies:
from2: 2.3.0
@@ -48785,8 +46382,6 @@ snapshots:
is-error-instance@2.0.0: {}
- is-extendable@0.1.1: {}
-
is-extglob@2.1.1: {}
is-finalizationregistry@1.0.2:
@@ -49106,25 +46701,6 @@ snapshots:
- babel-plugin-macros
- supports-color
- jest-cli@29.7.0(@types/node@18.11.10)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@18.11.10)(typescript@5.6.3)):
- dependencies:
- '@jest/core': 29.7.0(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@18.11.10)(typescript@5.6.3))
- '@jest/test-result': 29.7.0
- '@jest/types': 29.6.3
- chalk: 4.1.2
- create-jest: 29.7.0(@types/node@18.11.10)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@18.11.10)(typescript@5.6.3))
- exit: 0.1.2
- import-local: 3.2.0
- jest-config: 29.7.0(@types/node@18.11.10)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@18.11.10)(typescript@5.6.3))
- jest-util: 29.7.0
- jest-validate: 29.7.0
- yargs: 17.7.2
- transitivePeerDependencies:
- - '@types/node'
- - babel-plugin-macros
- - supports-color
- - ts-node
-
jest-cli@29.7.0(@types/node@20.17.30)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@20.17.30)(typescript@5.7.2)):
dependencies:
'@jest/core': 29.7.0(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@20.17.30)(typescript@5.7.2))
@@ -49182,68 +46758,6 @@ snapshots:
- supports-color
- ts-node
- jest-config@29.7.0(@types/node@18.11.10)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@18.11.10)(typescript@5.6.3)):
- dependencies:
- '@babel/core': 7.26.0
- '@jest/test-sequencer': 29.7.0
- '@jest/types': 29.6.3
- babel-jest: 29.7.0(@babel/core@7.26.0)
- chalk: 4.1.2
- ci-info: 3.9.0
- deepmerge: 4.3.1
- glob: 7.2.3
- graceful-fs: 4.2.11
- jest-circus: 29.7.0(babel-plugin-macros@3.1.0)
- jest-environment-node: 29.7.0
- jest-get-type: 29.6.3
- jest-regex-util: 29.6.3
- jest-resolve: 29.7.0
- jest-runner: 29.7.0
- jest-util: 29.7.0
- jest-validate: 29.7.0
- micromatch: 4.0.8
- parse-json: 5.2.0
- pretty-format: 29.7.0
- slash: 3.0.0
- strip-json-comments: 3.1.1
- optionalDependencies:
- '@types/node': 18.11.10
- ts-node: 10.9.2(@types/node@18.11.10)(typescript@5.6.3)
- transitivePeerDependencies:
- - babel-plugin-macros
- - supports-color
-
- jest-config@29.7.0(@types/node@20.17.30)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@18.11.10)(typescript@5.6.3)):
- dependencies:
- '@babel/core': 7.26.0
- '@jest/test-sequencer': 29.7.0
- '@jest/types': 29.6.3
- babel-jest: 29.7.0(@babel/core@7.26.0)
- chalk: 4.1.2
- ci-info: 3.9.0
- deepmerge: 4.3.1
- glob: 7.2.3
- graceful-fs: 4.2.11
- jest-circus: 29.7.0(babel-plugin-macros@3.1.0)
- jest-environment-node: 29.7.0
- jest-get-type: 29.6.3
- jest-regex-util: 29.6.3
- jest-resolve: 29.7.0
- jest-runner: 29.7.0
- jest-util: 29.7.0
- jest-validate: 29.7.0
- micromatch: 4.0.8
- parse-json: 5.2.0
- pretty-format: 29.7.0
- slash: 3.0.0
- strip-json-comments: 3.1.1
- optionalDependencies:
- '@types/node': 20.17.30
- ts-node: 10.9.2(@types/node@18.11.10)(typescript@5.6.3)
- transitivePeerDependencies:
- - babel-plugin-macros
- - supports-color
-
jest-config@29.7.0(@types/node@20.17.30)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@20.17.30)(typescript@5.7.2)):
dependencies:
'@babel/core': 7.26.0
@@ -49630,18 +47144,6 @@ snapshots:
merge-stream: 2.0.0
supports-color: 8.1.1
- jest@29.7.0(@types/node@18.11.10)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@18.11.10)(typescript@5.6.3)):
- dependencies:
- '@jest/core': 29.7.0(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@18.11.10)(typescript@5.6.3))
- '@jest/types': 29.6.3
- import-local: 3.2.0
- jest-cli: 29.7.0(@types/node@18.11.10)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@18.11.10)(typescript@5.6.3))
- transitivePeerDependencies:
- - '@types/node'
- - babel-plugin-macros
- - supports-color
- - ts-node
-
jest@29.7.0(@types/node@20.17.30)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@20.17.30)(typescript@5.7.2)):
dependencies:
'@jest/core': 29.7.0(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@20.17.30)(typescript@5.7.2))
@@ -49678,8 +47180,6 @@ snapshots:
- supports-color
- ts-node
- jiti@1.21.6: {}
-
jiti@2.4.2: {}
jju@1.4.0: {}
@@ -49956,10 +47456,6 @@ snapshots:
dependencies:
commander: 2.20.3
- katex@0.16.11:
- dependencies:
- commander: 8.3.0
-
keep-func-props@6.0.0:
dependencies:
mimic-fn: 4.0.0
@@ -49972,8 +47468,6 @@ snapshots:
dependencies:
'@keyv/serialize': 1.0.1
- khroma@2.1.0: {}
-
kind-of@6.0.3: {}
klaviyo-api@18.0.0:
@@ -50027,14 +47521,6 @@ snapshots:
dotenv: 16.6.1
winston: 3.17.0
- langium@3.0.0:
- dependencies:
- chevrotain: 11.0.3
- chevrotain-allstar: 0.3.1(chevrotain@11.0.3)
- vscode-languageserver: 9.0.1
- vscode-languageserver-textdocument: 1.0.12
- vscode-uri: 3.0.8
-
language-subtag-registry@0.3.23: {}
language-tags@1.0.9:
@@ -50045,10 +47531,6 @@ snapshots:
dependencies:
package-json: 10.0.1
- layout-base@1.0.2: {}
-
- layout-base@2.0.1: {}
-
lazystream@1.0.1:
dependencies:
readable-stream: 2.3.8
@@ -50152,21 +47634,6 @@ snapshots:
transitivePeerDependencies:
- enquirer
- lint-staged@15.2.10:
- dependencies:
- chalk: 5.3.0
- commander: 12.1.0
- debug: 4.3.7(supports-color@9.4.0)
- execa: 8.0.1
- lilconfig: 3.1.3
- listr2: 8.2.5
- micromatch: 4.0.8
- pidtree: 0.6.0
- string-argv: 0.3.2
- yaml: 2.5.1
- transitivePeerDependencies:
- - supports-color
-
listhen@1.9.0:
dependencies:
'@parcel/watcher': 2.5.1
@@ -50201,15 +47668,6 @@ snapshots:
optionalDependencies:
enquirer: 2.4.1
- listr2@8.2.5:
- dependencies:
- cli-truncate: 4.0.0
- colorette: 2.0.20
- eventemitter3: 5.0.1
- log-update: 6.1.0
- rfdc: 1.4.1
- wrap-ansi: 9.0.0
-
livekit-server-sdk@2.13.0:
dependencies:
'@bufbuild/protobuf': 1.10.1
@@ -50516,8 +47974,6 @@ snapshots:
map-stream@0.1.0: {}
- markdown-extensions@2.0.0: {}
-
markdown-it-anchor@8.6.7(@types/markdown-it@14.1.2)(markdown-it@14.1.0):
dependencies:
'@types/markdown-it': 14.1.2
@@ -50536,21 +47992,10 @@ snapshots:
dependencies:
repeat-string: 1.6.1
- markdown-table@3.0.4: {}
-
- marked@13.0.3: {}
-
marked@4.3.0: {}
math-intrinsics@1.1.0: {}
- mathjax-full@3.2.2:
- dependencies:
- esm: 3.2.25
- mhchemparser: 4.2.1
- mj-context-menu: 0.6.1
- speech-rule-engine: 4.0.7
-
mathml-tag-names@2.1.3: {}
maxstache-stream@1.0.4:
@@ -50587,13 +48032,6 @@ snapshots:
unist-util-is: 4.1.0
unist-util-visit-parents: 3.1.1
- mdast-util-find-and-replace@3.0.1:
- dependencies:
- '@types/mdast': 4.0.4
- escape-string-regexp: 5.0.0
- unist-util-is: 6.0.0
- unist-util-visit-parents: 6.0.1
-
mdast-util-from-markdown@0.8.5:
dependencies:
'@types/mdast': 3.0.15
@@ -50621,17 +48059,6 @@ snapshots:
transitivePeerDependencies:
- supports-color
- mdast-util-frontmatter@2.0.1:
- dependencies:
- '@types/mdast': 4.0.4
- devlop: 1.1.0
- escape-string-regexp: 5.0.0
- mdast-util-from-markdown: 2.0.2
- mdast-util-to-markdown: 2.1.2
- micromark-extension-frontmatter: 2.0.0
- transitivePeerDependencies:
- - supports-color
-
mdast-util-gfm-autolink-literal@0.1.3:
dependencies:
ccount: 1.1.0
@@ -50640,64 +48067,19 @@ snapshots:
transitivePeerDependencies:
- supports-color
- mdast-util-gfm-autolink-literal@2.0.1:
- dependencies:
- '@types/mdast': 4.0.4
- ccount: 2.0.1
- devlop: 1.1.0
- mdast-util-find-and-replace: 3.0.1
- micromark-util-character: 2.1.1
-
- mdast-util-gfm-footnote@2.0.0:
- dependencies:
- '@types/mdast': 4.0.4
- devlop: 1.1.0
- mdast-util-from-markdown: 2.0.2
- mdast-util-to-markdown: 2.1.2
- micromark-util-normalize-identifier: 2.0.1
- transitivePeerDependencies:
- - supports-color
-
mdast-util-gfm-strikethrough@0.2.3:
dependencies:
mdast-util-to-markdown: 0.6.5
- mdast-util-gfm-strikethrough@2.0.0:
- dependencies:
- '@types/mdast': 4.0.4
- mdast-util-from-markdown: 2.0.2
- mdast-util-to-markdown: 2.1.2
- transitivePeerDependencies:
- - supports-color
-
mdast-util-gfm-table@0.1.6:
dependencies:
markdown-table: 2.0.0
mdast-util-to-markdown: 0.6.5
- mdast-util-gfm-table@2.0.0:
- dependencies:
- '@types/mdast': 4.0.4
- devlop: 1.1.0
- markdown-table: 3.0.4
- mdast-util-from-markdown: 2.0.2
- mdast-util-to-markdown: 2.1.2
- transitivePeerDependencies:
- - supports-color
-
mdast-util-gfm-task-list-item@0.1.6:
dependencies:
mdast-util-to-markdown: 0.6.5
- mdast-util-gfm-task-list-item@2.0.0:
- dependencies:
- '@types/mdast': 4.0.4
- devlop: 1.1.0
- mdast-util-from-markdown: 2.0.2
- mdast-util-to-markdown: 2.1.2
- transitivePeerDependencies:
- - supports-color
-
mdast-util-gfm@0.1.2:
dependencies:
mdast-util-gfm-autolink-literal: 0.1.3
@@ -50708,18 +48090,6 @@ snapshots:
transitivePeerDependencies:
- supports-color
- mdast-util-gfm@3.0.0:
- dependencies:
- mdast-util-from-markdown: 2.0.2
- mdast-util-gfm-autolink-literal: 2.0.1
- mdast-util-gfm-footnote: 2.0.0
- mdast-util-gfm-strikethrough: 2.0.0
- mdast-util-gfm-table: 2.0.0
- mdast-util-gfm-task-list-item: 2.0.0
- mdast-util-to-markdown: 2.1.2
- transitivePeerDependencies:
- - supports-color
-
mdast-util-heading-style@3.0.0:
dependencies:
'@types/mdast': 4.0.4
@@ -50730,18 +48100,6 @@ snapshots:
mdast-util-to-markdown: 0.6.5
repeat-string: 1.6.1
- mdast-util-math@3.0.0:
- dependencies:
- '@types/hast': 3.0.4
- '@types/mdast': 4.0.4
- devlop: 1.1.0
- longest-streak: 3.1.0
- mdast-util-from-markdown: 2.0.2
- mdast-util-to-markdown: 2.1.2
- unist-util-remove-position: 5.0.0
- transitivePeerDependencies:
- - supports-color
-
mdast-util-mdx-expression@2.0.1:
dependencies:
'@types/estree-jsx': 1.0.5
@@ -50770,16 +48128,6 @@ snapshots:
transitivePeerDependencies:
- supports-color
- mdast-util-mdx@3.0.0:
- dependencies:
- mdast-util-from-markdown: 2.0.2
- mdast-util-mdx-expression: 2.0.1
- mdast-util-mdx-jsx: 3.1.3
- mdast-util-mdxjs-esm: 2.0.1
- mdast-util-to-markdown: 2.1.2
- transitivePeerDependencies:
- - supports-color
-
mdast-util-mdxjs-esm@2.0.1:
dependencies:
'@types/estree-jsx': 1.0.5
@@ -50877,35 +48225,8 @@ snapshots:
merge2@1.4.1: {}
- mermaid@11.4.1:
- dependencies:
- '@braintree/sanitize-url': 7.1.0
- '@iconify/utils': 2.1.33
- '@mermaid-js/parser': 0.3.0
- '@types/d3': 7.4.3
- cytoscape: 3.30.4
- cytoscape-cose-bilkent: 4.1.0(cytoscape@3.30.4)
- cytoscape-fcose: 2.2.0(cytoscape@3.30.4)
- d3: 7.9.0
- d3-sankey: 0.12.3
- dagre-d3-es: 7.0.11
- dayjs: 1.11.13
- dompurify: 3.2.2
- katex: 0.16.11
- khroma: 2.1.0
- lodash-es: 4.17.21
- marked: 13.0.3
- roughjs: 4.6.6
- stylis: 4.3.4
- ts-dedent: 2.2.0
- uuid: 9.0.1
- transitivePeerDependencies:
- - supports-color
-
methods@1.1.2: {}
- mhchemparser@4.2.1: {}
-
micro-api-client@3.3.0: {}
micro-memoize@4.1.3: {}
@@ -50929,86 +48250,32 @@ snapshots:
micromark-util-symbol: 2.0.1
micromark-util-types: 2.0.1
- micromark-extension-frontmatter@2.0.0:
- dependencies:
- fault: 2.0.1
- micromark-util-character: 2.1.1
- micromark-util-symbol: 2.0.1
- micromark-util-types: 2.0.1
-
micromark-extension-gfm-autolink-literal@0.5.7:
dependencies:
micromark: 2.11.4
transitivePeerDependencies:
- supports-color
- micromark-extension-gfm-autolink-literal@2.1.0:
- dependencies:
- micromark-util-character: 2.1.1
- micromark-util-sanitize-uri: 2.0.1
- micromark-util-symbol: 2.0.1
- micromark-util-types: 2.0.1
-
- micromark-extension-gfm-footnote@2.1.0:
- dependencies:
- devlop: 1.1.0
- micromark-core-commonmark: 2.0.2
- micromark-factory-space: 2.0.1
- micromark-util-character: 2.1.1
- micromark-util-normalize-identifier: 2.0.1
- micromark-util-sanitize-uri: 2.0.1
- micromark-util-symbol: 2.0.1
- micromark-util-types: 2.0.1
-
micromark-extension-gfm-strikethrough@0.6.5:
dependencies:
micromark: 2.11.4
transitivePeerDependencies:
- supports-color
- micromark-extension-gfm-strikethrough@2.1.0:
- dependencies:
- devlop: 1.1.0
- micromark-util-chunked: 2.0.1
- micromark-util-classify-character: 2.0.1
- micromark-util-resolve-all: 2.0.1
- micromark-util-symbol: 2.0.1
- micromark-util-types: 2.0.1
-
micromark-extension-gfm-table@0.4.3:
dependencies:
micromark: 2.11.4
transitivePeerDependencies:
- supports-color
- micromark-extension-gfm-table@2.1.0:
- dependencies:
- devlop: 1.1.0
- micromark-factory-space: 2.0.1
- micromark-util-character: 2.1.1
- micromark-util-symbol: 2.0.1
- micromark-util-types: 2.0.1
-
micromark-extension-gfm-tagfilter@0.3.0: {}
- micromark-extension-gfm-tagfilter@2.0.0:
- dependencies:
- micromark-util-types: 2.0.1
-
micromark-extension-gfm-task-list-item@0.3.3:
dependencies:
micromark: 2.11.4
transitivePeerDependencies:
- supports-color
- micromark-extension-gfm-task-list-item@2.1.0:
- dependencies:
- devlop: 1.1.0
- micromark-factory-space: 2.0.1
- micromark-util-character: 2.1.1
- micromark-util-symbol: 2.0.1
- micromark-util-types: 2.0.1
-
micromark-extension-gfm@0.3.3:
dependencies:
micromark: 2.11.4
@@ -51020,17 +48287,6 @@ snapshots:
transitivePeerDependencies:
- supports-color
- micromark-extension-gfm@3.0.0:
- dependencies:
- micromark-extension-gfm-autolink-literal: 2.1.0
- micromark-extension-gfm-footnote: 2.1.0
- micromark-extension-gfm-strikethrough: 2.1.0
- micromark-extension-gfm-table: 2.1.0
- micromark-extension-gfm-tagfilter: 2.0.0
- micromark-extension-gfm-task-list-item: 2.1.0
- micromark-util-combine-extensions: 2.0.1
- micromark-util-types: 2.0.1
-
micromark-extension-math@0.1.2:
dependencies:
katex: 0.12.0
@@ -51038,68 +48294,6 @@ snapshots:
transitivePeerDependencies:
- supports-color
- micromark-extension-math@3.1.0:
- dependencies:
- '@types/katex': 0.16.7
- devlop: 1.1.0
- katex: 0.16.11
- micromark-factory-space: 2.0.1
- micromark-util-character: 2.1.1
- micromark-util-symbol: 2.0.1
- micromark-util-types: 2.0.1
-
- micromark-extension-mdx-expression@3.0.0:
- dependencies:
- '@types/estree': 1.0.6
- devlop: 1.1.0
- micromark-factory-mdx-expression: 2.0.2
- micromark-factory-space: 2.0.1
- micromark-util-character: 2.1.1
- micromark-util-events-to-acorn: 2.0.2
- micromark-util-symbol: 2.0.1
- micromark-util-types: 2.0.1
-
- micromark-extension-mdx-jsx@3.0.1:
- dependencies:
- '@types/acorn': 4.0.6
- '@types/estree': 1.0.6
- devlop: 1.1.0
- estree-util-is-identifier-name: 3.0.0
- micromark-factory-mdx-expression: 2.0.2
- micromark-factory-space: 2.0.1
- micromark-util-character: 2.1.1
- micromark-util-events-to-acorn: 2.0.2
- micromark-util-symbol: 2.0.1
- micromark-util-types: 2.0.1
- vfile-message: 4.0.2
-
- micromark-extension-mdx-md@2.0.0:
- dependencies:
- micromark-util-types: 2.0.1
-
- micromark-extension-mdxjs-esm@3.0.0:
- dependencies:
- '@types/estree': 1.0.6
- devlop: 1.1.0
- micromark-core-commonmark: 2.0.2
- micromark-util-character: 2.1.1
- micromark-util-events-to-acorn: 2.0.2
- micromark-util-symbol: 2.0.1
- micromark-util-types: 2.0.1
- unist-util-position-from-estree: 2.0.0
- vfile-message: 4.0.2
-
- micromark-extension-mdxjs@3.0.0:
- dependencies:
- acorn: 8.14.0
- acorn-jsx: 5.3.2(acorn@8.14.0)
- micromark-extension-mdx-expression: 3.0.0
- micromark-extension-mdx-jsx: 3.0.1
- micromark-extension-mdx-md: 2.0.0
- micromark-extension-mdxjs-esm: 3.0.0
- micromark-util-combine-extensions: 2.0.1
- micromark-util-types: 2.0.1
-
micromark-factory-destination@2.0.1:
dependencies:
micromark-util-character: 2.1.1
@@ -51113,18 +48307,6 @@ snapshots:
micromark-util-symbol: 2.0.1
micromark-util-types: 2.0.1
- micromark-factory-mdx-expression@2.0.2:
- dependencies:
- '@types/estree': 1.0.6
- devlop: 1.1.0
- micromark-factory-space: 2.0.1
- micromark-util-character: 2.1.1
- micromark-util-events-to-acorn: 2.0.2
- micromark-util-symbol: 2.0.1
- micromark-util-types: 2.0.1
- unist-util-position-from-estree: 2.0.0
- vfile-message: 4.0.2
-
micromark-factory-space@2.0.1:
dependencies:
micromark-util-character: 2.1.1
@@ -51177,17 +48359,6 @@ snapshots:
micromark-util-encode@2.0.1: {}
- micromark-util-events-to-acorn@2.0.2:
- dependencies:
- '@types/acorn': 4.0.6
- '@types/estree': 1.0.6
- '@types/unist': 3.0.3
- devlop: 1.1.0
- estree-util-visit: 2.0.0
- micromark-util-symbol: 2.0.1
- micromark-util-types: 2.0.1
- vfile-message: 4.0.2
-
micromark-util-html-tag-name@2.0.1: {}
micromark-util-normalize-identifier@2.0.1:
@@ -51334,8 +48505,6 @@ snapshots:
mitt@3.0.1: {}
- mj-context-menu@0.6.1: {}
-
mkdirp-classic@0.5.3: {}
mkdirp@0.5.6:
@@ -51732,47 +48901,8 @@ snapshots:
netmask@2.0.2: {}
- next-sitemap@4.2.3(next@14.2.19(@babel/core@8.0.0-alpha.13)(@opentelemetry/api@1.9.0)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)):
- dependencies:
- '@corex/deepmerge': 4.0.43
- '@next/env': 13.5.11
- fast-glob: 3.3.2
- minimist: 1.2.8
- next: 14.2.19(@babel/core@8.0.0-alpha.13)(@opentelemetry/api@1.9.0)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
-
- next-themes@0.4.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1):
- dependencies:
- react: 18.3.1
- react-dom: 18.3.1(react@18.3.1)
-
next-tick@1.1.0: {}
- next@14.2.19(@babel/core@8.0.0-alpha.13)(@opentelemetry/api@1.9.0)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1):
- dependencies:
- '@next/env': 14.2.19
- '@swc/helpers': 0.5.5
- busboy: 1.6.0
- caniuse-lite: 1.0.30001683
- graceful-fs: 4.2.11
- postcss: 8.4.31
- react: 18.3.1
- react-dom: 18.3.1(react@18.3.1)
- styled-jsx: 5.1.1(@babel/core@8.0.0-alpha.13)(babel-plugin-macros@3.1.0)(react@18.3.1)
- optionalDependencies:
- '@next/swc-darwin-arm64': 14.2.19
- '@next/swc-darwin-x64': 14.2.19
- '@next/swc-linux-arm64-gnu': 14.2.19
- '@next/swc-linux-arm64-musl': 14.2.19
- '@next/swc-linux-x64-gnu': 14.2.19
- '@next/swc-linux-x64-musl': 14.2.19
- '@next/swc-win32-arm64-msvc': 14.2.19
- '@next/swc-win32-ia32-msvc': 14.2.19
- '@next/swc-win32-x64-msvc': 14.2.19
- '@opentelemetry/api': 1.9.0
- transitivePeerDependencies:
- - '@babel/core'
- - babel-plugin-macros
-
next@15.0.3(@babel/core@8.0.0-alpha.13)(@opentelemetry/api@1.9.0)(babel-plugin-macros@3.1.0)(react-dom@19.0.0-rc-66855b96-20241106(react@19.0.0-rc-66855b96-20241106))(react@19.0.0-rc-66855b96-20241106):
dependencies:
'@next/env': 15.0.3
@@ -51799,76 +48929,8 @@ snapshots:
- '@babel/core'
- babel-plugin-macros
- nextra-theme-docs@3.3.1(next@14.2.19(@babel/core@8.0.0-alpha.13)(@opentelemetry/api@1.9.0)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(nextra@3.3.1(@types/react@18.3.12)(acorn@8.14.0)(next@14.2.19(@babel/core@8.0.0-alpha.13)(@opentelemetry/api@1.9.0)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3))(react-dom@18.3.1(react@18.3.1))(react@18.3.1):
- dependencies:
- '@headlessui/react': 2.2.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
- clsx: 2.1.1
- escape-string-regexp: 5.0.0
- flexsearch: 0.7.43
- next: 14.2.19(@babel/core@8.0.0-alpha.13)(@opentelemetry/api@1.9.0)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
- next-themes: 0.4.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
- nextra: 3.3.1(@types/react@18.3.12)(acorn@8.14.0)(next@14.2.19(@babel/core@8.0.0-alpha.13)(@opentelemetry/api@1.9.0)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)
- react: 18.3.1
- react-dom: 18.3.1(react@18.3.1)
- scroll-into-view-if-needed: 3.1.0
- zod: 3.24.4
-
- nextra@3.3.1(@types/react@18.3.12)(acorn@8.14.0)(next@14.2.19(@babel/core@8.0.0-alpha.13)(@opentelemetry/api@1.9.0)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3):
- dependencies:
- '@formatjs/intl-localematcher': 0.5.8
- '@headlessui/react': 2.2.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
- '@mdx-js/mdx': 3.1.0(acorn@8.14.0)
- '@mdx-js/react': 3.1.0(@types/react@18.3.12)(react@18.3.1)
- '@napi-rs/simple-git': 0.1.19
- '@shikijs/twoslash': 1.24.0(typescript@5.6.3)
- '@theguild/remark-mermaid': 0.1.3(react@18.3.1)
- '@theguild/remark-npm2yarn': 0.3.3
- better-react-mathjax: 2.0.3(react@18.3.1)
- clsx: 2.1.1
- estree-util-to-js: 2.0.0
- estree-util-value-to-estree: 3.2.1
- github-slugger: 2.0.0
- graceful-fs: 4.2.11
- gray-matter: 4.0.3
- hast-util-to-estree: 3.1.0
- katex: 0.16.11
- mdast-util-from-markdown: 2.0.2
- mdast-util-gfm: 3.0.0
- mdast-util-to-hast: 13.2.0
- negotiator: 1.0.0
- next: 14.2.19(@babel/core@8.0.0-alpha.13)(@opentelemetry/api@1.9.0)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
- p-limit: 6.2.0
- react: 18.3.1
- react-dom: 18.3.1(react@18.3.1)
- react-medium-image-zoom: 5.2.12(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
- rehype-katex: 7.0.1
- rehype-pretty-code: 0.14.0(shiki@1.24.0)
- rehype-raw: 7.0.0
- remark-frontmatter: 5.0.0
- remark-gfm: 4.0.0
- remark-math: 6.0.0
- remark-reading-time: 2.0.1
- remark-smartypants: 3.0.2
- shiki: 1.24.0
- slash: 5.1.0
- title: 4.0.1
- unist-util-remove: 4.0.0
- unist-util-visit: 5.0.0
- yaml: 2.6.1
- zod: 3.24.4
- zod-validation-error: 3.4.0(zod@3.24.4)
- transitivePeerDependencies:
- - '@types/react'
- - acorn
- - supports-color
- - typescript
-
nice-try@1.0.5: {}
- nlcst-to-string@4.0.0:
- dependencies:
- '@types/nlcst': 2.0.3
-
node-abort-controller@3.1.1: {}
node-addon-api@6.1.0: {}
@@ -52024,8 +49086,6 @@ snapshots:
normalize-path@3.0.0: {}
- normalize-range@0.1.2: {}
-
normalize-url@6.1.0: {}
normalize-url@8.0.1: {}
@@ -52055,8 +49115,6 @@ snapshots:
dependencies:
path-key: 4.0.0
- npm-to-yarn@3.0.0: {}
-
npmlog@4.1.2:
dependencies:
are-we-there-yet: 1.1.7
@@ -52302,12 +49360,6 @@ snapshots:
node-fetch: 2.7.0
qs: 6.14.0
- oniguruma-to-es@0.7.0:
- dependencies:
- emoji-regex-xs: 1.0.0
- regex: 5.0.2
- regex-recursion: 4.3.0
-
open@10.1.2:
dependencies:
default-browser: 5.2.1
@@ -52452,10 +49504,6 @@ snapshots:
dependencies:
yocto-queue: 1.1.1
- p-limit@6.2.0:
- dependencies:
- yocto-queue: 1.1.1
-
p-locate@4.1.0:
dependencies:
p-limit: 2.3.0
@@ -52563,8 +49611,6 @@ snapshots:
dependencies:
chalk: 2.4.2
- package-manager-detector@0.2.7: {}
-
package@1.0.1: {}
pako@2.1.0: {}
@@ -52632,15 +49678,6 @@ snapshots:
index-to-position: 1.1.0
type-fest: 4.41.0
- parse-latin@7.0.0:
- dependencies:
- '@types/nlcst': 2.0.3
- '@types/unist': 3.0.3
- nlcst-to-string: 4.0.0
- unist-util-modify-children: 4.0.0
- unist-util-visit-children: 3.0.0
- vfile: 6.0.3
-
parse-link-header@1.0.1:
dependencies:
xtend: 4.0.2
@@ -52651,14 +49688,8 @@ snapshots:
parse-ms@4.0.0: {}
- parse-numeric-range@1.3.0: {}
-
parse-passwd@1.0.0: {}
- parse5@7.2.1:
- dependencies:
- entities: 4.5.0
-
parseley@0.12.1:
dependencies:
leac: 0.6.0
@@ -52673,8 +49704,6 @@ snapshots:
path-browserify@1.0.1: {}
- path-data-parser@0.1.0: {}
-
path-exists@3.0.0: {}
path-exists@4.0.0: {}
@@ -52795,10 +49824,6 @@ snapshots:
pidtree@0.5.0: {}
- pidtree@0.6.0: {}
-
- pify@2.3.0: {}
-
pify@4.0.1: {}
pino-abstract-transport@2.0.0:
@@ -52886,37 +49911,10 @@ snapshots:
pnpm@9.14.2: {}
- points-on-curve@0.2.0: {}
-
- points-on-path@0.2.1:
- dependencies:
- path-data-parser: 0.1.0
- points-on-curve: 0.2.0
-
pop-iterate@1.0.1: {}
possible-typed-array-names@1.0.0: {}
- postcss-import@15.1.0(postcss@8.4.49):
- dependencies:
- postcss: 8.4.49
- postcss-value-parser: 4.2.0
- read-cache: 1.0.0
- resolve: 1.22.8
-
- postcss-js@4.0.1(postcss@8.4.49):
- dependencies:
- camelcase-css: 2.0.1
- postcss: 8.4.49
-
- postcss-load-config@4.0.2(postcss@8.4.49)(ts-node@10.9.2(@types/node@18.11.10)(typescript@5.6.3)):
- dependencies:
- lilconfig: 3.1.3
- yaml: 2.6.1
- optionalDependencies:
- postcss: 8.4.49
- ts-node: 10.9.2(@types/node@18.11.10)(typescript@5.6.3)
-
postcss-load-config@6.0.1(jiti@2.4.2)(postcss@8.5.6)(tsx@4.19.4)(yaml@2.8.0):
dependencies:
lilconfig: 3.1.3
@@ -52926,11 +49924,6 @@ snapshots:
tsx: 4.19.4
yaml: 2.8.0
- postcss-nested@6.2.0(postcss@8.4.49):
- dependencies:
- postcss: 8.4.49
- postcss-selector-parser: 6.1.2
-
postcss-resolve-nested-selector@0.1.6: {}
postcss-safe-parser@7.0.1(postcss@8.4.49):
@@ -53039,8 +50032,6 @@ snapshots:
printj@1.3.1: {}
- prismjs@1.30.0: {}
-
process-nextick-args@2.0.1: {}
process-warning@3.0.0: {}
@@ -53599,11 +50590,6 @@ snapshots:
transitivePeerDependencies:
- supports-color
- react-medium-image-zoom@5.2.12(react-dom@18.3.1(react@18.3.1))(react@18.3.1):
- dependencies:
- react: 18.3.1
- react-dom: 18.3.1(react@18.3.1)
-
react-select@5.8.3(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1):
dependencies:
'@babel/runtime': 7.26.0
@@ -53662,10 +50648,6 @@ snapshots:
react@19.0.0-rc-66855b96-20241106: {}
- read-cache@1.0.0:
- dependencies:
- pify: 2.3.0
-
read-package-up@11.0.0:
dependencies:
find-up-simple: 1.0.1
@@ -53739,8 +50721,6 @@ snapshots:
readdirp@4.1.2: {}
- reading-time@1.5.0: {}
-
real-require@0.2.0: {}
recast@0.23.9:
@@ -53751,36 +50731,6 @@ snapshots:
tiny-invariant: 1.3.3
tslib: 2.8.1
- recma-build-jsx@1.0.0:
- dependencies:
- '@types/estree': 1.0.6
- estree-util-build-jsx: 3.0.1
- vfile: 6.0.3
-
- recma-jsx@1.0.0(acorn@8.14.0):
- dependencies:
- acorn-jsx: 5.3.2(acorn@8.14.0)
- estree-util-to-js: 2.0.0
- recma-parse: 1.0.0
- recma-stringify: 1.0.0
- unified: 11.0.5
- transitivePeerDependencies:
- - acorn
-
- recma-parse@1.0.0:
- dependencies:
- '@types/estree': 1.0.6
- esast-util-from-js: 2.0.1
- unified: 11.0.5
- vfile: 6.0.3
-
- recma-stringify@1.0.0:
- dependencies:
- '@types/estree': 1.0.6
- estree-util-to-js: 2.0.0
- unified: 11.0.5
- vfile: 6.0.3
-
recurly@3.30.0: {}
redeyed@0.4.4:
@@ -53819,16 +50769,6 @@ snapshots:
dependencies:
'@babel/runtime': 7.26.0
- regex-recursion@4.3.0:
- dependencies:
- regex-utilities: 2.3.0
-
- regex-utilities@2.3.0: {}
-
- regex@5.0.2:
- dependencies:
- regex-utilities: 2.3.0
-
regexp-tree@0.1.27: {}
regexp.prototype.flags@1.5.3:
@@ -53861,57 +50801,8 @@ snapshots:
dependencies:
jsesc: 3.0.2
- rehype-katex@7.0.1:
- dependencies:
- '@types/hast': 3.0.4
- '@types/katex': 0.16.7
- hast-util-from-html-isomorphic: 2.0.0
- hast-util-to-text: 4.0.2
- katex: 0.16.11
- unist-util-visit-parents: 6.0.1
- vfile: 6.0.3
-
- rehype-parse@9.0.1:
- dependencies:
- '@types/hast': 3.0.4
- hast-util-from-html: 2.0.3
- unified: 11.0.5
-
- rehype-pretty-code@0.14.0(shiki@1.24.0):
- dependencies:
- '@types/hast': 3.0.4
- hast-util-to-string: 3.0.1
- parse-numeric-range: 1.3.0
- rehype-parse: 9.0.1
- shiki: 1.24.0
- unified: 11.0.5
- unist-util-visit: 5.0.0
-
- rehype-raw@7.0.0:
- dependencies:
- '@types/hast': 3.0.4
- hast-util-raw: 9.1.0
- vfile: 6.0.3
-
- rehype-recma@1.0.0:
- dependencies:
- '@types/estree': 1.0.6
- '@types/hast': 3.0.4
- hast-util-to-estree: 3.1.0
- transitivePeerDependencies:
- - supports-color
-
reinterval@1.1.0: {}
- remark-frontmatter@5.0.0:
- dependencies:
- '@types/mdast': 4.0.4
- mdast-util-frontmatter: 2.0.1
- micromark-extension-frontmatter: 2.0.0
- unified: 11.0.5
- transitivePeerDependencies:
- - supports-color
-
remark-gfm@1.0.0:
dependencies:
mdast-util-gfm: 0.1.2
@@ -53919,17 +50810,6 @@ snapshots:
transitivePeerDependencies:
- supports-color
- remark-gfm@4.0.0:
- dependencies:
- '@types/mdast': 4.0.4
- mdast-util-gfm: 3.0.0
- micromark-extension-gfm: 3.0.0
- remark-parse: 11.0.0
- remark-stringify: 11.0.0
- unified: 11.0.5
- transitivePeerDependencies:
- - supports-color
-
remark-lint-blockquote-indentation@4.0.0:
dependencies:
'@types/mdast': 4.0.4
@@ -54067,22 +50947,6 @@ snapshots:
transitivePeerDependencies:
- supports-color
- remark-math@6.0.0:
- dependencies:
- '@types/mdast': 4.0.4
- mdast-util-math: 3.0.0
- micromark-extension-math: 3.1.0
- unified: 11.0.5
- transitivePeerDependencies:
- - supports-color
-
- remark-mdx@3.1.0:
- dependencies:
- mdast-util-mdx: 3.0.0
- micromark-extension-mdxjs: 3.0.0
- transitivePeerDependencies:
- - supports-color
-
remark-message-control@8.0.0:
dependencies:
'@types/mdast': 4.0.4
@@ -54127,13 +50991,6 @@ snapshots:
transitivePeerDependencies:
- supports-color
- remark-reading-time@2.0.1:
- dependencies:
- estree-util-is-identifier-name: 2.1.0
- estree-util-value-to-estree: 1.3.0
- reading-time: 1.5.0
- unist-util-visit: 3.1.0
-
remark-rehype@11.1.1:
dependencies:
'@types/hast': 3.0.4
@@ -54142,13 +50999,6 @@ snapshots:
unified: 11.0.5
vfile: 6.0.3
- remark-smartypants@3.0.2:
- dependencies:
- retext: 9.0.0
- retext-smartypants: 6.2.0
- unified: 11.0.5
- unist-util-visit: 5.0.0
-
remark-stringify@11.0.0:
dependencies:
'@types/mdast': 4.0.4
@@ -54292,31 +51142,6 @@ snapshots:
ret@0.4.3: {}
- retext-latin@4.0.0:
- dependencies:
- '@types/nlcst': 2.0.3
- parse-latin: 7.0.0
- unified: 11.0.5
-
- retext-smartypants@6.2.0:
- dependencies:
- '@types/nlcst': 2.0.3
- nlcst-to-string: 4.0.0
- unist-util-visit: 5.0.0
-
- retext-stringify@4.0.0:
- dependencies:
- '@types/nlcst': 2.0.3
- nlcst-to-string: 4.0.0
- unified: 11.0.5
-
- retext@9.0.0:
- dependencies:
- '@types/nlcst': 2.0.3
- retext-latin: 4.0.0
- retext-stringify: 4.0.0
- unified: 11.0.5
-
retry-request@5.0.2:
dependencies:
debug: 4.4.1(supports-color@10.0.0)
@@ -54371,8 +51196,6 @@ snapshots:
hash-base: 3.1.0
inherits: 2.0.4
- robust-predicates@3.0.2: {}
-
rolldown-plugin-dts@0.13.12(rolldown@1.0.0-beta.9)(typescript@5.9.2):
dependencies:
'@babel/generator': 7.27.5
@@ -54435,13 +51258,6 @@ snapshots:
rootpath@0.1.2: {}
- roughjs@4.6.6:
- dependencies:
- hachure-fill: 0.5.2
- path-data-parser: 0.1.0
- points-on-curve: 0.2.0
- points-on-path: 0.2.1
-
router@2.2.0:
dependencies:
debug: 4.4.1(supports-color@10.0.0)
@@ -54467,8 +51283,6 @@ snapshots:
dependencies:
queue-microtask: 1.2.3
- rw@1.3.3: {}
-
rxjs@6.6.7:
dependencies:
tslib: 1.14.1
@@ -54543,17 +51357,6 @@ snapshots:
scmp@2.1.0: {}
- scroll-into-view-if-needed@3.1.0:
- dependencies:
- compute-scroll-into-view: 3.1.0
-
- search-insights@2.17.3: {}
-
- section-matter@1.0.0:
- dependencies:
- extend-shallow: 2.0.1
- kind-of: 6.0.3
-
secure-json-parse@2.7.0: {}
seek-bzip@1.0.6:
@@ -54710,6 +51513,7 @@ snapshots:
'@img/sharp-wasm32': 0.33.5
'@img/sharp-win32-ia32': 0.33.5
'@img/sharp-win32-x64': 0.33.5
+ optional: true
sharp@0.34.3:
dependencies:
@@ -54756,15 +51560,6 @@ snapshots:
shell-quote@1.8.2: {}
- shiki@1.24.0:
- dependencies:
- '@shikijs/core': 1.24.0
- '@shikijs/engine-javascript': 1.24.0
- '@shikijs/engine-oniguruma': 1.24.0
- '@shikijs/types': 1.24.0
- '@shikijs/vscode-textmate': 9.3.0
- '@types/hast': 3.0.4
-
shopify-api-node@3.14.2:
dependencies:
got: 11.8.6
@@ -55016,12 +51811,6 @@ snapshots:
spdx-license-ids@3.0.20: {}
- speech-rule-engine@4.0.7:
- dependencies:
- commander: 9.2.0
- wicked-good-xpath: 1.3.0
- xmldom-sre: 0.1.31
-
split-on-first@1.1.0: {}
split-on-first@3.0.0: {}
@@ -55285,8 +52074,6 @@ snapshots:
dependencies:
ansi-regex: 6.1.0
- strip-bom-string@1.0.0: {}
-
strip-bom@3.0.0: {}
strip-bom@4.0.0: {}
@@ -55329,22 +52116,10 @@ snapshots:
stubs@3.0.0: {}
- style-to-object@0.4.4:
- dependencies:
- inline-style-parser: 0.1.1
-
style-to-object@1.0.8:
dependencies:
inline-style-parser: 0.2.4
- styled-jsx@5.1.1(@babel/core@8.0.0-alpha.13)(babel-plugin-macros@3.1.0)(react@18.3.1):
- dependencies:
- client-only: 0.0.1
- react: 18.3.1
- optionalDependencies:
- '@babel/core': 8.0.0-alpha.13
- babel-plugin-macros: 3.1.0
-
styled-jsx@5.1.6(@babel/core@8.0.0-alpha.13)(babel-plugin-macros@3.1.0)(react@19.0.0-rc-66855b96-20241106):
dependencies:
client-only: 0.0.1
@@ -55414,8 +52189,6 @@ snapshots:
stylis@4.2.0: {}
- stylis@4.3.4: {}
-
sucrase@3.35.0:
dependencies:
'@jridgewell/gen-mapping': 0.3.5
@@ -55574,8 +52347,6 @@ snapshots:
system-architecture@0.1.0: {}
- tabbable@6.2.0: {}
-
table-layout@1.0.2:
dependencies:
array-back: 4.0.2
@@ -55591,33 +52362,6 @@ snapshots:
string-width: 4.2.3
strip-ansi: 6.0.1
- tailwindcss@3.4.16(ts-node@10.9.2(@types/node@18.11.10)(typescript@5.6.3)):
- dependencies:
- '@alloc/quick-lru': 5.2.0
- arg: 5.0.2
- chokidar: 3.6.0
- didyoumean: 1.2.2
- dlv: 1.1.3
- fast-glob: 3.3.2
- glob-parent: 6.0.2
- is-glob: 4.0.3
- jiti: 1.21.6
- lilconfig: 3.1.3
- micromatch: 4.0.8
- normalize-path: 3.0.0
- object-hash: 3.0.0
- picocolors: 1.1.1
- postcss: 8.4.49
- postcss-import: 15.1.0(postcss@8.4.49)
- postcss-js: 4.0.1(postcss@8.4.49)
- postcss-load-config: 4.0.2(postcss@8.4.49)(ts-node@10.9.2(@types/node@18.11.10)(typescript@5.6.3))
- postcss-nested: 6.2.0(postcss@8.4.49)
- postcss-selector-parser: 6.1.2
- resolve: 1.22.8
- sucrase: 3.35.0
- transitivePeerDependencies:
- - ts-node
-
tapable@2.2.1: {}
tar-fs@2.1.1:
@@ -55784,12 +52528,6 @@ snapshots:
dependencies:
tslib: 2.8.1
- title@4.0.1:
- dependencies:
- arg: 5.0.2
- chalk: 5.3.0
- clipboardy: 4.0.0
-
tlds@1.252.0: {}
tlhunter-sorted-set@0.1.0: {}
@@ -55892,8 +52630,6 @@ snapshots:
dependencies:
typescript: 5.9.2
- ts-dedent@2.2.0: {}
-
ts-interface-checker@0.1.13: {}
ts-jest@29.2.5(@babel/core@7.26.0)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.26.0))(jest@29.7.0(@types/node@20.17.30)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@20.17.30)(typescript@5.7.2)))(typescript@5.7.2):
@@ -55934,25 +52670,6 @@ snapshots:
'@jest/types': 29.6.3
babel-jest: 29.7.0(@babel/core@8.0.0-alpha.13)
- ts-node@10.9.2(@types/node@18.11.10)(typescript@5.6.3):
- dependencies:
- '@cspotcode/source-map-support': 0.8.1
- '@tsconfig/node10': 1.0.11
- '@tsconfig/node12': 1.0.11
- '@tsconfig/node14': 1.0.3
- '@tsconfig/node16': 1.0.4
- '@types/node': 18.11.10
- acorn: 8.14.0
- acorn-walk: 8.3.4
- arg: 4.1.3
- create-require: 1.1.1
- diff: 4.0.2
- make-error: 1.3.6
- typescript: 5.6.3
- v8-compile-cache-lib: 3.0.1
- yn: 3.1.1
- optional: true
-
ts-node@10.9.2(@types/node@20.17.30)(typescript@5.7.2):
dependencies:
'@cspotcode/source-map-support': 0.8.1
@@ -56227,16 +52944,6 @@ snapshots:
- debug
- supports-color
- twoslash-protocol@0.2.12: {}
-
- twoslash@0.2.12(typescript@5.6.3):
- dependencies:
- '@typescript/vfs': 1.6.0(typescript@5.6.3)
- twoslash-protocol: 0.2.12
- typescript: 5.6.3
- transitivePeerDependencies:
- - supports-color
-
type-check@0.3.2:
dependencies:
prelude-ls: 1.1.2
@@ -56457,45 +53164,16 @@ snapshots:
trough: 1.0.5
vfile: 4.2.1
- unist-util-find-after@5.0.0:
- dependencies:
- '@types/unist': 3.0.3
- unist-util-is: 6.0.0
-
unist-util-is@4.1.0: {}
- unist-util-is@5.2.1:
- dependencies:
- '@types/unist': 2.0.11
-
unist-util-is@6.0.0:
dependencies:
'@types/unist': 3.0.3
- unist-util-modify-children@4.0.0:
- dependencies:
- '@types/unist': 3.0.3
- array-iterate: 2.0.1
-
- unist-util-position-from-estree@2.0.0:
- dependencies:
- '@types/unist': 3.0.3
-
unist-util-position@5.0.0:
dependencies:
'@types/unist': 3.0.3
- unist-util-remove-position@5.0.0:
- dependencies:
- '@types/unist': 3.0.3
- unist-util-visit: 5.0.0
-
- unist-util-remove@4.0.0:
- dependencies:
- '@types/unist': 3.0.3
- unist-util-is: 6.0.0
- unist-util-visit-parents: 6.0.1
-
unist-util-stringify-position@2.0.3:
dependencies:
'@types/unist': 2.0.11
@@ -56504,31 +53182,16 @@ snapshots:
dependencies:
'@types/unist': 3.0.3
- unist-util-visit-children@3.0.0:
- dependencies:
- '@types/unist': 3.0.3
-
unist-util-visit-parents@3.1.1:
dependencies:
'@types/unist': 2.0.11
unist-util-is: 4.1.0
- unist-util-visit-parents@4.1.1:
- dependencies:
- '@types/unist': 2.0.11
- unist-util-is: 5.2.1
-
unist-util-visit-parents@6.0.1:
dependencies:
'@types/unist': 3.0.3
unist-util-is: 6.0.0
- unist-util-visit@3.1.0:
- dependencies:
- '@types/unist': 2.0.11
- unist-util-is: 5.2.1
- unist-util-visit-parents: 4.1.1
-
unist-util-visit@5.0.0:
dependencies:
'@types/unist': 3.0.3
@@ -56832,21 +53495,6 @@ snapshots:
acorn: 8.14.0
acorn-walk: 8.3.4
- vscode-jsonrpc@8.2.0: {}
-
- vscode-languageserver-protocol@3.17.5:
- dependencies:
- vscode-jsonrpc: 8.2.0
- vscode-languageserver-types: 3.17.5
-
- vscode-languageserver-textdocument@1.0.12: {}
-
- vscode-languageserver-types@3.17.5: {}
-
- vscode-languageserver@9.0.1:
- dependencies:
- vscode-languageserver-protocol: 3.17.5
-
vscode-uri@3.0.8: {}
vue@2.7.16:
@@ -56872,8 +53520,6 @@ snapshots:
weak-map@1.0.8: {}
- web-namespaces@2.0.1: {}
-
web-streams-polyfill@3.3.3: {}
web-streams-polyfill@4.0.0-beta.3: {}
@@ -56982,8 +53628,6 @@ snapshots:
dependencies:
isexe: 3.1.1
- wicked-good-xpath@1.3.0: {}
-
wide-align@1.1.5:
dependencies:
string-width: 4.2.3
@@ -57149,8 +53793,6 @@ snapshots:
xmlcreate@2.0.4: {}
- xmldom-sre@0.1.31: {}
-
xmldom@0.6.0: {}
xmlrpc@1.3.2:
@@ -57181,8 +53823,6 @@ snapshots:
yaml@1.10.2: {}
- yaml@2.5.1: {}
-
yaml@2.6.1: {}
yaml@2.8.0: {}
@@ -57267,10 +53907,6 @@ snapshots:
dependencies:
zod: 3.25.67
- zod-validation-error@3.4.0(zod@3.24.4):
- dependencies:
- zod: 3.24.4
-
zod@3.24.1: {}
zod@3.24.4: {}
diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml
index 564603f6bdb0c..7bc0adab16f8e 100644
--- a/pnpm-workspace.yaml
+++ b/pnpm-workspace.yaml
@@ -4,6 +4,5 @@ packages:
- 'helpers/**'
- 'platform/**'
- 'packages/**'
- - 'docs-v2/**'
- 'scripts/**'
- 'modelcontextprotocol/**'
diff --git a/vercel.json b/vercel.json
deleted file mode 100644
index 299a89623b8bb..0000000000000
--- a/vercel.json
+++ /dev/null
@@ -1,238 +0,0 @@
-{
- "rewrites": [
- {
- "source": "/docs/v2",
- "destination": "/"
- },
- {
- "source": "/docs/v2/(.*)",
- "destination": "/$1"
- },
- {
- "source": "/docs/(.*)",
- "destination": "/$1"
- },
- {
- "source": "/docs-v2/(.*)",
- "destination": "/$1"
- },
- {
- "source": "/docs/assets/(.*)",
- "destination": "/assets/$1"
- }
- ],
- "redirects": [
- {
- "source": "/docs-v2",
- "destination": "/docs/"
- },
- {
- "source": "/docs-v2/(.*)",
- "destination": "/docs/$1"
- },
- {
- "source": "/docs/v2",
- "destination": "/docs"
- },
- {
- "source": "/docs/v2/(.*)",
- "destination": "/docs/$1"
- },
- {
- "source": "/docs/notebook/actions/",
- "destination": "/workflows/steps/actions/"
- },
- {
- "source": "/docs/cron",
- "destination": "/workflows/steps/triggers"
- },
- {
- "source": "/docs/notebook",
- "destination": "/workflows/steps"
- },
- {
- "source": "/docs/workflows/fork",
- "destination": "/workflows/copy"
- },
- {
- "source": "/docs/notebook/fork",
- "destination": "/workflows/copy"
- },
- {
- "source": "/docs/notebook/inspector/",
- "destination": "/workflows/events/inspect/"
- },
- {
- "source": "/docs/notebook/destinations/s3/",
- "destination": "/destinations/s3/"
- },
- {
- "source": "/docs/notebook/destinations/sse/",
- "destination": "/destinations/sse/"
- },
- {
- "source": "/docs/notebook/destinations/snowflake/",
- "destination": "/destinations/snowflake/"
- },
- {
- "source": "/docs/notebook/destinations/http/",
- "destination": "/destinations/http/"
- },
- {
- "source": "/docs/notebook/destinations/email/",
- "destination": "/destinations/email/"
- },
- {
- "source": "/docs/notebook/destinations/",
- "destination": "/destinations/"
- },
- {
- "source": "/docs/notebook/code/",
- "destination": "/workflows/steps/code/"
- },
- {
- "source": "/docs/notebook/observability/",
- "destination": "/workflows/events/inspect/"
- },
- {
- "source": "/docs/notebook/sources/",
- "destination": "/workflows/steps/triggers/"
- },
- {
- "source": "/docs/security/",
- "destination": "/docs/privacy-and-security/"
- },
- {
- "source": "/docs/notebook/sql/",
- "destination": "/destinations/"
- },
- {
- "source": "/docs/what-is-pipedream/",
- "destination": "/"
- },
- {
- "source": "/docs/apps/intercom",
- "destination": "https://pipedream.com/apps/intercom"
- },
- {
- "source": "/docs/apps/zoho-books",
- "destination": "https://pipedream.com/apps/zoho_books"
- },
- {
- "source": "/docs/apps/zoho-crm",
- "destination": "https://pipedream.com/apps/zoho_crm"
- },
- {
- "source": "/docs/apps/zoho-mail",
- "destination": "https://pipedream.com/apps/zoho_mail"
- },
- {
- "source": "/docs/apps/all-apps",
- "destination": "https://pipedream.com/apps"
- },
- {
- "source": "/docs/support",
- "destination": "https://pipedream.com/support"
- },
- {
- "source": "/docs/workflows/steps/code/async/",
- "destination": "/docs/code/nodejs/async/"
- },
- {
- "source": "/docs/workflows/steps/code/state",
- "destination": "https://pipedream.com/docs/v1/workflows/steps/code/state"
- },
- {
- "source": "/docs/workflows/steps/params/",
- "destination": "/docs/workflows/steps/using-props/"
- },
- {
- "source": "/docs/pricing/#developer-tier",
- "destination": "/docs/pricing/#free-tier"
- },
- {
- "source": "/docs/apps/discord/",
- "destination": "https://pipedream.com/apps/discord#getting-started"
- },
- {
- "source": "/docs/apps/hubspot/",
- "destination": "https://pipedream.com/apps/hubspot#getting-started"
- },
- {
- "source": "/docs/apps/intercom/",
- "destination": "https://pipedream.com/apps/intercom#getting-started"
- },
- {
- "source": "/docs/apps/servicenow/",
- "destination": "https://pipedream.com/apps/servicenow#getting-started"
- },
- {
- "source": "/docs/apps/slack/",
- "destination": "https://pipedream.com/apps/slack#getting-started"
- },
- {
- "source": "/docs/apps/strava/",
- "destination": "https://pipedream.com/apps/strava#getting-started"
- },
- {
- "source": "/docs/apps/zoho_books/",
- "destination": "https://pipedream.com/apps/zoho_books#getting-started"
- },
- {
- "source": "/docs/apps/zoho_crm/",
- "destination": "https://pipedream.com/apps/zoho-crm#getting-started"
- },
- {
- "source": "/docs/apps/zoho_mail/",
- "destination": "https://pipedream.com/apps/zoho_mail#getting-started"
- },
- {
- "source": "/docs/apps/zoom/",
- "destination": "https://pipedream.com/apps/zoom#getting-started"
- },
- {
- "source": "/docs/apps/all-apps/",
- "destination": "/docs/apps/"
- },
- {
- "source": "/docs/workflows/events/cold-starts/",
- "destination": "/workflows/settings/#eliminate-cold-starts"
- },
- {
- "source": "/docs/workflows/examples/waiting-to-execute-next-step-of-workflow/",
- "destination": "/docs/code/nodejs/delay/"
- },
- {
- "source": "/docs/workflows/networking/",
- "destination": "/docs/workflows/vpc/"
- },
- {
- "source": "/docs/code/python/#making-a-get-request",
- "destination": "/docs/code/python/http-requests/#making-a-get-request"
- },
- {
- "source": "/docs/code/python/#making-a-post-request",
- "destination": "/docs/code/python/http-requests/#making-a-post-request"
- },
- {
- "source": "/docs/code/python/#sending-files",
- "destination": "/docs/code/python/http-requests/#sending-files"
- },
- {
- "source": "/docs/code/python/#writing-a-file-to-tmp",
- "destination": "/docs/code/python/working-with-files/#writing-a-file-to-tmp"
- },
- {
- "source": "/docs/code/python/#reading-a-file-from-tmp",
- "destination": "/docs/code/python/working-with-files/#reading-a-file-from-tmp"
- },
- {
- "source": "/docs/code/python/#listing-files-in-tmp",
- "destination": "/docs/code/python/working-with-files/#listing-files-in-tmp"
- },
- {
- "source": "/docs/connect/troubleshooting",
- "destination": "/docs/connect/managed-auth/troubleshooting"
- }
- ]
-}